0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vivado使用技巧時(shí)鐘的基礎(chǔ)知識

FPGA設(shè)計(jì)論壇 ? 來源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2022-07-01 14:28 ? 次閱讀

時(shí)鐘的基礎(chǔ)知識

數(shù)字設(shè)計(jì)中,“時(shí)鐘”表示在寄存器之間可靠地傳輸數(shù)據(jù)所需的參考時(shí)間;Vivado的時(shí)序引擎利用時(shí)鐘特征來計(jì)算時(shí)序路徑需求,通過計(jì)算時(shí)間裕量(Slack)的方法報(bào)告設(shè)計(jì)的時(shí)序空余;時(shí)鐘必須被正確定義以最佳精度獲得最大的時(shí)序路徑覆蓋范圍,包含如下特性:

定義在時(shí)鐘樹的驅(qū)動管腳或端口,通常稱作根或源點(diǎn);

通過周期和波形屬性來描述時(shí)鐘邊沿;

周期(period)以ns為單位進(jìn)行設(shè)定,與波形重復(fù)率相關(guān);

波形(waveform)以列表的形式給出,表中包含上升沿和下降沿在周期中的絕對時(shí)間,以ns為單位;第一個(gè)上升沿對應(yīng)于第一個(gè)值,第一個(gè)下降沿對應(yīng)第二個(gè)值;默認(rèn)情況下,相位偏移從0ns開始,占空比為50%;

如下圖給出了兩個(gè)時(shí)鐘Clk0: period=10, waveform={0 5}、Clk1: period=8, waveform = {2 8};

538e4738-f8f3-11ec-ba43-dac502259ad0.png

上述給出的只是時(shí)鐘的理想特征。當(dāng)時(shí)鐘進(jìn)入了FPGA器件,通過時(shí)鐘樹傳遞時(shí),時(shí)鐘邊沿會有延時(shí),通常稱作時(shí)鐘網(wǎng)絡(luò)延遲;噪聲或硬件表現(xiàn)會導(dǎo)致時(shí)鐘隨時(shí)可能發(fā)生變化,通常稱作時(shí)鐘不確定性,包括時(shí)鐘抖動(Clock jitter)、相位錯(cuò)位(Phase error)等等, Vivado在時(shí)序分析時(shí)會考慮這些非理想因素以得到精確的時(shí)序裕量;

通常板子上有一個(gè)外部組件(如有源晶振)產(chǎn)生時(shí)鐘信號,通過輸入端口進(jìn)入器件內(nèi)部;外部時(shí)鐘可以通過MMCM、PLL、BUFR等特殊原語生成其它時(shí)鐘,也可以由LUT、寄存器等常規(guī)單元進(jìn)行轉(zhuǎn)換(通常稱作門控時(shí)鐘);接下來的部分將講述如何由源時(shí)鐘定義成其他類型的時(shí)鐘;

主時(shí)鐘Primary Clock

主時(shí)鐘通常由兩個(gè)來源:(1)板級時(shí)鐘通過輸入端口進(jìn)入設(shè)計(jì);(2)GT收發(fā)器的輸出管腳(如恢復(fù)時(shí)鐘);

主時(shí)鐘必須與一個(gè)網(wǎng)表對象相連,該對象代表了所有時(shí)鐘邊沿的開始點(diǎn),并且在時(shí)鐘樹中向下傳遞;也可以說,主時(shí)鐘的源點(diǎn)定義了0時(shí)刻,Vivado靠此來計(jì)算時(shí)鐘延遲和不確定性 ;vivado會忽略所有時(shí)鐘樹上從主時(shí)鐘上游的單元到主時(shí)鐘之間的延時(shí)!

主時(shí)鐘只能通過create_clock命令來定義,且必須放在約束的開始,這是因?yàn)槠渌鼤r(shí)序約束幾乎都要參考主時(shí)鐘;下面給出幾個(gè)主時(shí)鐘的例子,第一個(gè)例子如下圖所示,采用單端時(shí)鐘輸入:

