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

FPGA時序分析與時序約束(二)——時鐘約束

這篇具有很好參考價值的文章主要介紹了FPGA時序分析與時序約束(二)——時鐘約束。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

一、時序約束的步驟

二、時序網(wǎng)表和路徑

2.1 時序網(wǎng)表

2.2 時序路徑?

三、時序約束的方式

三、時鐘約束

3.1 主時鐘約束

3.2 虛擬時鐘約束

3.3?衍生時鐘約束

3.4 時鐘組約束

3.5 時鐘特性約束

3.6 時鐘延時約束


一、時序約束的步驟

????????上一章了解了時序分析和約束的很多基本概念(FPGA時序分析與時序約束(一)),只需要去理解如何進(jìn)行時序分析即可,而我們只需要對綜合工具提出時序約束的要求,綜合工具就會對這些路徑進(jìn)行計算。而時序約束可以分為四個主要步驟進(jìn)行

1.時鐘約束(Create Clock):主時鐘、虛擬時鐘、衍生時鐘;
2.輸入/輸出接口約束(Input/Output Delays,I/O約束):系統(tǒng)同步接口、源同步接口;
3.時鐘分組和跨時鐘約束(Clock Groups and CDC):異步;
4.時序例外約束(Timing Exceptions):多周期路徑、虛假路徑。

? ? ? ? 而一般時序分析會涉及三種情況

最好的條件(Best Case):速度最快的情況;

最壞的條件(Worst?Case):速度最慢的情況;

典型的條件(Typical?Case):速度介于最快和最慢之間。

? ? ? ? 這三種情況分別對應(yīng)如下細(xì)節(jié)

BCF(Best Case):fast process, lowest temperature, high voltage;
WCS (Worst Case):slow process, high temperature, lowest voltage;
TYP(Typical Case):typical process, nominal temperature, nominal voltage.

? ? ? ? 其中芯片工藝(process)、電壓(voltage)、溫度(temperature) 共同組成了PVT組合,時序分析工具會根據(jù)仿真需求使用不同的PVT組合用于STA分析。

? ? ? ? 芯片的工藝角(Process corner)分為快速工藝角(fast corner)、慢速工藝角(slow corner)、典型工藝角(typical corner)。時序分析工具通過Worst corner 保證建立時間的時序,通過Best corner來保證保持時間的時序。由于一般情況下設(shè)計以建立時間違例為主,所以時序分析工具默認(rèn)使用slow corner。

二、時序網(wǎng)表和路徑

2.1 時序網(wǎng)表

? ? ? ? 時序網(wǎng)表包含設(shè)計的綜合節(jié)點(diǎn)和連接,時序分析工具需要網(wǎng)表來執(zhí)行時序分析。而時序網(wǎng)表將設(shè)計單元劃分成單元、管腳、網(wǎng)絡(luò)和端口來進(jìn)行延遲的測量。max10 fpga 時鐘輸入范圍,# FPGA時序分析與約束,fpga開發(fā),FPGA,verilog,時序約束,時序分析

  • Cell?: FPGA中的基本結(jié)構(gòu)單元,包含查找表、寄存器、DSP、I/O單元等;
  • Pin?: Cell的輸入輸出端口(這里的Pins不包括器件的輸入輸出引腳);
  • Net?: 兩個或多個互連組件的集合;
  • Port?: 頂層邏輯的輸入輸出端口,對應(yīng)已經(jīng)分配的器件引腳。?

2.2 時序路徑?

? ? ? ? 時序分析工具對設(shè)計中確定的所有時序路徑的時序性能進(jìn)行測量,時序路徑分為四種:

  • 邊沿路徑 (Edge paths) —從端口到管腳,從管腳到管腳以及從管腳到端口的連接;
  • 時鐘路徑(Clock paths)—從器件端口或內(nèi)部生成的時鐘管腳到寄存器的時鐘管腳的連接;
  • 數(shù)據(jù)路徑(Data paths)—從順序單元的端口或數(shù)據(jù)輸出管腳到另一個順序單元的端口或數(shù)據(jù)輸入管腳的連接;
  • 異步路徑(Asynchronous paths)—從另一個順序單元(例如異步復(fù)位或異步清除)的異步管腳或端口的連接。

