您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!
Xilinx®Vivado®集成設(shè)計(jì)環(huán)境(IDE)通過設(shè)置對(duì)象屬性的值,可以對(duì)設(shè)計(jì)對(duì)象進(jìn)行物理約束。 例子包括:
•I / O約束,例如位置和I / O標(biāo)準(zhǔn)
•放置約束,例如單元格位置
•路由約束,例如固定路由
•配置約束,例如配置模式
與時(shí)序約束類似,物理約束必須保存在Xilinx設(shè)計(jì)約束(XDC)文件或Tcl腳本中,以便在打開設(shè)計(jì)時(shí)可以使用網(wǎng)表加載它們。 將設(shè)計(jì)加載到內(nèi)存后,您可以使用Tcl控制臺(tái)或使用Vivado Design Suite IDE編輯工具以交互方式輸入新約束。
大多數(shù)物理約束是通過對(duì)象上的屬性定義的:
set_property <property> <value> <object list>
例外是使用Pblock命令的區(qū)域約束。
嚴(yán)重警告
針對(duì)XDC文件中的無效約束發(fā)出嚴(yán)重警告,包括應(yīng)用于設(shè)計(jì)中無法找到的對(duì)象的約束警告。
有關(guān)屬性定義和用法,請(qǐng)參閱“Vivado設(shè)計(jì)套件屬性參考指南”
(UG912)[參考文獻(xiàn)11]。
網(wǎng)表約束
網(wǎng)表限制是在網(wǎng)表對(duì)象(如端口,引腳,網(wǎng)絡(luò)或單元)上設(shè)置的,要求編譯工具以特殊方式處理它們。
重要信息:確保您了解使用這些約束的影響。 它們可能會(huì)導(dǎo)致設(shè)計(jì)面積增加,設(shè)計(jì)性能降低,或兩者兼而有之。
網(wǎng)表限制包括:
•CLOCK_DEDICATED_ROUTE
•MARK_DEBUG
•DONT_TOUCH
•LOCK_PINS
CLOCK_DEDICATED_ROUTE
在網(wǎng)絡(luò)上設(shè)置CLOCK_DEDICATED_ROUTE以指示如何路由時(shí)鐘信號(hào)。
CLOCK_DEDICATED_ROUTE屬性用于時(shí)鐘網(wǎng)絡(luò)以覆蓋默認(rèn)路由。這是一種先進(jìn)的控制,需要極其謹(jǐn)慎,因?yàn)樗赡軙?huì)影響時(shí)間可預(yù)測性和可路由性。例如,當(dāng)專用時(shí)鐘路由不可用時(shí),CLOCK_DEDICATED_ROUTE可以設(shè)置為FALSE。值FALSE允許Vivado工具使用通用路由將時(shí)鐘從輸入端口路由到全局時(shí)鐘資源,例如BUFG或MMCM資源。這僅應(yīng)用作器件封裝引腳分配被鎖定時(shí)的最后手段,并且時(shí)鐘輸入不能分配給適當(dāng)?shù)臅r(shí)鐘輸入引腳(CCIO)。除非用于,否則路由將是次優(yōu)和不可預(yù)測的
與FIXED_ROUTE結(jié)合。
有關(guān)此屬性的更多信息,請(qǐng)參閱Vivado設(shè)計(jì)套件(UG949)[參考文獻(xiàn)5]的UltraFast設(shè)計(jì)方法指南中的時(shí)鐘約束。
MARK_DEBUG
在RTL中的網(wǎng)絡(luò)上設(shè)置MARK_DEBUG以保留它并使其在網(wǎng)表中可見。 這允許它在編譯流程中的任何位置連接到邏輯調(diào)試工具。
有關(guān)更多信息,請(qǐng)參閱“Vivado Design Suite用戶指南:編程和調(diào)試”(UG908)[參考12]中的此鏈接。
DONT_TOUCH
在葉子單元格,分層單元格或網(wǎng)絡(luò)對(duì)象上設(shè)置DONT_TOUCH以在網(wǎng)表優(yōu)化期間保留它。 DONT_TOUCH最常用于:
•防止網(wǎng)絡(luò)被優(yōu)化掉。
帶有DONT_TOUCH的網(wǎng)絡(luò)無法通過綜合或?qū)嵤﹣砦铡?這有助于邏輯探測或調(diào)試設(shè)計(jì)中的意外優(yōu)化。 要保留具有多個(gè)分層段的網(wǎng)絡(luò),請(qǐng)將DONT_TOUCH放在凈PARENT(get_property PARENT $ net)上,該網(wǎng)絡(luò)是最接近其驅(qū)動(dòng)程序的網(wǎng)段。
•防止合并手動(dòng)復(fù)制的邏輯。
有時(shí)最好手動(dòng)復(fù)制邏輯,例如跨越大范圍的高扇出驅(qū)動(dòng)程序。 將DONT_TOUCH添加到手動(dòng)復(fù)制的驅(qū)動(dòng)程序(以及原始驅(qū)動(dòng)程序)可防止合成和實(shí)現(xiàn)優(yōu)化這些單元格。
注意:使用reset_property重置DONT_TOUCH屬性。 將DONT_TOUCH屬性設(shè)置為0不會(huì)重置該屬性。
避免在分層單元上使用DONT_TOUCH來實(shí)現(xiàn),因?yàn)閂ivado IDE實(shí)現(xiàn)不會(huì)使邏輯層次結(jié)構(gòu)變平。 在綜合中使用KEEP_HIERARCHY來維護(hù)應(yīng)用XDC約束的邏輯層次結(jié)構(gòu)。
LOCK_PINS
LOCK_PINS是一個(gè)單元屬性,用于指定邏輯LUT輸入(I0,I1,I2,...)和LUT物理輸入引腳(A6,A5,A4,...)之間的映射。
常見的用途是強(qiáng)制將時(shí)序關(guān)鍵的LUT輸入映射到最快的A6和A5
物理LUT輸入。
Vivado集成設(shè)計(jì)環(huán)境(IDE)支持許多與集成軟件環(huán)境(ISE®)設(shè)計(jì)套件相同的I / O約束。 以下I / O屬性列表并非詳盡無遺
有關(guān)I / O屬性的完整列表,有關(guān)I / O端口和I / O單元屬性的更多信息,以及具有正確語法的編碼示例,請(qǐng)參閱“Vivado設(shè)計(jì)套件屬性參考指南”(UG912)[參考11]。
注意:除非另有說明,否則所有屬性都應(yīng)用于端口對(duì)象。
°有關(guān)這些屬性背后的應(yīng)用和方法的更多信息,
請(qǐng)參閱器件SelectIO文檔,例如7系列FPGA SelectIO資源
用戶指南(UG471)[參考13]。
重要提示:ISE Design Suite和Vivado Design Suite之間存在顯著差異
在處理IOB時(shí)。 Vivado工具允許在兩個(gè)端口和連接到端口的寄存器單元上設(shè)置IOB。 如果在端口及其寄存器上設(shè)置了沖突值,則以寄存器上的值為準(zhǔn)。 Vivado工具僅使用值TRUE和FALSE。 值FORCE被解釋為TRUE,并且忽略值A(chǔ)UTO。 與ISE不同,如果無法遵守IOB設(shè)置,Vivado工具會(huì)生成嚴(yán)重警告,而不是錯(cuò)誤。
重要信息:將BEL和LOC屬性分配給單元格時(shí),必須在LOC之前分配BEL。
路由約束
路由約束應(yīng)用于網(wǎng)絡(luò)對(duì)象以控制其路由資源。
固定路由
固定路由是鎖定路由的機(jī)制,類似于ISE中的定向路由。
鎖定網(wǎng)絡(luò)路由資源涉及三個(gè)網(wǎng)絡(luò)屬性。 見表8-1。
在內(nèi)存中加載實(shí)現(xiàn)的設(shè)計(jì)后,您可以查詢?nèi)魏尉W(wǎng)絡(luò)的路由信息:
路由被定義為一系列相對(duì)路由節(jié)點(diǎn)名稱,扇出使用嵌入式花括號(hào)表示。 通過在網(wǎng)絡(luò)上設(shè)置以下屬性來修復(fù)路由:
% set_property IS_ROUTE_FIXED TRUE $net
要對(duì)XDC文件中的約束進(jìn)行反向注釋以供將來運(yùn)行,還必須保留連接到固定網(wǎng)絡(luò)的所有單元的放置。 您可以通過選擇原理圖或設(shè)備視圖中的單元格來查詢此信息,并查看其LOC / BEL屬性
“屬性”窗口中的值。 或者,您可以直接從Tcl控制臺(tái)查詢這些值:
% get_property LOC [get_cells {a0 L0 L1}]
SLICE_X0Y47 SLICE_X0Y47 SLICE_X0Y47
% get_property BEL [get_cells {a0 L0 L1}]
SLICEL.CFF SLICEL.A6LUT SLICEL.B6LUT
由于固定路由通常是時(shí)序關(guān)鍵的,因此還必須在LUT的LOCK_PINS屬性中捕獲LUT引腳映射,以防止路由器交換引腳。
同樣,您可以從Tcl控制臺(tái)查詢每個(gè)邏輯引腳的站點(diǎn)引腳:
% get_site_pins -of [get_pins {L0/I1 L0/I0}]
SLICE_X0Y47/A4 SLICE_X0Y47/A2
% get_site_pins -of [get_pins {L1/I1 L1/I0}]
SLICE_X0Y47/B3 SLICE_X0Y47/B2
修復(fù)net netA路由所需的完整XDC約束是:
set_property BEL CFF [get_cells a0]
set_property BEL A6LUT [get_cells L0]
set_property BEL B6LUT [get_cells L1]
set_property LOC SLICE_X0Y47 [get_cells {a0 L0 L1}]
set_property LOCK_PINS {I1:A4 I0:A2} [get_cells L0]
set_property LOCK_PINS {I1:A3 I0:A2} [get_cells L1]
set_property FIXED_ROUTE { CLBLL_LL_CQ CLBLL_LOGIC_OUTS6 FAN_ALT5 FAN_BOUNCE5 {
IMUX_L17 CLBLL_LL_B3 } IMUX_L11 CLBLL_LL_A4 } [get_nets netA]
如果使用交互式Tcl命令而不是XDC,則可以使用place_cell命令一次指定多個(gè)放置約束,如下所示:
place_cell a0 SLICE_X0Y47 / CFF L0 SLICE_X0Y47 / A6LUT L1 SLICE_X0Y47 / B6LUT
有關(guān)place_cell的更多信息,請(qǐng)參閱Vivado Design Suite Tcl命令參考
指南(UG835)[參考文獻(xiàn)10]。
配置約束
配置約束是應(yīng)用于當(dāng)前設(shè)計(jì)的比特流生成的全局約束。 這包括諸如配置模式之類的約束。
有關(guān)比特流生成屬性和定義的列表,請(qǐng)參閱Vivado中的此鏈接
Design Suite用戶指南:編程和調(diào)試(UG908)[參考12]。
掃碼關(guān)注我們
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08