国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vivado使用技巧:時(shí)鐘的約束方法

這篇具有很好參考價(jià)值的文章主要介紹了Vivado使用技巧:時(shí)鐘的約束方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

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

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

●定義在時(shí)鐘樹的驅(qū)動(dòng)管腳或端口,通常稱作根或源點(diǎn);
●通過周期和波形屬性來描述時(shí)鐘邊沿;
●周期(period)以ns為單位進(jìn)行設(shè)定,與波形重復(fù)率相關(guān);
●波形(waveform)以列表的形式給出,表中包含上升沿和下降沿在周期中的絕對(duì)時(shí)間,以ns為單位;第一個(gè)上升沿對(duì)應(yīng)于第一個(gè)值,第一個(gè)下降沿對(duì)應(yīng)第二個(gè)值;默認(rèn)情況下,相位偏移從0ns開始,占空比為50%;

如下圖給出了兩個(gè)時(shí)鐘Clk0: period=10, waveform={0 5}、Clk1: period=8, waveform = {2 8};?
Vivado使用技巧:時(shí)鐘的約束方法

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

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

2.1 主時(shí)鐘Primary Clock

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

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

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

?????????板級(jí)時(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] ?#板級(jí)時(shí)鐘名稱devclk,10ns周期,25%占空比,90°相移

第二個(gè)例子,時(shí)鐘源由高速收發(fā)器gt0提供,如下圖所示:
Vivado使用技巧:時(shí)鐘的約束方法

??????????通過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í)鐘的輸入方式:
Vivado使用技巧:時(shí)鐘的約束方法

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

create_clock -name sysclk -period 3.33 [get_ports SYS_CLK_clk_p]

?2.2 虛擬時(shí)鐘Virtual Clock

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

所有的設(shè)計(jì)時(shí)鐘都不是外部器件I/O的參考時(shí)鐘;
FPGA的I/O路徑與一個(gè)內(nèi)部生成的時(shí)鐘相關(guān),但是該時(shí)鐘不能合適地通過對(duì)板級(jí)時(shí)鐘計(jì)時(shí)來生成(如兩個(gè)周期的比不是整數(shù));
希望為與I/O延遲約束相關(guān)的時(shí)鐘設(shè)定不同的抖動(dòng)和延遲,但是不希望修改內(nèi)部時(shí)鐘的特征 ;
比如時(shí)鐘clk_virt的周期為10ns,且不與任何網(wǎng)表對(duì)象相連,可以這樣定義“create_clock -name clk_virt –period 10”,沒有指定objects參數(shù);注意,虛擬時(shí)鐘必須在使用之前便定義好 ;

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

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

Vivado計(jì)算生成時(shí)鐘的延遲時(shí),會(huì)追蹤生成時(shí)鐘的源管腳與上級(jí)時(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分頻
Vivado使用技巧:時(shí)鐘的約束方法

?可以采用如下兩種方法對(duì)生成時(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è)定上級(jí)時(shí)鐘,但如上所示,該選項(xiàng)只能設(shè)定為一個(gè)端口或管腳類型的網(wǎng)表對(duì)象,不能直接設(shè)置為時(shí)鐘類型對(duì)象。上面約束使用-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è)沿對(duì)應(yīng)master clock的上升沿的位置
?-edges的參數(shù)為一個(gè)列表,該列表通過主時(shí)鐘的邊沿來描述生成時(shí)鐘的波形;列表中的值為主時(shí)鐘邊沿的序號(hào)(注意觀察上圖),由時(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í)使用;下圖中上級(jí)時(shí)鐘為clkin,進(jìn)入mmcm0單元,產(chǎn)生一個(gè)25%占空比、相移90°的時(shí)鐘:
Vivado使用技巧:時(shí)鐘的約束方法

