chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

vivado中常用時序約束指令介紹

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2026-01-20 16:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在vivado中,我們常用的時序約束指令主要包括如下幾個方面:

類型 命令 說明
時鐘約束 create_clock 創(chuàng)建主時鐘
時鐘約束 create_generated_clock 創(chuàng)建衍生時鐘
時鐘約束 set_clock_groups 設置時鐘組
時鐘約束 set_clock_latency 設置時鐘延時
時鐘約束 set_clock_sense 設置時鐘邊沿敏感
時鐘約束 set_clock_uncertainty 設置時鐘不確定度
時鐘約束 set_system_jitter 設置系統(tǒng)抖動
時鐘約束 set_input_jitter 設置輸入抖動
時鐘約束 set_external_delay 設置外部延時
輸入 / 輸出信號接口約束 set_input_delay 設置輸入信號延時
輸入 / 輸出信號接口約束 set_output_delay 設置輸出信號延時
時序例外約束 set_false_path 設置虛假路徑
時序例外約束 set_multicycle_path 設置多周期路徑
時序例外約束 set_max_delay 設置最大延時
時序例外約束 set_min_delay 設置最小延時
時序斷言約束 set_data_check 約束數(shù)據(jù)到數(shù)據(jù)的建立 / 保持時間檢查
時序斷言約束 set_bus_skew 設置總線偏斜斷言
其他約束 set_case_analysis 設置信號為固定數(shù)值
其他約束 group_path 設置時序路徑分組
其他約束 set_disable_timing 設置中斷時序弧
其他約束 set_max_time_borrow 設置鎖存器借用時間

1. create_clock(創(chuàng)建主時鐘)

含義:定義設計中的根時鐘(如外部晶振輸入的時鐘),是所有時序分析的基準。

使用方法:

create_clock -name clk_100mhz -period 10 [get_ports clk_in]

-name:指定時鐘名稱(自定義,便于識別)

-period:時鐘周期(單位:ns,10ns對應100MHz)

[get_ports clk_in]:指定時鐘源端口FPGA的輸入引腳)

關鍵參數(shù):

-waveform {0 5}:定義時鐘邊沿位置(默認占空比50%,0ns上升沿,5ns下降沿)

-add:為同一端口添加多個時鐘(如雙沿采樣場景)

2. create_generated_clock(創(chuàng)建衍生時鐘)

含義:定義由主時鐘通過分頻、倍頻或相位偏移生成的時鐘(如PLL輸出時鐘),與主時鐘存在確定的相位關系。

使用方法:

create_generated_clock -name clk_div2 -source [get_ports clk_in]
-divide_by 2 [get_pins reg_div/Q]

-source:指定源時鐘(主時鐘的端口或引腳)

-divide_by 2:分頻系數(shù)(此處為2分頻)

[get_pins reg_div/Q]:衍生時鐘的生成點(如寄存器輸出引腳)

常用參數(shù):

-multiply_by:倍頻系數(shù)(如-multiply_by 2實現(xiàn)2倍頻)

-phase:相位偏移(單位:deg,如-phase 90表示偏移90度)

-invert:時鐘反轉(zhuǎn)(實現(xiàn)180度相位偏移)

3. set_clock_groups(設置時鐘組)

含義:將相互異步的時鐘劃分為不同組,告知工具這些時鐘間無需進行時序分析(避免虛假時序違規(guī))。

使用方法:

set_clock_groups -name async_groups -asynchronous
-group [get_clocks clk_100mhz]
-group [get_clocks clk_125mhz]

-asynchronous:標記組間時鐘為異步關系

-group:指定時鐘組(可包含多個時鐘)

其他模式:

-physically_exclusive:互斥時鐘(同一時刻只有一個時鐘有效,如切換時鐘源)

4. set_clock_latency(設置時鐘延時)

含義:定義時鐘從源到寄存器時鐘端的傳播延時(包括網(wǎng)絡延時和器件固有時延),分為理想延時和實際延時。

使用方法:

# 設置時鐘網(wǎng)絡的理想延時(不考慮布局布線影響)

set_clock_latency 2.5 [get_clocks clk_100mhz]

# 設置輸入/輸出延時(相對于時鐘源)

set_clock_latency -source 1.2 [get_clocks clk_100mhz]

無選項:默認指時鐘到達寄存器的延時(目的地延時)

-source:指時鐘從源到FPGA引腳的延時(源端延時)

5. set_clock_sense(設置時鐘邊沿敏感)

含義:指定時鐘沿的采樣方向(上升沿/下降沿),默認情況下工具自動識別,特殊場景需手動指定。

