【導讀】如果設計的電路只是提供給NIOSII在FPGA內調用,沒有外部器件的相關延時信息,該怎么約束輸入輸出呢?針對一個這位網(wǎng)友給出了時序約束的一些經驗之談,分享給大家。
前段時間有位中國科學技術大學(我夢寐以求卻求而不得的學府)的研究生同學在我的博客下方留言咨詢時序約束的一些問題:“如果設計的電路只是提供給NIOSII在FPGA內調用,沒有外部器件的相關延時信息,該怎么約束輸入輸出呢”。
其實呢,從事IC設計或者FPGA開發(fā)這個行業(yè),擁有聰明的大腦寫好優(yōu)秀的代碼固然重要,然而學會對代碼或者電路施加時序約束也是每個從業(yè)者應該掌握的技巧,這個技巧可以幫助你高效且合理且正確的定制SPEC或者劃分模塊,進而為后續(xù)項目的順利進展打下良好的鋪墊。正確合理的時序約束可以幫你實現(xiàn)快速綜合出面積盡量小、頻率盡量高的電路來。
通常情況下:
1、對系統(tǒng)的時鐘頻率約束的緊一些,余量可以根據(jù)情況定為10%-20%之間,比較緊的時鐘約束會讓綜合工具盡最大的能力去綜合電路。
2、輸入和輸出的延遲如果沒有較為準確的參考,一般可以設置為周期的一半,而且應該為同步系統(tǒng)的約束,如果為異步系統(tǒng)的約束則沒有實際的意義,另外要尤其注意純組合電路的情況。
3、合理的約束時序性能的原則,60/40原則:
邏輯延遲低于timing budget 的60%,這個時候時序很容易滿足;
邏輯延遲在60%-80%之間,軟件綜合的時間就會 變大很多;
邏輯延遲超過80%時,時序將很難滿足。
4、對于FPGA綜合及布局布線而言,您的電路所占的資源最好不要超過整個FPGA的85%,否則FPGA不能夠很好的工作,電路性能可能也不會很好,所以選擇FPGA資源時最好根據(jù)您項目的情況進行預估算。
5、虛假路徑(false path)和多周期路徑(multi-period)要特殊對待。
6、跨時鐘域的地方要用跨時鐘域的處理方法保證其正確性,也可以通過跨時鐘域檢查的工具檢查其合理性。