synopsys-dc中文教程(比較詳細(xì))_第1頁
synopsys-dc中文教程(比較詳細(xì))_第2頁
synopsys-dc中文教程(比較詳細(xì))_第3頁
synopsys-dc中文教程(比較詳細(xì))_第4頁
synopsys-dc中文教程(比較詳細(xì))_第5頁
已閱讀5頁,還剩121頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、ADVANCED ASIC CHIP SYNTHESIS提綱n綜合的定義nASIC design flownSynopsys Design Compiler的介紹nSynopsys technology librarynLogic synthesis的過程nSynthesis 和 layout的接口LTLnPost_layout optimizationnSDF文件的生成綜合的定義n邏輯綜合:決定設(shè)計電路邏輯門的相互連接。n邏輯綜合的目的:決定電路門級結(jié)構(gòu)、尋求時序和與面積的平衡、尋求功耗與時序的平衡、增強電路的測試性。n邏輯綜合的過程:首先,綜合工具分析HDL代碼,用一種模型(GTECH)

2、,對HDL進(jìn)行映射,這個模型是與技術(shù)庫無關(guān)的;然后,在設(shè)計者的控制下,對這個模型進(jìn)行邏輯優(yōu)化;最后一步,進(jìn)行邏輯映射和門級優(yōu)化,將邏輯根據(jù)約束,映射為專門的技術(shù)目標(biāo)單元庫(target cell library)中的cell,形成了綜合后的網(wǎng)表。ASIC design flowVerified RTLDesignConstraintsIP and LibraryModelsLogic Synthesis optimization&scan insertionStatic Timing AnalysisFormal verification Floorplan placement,CT