max10 fpga 時鐘輸入范圍,# FPGA時序分析與約束,fpga開發(fā),FPGA,verilog,時序約束,時序分析

三、時序約束的方式

? ? ? ? 到現(xiàn)在位置,時序約束的概念、步驟、順序等都概念都有所了解了,那么到底怎么樣進(jìn)行時序約束呢?時序約束的方式主要有兩種:

1.通過FPGA開發(fā)工具進(jìn)行約束,Intel的是Timing Analyzer,Xilinx的是Vavado

2.通過Tcl語言手動編寫約束腳本

三、時鐘約束

3.1 主時鐘約束

????????主時鐘通常是FPGA器件外部的板級時鐘(如晶振、數(shù)據(jù)傳輸?shù)耐綍r鐘等)或FPGA的高速收發(fā)器輸出數(shù)據(jù)的同步恢復(fù)時鐘信號等。

? ? ? ? 通過create_clock命令可對主時鐘進(jìn)行約束定義:

create_clock -name<clock_name> -period<period> -waveform{<rise_time><fall_time>} [get_ports<port_name>]
  • <clock_name>是設(shè)計者自定義的主時鐘名稱,后續(xù)的約束若引用已經(jīng)定義的時鐘,<clock_name>是唯一的引用標(biāo)識,如果不指定,則會默認(rèn)使用<port_name>所指定的時鐘物理節(jié)點(diǎn);
  • <period>是主時鐘周期,單位ns,取值必須大于0;
  • waveform的<rise_time>是上升沿時間,默認(rèn)0,<fall_time>是下降沿時間,默認(rèn)時鐘周期一半,單位都是ns;這里可以理解為設(shè)置時鐘的占空比,如果沒有定義wavaform則默認(rèn)占空比50%;
  • get_ports表示定義的時鐘是FPGA的物理引腳,<port_name>是定義的主時鐘的物理節(jié)點(diǎn)名稱;FPGA內(nèi)部網(wǎng)絡(luò)也能作為主時鐘的物理節(jié)點(diǎn),使用get_nets定義;高速收發(fā)器的引腳則使用get_pins定義。

????????主時鐘是幫助時序分析工具定義了時序路徑分析的一個時間零點(diǎn),時鐘傳輸過程中的延時和不確定性都會基于這個時間零點(diǎn)進(jìn)行計算和分析,而其他時序約束也會經(jīng)常引用主時鐘,因此在時序約束中必須先定義主時鐘約束。

引腳輸入的主時鐘約束?

max10 fpga 時鐘輸入范圍,# FPGA時序分析與約束,fpga開發(fā),FPGA,verilog,時序約束,時序分析

????????如上圖是一個周期10ns、占空比50%的時鐘sysclk接在sysclk端口上,對該輸入時鐘引腳的約束為:

//周期10ns、占空比50%的時鐘sysclk接在sysclk端口上
create_clock -period 10 [get_ports sysclk]

//周期10ns、占空比25%、相位偏移 90° 的時鐘devclk接在ClkIn端口上
create_clock -name devclk -period 10 -waveform {2.5 5} [get_ports ClkIn]

高速收發(fā)器主時鐘約束?

? ? ? ? ?高速傳輸器的輸出時鐘網(wǎng)絡(luò)經(jīng)過時鐘管理單元mmcn0后會產(chǎn)生多個衍生時鐘,此時通常要將GT傳輸器的輸出時鐘作為主時鐘約束。

//周期3.33ns、占空比50%的時鐘rxclk接在gt0/RXOUTCLK端口上
create_clock -name rxclk -period 3.33 [get_ports gt0/RXOUTCLK]

