33

Xilinx®Vivado®集成設計環境(IDE)使用Xilinx設計約束(XDC),不支持傳統的用戶約束文件(UCF)格式。
Xilinx設計約束(XDC)和用戶約束文件(UCF)約束之間存在關鍵差別。 XDC約束基於標準的Synopsys設計約束(SDC)格式。 SDC已經使用和發展了20多年,使其成爲描述設計約束的最流行和最成熟的格式。算法

關於XDC約束
XDC約束是行業標準Synopsys設計約束(SDC版本1.9)和Xilinx專有物理約束的組合。
XDC約束具備如下屬性:
•它們不是簡單的字符串,而是遵循Tcl語義的命令。
•它們能夠像Vivado Tcl解釋器同樣解釋爲任何其餘Tcl命令。
•與其餘Tcl命令相同地讀入和解析它們。數據庫

您能夠在流程的不一樣點以多種方式輸入XDC約束。
•將約束存儲在一個或多個XDC文件中。
要在內存中加載XDC文件,請執行如下操做之一:
°使用read_xdc命令。
°將其添加到您的一個項目約束集中。 XDC文件只接受set,list和expr內置Tcl命令。有關支持的命令的完整列表,請參閱附錄A,支持的XDC和SDC命令。
•使用非託管Tcl腳本生成約束。
要執行Tcl腳本,請執行如下操做之一:
°運行source命令。
°使用read_xdc -unmanaged命令。
°將Tcl腳本添加到您的一個項目約束集中。
提示:與XDC文件不一樣,非託管Tcl腳本能夠包含用於選擇設計對象和定義設計約束的任何經常使用Tcl命令,包括條件和循環控制結構。
重要信息:Vivado Design Suite容許您在相同的約束集中混合使用XDC文件和Tcl腳本。僅當修改的約束最初來自XDC文件而不是來自非託管Tcl腳本時,它們纔會保存回原始位置。由Tcl腳本生成的約束不禁Vivado Design Suite管理,沒法進行交互式修改。欲得到更多信息,
請參閱第2章,約束方法windows

重要信息:對於XDC約束,命令source和read_xdc之間的行爲存在差別。 使用source命令導入的約束不會保存在檢查點中
與導入的順序相同。 首先保存使用read_xdc導入的約束,而後保存使用source導入的約束。 以與應用順序相同的順序保存全部約束
設計,使用read_xdc -unmanaged而不是source。安全

要在將設計加載到內存後驗證特定約束的語法或影響,請使用Tcl控制檯和Vivado Design Suite報告功能。 這對於分析和調試時序約束和物理約束特別有用。網絡

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

約束方法論
關於約束方法論
設計約束定義了編譯流程必須知足的要求,以使設計在板上起做用。並不是編譯流程中的全部步驟都使用全部約束。例如,物理約束僅在實現步驟期間使用(即,由佈局器和路由器)。
因爲Xilinx®Vivado®集成設計環境(IDE)綜合和實現算法是時序驅動的,所以必須建立適當的時序約束。
過分約束或設計不足會使時序收斂變得困難。您必須使用符合您的應用程序要求的合理約束。
組織你的約束
Vivado IDE容許您使用一個或多個約束文件。雖然對整個編譯流使用單個約束文件彷佛更方便,但隨着設計變得更加複雜,維護全部約束多是一個挑戰。對於使用由不一樣團隊開發的多個IP核或大塊的設計,一般就是這種狀況。
導入定時和物理約束後,獨立於源文件的數量或設計是否處於項目/非項目模式,可使用write_xdc命令將全部約束導出爲單個文件。寫入約束
指定的輸出文件的順序與它們被讀入項目或設計的順序相同。
命令行選項write_xdc -type可用於選擇要導出的約束(時間,物理或豁免)子集。app

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

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

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

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

非項目流程
在非項目模式下,必須在執行編譯命令以前單獨讀取每一個文件。
下面的示例腳本顯示瞭如何使用一個或多個XDC文件進行綜合和實現。

 

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

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

DONT_TOUCH屬性不遵循USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION的屬性。 若是在綜合XDC中使用DONT_TOUCH屬性,則不管USED_IN_IMPLEMENTATION的值如何,都會將其傳播到實現。
有關DONT_TOUCH屬性的更多信息,請參閱RTL屬性,第58頁

例如,要僅使用約束文件進行實現:
1.在「源」窗口中選擇約束文件。
2.在「源文件屬性」窗口中:
a 取消選中合成。
b 檢查實施。

