如果你正在使用Vivado開發(fā)套件進行設(shè)計,你會發(fā)現(xiàn)綜合設(shè)置中提供了許多綜合選項。這些選項對綜合結(jié)果有著潛在的影響,而且能夠提升設(shè)計效率。為了更好地利用這些資源,需要仔細研究每一個選項的功能。本文將要介紹一下Vivado的綜合參數(shù)設(shè)置。
一、Vivado綜合參數(shù)介紹
在Vivado中,默認情況下,綜合器會根據(jù)指定的目標(biāo)芯片和設(shè)定的優(yōu)化策略來產(chǎn)生最優(yōu)的電路實現(xiàn)方案。常用的選項都可以在下圖菜單中設(shè)置。
1、flatten_hierarchy
這個參數(shù)決定了Vivado綜合工具將如何控制層次結(jié)構(gòu),一般默認為rebuilt,主要有以下3個參數(shù)選項:
(1)full
表示采用完全展平層次結(jié)構(gòu),只留下頂層。只保留頂層層次,執(zhí)行邊界優(yōu)化 。
(2)none
表示采用不展平層次結(jié)構(gòu), 綜合后的輸出具有與原始RTL相同的層次結(jié)構(gòu),且不執(zhí)行邊界優(yōu)化 。
(3)rebuilt
表示允許綜合工具展平層次結(jié)構(gòu),然后根據(jù)原始RTL重建層次結(jié)構(gòu)。 此值允許跨邊界優(yōu)化的QoR優(yōu)勢,最終層次結(jié)構(gòu)與RTL類似,便于分析。
2、gated_clock_conversion
控制綜合工具的轉(zhuǎn)換時鐘邏輯能力,使用門控時鐘轉(zhuǎn)換還需要使用RTL屬性才能工作。
3、fsm_extraction
控制狀態(tài)機的編碼方式綜合方式,默認值為auto,此時vivado會自動推斷最佳的編碼方式,它有以下幾個選項:關(guān)閉、sequential、獨熱碼、自動等等,其設(shè)定的FSM編碼方式優(yōu)先于HDL代碼中定義的方式。
4、fsm_encoding
設(shè)置針對某個狀態(tài)機設(shè)定編碼方式,綜合屬性 -fsm_coding的優(yōu)先級高于-fsm_extraction,但如果HDL代碼中已經(jīng)定義了編碼方式,該設(shè)定將無效。
5、 Keep_equivalent_registers
設(shè)置是否保留等效寄存器,equivalent registers也就是等效寄存器,共享輸入數(shù)據(jù)的寄存器。 勾選時,等效寄存器不會合并; 不勾選時,等效寄存器會被合并。
6、resource_sharing
設(shè)置算術(shù)運算通過資源共享來優(yōu)化設(shè)計資源,默認值為auto。
7、control_set_opt_threshold
設(shè)置是否開啟控制集的優(yōu)化,以減少控制集的個數(shù),但會增加LUT資源消耗。 觸發(fā)器的控制集由時鐘信號、復(fù)位/置位信號和使能信號構(gòu)成,通常只有{clk,set/rst,ce}均相同的觸發(fā)器才可以被放置在一個SLICE中,但開啟這個參數(shù)后3個觸發(fā)器會被放置到同一個SLICE中。
8、no_lc
是否開不允許出現(xiàn)LUT整合。 通過LUT整合可以降低LUT的資源消耗,但也可能導(dǎo)致布線擁塞。 因此,xilinx建議,當(dāng)整合的LUT超過了LUT總量的15%時,應(yīng)考慮勾選-no_lc,關(guān)掉LUT整合。
9、shreg_min_size
影響移位寄存器的實現(xiàn)方式,默認值為3。 當(dāng)HDL代碼描述的移位寄存器深度大于此設(shè)定值時,將采用“觸發(fā)器+SRL+觸發(fā)器”的方式實現(xiàn),其中SRL由LUT實現(xiàn)。
10、bufg
控制綜合時推斷出來的BUFG數(shù)量。 當(dāng)綜合過程中看不到設(shè)計網(wǎng)表中的其他BUFG時,Vivado設(shè)計工具會使用此選項,可以推斷出指定的數(shù)量,并跟蹤在RTL中實例化的BUFG數(shù)量。 例如,如果bufg選項設(shè)置為12并且在RTL中實例化了三個BUFG,則該工具最多可以推斷出9個BUFG。
11、fanout_limit
設(shè)置全局信號高扇出數(shù)目,但當(dāng)HDL代碼中有MAX_FANOUT時,該屬性失效。
12、directive
設(shè)置不同的優(yōu)化策略,主要選項參數(shù)如下:
- Default,默認設(shè)置。
- RuntimeOptimized,執(zhí)行最短時間的優(yōu)化選項,會忽略一些RTL優(yōu)化來減少綜合運行時間。
- AreaOptimized_high/medium,執(zhí)行一些通用的面積優(yōu)化。
- AlternateRoutability,使用算法提高布線能力,減少MUXF和CARRY的使用。
- AreaMapLargeShiftRegToBRAM,將大型的移位寄存器用塊RAM來實現(xiàn)。
- AreaMultThresholdDSP,會更多地使用DSP塊資源。
- FewerCarryChains,位寬較大的操作數(shù)使用查找表(LUT)實現(xiàn),而不用進位鏈。
13、max_bram
設(shè)定當(dāng)前工程的最大塊RAM數(shù)量,通常在設(shè)計中有黑盒或第三方網(wǎng)表時使用,默認設(shè)置為-1時,表示使用當(dāng)前芯片的最大塊RAM數(shù)量。
max_uram:指定ultra ram最大使用個數(shù)。 max_bram_cascade_height:指定bram最大級聯(lián)數(shù)。 max_uram_cascade_height:指定uram最大級聯(lián)數(shù)。
14、max_dsp
設(shè)定當(dāng)前工程的胡最大塊DSP的數(shù)量。 與max_ram一樣。
15、cascase_dsp
控制sum DSP塊輸出中的加法器,默認為auto。 auto表示使用塊內(nèi)置加法器鏈計算DSP輸出的總和。 tree強制在結(jié)構(gòu)中(Fabric)實現(xiàn)總和。
16、tcl.pre和tcl.post
在綜合之前和之后立即運行的Tcl文件
二、重要選項介紹
1、Report Setting
設(shè)置是否開啟綜合資源消耗報告,默認開啟即可,如果不需要看,可以關(guān)閉。
2、Setting設(shè)置中的Strategy
這里可選不同優(yōu)化策略設(shè)計,使得設(shè)計滿足相應(yīng)的需求,如下圖所示:
(1) “速度優(yōu)化”:使時鐘頻率最快。 面積和功耗可能更大。
(2) “平衡優(yōu)化”:在速度和面積之間取得平衡。
(3) “面積優(yōu)化”:使元素數(shù)量最少,但可能會影響時鐘速度和功耗。
(4) “功耗優(yōu)化”:降低功耗。
三、HDL代碼設(shè)置綜合屬性
1、srl_style
srl_style可設(shè)定移位寄存器的不同實現(xiàn)方式,主要有以下幾種方式:
(* srl_style = “srl_reg” ),實現(xiàn)移位寄存器為SRL + FF結(jié)構(gòu)。
( srl_style = “reg_srl” ),實現(xiàn)移位寄存器為FF + SRL結(jié)構(gòu)。
( srl_style = “reg_srl_reg” ),實現(xiàn)移位寄存器為FF + SRL + FF 結(jié)構(gòu)。
( srl_style = “register” ),實現(xiàn)移位寄存器為純FF結(jié)構(gòu)。
( srl_style = “srl” *),實現(xiàn)移位寄存器為純SRL結(jié)構(gòu)。
其中SRL可以有效減小面積,相比級聯(lián)寄存器的結(jié)構(gòu)性能要更好,如果再加了FF,時序性能更好。
2、ram_style和rom_style
定義存儲器實現(xiàn)方式,主要有以下幾種方式:
(*ram_style = "block" *),表示用Block RAM實現(xiàn)
(*ram_style = "reg" *),表示用寄存器實現(xiàn)
(*ram_style = "distributed" *),表示用分布式 RAM實現(xiàn)
(*ram_style = "uram" *),表示用uram實現(xiàn)
3、use_dsp48
定義實現(xiàn)這部分算術(shù)運算使用dsp資源進行實現(xiàn),常用形式為:( use_dsp48=“yes” )。
(*use_dsp48=“yes”*) reg test;
4、dont_touch
dont_touch可以防止相關(guān)內(nèi)容被邏輯優(yōu)化,常用形勢為:( dont_touch =“yes” )
(*dont_touch =“yes”*) reg test;
5、max_fanout
設(shè)置當(dāng)前信號的最大扇出數(shù)目,常用形式為:(* max_fanout = “20”*)
(*MAX_FANOUT = 50 *) reg test;
-
HDL
+關(guān)注
關(guān)注
8文章
326瀏覽量
47307 -
編碼
+關(guān)注
關(guān)注
6文章
932瀏覽量
54731 -
開發(fā)套件
+關(guān)注
關(guān)注
2文章
150瀏覽量
24249 -
綜合器
+關(guān)注
關(guān)注
0文章
9瀏覽量
6436 -
Vivado
+關(guān)注
關(guān)注
19文章
804瀏覽量
66224
發(fā)布評論請先 登錄
相關(guān)推薦
評論