3、Insertion&Global routingTransfer clock tree to DCPost global routeStatic Timing AnalysisDetail routingPost-layout Optimization(in-place optimization(IPO)Static Timing AnalysisTape outTime ok?Time ok?nonoTime ok?noASIC design flown設(shè)計舉例,tap控制器,已完成代碼編寫及功能仿真:nTap_controller.vnTap_bypass.vnTap_instru

4、ction.vnTap_state.vn完成全部設(shè)計還需經(jīng)過如下幾個步驟:nPre_layoutnSynthesisnSTA using PrimeTimenSDF generationnVerificationnFloorolanning and RoutingnPost_layoutn反標(biāo)來自layout tool的信息, STA using PrimeTimenPost-layout OptimizationnFix Hold-Time ViolationASIC design flow nInitial Setup :建立設(shè)計環(huán)境,技術(shù)庫文件及其它設(shè)計環(huán)境設(shè)置。 DC .synopsy

5、s_dc.setup 文件 company =“zte corporation”; designer =“name”; technology=“0.25 micron” search_path=search_path+“.” “/usr/golden/library/std_cells” “/usr/golden /library/pads” target_library =std_cells_lib.db link_library =“*”,std_cells_lib.db,pad_lib.db symbol_library =std_cells.sdb,pad_lib.sdbASIC de

6、sign flownSynthesis:利用約束完成設(shè)計的門及實現(xiàn)及掃描插入nConstrain scripts /* Create real clock if clock port is found */ if (find(port, clk) = clk) clk_name = clk create_clock -period clk_period clk /* Create virtual clock if clock port is not found */ if (find(port, clk) = ) clk_name = vclk create_clock -period clk

7、_period -name vclkASIC design flownConstrain scripts(續(xù)) /* Apply default drive strengths and typical loads for I/O ports */ set_load 1.5 all_outputs() set_driving_cell -cell IV all_inputs() /* If real clock, set infinite drive strength */ if (find(port, clk) = clk) set_drive 0 clk /* Apply default t

8、iming constraints for modules */ set_input_delay 1.2 all_inputs() -clock clk_name set_output_delay 1.5 all_outputs() -clock clk_name set_clock_skew -minus_uncertainty 0.45 clk_name /* Set operating conditions */ set_operating_conditions WCCOM /* Turn on Auto Wireload selection Library must support t

9、his feature */ auto_wire_load_selection = trueASIC design flownCompile and scan insert的scripts,采用bottom_up的編譯方法 set_fix_multiple_port_net buffer_constants all compile scan check_test create_test_pattern sample 10 preview_scan insert_scan check_test 如果模塊內(nèi)的子模塊具有dont_touch 屬性需添加如下命令,因要插入掃描 remove_attri

10、bute find(-hierarchy design,”*”)dont_touchnWrite netlist remove_unconnected_ports find(-hierarchy cell,”*”) change_names hierarchy rules BORG set_dont_touch current_design write herarchy output active_design+”.db” write format verilog hierarchy output active_design+”.sv”ASIC design flownPre_layout 的

11、 STA :用DC的靜態(tài)時序分析引擎做block的STA,用PrimeTime做full_chip的STA。nSetup_time分析nHold_time分析 其時序約束和提供給DC做邏輯綜合的約束相同。靜態(tài)時序分析同綜合一樣,是一個迭代的過程,和cell的位置及布線關(guān)系密切,通常都執(zhí)行多次,直到滿足需要。ASIC design flownSDF generation,pre_layout的SDF文件,用于pre_layout timing仿真,同時還需提供時序約束文件(SDF格式)給layout tool做布局布線。script文件如下: active_design=tap_controll

12、er read active_design current_design active_design link Create_clock period 33 waveform 0 16.5 tck Set_dont_touch_network tck trst set_clock_skew delay 2.0 minus_uncertainty 3.0 tck set_driving_cell cell BUFF1X pin Z all_inputs() set_drive 0 tck trst set_input_delay 20.0 clock tck max all_inputs() s

13、et_output_delay 10.0 clock tck max all_outputs() write_timing format sdf-v2.1 -output active_design+”.sdf” write_constraints format sdf cover_design -output constraints.sdfASIC design flownVerificationn利用SDF文件進(jìn)行動態(tài)時序仿真:利用功能仿真時。用verilog 編寫的test_bench 文件n形式驗證:利用數(shù)學(xué)算法檢查設(shè)計的邏輯的等效性,靜態(tài)驗證,需要的時間比動態(tài)仿真少,驗證全面。在這里

14、驗證RTL描述與gate_level網(wǎng)表的邏輯等效性。nFloorolanning and global Routing;nEstimated 寄生電容和RC delay的抽取;n利用抽取的參數(shù)靜態(tài)時序分析,若時序不滿足要求,生成custom wire_load 做incremental synthesis即post_layout的優(yōu)化,采用reoptimize_design in_place命令,其script文件需反標(biāo)抽取的參數(shù)到設(shè)計; nDetail routing;nreal寄生電容和RC delay的抽??;n利用抽取的參數(shù)靜態(tài)時序分析,修正hold_time如需要做post_layo

15、ut的優(yōu)化;n生成post_layout的SDF文件,做gate_level仿真驗證;ASIC design flownECOnEngineering change order,不屬于正常的ASIC流程,一般只有在ASIC設(shè)計的后期,需要改變網(wǎng)表,可利用ECO,例如,在tape-out(sign-off)以后,遇見設(shè)計的硬件bug。采用ECO可僅對設(shè)計的一小部分重新布線不影響chip其他部分的位置及時序,通常,修改不能大于10%。n最新版本的DC提供由ECO compiler, 可使設(shè)計者手工修改網(wǎng)表,節(jié)省時間。n一些layout工具也具有ECO功能。DC介紹nSynopsys Design

16、Compiler,是一個基于UNIX系統(tǒng),通過命令行進(jìn)行交互的綜合工具,除了綜合之外,它還含有一個靜態(tài)時序分析引擎及FPGA和LTL(links-to-layout)的解決方案。我們就以下幾個方面對DC做以介紹:nscript文件:由DC的命令構(gòu)成,可使DC自動完成綜合的整個過程。nDC支持的對象、變量、屬性nDC支持的文件格式及類型nDC在HDL代碼中的編譯開關(guān),控制綜合過程nTranslate_off/translate_on:指示DC終止或開始verilog 源代碼轉(zhuǎn)換的位置。nfull_case:阻止case語句在不完全條件下生成latch。Script 文件nScript 文件nSc

17、ript 文件的構(gòu)成nDC綜合環(huán)境設(shè)置(.synopsys_dc.setup);n屬性和約束信息;n綜合命令(read,compile);n控制流命令; Conditional: Looping:if (expr) foreach(variable, list )dc_shell commands dc_shell commands else dc_shell commands while( expr) dc_shell commands nScript 文件的檢查:DC提供syntax and context checkers來檢查Script文件的錯誤DC支持的對象、變量、屬性n對象,DC

18、將設(shè)計對象分為8類,分別如下:nDesign:具有某種或多種邏輯功能的電路描述;nCell:設(shè)計的instance;nReference:cell或instance在庫中定義的名字;nPort:design的輸入、輸出;nPin:design中cell的輸入、輸出;nNet:ports和pins之間或pins之間的信號名;nClock:被定義為時鐘源的pin或port;nLibrary:cell的集合,如:target_library,link_library;DC支持的對象、變量、屬性n例如:DC支持的對象、變量、屬性n對象的查找命令格式 find -hierarchy type:DC支持的

19、所有對象; name list:設(shè)計對象或庫對象的清單; -hierarchy:用于在設(shè)計的各層次尋找的對象; 該命令的返回值為List,list:一種字符串類型,例如:mylist=el1 el2 el3 例如: DC支持的對象、變量、屬性變量,一種標(biāo)識符,DC用于存儲信息,可做為命令的操作參數(shù)。DC預(yù)定義的變量,可用它獲得綜合過程中的有關(guān)信息,如dc_shell_status; DC預(yù)定義的變量總有一個缺省值,用戶可定義另外的值,如; dc_shellvhdlout_use_package=library IEEE.std_logic_1164; library STD_LIB; 用戶定義

20、的變量,用于自動化綜合的過程。如,可定義一個變量,存儲某個時鐘域的flop的個數(shù)。定義變量:dc_shelldesigner=“myname”;獲得UNIX的環(huán)境變量: dc_shelldesigner=get_unix_variable(“USER”)顯示變量的值: dc_shellList target_library target_library=“cbacore.db”列出所有的變量: dc_shellList variable all移去變量: dc_shell remove_ variable designer,變量沒有移去之前,不得重新定義。注:變量值不會被保存在設(shè)計數(shù)據(jù)庫中。D

21、C支持的對象、變量、屬性屬性,DC用于存儲具體的設(shè)計對象,如:nets,cells,clocks的信息,一般來說,屬性都是DC預(yù)定義,命令如下: set_attribute get_attribute dc_shellget_attribute STD_LIB default_max_transitionDC的文件格式及類型nDC支持的文件格式n*.db文件,DC的內(nèi)部文件格式nVerilog文件nVHDLnEDIF:electronic design interchange format,用于不同工具間門級網(wǎng)表的移植nDC的文件類型nScript files .scr nRTL verilo

22、g file .v nRTL VHDL file .vhdnSynthesized VHDL netlist .svhd nEDIF file .edfnSynthesized verilog netlist .sv nSynopsys database file .db nreport . rptnLog files .logSynopsys technology librarynSynopsys technology library technology library由半導(dǎo)體制造商提供,定義cell的相關(guān)信息及設(shè)計標(biāo)準(zhǔn)約束,分為兩類:ntarget libraries:在門級優(yōu)化及映射時

23、,提供生成網(wǎng)表的cell;nlink libraries:提供設(shè)計網(wǎng)表中可引用的cell,DC不利用link libraries的cell做綜合; Synopsys technology library結(jié)構(gòu)組織可看作實際上的技術(shù)庫標(biāo)準(zhǔn),它是一個文本文件(擴展名“.lib”),在使用之前,需被LC編譯,產(chǎn)生一個“.db”文件,其構(gòu)成如下:nLibrary Group;nLibrary level attributes;nEnvironment description;nCell description;Synopsys technology librarynLibrary Group:定義庫名

24、library(ex25)/* Library Group /*start of library*/ /*end of library*/一般,一個庫文件含有一個Library Group ,庫文件和Library 名相同。Synopsys technology librarynLibrary level attributes:定義技術(shù)庫的全局屬性,如:技術(shù)庫的類型(CMOS/TTL)、日期、版本及缺省值,例如: library (ex25) technology(cmos); delay_model :table_lookup; date :”feb 29,2000”; revision :

25、”1.0”; current_unit :”1A”; time_unit :”1ns”; voltage_unit :”1V”; pulling_resistance_unit :”1kohm”; capacitive_load_unit(1.0 pf); default_inout_pin_cap :1.5; default_input_pin_cap :1.0; default_output_pin_cap :0.0; default_max_fanout :10.0; default_max_transition :10.0; default_operating_condition :N

26、OMINAL; in_place_swap_mode :match_footprint; Synopsys technology librarynEnvironment description:主要包括:n縮放因子(scaling factors)n時序模型(timing rang models)n操作條件(operation condition)n線性負(fù)載模型(wire-load models)n縮放因子(scaling factors 或K-factors):實際上是一個乘數(shù)因子,表示隨著PVT的變化,對設(shè)計延時的修正。例如:K_process_fall_transition :1.0;K

27、_process_rise_transition :1.2;K_temp_fall_transition :0.03;K_temp_rise_transition :0.04;K_volt_fall_transition :0.02;K_volt_rise_transition :0.5;n時序模型(timing rang models):根據(jù)操作條件的變化,修正信號到達(dá)時間,如:Timing_range(BEST) faster_factor :0.5; slower_factor :1.3;Synopsys technology libraryn操作條件( operation condit

28、ion):定義了PVT和RC樹模型。nDC根據(jù)操作條件縮放cell和net的delay; Synopsys technology libraryntree_type:定義時序計算時內(nèi)部連結(jié)的電阻、電容值的分配,有worst_case_tree, balance_tree, best_case_tree,三種類型可貢選擇。我們利用Dc來表示driver pin和driven cell的input pin的內(nèi)連延時,則它們的wire_load分別對因如下:Synopsys technology libraryn線性負(fù)載模型(wire-load models):估計pre_layout電路中net的

29、電容,電阻及面積。Synopsys 提供了幾種不同的wire-load models以對相應(yīng)的設(shè)計邏輯大小,它給出了net fanout 和net length 的統(tǒng)計關(guān)系。例如:Synopsys technology librarynCell description:描述cell的屬性,包括:輸入輸出pin、時序等,例如: cell(BUFFD0) area:5.0; pin(Z) max_capacitive:2.2; max_fanout:4; function:”I”; direction:output; timing() related_pin: “I”; pin(I) direct

30、ion:input; capacitive:0.04; fanout_load:2.0; max_transition:1.5; Synopsys technology librarynCell各pin相關(guān)的DRC屬性nInput pin的fanout_loadnOutput pin的max_fanoutnInput or output pin 的max_transitionnInput or output pin的max_capacitance DRC屬性定義了庫中cell的操作條件,和制造廠家的工藝技術(shù)相關(guān),設(shè)計不能超出這些條件的規(guī)定。nCell 的DRC屬性可以用如下命令改動dc_she

31、ll set_attribute find(pin,ex25/BUFFD0/Z) max_fanout 2.0n時序cell通過將clock input pin的“clock”屬性設(shè)置為true定義input pin為時鐘。Synopsys technology librarynGood libraryn所有的cell都有各種各樣的驅(qū)動強度;nBuffer和inverters的驅(qū)動強度變化范圍大;nCell的rise和fall的delay較均衡;n一個物理cell含有相同邏輯功能,但相位相反輸出隔離,如:OR,NOR;n兩個物理cells,有相同邏輯功能,但相位相反如:AND,NAND;n擁有

32、各種高驅(qū)動強度的帶有一個輸入inverters復(fù)雜cells(AIO,OAI);n擁有各種高驅(qū)動強度的高扇入的cells;n擁有各種驅(qū)動強度的,正沿負(fù)沿觸發(fā)的flip_flop;n擁有各種輸出驅(qū)動強度的flip_flop;n擁有各種不同的set,reset組合的Flop;n擁有各種驅(qū)動強度的,正沿負(fù)沿觸發(fā)的latch;n擁有delay cell;Synopsys technology librarynSynopsys 支持如下集中延時模型:nCMOS通用延時模型;nCMOS線性延時模型;nCMOS非線性查找表模型;n前兩種模型已不常用,我們現(xiàn)在采用非線性延時模型(non-linear dela

33、y model)計算cell的延時。所謂NLDM,是一個二維查找表,根據(jù)一個cell的input transition 和output loading 查找cell的delay和output transition ,一般每一個cell都有兩個表,一個用于cell delay,另一個用于output transition 。對于input transition 和output loading 沒有在表中列出的cell,可用插入法計算得到。nCell的延時由input transition和output loading決定,但input transition就是driving cell的outpu

34、t transition,若driving cell有多個timing arc,則driven cell的延時計算會受影響。例如, U1有兩個output transition,對U2的延時計算如何選取input transition?我們可采用set_disable_timing U1 from A to Z,避免DC采用A to Z的timing arc.reseta2ns0.3nsZZAffected gateU2U1 A BPartitioning for synthesisn劃分的目的n使設(shè)計易于管理,提高設(shè)計的重用性n獲得更好的綜合結(jié)果n簡化約束和scripts,使綜合操作更容易;

35、n提高編譯速度n劃分應(yīng)綜合考慮以下幾個方面n邏輯的功能n設(shè)計的目標(biāo)n編譯的技術(shù)n下面就以下幾個方面做簡單介紹n劃分的方法n劃分的原則nRTL編碼指南Partitioning for synthesisn劃分的方法n在編寫HDL代碼之前,根據(jù)功能做初步劃分;nDC可在綜合和對劃分進(jìn)行修改;n在DC中改變劃分的命令:group,ungroup Group:將指定的實例組合為一個模塊,生成新的層次劃分; Ungroup:移去以前的模塊劃分。在執(zhí)行g(shù)roup和ungroup命令之前,包含實例的設(shè)計模塊需設(shè)置,命令如下: dc_shellcurrent_design topU0U1U2topU0U1U2

36、sub1topGroup U1 U2 design_name sub1 Ungroup -allPartitioning for synthesisn劃分遵循的原則:n相關(guān)的組合邏輯在一個模塊內(nèi);n設(shè)計可重用性;n根據(jù)功能劃分模塊;n結(jié)構(gòu)邏輯 和隨機邏輯分開;n一個合理的尺寸(最大10K門);n在頂層分為I/Opads,DFT,clock,core logic;n在頂層不要加粘合邏輯;n狀態(tài)機和別的邏輯分開;n在一個block中不要有多個時鐘;n用于時鐘同步的塊要隔離;n劃分時,應(yīng)考慮Layout;n與技術(shù)庫相關(guān)的實例化的cell應(yīng)在單獨模塊內(nèi); Partitioning for synthe

37、sisn編碼指南 RTL級的HDL描述實際是電路結(jié)構(gòu)的文本描述,它是技術(shù)無關(guān)的,類似于網(wǎng)表。HDL語言先于綜合工具出現(xiàn),綜合工具只能根據(jù)HDL代碼進(jìn)行邏輯推斷,對完成同一功能而書寫方式不同的HDL代碼,綜合工具會產(chǎn)生不同邏輯電路。所以不能依靠DC去修正不符合規(guī)范的代碼。寫代碼時,需清楚描述的硬件電路拓?fù)浣Y(jié)構(gòu)。nRTL描述內(nèi)容如下:n寄存器的結(jié)構(gòu);n電路的拓?fù)洌籲寄存器之間的功能;nDC僅對寄存器之間的邏輯進(jìn)行優(yōu)化,不會對寄存器的排列進(jìn)行優(yōu)化。 Partitioning for synthesisn編碼指南nHDL代碼的編寫應(yīng)注意技術(shù)獨立性,盡量減少引用在某些庫中定義門的hard_coded。若