53b4898e-f8f3-11ec-ba43-dac502259ad0.png

板級時(shí)鐘通過sysclk端口進(jìn)入FPGA,通過一個(gè)輸入緩沖器和一個(gè)時(shí)鐘緩沖器后到達(dá)寄存器,使用如下命令定義:

create_clock -period 10 [get_ports sysclk] #10ns周期,50%占空比,無相移

create_clock -name devclk -period 10 -wavefor {2.5 5} [get_ports sysclk] #板級時(shí)鐘名稱devclk,10ns周期,25%占空比,90°相移

第二個(gè)例子,時(shí)鐘源由高速收發(fā)器gt0提供,如下圖所示:

53d0854e-f8f3-11ec-ba43-dac502259ad0.png

通過sysclk端口進(jìn)入FPGA,之后經(jīng)過混合時(shí)鐘管理單元MMCM生成其他時(shí)鐘,以gt0發(fā)出的時(shí)鐘為主時(shí)鐘,其他生成時(shí)鐘都有一個(gè)共同的時(shí)鐘源,使用如下命令定義:

create_clock -name rxclk -period 3.33 [get_pins gt0/RXOUTCLK]

第三個(gè)例子如下圖所示,采用差分時(shí)鐘輸入,這也是高速時(shí)鐘的輸入方式:

53e4b97e-f8f3-11ec-ba43-dac502259ad0.png

上圖中差分時(shí)鐘驅(qū)動一個(gè)PLL,定義主時(shí)鐘時(shí)必須只創(chuàng)建差分緩沖器的正極輸入;如果同時(shí)創(chuàng)建了正極、負(fù)極輸入,將會導(dǎo)致錯(cuò)誤的CDC路徑;使用如下命令定義:

create_clock -name sysclk -period 3.33 [get_ports SYS_CLK_clk_p]

虛擬時(shí)鐘Virtual Clock

虛擬時(shí)鐘通常用于設(shè)定對輸入和輸出的延遲約束,之所以稱為“虛擬”,是因?yàn)檫@種時(shí)鐘在物理上沒有與設(shè)計(jì)中的任何網(wǎng)表對象相連;定義時(shí)使用create_clock命令,但無需指定源對象 ,在下列情況需要用到虛擬時(shí)鐘:

所有的設(shè)計(jì)時(shí)鐘都不是外部器件I/O的參考時(shí)鐘;

FPGA的I/O路徑與一個(gè)內(nèi)部生成的時(shí)鐘相關(guān),但是該時(shí)鐘不能合適地通過對板級時(shí)鐘計(jì)時(shí)來生成(如兩個(gè)周期的比不是整數(shù));

希望為與I/O延遲約束相關(guān)的時(shí)鐘設(shè)定不同的抖動和延遲,但是不希望修改內(nèi)部時(shí)鐘的特征 ;

比如時(shí)鐘clk_virt的周期為10ns,且不與任何網(wǎng)表對象相連,可以這樣定義“create_clock -name clk_virt –period 10”,沒有指定objects參數(shù);注意,虛擬時(shí)鐘必須在使用之前便定義好 ;

生成時(shí)鐘Generated Clock

生成時(shí)鐘是指在設(shè)計(jì)內(nèi)部由特殊單元(如MMCM、PLL)或用戶邏輯驅(qū)動的時(shí)鐘;生成時(shí)鐘與一個(gè)上級時(shí)鐘(注:官方稱作master clock,為與primary clock作區(qū)分,這里稱作上級時(shí)鐘)相關(guān),其屬性也是直接由上級時(shí)鐘派生而來;上級時(shí)鐘可以是一個(gè)主時(shí)鐘,也可以是另一個(gè)生成時(shí)鐘;

生成時(shí)鐘使用create_generated_clock命令定義,該命令不是設(shè)定周期或波形,而是描述時(shí)鐘電路如何對上級時(shí)鐘進(jìn)行轉(zhuǎn)換。這種轉(zhuǎn)換可以是下面的關(guān)系:

