eetop的dc總結帖入門aisc綜合與使用_第1頁
eetop的dc總結帖入門aisc綜合與使用_第2頁
eetop的dc總結帖入門aisc綜合與使用_第3頁
eetop的dc總結帖入門aisc綜合與使用_第4頁
eetop的dc總結帖入門aisc綜合與使用_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第四綜合Design綜合是前端模塊設計中的重要步驟之一,綜合的過程是將行為描述的電路、RTL 電路轉換到門級的過程;Design CompilerSynopsysHDL第四綜合Design綜合是前端模塊設計中的重要步驟之一,綜合的過程是將行為描述的電路、RTL 電路轉換到門級的過程;Design CompilerSynopsysHDLDesignCompiler4.1綜合綜4.1.1 綜合及其在集成電路設計流程中的地綜合41 41(translation)(optimization)SynopsysDCgtech.db1與4.1.1.2 綜合在集成電路整個設計流程中的地SynopsysDCgt

2、ech.db1與4.1.1.2 綜合在集成電路整個設計流程中的地42 HDL 語言描述電路以及在綜合的過程中就需要考慮電路的可測試性,在綜合之4.1.2 電路綜合的特點與要4.1.2.1 電路綜合的特點1、綜合是限制條件驅動的圖12gtech.db 的介紹可參看第四節43 面積上的代價就不能明顯的改善時序上的性能;同樣,當面積減小到一定程度,路徑延遲的增大也不能明顯改上面積上的性能。2DesignCompilerDesign timer1進行靜態時序分析,按照時序分析的結果來對4.1.2.2 電路綜合的要求43 面積上的代價就不能明顯的改善時序上的性能;同樣,當面積減小到一定程度,路徑延遲的增

3、大也不能明顯改上面積上的性能。2DesignCompilerDesign timer1進行靜態時序分析,按照時序分析的結果來對4.1.2.2 電路綜合的要求1綜的要必須是可重用的的可重用主要有兩方面的含義:1)整個電路設計過程中當后端工具提取出線負載模型 2 后作綜合或者在布16 32 位,而模塊的、電路中需要有時鐘的定 2)3、綜合的時候需要指定線負載模型,用于估計連線延遲、限制模塊中組合路徑的輸入輸出延遲、限制輸出的帶負載能力(Loadingbudget)以及輸入的驅動單元(driving 延遲(input delay)的限制。6)、多周期路徑(multicyclepath)以及 路徑(f

4、alsepath)2、 綜合結果的要 violation2)、綜合之后的門級網表必須已、綜合之后的門級網表中應避免包含如下電路結構1DesignCompiler234.1.3 前端設計的流44 44.1.3 前端設計的流44 44 RTL 以后的電路測試。電路的可測試性設計(DFT)將由專門章節給出 Verilog 例來說明 Verilog 語句與庫中門電路之間。SynopsysDesign Compiler 2000.11 版本的工4.2.1.1If 語句的綜合和其他高級語言一樣,If語句是用于選擇的控制,If語句對應的電路單元是1ifmoduleSet_If_AEqB(A,B,Z); in