38、必須引用,將這些引用門放在一個單獨的模塊內(nèi)。nClock 邏輯nClock邏輯及reset生成應(yīng)放在一個模塊中,便于綜合時對時鐘約束的定義;nClock命名在設(shè)計的各層次應(yīng)保持一致性;n在一個模塊內(nèi)不要由多個時鐘;n對于時鐘源的mux,用于測試時控制時鐘,最好人為實例化,便于set_disable_timing的使用;n在top level不要有粘和邏輯;n一個文件僅包含一個模塊,模塊名與文件名相同;nI/O pad應(yīng)為單獨的模塊;n最小化不必要的層次,過多的層次會降低電路的性能,因DC邏輯優(yōu)化不能跨越模塊的層次;n所有模塊的輸出直接來自寄存器的輸出;n狀態(tài)機n對verilog,State命名

39、使用“parameters” ;n組合邏輯和時序邏輯分開;綜合環(huán)境建立n在綜合之前必須用setup文件配置綜合的環(huán)境,下面,我們就以下幾個方面對setup文件進(jìn)行介紹:nsetup文件的位置nsetup文件的內(nèi)容nsetup文件舉例綜合環(huán)境建立nsetup文件的位置: 由一個setup文件提供,文件名必須為“.synopsys_dc.setup”,通過向相關(guān)環(huán)境變量賦值,定義技術(shù)庫的位置及綜合需要參數(shù)。nsetup文件的位置如下:nSynopsys installation directory:它用于卸載Synopsys 技術(shù)獨立庫及別的參數(shù),不包含設(shè)計相關(guān)的數(shù)據(jù)。nUsers home di