Vivado計(jì)算生成時(shí)鐘的延遲時(shí),會追蹤生成時(shí)鐘的源管腳與上級時(shí)鐘的源管腳之間的所有組合和時(shí)序路徑。某些情況下可能只希望考慮組合邏輯路徑,在命令行后添加-combinational選項(xiàng)即可;

這里先解釋一下本文甚至本系列大量使用的兩個(gè)詞,端口(Port)和管腳(Pin)。端口通常用get_ports命令獲取,管腳使用get_pins命令獲取。二者的含義是不同的,但管腳的范圍更廣泛,比如設(shè)計(jì)中用到的一個(gè)寄存器都有3個(gè)管腳:clk、D和Q;下面給出幾個(gè)定義生成時(shí)鐘的例子:

簡單的頻率分頻

簡單的頻率倍頻

頻率倍頻與分頻的組合,獲得一個(gè)非整數(shù)的比例,通常由MMCM或PLL完成

相移或波形反相

占空比改變

上述所有關(guān)系的組合

1.簡單的2分頻

540bf03e-f8f3-11ec-ba43-dac502259ad0.png

可以采用如下兩種方法對生成時(shí)鐘進(jìn)行約束:

#定義主時(shí)鐘,周期10ns,50%占空比

create_clock -name clkin -period 10 [get_ports clkin]

#約束方法1,主時(shí)鐘作為源點(diǎn)

create_generated_clock -name clkdiv2 -source [get_ports clkin] -divide_by 2 [get_pins REGA/Q]

#約束方法2,REGA的始終管腳作為源點(diǎn)

create_generated_clock -name clkdiv2 -source [get_pins REGA/C] -divide_by 2 [get_pins REGA/Q]

約束命令中使用**-source選項(xiàng)來設(shè)定上級時(shí)鐘,但如上所示,該選項(xiàng)只能設(shè)定為一個(gè)端口或管腳類型的網(wǎng)表對象,不能直接設(shè)置為時(shí)鐘類型對象。上面約束使用-divide_by選項(xiàng)設(shè)置分頻系數(shù),此外還可以使用-edges**選項(xiàng),如下所示:

#該約束與上面等效

create_generated_clock -name clkdiv2 -source [get_pins REGA/C] -eedges {1 3 5} [get_pins REGA/Q]

#1 3 5 分別為生成時(shí)鐘一個(gè)周期的三個(gè)沿對應(yīng)master clock的上升沿的位置

-edges的參數(shù)為一個(gè)列表,該列表通過主時(shí)鐘的邊沿來描述生成時(shí)鐘的波形;列表中的值為主時(shí)鐘邊沿的序號(注意觀察上圖),由時(shí)鐘上升沿開始,定義了生成時(shí)鐘邊沿的時(shí)間點(diǎn);

2.改變占空比與相移

如果僅需要改變時(shí)鐘的相移,使用**-edge_shift**選項(xiàng)可以正向或反向設(shè)定每一個(gè)生成時(shí)鐘波形的相移量;注意,-edge_shift選項(xiàng)不能與-devide_by、-multiply_by、-invert選項(xiàng)同時(shí)使用;下圖中上級時(shí)鐘為clkin,進(jìn)入mmcm0單元,產(chǎn)生一個(gè)25%占空比、相移90°的時(shí)鐘:

541b2414-f8f3-11ec-ba43-dac502259ad0.png

可以采用如下方法對生成時(shí)鐘進(jìn)行約束:使用上級時(shí)鐘的1、2、3標(biāo)號邊沿(即0ns、5ns、10ns)定義生成時(shí)鐘,為了得到預(yù)期波形,1和3標(biāo)號邊沿要分別移動2.5ns,得到2.5ns、5ns、12.5ns的波形:

#定義主時(shí)鐘,周期10ns,50%占空比

create_clock -name clkin -period 10 [get_ports clkin]

#定義生成時(shí)鐘,周期10ns,25%占空比,90°相移

