Vivado Design Suite用戶指南之約束的使用第二部分(約束方法論)

Constraints Methodology(約束方法論)算法

關於約束方法論shell

設計約束定義了編譯流程必須知足的要求,以使設計在板上起做用。 並不是全部步驟都使用全部約束
在編譯流程中。 例如,物理約束僅在實現步驟期間使用(即,由佈局器和路由器)
因爲Xilinx®Vivado®集成設計環境(IDE)綜合和實現算法是時序驅動的,所以必須建立適當的時序約束。
過分約束或設計不足會使時序收斂變得困難。 您必須使用符合您的應用程序要求的合理約束。數據庫

 

也就是說這一章主要就是講解約束的行爲規範,上一章講述的是如何輸入約束文件,這都是有必定順序的windows

組織你的約束(我的認爲比較重要,應該是我所須要的部分)安全

The Vivado IDE allows you to use one or many constraint files. While using a single
constraint file for the entire compilation flow might seem more convenient, it can be a
challenge to maintain all the constraints as the design becomes more complex. This is
usually the case for designs that use several IP cores or large blocks developed by different
teams.
After the timing and physical constraints have been imported, independent of the number
of source files or whether the design is in Project/Non-Project mode, all the constraints can
be exported as a single file with the write_xdc command. The constraints are written to
the specified output file in the same order that they were read into the project or design.
The command line option write_xdc -type can be used to select a sub-set of
constraints (timing, physical, or waiver) to export.網絡

又是一大段英文,不歸說真的,技術開發人員一些技術資料必定要看懂,可是比較權威的大部分都源自英文版,因此學好英語很重要!!! 不過沒有那麼多時間讓我現學英文併發

只能退而求其次,想一想辦法,app

Vivado IDE容許您使用一個或多個約束文件。 雖然對整個編譯流使用單個約束文件彷佛更方便,但隨着設計變得更加複雜,維護全部約束多是一個挑戰。 對於使用由不一樣團隊開發的多個IP核或大塊的設計,一般就是這種狀況。
導入定時和物理約束後,獨立於源文件的數量或設計是否處於項目/非項目模式,可使用write_xdc命令將全部約束導出爲單個文件。
約束以與讀入項目或設計相同的順序寫入指定的輸出文件。
命令行選項write_xdc -type可用於選擇要導出的約束(時間,物理或豁免)子集。less

不過這裏有一個建議:異步

RECOMMENDED: Xilinx recommends that you separate timing constraints and physical constraints by
saving them into two distinct files. You can also keep the constraints specific to a certain module in a
separate file.

建議:Xilinx建議您將時序約束和物理約束分開,將它們保存爲兩個不一樣的文件。 您還能夠將特定於某個模塊的約束保存在單獨的文件中。

項目模式(工程模式)/非項目模式(非工程模式)的概念:

這是兩種VIVADO的兩種設計流程模式

(一) 設計者可使用基於工程的方法自動管理設計過程和設計數據,這個就是說能夠用VIVADO軟件來進行

(二)能夠根據TCL腳本的方法,能夠本身設計管理源文件和設計流程,這種方法稱爲非工程模式,這就很是高大上了,就像是Linux裏shell Windows裏的doc,不過我做爲初學者,仍是選用第一種方法吧。

Project Flows
You can add your Xilinx Design Constraints (XDC) files to a constraints set during the
creation of a new project, or later, from the Vivado IDE menus.
Figure 2-1 shows two constraint sets in a project, which are Single or Multi XDC. The first
constraint set includes two XDC files. The second constraint set uses only one XDC file
containing all the constraints.

You can also add Tcl scripts to your constraints set as unmanaged constraints or
unmanaged Tcl scripts. The Vivado Design Suite does not write modified constraints back
into an unmanaged Tcl script. Tcl scripts and XDC files are loaded in the same sequence as
displayed in the Vivado IDE (if they belong to the same PROCESSING_ORDER group) or as
reported by the command report_compile_order -constraints.
An XDC file or a Tcl script can be used in several constraints sets if needed. For more
information on how to create and add constraint files and constraints sets to your project,
see Working with Constraints in the Vivado Design Suite User Guide: System-Level Design
Entry (UG895) [Ref 2].

項目流程
您能夠在建立新項目期間或稍後從Vivado IDE菜單中將Xilinx設計約束(XDC)文件添加到約束集中。
圖2-1顯示了項目中的兩個約束集,即單XDC或多XDC。 第一個約束集包括兩個XDC文件。 第二個約束集僅使用一個包含全部約束的XDC文件。

若是項目包含使用其自身約束的IP,則相應的約束文件不會出如今約束集中。 相反,它與IP源文件一塊兒列出

您還能夠將Tcl腳本添加到約束集中做爲非託管約束或非託管Tcl腳本。 Vivado設計套件不會從新編寫修改的約束
進入一個非託管的Tcl腳本。 Tcl腳本和XDC文件的加載順序與Vivado IDE中顯示的順序相同(若是它們屬於同一個PROCESSING_ORDER組)或命令report_compile_order -constraints報告的順序。
若是須要,能夠在多個約束集中使用XDC文件或Tcl腳本。 有關如何爲項目建立和添加約束文件和約束集的更多信息,請參閱「Vivado Design Suite用戶指南」中的使用約束:系統級設計
參賽做品(UG895)[參考文獻2]。

非項目流程
在非項目模式下,必須在執行編譯命令以前單獨讀取每一個文件。
下面的示例腳本顯示瞭如何使用一個或多個XDC文件進行綜合和實現。
示例腳本:
read_verilog [glob src / * .v]
read_xdc wave_gen_timing.xdc
read_xdc wave_gen_pins.xdc
synth_design -top wave_gen -part xc7k325tffg900-2
opt_design
place_design
route_design