40、rector:用的setup信息。nProject working directory:設(shè)計的setup信息 DC按以上順序依次讀取setup文件,最后一個讀取的setup文件將覆蓋前面讀取的setup文件。n將設(shè)計相關(guān)的startup文件放于Project working directory下。 綜合環(huán)境建立nStartup文件必須定義如下變量:nSearch_path:指明庫文件的位置nTarget_library:既技術(shù)庫,由生產(chǎn)廠家提供,該庫中的cells,被 DC用于邏輯映射。 Target library的文件名應(yīng)包含在Link library的文件清單中,用于DC讀取門級網(wǎng)表。n

41、Link_ library:該庫中的cells,DC無法進(jìn)行映射,例如:RAM,ROM及Pad,在RTL設(shè)計中,這些cells以實例化的方式引用。nSymbol_library:該庫文件包含技術(shù)庫中cells的圖形表示,用于DA生成門級示意圖。 Target_library和Link _library為設(shè)計者提供了將門級網(wǎng)表從一種技術(shù)在映射 到另一種技術(shù)的方法,將舊的Target library文件名包含在Link_library的文件清單中,而Target_library包含新的Target library文件名,利用translate命令實現(xiàn)。綜合環(huán)境建立n設(shè)計相關(guān)的startup 文件的

42、例子: .synopsys_dc.setup 文件 company =“zte corporation”; designer =“name”; technology=“0.25 micron” search_path=search_path+“.” “/usr/golden/library/std_cells” “/usr/golden /library/pads” target_library =std_cells_lib.db link_library =“*”,std_cells_lib.db,pad_lib.db symbol_library =std_cells.sdb,pad_li

