時(shí)序優(yōu)化--從寄存器擺放位置入手
掃描二維碼
隨時(shí)隨地手機(jī)看文章
IC設(shè)計(jì)中,因?yàn)檫壿嫻δ艿囊螅行╆P(guān)鍵路徑不能通過插入Pipeline的方式優(yōu)化時(shí)序,又因?yàn)樾阅艿囊笠膊荒艽直┑亟档蜁r(shí)鐘頻率。此時(shí)可以從關(guān)鍵寄存器的擺放位置角度考慮實(shí)現(xiàn)時(shí)序優(yōu)化。通過對(duì)非關(guān)鍵路徑插入Pipeline從而減少對(duì)關(guān)鍵寄存器的時(shí)序約束,讓關(guān)鍵寄存器能夠靈活擺放,減少路徑延時(shí)從而達(dá)到優(yōu)化關(guān)鍵路徑的目的。
如圖所示,圖中的1R1W的RAM作為有效包數(shù)量統(tǒng)計(jì)的RAM,當(dāng)有數(shù)據(jù)包來臨時(shí)p1_md_vld為1,從RAM讀數(shù)據(jù),經(jīng)過2拍延時(shí)后得到了讀數(shù)據(jù),讀數(shù)據(jù)加1得到打一拍得到p4_pkt_num_mem_wdata,同時(shí)mem寫信號(hào)p4_pkt_num_mem_wr需要根據(jù)讀數(shù)據(jù)和其他信號(hào)進(jìn)行邏輯判斷后才能得到,因?yàn)樾枰С直晨勘辰y(tǒng)計(jì)累加,因此RAM的mem寫信號(hào)wen到讀數(shù)據(jù)rdata之間存在組合邏輯,在本案例中關(guān)鍵路徑是紅色虛線表示的路徑:p4_pkt_num_mem_wr->mem的rdata->邏輯判斷->p4_pkt_num_mem_wr。
在優(yōu)化前,p4_pkt_num_mem_wr因?yàn)?/span>p5_others_reg寄存器的時(shí)序要求而離ram比較遠(yuǎn),此時(shí)路徑延時(shí)較長。優(yōu)化方法:將寄存器p4_pkt_num_mem_wr打一拍得到p5_pkt_num_mem_wr再通過邏輯判斷得到寄存器p6_others_reg。因?yàn)?/span>p4_pkt_num_mem_wr和p5_pkt_num_mem_wr沒有復(fù)雜邏輯因此此時(shí)p4_pkt_num_mem_wr擺放位置可以離RAM更近一些。
此方法的優(yōu)化效果在不同的代碼中存在明顯差異。如果關(guān)鍵寄存器p4_pkt_num_mem_wr驅(qū)動(dòng)的邏輯特別多,即在優(yōu)化前的圖中,p5_others_reg數(shù)量越多,其邏輯判斷越復(fù)雜,則此方法的效果則越好。在FPGA設(shè)計(jì)中,資源利用率較高時(shí),此方法的優(yōu)化效果更加明顯。






