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