max10 fpga 時鐘輸入范圍,# FPGA時序分析與約束,fpga開發(fā),FPGA,verilog,時序約束,時序分析

差分信號主時鐘約束

? ? ? ? 當(dāng)差分緩沖器產(chǎn)生的時鐘信號作為PLL的輸入時鐘,只需要對差分緩沖器的正端(SYS_CLK_clk_p)進(jìn)行約束,因?yàn)橹付ㄕ撕髸r序分析工具就能自動識別負(fù)端。

create_clock -name sysclk -period 3.33 [get_ports SYS_CLK_clk_p]

max10 fpga 時鐘輸入范圍,# FPGA時序分析與約束,fpga開發(fā),FPGA,verilog,時序約束,時序分析

3.2 虛擬時鐘約束

? ? ? ? 在主時鐘約束的基本語法中,get_ports是指主時鐘的實(shí)際物理節(jié)點(diǎn),意味著這個主時鐘是實(shí)際存在于FPGA器件內(nèi)的。但虛擬時鐘并不是實(shí)際存在于FPGA器件中,因此在物理上沒有連接任何網(wǎng)表,它是用于描述時序數(shù)據(jù)引腳的外部時鐘信號

????????虛擬時鐘必須在輸入和輸出延遲約束使用之前定義,通常被用于以下情況的輸入和輸出延時約束:

  • 時序分析(一般是I/O引腳相關(guān)的時序路徑)的參考時鐘不是FPGA內(nèi)部的設(shè)計時鐘(主時鐘);
  • 與FPGA器件的I/O路徑相關(guān)的內(nèi)部驅(qū)動時鐘與其板級驅(qū)動時鐘不同步;
  • 對I/O的驅(qū)動時鐘指定一些特殊的抖動和延時值,但不希望影響此時鐘在FPGA內(nèi)部的時鐘傳輸特性。

????????虛擬時鐘同樣用create_clock定義,只是省去了端口項(xiàng),:

create_clock -name<clock_name> -period<period> -waveform{<rise_time><fall_time>}

? ? ? ? 比如在一些引腳上的數(shù)據(jù)信號,其同步時鐘只存在于外部芯片,并不存在于FPGA器件,此時為了時序分析也需要定義一個時鐘用于外部時鐘信號,即虛擬時鐘。

系統(tǒng)同步接口的虛擬時鐘約束

max10 fpga 時鐘輸入范圍,# FPGA時序分析與約束,fpga開發(fā),FPGA,verilog,時序約束,時序分析? ? ? ? ?如上圖reg2的驅(qū)動時鐘是真實(shí)存在的,可以對其進(jìn)行主時鐘約束;外部芯片中reg1的主時鐘并不會傳輸?shù)絝pga器件,可以對其進(jìn)行虛擬時鐘約束:

create_clock -period 10 -name VIR_SLK -waveform {0 5}
create_clock -period 10 -name SYS_SLK -waveform {0 5} [get_clock clk]

3.3?衍生時鐘約束

? ? ? ? 衍生時鐘是主時鐘進(jìn)行分頻,倍頻,相移而產(chǎn)生的時鐘信號,如時鐘管理單元MMCM或PLL所驅(qū)動產(chǎn)生的時鐘信號。衍生時鐘的定義取決于主時鐘的特性,衍生時鐘的約束必須指定時鐘源,這個時鐘源可以是一個已經(jīng)約束好的主時鐘或另一個衍生時鐘。衍生時鐘并不直接定義頻率、占空比等參數(shù),而是定義其與時鐘源的相對關(guān)系,如分頻系數(shù)、倍頻系數(shù)、相移差值、占空比轉(zhuǎn)換等。