create_generated_clock -name clkshift -source [get_pins mmcm0/CLKIN] -edges {1 2 3}

-edge_shift {2.5 0 2.5} [get_pins mmcm0/CLKOUT]

3.同時(shí)倍頻與分頻

這種情況通常用于定義MMCM或PLL的輸出,一般使用這些IP核時(shí)會自動創(chuàng)建相應(yīng)約束;考慮上例中的圖,假設(shè)MMCM將上級時(shí)鐘倍頻到4/3倍,無法直接倍頻,需要同時(shí)使用-divede_by和-multiply_by選項(xiàng)來實(shí)現(xiàn):

create_generated_clock -name clk43 -source [get_pins mmcm0/CLKIN] -multiply_by 4

-divide_by 3 [get_pins mmcm0/CLKOUT]

4.僅通過組合路徑追蹤上級時(shí)鐘

前面簡單介紹了-combinational選項(xiàng)的使用,為了更好理解,這里舉一個(gè)具體例子;下圖中,上級時(shí)鐘同時(shí)傳遞到寄存器和多路選擇器中,寄存器對時(shí)鐘進(jìn)行2分頻,多路選擇器從寄存器的2分頻時(shí)鐘和上級時(shí)鐘中選擇一個(gè)作為生成時(shí)鐘輸出 :

542dad32-f8f3-11ec-ba43-dac502259ad0.png

顯而易見,從上級時(shí)鐘到生成時(shí)鐘有兩條路徑,一條為時(shí)序路徑,一條為組合路徑;如果我們只希望考慮組合路徑上的延遲時(shí),定義生成時(shí)鐘時(shí)就需要使用-combinational選項(xiàng) :

create_generated_clock -name clkout -source [get_pins mmcm0/CLKIN] -combinational

[get_pins MUX/O]

自動生成時(shí)鐘 Automatically Derived Clocks

這種類型時(shí)鐘算是生成時(shí)鐘的一種特例,“自動”是指在已經(jīng)定義了上級時(shí)鐘的情況下,Vivado會自動為時(shí)鐘管理單元CMBs(Clock Modifying Blocks)的輸出管腳創(chuàng)建約束,官方稱作Automatically Derived Clocks或Auto-generated Clock;

如果約束中已經(jīng)存在用戶在某一網(wǎng)表對象上定義的時(shí)鐘,則不會創(chuàng)建相同對象上的自動生成時(shí)鐘;

下面給出一個(gè)具體例子,下圖中上級時(shí)鐘clkin驅(qū)動clkip/mmcm0單元的CLKIN輸入,該單元是一個(gè)MMCME2資源的實(shí)例,則自動生成時(shí)鐘的定義源點(diǎn)為clkip/mmcm0/CLKOUT,頂層與此源點(diǎn)連接的網(wǎng)絡(luò)名為clkip/cpuClk,自動生成時(shí)鐘的名字便是cpuClk:

54521bfe-f8f3-11ec-ba43-dac502259ad0.png

如上所述,Vivado會自動創(chuàng)建自動生成時(shí)鐘的名稱(Name),如果兩個(gè)名稱發(fā)生沖突也會自動添加后綴,如usrclk、usrclk_1等等;

時(shí)鐘組Clock Group

默認(rèn)情況下,Vivado會測量設(shè)計(jì)中所有時(shí)鐘之間的路徑時(shí)序,添加如下兩種約束可以控制該功能:

劃分時(shí)鐘組通常有兩個(gè)依據(jù):

(1)原理圖或時(shí)鐘網(wǎng)絡(luò)報(bào)告中的時(shí)鐘樹拓?fù)鋱D,判斷哪些時(shí)鐘不應(yīng)該放在一起做時(shí)序分析;

(2)時(shí)鐘交互報(bào)告查看兩個(gè)時(shí)鐘間存在的約束,判斷它們是否有共享的主時(shí)鐘(代表是否有已知的相位關(guān)系)或者是否有公共周期 ;

