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

變頻器設(shè)置面板及參數(shù)設(shè)置方法

Vivado布線和生成bit參數(shù)設(shè)置

變頻器參數(shù)設(shè)置方法
變頻器的常用參數(shù)設(shè)置
匯川變頻器參數(shù)設(shè)置
變頻器的基本參數(shù)設(shè)置
金田變頻器怎么調(diào)參數(shù)設(shè)置
變頻器參數(shù)設(shè)置技巧介紹
原理圖參數(shù)設(shè)置與繪制

評(píng)論