很對(duì)人在使用Vivado時(shí)喜歡使用多個(gè)約束文件對(duì)整個(gè)工程進(jìn)行約束,同時(shí)Vivado允許設(shè)計(jì)者使用一個(gè)或多個(gè)約束文件。雖然使用一個(gè)約束文件對(duì)于一個(gè)完整的編譯流程來說看似更方便,但是在一些情況下,這會(huì)使得問題更加復(fù)雜,比如一個(gè)設(shè)計(jì)使用了不同的IP核或者由不同團(tuán)隊(duì)開發(fā)的模塊。不管設(shè)計(jì)者在設(shè)計(jì)中,使用了一個(gè)還是多個(gè)XDC文件,Xilinx推薦設(shè)計(jì)者使用下面的順序來組織約束。XDC文件的約束順序如下:
## Timing Assertions Section# Primary clocks# Virtual clocks# Generated clocks
# Clock Groups# Input and output delay constraints## Timing Exceptions Section(sorted by precedence)# 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 seprarte XDC file
注:
(1)Xilinx推薦將時(shí)序約束和物理約束分別保存在兩個(gè)不同的文件中。設(shè)計(jì)者也可以在一個(gè)單獨(dú)的文件中對(duì)某個(gè)模塊指定約束(每個(gè)模塊對(duì)應(yīng)一個(gè)約束)。
(2)如果在工程中,包含了一個(gè)IP,這個(gè)IP有自己的約束,則在約束集中,并不出現(xiàn)相應(yīng)的約束文件,它將和IP源文件一起出現(xiàn)(即IP有自己的約束文件,常見的就是MMCM和PLL)。
(3)如果在工程中,包含了多個(gè)約束文件。一般來說,Vivado工具首先讀取列表最上面的約束文件,最后讀取最下面的約束文件。設(shè)計(jì)者可以在集成開發(fā)環(huán)境中,將約束文件移動(dòng)到所期望的位置,用來修改約束文件在整個(gè)設(shè)計(jì)中的處理順序。等效的Tcl命令格式為
Reorder_files - fileset constrs_l - before[get_files XDC文件名][get_files XDC文件名]
在非工程模式下,read_xdc的調(diào)用順序決定了xdc文件的評(píng)估順序。
(4)如果存在IP約束文件,則先讀取1P約束文件,然后再讀取用戶約束文件。設(shè)計(jì)者可以在源文件屬性窗口修改讀取IP約束文件的順序。等效的Tcl命令格式為
set_property PROCESSING_ORDER EARLY [get_files XDC文件名]
常用的 XDC 約束命令
相關(guān)的命令作用會(huì)在后續(xù)文章繼續(xù)解釋。
責(zé)任編輯:haq
-
IP
+關(guān)注
關(guān)注
5文章
1701瀏覽量
149504 -
約束
+關(guān)注
關(guān)注
0文章
82瀏覽量
12728 -
Vivado
+關(guān)注
關(guān)注
19文章
812瀏覽量
66472
原文標(biāo)題:【Vivado那些事兒】約束的順序
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論