在FPGA設計中,我們可能會碰到這樣的路徑,如下圖所示。圖中兩個輸入數據為64位,寄存一拍后給到二選一MUX的數據輸入端,MUX的輸出數據經位縮減運算經輸出寄存器輸出,而輸出寄存器的輸出又反饋回來作為MUX的控制端,如圖中藍色標記所示。
相應的SystemVerilog代碼如下圖所示:
相應的VHDL代碼如下:
?
從布線后的結果來看,反饋路徑成為關鍵路徑,這可通過布線后的結果回溯到RTL視圖,如下圖所示。注意到圖中觸發器的扇出為33。
對于此類反饋路徑,我們可以采用綜合屬性CRITICAL_SIG_OPT進行優化(該綜合屬性只可以在Vivado 2022.2及其之后的版本中使用)。將其施加在dout上,如下圖所示。
如果是VHDL代碼,應采用如下方式使用CRITICAL_SIG_OPT:
?
這個綜合屬性會將位縮減運算前移,這樣二選一MUX的輸入數據就變為1位,如下圖所示,這正是我們所期望的。
從布線后的視圖回溯到綜合后以及RTL視圖,如下圖所示。此時關鍵路徑發生了變化,從輸入端經二選一MUX過位縮減運算器到末級輸出觸發器,不再是原來的反饋之路。而末級輸出觸發器的扇出也降低到2。
再從資源利用率角度看,優化前使用了39個LUT,129個FF,而優化后使用了26個LUT,129個FF,LUT個數降低了,FF個數保持不變,如下圖所示。
綜合屬性CRITICAL_SIG_OPT從Vivado 2022.2版本開始支持,適用于優化反饋路徑,可有效緩解反饋路徑的時序壓力。
審核編輯:劉清
-
FPGA設計
+關注
關注
9文章
428瀏覽量
26489 -
寄存器
+關注
關注
31文章
5325瀏覽量
120034 -
Verilog
+關注
關注
28文章
1345瀏覽量
109991 -
LUT
+關注
關注
0文章
49瀏覽量
12484 -
Mux
+關注
關注
0文章
38瀏覽量
23354
原文標題:反饋路徑可以這么優化
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論