語境外約束
在HD或PR流中,一般以上下文(OOC)方法合成設計的各部分。 當使用這樣的流時,能夠僅爲OOC合成指定一些約束。 例如,當塊合成OOC時,必須定義在塊的輸入邊界處傳播的時鐘。 這些時鐘在OOC XDC文件中定義。

In Project Mode:
add_file constraints_ooc.xdc
set_property USED_IN {synthesis out_of_context} [get_files constraints_ooc.xdc]
The Out-of-Context can also be set on the XDC file through the GUI (property on file
constraints_ooc.xdc).

也能夠經過GUI(文件constraints_ooc.xdc上的屬性)在XDC文件上設置Out-of-Context。
In Non-Project Mode:
read_xdc -mode out_of_context constraints_ooc.xdc

Synthesis and Implementation Constraint Files
By default, all XDC files and Tcl scripts added to a constraint set are used for both synthesis
and implementation. Set the USED_IN_SYNTHESIS and USED_IN_IMPLEMENTATION
properties on the XDC file or the Tcl script to change this behavior. This property can take
the value of either TRUE or FALSE.

合成和實現約束文件
默認狀況下,添加到約束集的全部XDC文件和Tcl腳本都用於合成和實現。 在XDC文件或Tcl腳本上設置USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION屬性以更改此行爲。 此屬性能夠採用TRUE或FALSE的值。

重要信息:DONT_TOUCH屬性不遵循USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION的屬性。 若是在合成XDC中使用DONT_TOUCH屬性,則爲
不管USED_IN_IMPLEMENTATION的值如何,都會傳播到實現中。 有關DONT_TOUCH屬性的更多信息,請參閱RTL屬性,第58頁,這多是最須要注意的地方

For example, to use a constraint file for implementation only:
1. Select the constraint file in the Sources window.
2. In the Source File Properties window:
a. Uncheck Synthesis.
b. Check Implementation.

The equivalent Tcl commands are:
set_property USED_IN_SYNTHESIS false [get_files wave_gen_pins.xdc]
set_property USED_IN_IMPLEMENTATION true [get_files wave_gen_pins.xdc]
When running the Vivado IDE in Non-Project Mode, you can read in the constraints directly
between any steps of the flow. The properties USED_IN_SYNTHESIS and
USED_IN_IMPLEMENTATION do not matter in this mode.

在非項目模式下運行Vivado IDE時,您能夠直接在流的任何步驟之間讀取約束。 在此模式下,屬性USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION可有可無。
The following compilation Tcl script shows how to read two XDC files for different steps of
the flow:

如下編譯Tcl腳本顯示瞭如何讀取不一樣步驟的兩個XDC文件
流程:

