UG 903 vivado 約束指導(dǎo)手冊(cè)_第1頁(yè)
UG 903 vivado 約束指導(dǎo)手冊(cè)_第2頁(yè)
UG 903 vivado 約束指導(dǎo)手冊(cè)_第3頁(yè)
UG 903 vivado 約束指導(dǎo)手冊(cè)_第4頁(yè)
UG 903 vivado 約束指導(dǎo)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、vivado 約束指導(dǎo)手冊(cè)時(shí)序分析時(shí)序路徑 時(shí)序路徑由設(shè)計(jì)中instance之間的連接決定。在數(shù)字設(shè)計(jì)中,時(shí)序路徑由一對(duì)時(shí)序元件(sequential elements)形成,這對(duì)時(shí)序元件由一個(gè)或二個(gè)不同的時(shí)鐘控制。普通時(shí)序路徑在任何設(shè)計(jì)中最普通的時(shí)序路徑有以下4種:1 輸入端口到內(nèi)部時(shí)序單元路徑2從時(shí)序單元到時(shí)序單元之間的內(nèi)部路徑3 從內(nèi)部時(shí)序單元到輸出端口之間的路徑4 輸入端口到輸出端口之間的路徑輸入端口到內(nèi)部時(shí)序單元之間路徑在從輸入端口到內(nèi)部時(shí)序單元之間的路徑上傳輸?shù)臄?shù)據(jù):. 通過(guò)管腳時(shí)鐘送出器件. 經(jīng)過(guò)一個(gè)稱為輸入延時(shí)的延時(shí)到達(dá)器件端口(SDC 定義). 在到達(dá)由目標(biāo)時(shí)鐘(destin

2、ation clock)鎖定的時(shí)序單元之前須通過(guò)器件內(nèi)部邏輯從時(shí)序單元到時(shí)序單元的內(nèi)部路徑在從時(shí)序單元到時(shí)序單元的內(nèi)部路徑上傳輸?shù)臄?shù)據(jù):. 由時(shí)序單元發(fā)送到器件內(nèi)部,而此時(shí)序單元由源時(shí)鐘(source clock)驅(qū)動(dòng). 在到達(dá)由目標(biāo)時(shí)鐘驅(qū)動(dòng)的時(shí)序單元之前,須經(jīng)過(guò)一些內(nèi)部邏輯內(nèi)部時(shí)序單元到外部端口路徑在從內(nèi)部時(shí)序單元到外部端口路徑上的數(shù)據(jù):. 由時(shí)序單元發(fā)送到器件內(nèi)部,而此時(shí)序單元由源時(shí)鐘(source clock)驅(qū)動(dòng). 在到達(dá)外部端口之前,須經(jīng)過(guò)一些內(nèi)部邏輯. 在經(jīng)過(guò)一段稱為輸出延時(shí)的額外延時(shí)之后被端口時(shí)鐘捕獲(SDC definition)輸入端口到輸出端口路徑在從輸入端口直接到輸出端口

3、的路徑上,數(shù)據(jù):. 不需要在器件內(nèi)部鎖存(latch),直接從輸入端口到輸出端口。他們通常被稱為In-to-out數(shù)據(jù)路徑。端口時(shí)鐘可以是虛擬時(shí)鐘也可以是設(shè)計(jì)時(shí)鐘路徑舉例圖3-1 描述了上面所有的路徑,在此例圖中,設(shè)計(jì)時(shí)鐘CLK0可被用作端口時(shí)鐘,這樣既可以約束DIN延時(shí)也可以約束DOUT延時(shí)。時(shí)鐘路徑部分每一個(gè)時(shí)鐘路徑由三個(gè)部分組成:. 源時(shí)鐘路徑. 數(shù)據(jù)路徑. 目標(biāo)時(shí)鐘路徑源時(shí)鐘路徑源時(shí)鐘路徑是由源時(shí)鐘從它的源點(diǎn)(典型的是輸入端口)到發(fā)送時(shí)序單元的時(shí)鐘引腳之間的路徑。對(duì)于從輸入端口起始的時(shí)序路徑來(lái)說(shuō),就不存在源時(shí)鐘路徑。數(shù)據(jù)路徑對(duì)內(nèi)部電路,數(shù)據(jù)路徑是發(fā)送時(shí)序單元和捕捉時(shí)序單元之間的路徑發(fā)送