? ? ? ? 衍生時鐘分為自動衍生時鐘(Auto-Generated Clocks)和手動衍生時鐘。時序工具能夠識別時鐘調(diào)整模塊(Clock Modifying Blocks,CMB)及其基于輸入主時鐘的變更特性,自動為CMB輸出的時鐘信號創(chuàng)建約束。若設(shè)計者認(rèn)為自動衍生時鐘有誤,可使用create_generate_clock命令重新約束衍生時鐘,此時自動衍生時鐘的約束會被忽略。

? ? ? ? 可以通過check_timing命令查看為約束的主時鐘和衍生始終,通過create_generate_clock命令對其進(jìn)行約束:

create_generated_clock -name <generated_clock_name>
                       -source <master_clock_source_pin_or_port>
                       -multiply_by <mult_factor>\
                       -divide_by <div_factor>
                       <pin_or_port>
  • <generated_clock_name>是用于指定的衍生時鐘名,若不指定則由pin_or_port指定物理節(jié)點(diǎn)作為名稱;

  • <master_clock_source_pin_or_port>指定源時鐘的物理節(jié)點(diǎn)(引腳或端口),源時鐘可以是一個主時鐘、虛擬時鐘或者衍生時鐘;

  • <mult_factor>指定衍生時鐘相對于源時鐘的倍頻系數(shù),值必須大于等于1.0;

  • <div_factor>指定衍生時鐘相對于源時鐘的分頻系數(shù),值必須大于等于1.0;

  • <pin_or_port>指定衍生時鐘的物理節(jié)點(diǎn)、引腳或端口名稱。

2分頻的衍射時鐘約束?

max10 fpga 時鐘輸入范圍,# FPGA時序分析與約束,fpga開發(fā),FPGA,verilog,時序約束,時序分析

// 主時鐘約束
create_clock -name clkin -period 10 [get_ports clkin]  
// 將clkin作為時鐘源
create_generated_clock -name clkdiv2 -source [get_ports clkin] -divide_by 2 [get_pins REGA/Q]  
// 將REGA作為時鐘源
create_generated_clock -name clkdiv2 -source [get_pins REGA/C] -divide_by 2 [get_pins REGA/Q]

????????可以使用 -edges選項(xiàng)直接描述基于主時鐘邊沿的生成時鐘的波形,而不是使用-divide_by選項(xiàng)。參數(shù)是主時鐘邊沿索引列表,用于定義生成的時鐘邊沿的時間位置,從時鐘上升沿開始。?

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

? ? ? ? 可以使用-divide_by、?-multiply_by實(shí)現(xiàn)分頻和倍頻

#4/3倍頻的衍生時鐘
create_generated_clock -name clkdiv4_3 -source [get_pins mmcm0/CLKIN] -multiply_by 4 -divide_by 3 [get_pins mmcm0/CLKOUT]  

?相位偏移的衍生時鐘約束

????????可以使用-edges、-edge_shift實(shí)現(xiàn)占空比改變和相移,max10 fpga 時鐘輸入范圍,# FPGA時序分析與約束,fpga開發(fā),FPGA,verilog,時序約束,時序分析

# 生成占空比25%且相移90°的衍生時鐘,主時鐘的邊沿分別為1、2、3,衍生時鐘則需要將邊沿移動2.5、0、2.5
# First rising edge: 0ns + 2.5ns = 2.5ns
# Falling edge: 5ns + 0ns = 5ns
# Second rising edge: 10ns + 2.5ns = 12.5ns 
create_clock -name clkin -period 10 [get_ports clkin]
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.4 時鐘組約束

? ? ? ? 時鐘組能夠指定設(shè)計中哪些時鐘是不相關(guān)的。默認(rèn)情況下,時序分析工具會對所有時鐘之間的路徑進(jìn)行時序分析,除非通過使用時鐘組(clock group)或虛假路徑(false path)約束來指定。set_clock_groups命令禁用所識別的時鐘組之間的時序分析,而不禁用同一組內(nèi)的時鐘之間的時序分析。