43、b.sdb 其它的環(huán)境變量的設(shè)置參看DC的操作手冊。邏輯綜合的過程nDC通過Script文件,自動完成模塊的綜合過程,其內(nèi)容如下:nRTL design entrynEnvironment constraintsnDesign and clock constraintsnCompile design into mapped gatesnOptimizing designnanalyze the synthesis results and debug potential problems. nSave design netlistnReport constraints n(Optional) A

44、pply critical path constraints n(Optional) Second compile to improve critical paths n(Optional) Second path compile constraint report RTL design Entryn功能:向DC輸入HDL描述的設(shè)計,n命令:read和analyze&elaborate,推薦用analyze&elaboratenanalyze&elaborate允許設(shè)計者在設(shè)計的GTECH建立之前,首先去分析設(shè)計的語法錯誤和進(jìn)行HDL代碼轉(zhuǎn)換。 GTECH由“soft

45、macros” such as adders, comparators等組成,這些組件來自synopsys 的synthetic lib,每種組件具有多種結(jié)構(gòu)。 Analyze做語法的檢查并產(chǎn)生一個“.syn”文件,存儲于work路徑下的定義的設(shè)計庫內(nèi),可供后來elaborate使用。對于一個analyzed設(shè)備,只需用elaborate重新輸入,節(jié)省時間。Read就不行。以下是兩個命令的比較: 類別 analyze&elaborate read 格式 verilog 或VHDLverilog 、VHDL、EDIF、db等所有格式 用途綜合verilog 或VHDL的RTL設(shè)計讀網(wǎng)表,

