DC綜合操作流程_第1頁
DC綜合操作流程_第2頁
DC綜合操作流程_第3頁
DC綜合操作流程_第4頁
DC綜合操作流程_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

總流程1:庫的設置2:設計的讀入3:設置環(huán)境屬性set_operating_conditionsset_wire_load_model和set_wire_load_modesetloadset_drive或者set_driving_cell4:設計規(guī)則約束set_max_transtionset_max_capacitanceset_max_fanout5:優(yōu)化約束create_clockset_clock_uncertaintyset_clock_latencyset_input_delayset_output_delayset_false_pathset_multicycle_pathset_max_delay和set_min_delayset_max_area7:一些編譯命令及DC的輸出格式注意:1:在前端設計中一般不做hold_time的約束,hold_time的約束可以在后端修復!!!總流程:1:對庫進行基本設置,如下:設置完成后應該查看.synopsys_dc.setup里面庫的設置和軟件applicationsetup處的設置是否一樣!DC的初始化文件.synopsys。dc。setup需要用ls-a顯示,命令:more。synopsys。dc.setup查看文件內(nèi)容!2:讀入設計,兩種方法:read和analyze+elaborateAnalyzer是分析HDL的源程序并將分析產(chǎn)生的中間文件存于work(用戶可以自己指定)的目錄下;Elaborate則在產(chǎn)生的中間文件中生成verilog的模塊或者VHDL的實體缺省情況下,elaborate讀取的是work目錄中的文件3:設置環(huán)境定義:如果不指定operating_conditions,DC自動搜索link_library中的第一個庫的工作環(huán)境作為優(yōu)化時使用的工作環(huán)境。(1)set_operating_conditions:工作條件包括三方面一溫度、電壓以及工藝;工作條件一般分三種情況:bestcase,typicalcase,worstcase圖形界面:#1:先進入thesymbolviewofthetop界面,選擇top模塊#2:attributes—operatingenvironment—operatingconditions命令方式:#1:可通過report_liblibraryname命令來查看,如下圖查看的是slow.db庫的工作條件,則使用命令:report_libslow,右邊是report_libfast。另外一個例子,只是為了說明庫中的libraryname必須是用report_lib命令得到下面圖形中的conditions里面的庫的name:(******自己想的******)#2:—般綜合時候只需考慮最差和最好兩種情況即可,最差情況用于做建立時間(setuptime)的時序分析,最好情況用于做保持時間(holdtime)的時序分析。最差情況-max下使用slow。db庫,最好情況一min下使用fast.db庫;{最差和最好情況和溫度以及電壓有很大關系,溫度越大,延時越大;電壓越大,延時越小;不過溫度對延時的作用更大}所以:##1:做建立時間分析時候用最差情況,命令:set_operating_conditions-max"slow"##2:如果既要分析建立時間,又要分析保持時間,則需要兩條命令:set_min_libraryslow。db-min_versionfast.dbset_operating_conditions-minfast-maxslow首先通過命令set_min_library同時設置worst—case和best—case的library,然后通過set_operating_conditions命令指定不同環(huán)境下使用的庫模型;上面的命令指定的是:fast庫用于對holdtime優(yōu)化,slow庫用于對setuptime進行優(yōu)化。set_operating_conditions-minfast-maxslow命令中的一minfast和-maxslow可以互換。(2)set_wire_load_model和set_wire_load_mode命令方式:#1:set_wire_load_model:設置連線負載模型,為了估計模塊輸出的時序—transitiontime;DC默認輸出負載為0負載模型可以通過report_liblibraryname命令下查看線的模型種類,如下圖是fast.db庫中的幾種線的模型.在布局布線前應使用較悲觀的模型,對最壞的情況做綜合,線負載模型由目標庫提供。-max-min選項指定該模型用于估計最大路徑延遲和最小路徑延遲。例如:(寫一個即可)set_wire_load_model—nametsmc13_wl40-minset_wire_load_model—namesmic13_wl50-max:最壞情況或者可以直接設置負載模型:set_wire_load_model-nametsmc13_wl40—libraryslow表示使用的是slow庫里的tsmc13_wl40線模型。#2:自己不清楚如何選擇的話,則讓DC自動選擇setauto_wire_load_selectiontrue#3:上面的設置完成后,需要對負載模塊的使用位置加以說明,三種模式,命令如下:set_wire_load_modetop 或set_wire_load_modeenclosed 或set_wire_load_modesegmented關系如下:top: 指定模塊互連線延遲的估計使用頂層模塊的線負載模型enclosed:指定模塊互連線延遲的估計使用包含該連線的最小模塊的線負載模型segmented:將連線按模型邊界分段,各段的延遲分別按照各自模塊的線負載模型估計延遲,然后把估計結(jié)果相加得到該連線的延遲一般情況下使用的是:set_wire_load_modetop圖形界面:上圖中的第一步指的是先選擇top模塊,然后設置top模塊下的環(huán)境屬性.***附加:還可以給某個模塊設置負載模型:(下面設置timer模塊)***setcurrent_designtimer ***先轉(zhuǎn)到timer模塊下***set_wire_load_model—nametsmc13_wl40或者下面的:setload:設置輸出負載比較精確地計算輸出電路的延遲,DC需要知道輸出電路驅(qū)動的所有負載.該命令有兩種用法:一種是直接給端口賦一個具體的值,另一種是結(jié)合命令load_of指出它的負載相當于工藝庫中哪個單元的負載值.命令方式:#1:set_load5[get_portsOUT1]#2:set_load[load_ofmy_lib/and2a0/A][get_portsOUT1]說明OUT1端口接的負載值地my_lib中and2a0單元的A管腳的負載值.#3:把上面命令set_load[load_ofmy_lib/and2a0/A] [get_portsOUT1]中的get_portsOUT1換為all_outputs就可以給全部輸出端口賦值。其中l(wèi)oad_of命令可以算出某個引腳的負載電容值。電路負載的大小會影響到它的延遲,而且負載越大,延遲越大,DC在缺省情況下認為端口的負載電容都是0,因此具有無窮大的驅(qū)動能力。圖形界面:必須先選中全部的輸出負載然后再設置負載值!?。。?!大**********具體如何找這個負載不清楚!!!?。?!!!!!****************set_drive或者set_driving_cell:設置輸入驅(qū)動。為了更加準確估計模塊的輸入時序,為了更加準確的估計輸入電路的延遲,DC需要知道信號到達輸入端口的過渡時間(transitiontime)。默認下,DC認為輸入驅(qū)動的驅(qū)動能力無限大,即transitiontime=0;Set_drive使用確定的值來估計輸入端的輸入電阻,從而得到輸入端口的延遲;set_driving_cell是假定一個實際的外部驅(qū)動單元來估計輸入的transitiontime;該命令用于設置輸入端口或者雙向端口上的電阻值,該電阻值是用于驅(qū)動輸入端口的單元的輸入電阻,因此,該值越大,就說明輸入端口的驅(qū)動能力越弱,連線的延遲也就越大。更常用的是set_driving_cell命令,以庫中某個單元電路的引腳驅(qū)動能力為基準來模擬輸入端口的驅(qū)動能力。例1:首先通過drive_of指定具體的驅(qū)動單元電阻值,得到驅(qū)動單元電阻后,通過:set_drive+值+[get_portsclk]命令給輸入端口clk賦值。下圖是給除了clk以外卜的其它輸入端口驅(qū)動:4:設計規(guī)則約束約束(DRC:design_rule_constraint)DRC規(guī)則的優(yōu)先級:transition>fanout>capacitance⑴set_max_transtion:設置最大傳輸時間連線的轉(zhuǎn)換時間是其驅(qū)動引腳的邏輯電平變化的時間,包括risingtime和falling,從10%的VDD變化到90%的VDD所需的時間。設定最大的轉(zhuǎn)換時間set_max_transtion,這個值一般設為周期的10%。例如:set_max_transtion1。8[current_design]一般情況下current_design指的是top.⑵set_max_capacitance:輸出管腳可以驅(qū)動的最大電容值定義輸出管卻可以驅(qū)動的最大電容值。例:set_max_capacitance1.5[get_portsout1]或者set_max_capacitance1.5[get_designstop]⑶set_max_fanout:設置最大扇出負載連線的最大扇出負載指的是它所驅(qū)動的所有輸入引腳的扇出負載的總和。扇出負載不同于負載,它是個無量綱的數(shù)值。max_fanout經(jīng)驗值一般設為20,即一個門的輸出最多驅(qū)動20個輸入引腳(如果每個引腳的輸出負載是1的話).******計算fanout值,如下*******或者:set_max_fanout3.0[all_outputs]圖形界面:在attributes一optimizationconstraints一designconstraints5:優(yōu)化約束OptimizationConstraints⑴create_clock:用于定義時鐘的周期和波形(duty及起始沿)duty:占空比,指高電平在一個周期所占的時間比率。 一命令:create_clock-period40-waveform{020}[get_portsclk]:表示CLK周期40ns,上升沿0ns,下降沿20ns;如果不定義waveform,則默認占空比為50%?;蛘撸夯蛘撸?1:set_dont_touch_network:在net或port上設置don’ttouch屬性,主要用于clock和reset信號,使DC不對這些nets插buffer,留到布局布線時綜合。#2:set_dont_touch:用于對current_design,cells,references,nets設置don’ttouch屬性,阻止DC對它們進行映射或優(yōu)化,一般在分模塊綜合和綜合后優(yōu)化時使用.例:set_dont_touch[get_cellsX_DATA_N_1_33B_reg[0]]⑵set_clock_uncertainty:定義好時鐘后,就要設置時鐘不確定性,即反映時鐘偏差(clockskew),一般設為0。2-0。3。命令:set_clock_uncertainty0。3[get_clockscore_clk]⑶set_clock_latency:模擬時鐘樹插入后從時鐘輸入端口到寄存器clock端口的延時,用于布局布線前的綜合和時序分析,一般設0。3—0.8.命令:set_clock_latency0.3[get_clockscore_clk]set_clock_latency默認情況下代表:NetworkLatencyset_input_delay (看另一個總結(jié)的時序分析文檔)對于輸入和輸出延時,若不知要求,可設延時為周期的40%命令:set_input_delay-clockclk_name-maxmax_value-minmin_value命令中的一max的選項:指定輸入的最大延遲,為了滿足時序單元建立時間(setuptime)的要求。-min的選項:指定輸入的最小延遲,為了滿足時序單元保持時間(holdtime)要求。例如:set_input_delay-max5.8-clockclk_62_5M[all_inputs]設置所有最大輸入延遲為5。8ns,所有輸入信號受到clk_62_5M時鐘信號約束!remove_input_delay[get_ports[listclk_62_5Mrst]]去掉像clk、rst這些不需要設置輸入延時的信號!set_output_delay:命令和設置input_delay一樣。set_false_path:虛假路徑。set_false_path命令用于給出異步電路或者邏輯上不存在的電路,優(yōu)化的時候所有加在該路徑上的限制條件都不予以考慮。如果要取消該設置,使用reset_path命令。指出異步電路的路徑:如果CLKA和CLKB是屬于不同的時鐘晶振,因此,CLKA到CLKB的路徑是異步電路。set_false_path-from[get_clocksCLKA]-to[get_clocksCLKB]set_false_path-from[get_clocksCLKB]-to[get_clocksCLKA]set_false_path—throughreset其中reset信號一般采用“異步復位,同步置位”方式(置位是強制置1,復位是強制置0),所以對于reset信號和跨越時鐘域的信號,都要設置為偽路徑。其它資料釋義:falsepath指的是電路中一些不需要考慮時序約束的路徑,一般出現(xiàn)在異步邏輯中。對多時鐘域或不可實現(xiàn)的路徑的處理:用set_false_path指示DC不對這些路徑進行時序優(yōu)化,如果不對falsepath路徑進行標識,DC會對所有的路徑進行優(yōu)化,從而影響關鍵時序路徑。⑺set_multicycle_path:設置多路徑(8)set_max_delay和set_min_delay:設置路徑的最大最小延遲。如果電路完全是組合邏輯電路,而沒有時鐘,可以使用這兩條命令直接限制路徑的最大最小的延遲。例如,限制一個reset信號:由于reset信號跨越了不同的模塊,因此,一般在頂層模塊中對該模塊做限制:即指定所有reset信號出發(fā)的路徑的最大延遲都為5,set_max_delay5-fromreset限制一個從IN輸入到OUT輸出的最小路徑:set_min_delay10-fromIN-toOUT或限制所以輸入到輸出的最小路徑:set_min_delay2-from[all_inputs]-to[all_outputs](9)set_max_areacurrent_designtopset_max_area0(常用)將top模塊的面積設為0,此時綜合后電路肯定不滿足要求,但DC會對電路的面積進行優(yōu)化,達到可能的最小面積,同時使得綜合之后的電路沒有“彈性”?;蛘呦旅妫海ú怀S茫﹫D像界面:上圖中的maxrise和minrise就是inputs或者outputs端口的最大延遲和最小延遲?。。。?!選擇時候選中sameriseandfall選項!??!以上所有的語句并不是需要全部都設置的,根據(jù)自己的設置來判斷需要設置的內(nèi)容即可?。。。。。。。。?!上面設置完成后進行uniquify實例唯一化設置,然后再編譯,方法:(不是所有都有這一步的,看情況)(1) 界面上:hierarchy—uniquify-hierarchy,出現(xiàn)對話框后選擇ok,也可選中下面的instancestoberenamed...小框框,是進行強制唯一化的。(2) 命令:uniquify或者uniquify-force(強制將所有調(diào)用模塊重新命名)7:開始編譯:大*大**編譯compilereport_constraints或者report_constraint-all_violators〃報告沒有滿足時序的約束條件此時如果不滿足的話可以加大映射的effort,如:compile-map_efforthigh或其它命令進行優(yōu)化。report_timingchange_names一ruleverilog-hierset_fix_multiple_ports_net-allset_fix_hold[all_clocks]修正holdtimewrite-formatverilog一hier一outputmux.sv//輸出網(wǎng)表,自動布局布線需要(注意是。sv格式)write一formatddc一hier一outputmux。ddc〃輸出ddcwrite_sdfmux。sdf〃輸出延時文件,使用PT做靜態(tài)時序分析時需要write_sdcmux。sdc〃輸出約束設置信息,使用Astro或encounter自動布局布線需要其它命令:report_clock-skew-attribute生成時鐘報告report_port-verbose報告端口信息report_port-vclk查看時鐘端口所有屬性8:DC的幾種輸出文件:write-fddc-hierarchy-outputmy_ddc.ddcwrite-fverilog-hierarchy-outputmy_verilog。v#Writeouttheconstraints—onlysdcfile:約束信息,布局布線需要write_sdcmy_design。sdcWriteoutthescancha

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論