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