日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > ZYNQ
		


1.1 組織約束文件

Xilinx 建議將時序約束物理約束分開保存為兩個不同的文件。甚至可以將針對某一個模塊的約束單獨保存在一個文件中。

1.1.1 綜合和實現可以使用不同的約束文件

可以使用 USED_IN_SYNTHESIS 和 USED_IN_IMPLEMENTATION 屬性指定約束文件是在綜合或實現過程中使用。

注意:特別是IP、DCP這類使用OOC模式的模塊,因為這些模塊在綜合過程中是一個黑盒,當頂層約束指定的約束路徑為黑盒中的內容時,可能在綜合過程中會報找不到目標的錯誤。因此,最好的方法是將約束會為兩個文件,一個綜合用,一個實現時用。

在工程模式中可以使用如下代碼指定約束文件使用時機。

		
  1. set_property USED_IN_SYNTHESIS false [get_files wave_gen_pins.xdc]

  2. set_property USED_IN_IMPLEMENTATION true [get_files wave_gen_pins.xdc]

非工程模式中,不需要如此設置。因為什么時候使用約束文件,只和讀取約束文件的時機相關。如下:其中 wave_gen_timing.xdc 會在綜合和實現過程中使用,而 wave_gen_pins.xdc 只會在實現過程中使用。

		
  1. read_verilog [glob src/*.v]

  2. read_xdc wave_gen_timing.xdc

  3. synth_design -top wave_gen -part xc7k325tffg900-2

  4. read_xdc wave_gen_pins.xdc

  5. opt_design

  6. place_design

  7. route_design

1.2 約束的順序

推薦約束順序如下:

		
  1. ## Timing Assertions Section

  2. # Primary clocks

  3. # Virtual clocks

  4. # Generated clocks

  5. # Clock Groups

  6. # Bus Skew constraints

  7. # Input and output delay constraints


  8. ## Timing Exceptions Section

  9. # False Paths

  10. # Max Delay / Min Delay

  11. # Multicycle Paths

  12. # Case Analysis

  13. # Disable Timing


  14. ## Physical Constraints Section

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

  16. # or stored in a separate constraint file

1.3 創(chuàng)建綜合約束

Vivado 綜合將設計中的 RTL 描述轉換為工藝映射網表。此過程分為多個步驟進行,包括一些時序導向的優(yōu)化。FPGA 包含許多邏輯特性,可以有許多不同的應用方式。需要通過約束來引導綜合引擎工作,以滿足實現時所需的要求。

綜合約束可以分為4類:

  • RTL Attributes

  • Timing Constraints

  • Physical and Configuration Constraints

  • Elaborated Design Constraints

1.3.1 RTL Attributes

RTL Attributes 必須寫入 RTL 文件中。他們通常用來選擇邏輯的某些部分的映射樣式,以及保留某些寄存器和網線,或控制最終網表中的設計層次結構。

IMPORTANT: The DONT_TOUCH attribute does not obey the properties of USED_IN_SYNTHESIS and USED_IN_IMPLEMENTATION . If you use DONT_TOUCH properties in the synthesis XDC, it is propagated to implementation regardless of the value of USED_IN_IMPLEMENTATION .

注意:DONT_TOUCH 屬性不受 USED_IN_SYNTHESIS 和 USED_IN_IMPLEMENTATION 的控制,當在綜合約束中使用 DONT_TOUCH 時,他會傳遞到實現過程中,無論 USED_IN_IMPLEMENTATION 的屬性值是什么。

		
  1. set_property DONT_TOUCH true [get_cells fsm_reg]

1.3.2 Timing Constraints

Timing Constraints 必須通過一個或多個 XDC 文件傳遞給綜合引擎。只有以下與建立時間分析相關的約束對綜合結果有實際影響:

  • create_clock

  • create_generated_clock

  • set_input_delay

  • set_output_delay

  • set_clock_groups

  • set_false_path

  • set_max_delay

  • set_multicycle_path

1.3.3 Physical and Configuration Constraints

Physical and Configuration Constraints 會被綜合算法忽略。(既然會被忽略為什么又提到?)

1.3.4 Elaborated Design Constraints

創(chuàng)建綜合 XDC 的第一個版本時,只需要使用簡單的時序約束來描述高級設計要求即可。因為此階段的路徑延遲并不準確,目的只是為了在實現開始前,盡量讓綜合的結果滿足時序。并且在此階段可能需要反復迭代 RTL 代碼和 XDC 文件,以便查找各種網名和排除各種語法錯誤。

在 Elaborated Design 的創(chuàng)建過程中,某些 RTL 名稱被修改或丟失。需要注意如下幾點:

  • 網表中寄存器的名稱會比在 RTL 代碼中的名稱多一個_reg的后綴。

  • 有些寄存器或網線會被吸收掉,例如二維寄存器會被綜合成 Memory Block,乘除法會綜合成 DSP。

  • 在使用get_*查詢路徑時,最好不要使用-hierarchical參數,路徑中使用/顯示描述路徑的層級。

  • 不要對組合邏輯的網線附加約束。它們很可能會被合并到一個 LUT 中并從網表中消失。

1.4 創(chuàng)建實現約束

在某些情況下,綜合網表中的對象名稱與 Elaborated Design 中的名稱不同。如果是這種情況,就必須使用正確的名稱重新創(chuàng)建一些約束,并將它們保存在僅用于實現的 XDC 文件中。當工具可以正確加載所有 XDC 文件后,就可以運行時序分析以便:

  • 添加缺少的約束,例如輸入和輸出延遲。

  • 添加時序例外,例如偽路徑、多周期路徑和最小/最大延遲約束。

  • 識別由于設計中的長路徑而導致的嚴重違規(guī),修改 RTL 代碼。

在綜合期間,為了提高設計性能,有些寄存器可能被復制。但綜合器不會把復制的單元添加到用戶 XDC 約束中。如要將時序約束附加到 Vivado Synthesis 復制的對象上,根據約束的寫入方式不同,復制的單元有可能不會被 XDC 約束覆蓋到,這可能會影響結果的實現質量??梢允褂?include_replicated_objects參數來避免此問題。

例如set_false_path –from [get_cells –hierarchical *rx_reg]可以改為set_false_path -from [get_cells -hierarchical *rx_reg -include_replicated_objects]。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