等效的Tcl命令是:
set_property USED_IN_SYNTHESIS false [get_files wave_gen_pins.xdc
set_property USED_IN_IMPLEMENTATION true [get_files wave_gen_pins.xdc
在非項目模式下運行Vivado IDE時,您能夠直接在流的任何步驟之間讀取約束。 在此模式下,屬性USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION可有可無。
如下編譯Tcl腳本顯示瞭如何爲流的不一樣步驟讀取兩個XDC文件:

訂購你的約束
因爲XDC約束是按順序應用的,而且基於明確的優先級規則進行優先級排序,所以必須仔細檢查約束的順序。 有關更多信息,請參見第7章,XDC優先級。
注意:若是多個物理約束髮生衝突,則最新約束將獲勝。 例如,若是I / O端口經過多個XDC文件分配了不一樣的位置(LOC),則爲最新位置
分配給端口優先。
Vivado IDE可全面瞭解您的設計。 要逐步驗證您的約束:

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

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

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

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

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

約束文件順序

在沒有任何IP的項目流中,全部約束都位於約束集中。 默認狀況下,Vivado IDE中顯示的XDC文件(或Tcl腳本)的順序定義了在將精心設計或合成設計加載到工具中時工具使用的讀取順序記憶。

首先讀取列表頂部的文件,最後讀取底部的文件。 您只需在IDE中選擇文件並將其移動到列表中的所需位置便可更改順序。
例如,在圖2-3中,使用拖放操做將文件wave_gen_pin.xdc移動到文件wave_gen_timing.xdc以前。

等效的Tcl命令是:

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

約束文件使用IP核排序
許多IP內核隨附一個或多個XDC文件。 在RTL項目中生成此類IP內核時,還會在各類設計編譯步驟中使用其XDC文件。
例如,圖2-4顯示項目中的一個IP核帶有一個XDC文件。

默認狀況下,在用戶XDC文件以前讀入IP XDC文件。 以這種方式處理它容許IP建立能夠在XDC中引用的時鐘對象。 它還容許您覆蓋由IP內核設置的物理約束,由於在IP以後評估用戶約束。 對於依賴於由用戶或其餘IP建立的時鐘對象的IP核,此順序有一個例外(例如,get_clocks -of_objects [get_ports clka])。 在這種狀況下,在用戶文件以後讀取IP XDC。

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

• EARLY: Files that must be read first
• NORMAL: Default
• LATE: Files that must be read last

IP XDC將其PROCESSING_ORDER屬性設置爲EARLY或LATE。 No IP提供屬於NORMAL約束組的XDC文件。 對於屬於同一個PROCESSING_ORDER組的用戶XDC(或Tcl)文件,它們的相對順序顯示在
Vivado IDE肯定其讀取序列。 能夠經過移動Vivado IDE約束集中的文件或使用reorder_files命令來修改組中的順序。
對於屬於同一PROCESSING_ORDER組的IP XDC文件,順序由IP內核的導入或建立順序肯定。 建立項目後,沒法更改此訂單。

最後,用戶組和IP XDC PROCESSING_ORDER組之間的相對順序是
以下:

1. User Constraints marked as EARLY
2. IP Constraints marked as EARLY (default)
3. User Constraints marked as NORMAL
4. IP Constraints marked as LATE (contain clock dependencies)
5. User Constraints marked as LATE

注意:將其PROCESSING_ORDER設置爲LATE(爲了在用戶約束後處理)的IP XDC文件命名爲<IP_NAME> _clocks.xdc。

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

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.將文件拖放到約束集中的所需位置。

對於圖2-3中所示的示例,等效的Tcl命令是:

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

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

約束文件使用IP核排序
許多IP內核隨附一個或多個XDC文件。 在RTL項目中生成此類IP內核時,還會在各類設計編譯步驟中使用其XDC文件。
例如,圖2-4顯示項目中的一個IP核帶有一個XDC文件。

更改讀取順序
要在約束集中更改XDC文件或非託管Tcl腳本的讀取順序,請執行如下操做:
1.在「源」窗口中,選擇要移動的XDC文件或Tcl腳本。
2.將文件拖放到約束集中的所需位置。
對於圖2-3中所示的示例,等效的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,
•依賴於時鐘的約束在XDC文件中分組
PROCESSING_ORDER設置爲LATE。
默認狀況下,用戶XDC文件屬於PROCESSING_ORDER NORMAL組。 它們在EARLY XDC文件以後和LATE XDC文件以前加載。 對於每一個PROCESSING_ORDER組,IP XDC文件的加載順序與IP核中列出的IP核的順序相同
來源窗口。 例如,下圖顯示了XDC文件附帶的項目IP內核之一。

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

與用戶XDC文件不一樣,您沒法直接更改IP XDC文件的讀取順序
屬於同一個PROCESSING_ORDER組。 若是您必須修改訂單,請執行
如下:

1.禁用相應的IP XDC文件(IS_ENABLED設置爲false)。
2.複製他們的內容。
3.將內容粘貼到約束集中包含的一個XDC文件中。
4.使用完整的分層網表對象路徑名更新複製的IP XDC命令
在須要的地方。 這樣作是必需的,由於寫入了IP XDC約束
這樣一種方式,它們能夠做用於IP實例。
5.查看以特殊方式處理範圍約束的get_ports查詢。 有關XDC範圍的更多信息,請參閱約束範圍,第67頁。

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

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

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

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

約束編輯流程選項
圖2-7顯示了推薦的流量選項。 不要同時使用這兩個選項。 混合這些選項可能會致使您失去約束。
推薦的流程選項包括:
•用戶界面選項
•手動編輯選項

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

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

Discarding the changes made in memory
• Saving the changes in a new file
• Overwriting the XDC files

約束建立是迭代的。 在某些狀況下,您可使用IDE編輯器,並在其餘狀況下手動編輯約束文件。

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

要在使用RTL分析時建立和編輯現有的頂級端口放置,
綜合或實施意見:
1.選擇I / O Planning預配置佈局。

打開表2-3中顯示的窗口。

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

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

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

要在特定的BEL或SITE上建立單元格放置約束:
1.在「網表」視圖中選擇單元格。
2.將單元格拖放到「設備」視圖中的目標位置。
有關佈局規劃的更多信息,請參閱「Vivado Design Suite用戶指南」中的如下連接:
設計分析和關閉技術(UG906)[參考文獻4]。

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

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

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

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

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

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

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

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

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

• Reporting and visualizing the clock networks

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

請參閱Vivado Design Suite用戶指南:設計分析和關閉技術
(UG906)[參考4]瞭解有關時鐘網絡報告的更多詳細信息。
•在源文件中搜索名稱或在內存中搜索設計中的對象
「編輯」菜單中提供了「查找和查找文件」對話框。您可使用這些對話框用於在輸入時檢索有關設計的一些信息
嚮導中的約束。
•建立和查看原理圖
您能夠在主Vivado IDE窗口中選擇設計對象並將其可視化原理圖。全部原理圖功能都可用。只有時間的最後一步
約束嚮導,異步時鐘域交叉,支持方便在「時序路徑」選項卡中選擇一個或多個條目時的原理圖交叉探測。
請參閱Vivado Design Suite用戶指南:使用Vivado IDE(UG893)[參考7]
有關使用原理圖的更多信息。
•使用Timing Constraints窗口可視化內存中的約束
嚮導的每一個頁面都包含一個選項卡,顯示相同的現有約束鍵入步驟建議的類型。這樣便於快速查看詳細信息
已在XDC文件中建立的約束。有關全部時序約束的完整視圖
在內存中,Timing Constraints窗口顯示完整的約束序列,由XDC文件組織,包括範圍信息。它還顯示無效限制。

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

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

Next, fill out any required fields, such as Frequency and Period as shown in Figure 2-14.

 

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

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

嚮導推薦的約束
主時鐘
嚮導標識兩類時鐘,如圖2-15所示。
•計算時序鬆弛所需的主時鐘
建議約束表中顯示創建/保持/恢復/刪除檢查。
•僅執行脈衝寬度檢查所需的時鐘(min_period,
max_period,max_skew,min_low_pulse_width和min_high_pulse_width)
出如今「僅限脈衝寬度檢查限制」表中。 默認狀況下,這些時鐘
未選中,由於它們僅用於報告目的而不會影響
實施工具的結果質量。
嚮導會自動識別約束的正確時鐘源點。 它
對應於時鍾信號在物理上進入設計的時鐘樹根。 在
大多數狀況下,時鐘源點是輸入時鐘端口,在某些特殊狀況下它是
X-Ref目標 - 圖2-15

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

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

生成的時鐘
時序約束嚮導建議在順序單元的輸出上建立生成時鐘,直接驅動其餘順序單元的時鐘引腳或
經過一些互連邏輯。 與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。

 

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

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

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

相關文章
相關標籤/搜索