但要明白,我們設(shè)定時(shí)鐘組的目的還是為了保證設(shè)計(jì)在硬件中能正常工作,因此我們必須確保這些忽略了時(shí)序分析的路徑有合適的再同步電路或異步數(shù)據(jù)傳輸協(xié)議;

set_clock_groups:建立時(shí)鐘組,Vivado不會對不同時(shí)鐘組的時(shí)鐘之間進(jìn)行時(shí)序分析;

set_false_path:將兩個(gè)時(shí)鐘之間的路徑設(shè)置為false path后,不會對該路徑進(jìn)行任何時(shí)序分析;

根據(jù)時(shí)鐘間的關(guān)系,可以做如下分類:

同步時(shí)鐘:即兩個(gè)時(shí)鐘間有可預(yù)知的相對相位,通常它們的時(shí)鐘樹源自網(wǎng)表中的同一個(gè)根,且有一個(gè)公共周期;

異步時(shí)鐘:兩個(gè)時(shí)鐘間有無法預(yù)知的相對相位。比如兩個(gè)獨(dú)立的晶振信號通過兩個(gè)輸入端口進(jìn)入FPGA中,生成兩個(gè)時(shí)鐘。由于兩個(gè)主時(shí)鐘沒有明確的相位關(guān)系,兩個(gè)生成時(shí)鐘間便是異步的;

不可擴(kuò)展時(shí)鐘:官方稱作Unexpandable Clocks,是指時(shí)序引擎在1000個(gè)周期內(nèi)無法判斷兩個(gè)時(shí)鐘是否有公共周期。這種情況通常發(fā)生在兩個(gè)時(shí)鐘周期比是一個(gè)特殊的分?jǐn)?shù),比如一個(gè)主時(shí)鐘通過MMCM生成一個(gè)周期為5.125ns的時(shí)鐘clk1和一個(gè)周期為6.666ns的時(shí)鐘clk2,盡管它們在時(shí)鐘樹的根上有一個(gè)確定的相位關(guān)系,但是在1000個(gè)周期內(nèi)時(shí)鐘上升沿?zé)o法再次對齊;

1.異步時(shí)鐘組

同步時(shí)鐘可以安全地進(jìn)行時(shí)序分析,異步時(shí)鐘和不可擴(kuò)展時(shí)鐘雖然通過時(shí)序分析也會得到一個(gè)裕量值,但這個(gè)值不可作為可靠結(jié)果;從這個(gè)角度出發(fā),不可擴(kuò)展時(shí)鐘也可以視作一種特殊的異步時(shí)鐘;這就需要通過設(shè)置時(shí)鐘組來忽略異步時(shí)鐘的時(shí)序路徑上的時(shí)序分析 ;

這里舉個(gè)例子,一個(gè)主時(shí)鐘clk0通過MMCM生成兩個(gè)時(shí)鐘usrclk和itfclk;另一個(gè)主時(shí)鐘clk1通過另一個(gè)MMCM生成兩個(gè)時(shí)鐘clkrx和clktx,用如下命令創(chuàng)建異步時(shí)鐘組:

set_clock_groups -name async_clk0_clk1 -asynchronous -group {clk0 usrclk itfclk}

-group {clk1 gtclkrx gtclktx}

#如果時(shí)鐘名稱事先不知道,可以用如下寫法

set_clock_groups -name async_clk0_clk1 -asynchronous -group [get_clocks -include_generated_clocks clk0] -group [get_clocks -include_generated_clocks clk1]

2.互斥時(shí)鐘組 Exclusive Clock Groups

下面再介紹另一種會用到時(shí)鐘組的情況:某些設(shè)計(jì)會有幾個(gè)操作模式,不同操作模式使用不同的時(shí)鐘,這些時(shí)鐘通常由專用的時(shí)鐘選擇器進(jìn)行選擇,如BUFGMUX和BUFGCTRL,最好不要用LUT作時(shí)鐘選擇器;