46、設(shè)計預(yù)編譯 設(shè)計庫用-library選項定義設(shè)計庫名,存儲“.syn”文件用缺省的設(shè)置,不能存儲中間結(jié)果Generics(vhdl)可用不可用Architecture(vhdl)可用不可用Environment constraintsn功能:定義設(shè)計的工藝參數(shù),I/O端口屬性,統(tǒng)計wire-load模型。下圖解釋了描述設(shè)計環(huán)境約束的DC命令:set_max_capacitance set_max_transition &set_max_fanout on input &output ports or current_design; Block BClockDividerLogi

47、cBlock Aset_load on output set_operating_conditions on the whole designclkset_drive on Clock set_driving_cell on input signals set_load on inputs set_wire_load for each block,including top level Top levelEnvironment constraintsnSet_operating_conditions 用于描述操作條件:process,voltage,temperature, cell和wire

48、 的delay和操作條件呈線性關(guān)系。如: Set_operating_conditions WORST(或TYPICAL、BEST) 命令set_operating_conditions min BEST max WORST 用于指示DC對設(shè)計的WORST和BEST條件,同時優(yōu)化。 Environment constraintsnSet_wire_load -mode 向DC提供wire_load信息,通常技術(shù)庫里包含許多負(fù)載模型,每一種wire-load模型都代表一定模塊的尺寸,模擬模塊內(nèi)部nets的delay,用戶也可以創(chuàng)建自己的wire_load模型去模擬各設(shè)計模塊的net loadin