????????可以多次使用-group選項(xiàng)指定多個時鐘組。如果在設(shè)計中沒有時鐘組中的時鐘,則時鐘組為空。set_clock_groups約束僅當(dāng)至少有兩個組有效且不為空時才有效。如果只有一個組仍然有效,而所有其他組都為空,則不應(yīng)用set_clock_groups約束,會生成錯誤消息。

set_clock_groups [-asynchronous] [-exclusive] -group <names>
  • -asynchronous :?指定互斥時鐘(與 -exclusive 選項(xiàng)相同)。存在是為了兼容性;
  • -exclusive :?指定互斥時鐘;
  • -group :?有效目的地(使用Tcl字符串匹配來匹配字符串模式)。

????????時鐘組提供了一種快速便捷的方法來指定哪些時鐘不相關(guān)。異步時鐘是那些完全不相關(guān)的時鐘(例如,具有不同的理想時鐘源)。獨(dú)占時鐘是那些不同時激活的時鐘(例如,多路復(fù)用時鐘)。 TimeQuest 將“-exclusive”和“-asynchronous”這兩個選項(xiàng)視為相同。 set_clock_groups 的結(jié)果是任何組中的所有時鐘都與其他組中的所有時鐘相分離。該命令相當(dāng)于從每個組中的每個時鐘到每個其他組中的每個時鐘調(diào)用 set_false_path ,反之亦然,使得 set_clock_groups 更容易指定以切割時鐘域。使用單個 -group 選項(xiàng)告訴 TimeQuest 將這組時鐘從設(shè)計中的所有其他時鐘中刪除,包括將來創(chuàng)建的時鐘。

create_clock -period 10.000 -name clkA [get_ports sysclk[0]] 
create_clock -period 10.000 -name clkB [get_ports sysclk[1]] 
# 設(shè)置clkA和clkB為互斥時鐘
set_clock_groups -exclusive -group {clkA} -group {clkB} 
# 上一行相當(dāng)于以下兩條命令
set_false_path -from [get_clocks clkA] -to [get_clocks clkB] 
set_false_path -from [get_clocks clkB] -to [get_clocks clkA]

3.5 時鐘特性約束

? ? ? ? 當(dāng)時鐘在FPGA內(nèi)部傳輸時,會因?yàn)闀r鐘走線路徑和硬件噪聲引起時鐘沿的延時和波形變化,稱其為時鐘傳輸延時和不確定性。在FPGA的時序分析中主要通過時鐘抖動(Clock Jitter)和時鐘不確定性(Clock Uncertainty)進(jìn)行約束定義。

3.5.1 時鐘抖動

輸入抖動

????????輸入抖動是連續(xù)的時鐘邊緣與標(biāo)準(zhǔn)或理想的時鐘到達(dá)時間的差值。輸入抖動是一個絕對值,表示時鐘邊緣兩側(cè)的變化。set_input_jitter命令只能約束主時鐘,不能用于約束衍生時鐘的抖動值。但除了MMCM或PLL外,主時鐘設(shè)定的抖動值會傳遞給它的衍生時鐘。

set_input_jitter [get_clock<clock_name>] <jitter_in_ns>
  • get_clocks用于指定需要約束抖動值的主時鐘名<clock_name>;
  • <jitter_in_ns>指定抖動值,取值必須大于等于0ns。?
# 約束多個主時鐘的抖動值需要多條set_input_jitter命令
set_input_jitter clk1 0.3
set_input_jitter clk2 0.3

# 主時鐘抖動值會傳遞給衍生時鐘
create_clock -period 10 -name sysclk [get_ports clk]
create_generated_clock -name sysclkdiv2 -source [get_ports sysclk] -divide_by 2 [get_pins clkgen/sysclkdiv/Q]
set_input_jitter sysclk 0.15

? ?系統(tǒng)抖動

????????系統(tǒng)抖動是由于電源噪聲、板噪聲或任何額外的系統(tǒng)抖動造成的整體抖動,使用set_system_jitter命令約束系統(tǒng)抖動。