這些單元都是組合邏輯單元,Vivado會將所有輸入傳遞到輸出;在Vivado IDE中,幾個(gè)時(shí)序時(shí)鐘可以同時(shí)存在時(shí)鐘樹上,方便地同時(shí)報(bào)告所有操作模式,但是在硬件中這是不可能的,它們之間是互斥的,這些時(shí)鐘便稱作互斥時(shí)鐘;

舉個(gè)例子,一個(gè)MMCM實(shí)例生成的兩個(gè)時(shí)鐘clk0和clk1,與一BUFGMUX實(shí)例clkmux相連,clkmux的輸出驅(qū)動設(shè)計(jì)時(shí)鐘樹;默認(rèn)情況下,雖然clk0和clk1共享同一時(shí)鐘樹,且不能同時(shí)存在,Vivado還是會分析clk0和clk1之間的路徑,這個(gè)問題要通過設(shè)置互斥時(shí)鐘組來解決,達(dá)到禁止分析這兩個(gè)時(shí)鐘間路徑 的目的。約束如下:

set_clock_groups -name exclusive_clk0_clk1 -physically_exclusive

-group clk0 -group clk1

ASIC工藝中使用-physically_exclusive和-logically_exclusive代表不同的信號完整性分析模式,但對于Xilinx FPGA而言,二者是等價(jià)的,都可以使用;

時(shí)鐘延遲、抖動與不確定性

本文的上述約束可以說都是對時(shí)鐘的理想特征進(jìn)行約束,為了更精確地進(jìn)行時(shí)序分析,設(shè)計(jì)者還必須設(shè)定一些與運(yùn)行環(huán)境相關(guān)的可預(yù)測變量和隨機(jī)變量,這部分也稱作時(shí)鐘的不確定性特征;

1.時(shí)鐘延遲latency

經(jīng)過板子上和FPGA器件內(nèi)部的傳輸,時(shí)鐘邊沿到達(dá)目的地后會有一個(gè)確定的延遲,這個(gè)延遲可以分為兩個(gè)部分看待:

網(wǎng)絡(luò)延遲:也稱作插入延遲,指在FPGA內(nèi)部傳輸帶來的延遲;Vivado會自動分析計(jì)算該延遲,布線過程前只是一個(gè)粗略的估計(jì),布線后便可以得到一個(gè)精確的值;對于生成時(shí)鐘,包含其本身的網(wǎng)絡(luò)延遲和上級時(shí)鐘的網(wǎng)絡(luò)延遲兩部分;

源端延遲:通常指FPGA器件外,時(shí)鐘進(jìn)入源點(diǎn)前的傳輸延遲,這部分延遲與PCB設(shè)計(jì)相關(guān),需要用set_clock_latency命令進(jìn)行約束;

下面給出一個(gè)約束源端時(shí)鐘延遲的例子:

# Minimum source latency value for clock sysClk (for both Slow and Fast corners)

set_clock_latency -source -early 0.2 [get_clocks sysClk]

# Maximum source latency value for clock sysClk (for both Slow and Fast corners)

set_clock_latency -source -late 0.5 [get_clocks sysClk]

2.時(shí)鐘抖動jitter

對于ASIC器件來說,時(shí)鐘抖動通常代表了時(shí)鐘不確定性特征;但對于Xilinx FPGA而言,抖動屬性被當(dāng)作可預(yù)測變量看待;抖動有的需要單獨(dú)設(shè)置,有的在時(shí)序分析過程中自動計(jì)算,抖動分為兩種:

輸入抖動:指實(shí)際時(shí)鐘邊沿與理想時(shí)鐘邊沿到達(dá)時(shí)刻之間的差值,使用set_iput_jitter命令為每個(gè)主時(shí)鐘單獨(dú)設(shè)置輸入抖動;但是不能直接為生成時(shí)鐘設(shè)置輸入抖動,這部分由工具自動計(jì)算,如果(1).生成時(shí)鐘由一個(gè)組合或時(shí)序單元創(chuàng)建,生成時(shí)鐘的抖動與上級時(shí)鐘相同;(2).生成時(shí)鐘由 MMCM或PLL驅(qū)動,生成時(shí)鐘的抖動為一個(gè)自動計(jì)算的值;