????????可以采用如下方法對(duì)生成時(shí)鐘進(jìn)行約束:使用上級(jí)時(shí)鐘的1、2、3標(biāo)號(hào)邊沿(即0ns、5ns、10ns)定義生成時(shí)鐘,為了得到預(yù)期波形,1和3標(biāo)號(hào)邊沿要分別移動(dòng)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í)會(huì)自動(dòng)創(chuàng)建相應(yīng)約束;考慮上例中的圖,假設(shè)MMCM將上級(jí)時(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.僅通過組合路徑追蹤上級(jí)時(shí)鐘

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

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

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

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

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

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

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

?時(shí)鐘組Clock Group

?默認(rèn)情況下,Vivado會(huì)測量設(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不會(huì)對(duì)不同時(shí)鐘組的時(shí)鐘之間進(jìn)行時(shí)序分析;
set_false_path:將兩個(gè)時(shí)鐘之間的路徑設(shè)置為false path后,不會(huì)對(duì)該路徑進(jìn)行任何時(shí)序分析;
?根據(jù)時(shí)鐘間的關(guān)系,可以做如下分類:

同步時(shí)鐘:即兩個(gè)時(shí)鐘間有可預(yù)知的相對(duì)相位,通常它們的時(shí)鐘樹源自網(wǎng)表中的同一個(gè)根,且有一個(gè)公共周期;
異步時(shí)鐘:兩個(gè)時(shí)鐘間有無法預(yù)知的相對(duì)相位。比如兩個(gè)獨(dú)立的晶振信號(hào)通過兩個(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法再次對(duì)齊;
?
1.異步時(shí)鐘組?
同步時(shí)鐘可以安全地進(jìn)行時(shí)序分析,異步時(shí)鐘和不可擴(kuò)展時(shí)鐘雖然通過時(shí)序分析也會(huì)得到一個(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
????????下面再介紹另一種會(huì)用到時(shí)鐘組的情況:某些設(shè)計(jì)會(huì)有幾個(gè)操作模式,不同操作模式使用不同的時(shí)鐘,這些時(shí)鐘通常由專用的時(shí)鐘選擇器進(jìn)行選擇,如BUFGMUX和BUFGCTRL,最好不要用LUT作時(shí)鐘選擇器;

這些單元都是組合邏輯單元,Vivado會(huì)將所有輸入傳遞到輸出;在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ū)動(dòng)設(shè)計(jì)時(shí)鐘樹;默認(rèn)情況下,雖然clk0和clk1共享同一時(shí)鐘樹,且不能同時(shí)存在,Vivado還是會(huì)分析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代表不同的信號(hào)完整性分析模式,但對(duì)于Xilinx FPGA而言,二者是等價(jià)的,都可以使用;?

時(shí)鐘延遲、抖動(dòng)與不確定性
?本文的上述約束可以說都是對(duì)時(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á)目的地后會(huì)有一個(gè)確定的延遲,這個(gè)延遲可以分為兩個(gè)部分看待:

網(wǎng)絡(luò)延遲:也稱作插入延遲,指在FPGA內(nèi)部傳輸帶來的延遲;Vivado會(huì)自動(dòng)分析計(jì)算該延遲,布線過程前只是一個(gè)粗略的估計(jì),布線后便可以得到一個(gè)精確的值;對(duì)于生成時(shí)鐘,包含其本身的網(wǎng)絡(luò)延遲和上級(jí)時(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í)鐘抖動(dòng)jitter?
????????對(duì)于ASIC器件來說,時(shí)鐘抖動(dòng)通常代表了時(shí)鐘不確定性特征;但對(duì)于Xilinx FPGA而言,抖動(dòng)屬性被當(dāng)作可預(yù)測變量看待;抖動(dòng)有的需要單獨(dú)設(shè)置,有的在時(shí)序分析過程中自動(dòng)計(jì)算,抖動(dòng)分為兩種:

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

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

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

#主時(shí)鐘傳輸過程中有±100ps的抖動(dòng)
set_input_jitter [get_clocks -of_objects [get_clocks sysclk]] 0.1

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

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

前面文章說過XDC約束帶有順序性,后面的約束會(huì)重寫前面的約束。但在這里,時(shí)鐘間的不確定性總是優(yōu)先于單個(gè)時(shí)鐘的不確定性,不管約束順序如何;看下面的例子:

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í)鐘不確定性,但是后面這條約束不會(huì)改動(dòng)從clk1到clk2之間的關(guān)系;同時(shí),要注意clk1到clk2有時(shí)鐘間的不確定性,clk2到clk1也有時(shí)鐘間的不確定性,所以要約束完整!?文章來源地址http://www.zghlxwxcb.cn/news/detail-475410.html

到了這里,關(guān)于Vivado使用技巧:時(shí)鐘的約束方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 深入解析 Axios Blob 的使用方法及技巧

    深入解析 Axios Blob 的使用方法及技巧

    在 Web 開發(fā)中,處理文件傳輸是一個(gè)常見的需求。Blob(二進(jìn)制對(duì)象)是一種表示二進(jìn)制數(shù)據(jù)的方式,常用于處理文件和多媒體數(shù)據(jù)。本文將介紹如何使用? Axios ?和 Blob 來處理文件傳輸。 在開始之前,讓我們先了解一下 Axios 和 Blob 的基本概念。 Axios :Axios 是一個(gè)基于 Promis

    2024年02月12日
    瀏覽(31)
  • PyInstaller詳細(xì)攻略:安裝、使用方法及經(jīng)驗(yàn)技巧

    PyInstaller詳細(xì)攻略:安裝、使用方法及經(jīng)驗(yàn)技巧 PyInstaller是一款優(yōu)秀的Python打包工具,可以將Python程序打包成單個(gè)可執(zhí)行文件,方便程序在其他環(huán)境中運(yùn)行。本篇文章將介紹PyInstaller的安裝、使用方法及如何去除cmd黑框、隱藏導(dǎo)入的模塊等經(jīng)驗(yàn)技巧。 一、安裝PyInstaller PyInsta

    2024年02月06日
    瀏覽(33)
  • 飛魚星路由器的使用方法與技巧簡介

    ? 一、Reset鍵 1、就像電腦系統(tǒng)的一鍵還原一樣,路由器上的Reset鍵也能幫助我們解決很多問題當(dāng)路由器的基本設(shè)置出現(xiàn)混亂,甚至進(jìn)入配置界面的IP地址都找不到時(shí),這時(shí)我們可以用Reset持續(xù)按住該按鈕幾秒鐘,就能將該設(shè)備的所有參數(shù)恢復(fù)到出廠配置,以便我們重新配置。

    2024年02月05日
    瀏覽(31)
  • Spring Boot常用的參數(shù)驗(yàn)證技巧和使用方法

    Spring Boot是一個(gè)使用Java編寫的開源框架,用于快速構(gòu)建基于Spring的應(yīng)用程序。在實(shí)際開發(fā)中,經(jīng)常需要對(duì)輸入?yún)?shù)進(jìn)行驗(yàn)證,以確保數(shù)據(jù)的完整性和準(zhǔn)確性。Spring Boot提供了多種方式來進(jìn)行參數(shù)驗(yàn)證,并且可以很方便地集成到應(yīng)用程序中。 JSR-303是Java Validation API的規(guī)范之一,

    2024年02月09日
    瀏覽(59)
  • AI智能化辦公:ChatGPT使用方法與技巧

    AI智能化辦公:ChatGPT使用方法與技巧

    隨著人工智能技術(shù)的不斷發(fā)展,AI助手在辦公場景中扮演著越來越重要的角色。其中,ChatGPT作為一款強(qiáng)大的自然語言處理模型,為用戶提供了高效的辦公輔助功能。本文將介紹ChatGPT的使用方法與一些技巧,幫助讀者更好地利用這一工具提高工作效率。 ChatGPT是由OpenAI公司開發(fā)

    2024年02月04日
    瀏覽(28)
  • 微軟筆記軟件onenote使用方法和技巧(不定期新增)

    微軟筆記軟件onenote使用方法和技巧(不定期新增)

    不知道有多少人喜歡用電子筆記,反正我除了公式有時(shí)候會(huì)在紙上寫,其他的筆記都用電子版。畢竟用紙筆記錄的筆記,沒法隨時(shí)隨地查看與修改,也沒法任意新增,有時(shí)候要跟別人討論,帶一個(gè)pad肯定比帶幾個(gè)筆記本要舒服。 云同步、多設(shè)備、搜索、OCR 這些功能,讓電子

    2024年02月07日
    瀏覽(34)
  • 掌握AI智能化辦公:ChatGPT使用方法與技巧指南

    掌握AI智能化辦公:ChatGPT使用方法與技巧指南

    ?? 個(gè)人網(wǎng)站:【 海擁】【神級(jí)代碼資源網(wǎng)站】【辦公神器】 ?? 基于Web端打造的:??輕量化工具創(chuàng)作平臺(tái) ?? 想尋找共同學(xué)習(xí)交流的小伙伴,請點(diǎn)擊【全棧技術(shù)交流群】 ChatGPT簡介 ChatGPT是基于GPT(Generative Pre-trained Transformer)模型的一種應(yīng)用。GPT模型通過大規(guī)模的預(yù)訓(xùn)練數(shù)據(jù)

    2024年02月05日
    瀏覽(56)
  • AI繪畫教程:Midjourney 使用方法與技巧從入門到精通

    AI繪畫教程:Midjourney 使用方法與技巧從入門到精通

    ?? 個(gè)人網(wǎng)站:【 海擁】【神級(jí)代碼資源網(wǎng)站】【辦公神器】 ?? 基于Web端打造的:??輕量化工具創(chuàng)作平臺(tái) ?? 想尋找共同學(xué)習(xí)交流的小伙伴,請點(diǎn)擊【全棧技術(shù)交流群】 導(dǎo)論 隨著人工智能技術(shù)的不斷發(fā)展,AI繪畫成為了一個(gè)備受關(guān)注的領(lǐng)域。Midjourney 是一款備受好評(píng)的AI繪畫

    2024年03月12日
    瀏覽(34)
  • 【C/C++】format 格式化方法使用技巧(代碼實(shí)例,皆可運(yùn)行)

    當(dāng)使用 __attribute__((format(printf, ...))) 語法時(shí),可以使用 printf 函數(shù)作為一個(gè)例子來說明它的作用。下面是一個(gè)簡單的示例代碼: 在這個(gè)示例代碼中, my_printf 函數(shù)使用了 __attribute__((format(printf, 1, 2))) 語法來指定函數(shù)參數(shù)的格式。這樣,編譯器就可以檢查函數(shù)調(diào)用時(shí)傳遞的參數(shù)是

    2023年04月20日
    瀏覽(26)
  • 虛擬機(jī)內(nèi)存、處理器、內(nèi)存、快照的修改方法(虛擬機(jī)VMware使用技巧 上 )

    虛擬機(jī)內(nèi)存、處理器、內(nèi)存、快照的修改方法(虛擬機(jī)VMware使用技巧 上 )

    1、基礎(chǔ)設(shè)置 ①、內(nèi)存 VMware有兩項(xiàng)基礎(chǔ)的設(shè)置 內(nèi)存 和 處理器 。先說內(nèi)存設(shè)置,主要是設(shè)置內(nèi)存的大小。安裝虛擬軟件的主機(jī)內(nèi)存最好不低于16G,最好32G。主機(jī)內(nèi)存太小不適合運(yùn)行虛擬機(jī)軟件。 16G的內(nèi)存可以主機(jī)和虛擬機(jī)對(duì)半分,主機(jī)留8G,虛擬機(jī)分8G。32G的內(nèi)存可以按照主

    2024年02月09日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包