5、put 1:0 A,B;outputZ; reg Z;always(AmoduleSet_If_AEqB(A,B,Z); input 1:0 A,B;outputZ; reg Z;always(AorB) if (A=B)Z = Z = 44Synopsys44 If45 If(Latchif語句時沒有對所有的可能情況進行判斷,ifelse ifelse 的語句結構。2Latch moduleif_bad(num,xval,yval,zval,dec); input 1:0 num;inputxval,yval,zval; output dec;(Latchif語句時沒有對所有的可能情況進行判

6、斷,ifelse ifelse 的語句結構。2Latch moduleif_bad(num,xval,yval,zval,dec); input 1:0 num;inputxval,yval,zval; output dec;regalways(numorxvaloryval if(num=2b00) dec = xval;elseif(num=dec=elseif(num= dec = zval;46If Latch,num=11 Ifcase3erruptoutput3:0reg3:0always01 2active3:0=ifactive0elseifactive1elseifactiv

7、e2elseifalways01 2active3:0=ifactive0elseifactive1elseifactive2elseif34.2.1.2Case句的綜合CaseIfcaseDC4CaseDCCASE_BEST(num,xval,yval,zval,aval,dec); 1:0 num;xval,yval,zval,outputdec; reg dec;always(numorxvaloryvalorzvaloraval) case2b00: dec=48 48 case5CASE_parallel(w,x,reg 1:0 b; always(worx)(2b11)/synop

8、sysparallel_case b = 2b10;b= 49。為66parallelcase的電路結full_case 的結對于例 5 中的電路,如果將/synopsys parallel_case 的編譯指導改為/synopsys full_case,由于 DC 綜合的時候忽略了 w 和 x 可能的其他情況,因此,綜合出來410410 fullcase由以上的綜合結果可以看出,加上編譯指導之后,綜合的電路與實際的 Verilogsynopsys的綜合工具所識4.2.1.3Always 語句的綜合always語句是表示當事件列表中的狀態發生變化時,執行語句體中的語句。7Alwaysalway

9、smodulealways_1(y,a,b,c,a,b,c, y,(aororca,b,c, y,(aororcord)y=a&b; c& tmp1|411 always8alwaysmodulenbex2(q,a,b,clk,outputclk,rst_n; a, b;alwaysedgeclkornegedgeif(!rst_n)q=q=a rst_n,clk.412 always4.2.2 算術運算符412 always4.2.2 算術運算符 ,=現,針對同一種運算符,DesignWare 可能提供不同的算法,具體選擇那一種是DesignWareDesignWare Basic Desi

10、gnWare Foundation,DesignWare Basic提供基本的電路,DesignWare Foundation提供性能較高的電路結構。如果需要Foundation DesignWare,需要在綜合的時候設置synthetic_library3。verilogreg類型的數據是被解釋成無符號數, eger類型的9】4 moduleUnsignedAdd input 3:0 in1;input3:0output3:0assignout=in1+ 43Synthetic_library圖4圖4位無符號加法器的綜合結4.2.3 邏輯運算符= =)module greater(in1,

11、in2, out); input 3:0 in1;input3:0output3:0reg3:0always(in1orin2) if (in1 = in2)out=out=in2; 414,圖4位無符號數的比較電Verilog圖4位無符號數的比較電Verilog122moduleshift_con(Addr,Addr_after_shift); input 3:0 Addr;output3:0assignAddr_after_shift=Addr2; 415 415 202 13】移位的位數由輸入確定的電路綜合 moduleshift_var(Addrshift_varAddr_after_

12、shift); input 3:0 Addr;input3:0output3:0assignAddr_after_shift=Addrshift_var; 416圖4-3 DesignCompiler綜合的過4.3.1DesignCompiler的啟動與退4.3.1.1DesignCompiler的啟對于 2000.11圖4-3 DesignCompiler綜合的過4.3.1DesignCompiler的啟動與退4.3.1.1DesignCompiler的啟對于 2000.11 版的 Design Compiler,用戶可以通過三種方式運行 Design 1、 2、” 就可以進入該方式運行。可

13、以進入的交互模式),或者可以在啟動 fscript)-t 命令行方的時候直接調的d Language后面章節將有介紹)Design s-t”來運行該方式。該方式的運行環境也是本界面。可以進入 -t 的交互模式-t), 或者可以在啟動-tfscript)3、-t的時候直接調用tclyzeryzer 使用圖形界面,如菜單、框等來實現 打注意yzer 的工作模式不是用于編輯電路圖的,它只能用于示 HDL 語言描述電路的電路圖h tcl unix tcl 打注意yzer 的工作模式不是用于編輯電路圖的,它只能用于示 HDL 語言描述電路的電路圖h tcl unix tclh 模式的語因此使h書寫不能直

14、接用于TCL 工作模式使用書寫也不能直接用h工作模式d.log yzer 在啟動時自動在啟動目錄下面創建兩個日志文件:Design Compiler design 過的目錄,包括庫、源文件等,filenames.logdesigncompilerd.logchenblleRISC_CORE .db le cp-rfrisc_design目錄下面有一個.synopsys_可以在該目錄下面啟動dc_setup的初始化文件,因此-t 命令之后,如果命令成功執行,顯示的418 DC Pronal(TM) DC Expert (TM)VHDLCompiler(TM) HDLCompiler2000.11

15、forsparcOS5-Nov27,2000 Copyright (c) 1988-2000 by Synopsys, Inc.SThis program is proprietary andinformationofSynopsys,Inc. and may be used and disclosed only as authorized in a license agreement controlling such use and disclosure.4.3.1.2DesignCompilerh和TCL的文本工作模式下,都可以使用exit 命令來退出designcompiler,使fil

16、e菜單quit 按鈕4.3.1.2DesignCompilerh和TCL的文本工作模式下,都可以使用exit 命令來退出designcompiler,使file菜單quit 按鈕的dwindowexit 4.3.2 DesignCompiler417 SetdesignDesignRuleConstra DesignOpt.Constra sDesignsReaddesignandSelectdesignOptimizethe set min yzeandresolvedesign report timingSavethedesign圖令DefinedesignSpecifyDevelopHD

17、L文綜合過程中需要設置和使用的庫以DC 的初始1庫 link_library。注意:link library 的設置中必須包含*, 表示文綜合過程中需要設置和使用的庫以DC 的初始1庫 link_library。注意:link library 的設置中必須包含*, 表示DC 或者單元電路時首先搜索已經調進DC memory 的模塊和單元電路如果在link library中不包含*,DCDC memory 中已有的模塊,因此,會出現無法匹配的模塊或單元電路的警告信息(unresolved design reference)。實例:link_library“*”core_slow.db core_

18、slow.db2、目標庫_library用于設置綜合時所要電路的延遲信息,DC 綜合時就是根據_library _library Link_library _library 3、符號庫 symbol_librarySchematicyzer4、synthetic_libraryDesignWareDCDesignWarestandard.sldb用于link_library中設置相應的庫以使得在DCDesignCompileretupsearch_path5、DC 的初始化文件 .synopsys DCDC 的工作 、當前用戶的$HOME、DC 注意:Unixlsa4本章附錄中給出了一個etu

19、p行為級描述或網表并進 hTCL readformatverilogdb、vhdletcfile read_db file.dbread_verilogfile.v read_vhdl/h/TCL /TCLDB 格式 VHDL 格DesignCompiler行為級描述或網表并進 hTCL readformatverilogdb、vhdletcfile read_db file.dbread_verilogfile.v read_vhdl/h/TCL /TCLDB 格式 VHDL 格DesignCompilerRTL Design yze 命令和 elaborate yzeHDLwork(用戶也

20、可以自己指定)的目錄下elaborate 則在產生的中間文件中生成verilog 的模塊或者work當link Design 區中的模塊或實體連接起來,如果在使用 link 命令之后,出現 design reference 的警告信息,需要重etup由于用于示范的例子是.dbTCL 419 -t 的提示符下,輸入命令-4.3.2.3 定義電路的工作環境和綜合的環1DC命令概1)Design Compiler 限制條件施加的對 loadingdbfileCurrentdesignis420 (末行的1DCset_load3CLK420 (末行的1DCset_load3CLKpin、portnet

21、,因此,DC無法set_load 3 get_nets Clk set_load32)TCL3)DClib_name來查看所有在工藝庫中設定的。2由于不同的工作環境所對應的單元電路的延遲也不相同,如圖 4-21 所Loading db file /export/home/student/chenbl/DC_exLoading db file /usr/app/synopsys/2000.11/libraries/syn/class.dbLinkingdesign: UsingthefollowingdesignsandRISC_CORE,ssc_core_slow(library),class

22、Loading db file /usr/app/synopsys/2000.11/libraries/syn/gtech.db Loadingdbfile/usr/app/synopsys/2000.11/libraries/syn/standard.sldbLoading db file /export/home/student/chenbl/DC_exLoading db file /export/home/student/chenbl/DC_exLoading db file /export/home/student/chenbl/DC_exLoading db file /expor

23、t/home/student/chenbl/DC_exLoadingdbLoading db file /export/home/student/chenbl/DC_exLoading db file /export/home/student/chenbl/DC_ex圖電路的工作環境一般在工藝庫中都有給定。 DC圖電路的工作環境一般在工藝庫中都有給定。 DC 中使用 set_operating_conditions 命令來設置電路的工作環境。set_operating_conditions in_conditionmax-min_librarymin_libmax_library指定 DC 進

24、行優化時使用的工作環境,其中工作環境的指定必須在庫中指定,或link_libraryoperating_conditions的話, DC 自動搜索 link_library 中的第一個庫的工作環境作為優化時所使用的工作環get_attributes 3)-max 的選項用于指定電路最大延遲分析(setuptime5的要求)-min 的選項用于指定電路最小延遲分析(分析電路是否滿足觸發器保持時間 hold time的要求)的工作環境,該選項不能單獨使用,必須與-max同時使用。如果不指定用于分析最小延遲的庫則只使用max中指定的庫用于電路的延遲-min_library 的選項指定用于電路最大延遲

25、分析的工藝庫-max_library 的選項指定用于電路最小延遲分析的工藝庫4)DC 422 3vendor 可能提供多個不同的工藝庫,用于分析電路的時序,這些5參看set_input_delayUsingoperatingconditionsslow_125_1.62foundinlibraryssc_core_slow set_min_librarymax_librarymin_library|-max_library 用于分析電路的最大延遲,min_library 用于分析電路的最小延遲design compiler 需要計算路徑的最小set_min_librarymax_library

26、min_library|-max_library 用于分析電路的最大延遲,min_library 用于分析電路的最小延遲design compiler 需要計算路徑的最小延遲時先在max_library中找到單元電路,如果在 min_library 中有和該單元電路有相同名稱、相同的引 nonemin_library3)library min_library 對應的 4 report_timingnets置0,這是因為在做綜合之前,工具使用的線負載模型是比floorplan,然后提取出現負載模型來供給綜合工具使用,以便更加準確的估計連線延遲。Synopsys的另physical compile

