FPGA綜合優化

2021-09-07 03:20:28 字數 1111 閱讀 1411

1 速度和面積

在全面優化水平將達到速度和面積rtl要利用邏輯拓撲的優勢。

供fpga由於在後端而言缺乏知識,門級優化。普通情況下更高的速度要求更高的並行性以及更大的面積,可是在某些特殊情況下並非這樣。由於fpga的布局佈線具有二階效應。

直到布局佈線完畢。工具才會知道器件的擁堵或者佈線的困難,可是這時實際邏輯拓撲已經被提交,假設我們的優化選項設定為速度,那麼當實現後器件過於擁擠而無法布局佈線時,布局佈線工具進而會產生附加邏輯。從而是實際速度更慢。因此當fpga的資源利用率接近100%時進行面積的優化將獲得更快的速度。

2 利用綜合工具提供的資源共享選項,能夠實現一些互不相容的並且類似的操作,某些時候可能會減少面積,比如

assign outdata=isel?idata1+idata2:idat2+idata3; 沒有設定資源共享選項時實現例如以下:

開啟資源共享設定後:

3 流水線、又一次定時和暫存器平衡

a 暫存器平衡不應該用於非關鍵路徑。

b 帶有不同復位型別的相鄰觸發器會阻止暫存器平衡。

c 約束又一次同步暫存器,使其不被其它暫存器平衡影響。

4 有限狀態機的編譯

採用標準編碼的狀態機會被編譯器識別而且又一次優化。

對於狀態機,驅動非同步輸出時應該採用格雷碼,格雷碼產生例如以下圖所看到的:

編譯器會自己主動去除沒用的狀態。假設要求安全就別非常高。開啟安全模式。無效的狀態產生時將會產生乙個復位訊號。

5 黑匣子,黑匣子被放在優化模組的網表或者布局圖的坐席。它包括在實現流程中的較後的設計總。

假設要求黑匣子時應該給出i/o的時序模型。

6物理綜合提供綜合和布局圖之間的緊密聯絡。

FPGA綜合編碼

1 判決樹 在fpga中判斷使用if else語句以及case實現。a if else 是有特權的,類似於優先編碼 當兩個條件同時成立,僅判斷條件靠前的成立 所以當有特權條件時應該採用if else結構,對於並行的if條件語句其特權順序恰好與if else 相反。b case 語句常常 不總是 用在...

FPGA之綜合篇

1 綜合注意事項 綜合部分可以用setting進行所需要求來配置,比如fsm狀態機的碼型,rtl的綜合屬性。要進行網表層次重建可以設定 synth design flatten rebuild 基於專案的綜合可以直接按按鈕或者執行tcl指令 launch runs synth 1 基於非專案批作業的...

FPGA綜合與VHDL語法

下面的內容是在富欣實習時總結下來的。綜合相關 1.劉工說,d觸發器最好不要一直重新整理,需要用到使能訊號,若使能訊號是長時間持續的,則需要取其的上公升沿和下降沿。2.以前寫 時,為了防止生成鎖存器,會像下面這樣寫 elsif clk event and clk 1 then if en 1 then...