set_input_jitter <jitter_in_ns>
  • <jitter_in_ns>指定所有時鐘的系統(tǒng)抖動值,取值必須大于等于0ns。?

3.5.2 時鐘不確定性

? ? ? ? 除時鐘抖動以外的所有可能影響時鐘周期性偏差的因素,都可以使用set_clock_uncertainty命令進(jìn)行約束。

set_clock_uncertainty -setup -form [get_clocks<clock0_name>] -to [get_clocks<clock1_name>]<uncertainy_value>
  • -setup表示定義建立時間檢查的時鐘不確定性時間,也可以使用hold表示定義保持時間檢查的時鐘不確定性時間;如果不指定-setup和-hold,則表示同時定義建立時間堅持和保持時間檢查的不確定時間;
  • -from指定源時鐘,-to指定目標(biāo)時鐘,對于非跨時鐘域的路徑一般不需要指定from和to;
  • get_clocks用于指定實(shí)際的屋里節(jié)點(diǎn)名稱;
  • <uncertainty_value> 指定時鐘不確定時間,單位ns。

? ? ? ? 為了區(qū)分set_clock_uncertainty命令約束的時鐘不確定值和用于時序分析計算出的時鐘不確定時間,稱set_clock_uncertainty命令約束的時鐘不確定值為用戶不確定性(User Uncertainty,UU)時間,UU時用于時序分析的時鐘不確定時間的一部分。

? ? ? ? 時序分析的Clock Uncertainty時間計算公式如下:

max10 fpga 時鐘輸入范圍,# FPGA時序分析與約束,fpga開發(fā),FPGA,verilog,時序約束,時序分析

  • Tsj是最壞情況的系統(tǒng)抖動時間,由set_system_jitter設(shè)定值換算而來;
  • Tij是set_input_jitter設(shè)定的輸入抖動時間;
  • Dj是由一些硬件原語(MMCM或PLL等)產(chǎn)生的離散時鐘抖動;
  • PE(Phase Error)是由MMCM或PLL等產(chǎn)生的相位誤差,一般都有固定值;
  • UU(User Uncertainty)是set_clock_uncertainty設(shè)定的時鐘不確定性值。

? ? ? ? 而在進(jìn)行建立時間關(guān)系和保持時間關(guān)系的Data Required Time計算時,都會將?Clock Uncertainty時間考慮在內(nèi)。計算建立時間關(guān)系的數(shù)據(jù)需求時間時,時鐘不確定時間作為一個加項(xiàng);計算保持時間關(guān)系的數(shù)據(jù)需求時間時,時鐘不確定時間作為一個減項(xiàng)。因此可以通過使用set_clock_uncertainty命令為某個時鐘或某兩個時鐘之間的時序路徑添加時序裕量。

# 為主時鐘clk添加0.5ns裕量以添加改時鐘的建立時間和保持時間
set_clock_uncertainty -from clk -to clk0 0.500

# 當(dāng)源時鐘和目的時鐘時兩個不同的主時鐘且數(shù)據(jù)傳輸時雙向的,將0.5ns的時鐘不確定性分半設(shè)置
set_clock_uncertainty -from clk0 -to clk1 0.250 -setup
set_clock_uncertainty -from clk1 -to clk0 0.250 -setup

3.6 時鐘延時約束

? ? ? ? 時鐘到達(dá)寄存器輸入端口的總延時包括了時鐘源延時和時鐘網(wǎng)絡(luò)延時。