27、r floorplan 跟綜合放在一起做。name_namelib_namelibrarymax2)auto_wire_load_selectiontrue,setauto_wire_load_selection-max min的選項同上,分別用于指定該模型用于估計最大路徑延遲和最小路徑延遲。 -lib_name 指定包含該線負載模型的工藝庫。:0sAverageCapStd1234545該模型ssc_core_slow 3、4 913是按照連線的扇出來估計連線長度,從而估計4)RISC_CORE 的電路,由于它的規模約為 50K,可以設置線負載模型為80KGATES 的模型,使用如下命令-t

28、name424 5enclosed 指定模塊互連線延遲的估計使用包含該連線的最小模塊的segmentedmode top、enclosed、成功執行該命令時,DC16timeset_driving_cell是假定一transtion time該命令用于設置輸入端口或者雙向端口上的電阻值,該電阻值是用動能力。_valuemaxminriseDesign RISC_CORE: Using wire_load m80KGATESfoundinlibraryssc_core_slow. Time=arrive_time+drive*net_loadTime=arrive_time+drive*net_

29、load7set_drive 命令基本相同,set_driving_cell 是指 set_driving_celllib_cellbuf1a3pinYResetbuf1a3Y引腳的驅動能力相同。RISC_CORE buf1a3 Y all_inputsget_ports425 driving_celldriving_cell 約束之后,相當與人為的給很多引腳加上了設計8DC 需要知道輸出電路驅動的所有負載。set_load load_of(ssc_core_slow/buf1a2/A) 即使用ssc_core_slow庫中buf1a2單元A引腳的電容負載來計算所有1) DC14.3.2.4