49、g。這有三種wire-load mode:top,enclosed,segmented,用于模擬各設(shè)計層次的net wire_load的關(guān)系。nTop:所有層次子模塊的wire_load和top-level相同,如果用戶計劃flatten設(shè)計去layout可選擇此模式編譯子模塊;nEnclosed:子模塊net的wire_load和enclosed 它的最小模塊相同,推薦用于在layout后logical and physical hierarchy相似的設(shè)計;nSegmented:子模塊之間net的wire_load和enclosed該net的模塊相同,需技術(shù)庫提供Segmented wir

50、e_load,一般不常用; wire_load模型的選擇很重要,太悲觀或太樂觀的模型都將產(chǎn)生綜合的迭帶,在 pre-layout的綜合中應(yīng)選用悲觀的模型。命令格式如下: dc_shellset_wire_load MEDIUM mode topEnvironment constraintsEnvironment constraints nSet_load 定義nets或ports的電容負(fù)載,為了保證輸出路徑的時序,例如: Environment constraintsnSet_drive :主要用于模塊的input port,0表是最大的驅(qū)動強度通常用于clock port,例如:set_dr

51、ive 0 CLK RST。 set_driving_cell -cell -pin :模擬input port驅(qū)動cell的驅(qū)動阻抗,為了保證輸出路徑的時序,確定輸入信號的transition time例如: Environment constraintsnSet_min_library -min_version 允許用戶同時設(shè)置worst-case和best-case libraries,從而在初步編譯時,DC修正hold-time沖突時,驗證setup-time沖突。也可用于在編譯時修正hold-time沖突。nDRC的設(shè)計規(guī)則約束:set_max_transition set_max_

52、capacitance set_max_fanout 這些約束用于的input ports,output ports或current_design,一般在技術(shù)庫內(nèi)部設(shè)置.當(dāng)技術(shù)庫的內(nèi)部設(shè)置不能滿足時,可用以上命令設(shè)置。例如; set_max_transition 0.3 current_design set_max_capacitance 1.5 find(port,”out1”) set_max_fanout 3.0 all_outputs()design and clock constraintsn功能:描述設(shè)計的目標(biāo),包括時序和面積約束,要注意約束必須是可實現(xiàn)的,否則會導(dǎo)致面積超額,功耗

53、增加或時序不能滿足要求。設(shè)計約束的DC命令如下:set_output_delay on output Block BClockDividerLogicBlock AclkCreate_clock& set_clock_skewset_input_delay on input signals set_max_area for each block,Top leveldesign and clock constraintsn 主要包括兩點n約束綜合模塊的最大面積( set_max_area )n約束綜合模塊timing path(Create_clock, Set_input_delay,

54、 Set_output_delay) design and clock constraintsn時鐘描述 時鐘的描述在設(shè)計中很關(guān)鍵,傳統(tǒng)上,在clock source 加很大的buffer去驅(qū)動整個時鐘網(wǎng)絡(luò),布線時,使時鐘網(wǎng)絡(luò)成魚骨狀,用于減少時鐘網(wǎng)絡(luò)延時和clock_skew。對于VDSM,傳統(tǒng)的方法已不適用,而是由layout工具根據(jù)cell的位置綜合時鐘樹,以滿足我們對時鐘的需求。下面,我們介紹一下描述時鐘的DC命令。n時鐘DC命令介紹nCreate_clock:用于定義時鐘的周期和波形(duty及起始沿); 例如:create_clock period 40 waveform0 20