系統(tǒng)抖動:指電源噪聲、板級噪聲或其它原因引起的整體的抖動,對于整個(gè)設(shè)計(jì),使用set_system_jitter命令設(shè)置一個(gè)值即可,會應(yīng)用到所有時(shí)鐘;

下面給出一個(gè)約束輸入抖動的例子:

#主時(shí)鐘傳輸過程中有±100ps的抖動

set_input_jitter [get_clocks -of_objects [get_clocks sysclk]] 0.1

不過,時(shí)鐘抖動對整個(gè)時(shí)鐘不確定性計(jì)算的影響不是太大。計(jì)算時(shí)鐘不確定性時(shí)對每條路徑都是獨(dú)立的,且主要依賴于時(shí)鐘拓?fù)浣Y(jié)構(gòu)、路徑上的時(shí)鐘對、時(shí)鐘樹上是否存在MMCM/PLL單元等其它因素;

3.附加的時(shí)鐘不確定性 Additional Clock Uncertainty

使用set_clock_uncertainty命令可以根據(jù)需要為特定的時(shí)鐘關(guān)系定義附加的時(shí)鐘不確定性,這樣在時(shí)序分析時(shí),可以為設(shè)計(jì)中的某些部分增加額外裕量

看下面的例子:

set_clock_uncertainty 2.0 -from [get_clocks clk1] -to [get_clocks clk2]

set_clock_uncertainty 1.0 [get_clocks clk1]

這里首先約束從clk1到clk2有一個(gè)2ns的時(shí)鐘不確定性,接著又約束clk1有1ns的時(shí)鐘不確定性,但是后面這條約束不會改動從clk1到clk2之間的關(guān)系;同時(shí),要注意clk1到clk2有時(shí)鐘間的不確定性,clk2到clk1也有時(shí)鐘間的不確定性,所以要約束完整!

審核編輯 :李倩

原文標(biāo)題:Vivado使用技巧時(shí)鐘的約束方法

文章出處:【微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 波形
    +關(guān)注

    關(guān)注

    3

    文章

    379

    瀏覽量

    31592
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66645

