在進(jìn)行布局約束前,通常會對現(xiàn)有設(shè)計(jì)進(jìn)行設(shè)計(jì)實(shí)現(xiàn)(Implementation)編譯。在完成第一次設(shè)計(jì)實(shí)現(xiàn)編譯后,工程設(shè)計(jì)通常會不斷更新迭代,此時(shí)對于設(shè)計(jì)中一些固定不變的邏輯,設(shè)計(jì)者希望它們的編譯結(jié)果能夠保持穩(wěn)定不變,使用增量式編譯是一種選擇,而使用布局約束是另一種更靈活的選擇。此時(shí)的布局約束,通常不會針對用戶邏輯部分,而是針對一些相對固定的片內(nèi)存儲器或乘法器,基于第一次編譯的結(jié)果進(jìn)行固定布局約束的設(shè)計(jì)重用,保證后續(xù)每次新的編譯不再改變其布局位置,從而達(dá)到獲得相對穩(wěn)定的編譯結(jié)果的目的。
這類基于設(shè)計(jì)重用的布局約束,簡單易用,可以減少一定的編譯時(shí)間,也無需設(shè)計(jì)者對底層器件結(jié)構(gòu)非常了解。但也有其局限性,不適用于較大的設(shè)計(jì)變更,也不適合于固定太多的設(shè)計(jì)邏輯。因?yàn)檫@類設(shè)計(jì)重用,相當(dāng)于為前期設(shè)計(jì)鎖定了資源,使其占據(jù)了先發(fā)優(yōu)勢,而對于隨后的設(shè)計(jì)變更,則因?yàn)闊o法分配到較優(yōu)的資源,可能引起時(shí)序違規(guī)。因此,在實(shí)際工程應(yīng)用中,此類固定布局約束需要謹(jǐn)慎使用。
點(diǎn)擊OpenImplemented Design,進(jìn)入Implemented頁面。
Implemented頁面下,如圖1所示,點(diǎn)擊菜單Layout->Floorplanning。
圖1Floorplanning菜單
接著,如圖2所示,點(diǎn)擊菜單Edit->Find。
圖2 Find菜單
如圖3所示,在彈出的Find對話框中,設(shè)置Find為Cells,Properties為PRIMITIVE_TYPEis BMEM。即查找設(shè)計(jì)中已經(jīng)布局的所有Block Memory(FPGA片內(nèi)塊RAM)。
圖3 Find對話框
此時(shí),如圖4所示,在FindResults列表中,出現(xiàn)了所有搜索到的設(shè)計(jì)中使用了BMEM的Cell。
圖4 FindResults列表
如圖5所示,選中所有搜索到的RAMB36E1,右鍵單擊,彈出菜單中點(diǎn)擊FixCells,將所有已布局的BMEM的位置固定,使其在下一次編譯時(shí)不被移動(dòng)。
圖5 FixCells菜單
如圖6所示,可以選擇FindResults中的任意一個(gè)Cell,查看其Cell Properties,其STATUS項(xiàng)都已被修改為了FIXED。
圖6查看BMEM屬性
如圖7所示,可以直接點(diǎn)擊保存按鈕,覆蓋到當(dāng)前的xdc文件中。
圖7SaveConstraints按鈕
如圖8所示,也可以點(diǎn)擊菜單File->Constraints->SaveAs創(chuàng)建新方案存儲約束腳本。
圖8SaveConstraints As菜單
如圖9所示,新的約束設(shè)置將會另存到新創(chuàng)建的約束方案constrs_2中。
圖9SaveConstraints As對話框
最后,如圖10所示,在Source面板中可以看到,新創(chuàng)建的約束方案constrs_2被高亮為active狀態(tài),同時(shí)打開其下的約束文件at7.xdc,set_property BEL或set_property LOC腳本即剛添加的布局約束。重新編譯后,約束將會生效。
圖10約束腳本文件
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1630文章
21772瀏覽量
604663 -
存儲器
+關(guān)注
關(guān)注
38文章
7519瀏覽量
164083 -
約束
+關(guān)注
關(guān)注
0文章
82瀏覽量
12748 -
編譯
+關(guān)注
關(guān)注
0文章
660瀏覽量
32929
原文標(biāo)題:物理約束實(shí)踐:基于設(shè)計(jì)重用的布局約束
文章出處:【微信號:FPGA快樂學(xué)習(xí),微信公眾號:FPGA快樂學(xué)習(xí)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論