4、時(shí)序單元的有效時(shí)鐘管腳稱為路徑起始點(diǎn)捕捉時(shí)序單元的數(shù)據(jù)輸入管腳稱為路徑結(jié)束點(diǎn)對(duì)于輸入端口路徑,數(shù)據(jù)路徑起始于輸入端口。輸入端口是路徑的起始點(diǎn)。對(duì)于輸出端口路徑,數(shù)據(jù)路徑結(jié)束語(yǔ)輸出端口。輸出端口是路徑的結(jié)束點(diǎn)。目標(biāo)時(shí)鐘路徑目標(biāo)時(shí)鐘路徑是由目標(biāo)時(shí)鐘從其源點(diǎn)(典型的是輸入端口)到捕捉時(shí)序單元的時(shí)鐘管腳之間的路徑。對(duì)于結(jié)束于輸出端口的時(shí)序路徑,就沒(méi)有目標(biāo)時(shí)鐘路徑。圖3-2顯示了3段典型的時(shí)序路徑Setup和Hold分析Vivado IDE 分析時(shí)序并且在時(shí)序路徑終點(diǎn)時(shí)候報(bào)告時(shí)序裕量。時(shí)序裕量是指在時(shí)序路徑終點(diǎn)數(shù)據(jù)要求時(shí)間和抵達(dá)時(shí)間的差異。如果裕量為正,從時(shí)序的角度考慮此路徑是有效的。Setup 檢查為

5、了計(jì)算數(shù)據(jù)所需的setup 時(shí)間,時(shí)序引擎:1. 決定源時(shí)鐘和目的時(shí)鐘之間的普通周期。如果沒(méi)有被發(fā)現(xiàn),為分析考慮多達(dá)1000個(gè)時(shí)鐘周期。2. 檢查覆蓋普通周期上的起始點(diǎn)和終點(diǎn)所有上升和下降沿。3. 在任何兩個(gè)有效(active)沿之間的最小正差值delta。這個(gè)delta被稱為setup分析的時(shí)序路徑要求。Setup 路徑要求示例假象2個(gè)寄存器之間的一條路徑,這些寄存器由其相應(yīng)時(shí)鐘上升沿觸發(fā)。這條路徑有效的時(shí)鐘沿只有上升沿。時(shí)鐘定義如下:. clk0 周期6 ns. clk1周期4ns圖3-3顯示有2個(gè)單獨(dú)的源和目的時(shí)鐘沿有資格受到setup分析:setup(1)和setup(2):源時(shí)鐘發(fā)送

6、沿時(shí)間:0ns + 1*T(clk0) = 6ns目的時(shí)鐘抓取沿時(shí)間:0ns + 2*(clk1) = 8nsSetup Path Requirement = 抓取沿時(shí)間 發(fā)送沿時(shí)間 = 2ns在計(jì)算路徑要求時(shí)候,需要考慮2個(gè)重要的點(diǎn):1. 時(shí)鐘沿是理想的,那就是說(shuō),時(shí)鐘樹(shù)插入延遲不在考慮之內(nèi)2. 默認(rèn)時(shí)鐘在0時(shí)間點(diǎn)是phase-aligned,除非他們的波形定義引進(jìn)了phase-shift。異步時(shí)鐘相位關(guān)系未知。時(shí)序引擎在分析其間路徑時(shí)候會(huì)考慮默認(rèn)值。關(guān)于異步時(shí)鐘的更多內(nèi)容看一下部分。Setup 分析數(shù)據(jù)要求時(shí)間Setup分析數(shù)據(jù)要求時(shí)間是指為了讓目的單元能安全的采樣數(shù)據(jù),數(shù)據(jù)必須在這個(gè)時(shí)間