55、CLK周期40ns 上升沿0 ns,下降沿20 ns; 對于僅包含組合邏輯的模塊,為了定義該模塊的延時約束,需創(chuàng)造一個虛擬時鐘定義相對于虛擬時鐘的輸入輸出延時。例如: create_clock -name vTEMP_CLK -period 20nSet_clock_transition:在pre_layout必須設(shè)置一個固定的transition值(由技術(shù)庫提供),因為時鐘網(wǎng)有很大的fanout.這樣可使DC根據(jù)該時鐘計算實際的延時值。 design and clock constraintsnSet_clock_skew:設(shè)置時鐘的skew及delay,pre_layout 和post_l

56、ayout命令選項不一樣。-propagated選項讓DC計算時鐘的skew。 design and clock constraintsn例如:Set_clock_skew uncertainty 0.5 CLK design and clock constraintsnPre-layout時鐘DC 命令介紹: 估計時鐘樹的延時和抖動,DC命令如下: create_clock period 40 waveform 0 20 CLK Set_clock_skew delay 2.5 uncertainty 0.5 CLK Set_clock_transition 0.2 CLK set_dont

57、_touch_network CLK set_drive 0 CLK 考慮到layout后時鐘網(wǎng)絡(luò)的變化可若下設(shè)置時鐘skew: set_clock_skew delay 2.5 minus_uncertainty 2.0 plus_uncertainty 0.2 CLK minus_uncertainty用于setup-time的計算, plus_uncertainty 用于hole-time的計算. 一個cell的delay使根據(jù)input signal的斜率和output pin的電容負(fù)載決定,對于時鐘信號,因為clock network的fanout 很大,從而造成clock netw

58、ork 末端門的時鐘信號的clock transition time很慢,使DC計算的門延時失真。design and clock constraintsnpost-layout時鐘DC命令介紹: 這個階段,用戶不需定義時鐘的延時和抖動,他們由時鐘樹決定。 clock transition time也不需定義。如果layout 工具提供與DC的直接接口,則直接將包含有時鐘樹的網(wǎng)表回饋給DC,不需在script文件中對時鐘的延時和抖動進(jìn)行描述,如果layout 工具不能實現(xiàn)此功能,則需用戶從layout 工具提取時鐘的延時和抖動信息,描述命令同pre_layout.如果含有時鐘樹的網(wǎng)表能夠移植到

59、DC,則clock的命令描述如下: create_clock period 40 waveform 0 20 CLK set_clock_skew propagated minus_uncertainty 2.0 plus_uncertainty 0.2 CLK set_dont_touch_network CLK set_drive 0 CLK 另外,很小的clock uncertainty定義的目的是考慮process的變化。 如果無法得到包含有時鐘樹的網(wǎng)表,只有SDF文件,則對原網(wǎng)表只需定義時鐘,并將SDF 文件回饋給原網(wǎng)表,時鐘的延時和抖動由SDF文件決定。design and clo

60、ck constraintsn生成時鐘DC命令介紹: 對于內(nèi)部產(chǎn)生時鐘的模塊,如內(nèi)部含有分頻邏輯,DC不能模擬時鐘產(chǎn)生模塊創(chuàng)造一個時鐘對象。如下圖:DC創(chuàng)造時鐘命令應(yīng)用于頂層輸入CLK,因clkB 繼承自CLK,所以Block B的時鐘來自CLK,對clkA,因CLK被clk_div 內(nèi)部的寄存器隔離,不能傳遞給clkA,所以clkA 這個時鐘對象應(yīng)在clk _div的output port定義,命令如下: dc_shellcreate_clock period 40 waveform 0 20 CLK dc_shellcreate_clock period 80 waveform 0 40 find(port,”clk_div/clkA”) Clk_div

溫馨提示

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

評論

0/150

提交評論