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

當(dāng)前位置:首頁 > > ZYNQ
		


1.1 組織約束文件

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

1.1.1 綜合和實(shí)現(xiàn)可以使用不同的約束文件

可以使用 USED_IN_SYNTHESIS 和 USED_IN_IMPLEMENTATION 屬性指定約束文件是在綜合或?qū)崿F(xiàn)過程中使用。

注意:特別是IP、DCP這類使用OOC模式的模塊,因?yàn)檫@些模塊在綜合過程中是一個(gè)黑盒,當(dāng)頂層約束指定的約束路徑為黑盒中的內(nèi)容時(shí),可能在綜合過程中會報(bào)找不到目標(biāo)的錯(cuò)誤。因此,最好的方法是將約束會為兩個(gè)文件,一個(gè)綜合用,一個(gè)實(shí)現(xiàn)時(shí)用。

在工程模式中可以使用如下代碼指定約束文件使用時(shí)機(jī)。

		
  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]

非工程模式中,不需要如此設(shè)置。因?yàn)槭裁磿r(shí)候使用約束文件,只和讀取約束文件的時(shí)機(jī)相關(guān)。如下:其中 wave_gen_timing.xdc 會在綜合和實(shí)現(xiàn)過程中使用,而 wave_gen_pins.xdc 只會在實(shí)現(xiàn)過程中使用。

		
  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 綜合將設(shè)計(jì)中的 RTL 描述轉(zhuǎn)換為工藝映射網(wǎng)表。此過程分為多個(gè)步驟進(jìn)行,包括一些時(shí)序?qū)虻膬?yōu)化。FPGA 包含許多邏輯特性,可以有許多不同的應(yīng)用方式。需要通過約束來引導(dǎo)綜合引擎工作,以滿足實(shí)現(xiàn)時(shí)所需的要求。

綜合約束可以分為4類:

  • RTL Attributes

  • Timing Constraints

  • Physical and Configuration Constraints

  • Elaborated Design Constraints

1.3.1 RTL Attributes

RTL Attributes 必須寫入 RTL 文件中。他們通常用來選擇邏輯的某些部分的映射樣式,以及保留某些寄存器和網(wǎng)線,或控制最終網(wǎng)表中的設(shè)計(jì)層次結(jié)構(gòu)。

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 的控制,當(dāng)在綜合約束中使用 DONT_TOUCH 時(shí),他會傳遞到實(shí)現(xiàn)過程中,無論 USED_IN_IMPLEMENTATION 的屬性值是什么。

		
  1. set_property DONT_TOUCH true [get_cells fsm_reg]

1.3.2 Timing Constraints

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

  • 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 的第一個(gè)版本時(shí),只需要使用簡單的時(shí)序約束來描述高級設(shè)計(jì)要求即可。因?yàn)榇穗A段的路徑延遲并不準(zhǔn)確,目的只是為了在實(shí)現(xiàn)開始前,盡量讓綜合的結(jié)果滿足時(shí)序。并且在此階段可能需要反復(fù)迭代 RTL 代碼和 XDC 文件,以便查找各種網(wǎng)名和排除各種語法錯(cuò)誤。

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

  • 網(wǎng)表中寄存器的名稱會比在 RTL 代碼中的名稱多一個(gè)_reg的后綴。

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

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

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

1.4 創(chuàng)建實(shí)現(xiàn)約束

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

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

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

  • 識別由于設(shè)計(jì)中的長路徑而導(dǎo)致的嚴(yán)重違規(guī),修改 RTL 代碼。

在綜合期間,為了提高設(shè)計(jì)性能,有些寄存器可能被復(fù)制。但綜合器不會把復(fù)制的單元添加到用戶 XDC 約束中。如要將時(shí)序約束附加到 Vivado Synthesis 復(fù)制的對象上,根據(jù)約束的寫入方式不同,復(fù)制的單元有可能不會被 XDC 約束覆蓋到,這可能會影響結(jié)果的實(shí)現(xiàn)質(zhì)量。可以使用-include_replicated_objects參數(shù)來避免此問題。

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


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