使用方法:

set_clock_sense -positive [get_clocks clk_100mhz] # 上升沿敏感

set_clock_sense -negative [get_clocks clk_100mhz] # 下降沿敏感

6. set_clock_uncertainty(設置時鐘不確定度)

含義:考慮時鐘抖動(jitter)和偏斜(skew)的綜合影響,為時序分析預留額外余量,確保設計可靠性。

使用方法:

set_clock_uncertainty 0.5 [get_clocks clk_100mhz]

數(shù)值表示時鐘不確定性的總量(單位:ns),工具會在建立時間和保持時間分析中自動減去/加上該值。

常用參數(shù):-setup(僅對建立時間生效)、-hold(僅對保持時間生效)

7. set_system_jitter(設置系統(tǒng)抖動)

含義:定義外部系統(tǒng)引入的時鐘抖動(如晶振抖動),與set_clock_uncertainty的區(qū)別在于:系統(tǒng)抖動是外部引入的,而不確定度包含內(nèi)部偏斜。

使用方法:

set_system_jitter 0.3 [get_clocks clk_100mhz]

8. set_input_jitter(設置輸入抖動)

含義:指定輸入時鐘的抖動特性(針對外部輸入的時鐘信號),影響時鐘的不確定性計算。

使用方法:

set_input_jitter [get_clocks clk_ext] 0.2

第一個參數(shù)為外部時鐘,第二個參數(shù)為抖動值(單位:ns)

9. set_external_delay(設置外部延時)

含義:定義FPGA外部電路的延時(輸入信號從外部源到FPGA引腳,或輸出信號從FPGA引腳到外部目的地的延時),用于接口時序分析。

使用方法:

# 輸入信號:外部電路到FPGA引腳的延時(占時鐘周期的30%)

set_external_delay -input 3 [get_clocks clk_100mhz]

# 輸出信號:FPGA引腳到外部電路的延時(占時鐘周期的20%)

set_external_delay -output 2 [get_clocks clk_100mhz]

10. set_input_delay(設置輸入信號延時)

含義:定義外部輸入信號到達FPGA引腳后,相對于時鐘沿的有效建立時間窗口,用于確保輸入數(shù)據(jù)在時鐘采樣前穩(wěn)定。

使用方法:

set_input_delay -clock clk_100mhz -max 3 [get_ports data_in]

set_input_delay -clock clk_100mhz -min 0.5 [get_ports data_in]

-clock:指定采樣該輸入信號的時鐘

-max:輸入信號的最大延時(數(shù)據(jù)最晚到達時間)

-min:輸入信號的最小延時(數(shù)據(jù)最早到達時間)

單位為 ns,需根據(jù)外部電路延時特性設置(通常占時鐘周期的 20%-30%)

11. set_output_delay(設置輸出信號延時)

含義:定義 FPGA 輸出信號到達外部器件所需的延時,確保外部電路能在其時鐘沿前穩(wěn)定采樣數(shù)據(jù)。使用方法:

set_output_delay -clock clk_ext -max 2.5 [get_ports data_out]

set_output_delay -clock clk_ext -min 0.3 [get_ports data_out]

-clock:指定外部電路的采樣時鐘

數(shù)值表示輸出信號相對于外部時鐘的延時,需匹配外部器件的建立 / 保持時間要求

12. set_false_path(設置虛假路徑)

含義:標記無需進行時序分析的路徑(通常是異步時鐘域間路徑或邏輯上不可能激活的路徑),減少工具分析開銷。使用方法:

# 異步時鐘間的路徑

set_false_path -from [get_clocks clk_100mhz] -to [get_clocks clk_125mhz]

# 特定端口到模塊的路徑

set_false_path -from [get_ports reset] -to [get_cells *]

-from/-to:指定路徑的起點和終點(時鐘、端口、單元等)

典型應用:復位信號路徑、異步時鐘域跨域路徑、測試模式專用路徑

13. set_multicycle_path(設置多周期路徑)

含義:允許數(shù)據(jù)在多個時鐘周期內(nèi)完成傳輸(適用于慢路徑),工具會放寬時序要求。
使用方法:

# 建立時間:允許3個時鐘周期完成傳輸

set_multicycle_path 3 -setup -from [get_clocks clk_fast] -to [get_clocks clk_slow]

# 保持時間:對應調(diào)整為2個周期(通常比setup少1)

set_multicycle_path 2 -hold -from [get_clocks clk_fast] -to [get_clocks clk_slow]

-setup/-hold:分別設置建立時間和保持時間的多周期數(shù)