原文標(biāo)題:Vivado使用技巧時(shí)鐘的約束方法

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    labview基礎(chǔ)知識

    labview基礎(chǔ)知識labview基礎(chǔ)知識labview基礎(chǔ)知識labview基礎(chǔ)知識
    發(fā)表于 03-08 17:56

    Vivado軟件菜單基礎(chǔ)知識的Xilinx PDF?

    我在Digilent論壇上看到有關(guān)于學(xué)習(xí)Vivado軟件菜單基礎(chǔ)知識的Xilinx PDF,我在哪里可以找到PDF?此外,當(dāng)我安裝Vivado時(shí),我安裝了所有內(nèi)容,我是初學(xué)者,如果我只是安裝一個(gè)簡單的
    發(fā)表于 04-30 09:32

    STM32時(shí)鐘基礎(chǔ)知識總結(jié)

    STM32時(shí)鐘小結(jié)STM32時(shí)鐘是學(xué)習(xí)STM32的一個(gè)重要知識,但之前自己的學(xué)習(xí)經(jīng)常是一些零散的知識,缺乏對時(shí)鐘樹有一個(gè)很好的概念,比如在設(shè)
    發(fā)表于 08-23 06:53

    STM32時(shí)鐘樹的基礎(chǔ)知識點(diǎn)匯總,絕對實(shí)用

    STM32時(shí)鐘樹的基礎(chǔ)知識點(diǎn)匯總,絕對實(shí)用
    發(fā)表于 02-14 07:49

    通信基礎(chǔ)知識教程

    通信基礎(chǔ)知識 1、電信基礎(chǔ)知識2、通信電源技術(shù)3、配線設(shè)備結(jié)構(gòu)、原理與防護(hù)4、防雷基礎(chǔ)知識5、EMC基礎(chǔ)知識6、防腐蝕原理與技術(shù)7、產(chǎn)品安
    發(fā)表于 03-04 16:48 ?33次下載

    電子電路基礎(chǔ)知識

    電子電路基礎(chǔ)知識 電路基礎(chǔ)知識(一)電路基礎(chǔ)知識(1
    發(fā)表于 01-15 09:47 ?23.2w次閱讀

    電池基礎(chǔ)知識(集全版)

    電池基礎(chǔ)知識(集全版)  電池基礎(chǔ)知識
    發(fā)表于 11-10 14:19 ?2517次閱讀

    計(jì)算機(jī)基礎(chǔ)知識介紹

    計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)基礎(chǔ)知識
    發(fā)表于 12-03 16:13 ?0次下載

    使用Eclipse基礎(chǔ)知識

    使用Eclipse 基礎(chǔ)知識 使用Eclipse 基礎(chǔ)知識 適合初學(xué)者學(xué)習(xí)使用
    發(fā)表于 02-26 10:30 ?0次下載

    電源管理基礎(chǔ)知識電源管理基礎(chǔ)知識電源管理基礎(chǔ)知識

    電源管理基礎(chǔ)知識電源管理基礎(chǔ)知識電源管理基礎(chǔ)知識
    發(fā)表于 09-15 14:36 ?76次下載
    電源管理<b class='flag-5'>基礎(chǔ)知識</b>電源管理<b class='flag-5'>基礎(chǔ)知識</b>電源管理<b class='flag-5'>基礎(chǔ)知識</b>

    Vivado時(shí)鐘的兩大特性

    Vivado時(shí)鐘的兩大特性--時(shí)鐘延遲和時(shí)鐘的不確定性。
    發(fā)表于 11-17 11:38 ?5730次閱讀
    <b class='flag-5'>Vivado</b><b class='flag-5'>時(shí)鐘</b>的兩大特性

    PCW的基礎(chǔ)知識概述

    了解如何從針對Xilinx新Zynq Ultrascale + MPSoC的Vivado設(shè)計(jì)套件訪問處理系統(tǒng)配置向?qū)В≒CW),以及如何熟悉PCW的基礎(chǔ)知識。 在這個(gè)Vivado Quick Take Video中,您還將學(xué)習(xí)
    的頭像 發(fā)表于 11-29 06:27 ?8843次閱讀
    PCW的<b class='flag-5'>基礎(chǔ)知識</b>概述

    詳解Vivado時(shí)鐘基礎(chǔ)知識

    數(shù)字設(shè)計(jì)中,“時(shí)鐘”表示在寄存器間可靠地傳輸數(shù)據(jù)所需的參考時(shí)間。Vivado的時(shí)序引擎通過時(shí)鐘特征來計(jì)算時(shí)序路徑需求,通過計(jì)算裕量(Slack)的方法報(bào)告設(shè)計(jì)時(shí)序空余。時(shí)鐘必須有合適的
    的頭像 發(fā)表于 04-20 10:40 ?9173次閱讀

    時(shí)鐘抖動解秘—高速鏈路時(shí)鐘抖動規(guī)范基礎(chǔ)知識

    時(shí)鐘抖動解秘—高速鏈路時(shí)鐘抖動規(guī)范基礎(chǔ)知識
    發(fā)表于 11-07 08:07 ?2次下載
    <b class='flag-5'>時(shí)鐘</b>抖動解秘—高速鏈路<b class='flag-5'>時(shí)鐘</b>抖動規(guī)范<b class='flag-5'>基礎(chǔ)知識</b>

    優(yōu)質(zhì)LDO基礎(chǔ)知識分享

    本節(jié)分享下LDO的基礎(chǔ)知識,主要來源于Ti的文檔《LDO基礎(chǔ)知識》。
    的頭像 發(fā)表于 03-26 11:03 ?1373次閱讀