set_clock_latency [-clock<args>] [-rise] [-fall] [-min] [-max] [-source] <latency> <objects>
  • [-clock]可選項(xiàng),時鐘名稱<args>對應(yīng)指定約束時鐘<objects>;若不定義時鐘<args>,則時鐘延時值<latency>將會應(yīng)用于所有目標(biāo)時鐘<objects>所驅(qū)動的時序路徑;
  • [-rise][-fall]指定時鐘延時的邊沿;
  • [-min][-max]指定時鐘延時的最大值或最小值且只能指定其一;若不指定則延時值同時作為最大最小值進(jìn)行定義;
  • [-source]指定時鐘延時的基本類型;若不指定則默認(rèn)[-network]類型
    • [-source]時鐘源延時,約束用于定義時序分析時實(shí)際使用的時鐘對于理想時鐘波形的延時;
    • [-network]時鐘網(wǎng)絡(luò)延時,約束用于定義時鐘信號從設(shè)計中的某個指定節(jié)點(diǎn)傳輸?shù)皆醇拇嫫鞯臅r鐘輸入端口的延時;
  • <latency>指定時鐘延時值,單位ns;
  • <objects> 指定約束時鐘的名稱。

參考文獻(xiàn):

《FPGA時序約束與分析》
《正點(diǎn)原子FPGA靜態(tài)時序分析與時序約束》?
《Intel Quartus Prime Standard Edition用戶指南: Timing Analyzer》
《Vivado Design Suite User Guide: Using Constraints(UG903)》
《Vivado Design Suite 用戶指南: 設(shè)計分析與收斂技巧 (UG906)》文章來源地址http://www.zghlxwxcb.cn/news/detail-776672.html