常用于跨時鐘域數(shù)據(jù)傳輸或低速外設接口(如 SPI、I2C

14. set_max_delay(設置最大延時)

含義:為特定路徑指定最大允許延時(覆蓋默認時鐘約束),確保關鍵路徑不超時。使用方法:

set_max_delay 8 -from [get_ports ctrl_in] -to [get_ports ctrl_out]

數(shù)值為路徑允許的最大延時(ns),常用于對響應速度有嚴格要求的路徑

15. set_min_delay(設置最小延時)

含義:為特定路徑指定最小允許延時,防止因路徑過短導致的保持時間違規(guī)(信號變化過快)。使用方法:

set_min_delay 0.8 -from [get_cells reg1/Q] -to [get_cells reg2/D]

確保數(shù)據(jù)在采樣時鐘沿后保持穩(wěn)定的最短時間,避免競爭冒險

16. set_data_check(數(shù)據(jù)到數(shù)據(jù)的建立/保持時間檢查)

含義:定義兩個數(shù)據(jù)信號間的相對時序關系(非時鐘觸發(fā)),常用于握手信號或異步接口。使用方法:

# data信號需在valid信號有效后至少1ns建立,且保持2ns

set_data_check -setup 1 -hold 2 -from [get_ports valid] -to [get_ports data]

檢查數(shù)據(jù)信號相對于控制信號的穩(wěn)定性,確保握手邏輯可靠

17. set_bus_skew(總線偏斜斷言)

含義:約束總線內(nèi)各信號的最大 skew(偏斜),確??偩€信號同步變化(如并行數(shù)據(jù)總線)。

使用方法:

set_bus_skew 1.2 [get_ports data_bus[*]]

數(shù)值為總線內(nèi)任意兩個信號的最大允許延時差,防止因布線長度差異導致的采樣錯誤

18. set_case_analysis(設置信號為固定數(shù)值)

含義:強制指定信號為恒定值(0或1),用于簡化邏輯分析或驗證特定工作模式。使用方法:

set_case_analysis 1 [get_ports enable] # 強制enable信號為高電平

常用于排除未使用的邏輯分支,優(yōu)化綜合結(jié)果

19. group_path(時序路徑分組)

含義:將相似路徑歸類,便于集中設置時序約束或查看分析報告。使用方法:

group_path -name axi_path -from [get_clocks axi_clk] -to [get_clocks axi_clk]

set_max_delay 10 [get_paths -group axi_path] # 為分組設置統(tǒng)一約束

提高約束管理效率,尤其適用于大型設計

20. set_disable_timing(中斷時序弧)

含義:切斷特定邏輯單元間的時序?。═iming Arc),工具將忽略該路徑的時序分析。
使用方法:

set_disable_timing -from A -to Y [get_cells mux1]

適用于冗余邏輯或測試模式下的無效路徑,避免誤導性時序違規(guī)報告

21. set_max_time_borrow(設置鎖存器借用時間)

含義:為鎖存器(Latch)指定最大允許的時間借用(Time Borrow),平衡前后級路徑延時。使用方法:

set_max_time_borrow 2 [get_cells latch1]

鎖存器可通過延長前級數(shù)據(jù)有效時間 “借用” 后級的時序余量,此命令限制最大借用值

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

    關注

    1

    文章

    619

    瀏覽量

    37405
  • 時序約束
    +關注

    關注

    1

    文章

    119

    瀏覽量

    13923
  • Vivado
    +關注

    關注

    19

    文章

    852

    瀏覽量

    70748