30、設置電路綜合的限制條設計規則的限制vendorWarning:Designruleattributesfromthedrivingcellwillbesetontheport.(UID1、2、 者是從 90VDD 下降到 10VDD 所需要的時間。從理論上來說,只要輸入平變化的但是上升或下降時間長就意味著電路的速度很慢輸出的 transition time transition time 以及輸出負載有關。3、如果在庫中定義了這些設計規則,用戶同時也設置了這些規則,DC 在優化電路優化的限制1create_clock定義一個時鐘,該時鐘域定義時鐘時可以不指定時鐘源)中的所有的同步電路都以該時鐘

31、為基準虛擬時鐘(VirtualClock), clock port or clock net。主要Clockset_clock_uncerta y來指定實clock_skew。網絡上的大負載,即不用在綜合的時候在時鐘網絡上加 buffer 來驅動。使用 set_dont_touch_network 命令來實現create_clock 同時也定義了時鐘的波形,-waveform 的選項是用于指定上升沿和下定義好時鐘之后,缺省情況下會產生一個路徑組(pathgroup,即以該時鐘為路對于 RISC_CORE,要求設置電路的工作頻率為 250MHz,因此時鐘周期為 4ns,create_clockp

32、eriod4namecore_clkget_ports命令成功執行,DC1使用create_clock產生一個時鐘之后需要用y 命令來模擬時RISC_CORE命令成功執行,DC1y0.3get_clocks2buffer 或者反相器,以使floorplan set_dont_touch_network 2buffer 或者反相器,以使floorplan set_dont_touch_network 信號,enable信號,test_clock對時鐘設置此屬性時,不能使用 set_dont_touch 命令,因為布線完成之后,會對時set_dont_touch 會在布線之后的綜合中找不到重新命名

33、后的 instance 進行優化)dont_touchset_dont_touch_network get_clocks 命令成功執行時,DC134set_input_delay clock clk_name max max_value 1)setuptimeholdtime :這兩個參數都是在工藝庫中給定的。Setuptime單元電路數據端比時鐘端有效沿提前到達的最少時間。Holdtime是指時鐘有效邊。max的選項:指定輸入的最大延遲,為了滿足時序單元建立時間(setup time)min 的選項:指定輸入的最小延遲,為了滿足時序單元保持時間(hold time)5)RISC_CORE5)