到了這里,關(guān)于FPGA時序分析與時序約束(二)——時鐘約束的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • FPGA設(shè)計時序約束一、主時鐘與生成時鐘

    FPGA設(shè)計時序約束一、主時鐘與生成時鐘

    一、主時鐘create_clock 1.1 定義 1.2 約束設(shè)置格式 1.3?Add this clock to the existing clock 1.4 示例 1.5 差分信號 二、生成時鐘generate_clock 2.1 定義 2.2 格式 2.2.1 by clock frequency 2.2.2?by clock edges 2.2.3 示例 2.2.4 自動生成時鐘 2.2.5?重命名生成時鐘 ????主時鐘是來自FPGA芯片外部的時鐘,通過時

    2024年01月20日
    瀏覽(16)
  • FPGA設(shè)計時序約束十六、虛擬時鐘Virtual Clock

    FPGA設(shè)計時序約束十六、虛擬時鐘Virtual Clock

    目錄 一、序言 二、Virtual Clock 2.1?設(shè)置界面 三、工程示例 3.1 工程設(shè)計 3.2 工程代碼 3.3?時序報告 3.4?答疑 四、參考資料 ? ? 在時序約束中,存在一個特殊的時序約束,虛擬時鐘Virtual Clock約束,根據(jù)名稱可看出時鐘不是實(shí)際存在的,主要是在STA分析時序時提供一個參考。 ?

    2024年01月17日
    瀏覽(19)
  • FPGA設(shè)計時序約束三、設(shè)置時鐘組set_clock_groups

    FPGA設(shè)計時序約束三、設(shè)置時鐘組set_clock_groups

    目錄 一、背景 二、時鐘間關(guān)系 2.1 時鐘關(guān)系分類 2.2 時鐘關(guān)系查看 三、異步時鐘組 3.1 優(yōu)先級 3.2 使用格式 3.3?asynchronous和exclusive 3.4?結(jié)果示例 四、參考資料 ????Vivado中時序分析工具默認(rèn)會分析設(shè)計中所有時鐘相關(guān)的時序路徑,除非時序約束中設(shè)置了時鐘組或false路徑。使

    2024年02月02日
    瀏覽(26)
  • 【ug903】FPGA時序約束學(xué)習(xí)(4)-如何約束跨時鐘域(Clock domain crossing,CDC)

    【ug903】FPGA時序約束學(xué)習(xí)(4)-如何約束跨時鐘域(Clock domain crossing,CDC)

    時序約束系列: 如何約束時鐘 主時鐘、虛擬時鐘、生成時鐘、時鐘組、時鐘不確定性 如何約束輸入輸出延遲 輸入延遲、輸出延遲 如何約束時序例外 多周期路徑、輸入輸出延遲、虛假路徑、最大最小延遲 如何約束跨時鐘域 總線偏斜 跨時鐘域(Clock Domain Crossing,CDC)約束適用

    2024年02月08日
    瀏覽(46)
  • FPGA設(shè)計時序約束二、輸入延時與輸出延時

    FPGA設(shè)計時序約束二、輸入延時與輸出延時

    目錄 一、背景 二、set_input_delay 2.1 set_input_delay含義 2.2 set_input_delay參數(shù)說明 2.3 使用樣例 三、set_output_delay 3.1 set_output_delay含義 3.2 set_output_delay參數(shù)說明 3.3?使用樣例 四、樣例工程 4.1?工程代碼 4.2 時序報告 五、參考資料 ????為了在設(shè)計中準(zhǔn)確的模擬信號從FPGA傳輸?shù)酵獠炕?/p>

    2024年02月07日
    瀏覽(23)
  • FPGA時序分析與時序約束(四)——時序例外約束

    FPGA時序分析與時序約束(四)——時序例外約束

    目錄 一、時序例外約束 1.1 為什么需要時序例外約束 1.2 時序例外約束分類 二、多周期約束 2.1 多周期約束語法 2.2 同頻同相時鐘的多周期約束 2.3 同頻異相時鐘的多周期約束 2.4 慢時鐘域到快時鐘域的多周期約束 2.5 快時鐘域到慢時鐘域的多周期約束 三、虛假路徑約束 四、最

    2024年01月20日
    瀏覽(30)
  • (FPGA時序約束)set_max_delay/set_min_delay詳解

    (FPGA時序約束)set_max_delay/set_min_delay詳解

    ? ? ? ?屬于 時序例外 的一種。(時序例外是:某條路徑在默認(rèn)參數(shù)下沒有被正確地分析時序,在這種情況下,需要告知時序分析工具這條路徑是一個例外,需要按照我地特殊指示來執(zhí)行這條路徑地時序分析。舉例:一個數(shù)據(jù)被一個寄存器同步采樣,但不是每個時鐘沿都采,

    2024年04月26日
    瀏覽(31)
  • FPGA時序約束與分析(1) --- 時序約束概述

    FPGA時序約束與分析(1) --- 時序約束概述

    本系列參考文獻(xiàn) — FPGA時序與約束分析-吳厚航 FPGA從綜合到實(shí)現(xiàn)需要的過程如下:synth_design - opt_design - place-design - phys_opt_design - route_design 1、時序約束的理解 2、時序約束的基本路徑 3、時序約束的步驟 4、時序約束的主要方法 5、查看相關(guān)時序信息 FPGA的設(shè)計約束分為物理約束

    2024年02月16日
    瀏覽(27)
  • FPGA時序分析與約束(2)——時序電路時序

    FPGA時序分析與約束(2)——時序電路時序

    ? ? ? ? 在之前的內(nèi)容中,我們介紹了組合電路的時序問題和可能導(dǎo)致的毛刺,強(qiáng)烈推薦在閱讀前文的基礎(chǔ)上再繼續(xù)閱讀本文,?前文鏈接:FPGA時序分析與約束(1)——組合電路時序 ? ? ? ? 這篇文章中,我們將繼續(xù)介紹FPGA時序分析相關(guān)內(nèi)容,本文介紹的是時序電路的時序

    2024年02月10日
    瀏覽(26)
  • FPGA時序分析與約束(8)——時序引擎

    FPGA時序分析與約束(8)——時序引擎

    ? ? ? ? 要想進(jìn)行時序分析和約束,我們需要理解時序引擎究竟是如何進(jìn)行時序分析的,包括時序引擎如何進(jìn)行建立分析(setup),保持分析(hold),恢復(fù)時間分析(recovery)和移除時間分析(removal)。 ????????發(fā)起沿(launch edge,源時鐘產(chǎn)生數(shù)據(jù)的有效時鐘沿),捕獲沿(capture

    2024年02月07日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包