7、點(diǎn)之前穩(wěn)定。這個(gè)值基于:. 目的時(shí)鐘采樣沿時(shí)間. 目地時(shí)鐘延時(shí). 源時(shí)鐘和目的時(shí)鐘的不確定性. 目的單元setup 時(shí)間Setup 分析的數(shù)據(jù)抵達(dá)時(shí)間Setup分析的數(shù)據(jù)抵達(dá)時(shí)間,是指由源時(shí)鐘發(fā)送的數(shù)據(jù)在路徑終點(diǎn)的穩(wěn)定時(shí)候所需要的時(shí)間。它的值基于:. 源時(shí)鐘發(fā)送沿時(shí)間. 源時(shí)鐘延時(shí). 數(shù)據(jù)路徑延時(shí)數(shù)據(jù)路徑延時(shí)包括所有從起點(diǎn)到終點(diǎn)的單元(cell)和線(net)延時(shí)。在時(shí)序報(bào)告中,Vivado 將setup時(shí)序考慮為數(shù)據(jù)路徑的一部分。相應(yīng)的,數(shù)據(jù)到達(dá)和要求時(shí)間的公式為:Setup裕量是指要求時(shí)間和實(shí)際抵達(dá)時(shí)間的差值:在 輸入數(shù)據(jù)引腳寄存器上Setup 裕量為負(fù)值,說(shuō)明寄存器有可能鎖存到未知的值跳

8、轉(zhuǎn)到錯(cuò)誤狀態(tài)。Hold 檢查Hold裕量的計(jì)算與setup 裕量計(jì)算直接相關(guān)。當(dāng)setup分析證明了在最悲觀的情況下數(shù)據(jù)可以被安全捕捉,hold分析確保了:. 同樣的數(shù)據(jù)不可能被前面目地時(shí)鐘沿錯(cuò)誤的抓取. 下一個(gè)源時(shí)鐘沿發(fā)送的數(shù)據(jù)不能被用來(lái)分析setup的目的數(shù)據(jù)沿抓取因此,為了找到hold分析的時(shí)序路徑,時(shí)序引擎考慮了所有為setup分析的源和目的時(shí)鐘沿結(jié)合的可能。對(duì)每一種可能的組合,時(shí)序引擎:. 檢查發(fā)送沿和減去一個(gè)目的時(shí)鐘周期的抓取沿之間的差值. 檢查了加上一個(gè)源時(shí)鐘周期的發(fā)送沿和抓取沿之間的差值. 只保留時(shí)間差值最大的發(fā)送沿和抓取沿hold路徑要求示例采用page33中setup路徑要

9、求示例中的時(shí)鐘。對(duì)于setup分析那僅有2個(gè)可能的時(shí)鐘沿組合:那么相應(yīng)的hold要求如下:從上面可以看出最大的要求時(shí)間是0ns,這正好與源時(shí)鐘和目的時(shí)鐘第一次上升沿相吻合。Hold 路徑要求示例,page36 顯示了setup 檢查沿和他們相關(guān)的hold檢查。此例中,最終的hold要求時(shí)間不是來(lái)源于最緊的setup要求。這是因?yàn)樗锌赡艿膕etup沿都會(huì)被考慮在內(nèi),是為了找到最又挑戰(zhàn)性的hold要求。正如在setup分析中,數(shù)據(jù)要求時(shí)間和數(shù)據(jù)抵達(dá)時(shí)間是基于以下條件計(jì)算的:. 源時(shí)鐘發(fā)送沿時(shí)間. 目的時(shí)鐘抓取沿時(shí)間. 源和目的時(shí)鐘延時(shí). 時(shí)鐘不確定性. 數(shù)據(jù)延時(shí). 目的寄存器hold 時(shí)間Hol

10、d 裕量是要求時(shí)間和抵達(dá)時(shí)間的差值正的時(shí)序裕量意味著即使在最悲觀的情況下數(shù)據(jù)也不會(huì)被錯(cuò)誤的時(shí)鐘沿抓取。而負(fù)的hold裕量說(shuō)明抓取的數(shù)據(jù)錯(cuò)誤,而且寄存器可能進(jìn)入不穩(wěn)定狀態(tài)。矯正(recovery)和移除(removal)分析矯正和移除時(shí)序檢查與setup和hold檢查相似,區(qū)別就是它們應(yīng)用于異步數(shù)據(jù)管腳例如set或者clear。對(duì)于異步復(fù)位的寄存器:. 矯正時(shí)間是異步reset信號(hào)為了鎖定新數(shù)據(jù)已經(jīng)切換到它的無(wú)效狀態(tài)之后 ,到下一個(gè)有效時(shí)鐘沿之間的最小時(shí)間。. 移除時(shí)間是在異步復(fù)位信號(hào)安全切換到其無(wú)效狀態(tài)之前,到第一個(gè)有效時(shí)鐘沿之后的最小時(shí)間。下面的等式描述了這兩種分析的slack是如何計(jì)算的R

