全局綜合(Global Synthesis)全局綜合意味著整個設(shè)計在一個Synthesis Design Run流程中完成,這樣會帶來幾個好處。一是使得綜合工具能夠最大化地進行設(shè)計優(yōu)化,尤其是層次間的優(yōu)化(這些優(yōu)化是其他綜合流程不能實現(xiàn)的)。二是對于綜合后的設(shè)計分析帶來了很大的便利。當(dāng)然,其不足之處也是很明顯的,那就是編譯時間會很長。但這一不足之處可以借助增量綜合得以緩解。需要注意的是因為是全局綜合,所以XDC中描述的約束是以頂層為基準進行索引的。IPI綜合(Block Design Synthesis)Vivado IPI (IP Integrator)提供了直觀的模塊化的設(shè)計方法。用戶可以將Vivado IP Catalog中的IP、用戶自己的RTL代碼、或者用戶已有的BD文件添加到IP Integrator中構(gòu)成Block Design,設(shè)計更復(fù)雜的系統(tǒng),如下圖所示。
IPI使得用戶可以方便地將特定功能打包放入設(shè)計中,這樣用戶可以將焦點放在整個系統(tǒng)上,而非系統(tǒng)的某個部分。對于Block Design,Vivado提供了如下圖所示的三種綜合方式。其中Global為全局綜合方式,其余兩種均為OOC(Out-of-Context)綜合方式,只是OOC的粒度不同而已。OOC可以有效縮短編譯時間。
OOC綜合方式OOC綜合方式可以使用戶單獨對設(shè)計的某個層次進行綜合,然后再對整個設(shè)計進行綜合,此時,OOC綜合的對象會被當(dāng)作黑盒子對待。通常,對于Xilinx的IP,我們建議采用OOC綜合方式。OOC可以縮短后續(xù)整個設(shè)計綜合所需時間,同時,若設(shè)計發(fā)生改變,而OOC綜合對象沒有改變,那么整個設(shè)計的綜合就不需要再對OOC對象進行綜合。一旦采用OOC綜合方式,在Design Runs窗口中就會看到相應(yīng)的OOC Module Runs,如下圖所示。
增量綜合(Incremental Synthesis)增量綜合可以使綜合工具復(fù)用之前已有的綜合結(jié)果,從而縮短編譯時間。但增量綜合是有前提條件的,即設(shè)計可以形成至少4個分割(Partitions),而每個分割至少包含25000個模塊。這里的“模塊”既包含設(shè)計層次也包含RTL原語。Vivado提供了四種增量綜合模式,如下圖所示。其中off表明關(guān)閉增量綜合,quick模式不會進行邊界優(yōu)化。default模式會執(zhí)行大部分邏輯優(yōu)化包括邊界優(yōu)化,相對于非增量模式,能顯著縮短編譯時間。aggressive模式會執(zhí)行所有的邏輯優(yōu)化,編譯時間縮短程度最為明顯。對于低性能設(shè)計需求,可以使用quick模式,而對于高性能設(shè)計需求,建議采用其余三種模式。
模塊化綜合(Block-level Synthesis)
本身Vivado提供了多種綜合策略和各種綜合設(shè)置選項,但其面向的對象是整個設(shè)計,換言之,這是一種全局設(shè)置。Block-level綜合技術(shù)則打破了這一常規(guī),可以對不同層次的設(shè)計設(shè)置不同的選項或應(yīng)用不同的綜合策略,從而達到更好的綜合質(zhì)量。
Block-level綜合技術(shù)需要通過XDC約束來實現(xiàn),如下圖所示。
我們來看一個例子:設(shè)計中有4個模塊U1、U2、U3和inst1,而inst1又嵌入在U3里。現(xiàn)在我們需要對U1使能RETIMING,對U2和U3使用AREA_OPTIMIZED策略,對inst1使用DEFAULT綜合策略,那么我們就可以通過下圖所示約束實現(xiàn)。
原文標題:Vivado Synthesis的各種流程
文章出處:【微信公眾號:TeacherGaoFPGAHub】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
模塊化
+關(guān)注
關(guān)注
0文章
333瀏覽量
21449 -
編譯
+關(guān)注
關(guān)注
0文章
661瀏覽量
33042 -
Vivado
+關(guān)注
關(guān)注
19文章
815瀏覽量
66890
原文標題:Vivado Synthesis的各種流程
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論