如何解決fpga high fanout問題

來源:互聯網
上載者:User

Fanout,即扇出,指模組直接調用的下級模組的個數,如果這個數值過大的話,在FPGA直接表現為net delay較大,不利於時序收斂。因此,在寫代碼時應盡量避免高扇出的情況。但是,在某些特殊情況下,受到整體結構設計的需要或者無法修改代碼的限制,則需要通過其它最佳化手段解決高扇出帶來的問題。以下就介紹三個這樣的方法:

         首先來看下面這個執行個體,如圖1所示為轉置型FIR濾波器中的關鍵路徑時序報告,在DSP in FPGA的FIR專題中有介紹轉置型結構FIR濾波器輸入資料的扇出較大,在圖1中所示為11,因此net delay高達1.231ns。如圖2所示,輸入資料驅動了11個DSP48E1。



         在沒有最佳化情況下,該設計的fmax:206.016MHz

        

         1. 寄存器複製

         寄存器複製是解決高扇出問題最常用的方法之一,通過複製幾個相同的寄存器來分擔由原先一個寄存器驅動所有模組的任務,繼而達到減小扇出的目的。通過簡單修改代碼,如圖3所示,複製了4個寄存器:din_d0、din_d1、din_d2、din_d3,din_d、din_d0、din_d1、din_d2分別驅動2個DSP48E1,din_d3驅動3個DSP48E1。其中在代碼中為防止綜合器最佳化相同寄存器,在對應訊號上加入了(* EQUIVALENT_REGISTER_REMOVAL="NO" *)屬性避免被最佳化。



         綜合實現後得到時序報告如圖4所示,該資料路徑上輸入資料fanout減為2,對應net delay也減小到了0.57ns。得到設計如圖5所示,與期望的相同,複製了4個寄存器來分擔fanout。經過寄存器最佳化後得到fmax:252.143MHz






         2. max_fanout屬性

         在代碼中可以設定訊號屬性,將對應訊號的max_fanout屬性設定成一個合理的值,當實際的設計中該訊號的fanout超過了這個值,綜合器就會自動對該訊號採用最佳化手段,常用的手段其實就是寄存器複製。屬性設定如下代碼所示:

(* max_fanout = "3" *)reg  signed [15:0] din_d;

         將din_d訊號的max_fanout屬性設定成3,經過綜合實現後,得到時序報告如圖6所示,其中fanout只有2,相應的net delay也只有0.61ns,自動最佳化效果還不錯。結構如圖7所示,其中din_d_12_1、din_d_12_2、din_d_12_3是綜合器最佳化後自動添加,即實現了寄存器複製功能。經過設定max_fanout屬性最佳化後得到fmax:257.135MHz






         3. BUFG

         通常BUFG是用於全域時鐘的資源,可以解決訊號因為高扇出產生的問題。但是其一般用於時鐘或者複位之類扇出超級大的訊號,此類訊號涉及的邏輯遍布整個晶片,而BUFG可以從全域的角度最佳化布線。而且一塊FPGA晶片中BUFG資源也有限,在7k325tffg900上也僅有32個,如果用於普通訊號的高扇出最佳化也不大現實。因此,在時鐘上使用BUFG是必須的,但是如果設計中遇到某些複位訊號因高扇出產生的時序問題時,可以在此訊號上使用BUFG來最佳化。

 

         綜上,在遇到訊號高扇出時,對於普通訊號可採用寄存器複製或者設定max_fanout屬性最佳化;而對於複位訊號,可加入BUFG最佳化。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.