Vivado 】XDC文件的約束順序

      網友投稿 971 2025-04-02

      由于XDC約束是按順序應用的,并且基于明確的優先級規則進行優先級排序,因此必須仔細檢查約束的順序。


      如果多個物理約束發生沖突,則最新約束將獲勝。 例如,如果通過多個XDC文件為I / O端口分配了不同的位置(LOC),則分配給該端口的最新位置優先。

      Vivado IDE可全面了解您的設計。 要逐步驗證您的約束:

      1.運行相應的報告命令。

      2.查看Tcl控制臺或“消息”窗口中的消息。

      推薦的約束順序

      建議:無論是為設計使用一個還是多個XDC文件,都按以下順序組織約束。

      ## Timing Assertions Section

      # Primary clocks

      # Virtual clocks

      # Generated clocks

      # Clock Groups

      # Bus Skew constraints

      # Input and output delay constraints

      ## Timing Exceptions Section

      【 Vivado 】XDC文件的約束順序

      # False Paths

      # Max Delay / Min Delay

      # Multicycle Paths

      # Case Analysis

      # Disable Timing

      ## Physical Constraints Section

      # located anywhere in the file, preferably before or after the timing constraints

      # or stored in a separate constraint file

      從時鐘定義開始。 必須先創建時鐘,然后才能將它們用于任何后續約束。 聲明之前對時鐘的任何引用都會導致錯誤,并忽略相應的約束。 在單個約束文件中以及設計中的所有XDC文件(或Tcl腳本)中都是如此。

      約束文件的順序很重要。 您必須確保每個文件中的約束不依賴于另一個文件的約束。 如果是這種情況,則必須最后讀取包含約束依賴項的文件。 如果兩個約束文件具有相互依賴關系,則必須將它們手動合并到一個包含正確序列的文件中,或者將文件分成幾個單獨的文件并正確排序。

      編輯約束順序

      Vivado IDE約束管理器將任何已編輯的約束保存回XDC文件中的原始位置,但不會保存在Tcl腳本中。 任何新約束都保存在標記為目標的XDC文件的末尾。 在許多情況下,當約束集包含多個XDC文件時,目標約束文件不是列表中的最后一個文件,并且在打開或重新加載設計時不會最后加載。 因此,保存在磁盤上的約束序列可能與之前在內存中的約束序列不同。

      重要信息:您必須驗證存儲在約束文件中的最終序列是否仍按預期工作。 如果必須修改序列,則必須通過直接編輯約束文件來修改它。 這對時序約束尤為重要。

      約束文件順序

      在沒有任何IP的項目流程中,所有約束都位于約束集中。 默認情況下,Vivado IDE中顯示的XDC文件(或Tcl腳本)的順序定義了將elaborated design或synthesized design加載到內存時工具使用的讀取順序。 首先讀取列表頂部的文件,最后讀取底部的文件。 您只需在IDE中選擇文件并將其移動到列表中的所需位置即可更改順序。

      例如,在圖1中,使用拖放操作將文件wave_gen_pin.xdc移動到文件wave_gen_timing.xdc之前。

      Figure 1: Changing XDC File Order in the Vivado IDE Example

      The equivalent Tcl command is:

      reorder_files -fileset constrs_1 -before [get_files wave_gen_timing.xdc] ?[get_files wave_gen_pins.xdc]

      在非項目模式下,read_xdc調用的順序決定了約束文件的計算順序。

      Constraint Files Order with IP Cores

      許多IP內核隨附一個或多個XDC文件。 在RTL項目中生成此類IP內核時,還會在各種設計編譯步驟中使用其XDC文件。

      例如,圖2顯示項目中的一個IP核帶有一個XDC文件。

      Figure 2: XDC Files in the IP Sources

      默認情況下,在用戶XDC文件之前讀入IP XDC文件。 以這種方式處理它允許IP創建可在XDC中引用的時鐘對象。 它還允許您覆蓋由IP內核設置的物理約束,因為在IP之后評估用戶約束。 對于依賴于由用戶或其他IP創建的時鐘對象的IP核,此順序有一個例外(例如,get_clocks -of_objects [get_ports clka])。 在這種情況下,在用戶文件之后讀取IP XDC。

      此行為由PROCESSING_ORDER屬性控制,為每個XDC文件設置:

      ?EARLY:必須先讀取的文件

      ?NORMAL:默認

      ?LATE:必須最后讀取的文件

      IP XDC將其PROCESSING_ORDER屬性設置為EARLY或LATE。 沒有哪個?IP提供屬于NORMAL約束組的XDC文件。 對于屬于同 一PROCESSING_ORDER組的用戶XDC(或Tcl)文件,Vivado IDE中顯示的相對順序決定了它們的讀取順序。 可以通過移動Vivado IDE約束集中的文件或使用reorder_files命令來修改組中的順序。

      對于屬于同一PROCESSING_ORDER組的IP XDC文件,順序由IP內核的導入或創建順序確定。 創建項目后,無法更改此順序。

      最后,用戶組和IP XDC PROCESSING_ORDER組之間的相對順序如下:

      1.標記為EARLY的用戶約束

      2.標記為EARLY的IP約束(默認)

      3.標記為NORMAL的用戶約束

      4.標記為LATE的IP約束(包含時鐘依賴性)

      5.標記為LATE的用戶約束

      注意:將其PROCESSING_ORDER設置為LATE(以便在用戶約束后進行處理)的IP XDC文件命名為 _clocks.xdc。

      下圖顯示了如何設置PROCESSING_ORDER屬性的示例:

      Figure 3: Setting the XDC File PROCESSING_ORDER Example

      The equivalent Tcl command is:

      set_property PROCESSING_ORDER EARLY [get_files wave_gen_pins.xdc]

      建議:使用Tcl控制臺中的report_compile_order -constraints命令報告由工具根據上述屬性確定的XDC文件讀取順序,包括IS_ENABLED,USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION。

      Changing Read Order

      要在約束集中更改XDC文件或非托管Tcl腳本的讀取順序,請執行以下操作:

      1.在“源”窗口中,選擇要移動的XDC文件或Tcl腳本。

      2.將文件拖放到約束集中的所需位置。

      對于圖1中所示的示例,等效的Tcl命令是:

      reorder_files -fileset constrs_1 -before [get_files wave_gen_timing.xdc] [get_files wave_gen_pins.xdc]

      在非項目模式下,read_xdc或source命令的順序決定了約束文件的讀取順序。

      如果使用帶有約束的IP內核,則會自動處理兩組約束,如下所示:

      ?不依賴于時鐘的約束被分組到XDC文件中,PROCESSING_ORDER設置為EARLY,

      ?依賴于時鐘的約束在PROCESSING_ORDER設置為LATE的XDC文件中分組。

      默認情況下,用戶XDC文件屬于PROCESSING_ORDER NORMAL組。 它們在EARLY XDC文件之后和LATE XDC文件之前加載。 對于每個PROCESSING_ORDER組,IP XDC文件的加載順序與IP Sources窗口中IP核的列表順序相同。 例如,下圖顯示了XDC文件附帶的項目IP內核之一。

      Figure 4: XDC Files in the IP Sources

      打開設計時,日志文件顯示最后加載了IP XDC文件:

      Parsing XDC File

      [C:/project_wave_gen_hdl.srcs/sources_1/ip/clk_core/clk_core.xdc] for cell 'clk_gen_i0/clk_core_i0/inst'

      Finished Parsing XDC File

      [C:/project_wave_gen_hdl.srcs/sources_1/ip/clk_core/clk_core.xdc] for cell 'clk_gen_i0/clk_core_i0/inst'

      Parsing XDC File

      [C:/project_wave_gen_hdl.srcs/sources_1/ip/char_fifo/char_fifo/char_fifo.xdc] for cell 'char_fifo_i0/U0'

      Finished Parsing XDC File

      [C:/project_wave_gen_hdl.srcs/sources_1/ip/char_fifo/char_fifo/char_fifo.xdc] for cell 'char_fifo_i0/U0'

      Parsing XDC File

      [C:/project_wave_gen_hdl.srcs/constrs_1/imports/verilog/wave_gen_timing.xdc]

      Finished Parsing XDC File

      [C:/project_wave_gen_hdl.srcs/constrs_1/imports/verilog/wave_gen_timing.xdc]

      Parsing XDC File

      [C:/project_wave_gen_hdl.srcs/sources_1/ip/char_fifo/char_fifo/char_fifo_clocks.xdc ] for cell 'char_fifo_i0/U0'

      Finished Parsing XDC File

      [C:/project_wave_gen_hdl.srcs/sources_1/ip/char_fifo/char_fifo/char_fifo_clocks.xdc ] for cell 'char_fifo_i0/U0'

      Completed Processing XDC Constraints

      與用戶XDC文件不同,您無法直接更改屬于同一PROCESSING_ORDER組的IP XDC文件的讀取順序。 如果必須修改訂單,請執行以下操作:

      1.禁用相應的IP XDC文件(IS_ENABLED設置為false)。

      2.復制他們的內容。

      3.將內容粘貼到約束集中包含的一個XDC文件中。

      4.在需要的地方使用完整的分層網表對象路徑名更新復制的IP XDC命令。 這樣做是必需的,因為IP XDC約束以這樣的方式編寫,即它們可以作用于IP實例。

      5.查看以特殊方式處理范圍約束的get_ports查詢。

      Processing

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:客戶管理一定要有CRM嗎?為什么說CRM是最有效的工具
      下一篇:甘特圖項目進度管理的步驟和技巧
      相關文章
      亚洲成a人无码av波多野按摩| 久久国产亚洲精品| 青草久久精品亚洲综合专区| 亚洲免费观看网站| 亚洲精品视频免费看| 亚洲视频一区二区三区| 久久久亚洲精品国产| 久久国产精品亚洲综合| 亚洲Av无码精品色午夜| 亚洲国产精品成人精品无码区| 亚洲AV永久无码精品成人| 亚洲精品国产精品乱码不99| 怡红院亚洲怡红院首页| 国产国拍精品亚洲AV片| 亚洲精品高清国产一线久久| 亚洲人成无码网站| 亚洲AV无码成人精品区天堂| 亚洲2022国产成人精品无码区 | 亚洲国产精品久久久久网站| 久久精品亚洲综合| 99久久精品国产亚洲| 久久亚洲中文字幕精品有坂深雪 | 亚洲色偷偷综合亚洲AV伊人| heyzo亚洲精品日韩| 亚洲精品97久久中文字幕无码| 亚洲另类激情专区小说图片| 亚洲男人在线无码视频| 中文字幕亚洲一区二区三区| 亚洲精品无码av人在线观看| 久久精品国产亚洲香蕉| 亚洲最新视频在线观看| 亚洲国产成人无码av在线播放| 久久久久se色偷偷亚洲精品av| 亚洲乱码在线卡一卡二卡新区| 亚洲精品亚洲人成在线| 亚洲AV无码乱码在线观看性色扶| 中文字幕亚洲日韩无线码| 亚洲Av无码精品色午夜| 亚洲福利视频一区二区三区| 国产.亚洲.欧洲在线| va亚洲va日韩不卡在线观看|