IC設計中,因為邏輯功能的要求,有些關鍵路徑不能通過插入Pipeline的方式優化時序,又因為性能的要求也不能粗暴地降低時鐘頻率。此時可以從關鍵寄存器的擺放位置角度考慮實現時序優化。通過對非關鍵路徑插入Pipeline從而減少對關鍵寄存器的時序約束,讓關鍵寄存器能夠靈活擺放,減少路徑延時從而達到優化關鍵路徑的目的。
如圖所示,圖中的1R1W的RAM作為有效包數量統計的RAM,當有數據包來臨時p1_md_vld為1,從RAM讀數據,經過2拍延時后得到了讀數據,讀數據加1得到打一拍得到p4_pkt_num_mem_wdata,同時mem寫信號p4_pkt_num_mem_wr需要根據讀數據和其他信號進行邏輯判斷后才能得到,因為需要支持背靠背統計累加,因此RAM的mem寫信號wen到讀數據rdata之間存在組合邏輯,在本案例中關鍵路徑是紅色虛線表示的路徑:p4_pkt_num_mem_wr->mem的rdata->邏輯判斷->p4_pkt_num_mem_wr。
在優化前,p4_pkt_num_mem_wr因為p5_others_reg寄存器的時序要求而離ram比較遠,此時路徑延時較長。優化方法:將寄存器p4_pkt_num_mem_wr打一拍得到p5_pkt_num_mem_wr再通過邏輯判斷得到寄存器p6_others_reg。因為p4_pkt_num_mem_wr和p5_pkt_num_mem_wr沒有復雜邏輯因此此時p4_pkt_num_mem_wr擺放位置可以離RAM更近一些。
此方法的優化效果在不同的代碼中存在明顯差異。如果關鍵寄存器p4_pkt_num_mem_wr驅動的邏輯特別多,即在優化前的圖中,p5_others_reg數量越多,其邏輯判斷越復雜,則此方法的效果則越好。在FPGA設計中,資源利用率較高時,此方法的優化效果更加明顯。
文章來源于 IC小鴿 ,作者 IC小鴿
國產EDA專題研討會報名
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.