版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2024/11/91邏輯綜合工具DCPart3設(shè)計(jì)優(yōu)化集成電路EDA技術(shù)實(shí)驗(yàn)2024/11/92CONTENTS
Synopsys工藝庫層次劃分與編碼風(fēng)格設(shè)計(jì)約束與腳本編寫設(shè)計(jì)優(yōu)化2024/11/93設(shè)計(jì)優(yōu)化總的時(shí)間違反TNS時(shí)序違例編譯策略自頂向下層次化編譯時(shí)間預(yù)算編譯CCWSR方法多個(gè)實(shí)例解析優(yōu)化方法編譯設(shè)計(jì)展平和構(gòu)造消除層次優(yōu)化時(shí)鐘面積優(yōu)化2024/11/94總的時(shí)間違反TNS最差時(shí)間違反(worstnegativeslack):指一個(gè)信號(hào)從路徑起點(diǎn)到終點(diǎn)所需時(shí)間超過約束最嚴(yán)重的情況??偟臅r(shí)間違反(totalnegativeslack):指每個(gè)路徑終點(diǎn)對應(yīng)的最差時(shí)間違反之和。DD-6ns-2ns-3nsclkoutin2in12024/11/95時(shí)間約束之非同步設(shè)計(jì)的時(shí)間約束偽路徑多周期路徑最大延時(shí)最小延時(shí)2024/11/96偽路徑set_false_path[-fromfrom_list][-throughthrough_list][-toto_list]-from:偽路徑的起點(diǎn)列表。-through:偽路徑經(jīng)過的節(jié)點(diǎn)列表。-to:偽路徑的終點(diǎn)列表。偽路徑也稱為虛假路徑,指時(shí)序分析時(shí)不需要關(guān)心的路徑。DC不能自動(dòng)識(shí)別偽路徑,故需要顯示指定。set_false_path命令用于去掉特定路徑上時(shí)序約束,對異步邏輯和邏輯上的虛假路徑非常有用。比如設(shè)定從ff1的CP端經(jīng)單元U1和U2的Z端到達(dá)ff2的D端的路徑為偽路徑,則命令為:dc_shell-t>set_false_path-from[get_pinsff1/CP]–through[listU1/ZU2/Z]-to[get_pinsff2/D]2024/11/97偽路徑如果設(shè)計(jì)中有多個(gè)時(shí)鐘,那么由一個(gè)時(shí)鐘域到另一個(gè)時(shí)鐘域之間的路徑為偽路徑,需要一一標(biāo)示,可以重復(fù)調(diào)用set_false_path命令,也可以采用如下的腳本命令:foreach_in_collectionclk1[all_clocks]{foreach_in_collectionclk2[remove_from_collection[all_clocks][get_clocks$clk1]]{set_false_path-from[get_clocks$clk1]-to[get_clocks$clk2]}}2024/11/98多周期路徑set_multicycle_pathpath_multiplier[-setup][-hold][-fromfrom_list][-throughthrough_list][-toto_list]path_multiplier:指定路徑的時(shí)鐘周期數(shù)。-setup:指定該路徑針對建立時(shí)間檢查。-hold:指定該路徑針對保持時(shí)間檢查。-from:多周期路徑的起點(diǎn)列表。-through:多周期路徑經(jīng)過的節(jié)點(diǎn)列表。-to:多周期路徑的終點(diǎn)列表。多周期路徑指兩級相鄰寄存器之間的組合邏輯延時(shí)較大,不能在1個(gè)時(shí)鐘周期完成。因此需要設(shè)定為多周期路徑,由set_multicycle_path命令完成。2024/11/99多周期路徑圖示設(shè)計(jì)中,時(shí)鐘周期為10ns,而其中一級加法器的延時(shí)近60ns,那么約束方法為:dc_shell-t>create_clock-period10[get_clocksclk]dc_shell-t>set_multicycle_path6-setup-to[get_pinsc_reg[*]/D]多周期路徑的另一個(gè)應(yīng)用是:對于電平敏感的設(shè)計(jì),設(shè)計(jì)者希望時(shí)鐘周期為0,可通過該命令實(shí)現(xiàn)。2024/11/910最大延時(shí)對于純組合邏輯,一般使用set_max_delay和set_min_delay進(jìn)行約束,當(dāng)然也可以使用虛擬時(shí)鐘,虛擬時(shí)鐘的創(chuàng)建和前面理想時(shí)鐘的討論相同。比如設(shè)定從U0的CP端經(jīng)單元U1和U2的Z端到達(dá)U3的A端的最大延時(shí)為5.0ns,則命令為:set_max_delay5.0–from[get_pinsU0/CP]–through[listU1/ZU2/Z]–to[get_pinsU3/A]set_max_delay用于在當(dāng)前設(shè)計(jì)中指定從任意起點(diǎn)到任意終點(diǎn)的最大延時(shí)。語法格式為:set_max_delaydelay_value[-fromfrom_list][-throughthrough_list][-toto_list][-group_pathgroup_name]delay_value:指定最大延時(shí)的值,單位由工藝庫決定,一般為ns。-from:延時(shí)約束的起點(diǎn)列表。-through:延時(shí)路徑經(jīng)過的節(jié)點(diǎn)列表。-to:延時(shí)約束的終點(diǎn)列表。-group_path:建立一個(gè)時(shí)序關(guān)鍵路徑的組,用于重點(diǎn)優(yōu)化。該選項(xiàng)對編譯時(shí)間有較大影響,而且該組優(yōu)化的優(yōu)先級高,可能會(huì)導(dǎo)致其他的時(shí)序違例。因此該選項(xiàng)(或單獨(dú)使用group_path命令)通常作為綜合優(yōu)化的最后手段使用。2024/11/911最小延時(shí)比如設(shè)定從U0的CP端經(jīng)單元U1和U2的Z端到達(dá)U3的A端的最小延時(shí)為3.0ns,則命令為:set_min_delay3.0–from[get_pinsU0/CP]–through[listU1/ZU2/Z]–to[get_pinsU3/A]set_min_delay用于在當(dāng)前設(shè)計(jì)中指定路徑的最小延時(shí),與set_max_delay相對,該命令與set_fix_hold命令配合使用修正電路的保持時(shí)間,如果發(fā)生min_delay違規(guī),在不增大max_delay的情況下綜合工具會(huì)自動(dòng)添加合適的延時(shí)單元來修復(fù)違規(guī)。語法格式為:set_min_delaydelay_value[-fromfrom_list][-throughthrough_list][-toto_list]delay_value:指定最小延時(shí)的值,單位由工藝庫決定,一般為ns。-from:延時(shí)約束的起點(diǎn)列表。-through:延時(shí)路徑經(jīng)過的節(jié)點(diǎn)列表。-to:延時(shí)約束的終點(diǎn)列表。2024/11/912約束實(shí)例在該設(shè)計(jì)中,4個(gè)時(shí)鐘的時(shí)鐘周期分別為:clk1=30ns,clk2=20ns,clk3=10ns,clk4=15ns。clk1和clk2的networklatency分別為0.5ns和0.6ns,翻轉(zhuǎn)時(shí)間都是1.0ns。時(shí)鐘clk3和clk4與頂層設(shè)計(jì)top異步,其他信息表示在圖中。#Createclockscreate_clock-period30[get_portsclk1]create_clock-period20[get_portsclk2]#Generatevirtualclocksforclk3andclk4create_clock-period10-nameclk3create_clock-period15-nameclk4#Constrainuncertainty,transition,andlatencyset_clock_uncertainty0.35[get_clocksclk1]set_clock_uncertainty0.40[get_clocksclk2]set_clock_transition1.0[get_clocks“clk1clk2”]set_clock_latency0.5[get_clocksclk1]set_clock_latency0.6[get_clocksclk2]#Constraininputsandoutputsbyinputandoutputdelayset_input_delay2.5-clockclk3[get_portsdata_in]set_output_delay3.0-clockclk4[get_clocksdata_out]#TimingExceptionsset_false_path-from“clk3clk4”-to“clk1clk2”set_false_path-from“clk1clk2”-to“clk3clk4”
2024/11/913編譯策略
通常設(shè)計(jì)中都包括多個(gè)層次結(jié)構(gòu)和多個(gè)子設(shè)計(jì),如何選擇編譯策略會(huì)影響到編譯時(shí)間好優(yōu)化結(jié)構(gòu)。自頂向下層次化編譯時(shí)間預(yù)算編譯CCWSR方法2024/11/914自頂向下層次化編譯指對頂層設(shè)計(jì)和所有的子設(shè)計(jì)同時(shí)進(jìn)行編譯,所有的源碼被一次性讀入,然后在頂層施加約束,進(jìn)而執(zhí)行編譯。優(yōu)點(diǎn):只需要頂層約束由于在整個(gè)設(shè)計(jì)上進(jìn)行優(yōu)化,可得到更優(yōu)的結(jié)果缺點(diǎn):編譯時(shí)間長對子模塊的增量改變需要重新綜合整個(gè)設(shè)計(jì)使用:把子模塊組合在一起并打平它們以改善時(shí)序。2024/11/915時(shí)間預(yù)算編譯設(shè)計(jì)者根據(jù)技術(shù)規(guī)范定義的各個(gè)子模塊的時(shí)序要求為每一個(gè)子模塊編寫綜合腳本,然后從最底層開始處理每一個(gè)和每個(gè)層次的模塊,直到完成整個(gè)設(shè)計(jì)的綜合處理,最后分析綜合結(jié)果是否滿足時(shí)序和面積要求。優(yōu)點(diǎn):由于是單個(gè)腳本所以易于控制設(shè)計(jì)對子模塊的增量改變不需要重新綜合整個(gè)設(shè)計(jì)由于以單個(gè)模塊為目標(biāo),因而優(yōu)化效果更好2024/11/916時(shí)間預(yù)算編譯缺點(diǎn):需要更新并維護(hù)多個(gè)腳本頂層所見的關(guān)鍵路徑在底層可能不是關(guān)鍵的使用:設(shè)計(jì)人員已對整個(gè)設(shè)計(jì)進(jìn)行了時(shí)間預(yù)算,包括模塊間的時(shí)序要求。2024/11/917CCWSR方法Compile-Characterize-Write-Script-Recompile方法:適用于不具有明確的模塊間規(guī)范的中等至超大規(guī)模設(shè)計(jì)。要求在設(shè)計(jì)的頂層施加約束,并且要預(yù)編譯每個(gè)子模塊,然后使用頂層約束來表征子模塊,即從頂層向子模塊傳播所要求的時(shí)序信息,通過write_script命令為每個(gè)子模塊產(chǎn)生約束文件,然后用這些約束文件重新編譯設(shè)計(jì)的每個(gè)模塊。2024/11/918CCWSR方法優(yōu)點(diǎn):占用內(nèi)存少由于進(jìn)行模塊間的優(yōu)化而產(chǎn)生較好的結(jié)果產(chǎn)生可有用戶修改的單個(gè)腳本缺點(diǎn):生成的腳本可讀性不好會(huì)遇到乒乓效應(yīng),即達(dá)到模塊間的收斂可能會(huì)有困難較底層模塊的改變通常需要整個(gè)設(shè)計(jì)的重新綜合2024/11/919ThecharacterizeCommandcharacterize
calculatestheactualattributesandconstraintsimposedonadesignbyitssurroundings
characterizethenplacesthoseconstraintsonthedesigncurrent_designTOPcharacterize-constraints[get_cellsU2]2024/11/920ViewingResultsofcharacterize
write_scriptoutputsascriptcontainingallofthecostraintsthathavebeensetonthecurrent_design######################################################Createdbywrite_script()-formatdctclonWedMay310:50:512006######################################################Setthecurrent_design#current_designFIFO_MEM_BLKcreate_clock-name"my_clk"-period4-waveform{02}[get_ports{clk}]set_dont_touch_network[get_clocks{my_clk}]set_input_delay0-min[get_ports{data_in[0]}]set_input_delay1-add_delay-max-clock"my_clk"[get_ports{data_in[0]}]set_input_delay0-min[get_ports{data_in[1]}]set_input_delay1-add_delay-max-clock"my_clk"[get_ports{data_in[1]}]set_input_delay0-min[get_ports{data_in[2]}]2024/11/921RecompileHDLSourceaftercharacterizecurrent_designTOPcharacterize-consU2current_designBwrite_script-oB_w.tclremove_design-hierBread_verilogB.vcurrent_designBlinksourceB_w.tclcompilewrite-hier-oB.dbcurrent_designTOPlink2024/11/922characterizeLimitationscharacterizecanonlybeusedwhenallblocksaremappedtogatescharacterizecanonlybedoneoneblockatatimeOnceablockhasbeencharacterizedandrecompiled,thereare“new”cellsdriving/loadingothersubblockscharacterize“pushesaway”anymarginthatmayexistonblock-blockinterface2024/11/923優(yōu)化方法優(yōu)化方法編譯設(shè)計(jì)結(jié)構(gòu)優(yōu)化邏輯優(yōu)化門級優(yōu)化消除層次優(yōu)化時(shí)鐘面積優(yōu)化2024/11/924編譯設(shè)計(jì)Compile命令進(jìn)行設(shè)計(jì)或模塊的編譯,將HDL代碼映射到指定的目標(biāo)庫。其選項(xiàng)可用于設(shè)計(jì)的映射優(yōu)化。2024/11/925編譯設(shè)計(jì)-map_effort<low|medium|high>
只有在編譯達(dá)不到目標(biāo)時(shí),才使用-map_efforthigh,該選項(xiàng)使DC圍繞關(guān)鍵路徑進(jìn)行邏輯的重新構(gòu)造和重新映射來滿足指定的約束。通常,編譯時(shí)間很長。-incremental_mapping只用在門級。增量編譯時(shí),DC進(jìn)行各種映射優(yōu)化以改善時(shí)序。2024/11/926編譯設(shè)計(jì)-boundary_optimizationOptimizesacrossallhierarchicalboundariesinthedesign.結(jié)構(gòu)優(yōu)化結(jié)構(gòu)優(yōu)化,有時(shí)也稱為high-level優(yōu)化,是根據(jù)設(shè)計(jì)約束、針對RTL編碼風(fēng)格進(jìn)行的優(yōu)化。該步驟執(zhí)行的操作包括:選擇DesignWare實(shí)現(xiàn)(DesignWareImplementationSelection)共享公共的子表達(dá)式(SharingCommonSubexpressions)共享資源(ResourceSharing)操作符重排序(ReorderingOperators)2024/11/927if(enable)z<=A+B;elsez<=C+D;
邏輯優(yōu)化邏輯優(yōu)化針對結(jié)構(gòu)優(yōu)化得到的GTECH網(wǎng)表進(jìn)行,也可以稱為是對布爾方程的控制,一般包括兩個(gè)過程:展平和構(gòu)造。2024/11/9282024/11/929展平展平(Flattening):展平是把組合邏輯變成一種兩級積之和(SOP:sum-of-products)的形式。展平是獨(dú)立于約束的,在展平過程中,DC把設(shè)計(jì)中的所有中間變量去掉,可以提高速度但會(huì)增加面積。但需要注意:1、受限于工藝庫的影響,扁平也許不能保證把設(shè)計(jì)映射成SOP形式;2、扁平操作并不影響設(shè)計(jì)的層次結(jié)構(gòu),其命令是set_flatten,與消除層次的命令ungroup不同。set_flattentrue2024/11/930構(gòu)造構(gòu)造(Structuing):構(gòu)造是基于約束的,通過給設(shè)計(jì)添加中間變量和邏輯結(jié)構(gòu),使得邏輯共享,可以減少設(shè)計(jì)的面積。構(gòu)造過程中,DC在設(shè)計(jì)中尋找最有可能減少邏輯的子設(shè)計(jì),將其設(shè)為中間變量,從設(shè)計(jì)表達(dá)式中提取出來。其命令為set_structure。set_structuretrue門級優(yōu)化門級優(yōu)化產(chǎn)生目標(biāo)庫上的最終網(wǎng)表。一般包括:映射、延時(shí)優(yōu)化、設(shè)計(jì)規(guī)則修正和面積優(yōu)化。2024/11/931邏輯優(yōu)化和門級優(yōu)化都通過命令compile完成,但滿足所有約束、或用戶中斷、或DC無法滿足約束但也無法進(jìn)一步優(yōu)化時(shí),編譯就會(huì)停止。2024/11/932消除層次####################flattenthewholedesignforareareducingcurrent_designprbs_topungroup-flatten-all綜合在默認(rèn)情況下是保持設(shè)計(jì)的層次結(jié)構(gòu)的,盡管可以讓DC跨越邊界優(yōu)化,但為了去掉不必要的層次,可以采用ungroup打平設(shè)計(jì),這與前面討論的展平不同。比如要徹底消除某設(shè)計(jì)xsoc內(nèi)部的層次關(guān)系,可以采用如下命令:2024/11/933限制使用某些單元####################donotusescancellsetSCAN_FF1smic13_ss/FFS*set_dont_use$SCAN_FF1有些情況下,不希望綜合結(jié)果采用目標(biāo)庫中的特定單元,可以采用set_dont_use命令實(shí)現(xiàn)。比如,限制使用帶scan的觸發(fā)器,可以采用如下命令進(jìn)行設(shè)置:2024/11/934時(shí)序優(yōu)先group_path建立一個(gè)時(shí)序關(guān)鍵路徑的組,用于重點(diǎn)優(yōu)化。該選項(xiàng)對編譯時(shí)間有較大影響,而且該組優(yōu)化的優(yōu)先級高,可能會(huì)導(dǎo)致其他的時(shí)序違例。因此group_path命令通常作為綜合優(yōu)化的最后手段使用。使用ungroup去除不必要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 稅務(wù)籌劃與執(zhí)行方案設(shè)計(jì)
- 2024物業(yè)客服個(gè)人工作總結(jié)(35篇)
- 農(nóng)村旱地合同(2篇)
- Unit3Sport and Fitness(詞匯短語句式)-2025屆高三人教版英語一輪復(fù)習(xí)闖關(guān)攻略(解析版)
- 第17課 二戰(zhàn)后資本主義的新變化(分層作業(yè))(解析版)
- 第2單元 古代歐洲文明(A卷·知識(shí)通關(guān)練)(解析版)
- 2021-2026年中國天然植物殺蟲劑市場深度分析及投資戰(zhàn)略咨詢報(bào)告
- 2025陽泉市豆類種植收購合同
- 2024年度天津市公共營養(yǎng)師之二級營養(yǎng)師能力測試試卷B卷附答案
- 2024年度天津市公共營養(yǎng)師之三級營養(yǎng)師強(qiáng)化訓(xùn)練試卷B卷附答案
- 檢修平臺(tái)施工方案
- 貴陽市南明區(qū)2023-2024學(xué)年四年級數(shù)學(xué)第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含答案
- 第六單元大單元教學(xué)設(shè)計(jì)統(tǒng)編版語文八年級上冊
- GB/T 713.2-2023承壓設(shè)備用鋼板和鋼帶第2部分:規(guī)定溫度性能的非合金鋼和合金鋼
- 寵物養(yǎng)護(hù)與經(jīng)營專業(yè)《寵物解剖生理》課程標(biāo)準(zhǔn)
- 滬教2011課標(biāo)版三年級起點(diǎn)五年級下冊《Buying Clothes》說課稿
- 幼兒園教職工教代會(huì)會(huì)議記錄
- 車輛移交安全協(xié)議書
- 《涑水記聞》2021年江蘇鎮(zhèn)江中考文言文閱讀真題(含答案與翻譯)
- 家庭家教家風(fēng)·家庭美德·文明家庭主題班會(huì)
- 廬山云霧閱讀答案千姿百態(tài)
評論
0/150
提交評論