11、ecovery check下面的等式描述了下面如何計(jì)算:Removal check正如setup和hold檢查,一個(gè)負(fù)的recovery裕量和removal裕量說(shuō)明寄存器可能進(jìn)入亞穩(wěn)態(tài),并且將未知的電子層帶入設(shè)計(jì)中。定義時(shí)鐘時(shí)鐘數(shù)字設(shè)計(jì)中,時(shí)鐘提供了從寄存器到寄存器之間可靠的傳輸數(shù)據(jù)的時(shí)間參考。Vivado IDE 時(shí)序引擎用時(shí)鐘特征來(lái):. 計(jì)算時(shí)鐘路徑要求. 以裕量計(jì)算的方式報(bào)告設(shè)計(jì)時(shí)序裕量更多信息,參考 時(shí)序分析這章為了得到最精確的最大的時(shí)序路徑覆蓋,時(shí)鐘必須合理的定義??梢杂孟旅娴奶卣鞫x時(shí)鐘:. 源時(shí)鐘是指定義在時(shí)鐘驅(qū)動(dòng)引腳或者時(shí)鐘樹(shù)跟端口的時(shí)鐘. 時(shí)鐘沿可以由周期和波形特性的組合描述

12、. 周期是ns級(jí)的,與描述的波形的時(shí)間周期相匹配. 時(shí)鐘波形是在時(shí)鐘周期里,在數(shù)ns內(nèi)時(shí)鐘上升沿和下降沿絕對(duì)時(shí)間的列表列表必須包含偶數(shù)個(gè)值。第一個(gè)值一般與第一個(gè)上升沿吻合,除非另外指定,默認(rèn)的時(shí)鐘占空比是50%相位是0ns。如圖4-1所示,clk0周期10ns,占空比50%,相位0ns。Clk1周期8ns,占空比75%,相位2ns。Clk0: period = 10, waveform = 0 5Clk1: period =8 , waveform=2 8傳播(propagated clock)時(shí)鐘周期和波形特征體現(xiàn)了時(shí)鐘的理想特征。當(dāng)時(shí)鐘進(jìn)入FPGA器件并且經(jīng)過(guò)時(shí)鐘樹(shù)傳播時(shí)候,時(shí)鐘沿會(huì)有延時(shí)

13、而且會(huì)隨著噪聲和硬件特性而改變。這些特點(diǎn)被稱為時(shí)鐘網(wǎng)絡(luò)延時(shí)(latency)和時(shí)鐘不確定(uncertainty)。時(shí)鐘不確定性包含下面內(nèi)容:. clock jitter. phase error. 任何額外指定的不確定Vivado會(huì)默認(rèn)的將時(shí)鐘作為傳播時(shí)鐘,這意味著,這是非理想的時(shí)鐘。這么做是為了提供包含時(shí)鐘樹(shù)插入延時(shí)和不確定性的裕量的值。特定硬件資源Xilinx FPGA器件的特定硬件資源能有效支持大量設(shè)計(jì)時(shí)鐘。這些時(shí)鐘通常是由其它器件產(chǎn)生,以輸入接口的方式提供給設(shè)計(jì)。它們也能由時(shí)鐘配置模塊產(chǎn)生,這些時(shí)鐘配置模塊包括:. MMCM . PLL. BUFR它們還可以由LUT和register

14、之類的常規(guī)單元改變。以下部分介紹了如何基于原始時(shí)鐘來(lái)最好的定義它主時(shí)鐘主時(shí)鐘是板上產(chǎn)生的輸入設(shè)計(jì)的時(shí)鐘,可以通過(guò)以下途徑輸入:. 輸入端口. gigabit transceiver 輸出管腳(例如,recovered clock)主時(shí)鐘只能由create_clock命令定義。主時(shí)鐘必須連接到網(wǎng)表對(duì)象(netlist object)。網(wǎng)表對(duì)象代表了設(shè)計(jì)中時(shí)鐘樹(shù)上所有下行時(shí)鐘時(shí)鐘沿產(chǎn)生的點(diǎn)。換句話說(shuō),當(dāng)Vivado計(jì)算slack等式中時(shí)鐘延時(shí)和不確定性時(shí)候,主時(shí)鐘源點(diǎn)定義了0時(shí)間。必須最先定義主時(shí)鐘,這樣其它的時(shí)鐘約束才能有參考依據(jù)。主時(shí)鐘示例如圖4-2所示,板級(jí)時(shí)鐘通過(guò)sysclk端口進(jìn)入FPG