34、RISC_CORE1.5ns,all_inputs get_ports ClkDC1圖time420 5420 5set_output_delayclockclk_namemaxmax_value:圖圖圖1.5nsset_output_delaymax1.5clockcore_clkDC16set_max_area 1)DC RISC_CORE5060Kgates,設置其面積的限制50000,使用如下命令:set_max_area RISC_CORE5060Kgates,設置其面積的限制50000,使用如下命令:set_max_area 17set_max_delay resetreset 信

35、號set_max_delay5fromresetINOUTset_min_delay10fromINto8set_false_path命令用于給出異步電路或者邏輯上不存在的電路,優化的reset_path 命令。set_false_pathfromwrite_ento如圖,CLKACLKB 是屬于不同的時鐘晶振,因此,CLKACLKB 的路徑是異步電路。set_false_pathfromget_clocksCLKAtoget_clocks4.3.2.5 選擇綜合方1、自頂向下的綜合方案(top- set_dont_touchDC3set_dont_touchDC3423D子模塊采用自頂向下底

36、綜合,B 子模塊采用自底向上底綜合。圖4.3.2.6 綜合的其他問題1、子模塊的多422DC會認為圖1)uniquify得模塊的各可以針對他們圖1)uniquify得模塊的各可以針對他們不同的環境分別進行優化,達到最好效果。uniquify -tcurrent_design -TOP4-25。該方法的缺點是占用的圖問題的示意圖(方法2)compile-once-dont-touchset_dont_touch DC 留該子模塊,例如,假定通過 U4 U4的要求比較高,則使用如下命令: current_design TOP characterize U4 current_design Cset_

37、dont_touchU3U4 :C 設圖留該子模塊,例如,假定通過 U4 U4的要求比較高,則使用如下命令: current_design TOP characterize U4 current_design Cset_dont_touchU3U4 :C 設圖問題的示意圖(2、Violation 最大的模塊的處characterize characterize 命令之后,DC4.3.2.7 綜的分析與綜合問題的解決方案report report Path type maxlibraryFFsetuptime5的工作情況,可能會出現 Hold time violation. 這時可用 set_fix_hold all_clocks,之后再compile來讓DCholdtime violation進行5的工作情況,可能會出現 Hold time violation. 這時可用 set_fix_hold all_clocks,之后再compile來讓DCholdtime violation進行6slack slack;如果 slack 比較大,通過綜

溫馨提示

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

評論

0/150

提交評論