原文標題:時序約束分析——vivado中常用指令介紹

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    VIVADO時序約束及STA基礎

    時序約束的目的就是告訴工具當前的時序狀態(tài),以讓工具盡量優(yōu)化時序并給出詳細的分析報告。一般在行為仿真后、綜合前即創(chuàng)建基本的時序
    的頭像 發(fā)表于 03-11 14:39 ?1.1w次閱讀

    FPGA主時鐘約束詳解 Vivado添加時序約束方法

    在FPGA設計中,時序約束的設置對于電路性能和可靠性都至關重要。在上一篇的文章中,已經(jīng)詳細介紹了FPGA時序約束的基礎知識。
    發(fā)表于 06-06 18:27 ?1.3w次閱讀
    FPGA主時鐘<b class='flag-5'>約束</b>詳解 <b class='flag-5'>Vivado</b>添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>方法

    一文詳解Vivado時序約束

    Vivado時序約束是保存在xdc文件中,添加或創(chuàng)建設計的工程源文件后,需要創(chuàng)建xdc文件設置時序約束。
    的頭像 發(fā)表于 03-24 09:44 ?4648次閱讀
    一文詳解<b class='flag-5'>Vivado</b><b class='flag-5'>時序</b><b class='flag-5'>約束</b>

    Xilinx FPGA編程技巧之常用時序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時序約束詳解,話不多說,上貨。 基本的約束方法為了保證成功的設計,所有路徑的時序要求必須能夠讓執(zhí)行工具獲取。最普遍的三種路徑以及
    發(fā)表于 04-12 17:39

    Xilinx FPGA編程技巧之常用時序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時序約束詳解,話不多說,上貨。 基本的約束方法 為了保證成功的設計,所有路徑的時序要求必須能夠讓執(zhí)行工具獲取。最普遍的三種路徑以及
    發(fā)表于 05-06 15:51

    時序約束時序分析 ppt教程

    時序約束時序分析 ppt教程 本章概要:時序約束時序分析基礎
    發(fā)表于 05-17 16:08 ?0次下載

    Xilinx FPGA編程技巧常用時序約束介紹

    Xilinx FPGA編程技巧常用時序約束介紹,具體的跟隨小編一起來了解一下。
    的頭像 發(fā)表于 07-14 07:18 ?5247次閱讀
    Xilinx FPGA編程技巧<b class='flag-5'>常用時序</b><b class='flag-5'>約束</b><b class='flag-5'>介紹</b>

    深入了解時序約束以及如何利用時序約束實現(xiàn)FPGA 設計的最優(yōu)結(jié)果

    作為賽靈思用戶論壇的定期訪客(見 ),我注意到新用戶往往對時序收斂以及如何使用時序約束來達到時序收斂感到困惑。為幫助 FPGA設計新手實現(xiàn)時序
    發(fā)表于 11-24 19:37 ?5976次閱讀
    深入了解<b class='flag-5'>時序</b><b class='flag-5'>約束</b>以及如何利<b class='flag-5'>用時序</b><b class='flag-5'>約束</b>實現(xiàn)FPGA 設計的最優(yōu)結(jié)果

    時序約束資料包】培訓課程Timing VIVADO

    維持嗎? 1、Vivado基本操作流程 2、時序基本概念 3、時序基本約束和流程 4、Baselining時序
    發(fā)表于 08-06 15:08 ?724次閱讀

    如何使用時序約束向?qū)?/a>

    了解時序約束向?qū)绾斡糜凇巴耆?b class='flag-5'>約束您的設計。 該向?qū)ё裱璘ltraFast設計方法,定義您的時鐘,時鐘交互,最后是您的輸入和輸出約束
    的頭像 發(fā)表于 11-29 06:47 ?3520次閱讀
    如何使<b class='flag-5'>用時序</b><b class='flag-5'>約束</b>向?qū)? />    </a>
</div>                              <div   id=

    Vivado進行時序約束的兩種方式

    上面我們講的都是xdc文件的方式進行時序約束,Vivado中還提供了兩種圖形界面的方式,幫我們進行時序約束
    的頭像 發(fā)表于 03-08 17:17 ?2w次閱讀
    <b class='flag-5'>Vivado</b>進行<b class='flag-5'>時序</b><b class='flag-5'>約束</b>的兩種方式

    常用時序約束介紹之基于ISE的UCF文件語法

    時序約束是我們對FPGA設計的要求和期望,例如,我們希望FPGA設計可以工作在多快的時鐘頻率下等等。因此,在時序分析工具開始對我們的FPGA設計進行時序分析前,我們必須為其提供相關的
    的頭像 發(fā)表于 12-28 15:18 ?5243次閱讀

    Vivado中常用TCL命令匯總

    Vivado是Xilinx推出的可編程邏輯設備(FPGA)軟件開發(fā)工具套件,提供了許多TCL命令來簡化流程和自動化開發(fā)。本文將介紹Vivado中常用的TCL命令,并對其進行詳細說明,
    的頭像 發(fā)表于 04-13 10:20 ?5528次閱讀

    如何在Vivado中添加時序約束

    前面幾篇文章已經(jīng)詳細介紹了FPGA時序約束基礎知識以及常用時序約束命令,相信大家已經(jīng)基本掌握了
    的頭像 發(fā)表于 06-23 17:44 ?4133次閱讀
    如何在<b class='flag-5'>Vivado</b>中添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>

    如何在Vivado中添加時序約束呢?

    今天介紹一下,如何在Vivado中添加時序約束Vivado添加約束的方法有3種:xdc文件、
    的頭像 發(fā)表于 06-26 15:21 ?6161次閱讀
    如何在<b class='flag-5'>Vivado</b>中添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>呢?