15、A,然后在抵達(dá)路徑寄存器之前經(jīng)過(guò)input buffer和clock buffer。. 周期是10ns. 占空比為50%. 沒(méi)有相位移動(dòng)相應(yīng)的XDC語(yǔ)法為:與sysclk類似,板級(jí)時(shí)鐘devclk通過(guò)ClkIn端口進(jìn)入FPGA. 周期10ns. 占空比25%. 相移90度相應(yīng)的XDC語(yǔ)法為:圖4-3顯示了tasnseiver gt0,是從板上高速鏈接收回的時(shí)鐘rxclk。時(shí)鐘rxclk周期3.33ns,占空比50%而且布線通過(guò)MMCM,這樣可以為設(shè)計(jì)產(chǎn)生補(bǔ)償時(shí)鐘。當(dāng)在GT0輸出驅(qū)動(dòng)管腳上定義rxclk時(shí)候,所有由MMCM驅(qū)動(dòng)的時(shí)鐘都有個(gè)共同的源點(diǎn),就是gt0/RXOUTCLK。用合理的時(shí)鐘延時(shí)

16、和不確定值計(jì)算它們之間路徑的裕量。虛擬時(shí)鐘虛擬時(shí)鐘是設(shè)計(jì)中沒(méi)有在物理上連接到任何網(wǎng)表單元的時(shí)鐘。虛擬時(shí)鐘由create_clock命令定義而不需要指定任何源對(duì)象。以下情況中虛擬時(shí)鐘可以用來(lái)指定輸入和輸出延時(shí)約束. FPGA I/O的外部參考時(shí)鐘不作為設(shè)計(jì)時(shí)鐘. FPGA I/O路徑與內(nèi)部產(chǎn)生的時(shí)鐘有關(guān),而這些I/O路徑不能被板級(jí)時(shí)鐘所約束. 在不修改內(nèi)部時(shí)鐘特性的前提下只為時(shí)鐘相關(guān)的I/O延時(shí)約束指定不同的jitter和latency。例如,時(shí)鐘clk_virt周期10ns,沒(méi)有連接到任何網(wǎng)表對(duì)象。在此例中,-name選項(xiàng)是強(qiáng)制的,沒(méi)有指定。虛擬時(shí)鐘在其被輸入和輸出延時(shí)約束使用之前定義。生成時(shí)

17、鐘(generated clock)有2種生成時(shí)鐘:. 用戶定義的生成時(shí)鐘. 自動(dòng)衍生時(shí)鐘(derived clock)關(guān)于生成時(shí)鐘生成時(shí)鐘是指由MMCM或用戶邏輯驅(qū)動(dòng)內(nèi)部邏輯的時(shí)鐘。生成時(shí)鐘與master 時(shí)鐘相關(guān)聯(lián),master時(shí)鐘可以是:. 主時(shí)鐘. 其它生成時(shí)鐘生成時(shí)鐘的特性直接來(lái)源于它們的master時(shí)鐘。必須描述如何變化的電路如何改變master時(shí)鐘,而不是指定它的周期和波形。Master時(shí)鐘和生成時(shí)鐘的關(guān)系可以是:. 簡(jiǎn)單的分頻. 簡(jiǎn)單的倍頻. 在一個(gè)MMCM或PLL中既有簡(jiǎn)單的分頻也有簡(jiǎn)單的倍頻生成時(shí)鐘也可以是其master時(shí)鐘帶有相移或波形反向的簡(jiǎn)單復(fù)制。用戶定義的生成時(shí)鐘用

18、戶定義的生成時(shí)鐘是:. 用create_generated_clock命令定義. 連接到網(wǎng)表對(duì)象,優(yōu)先連到時(shí)鐘樹(shù)根引腳用-source選項(xiàng)指定master時(shí)鐘。這標(biāo)明了master時(shí)鐘傳播經(jīng)過(guò)的管腳或端口。通常用master時(shí)鐘的源點(diǎn)或生成時(shí)鐘源單元的輸入時(shí)鐘引腳。示例1:簡(jiǎn)單2分頻主時(shí)鐘clkin時(shí)鐘周期10ns。寄存器REGA將其2分頻給其它寄存器管腳,其相應(yīng)的生成時(shí)鐘為clkdiv2。以下是3個(gè)等效的約束:例2:用-edge選項(xiàng)來(lái)2分頻可以選擇不用-divide_by選項(xiàng),而是用-edge選項(xiàng)來(lái)直接描述基于master時(shí)鐘沿產(chǎn)生的時(shí)鐘波形。幅角是Master 時(shí)鐘沿指示的列表,該列表用來(lái)