read_verilog [glob src/*.v]
read_xdc wave_gen_timing.xdc
synth_design -top wave_gen -part xc7k325tffg900-2
read_xdc wave_gen_pins.xdc
opt_design
place_design
route_design

 

Ordering Your Constraints

Because XDC constraints are applied sequentially, and are prioritized based on clear
precedence rules, you must review the order of your constraints carefully. For more
information, see Chapter 7, XDC Precedence.

因爲XDC約束是按順序應用的,而且基於明確的優先級規則進行優先級排序,所以必須仔細檢查約束的順序。 有關更多信息,請參見第7章,XDC優先級

注意:若是多個物理約束髮生衝突,則最新約束將獲勝。 例如,若是I / O端口經過多個XDC文件分配了不一樣的位置(LOC),則爲最新位置
分配給端口優先。

The Vivado IDE provides full visibility into your design. To validate your constraints step by
step:

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

1. Run the appropriate report commands.
2. Review the messages in the Tcl Console or the Messages window.

建議:不管是爲設計使用一個仍是多個XDC文件,都按如下順序組織約束。

## Timing Assertions Section # Primary clocks # Virtual clocks # Generated clocks # Clock Groups # Bus Skew constraints # Input and output delay constraints ## Timing Exceptions Section # 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

Note: The case analysis constraints that change the clock relationships or clock propagation should
be defined prior to defining the generated clocks. This includes cases analysis defined on clock
buffers that result in the output clock of the buffer to be impacted by the case analysis.

注:應在定義生成的時鐘以前定義更改時鐘關係或時鐘傳播的案例分析約束。 這包括在時鐘上定義的案例分析
緩衝區致使緩衝區的輸出時鐘受到案例分析的影響。

Start with the clock definitions. The clocks must be created before they can be used by any
subsequent constraints. Any reference to a clock before it has been declared results in an
error and the corresponding constraint is ignored. This is true within an individual
constraint file, as well as across all the XDC files (or Tcl scripts) in your design.
The order of the constraint files matters. You must be sure that the constraints in each file
do not rely on the constraints of another file. If this is the case, you must read the file that
contains the constraint dependencies last. If two constraint files have interdependencies,
you must either merge them manually into one file that contains the proper sequence, or
divide the files into several separate files and order them correctly.

從時鐘定義開始。 必須先建立時鐘,而後才能將它們用於任何後續約束。 聲明以前對時鐘的任何引用都會致使錯誤,並忽略相應的約束。 在單個約束文件中以及設計中的全部XDC文件(或Tcl腳本)中都是如此。

從時鐘定義開始。 必須先建立時鐘,而後才能將它們用於任何後續約束。 聲明以前對時鐘的任何引用都會致使錯誤,並忽略相應的約束。
在單個約束文件中以及設計中的全部XDC文件(或Tcl腳本)中都是如此。
約束文件的順序很重要。 您必須確保每一個文件中的約束不依賴於另外一個文件的約束。 若是是這種狀況,則必須最後讀取包含約束依賴項的文件。
若是兩個約束文件具備相互依賴關係,則必須將它們手動合併到一個包含正確序列的文件中,或者將文件分紅幾個單獨的文件並正確排序。

Constraints Sequence Editing
The Vivado IDE constraints manager saves any edited constraint back to its original location
in the XDC files, but not in Tcl scripts. Any new constraint is saved at the end of the XDC file
marked as target. In many cases, when your constraints set contains several XDC files, the
target constraint file is not the last file in the list, and will not be loaded last when opening
or reloading your design. As a consequence, the constraints sequence saved on disk can be
different from the one you had previously in memory.

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

IMPORTANT: You must verify that the final sequence stored in the constraint files still works as
expected. If you must modify the sequence, you must modify it by directly editing the constraint files.
This is especially important for timing constraints

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

For example, in Figure 2-3, the file wave_gen_pin.xdc was moved to before the file
wave_gen_timing.xdc by using drag and drop.

在沒有任何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]

Figure 2: XDC Files in the IP Sources

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文件命名爲<IP_NAME> _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查詢。

Entering Constraints

The Vivado IDE provides several ways to enter constraints. Unless you directly edit the XDC
file in a text editor, you must open a design database (elaborated, synthesized or
implemented) in order to access the constraints windows in the Vivado IDE.

Vivado IDE提供了幾種輸入約束的方法。 除非您在文本編輯器中直接編輯XDC文件,不然必須打開設計數據庫(詳細說明,綜合或實現)才能訪問Vivado IDE中的約束窗口。

Saving Constraints in Memory

You must have a design in memory to validate your constraints during editing. When you
edit a constraint using the Vivado IDE user interface, the equivalent XDC command is issued
in the Tcl Console in order to apply it in memory. An edited timing constraint must be
applied in memory before it can be saved to the XDC file.
Before you can run synthesis or implementation, you must save the constraints in memory
back to an XDC file that belongs to the project. The Vivado IDE prompts you to save your
constraints whenever necessary.

您必須在內存中設計一個設計才能在編輯期間驗證您的約束。 使用Vivado IDE用戶界面編輯約束時,將在Tcl控制檯中發出等效的XDC命令,以便將其應用於內存。 必須先將已編輯的時序約束應用於內存,而後才能將其保存到XDC文件中。(啥意思?將已編輯的時序約束應用於內存而後才能保存XDC文件???)
在運行綜合或實現以前,必須將內存中的約束保存回屬於項目的XDC文件。 Vivado IDE會在必要時提示您保存約束。

Do one of the following to save your constraints manually:
執行如下操做之一以手動保存約束:
•單擊「保存約束」。
•選擇「文件」>「約束」>「保存」。

Note: When you save the in-memory constraints, a dialog box opens to remind you that this could
cause the synthesis and implementation to go out of date. Select the Remember Preference check
box on this dialog box to disable future instances of this warning.

注意:保存內存中的約束時,會打開一個對話框,提醒您這可能致使合成和實現過期。 選中此對話框上的「記住首選項」複選框以禁用此警告的將來實例。

When you run these commands, Vivado does the following:
• Saves all new constraints to the XDC file marked target in the constraints set
associated with your design.
• Saves all edited constraints back to the XDC file from which they originated.
Note: The constraints management system preserves the original XDC files format as much as
possible.

運行這些命令時,Vivado會執行如下操做:
•將全部新約束保存到與設計關聯的約束集中標記爲目標的XDC文件。
•將全部已編輯的約束保存回源自它們的XDC文件。
注意:約束管理系統儘量保留原始XDC文件格式。

Constraints Editing Flow Options

Figure 2-7 shows the recommended flow options. Do not use both options at the same
time. Mixing these options might cause you to lose constraints. The recommended flow
options are:

圖2-7顯示了推薦的流量選項。 不要同時使用這兩個選項。 混合這些選項可能會致使您失去約束。 推薦的流程選項包括:
• User Interface Option
• Hand Edit Option
User Interface Option
Because the Vivado IDE manages your constraints, you must not edit your XDC files at the
same time. When the Vivado IDE saves the memory content, the following occurs:
• The modified constraints replace the original constraints in their original file.
• The new constraints are appended to the file marked as target.
• All manual edits in the XDC files are overwritten.

用戶界面選項
因爲Vivado IDE管理您的約束,所以您不能同時編輯XDC文件。 當Vivado IDE保存內存內容時,會發生如下狀況:
•修改的約束替換原始文件中的原始約束。
•新約束將附加到標記爲目標的文件中。
•將覆蓋XDC文件中的全部手動編輯。


Hand Edit Option
When you use the Hand Edit option, you are in charge of editing and maintaining the XDC
files. While you will probably use the Tcl Console to verify the syntax of some constraints,
you must discard the changes made in memory when closing or reloading your design.
In case of a conflict when saving the constraints, you are prompted to choose one of the
following:
• Discarding the changes made in memory
• Saving the changes in a new file
• Overwriting the XDC files

手編輯選項
使用「手動編輯」選項時,您負責編輯和維護XDC文件。 雖然您可能會使用Tcl控制檯來驗證某些約束的語法,
關閉或從新加載設計時,必須放棄在內存中所作的更改。
若是在保存約束時發生衝突,系統會提示您選擇其中一個
如下:
•放棄在內存中進行的更改
•將更改保存在新文件中
•覆蓋XDC文件

Constraints creation is iterative. You can use IDE editors in some cases, and hand edit the
constraint files in others.

 

在圖2-7中描述的每次迭代中,不要同時使用這兩個選項。
若是在兩個選項之間切換,則必須先保存約束或從新加載設計,以確保內存中的約束與XDC文件正確同步。

Pin Assignment
To create and edit existing top-level ports placement when using the RTL Analysis,
Synthesis, or Implementation views:

在使用RTL Analysis,Synthesis或Implementation視圖時建立和編輯現有的頂級端口放置:

1. Select the I/O Planning pre-configured layout.

2. Open the windows shown in Table 2-3.

有關引腳分配的更多信息,請參閱「Vivado Design Suite用戶指南」中的此連接:
I / O和時鐘規劃(UG899)[參考3]。

 

佈局規劃
在使用RTL分析,綜合或實施視圖時建立和編輯Pblock:
1.選擇佈局規劃預配置佈局。

To create cell placement constraints on a particular BEL or SITE:
1. Select the cell in the Netlist view.
2. Drag and drop the cell to the target location in the Device view.

要在特定的BEL或SITE上建立單元格放置約束:
1.在「網表」視圖中選擇單元格。
2.將單元格拖放到「設備」視圖中的目標位置。

有關佈局規劃的更多信息,請參閱「Vivado Design Suite用戶指南」中的如下連接:
設計分析和關閉技術(UG906)[參考文獻4]。

Timing Constraints Wizard
The Timing Constraints Wizard identifies missing timing constraints on a synthesized or
implemented design. It analyzes the netlist, the clock nets connectivity, and the existing
timing constraints in order to provide recommendations as per the UltraFast Design
Methodology Guide for the Vivado Design Suite (UG949) [Ref 5]. Three categories of
constraints are covered by the following 11 pages of the wizard, followed by a summary.
The following steps are included:

時序約束嚮導
時序約束嚮導識別合成或實現的設計上缺乏的時序約束。 它分析網表,時鐘網絡鏈接和現有的時序約束,以便根據Vivado設計套件(UG949)的UltraFast設計方法指南[參考文獻5]提供建議。 嚮導的如下11頁包含三類約束,後面是摘要。
包括如下步驟:

在每一個步驟中,您能夠接受建議的約束或經過選中或取消選中每一個建議的約束來修改列表。 可是,在嚮導的早期取消選中建議的約束可能會阻止在後續步驟中識別其餘缺乏的約束。 例如,若是您決定跳過建立時鐘,則嚮導將不會識別並推薦任何引用此時鐘或其自動派生時鐘的約束。
嚮導的最後一頁提供了將要建立的約束的摘要。 您能夠單擊每一個單獨的超連接以查看約束詳細信息,或在退出嚮導後在「時序約束」窗口中顯示新約束。

您還能夠選擇在單擊「完成」後生成如下建議的報告,以驗證設計是否徹底受約束:

Create Timing Summary report: Timing slack is reported with the new constraints, in
addition to a check_timing report. Timing violations will likely display if the period
or I/O delay constraints that you entered are too difficult.
• Create Check Timing report: This report identifies missing or inappropriate
constraints by running the check_timing command.
• Create DRC Report using only Timing Checks: this report runs the Timing DRCs.

重要信息:除非單擊「取消」,不然新添加的約束將自動保存到目標XDC文件中。 退出嚮導後,您能夠在Timing Constraints窗口中編輯或刪除新約束。

The Timing Constraint Wizard does not recommend a constraint if it introduces unsafe timing analysis. Also, the wizard does not fix inappropriate constraints that already existed when loading the design in memory. Nevertheless, some invalid constraints might become valid after creating all the missing clocks when using Vivado Design Suite in project mode;
for more details, see Constraints Processing Order and Invalid Constraints, below. Also, after using the wizard, if check_timing or report_drc still flag some constraints issues, it is usually due to a constraint problem that already existed in the source XDC files. You must address these problems directly instead of using the wizard to resolve them.

若是定時約束嚮導引入了不安全的時序分析,則不建議使用約束。 此外,嚮導不會修復在內存中加載設計時已存在的不適當約束。 然而,在項目模式下使用Vivado Design Suite時,建立全部丟失的時鐘後,某些無效約束可能會生效;
有關更多詳細信息,請參閱下面的約束處理順序和無效約束。 此外,在使用嚮導以後,若是check_timing或report_drc仍標記一些約束問題,則一般是因爲源XDC文件中已存在的約束問題。 您必須直接解決這些問題,而不是使用嚮導來解決它們。

約束處理順序和無效約束
時序約束嚮導建議缺乏定義時鐘或引用時鐘的約束,這些約束將在項目模式下保存在目標XDC文件的末尾,或者在其餘模式的全部約束結束時保存。出於這個緣由,你必須明白
如下規則:
•項目模式:在啓動「計時約束」嚮導以前,必須指定目標XDC文件,其處理順序設置爲「正常」。目標XDC文件必須屬於在內存中打開且當前選定的設計的約束集。目標XDC文件在其餘XDC文件中的位置很重要,由於它指定了之後應用和保存建議約束的位置。此外,嚮導會嘗試從新應用屬於目標以後解析的XDC文件的任何無效約束
XDC文件以提供最完整和準確的建議。
例如,考慮來自synth_1的網表在內存中使用約束集constr_1運行。此約束集包含序列a.xdc,b.xdc和c.xdc中的三個XDC文件。若是選擇b.xdc做爲目標XDC文件而且每一個文件包含無效約束,則Timing Constraints嚮導將應用推薦的時鐘,而後在繼續執行下一步並發現其餘缺乏的約束以前從c.xdc從新應用無效約束。

您沒法在這些模式下指定目標XDC文件,所以「時序約束」嚮導會在約束序列的最後位置推薦並應用新約束。 這至關於在Tcl控制檯中輸入新約束或經過Timing Constraints窗口輸入新約束。 在這些模式下,嚮導不會嘗試從新應用無效約束。 若是須要在整個約束序列中更早地應用新約束以解決約束依賴性或優先級問題,則必須手動編輯約束序列。

如下是如何手動編輯約束的示例

You cannot specify a target XDC file in these modes, so the Timing Constraints wizard recommends and applies new constraints at the last position of the constraints sequence. This is equivalent to entering new constraints in the Tcl Console or via the Timing Constraints window. In these modes, the wizard does not attempt to re-apply invalid constraints. If the new constraints need to be applied earlier in the overall constraints sequence in order to resolve constraints dependencies or precedence issues, you must edit the constraints sequence manually.

您沒法在這些模式下指定目標XDC文件,所以「時序約束」嚮導會在約束序列的最後位置推薦並應用新約束。 這至關於在Tcl控制檯中輸入新約束或經過Timing Constraints窗口輸入新約束。 在這些模式下,嚮導不會嘗試從新應用無效約束。 若是須要在整個約束序列中更早地應用新約束以解決約束依賴性或優先級問題,則必須手動編輯約束序列。

您可使用Timing Constraints窗口查看更新的時序約束序列。 查看新約束後,能夠將序列保存到DCP中

嚮導打開時可用的報告功能當「時序約束」嚮導打開時,它會阻止Vivado IDE中的大多數操做,包括使用Tcl控制檯或運行時序分析,以免數據庫差別。 嚮導窗口始終位於其餘Vivado IDE窗口的前面。 若是須要訪問Vivado IDE菜單或窗口,則必須將嚮導窗口移到側面。

Timing Constraints嚮導打開時,只有如下功能可用:
•報告和可視化時鐘網絡

Most pages of the wizard have buttons to generate and access the clock network report in order to visualize the clock topologies, their source point, and the shared segments for some of the clocks.

嚮導的大多數頁面都有按鈕來生成和訪問時鐘網絡報告,以即可視化時鐘拓撲,它們的源點以及某些時鐘的共享段。

有關時鐘網絡報告的更多詳細信息,請參閱「Vivado設計套件用戶指南:設計分析和關閉技術」(UG906)[參考4]。

Searching a name in source files or an object in the design in memory
The Find and Find In Files dialog boxes are available from the Edit menu. You can use these dialog boxes to retrieve some information about the design while entering the constraints in the wizard.
• Creating and Viewing schematics
You can select design objects in the main Vivado IDE window and visualize them in schematics. All schematics features are available. Only the last step of the Timing Constraints wizard, Asynchronous Clock Domain Crossings, supports convenient schematics cross-probing when selecting one or several entries in the Timing Paths tab.
Refer to the Vivado Design Suite User Guide: Using the Vivado IDE (UG893) [Ref 7] for more info on using schematics.

在源文件中搜索名稱或在內存中搜索設計中的對象
「編輯」菜單中提供了「查找和查找文件」對話框。 在嚮導中輸入約束時,可使用這些對話框檢索有關設計的一些信息。
•建立和查看原理圖
您能夠在主Vivado IDE窗口中選擇設計對象,並在原理圖中將其可視化。 全部原理圖功能都可用。 只有時序約束嚮導的最後一步,異步時鐘域交叉,在「時序路徑」選項卡中選擇一個或多個條目時,支持方便的原理圖交叉探測。
有關使用原理圖的更多信息,請參閱「Vivado Design Suite用戶指南:使用Vivado IDE(UG893)[參考7]」。

Visualizing constraints in memory with the Timing Constraints window Each page of the wizard includes a tab that shows the existing constraints of the same type as recommended by the step. This is convenient for quickly reviewing the details of constraints already created in the XDC files. For a complete view of all timing constraints in memory, the Timing Constraints window shows the full sequence of constraints, organized by XDC file, including scoping information. It also displays the invalid constraints.

使用「時序約束」窗口可視化內存中的約束嚮導的每一個頁面都包含一個選項卡,該選項卡顯示與步驟建議的相同類型的現有約束。 這對於快速查看已在XDC文件中建立的約束的詳細信息很方便。 有關內存中全部時序約束的完整視圖,Timing Constraints窗口顯示由XDC文件組織的完整約束序列,包括做用域信息。 它還顯示無效約束。

 

Constraints Editing within the Wizard
Each step of the wizard can recommend several constraints. Depending on the constraint,you must take one of the following actions:
• Uncheck the constraints you do not want to create, using one of the following
methods:
° Remove each constraint from the list, one at a time, by unchecking each line.
° Remove all constraints by unchecking the upper left check box of the table.

約束在嚮導中編輯
嚮導的每一個步驟均可以推薦幾個約束。 根據約束,您必須執行如下操做之一:
•使用如下方法之一取消選中您不想建立的約束
方法:
°經過取消選中每一行,從列表中刪除每一個約束,一次一個。
°經過取消選中表格的左上角複選框來刪除全部約束。

提示:或者,您能夠右鍵單擊約束,而後選擇「不建立約束」,如圖所示
圖2-11。

在圖2-12中,clk1和ddr_clk_in未選中,將被跳過。

經過單擊顯示未定義的單元格輸入缺乏的值(例如,圖2-12中的clk2和clk3的頻率或週期值)。
您能夠經過選擇相應的行並單擊Edit Selected Rows按鈕同時編輯多個約束,如圖2-13所示。

接下來,填寫全部必填字段,如Frequency和Period,如圖2-14所示。

一次編輯多個約束對輸入和輸出延遲特別有用
限制。
•若是不須要採起任何措施,只需查看約束。
檢查並完成全部已檢查的建議約束後,單擊「下一步」繼續下一頁。 您錯過的任何條目都會阻止嚮導進入下一步。
您可使用「後退」按鈕從新訪問頁面。 若是在上一頁上編輯任何約束並單擊「下一步」,則嚮導將從新分析設計並相應地推薦新約束。 在大多數狀況下,先前建議的約束不受影響
更改已恢復。 若是隻查看上一頁而不修改任何建議的約束,則嚮導不會從新運行任何分析,這一般會節省運行時間。

重要信息:您沒法使用「時序約束」嚮導編輯現有時序約束。 相反,您必須使用Timing Constraints窗口。

Constraints Recommended by the Wizard
Primary Clocks
Two categories of clocks are identified by the wizard, as shown in Figure 2-15.

嚮導標識兩類時鐘,如圖2-15所示。

計算時序鬆弛所需的主要時鐘
建議約束表中顯示創建/保持/恢復/刪除檢查。
•僅執行脈衝寬度檢查所需的時鐘(min_period,max_period,max_skew,min_low_pulse_width和min_high_pulse_width)出如今「僅限脈衝寬度檢查限制」表中。 默認狀況下,這些時鐘未選中,由於它們僅用於報告目的而不會影響
實施工具的結果質量。

嚮導會自動識別約束的正確時鐘源點。 它對應於時鍾樹根,其中時鐘信號實際進入設計。 在大多數狀況下,時鐘源點是輸入時鐘端口,在某些特殊狀況下,它是沒有定時弧的基元的輸出。 例如,在7系列設備中,嚮導會識別GT_CHANNEL基元輸出上缺乏的主時鐘。 對於UltraScale™器件,Vivado Design Suite可以根據輸入時鐘特性以及GT_CHANNEL配置和鏈接自動導出GT_CHANNEL輸出時鐘。 所以,嚮導會建議位於設計邊界上GT_CHANNEL單元上游的主時鐘。

生成的時鐘
Timing Constraints(時序約束)嚮導建議在順序單元的輸出上直接或經過某些互連邏輯驅動其餘順序單元的時鐘引腳時,建立生成時鐘。 與PLL或MMCM不一樣,用戶邏輯不能乘以主時鐘的頻率,所以嚮導僅提供指定除法系數的選項,如圖2-16所示。

當多個主時鐘到達生成的時鐘源點時,嚮導將使用惟一的名稱和對各個主時鐘的清晰引用來建立全部相應的生成時鐘。 圖2-16說明了兩個時鐘(clk3和clk4)到達的狀況
順序單元FDIV_Reg。 所以,建議使用兩個生成的時鐘約束(FDIV和FDIV_1)。

注意:某些時鐘拓撲(例如時鐘路徑上的級聯寄存器)可能須要屢次運行「時序約束」嚮導才能發現全部丟失的生成時鐘。

轉發時鐘
Timing Constraints嚮導建議在輸出端口上生成時鐘約束,該輸出端口由具備常量輸入的雙倍數據速率寄存器驅動。 基於輸入恆定鏈接性,將生成的時鐘相位調整爲正(0度相移)或反相(180度相移)。 約束中使用的主時鐘是到達雙倍數據速率寄存器的時鐘引腳的時鐘。 查看源時鐘
圖2-17中推薦約束表的列。

對於7系列器件系列,嚮導識別的拓撲結構以下所示
圖2-18。 主時鐘或輸出緩衝器的性質沒有限制。

對於UltraScale器件系列,ODDR和ODDRE1原語會自動重定向到OSERDESE3,其屬性爲ODDR_MODE = TRUE。 嚮導識別圖2-19中所示的拓撲,其中OSERDESE3 / D [0]鏈接到1和
OSERDESE3 / D [4]鏈接到0(無相移)

外部反饋延遲
Timing Constraints(時序約束)嚮導分析設計中存在的MMCM和PLL單元的反饋環路鏈接。 建議使用外部延遲約束(最小和最大)
當CLKFBIN和CLKFBOUT引腳經過IO緩衝器和MMCM或PLL屬性COMPENSATION = EXTERNAL鏈接到設計端口時。 圖2-20說明了推薦的外部延遲約束。

圖2-21顯示了具備外部反饋路徑電路的典型MMCM。

In the current Vivado Design Suite release, the Timing Constraints wizard cannot
recommend external delay constraints when there is a sequential cell in the feedback path,
such as ODDR, which is used for generating a forwarded clock. In this case, you must create
the external delay constraints manually or using the Timing Constraints window after
exiting the wizard.

在當前的Vivado Design Suite版本中,當反饋路徑中存在連續單元(例如ODDR,用於生成轉發時鐘)時,Timing Constraints嚮導不建議使用外部延遲約束。 在這種狀況下,您必須在退出嚮導後手動或使用Timing Constraints窗口建立外部延遲約束。

Input Delays
The Timing Constraints wizard analyzes all paths from input ports to identify their
destination clock inside the design and their active edges. Based on this information, the
wizard recommends basic system synchronous input delay constraints that are based on the
XDC templates available in the Vivado IDE (see XDC Templates, page 55 for templates). The
waveform associated with the selected template is displayed at the bottom of the window
in the Waveform tab when you select a constraint entry in the Recommended Constraints
table.

輸入延遲
Timing Constraints(時序約束)嚮導分析來自輸入端口的全部路徑,以識別設計中的目標時鐘及其活動邊緣。 根據此信息,嚮導會建議基於的基本系統同步輸入延遲約束
Vivado IDE中提供的XDC模板(有關模板,請參閱XDC模板,第55頁)。 在「推薦約束」表中選擇約束條目時,與所選模板關聯的波形將顯示在「波形」選項卡中窗口的底部。

圖2-22顯示了嚮導提出並由用戶進行部分編輯的幾個輸入約束的示例。

For each constraint, you can edit three characteristics in order to specify the appropriate waveform that corresponds to the actual interface timing on the board:
• Synchronous describes the nature of the clock-data relationship.
° System (for System Synchronous interface): use this setting when the data is launched and captured by different clock edges that are 1 period or ½ period apart.
° Source (for Source Synchronous interface): use this setting when the data is launched and captured by the same clock edge.
• Alignment describes the data transition alignment with respect to the active clock edge.
° For System Synchronous interfaces only:
- Edge: use this setting when the clock and data transition at the same time.

對於每一個約束,您能夠編輯三個特徵,以指定與電路板上實際接口時序對應的相應波形:
•同步描述時鐘數據關係的性質。
°系統(用於系統同步接口):當數據經過1個週期或相隔1/2週期的不一樣時鐘邊沿啓動和捕獲時使用此設置。
°Source(用於源同步接口):當數據以相同的時鐘邊沿啓動和捕獲時使用此設置。
•對齊描述了與活動時鐘邊沿相關的數據轉換對齊。
°僅適用於系統同步接口:
- Edge:當時鍾和數據同時轉換時使用此設置。

僅適用於源同步接口:
- 中心:當時鍾在數據有效窗口中間轉換時使用此設置。
- Edge Direct:當時鍾在數據有效窗口的開頭轉換時使用此設置。
- Edge MMCM:當時鍾在數據有效窗口結束時轉換時使用此設置。
•Data Rate和Edge描述了受模板約束的活動時鐘邊沿。 嚮導建議的默認值基於捕獲順序單元的活動時鐘邊沿。
°Single Rise:使用此設置用於只有上升時鐘沿啓動FPGA外部數據的狀況。
°Single Fall:使用此設置用於僅降低時鐘邊沿FPGA外部數據啓動的狀況。
°Dual:使用此設置用於上升和降低時鐘沿啓動FPGA外部數據的狀況。

You can also choose to generate the following recommended reports upon clicking Finish to verify that the design is completely and properly constrained:
• Create Timing Summary report: Timing slack is reported with the new constraints, in addition to a check_timing report. Timing violations will likely display if the period or I/O delay constraints that you entered are too difficult.
• Create Check Timing report: This report identifies missing or inappropriate constraints by running the check_timing command.
• Create DRC Report using only Timing Checks: this report runs the Timing DRCs.

您還能夠選擇在單擊「完成」後生成如下建議的報告,以驗證設計是否徹底受約束:
•建立時序摘要報告:除了check_timing報告以外,還會使用新約束報告時序鬆弛。 若是您輸入的週期或I / O延遲限制太難,則可能會顯示時序違規。
•建立檢查時間報告:此報告經過運行check_timing命令來識別缺失或不適當的約束。
•僅使用時序檢查建立DRC報告:此報告運行時序DRC。

重要信息:除非單擊「取消」,不然新添加的約束將自動保存到目標XDC文件中。 退出後,您能夠在Timing Constraints窗口中編輯或刪除新約束

 嚮導會自動識別約束的正確時鐘源點。 它對應於時鍾樹根,其中時鐘信號實際進入設計。 在大多數狀況下,時鐘源點是輸入時鐘端口,在某些特殊狀況下,它是沒有定時弧的基元的輸出。 例如,在7系列設備中,嚮導會識別GT_CHANNEL基元輸出上缺乏的主時鐘。 對於UltraScale™器件,Vivado Design Suite可以根據輸入時鐘特性和GT_CHANNEL配置和鏈接自動導出GT_CHANNEL輸出時鐘。 所以,嚮導會建議位於設計邊界上GT_CHANNEL單元上游的主時鐘。

當多個主時鐘到達生成的時鐘源點時,嚮導將使用惟一的名稱和對各個主時鐘的清晰引用來建立全部相應的生成時鐘。 圖2-16說明了兩個時鐘(clk3和clk4)到達的狀況
順序單元FDIV_Reg。 所以,建議使用兩個生成的時鐘約束(FDIV和FDIV_1)。
注意:某些時鐘拓撲(例如時鐘路徑上的級聯寄存器)可能須要屢次運行「時序約束」嚮導才能發現全部丟失的生成時鐘。

轉發時鐘
Timing Constraints嚮導建議在輸出端口上生成時鐘約束,該輸出端口由具備常量輸入的雙倍數據速率寄存器驅動。 基於輸入恆定鏈接性,將生成的時鐘相位調整爲正(0度相移)或反相(180度相移)。 約束中使用的主時鐘是到達雙倍數據速率寄存器的時鐘引腳的時鐘。 查看源時鐘
圖2-17中推薦約束表的列。

對於7系列器件系列,嚮導識別的拓撲結構以下所示
圖2-18。 主時鐘或輸出緩衝器的性質沒有限制。

For the UltraScale device family, the ODDR and ODDRE1 primitives are automatically
retargeted to OSERDESE3 with the property ODDR_MODE=TRUE. The wizard recognizes the
topology shown in Figure 2-19, where OSERDESE3/D[0] is connected to 1 and
OSERDESE3/D[4] is connected to 0 (no phase-shift).

對於UltraScale器件系列,ODDR和ODDRE1原語會自動重定向到OSERDESE3,其屬性爲ODDR_MODE = TRUE。嚮導識別圖2-19中所示的拓撲,其中OSERDESE3 / D [0]鏈接到1,OSERDESE3 / D[4]鏈接到0(無相移)。

外部反饋延遲
Timing Constraints(時序約束)嚮導分析設計中存在的MMCM和PLL單元的反饋環路鏈接。 建議使用外部延遲約束(最小和最大)
當CLKFBIN和CLKFBOUT引腳經過IO緩衝器和MMCM或PLL屬性COMPENSATION = EXTERNAL鏈接到設計端口時。 圖2-20說明了推薦的外部延遲約束。

Timing Constraints(時序約束)嚮導分析來自輸入端口的全部路徑,以識別設計中的目標時鐘及其活動邊緣。 根據此信息,嚮導會建議基於的基本系統同步輸入延遲約束
Vivado IDE中提供的XDC模板(有關模板,請參閱XDC模板,第55頁)。 在「推薦約束」表中選擇約束條目時,與所選模板關聯的波形將顯示在「波形」選項卡中窗口的底部。

圖2-22顯示了嚮導提出並由用戶進行部分編輯的幾個輸入約束的示例。

對於每一個約束,您能夠編輯三個特徵,以指定與電路板上實際接口時序對應的相應波形:
•同步描述時鐘數據關係的性質。
°系統(用於系統同步接口):當數據經過1個週期或相隔1/2週期的不一樣時鐘邊沿啓動和捕獲時使用此設置。
°Source(用於源同步接口):當數據以相同的時鐘邊沿啓動和捕獲時使用此設置。
•對齊描述了與活動時鐘邊沿相關的數據轉換對齊。
°僅適用於系統同步接口:
- Edge:當時鍾和數據同時轉換時使用此設置。

輸出延遲
與輸入延遲步驟相似,時序約束嚮導分析全部輸出端口的路徑,以識別設計中的源時鐘及其活動邊沿。 模板選擇規則與輸入延遲中描述的相同。 圖2-24顯示了嚮導提出的幾個輸出約束,並由用戶進行了部分編輯。

對於每一個約束,能夠編輯三個特徵,以便指定與板上實際接口時序相對應的適當波形:
•Synchronous描述時鐘數據關係的性質(有關詳細信息,請參閱輸入延遲,頁面33)。
•對齊描述了與活動時鐘邊沿相關的數據轉換對齊。
°創建/保持:當根據FPGA外部的數據有效窗口時序特性指定模板延遲參數時,使用此設置。
°Skew(僅限源同步):根據FPGA的輸出引腳的偏斜要求指定模板延遲參數時,使用此設置。
•Data Rate和Edge描述了受模板約束的活動時鐘邊沿(請參閱
輸入延遲,第33頁瞭解更多詳情)。

與推薦的輸入延遲約束同樣,參考時鐘一般是電路板時鐘,但如下狀況除外:
•電路板時鐘和輸出路徑內部時鐘具備不一樣的時鐘週期。輸出約束引用與內部時鐘具備相同波形的虛擬時鐘,以便以1週期路徑要求執行設置分析。
自動建立虛擬時鐘。
•與電路板時鐘相比,輸出路徑內部時鐘具備負相移。該向導使用虛擬時鐘做爲參考時鐘。使用與電路板時鐘相同的波形自動建立虛擬時鐘。此外,嚮導還指定虛擬時鐘和內部時鐘之間的多週期路徑約束,以將默認分析調整爲1個週期+設置的相移量。虛擬時鐘和多週期路徑約束的組合爲Vivado Design Suite定時器提供了更簡單的約束,能夠處理而且只能影響輸出端口
那個對虛擬時鐘的引用。
注意:對於正相移,不須要虛擬時鐘和多週期路徑約束,由於默認設置路徑要求是1個週期減去相移量。

A forwarded clock has been identified for timing the output path based on the shared
clocking connectivity.
The forwarded clock must have been created during the third step of the wizard
"Forwarded Clocks," or else the board clock or a virtual clock will be used as the output
delay constraint reference clock.

已經識別出轉發時鐘,用於基於共享時鐘鏈接對輸出路徑進行定時。
必須在嚮導「轉發時鐘」的第三步中建立轉發時鐘,不然電路板時鐘或虛擬時鐘將用做輸出延遲約束參考時鐘。

時間限制電子表格
時序約束電子表格顯示特定類型的全部現有約束的詳細信息。使用時序約束電子表格查看和編輯約束選項。

該小組的最後兩列顯示:
•源文件:約束來自的XDC文件或Tcl腳本的名稱
•Scoped Cell:應用約束時的當前實例的名稱。 此名稱一般對應於使用專用約束傳遞的IP實例。 有關更多信息,請參閱約束範圍,第67頁。
經過雙擊電子表格的最後一行,能夠建立所選類型的新約束。 將打開相應的約束建立對話框,您能夠填寫新約束的詳細信息。 單擊「肯定」將約束應用於內存並關閉
窗口。 電子表格中的新行顯示新的約束信息。
您能夠經過直接在電子表格中修改值來編輯任何現有約束。
完成編輯後,單擊「應用」以將修改的約束應用於內存。

重要信息:應用新約束或已修改約束不會將其保存在XDC文件中。 您必須單擊「保存約束」以保存它。
重要信息:沒法編輯或刪除IP約束。 要修改使用IP提供的約束,必須禁用相應的IP XDC文件,將約束複製到XDC文件,而後根據須要編輯約束。

Constraints Creation, Grouped by Category
When you select a constraint type, the corresponding spreadsheet appears on the right
sub-window panel. This allows you to view all the constraints of the same type that have
already been created.

約束創做,按類別分組
選擇約束類型時,相應的電子表格將顯示在右側子窗口面板上。 這容許您查看已建立的相同類型的全部約束。

要建立新約束,請雙擊目標約束的名稱。 使用對話框能夠指定每一個選項的值。 單擊「肯定」後,該工具將執行如下操做:
1.驗證語法。
2.將語法應用於內存。
3.在電子表格的末尾添加新約束。
4.在完整約束列表的末尾添加新約束。

全部約束
窗口底部顯示內存中加載的約束的完整列表,其順序與應用的順序相同。 約束根據XDC文件或它們所源自的Tcl腳本進行分組。 當XDC文件的範圍限定爲
特定的分層單元格,單元格名稱顯示在文件名旁邊。

您能夠展開和摺疊每一個關聯源文件的約束,也能夠經過單擊面板左側的兩個相應按鈕徹底展開和摺疊約束。

提示:摺疊視圖提供了在內存中加載哪些約束文件以及使用範圍機制的位置的簡要概述。 經過report_compile_order -constraints命令能夠得到相同的信息。

 

取消選擇「按源分組」圖標,將視圖切換到一個表,其中源約束文件和做用域單元格信息顯示在右側兩列中。

要刪除約束,請選擇它並單擊X.
•要編輯非只讀的約束,請使用電子表格視圖。 在工具註冊了更改後,必須單擊「應用」以刷新內存中的約束。
•要添加新約束,請使用前面所述的對話框,或在Tcl控制檯中鍵入約束。 新約束在名爲<unsaved_constraints>的roup中出如今列表的末尾。

保存約束時,新約束將保存在標記爲目標的XDC文件的末尾。 若是與內存中的設計關聯的約束集中沒有目標XDC文件,或者約束集中只有一個Tcl腳本,則會提示您指定保存約束的位置。

Regularly save your constraints. Click Save, or select File > Constraints > Save.

重要信息:沒法將新約束和已修改約束保存回Tcl腳本。警告! 若是還沒有應用Timing Constraints窗口中的任何約束,請不要在Tcl控制檯中輸入新約束。 編輯器中的最終約束順序可能與內存中的約束順序不一樣。 爲避免混淆,每次編輯現有約束時都必須從新應用全部約束。

相關文章
相關標籤/搜索