您好,歡迎進入深圳市穎特新科技有限公司官方網(wǎng)站!
Xilinx®Vivado®集成設計環(huán)境(IDE)使用Xilinx設計約束(XDC),不支持傳統(tǒng)的用戶約束文件(UCF)格式。
Xilinx設計約束(XDC)和用戶約束文件(UCF)約束之間存在關鍵差異。 XDC約束基于標準的Synopsys設計約束(SDC)格式。 SDC已經(jīng)使用和發(fā)展了20多年,使其成為描述設計約束的最流行和最成熟的格式。
XDC約束是行業(yè)標準Synopsys設計約束(SDC版本1.9)和Xilinx專有物理約束的組合。
XDC約束具有以下屬性:
•它們不是簡單的字符串,而是遵循Tcl語義的命令。
•它們可以像Vivado Tcl解釋器一樣解釋為任何其他Tcl命令。
•與其他Tcl命令相同地讀入和解析它們。
您可以在流程的不同點以多種方式輸入XDC約束。
•將約束存儲在一個或多個XDC文件中。
要在內(nèi)存中加載XDC文件,請執(zhí)行以下操作之一:
°使用read_xdc命令。
°將其添加到您的一個項目約束集中。 XDC文件只接受set,list和expr內(nèi)置Tcl命令。有關支持的命令的完整列表,請參閱附錄A,支持的XDC和SDC命令。
•使用非托管Tcl腳本生成約束。
要執(zhí)行Tcl腳本,請執(zhí)行以下操作之一:
°運行source命令。
°使用read_xdc -unmanaged命令。
°將Tcl腳本添加到您的一個項目約束集中。
提示:與XDC文件不同,非托管Tcl腳本可以包含用于選擇設計對象和定義設計約束的任何常用Tcl命令,包括條件和循環(huán)控制結(jié)構(gòu)。
重要信息:Vivado Design Suite允許您在相同的約束集中混合使用XDC文件和Tcl腳本。僅當修改的約束最初來自XDC文件而不是來自非托管Tcl腳本時,它們才會保存回原始位置。由Tcl腳本生成的約束不由Vivado Design Suite管理,無法進行交互式修改。欲獲得更多信息,請參閱第2章,約束方法
重要信息:對于XDC約束,命令source和read_xdc之間的行為存在差異。 使用source命令導入的約束不會保存在檢查點中與導入的順序相同。 首先保存使用read_xdc導入的約束,然后保存使用source導入的約束。 以與應用順序相同的順序保存所有約束設計,使用read_xdc -unmanaged而不是source。
要在將設計加載到內(nèi)存后驗證特定約束的語法或影響,請使用Tcl控制臺和Vivado Design Suite報告功能。 這對于分析和調(diào)試時序約束和物理約束特別有用。
約束方法論
關于約束方法論
設計約束定義了編譯流程必須滿足的要求,以使設計在板上起作用。并非編譯流程中的所有步驟都使用所有約束。例如,物理約束僅在實現(xiàn)步驟期間使用(即,由布局器和路由器)。
由于Xilinx®Vivado®集成設計環(huán)境(IDE)綜合和實現(xiàn)算法是時序驅(qū)動的,因此必須創(chuàng)建適當?shù)臅r序約束。
過度約束或設計不足會使時序收斂變得困難。您必須使用符合您的應用程序要求的合理約束。
組織你的約束
約束方法論
關于約束方法論
設計約束定義了編譯流程必須滿足的要求,以使設計在板上起作用。并非編譯流程中的所有步驟都使用所有約束。例如,物理約束僅在實現(xiàn)步驟期間使用(即,由布局器和路由器)。
由于Xilinx®Vivado®集成設計環(huán)境(IDE)綜合和實現(xiàn)算法是時序驅(qū)動的,因此必須創(chuàng)建適當?shù)臅r序約束。
過度約束或設計不足會使時序收斂變得困難。您必須使用符合您的應用程序要求的合理約束。
組織你的約束
Vivado IDE允許您使用一個或多個約束文件。雖然對整個編譯流使用單個約束文件似乎更方便,但隨著設計變得更加復雜,維護所有約束可能是一個挑戰(zhàn)。對于使用由不同團隊開發(fā)的多個IP核或大塊的設計,通常就是這種情況。
導入定時和物理約束后,獨立于源文件的數(shù)量或設計是否處于項目/非項目模式,可以使用write_xdc命令將所有約束導出為單個文件。寫入約束
指定的輸出文件的順序與它們被讀入項目或設計的順序相同。
命令行選項write_xdc -type可用于選擇要導出的約束(時間,物理或豁免)子集。
Xilinx建議您將時序約束和物理約束分開,將它們保存為兩個不同的文件。 您還可以將特定于某個模塊的約束保存在單獨的文件中。
項目流程
您可以在創(chuàng)建新項目期間或稍后從Vivado IDE菜單中將Xilinx設計約束(XDC)文件添加到約束集中。
圖2-1顯示了項目中的兩個約束集,即單XDC或多XDC。 第一個約束集包括兩個XDC文件。 第二個約束集僅使用一個包含所有約束的XDC文件。
如果項目包含使用其自身約束的IP,則相應的約束文件不會出現(xiàn)在約束集中。 相反,它與IP源文件一起列出。
您還可以將Tcl腳本添加到約束集中作為非托管約束或非托管Tcl腳本。 Vivado Design Suite不會將修改后的約束寫回非托管Tcl腳本。 Tcl腳本和XDC文件的加載順序與Vivado IDE中顯示的順序相同(如果它們屬于同一個PROCESSING_ORDER組)或命令report_compile_order -constraints報告的順序。
如果需要,可以在多個約束集中使用XDC文件或Tcl腳本。 有關如何為項目創(chuàng)建和添加約束文件和約束集的更多信息,請參閱“Vivado Design Suite用戶指南”中的使用約束:系統(tǒng)級設計
非項目流程
在非項目模式下,必須在執(zhí)行編譯命令之前單獨讀取每個文件。
下面的示例腳本顯示了如何使用一個或多個XDC文件進行綜合和實現(xiàn)。
語境外約束
在HD或PR流中,通常以上下文(OOC)方法合成設計的各部分。 當使用這樣的流時,可以僅為OOC合成指定一些約束。 例如,在塊的輸入邊界處傳播的時鐘必須
當塊合成OOC時定義。 這些時鐘在OOC XDC文件中定義。
合成和實現(xiàn)約束文件
默認情況下,添加到約束集的所有XDC文件和Tcl腳本都用于合成和實現(xiàn)。 設置USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION
XDC文件或Tcl腳本上的屬性可以更改此行為。 此屬性可以采用TRUE或FALSE的值。
DONT_TOUCH屬性不遵循USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION的屬性。 如果在綜合XDC中使用DONT_TOUCH屬性,則無論USED_IN_IMPLEMENTATION的值如何,都會將其傳播到實現(xiàn)。
有關DONT_TOUCH屬性的更多信息,請參閱RTL屬性,第58頁
例如,要僅使用約束文件進行實現(xiàn):
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約束是按順序應用的,并且基于明確的優(yōu)先級規(guī)則進行優(yōu)先級排序,因此必須仔細檢查約束的順序。 有關更多信息,請參見第7章,XDC優(yōu)先級。
注意:如果多個物理約束發(fā)生沖突,則最新約束將獲勝。 例如,如果I / O端口通過多個XDC文件分配了不同的位置(LOC),則為最新位置
分配給端口優(yōu)先。
Vivado IDE可全面了解您的設計。 要逐步驗證您的約束:
1. Run the appropriate report commands.
2. Review the messages in the Tcl Console or the Messages window.
無論是為設計使用一個還是多個XDC文件,都按以下順序組織約束。
注:應在定義生成的時鐘之前定義更改時鐘關系或時鐘傳播的案例分析約束。這包括在時鐘上定義的案例分析
緩沖區(qū)導致緩沖區(qū)的輸出時鐘受到案例分析的影響。
從時鐘定義開始。必須先創(chuàng)建時鐘,然后才能將它們用于任何后續(xù)約束。聲明之前對時鐘的任何引用都會導致錯誤,并忽略相應的約束。這在個人中是正確的
約束文件,以及設計中的所有XDC文件(或Tcl腳本)。
約束文件的順序很重要。您必須確保每個文件中的約束不依賴于另一個文件的約束。如果是這種情況,則必須最后讀取包含約束依賴項的文件。如果兩個約束文件具有相互依賴性,
您必須手動將它們合并到一個包含正確序列的文件中,或者將文件分成幾個單獨的文件并正確排序。
約束序列編輯
Vivado IDE約束管理器將任何已編輯的約束保存回XDC文件中的原始位置,但不會保存在Tcl腳本中。 任何新約束都保存在XDC文件的末尾
標記為目標。 在許多情況下,當您的約束集包含多個XDC文件時,其目標約束文件不是列表中的最后一個文件,并且在打開或重新加載您的設計時不會最后加載。 因此,保存在磁盤上的約束序列可能與之前在內(nèi)存中的約束序列不同。
重要信息:您必須驗證存儲在約束文件中的最終序列是否仍按預期工作。 如果必須修改序列,則必須通過直接編輯約束文件來修改它。
這對時序約束尤為重要。
約束文件順序
在沒有任何IP的項目流中,所有約束都位于約束集中。 默認情況下,Vivado IDE中顯示的XDC文件(或Tcl腳本)的順序定義了在將精心設計或合成設計加載到工具中時工具使用的讀取順序記憶。
首先讀取列表頂部的文件,最后讀取底部的文件。 您只需在IDE中選擇文件并將其移動到列表中的所需位置即可更改順序。
例如,在圖2-3中,使用拖放操作將文件wave_gen_pin.xdc移動到文件wave_gen_timing.xdc之前。
等效的Tcl命令是:
在非項目模式下,read_xdc調(diào)用的順序決定了約束文件的計算順序。
約束文件使用IP核排序
許多IP內(nèi)核隨附一個或多個XDC文件。 在RTL項目中生成此類IP內(nèi)核時,還會在各種設計編譯步驟中使用其XDC文件。
例如,圖2-4顯示項目中的一個IP核帶有一個XDC文件。
默認情況下,在用戶XDC文件之前讀入IP XDC文件。 以這種方式處理它允許IP創(chuàng)建可以在XDC中引用的時鐘對象。 它還允許您覆蓋由IP內(nèi)核設置的物理約束,因為在IP之后評估用戶約束。 對于依賴于由用戶或其他IP創(chuàng)建的時鐘對象的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內(nèi)核的導入或創(chuàng)建順序確定。 創(chuàng)建項目后,無法更改此訂單。
最后,用戶組和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命令報告由工具根據(jù)上述屬性確定的XDC文件讀取順序,包括IS_ENABLED,USED_IN_SYNTHESIS和USED_IN_IMPLEMENTATION。
Changing Read Order
要在約束集中更改XDC文件或非托管Tcl腳本的讀取順序,請執(zhí)行以下操作:
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調(diào)用的順序決定了約束文件的計算順序。
約束文件使用IP核排序
許多IP內(nèi)核隨附一個或多個XDC文件。 在RTL項目中生成此類IP內(nèi)核時,還會在各種設計編譯步驟中使用其XDC文件。
例如,圖2-4顯示項目中的一個IP核帶有一個XDC文件。
更改讀取順序
要在約束集中更改XDC文件或非托管Tcl腳本的讀取順序,請執(zhí)行以下操作:
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內(nèi)核,則會處理兩組約束
自動如下
•不依賴于時鐘的約束被分組到XDC文件中,其中PROCESSING_ORDER設置為EARLY,
•依賴于時鐘的約束在XDC文件中分組
PROCESSING_ORDER設置為LATE。
默認情況下,用戶XDC文件屬于PROCESSING_ORDER NORMAL組。 它們在EARLY XDC文件之后和LATE XDC文件之前加載。 對于每個PROCESSING_ORDER組,IP XDC文件的加載順序與IP核中列出的IP核的順序相同
來源窗口。 例如,下圖顯示了XDC文件附帶的項目IP內(nèi)核之一。
打開設計時,日志文件顯示最后加載了IP XDC文件:
與用戶XDC文件不同,您無法直接更改IP XDC文件的讀取順序
屬于同一個PROCESSING_ORDER組。 如果您必須修改訂單,請執(zhí)行
以下:
1.禁用相應的IP XDC文件(IS_ENABLED設置為false)。
2.復制他們的內(nèi)容。
3.將內(nèi)容粘貼到約束集中包含的一個XDC文件中。
4.使用完整的分層網(wǎng)表對象路徑名更新復制的IP XDC命令
在需要的地方。 這樣做是必需的,因為寫入了IP XDC約束
這樣一種方式,它們可以作用于IP實例。
5.查看以特殊方式處理范圍約束的get_ports查詢。 有關XDC范圍的更多信息,請參閱約束范圍,第67頁。
輸入約束
Vivado IDE提供了幾種輸入約束的方法。 除非您在文本編輯器中直接編輯XDC文件,否則必須打開設計數(shù)據(jù)庫(詳細說明,綜合或?qū)崿F(xiàn))才能訪問Vivado IDE中的約束窗口。
在內(nèi)存中保存約束
您必須在內(nèi)存中設計一個設計才能在編輯期間驗證您的約束。
使用Vivado IDE用戶界面編輯約束時,將發(fā)出等效的XDC命令
在Tcl控制臺中,以便將其應用于內(nèi)存中。必須先在內(nèi)存中應用已編輯的時序約束,然后才能將其保存到XDC文件中。
在運行綜合或?qū)崿F(xiàn)之前,必須將內(nèi)存中的約束保存回屬于項目的XDC文件。
Vivado IDE會在必要時提出您保存約束。
執(zhí)行以下操作之一以手動保存約束
注意:保存內(nèi)存中的約束時,會打開一個對話框,提醒您這可能導致合成和實現(xiàn)過時。 選擇“記住首選項”檢查
此對話框上的框以禁用此警告的未來實例。
運行這些命令時,Vivado會執(zhí)行以下操作:
•將所有新約束保存到約束集中標記為目標的XDC文件
與您的設計相關聯(lián)。
•將所有已編輯的約束保存回源自它們的XDC文件。
注意:約束管理系統(tǒng)保留原始XDC文件格式
可能。
約束編輯流程選項
圖2-7顯示了推薦的流量選項。 不要同時使用這兩個選項。 混合這些選項可能會導致您失去約束。
推薦的流程選項包括:
•用戶界面選項
•手動編輯選項
用戶界面選項
由于Vivado IDE管理您的約束,因此您不能同時編輯XDC文件。 當Vivado IDE保存內(nèi)存內(nèi)容時,會發(fā)生以下情況:
•修改的約束替換原始文件中的原始約束。
•新約束將附加到標記為目標的文件中。
•將覆蓋XDC文件中的所有手動編輯。
手編輯選項
使用“手動編輯”選項時,您負責編輯和維護XDC文件。 雖然您可能會使用Tcl控制臺來驗證某些約束的語法,
關閉或重新加載設計時,必須放棄在內(nèi)存中所做的更改。
如果在保存約束時發(fā)生沖突,系統(tǒng)會提示您選擇其中一個
以下:
Discarding the changes made in memory
• Saving the changes in a new file
• Overwriting the XDC files
約束創(chuàng)建是迭代的。 在某些情況下,您可以使用IDE編輯器,并在其他情況下手動編輯約束文件。
在圖2-7中描述的每次迭代中,不要同時使用這兩個選項。
如果在兩個選項之間切換,則必須先保存約束或重新加載設計,以確保內(nèi)存中的約束與XDC文件正確同步。
要在使用RTL分析時創(chuàng)建和編輯現(xiàn)有的頂級端口放置,
綜合或?qū)嵤┮庖姡?br />1.選擇I / O Planning預配置布局。
打開表2-3中顯示的窗口。
有關引腳分配的更多信息,請參閱“Vivado Design Suite用戶指南”中的此鏈接:
I / O和時鐘規(guī)劃(UG899)[參考3]。
布局規(guī)劃
在使用RTL分析,綜合或?qū)嵤┮晥D時創(chuàng)建和編輯Pblock:
1.選擇布局規(guī)劃預配置布局。
2. Open the windows shown in Table 2-4.
要在特定的BEL或SITE上創(chuàng)建單元格放置約束:
1.在“網(wǎng)表”視圖中選擇單元格。
2.將單元格拖放到“設備”視圖中的目標位置。
有關布局規(guī)劃的更多信息,請參閱“Vivado Design Suite用戶指南”中的以下鏈接:
設計分析和關閉技術(shù)(UG906)[參考文獻4]。
時序約束向?qū)?br />時序約束向?qū)ёR別合成或?qū)崿F(xiàn)的設計上缺少的時序約束。 它分析網(wǎng)表,時鐘網(wǎng)絡連接和現(xiàn)有的時序約束,以便根據(jù)UltraFast設計提供建議
Vivado設計套件(UG949)[參考文獻5]的方法指南。 向?qū)У囊韵?1頁包含三類約束,后面是摘要。
包括以下步驟:
在每個步驟中,您可以接受建議的約束或通過選中或取消選中每個建議的約束來修改列表。 但是,在向?qū)У脑缙谌∠x中建議的約束可能會阻止其他的識別
后續(xù)步驟中缺少約束。 例如,如果您決定跳過創(chuàng)建時鐘,向?qū)⒉粫R別并推薦任何引用此時鐘的約束
或其自動衍生的時鐘。
向?qū)У淖詈笠豁撎峁┝藢⒁獎?chuàng)建的約束的摘要。 您可以單擊每個單獨的超鏈接以查看約束詳細信息,或在退出向?qū)Ш笤凇皶r序約束”窗口中顯示新約束。
單擊“完成”后,您還可以選擇生成以下建議的報告
驗證設計是否完全受約束:
•創(chuàng)建時序摘要報告:除了check_timing報告之外,還會使用新約束報告時序松弛。 如果期限可能會顯示時間違規(guī)
或者您輸入的I / O延遲約束太難了。
•創(chuàng)建檢查時間報告:此報告通過運行check_timing命令來識別缺失或不適當?shù)募s束。
•僅使用時序檢查創(chuàng)建DRC報告:此報告運行時序DRC。
重要信息:除非單擊“取消”,否則新添加的約束將自動保存到目標XDC文件中。 退出后,您可以在Timing Constraints窗口中編輯或刪除新約束
如果定時約束向?qū)б肓瞬话踩臅r序分析,則不建議使用約束。此外,該向?qū)Р粫迯鸵汛嬖诘牟贿m當約束
在內(nèi)存中加載設計時。然而,在項目模式下使用Vivado Design Suite時,創(chuàng)建所有丟失的時鐘后,某些無效約束可能會生效;
有關更多詳細信息,請參閱下面的約束處理順序和無效約束。此外,在使用向?qū)е,如果check_timing或report_drc仍標記一些約束問題,則通常是由于源XDC文件中已存在的約束問題。直接解決這些問題,而不是使用向?qū)斫鉀Q它們。
約束處理順序和無效約束
時序約束向?qū)Ыㄗh缺少定義時鐘或引用時鐘的約束,這些約束將在項目模式下保存在目標XDC文件的末尾,或者在其他模式的所有約束結(jié)束時保存。出于這個原因,你必須明白
以下規(guī)則:
•項目模式:在啟動“計時約束”向?qū)е埃仨氈付繕薠DC文件,其處理順序設置為“正常”。目標XDC文件必須屬于在內(nèi)存中打開且當前選定的設計的約束集。目標XDC文件在其他XDC文件中的位置很重要,因為它指定了
建議的約束將在何時應用并保存。此外,向?qū)䥽L試重新應用屬于目標XDC文件之后解析的XDC文件的任何無效約束,以便提供最完整和準確的建議。
例如,考慮來自synth_1的網(wǎng)表在內(nèi)存中使用約束集constr_1運行。此約束集包含序列中的三個XDC文件
a.xdc,b.xdc和c.xdc。如果選擇b.xdc作為目標XDC文件,并且每個文件包含無效約束,則“時序約束”向?qū)媒ㄗh的時鐘,然后從c.xdc重新應用無效約束,然后繼續(xù)下一步并發(fā)現(xiàn)其他缺少的約束。
非項目或設計檢查點(DCP)模式:您無法在這些模式下指定目標XDC文件,因此“時序約束”向?qū)诩s束序列的最后位置推薦并應用新約束。 這相當于在Tcl控制臺中輸入新約束或通過Timing Constraints窗口輸入新約束。 在這些模式下,向?qū)Р粫䥽L試重新應用無效約束。 如果需要在整個約束序列中更早地應用新約束以解決約束依賴性或優(yōu)先級問題,則必須編輯約束
手動順序。
您可以使用Timing Constraints窗口查看更新的時序約束序列。 查看新約束后,可以將序列保存到DCP中。
向?qū)Т蜷_時可用的報告功能
當Timing Constraints向?qū)Т蜷_時,它會阻止Vivado IDE中的大多數(shù)操作,包括使用Tcl控制臺或運行時序分析,以避免數(shù)據(jù)庫差異。 向?qū)Т翱谑冀K位于其他Vivado IDE窗口的前面。 如果你
需要訪問Vivado IDE菜單或窗口,您必須將向?qū)Т翱谝频揭贿叀?br />Timing Constraints向?qū)Т蜷_時,只有以下功能可用:
• Reporting and visualizing the clock networks
向?qū)У拇蠖鄶?shù)頁面都有按鈕來生成和訪問時鐘網(wǎng)絡報告,以便可視化時鐘拓撲,它們的源點以及某些時鐘的共享段。
請參閱Vivado Design Suite用戶指南:設計分析和關閉技術(shù)
(UG906)[參考4]了解有關時鐘網(wǎng)絡報告的更多詳細信息。
•在源文件中搜索名稱或在內(nèi)存中搜索設計中的對象
“編輯”菜單中提供了“查找和查找文件”對話框。您可以使用這些對話框用于在輸入時檢索有關設計的一些信息
向?qū)е械募s束。
•創(chuàng)建和查看原理圖
您可以在主Vivado IDE窗口中選擇設計對象并將其可視化原理圖。所有原理圖功能均可用。只有時間的最后一步
約束向?qū),異步時鐘域交叉,支持方便在“時序路徑”選項卡中選擇一個或多個條目時的原理圖交叉探測。
請參閱Vivado Design Suite用戶指南:使用Vivado IDE(UG893)[參考7]
有關使用原理圖的更多信息。
•使用Timing Constraints窗口可視化內(nèi)存中的約束
向?qū)У拿總頁面都包含一個選項卡,顯示相同的現(xiàn)有約束鍵入步驟建議的類型。這樣便于快速查看詳細信息
已在XDC文件中創(chuàng)建的約束。有關所有時序約束的完整視圖
在內(nèi)存中,Timing Constraints窗口顯示完整的約束序列,由XDC文件組織,包括范圍信息。它還顯示無效限制。
約束在向?qū)е芯庉?br />向?qū)У拿總步驟都可以推薦幾個約束。 根據(jù)約束,
您必須采取以下操作之一:
•使用以下方法之一取消選中您不想創(chuàng)建的約束
方法:
°通過取消選中每一行,從列表中刪除每個約束,一次一個。
°通過取消選中表格的左上角復選框來刪除所有約束。
通過單擊顯示未定義的單元格輸入缺少的值(例如,圖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.
限制。
•如果不需要采取任何措施,只需查看約束。
檢查并完成所有已檢查的建議約束后,單擊
單擊下一步繼續(xù)下一頁。 您錯過的任何條目都會阻止向?qū)нM入下一步。
您可以使用“后退”按鈕重新訪問頁面。 如果在上一頁上編輯任何約束并單擊“下一步”,則向?qū)⒅匦路治鲈O計并推薦新約束
因此。 在大多數(shù)情況下,將恢復先前建議的不受更改影響的約束。 如果您只查看上一頁而不修改任何頁面
建議約束,向?qū)Р粫匦逻\行任何分析,這通?梢怨(jié)省運行時間。
重要信息:您無法使用“時序約束”向?qū)Ь庉嫭F(xiàn)有時序約束。 代替,
您必須使用Timing Constraints窗口。
向?qū)扑]的約束
主時鐘
向?qū)俗R兩類時鐘,如圖2-15所示。
•計算時序松弛所需的主時鐘
建議約束表中顯示建立/保持/恢復/刪除檢查。
•僅執(zhí)行脈沖寬度檢查所需的時鐘(min_period,
max_period,max_skew,min_low_pulse_width和min_high_pulse_width)
出現(xiàn)在“僅限脈沖寬度檢查限制”表中。 默認情況下,這些時鐘
未選中,因為它們僅用于報告目的而不會影響
實施工具的結(jié)果質(zhì)量。
向?qū)詣幼R別約束的正確時鐘源點。 它
對應于時鐘信號在物理上進入設計的時鐘樹根。 在
大多數(shù)情況下,時鐘源點是輸入時鐘端口,在某些特殊情況下它是
X-Ref目標 - 圖2-15
•計算時序松弛所需的主時鐘
建議約束表中顯示建立/保持/恢復/刪除檢查。
•僅執(zhí)行脈沖寬度檢查所需的時鐘(min_period,max_period,max_skew,min_low_pulse_width和min_high_pulse_width)
出現(xiàn)在“僅限脈沖寬度檢查限制”表中。 默認情況下,這些時鐘未經(jīng)檢查,因為它們僅用于報告目的,不會影響實現(xiàn)工具的結(jié)果質(zhì)量。
向?qū)詣幼R別約束的正確時鐘源點。 它對應于時鐘樹根,其中時鐘信號實際進入設計。 在大多數(shù)情況下,時鐘源點是輸入時鐘端口,在某些特殊情況下,它是沒有定時弧的基元的輸出。 例如,在7系列設備中,向?qū)R別GT_CHANNEL基元輸出上缺少的主時鐘。 對于UltraScale™器件,Vivado設計套件能夠根據(jù)輸入時鐘特性和GT_CHANNEL自動導出GT_CHANNEL輸出時鐘
配置和連接。 因此,向?qū)ㄗh位于設計邊界上GT_CHANNEL單元上游的主時鐘。
生成的時鐘
時序約束向?qū)Ыㄗh在順序單元的輸出上創(chuàng)建生成時鐘,直接驅(qū)動其他順序單元的時鐘引腳或
通過一些互連邏輯。 與PLL或MMCM不同,用戶邏輯不能乘以主時鐘的頻率,因此向?qū)H提供指定除法系數(shù)的選項,如圖2-16所示。
當多個主時鐘到達生成的時鐘源點時,向?qū)⑹褂梦ㄒ坏拿Q和對個人的明確引用創(chuàng)建所有相應的生成時鐘
主時鐘。 圖2-16說明了兩個時鐘(clk3和clk4)到達順序單元FDIV_Reg的情況。 因此,建議使用兩個生成的時鐘約束(FDIV和FDIV_1)。
注意:某些時鐘拓撲(例如時鐘路徑上的級聯(lián)寄存器)可能需要多次運行“時序約束”向?qū)Р拍馨l(fā)現(xiàn)所有丟失的生成時鐘。
轉(zhuǎn)發(fā)時鐘
Timing Constraints向?qū)Ыㄗh在輸出端口上生成時鐘約束,該輸出端口由具有常量輸入的雙倍數(shù)據(jù)速率寄存器驅(qū)動。 基于輸入恒定連接性,將生成的時鐘相位調(diào)整為正(0度相移)或反相(180度相移)。 約束中使用的主時鐘是
到達雙倍數(shù)據(jù)速率寄存器的時鐘引腳的時鐘。 請參見圖2-17中“推薦約束”表的“源時鐘”列。
對于7系列器件系列,向?qū)ёR別的拓撲結(jié)構(gòu)如下所示
圖2-18。 主時鐘或輸出緩沖器的性質(zhì)沒有限制。
對于UltraScale器件系列,ODDR和ODDRE1原語會自動重定向到OSERDESE3,其屬性為ODDR_MODE = TRUE。 向?qū)ёR別圖2-19中所示的拓撲,其中OSERDESE3 / D [0]連接到1和
OSERDESE3 / D [4]連接到0(無相移)
外部反饋延遲
Timing Constraints(時序約束)向?qū)Х治鲈O計中存在的MMCM和PLL單元的反饋環(huán)路連接。 建議使用外部延遲約束(最小和最大)
當CLKFBIN和CLKFBOUT引腳通過IO緩沖器和MMCM或PLL屬性COMPENSATION = EXTERNAL連接到設計端口時。 圖2-20說明
建議的外部延遲約束。
圖2-21顯示了具有外部反饋路徑電路的典型MMCM。
在當前的Vivado Design Suite版本中,當反饋路徑中有連續(xù)單元時,Timing Constraints向?qū)Р荒芙ㄗh外部延遲約束,
例如ODDR,用于生成轉(zhuǎn)發(fā)時鐘。 在這種情況下,您必須在退出向?qū)Ш笫謩踊蚴褂肨iming Constraints窗口創(chuàng)建外部延遲約束。
輸入延遲
Timing Constraints(時序約束)向?qū)Х治鰜碜暂斎攵丝诘乃新窂,以識別設計中的目標時鐘及其活動邊緣。 根據(jù)此信息,向?qū)ㄗh基于的基本系統(tǒng)同步輸入延遲約束
Vivado IDE中提供的XDC模板(有關模板,請參閱XDC模板,第55頁)。 與所選模板關聯(lián)的波形顯示在窗口底部
在“推薦約束”表中選擇約束條目時,在“波形”選項卡中。
對于每個約束,您可以編輯三個特征,以指定與電路板上實際接口時序?qū)南鄳ㄐ危?br />•同步描述時鐘數(shù)據(jù)關系的性質(zhì)。
°系統(tǒng)(用于系統(tǒng)同步接口):當數(shù)據(jù)通過1個周期或相隔1/2周期的不同時鐘邊沿啟動和捕獲時使用此設置。
°Source(用于源同步接口):當數(shù)據(jù)以相同的時鐘邊沿啟動和捕獲時使用此設置。
•對齊描述了與活動時鐘相關的數(shù)據(jù)轉(zhuǎn)換對齊。
°僅適用于系統(tǒng)同步接口:
- Edge:當時鐘和數(shù)據(jù)同時轉(zhuǎn)換時使用此設置。