19、定義生成時(shí)鐘沿的位置,以時(shí)鐘上升沿開(kāi)始。下面的例子等效于在例1中定義的的生成時(shí)鐘。例3: 用-edge和-edge_shift選項(xiàng)來(lái)改變占空比和相移生成時(shí)鐘波形的每個(gè)沿都可以獨(dú)立的用 edge_shift選項(xiàng)來(lái)用一個(gè)絕對(duì)值移位。只有需要相移的時(shí)候才用這此選項(xiàng)。-edge_shift不能和以下選項(xiàng)一起使用:. divide_by. multiply_by. invert考慮一個(gè)master 時(shí)鐘clkin周期10ns,占空比50%。它到達(dá)CMB單元產(chǎn)生時(shí)鐘占空比25%,相移90度。例4: 同時(shí)使用-divide_by和-multiply_byVivado允許同時(shí)指定-divide_by和-mul

20、tiply_by。這是對(duì)標(biāo)準(zhǔn)SDC的延伸。這 在手動(dòng)定義由MMCM或PLL產(chǎn)生的時(shí)鐘時(shí)候非常方便。盡管Xilinx推薦由時(shí)序引擎自動(dòng)創(chuàng)造這些約束。對(duì)于更多的信息,查看自動(dòng)生成時(shí)鐘考慮CMB是master 時(shí)鐘clkin乘以4/3:如果在MMCM或PLL輸出產(chǎn)生一個(gè)衍生時(shí)鐘,必須驗(yàn)證波形定義符合MMCM或PLL的配置。自動(dòng)派生時(shí)鐘自動(dòng)派生時(shí)鐘也成為自動(dòng)生成時(shí)鐘。假如相關(guān)的master時(shí)鐘已經(jīng)定義了,他們約束是在CMB模塊的輸出引腳由VIVADO自動(dòng)定義的。CMB模塊包括MMCM,PLL或BUFR原語(yǔ)。如果用戶定義的時(shí)鐘(主時(shí)鐘或生成時(shí)鐘)同時(shí)也在網(wǎng)表對(duì)象上定義了,那么在同一個(gè)源點(diǎn)自動(dòng)生成時(shí)鐘是無(wú)

21、法建立的。自動(dòng)生成時(shí)鐘的名稱是基于直接連接到源點(diǎn)的網(wǎng)線的名稱的。自動(dòng)派生時(shí)鐘示例由MMCM產(chǎn)生的時(shí)鐘Master時(shí)鐘clkin驅(qū)動(dòng)了輸入CLKIN0和MMCME2例子mmcm_i。自動(dòng)產(chǎn)生時(shí)鐘的名稱是cpuclk并且它定義的點(diǎn)是mmcm_i/CLKOUT0。本地網(wǎng)線名如果CMB示例位于設(shè)計(jì)結(jié)構(gòu)之中,本地網(wǎng)線名不帶源單元名的名字)用于產(chǎn)生生成時(shí)鐘名稱。例如,對(duì)一個(gè)稱為aa/bb/usrclk的層次網(wǎng)線. 源單元名aa/bb. 產(chǎn)生的時(shí)鐘名是usrclk名稱沖突為了防止2個(gè)生成時(shí)鐘名沖突,Vivado增加了獨(dú)特的結(jié)尾來(lái)區(qū)分它們,例如:. usrclk , usrclk1, usrclk2 時(shí)鐘組V

