新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 手把手課堂:Xilinx FPGA設(shè)計(jì)時(shí)序約束指南

手把手課堂:Xilinx FPGA設(shè)計(jì)時(shí)序約束指南

作者: 時(shí)間:2011-04-29 來源:電子產(chǎn)品世界 收藏

  若不選定時(shí)間單位(納秒、皮秒等),則工具將自動(dòng)默認(rèn)為納秒。例如,可這樣寫約束:

本文引用地址:http://www.butianyuan.cn/article/119144.htm

  也可只寫From 或 只寫To ,以使其更具一般性:

  如前所述,工具將自動(dòng)默認(rèn)上文所述所有 FROM: TO 約束的優(yōu)先級(jí)高于PERIOD 約束,除非另有規(guī)定。

  除幫助查看時(shí)序約束迭代外,.tsi 報(bào)告還就如何改進(jìn)通用約束文件 (UCF) 中的約束提供方法建議。該報(bào)告還會(huì)告知是否有路徑受多重時(shí)鐘域的約束。下面是約束迭代報(bào)告的例子:

  在本例中,高優(yōu)先級(jí)的 FROM: TO約束(僅一個(gè))將優(yōu)先于 PERIOD 約束應(yīng)用。

  建立和保持

  在實(shí)際的同步數(shù)字系統(tǒng)中,數(shù)據(jù)必須先于進(jìn)行采樣的時(shí)鐘脈沖邊沿到達(dá)。達(dá)到這一目標(biāo)所需的最短時(shí)間稱為“建立時(shí)間”。除了先于時(shí)鐘脈沖邊沿到達(dá)外,數(shù)據(jù)必須在時(shí)鐘脈沖邊沿保持一定時(shí)間,這一時(shí)間稱為“保持時(shí)間”。保持時(shí)間可

  以為負(fù),此時(shí)數(shù)據(jù)在時(shí)鐘脈沖邊沿到達(dá)前便已結(jié)束;可以為零,此時(shí)數(shù)據(jù)保持到時(shí)鐘脈沖邊沿采樣;也可為正,此時(shí)數(shù)據(jù)保持到時(shí)鐘脈沖邊沿采樣完畢后一段時(shí)間。

  根據(jù)設(shè)計(jì),在 架構(gòu)中,對(duì)所有速度等級(jí),保持時(shí)間均不為正(或零或負(fù))。這樣可簡化布局和布線,因數(shù)據(jù)只

  需先于時(shí)鐘脈沖邊沿到達(dá),并可在時(shí)鐘脈沖邊沿采樣發(fā)生后即刻發(fā)生變化。數(shù)據(jù)超出最小建立時(shí)間的值稱為時(shí)序裕量。時(shí)序裕量應(yīng)總是為正。若報(bào)告上出現(xiàn)時(shí)序裕量負(fù)值,則說明建立時(shí)序尚未得到充分滿足,數(shù)據(jù)到達(dá)太遲。

  時(shí)鐘路徑本身也有延遲或偏移。因此,要分析時(shí)序,工具需計(jì)算出數(shù)據(jù)和時(shí)鐘到達(dá)所分析觸發(fā)器的時(shí)間。

  約束違例的簡便補(bǔ)救辦法

  重申一下:PERIOD 約束定義的是觸發(fā)器等同步元件的時(shí)鐘周期。可使用時(shí)序分析器來驗(yàn)證同步元件之間的所有路徑是否滿足設(shè)計(jì)的建立和保持時(shí)序要求。PERIOD 約束違例將以負(fù)的時(shí)序裕量顯示在在時(shí)序報(bào)告,并說明到底是建立時(shí)間還是保持時(shí)間要求出現(xiàn)違例。所以若報(bào)告顯示發(fā)生了建立時(shí)間違例時(shí)該作何處理?應(yīng)找出兩個(gè)所分析的同步元件間一條較快路徑,或至少是某種方法來確保數(shù)據(jù)在合適時(shí)間內(nèi)到達(dá)并保持足夠長的時(shí)間,以便時(shí)鐘脈沖邊沿能夠正確采樣。若布局布線軟件無法找到更快的路徑,則可從 Editor 工具中手動(dòng)進(jìn)行布線。

  不過這是最后的手段。在弄清楚不用它如何解決問題之前,請(qǐng)盡量不要使用這種方法。只使用 Editor 查看底層結(jié)構(gòu)“知其所以然”,了解工具對(duì)設(shè)計(jì)的所做的處理,以達(dá)到讓設(shè)計(jì)恰當(dāng)?shù)氖褂肍PGA 資源來實(shí)現(xiàn)的目的。首先試試重構(gòu)電路來滿足設(shè)計(jì)的時(shí)序要求。一個(gè)比較簡單的方法就是在路徑上及早布置一個(gè)觸發(fā)器。該技術(shù)即為流水線,它會(huì)增加信號(hào)的延遲,不過也可使信號(hào)值得到正確地采樣。

  若出現(xiàn)保持時(shí)間違例(數(shù)據(jù)在時(shí)鐘脈沖邊沿到來之前便已結(jié)束),則往往說明存在設(shè)計(jì)問題(架構(gòu)不良)。數(shù)值只能

  在時(shí)鐘脈沖邊沿發(fā)生變化,而不是之前。

  若外部信號(hào)值在時(shí)鐘脈沖邊沿之前發(fā)生變化,則需使用 DCM 或 PLL 延遲時(shí)鐘脈沖邊沿,這樣數(shù)據(jù)才能由新的延遲時(shí)鐘正確采樣。

  有一種替代方法,就是在輸入/ 輸出模塊中使用 IDELAY 元件,將數(shù)據(jù)移到時(shí)鐘有效的位置上。

  數(shù)據(jù)有效窗口與亞穩(wěn)態(tài)時(shí)鐘脈沖邊沿之前的時(shí)間(建立)加上時(shí)鐘脈沖邊沿之后的時(shí)間(保持)即為“數(shù)據(jù)有效窗口”,也就是數(shù)據(jù)保持穩(wěn)定,以進(jìn)行正常采樣的時(shí)間。若數(shù)據(jù)在此期間沒有保持有效,則結(jié)果存在不確定性,或不可知。

  不過,數(shù)據(jù)的有效時(shí)間未達(dá)到規(guī)定的長度,并不意味著觸發(fā)器輸出為亞穩(wěn)態(tài)。亞穩(wěn)態(tài)不同于不確定。若不能滿足時(shí)序要求,則輸出可能為隨機(jī)的 1 或 0。亞穩(wěn)態(tài)是指時(shí)鐘脈沖邊沿“幾乎”能進(jìn)行狀態(tài)采集,而觸發(fā)器輸出則在時(shí)鐘脈沖邊沿之后的一段時(shí)間內(nèi)處于某種中間狀態(tài)(非 1 非 0)。亞穩(wěn)態(tài)無法避免,因其為時(shí)鐘脈沖邊沿和數(shù)據(jù)幾乎完全“錯(cuò)過”時(shí)的電路物理狀態(tài)。

  在設(shè)計(jì)合理的同步系統(tǒng)中,亞穩(wěn)態(tài)不是什么問題。當(dāng)出現(xiàn)異步情況(如敲擊鍵盤上的一個(gè)鍵)或當(dāng)兩個(gè)同步時(shí)鐘彼此異步時(shí),亞穩(wěn)態(tài)就會(huì)成為問題。一般而言,若出現(xiàn)異步情況,則需進(jìn)行同步處理。

  關(guān)于如何處理亞穩(wěn)態(tài)的情況,這里有篇不錯(cuò)的專題文章: http://www.stanford.edu/class/ee183/handouts_

  spr2003/synchronization_pres.pdf 。(要深入了解亞穩(wěn)態(tài),請(qǐng)查看本期第二篇文章 FPGA101)

fpga相關(guān)文章:fpga是什么




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