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