22、ivado 默認(rèn)所有時(shí)鐘都是有關(guān)聯(lián)的,除非你通過(guò)增加組約束另外指定。Set_clock_groups命令禁止對(duì)標(biāo)識(shí)的時(shí)鐘組之間進(jìn)行時(shí)序分析。同步時(shí)鐘兩個(gè)時(shí)鐘當(dāng)他們相關(guān)的相位可以預(yù)測(cè)時(shí),那么它們就是同步的。這是因?yàn)樗麄兊臅r(shí)鐘樹(shù)在網(wǎng)表中是起源是同一個(gè)根。例如,一個(gè)衍生時(shí)鐘和它的master時(shí)鐘就是同步的,因?yàn)樗麄儌鞑ネㄟ^(guò)同一網(wǎng)表源到達(dá)衍生時(shí)鐘源點(diǎn)。異步時(shí)鐘組當(dāng)兩個(gè)時(shí)鐘之間的相位關(guān)系是不可預(yù)測(cè)時(shí)候,那么它們就是異步的。例如兩個(gè)時(shí)鐘由外部不同的晶振產(chǎn)生通過(guò)不同的管腳送入FPGA,那么它們就是異步時(shí)鐘。大部分情況下,主時(shí)鐘可以被當(dāng)作異步時(shí)鐘。當(dāng)與它們相應(yīng)的生成時(shí)鐘有關(guān)時(shí),它們可以形成異步時(shí)鐘組。異步時(shí)鐘

23、組示例. 在輸入端口上定義主時(shí)鐘clk0,通過(guò)MMCM產(chǎn)生時(shí)鐘usrclk和itfclk。. 第二個(gè)主時(shí)鐘是clk1,其定義在GTP instance輸出管腳上的recovered 時(shí)鐘,它通過(guò)第二個(gè)MMCM產(chǎn)生gtclkrx和getclktx。創(chuàng)造異步時(shí)鐘組用-asynchronous選項(xiàng)來(lái)創(chuàng)造異步時(shí)鐘組動(dòng)態(tài)找回衍生時(shí)鐘名稱如果不能預(yù)知衍生時(shí)鐘名,用get_clocks-include_generated_clocks來(lái)動(dòng)態(tài)找回他們。這是SDC標(biāo)準(zhǔn)的延伸。以前的例子可以像下面這么些:專用時(shí)鐘組有些設(shè)計(jì)有些選擇模式要求時(shí)鐘不同的時(shí)鐘。這些時(shí)鐘間的選擇通常用:. 時(shí)鐘倍頻如BUFGMUX和BUF

24、GCTRL. LUT使用Vivado,在同一個(gè)時(shí)鐘樹(shù)上同時(shí)可以存在幾個(gè)時(shí)鐘,這便于同時(shí)報(bào)道所有操作模型,但是在硬件上這是不可能的。有些時(shí)鐘被稱為專用時(shí)鐘??梢杂胹et_clock_groups來(lái)約束他們:. logically_exclusive. physically_exclusive專用時(shí)鐘組示例一個(gè)MMCM產(chǎn)生clk0和clk1,這個(gè)連接到BUFGMUX 元件clkmux上。Clkmux輸出驅(qū)動(dòng)這些設(shè)計(jì)時(shí)鐘樹(shù)。默認(rèn)的,vivado分析clk0和clk1之間的路徑,盡管既有分享同一時(shí)鐘樹(shù)的時(shí)鐘也有不能同時(shí)存在的時(shí)鐘。必須輸入下面的約束來(lái)阻止分析兩個(gè)時(shí)鐘:時(shí)鐘latency,jitter,

25、uncertainty除了定義時(shí)鐘波形,還必須指定與環(huán)境相關(guān)的可預(yù)見(jiàn)的和隨機(jī)的變化。Clock latency在電路板上傳播到達(dá)FPGA內(nèi)部之后,時(shí)鐘沿抵達(dá)目地帶有一定的延時(shí)。這個(gè)延時(shí)典型的可以表達(dá)為:. 源延時(shí)(在時(shí)鐘源點(diǎn)之前延時(shí),通常在FPGA外部). 網(wǎng)絡(luò)延時(shí)由時(shí)鐘網(wǎng)絡(luò)延時(shí)引入的時(shí)鐘延時(shí)(也稱為插入延時(shí))是要么:. 自動(dòng)建立(pre-route 設(shè)計(jì)). 精確計(jì)算(post-route 設(shè)計(jì))在標(biāo)準(zhǔn)的SDC工具中Set_propagated_clock命令觸發(fā)了傳播延時(shí)計(jì)算。Vivado中此命令是非必須的,因?yàn)檫@是vivado中默認(rèn)的:. 所有時(shí)鐘都被認(rèn)為是傳輸時(shí)鐘. 衍生時(shí)鐘的延時(shí)包括

