FPGA時序約束的6種方法
5.核心頻率約束+時序例外約束+I/O約束+寄存器布局約束
本文引用地址:http://www.j9360.com/article/268455.htm寄存器布局約束是精確到寄存器或LE一級的細粒度布局約束。設計者通過對設計施加精準的控制來獲得可靠的時序收斂結果。對設計中的每一個寄存器手工進行布局位置約束并保證時序收斂是一項浩大的工程,這標志著設計者能夠完全控制設計的物理實現。這是一個理想目標,是不可能在有限的時間內完成的。通常的做法是設計者對設計的局部進行寄存器布局約束并通過實際運行布局布線工具來獲得時序收斂的信息,通過數次迭代逼近預期的時序目標。
看到過一個這樣的設計:一個子模塊的每一個寄存器都得到了具體的布局位置約束。該模塊的時序收斂也就相應地在每一次重新編譯的過程中得到了保證。經過分析,這一子模塊的設計和約束最初是在原理圖中進行的,在達到時序收斂目標后該設計被轉換為HDL語言描述,相應的約束也保存到了配置文件中。
6.核心頻率約束+時序例外約束+I/O約束+特定路徑延時約束
好的時序約束應該是“引導型”的,而不應該是“強制型”的。通過給出設計中關鍵路徑的時序延遲范圍,把具體而微的工作留給EDA工具在該約束的限定范圍內自由實現。這也是一個理想目標,需要設計者對每一條時序路徑都做到心中有數,需要設計者分清哪些路徑是可以通過核心頻率和簡單的時序例外約束就可以收斂的,哪些路徑是必須制定MaxDelay和MinDelay的,一條也不能遺漏,并且還需要EDA工具“善解人意”的有力支持。設定路徑延時約束就是間接地設定布局布線約束,但是比上述3、4、5的方法更靈活,而且不失其準確性。通過時序約束而不是顯式的布局和網表約束來達到時序收斂才是時序約束的真諦。
記得有人說過“好的時序是設計出來的,不是約束出來的”,我一直把這句話作為自己進行邏輯設計和時序約束的指導。好的約束必須以好的設計為前提。沒有好的設計,在約束上下再大的功夫也是沒有意義的。不過,通過正確的約束也可以檢查設計的優劣,通過時序分析報告可以檢查出設計上時序考慮不周的地方,從而加以修改。通過幾次“分析—修改—分析”的迭代也可以達到完善設計的目標。應該說,設計是約束的根本,約束是設計的保證,二者是相輔相成的關系。
fpga相關文章:fpga是什么
評論