提到位置約束,我們會(huì)想到手工布局的方式,即畫Pblock,將指定模塊放入相應(yīng)Pblock內(nèi),這既是面積約束又是位置約束,但顯然這種約束是較為具體的位置約束。這種方式需要工程師有一定的經(jīng)驗(yàn),有時(shí)還需要借鑒參考Vivado之前的布局結(jié)果,換言之,我們確定的Pblock位置未必是工具認(rèn)為的最佳位置。對(duì)于特定的底層單元,例如RAMB36K或DSP48,可通過(guò)屬性LOC指定其具體位置(site的位置),顯然這也是非常具體的位置約束。那么是否可以做模糊的位置約束?即希望指定的模塊彼此靠得近一些,或一些底層單元在指定區(qū)域(無(wú)需指定具體site的位置)。答案是肯定的。這里我們就介紹幾個(gè)屬性。
CLOCK_REGION 屬性CLOCK_REGION可用于指定時(shí)鐘緩沖器如BUFG的位置,不同于屬性LOC,/CLOCK_REGION僅確定指定時(shí)鐘緩沖器位于哪個(gè)時(shí)鐘區(qū)域,這個(gè)區(qū)域內(nèi)會(huì)有多個(gè)時(shí)鐘緩沖區(qū)可供選擇。CLOCK_REGION可以在XDC中使用,方法如下:
在大多數(shù)情況下,時(shí)鐘緩沖器由全局時(shí)鐘管腳、MMCM/PLL或GT*_CHANNELs驅(qū)動(dòng),這種情況下,Vivado會(huì)自動(dòng)確定時(shí)鐘緩沖器的位置,無(wú)需人工干預(yù)。 CLOCK_LOW_FANOUT 如果某個(gè)時(shí)鐘所驅(qū)動(dòng)的負(fù)載較小(時(shí)鐘扇出較低),那么可以對(duì)時(shí)鐘緩沖器輸出端所連接的網(wǎng)線施加屬性CLOCK_LOW_FANOUT,并將其值設(shè)置為TRUE,這樣工具將嘗試將這些負(fù)載放置在一個(gè)時(shí)鐘區(qū)域內(nèi),但用戶無(wú)需指定到底是哪個(gè)時(shí)鐘區(qū)域。具體使用方法如下:
這里需要注意:這個(gè)屬性的施加對(duì)象是網(wǎng)線net,這個(gè)net應(yīng)是時(shí)鐘緩沖器輸出端所連接的net。此外,如果這些負(fù)載無(wú)法放置在一個(gè)時(shí)鐘區(qū)域內(nèi)(資源不夠),那么工具將會(huì)忽略此約束。
審核編輯:湯梓紅
-
緩沖器
+關(guān)注
關(guān)注
6文章
2056瀏覽量
47009 -
Vivado
+關(guān)注
關(guān)注
19文章
835瀏覽量
68737
原文標(biāo)題:Vivado里如何使用模糊性的位置約束?
文章出處:【微信號(hào):Lauren_FPGA,微信公眾號(hào):FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
VIVADO時(shí)序約束及STA基礎(chǔ)
一文詳解Vivado時(shí)序約束

vivado約束參考文檔
Vivado忽略了約束文件
ISE約束導(dǎo)入vivado總共分幾步

Vivado進(jìn)行時(shí)序約束的兩種方式

Vivado IDE全面了解XDC文件的約束順序

Vivado中XDC文件的約束順序
vivado多時(shí)鐘周期約束set_multicycle_path使用

Vivado設(shè)計(jì)約束功能概述
如何在Vivado中添加時(shí)序約束呢?

Vivado綜合階段什么約束生效?
Vivado的Implementation階段約束報(bào)警告?
Vivado Design Suite用戶指南:使用約束

Vivado使用小技巧

評(píng)論