26、它源主時(shí)鐘的插入延時(shí)加上自身的網(wǎng)絡(luò)延時(shí)對(duì)于Xilinx FPGA,用set_clock_latency命令來(lái)指定FPGA外部的時(shí)鐘延時(shí)。Set_clock_latency示例時(shí)鐘jitter和時(shí)鐘uncertainty對(duì)于ASIC器件,時(shí)鐘jitter通常與時(shí)鐘uncertainty特征同時(shí)出現(xiàn)。然而,對(duì)于xilinx FPGA,jitter的特性是可預(yù)測(cè)的。它們可由時(shí)序分析引擎自動(dòng)計(jì)算或分開(kāi)指定。輸入Jitter輸入jitter 是考慮到從正常的或理想的時(shí)鐘抵達(dá)時(shí)間,兩個(gè)連續(xù)的時(shí)鐘沿之間的差值。用set_input_jitter命令來(lái)為每一個(gè)時(shí)鐘獨(dú)立指定輸入jitter。輸入jitter不是

27、從master時(shí)鐘發(fā)送到其衍生時(shí)鐘。結(jié)果,必須手動(dòng)指定輸入jitter,即使是衍生時(shí)鐘。系統(tǒng)jitter系統(tǒng)jitter是全面的jitter,由于:. 電源噪聲. 電路板噪聲. 任何系統(tǒng)的額外jitter用set_system_jitter命令來(lái)為整個(gè)設(shè)計(jì)即所有時(shí)鐘指定一個(gè)唯一值。額外的時(shí)鐘uncertainty用set_clock_uncertainty命令來(lái)為不同的角落,延時(shí),或所需的特定時(shí)鐘關(guān)系定義額外的時(shí)鐘不確定性。從時(shí)序角度來(lái)看,這是為部分設(shè)計(jì)增加額外裕量的一個(gè)便捷的方法。I/O延時(shí)為了確定外部時(shí)序內(nèi)容在設(shè)計(jì)中的精確模型,必須給出輸入和輸出端口的時(shí)序信息。因?yàn)関ivado只識(shí)別FPG

28、A器件內(nèi)部的時(shí)序。在FPGA外部必須用下面命令來(lái)指定延時(shí)值:. set_input_delay. set_outpu_delay輸入延時(shí)Set_input_delay命令指定了輸入接口上的輸入路徑延時(shí),此輸入端口與設(shè)計(jì)接口上的時(shí)鐘沿相關(guān)。當(dāng)考慮到應(yīng)用板,此延時(shí)代表了下面的相位差別:a. 數(shù)據(jù)通過(guò)外部芯片傳輸?shù)紽PGA的輸入端口b. 相關(guān)參考板級(jí)時(shí)鐘因此,輸入延時(shí)值可正可負(fù),取決于FPGA接口的時(shí)鐘和數(shù)據(jù)相位關(guān)系。用輸入延時(shí)選項(xiàng)盡管-clock 選項(xiàng)是在SDC標(biāo)準(zhǔn)中可選的,但是在vivado中是必需的。相關(guān)時(shí)鐘可以是設(shè)計(jì)時(shí)鐘也可以是虛擬時(shí)鐘。輸入延時(shí)命令選項(xiàng)有:. 最小和最大延時(shí)命令選項(xiàng). 時(shí)鐘

29、下降輸入延時(shí)命令選項(xiàng). 增加延時(shí)輸入命令選項(xiàng)最小和最大延時(shí)命令選項(xiàng)-min和-max選項(xiàng)為下面指定不同的值:. 最小延時(shí)分析(hold/removal). 最大延時(shí)分析(setup/recovery)如果都沒(méi)有用到,輸入延時(shí)值既適用于min也適用于max。時(shí)鐘下降輸入延時(shí)命令選項(xiàng)-clock_fall選項(xiàng)指定了應(yīng)用于時(shí)序路徑的輸入延時(shí)約束,這個(gè)時(shí)序路徑與相關(guān)時(shí)鐘的下降沿有關(guān)。如果沒(méi)有此選項(xiàng),Vivado只默認(rèn)時(shí)鐘的上升沿。不要將-clock_fall選項(xiàng)與-rise和-fall選項(xiàng)混淆。這些選項(xiàng)指的是數(shù)據(jù)沿而不是時(shí)鐘沿。Add Delay 輸入延時(shí)命令選項(xiàng)如果出現(xiàn)以下情況必須使用-add_delay選項(xiàng):. 存在最大(或最小)延時(shí)約束. 你想指定第二個(gè)最大(或最小)輸出延時(shí)約束此選項(xiàng)普遍應(yīng)用于約束與多

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論