本小節(jié)對(duì)時(shí)序約束做最終的總結(jié)。如圖1所示,前幾節(jié)內(nèi)容依次講述了時(shí)序約束的四大步驟。第一是生成時(shí)鐘約束;第二是輸入端口約束input delay;第三是輸出端口約束output delay;最后是時(shí)序例外。前幾節(jié)內(nèi)容把這些情況都?xì)w納起來,對(duì)每種情況仔細(xì)劃分,然后按照對(duì)應(yīng)的情況進(jìn)行時(shí)序約束即可。
圖1 時(shí)序約束四大步驟
再強(qiáng)調(diào)一點(diǎn),在工程項(xiàng)目開始階段就要設(shè)置時(shí)鐘約束和生成時(shí)鐘約束。時(shí)鐘約束又包括輸入時(shí)鐘、PLL等衍生時(shí)鐘、自己分頻得到的時(shí)鐘。每種都有對(duì)應(yīng)的要求和特點(diǎn),根據(jù)需要查找對(duì)應(yīng)的方式去完成約束。
在項(xiàng)目開發(fā)過程中,內(nèi)部實(shí)際邏輯都寫完了,并且全部滿足時(shí)序要求,仿真沒有問題了,不報(bào)告錯(cuò)誤了,這時(shí)再對(duì)輸入端口和輸出端口設(shè)置相應(yīng)的約束。比如跟外圍器件的一個(gè)設(shè)置之類的。這時(shí)再去設(shè)置input delay 和 output delay。為什么要先保證內(nèi)部邏輯設(shè)計(jì)是正確的再對(duì)端口進(jìn)行約束呢?如果在內(nèi)部時(shí)序不滿足的情況下,對(duì)輸入端口和輸出端口進(jìn)行約束了,這時(shí)如果出現(xiàn)錯(cuò)誤,將無法確定是內(nèi)部時(shí)序造成的錯(cuò)誤,還是端口約束不對(duì)造成的錯(cuò)誤。
input delay 和 output delay 一般有系統(tǒng)同步、源同步等幾種,源同步又有SDR、DDR。雖然總的類型比較多,但是對(duì)應(yīng)實(shí)際項(xiàng)目中的一種接口,必定是這其中的一種類型,此時(shí)只要按照對(duì)應(yīng)情況去進(jìn)行設(shè)置即可。開發(fā)人員確定待約束的輸入信號(hào)的硬件接口到底是系統(tǒng)同步還是源同步?如果是源同步,是SDR還是DDR?如果是SDR,是中心對(duì)齊還是邊緣對(duì)齊的?這樣就可以逐步找到對(duì)應(yīng)的情況進(jìn)行約束。
而output delay 也是同樣道理,根據(jù)實(shí)際的接口類型查找相應(yīng)的約束方法即可。要注意兩點(diǎn),其一是 input delay 和 output delay 對(duì)應(yīng)的公式是什么,代表什么含義。另外公式中的數(shù)據(jù)從何處獲取,或者說怎么獲取,只有獲取有效的數(shù)據(jù)才能進(jìn)行正確的約束。而且 input delay 約束和output delay 約束其實(shí)就是告知綜合軟件一些我們知道而綜合軟件不知道的參數(shù),比如上游或下游芯片接口寄存器的建立時(shí)間、保持時(shí)間、PCB走線延遲等FPGA之外的數(shù)據(jù)。上游和下游芯片接口寄存器的建立時(shí)間、保持時(shí)間是可以通過數(shù)據(jù)手冊(cè)以及示波器測量得到的,而PCB走線延遲也可以估算得到,最后將這些數(shù)據(jù)綜合考慮成輸入、輸出接口的最大傳輸延遲、最小傳輸延遲告知綜合軟件,綜合軟件就可以根據(jù)這些參數(shù)對(duì)FPGA的時(shí)序進(jìn)行調(diào)整,最后生成相應(yīng)的時(shí)序報(bào)告。
當(dāng)時(shí)鐘約束、輸入和輸出端口約束都處理完了,沒有問題后,最后做時(shí)序例外相關(guān)約束。目的是告知綜合軟件某些路徑可能需要多個(gè)時(shí)鐘周期才能得到正確輸出,或者某些路徑已經(jīng)人為處理過了,時(shí)序是滿足的,綜合軟件不需要對(duì)這些路徑進(jìn)行檢查分析了。其中最重要的就是異步時(shí)鐘的處理。
異步時(shí)鐘是FPGA里面最多最常用也是最核心的一個(gè)部分內(nèi)容,特別強(qiáng)調(diào)一定要做異步處理之后,才能將該路徑force掉,時(shí)序例外掉。如果沒做時(shí)序處理,就把它例外,排除掉,可能會(huì)出現(xiàn)嚴(yán)重的錯(cuò)誤,開發(fā)人員還找不到原因,因?yàn)殄e(cuò)誤報(bào)告被屏蔽掉了。
上面就是時(shí)序約束的一個(gè)步驟,大家不需要記是怎么樣格式去約束,只要按照的步驟去約束,查找對(duì)應(yīng)的約束類型,然后按照對(duì)應(yīng)要求約束即可,不要去記很多無用的東西,只要把約束類型歸類好就可以了。
假如讀者所在公司要求不一樣,比如說順序不一樣,那就按照公司的要求去做。明德?lián)P是按照前面介紹的步驟去做的,而且是成功的。當(dāng)然不同的公司,有不同的做法、不同的要求,合理設(shè)置即可。
另外假如以后遇到一些情況,在這里面沒有列明的。就需要按照這個(gè)表把它歸納到某種方式,補(bǔ)充完整,之后就可以使用了,這個(gè)表可以應(yīng)付絕大部分的場合了。
審核編輯:湯梓紅
-
DDR
+關(guān)注
關(guān)注
11文章
711瀏覽量
65225 -
時(shí)鐘
+關(guān)注
關(guān)注
10文章
1720瀏覽量
131362 -
時(shí)序約束
+關(guān)注
關(guān)注
1文章
115瀏覽量
13409
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論