約束文件是FPGA設(shè)計(jì)中不可或缺的源文件。那么如何管理好約束文件呢? 到底設(shè)置幾個(gè)約束文件? 通常情況下,設(shè)計(jì)中的約束包括時(shí)序約束和物理約束。前者包括時(shí)鐘周期約束、輸入/輸出延遲約束、多周期路徑約束和偽路徑約束。后者包括管腳分配、管腳電平等。除此之外,有些情況下還包括用于設(shè)計(jì)調(diào)試的約束(設(shè)置ILA屬性)或位置約束或通過(guò)Pblock執(zhí)行的面積約束。Xilinx建議將約束分類(lèi)寫(xiě)入不同的文件中,典型的場(chǎng)景是:時(shí)序約束放在一個(gè)文件里,物理約束放在一個(gè)文件里。如下圖所示。圖中wave_gen_timing.xdc中寫(xiě)的是時(shí)序約束,wave_gen_pins.xdc中寫(xiě)的是管腳分配。如果有ILA,可將ILA相關(guān)信息寫(xiě)入單獨(dú)的文件中,這樣的好處是當(dāng)后期不再需要調(diào)試時(shí),直接將該文件移除或點(diǎn)右鍵選擇DisableFile,而不用一行行注釋。
用于OOC綜合的約束 Vivado支持對(duì)IP、BlockDesign進(jìn)行OOC(Out-of-Context)綜合。同時(shí),Vivado還可對(duì)指定的用戶(hù)模塊進(jìn)行OOC綜合,這時(shí)可對(duì)該模塊指定OOC綜合時(shí)用到的約束文件。這可通過(guò)xdc文件屬性USED_IN設(shè)定,將其值設(shè)置為{synthesis,out_of_context},如下圖所示。
設(shè)置約束的生效階段
默認(rèn)情況下,添加到Vivado工程中的xdc文件既用于綜合階段也用于布局布線(xiàn)階段。但事實(shí)上,有些約束僅在布局布線(xiàn)階段有效,例如管腳分配,這時(shí)可通過(guò).xdc文件屬性設(shè)定其使用階段,如下圖所示。
即使對(duì)于時(shí)序約束,也只有如下幾條命令且與建立時(shí)間相關(guān)時(shí)綜合階段才起作用,這也是為什么我們?cè)诜治鼍C合后的設(shè)計(jì)時(shí)只關(guān)注建立時(shí)間違例而忽略保持時(shí)間違例。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1624文章
21538瀏覽量
600475 -
Xilinx
+關(guān)注
關(guān)注
71文章
2140瀏覽量
120691 -
文件
+關(guān)注
關(guān)注
1文章
555瀏覽量
24634 -
約束
+關(guān)注
關(guān)注
0文章
82瀏覽量
12698
原文標(biāo)題:如何管理約束文件?
文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論