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

下載本文檔

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

文檔簡(jiǎn)介

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

2、,對(duì)HDL進(jìn)行映射,這個(gè)模型是與技術(shù)庫(kù)無(wú)關(guān)的;然后,在設(shè)計(jì)者的控制下,對(duì)這個(gè)模型進(jìn)行邏輯優(yōu)化;最后一步,進(jìn)行邏輯映射和門級(jí)優(yōu)化,將邏輯根據(jù)約束,映射為專門的技術(shù)目標(biāo)單元庫(kù)(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è)計(jì)舉例,tap控制器,已完成代碼編寫(xiě)及功能仿真:nTap_controller.vnTap_bypass.vnTap_instru

4、ction.vnTap_state.vn完成全部設(shè)計(jì)還需經(jīng)過(guò)如下幾個(gè)步驟:nPre_layoutnSynthesisnSTA using PrimeTimenSDF generationnVerificationnFloorolanning and RoutingnPost_layoutn反標(biāo)來(lái)自layout tool的信息, STA using PrimeTimenPost-layout OptimizationnFix Hold-Time ViolationASIC design flow nInitial Setup :建立設(shè)計(jì)環(huán)境,技術(shù)庫(kù)文件及其它設(shè)計(jì)環(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è)計(jì)的門及實(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)時(shí)序分析引擎做block的STA,用PrimeTime做full_chip的STA。nSetup_time分析nHold_time分析 其時(shí)序約束和提供給DC做邏輯綜合的約束相同。靜態(tài)時(shí)序分析同綜合一樣,是一個(gè)迭代的過(guò)程,和cell的位置及布線關(guān)系密切,通常都執(zhí)行多次,直到滿足需要。ASIC design flownSDF generation,pre_layout的SDF文件,用于pre_layout timing仿真,同時(shí)還需提供時(shí)序約束文件(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)行動(dòng)態(tài)時(shí)序仿真:利用功能仿真時(shí)。用verilog 編寫(xiě)的test_bench 文件n形式驗(yàn)證:利用數(shù)學(xué)算法檢查設(shè)計(jì)的邏輯的等效性,靜態(tài)驗(yàn)證,需要的時(shí)間比動(dòng)態(tài)仿真少,驗(yàn)證全面。在這里

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

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

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

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

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

20、的變量,用于自動(dòng)化綜合的過(guò)程。如,可定義一個(gè)變量,存儲(chǔ)某個(gè)時(shí)鐘域的flop的個(gè)數(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,變量沒(méi)有移去之前,不得重新定義。注:變量值不會(huì)被保存在設(shè)計(jì)數(shù)據(jù)庫(kù)中。D

21、C支持的對(duì)象、變量、屬性屬性,DC用于存儲(chǔ)具體的設(shè)計(jì)對(duì)象,如:nets,cells,clocks的信息,一般來(lái)說(shuō),屬性都是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,用于不同工具間門級(jí)網(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è)計(jì)標(biāo)準(zhǔn)約束,分為兩類:ntarget libraries:在門級(jí)優(yōu)化及映射時(shí)

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

24、library(ex25)/* Library Group /*start of library*/ /*end of library*/一般,一個(gè)庫(kù)文件含有一個(gè)Library Group ,庫(kù)文件和Library 名相同。Synopsys technology librarynLibrary level attributes:定義技術(shù)庫(kù)的全局屬性,如:技術(shù)庫(kù)的類型(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時(shí)序模型(timing rang models)n操作條件(operation condition)n線性負(fù)載模型(wire-load models)n縮放因子(scaling factors 或K-factors):實(shí)際上是一個(gè)乘數(shù)因子,表示隨著PVT的變化,對(duì)設(shè)計(jì)延時(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時(shí)序模型(timing rang models):根據(jù)操作條件的變化,修正信號(hào)到達(dá)時(shí)間,如:Timing_range(BEST) faster_factor :0.5; slower_factor :1.3;Synopsys technology libraryn操作條件( operation condit

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

29、電容,電阻及面積。Synopsys 提供了幾種不同的wire-load models以對(duì)相應(yīng)的設(shè)計(jì)邏輯大小,它給出了net fanout 和net length 的統(tǒng)計(jì)關(guān)系。例如:Synopsys technology librarynCell description:描述cell的屬性,包括:輸入輸出pin、時(shí)序等,例如: 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屬性定義了庫(kù)中cell的操作條件,和制造廠家的工藝技術(shù)相關(guān),設(shè)計(jì)不能超出這些條件的規(guī)定。nCell 的DRC屬性可以用如下命令改動(dòng)dc_she

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

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

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

34、t transition,若driving cell有多個(gè)timing arc,則driven cell的延時(shí)計(jì)算會(huì)受影響。例如, U1有兩個(gè)output transition,對(duì)U2的延時(shí)計(jì)算如何選取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è)計(jì)易于管理,提高設(shè)計(jì)的重用性n獲得更好的綜合結(jié)果n簡(jiǎn)化約束和scripts,使綜合操作更容易;

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

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

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

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

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

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

41、Link_ library:該庫(kù)中的cells,DC無(wú)法進(jìn)行映射,例如:RAM,ROM及Pad,在RTL設(shè)計(jì)中,這些cells以實(shí)例化的方式引用。nSymbol_library:該庫(kù)文件包含技術(shù)庫(kù)中cells的圖形表示,用于DA生成門級(jí)示意圖。 Target_library和Link _library為設(shè)計(jì)者提供了將門級(jí)網(wǎng)表從一種技術(shù)在映射 到另一種技術(shù)的方法,將舊的Target library文件名包含在Link_library的文件清單中,而Target_library包含新的Target library文件名,利用translate命令實(shí)現(xiàn)。綜合環(huán)境建立n設(shè)計(jì)相關(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的操作手冊(cè)。邏輯綜合的過(guò)程nDC通過(guò)Script文件,自動(dòng)完成模塊的綜合過(guò)程,其內(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è)計(jì),n命令:read和analyze&elaborate,推薦用analyze&elaboratenanalyze&elaborate允許設(shè)計(jì)者在設(shè)計(jì)的GTECH建立之前,首先去分析設(shè)計(jì)的語(yǔ)法錯(cuò)誤和進(jìn)行HDL代碼轉(zhuǎn)換。 GTECH由“soft

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

46、設(shè)計(jì)預(yù)編譯 設(shè)計(jì)庫(kù)用-library選項(xiàng)定義設(shè)計(jì)庫(kù)名,存儲(chǔ)“.syn”文件用缺省的設(shè)置,不能存儲(chǔ)中間結(jié)果Generics(vhdl)可用不可用Architecture(vhdl)可用不可用Environment constraintsn功能:定義設(shè)計(jì)的工藝參數(shù),I/O端口屬性,統(tǒng)計(jì)wire-load模型。下圖解釋了描述設(shè)計(jì)環(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對(duì)設(shè)計(jì)的WORST和BEST條件,同時(shí)優(yōu)化。 Environment constraintsnSet_wire_load -mode 向DC提供wire_load信息,通常技術(shù)庫(kù)里包含許多負(fù)載模型,每一種wire-load模型都代表一定模塊的尺寸,模擬模塊內(nèi)部nets的delay,用戶也可以創(chuàng)建自己的wire_load模型去模擬各設(shè)計(jì)模塊的net loadin

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

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

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

52、capacitance set_max_fanout 這些約束用于的input ports,output ports或current_design,一般在技術(shù)庫(kù)內(nèi)部設(shè)置.當(dāng)技術(shù)庫(kù)的內(nèi)部設(shè)置不能滿足時(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è)計(jì)的目標(biāo),包括時(shí)序和面積約束,要注意約束必須是可實(shí)現(xiàn)的,否則會(huì)導(dǎo)致面積超額,功耗

53、增加或時(shí)序不能滿足要求。設(shè)計(jì)約束的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 主要包括兩點(diǎn)n約束綜合模塊的最大面積( set_max_area )n約束綜合模塊timing path(Create_clock, Set_input_delay,

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

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

56、ayout命令選項(xiàng)不一樣。-propagated選項(xiàng)讓DC計(jì)算時(shí)鐘的skew。 design and clock constraintsn例如:Set_clock_skew uncertainty 0.5 CLK design and clock constraintsnPre-layout時(shí)鐘DC 命令介紹: 估計(jì)時(shí)鐘樹(shù)的延時(shí)和抖動(dòng),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后時(shí)鐘網(wǎng)絡(luò)的變化可若下設(shè)置時(shí)鐘skew: set_clock_skew delay 2.5 minus_uncertainty 2.0 plus_uncertainty 0.2 CLK minus_uncertainty用于setup-time的計(jì)算, plus_uncertainty 用于hole-time的計(jì)算. 一個(gè)cell的delay使根據(jù)input signal的斜率和output pin的電容負(fù)載決定,對(duì)于時(shí)鐘信號(hào),因?yàn)閏lock network的fanout 很大,從而造成clock netw

58、ork 末端門的時(shí)鐘信號(hào)的clock transition time很慢,使DC計(jì)算的門延時(shí)失真。design and clock constraintsnpost-layout時(shí)鐘DC命令介紹: 這個(gè)階段,用戶不需定義時(shí)鐘的延時(shí)和抖動(dòng),他們由時(shí)鐘樹(shù)決定。 clock transition time也不需定義。如果layout 工具提供與DC的直接接口,則直接將包含有時(shí)鐘樹(shù)的網(wǎng)表回饋給DC,不需在script文件中對(duì)時(shí)鐘的延時(shí)和抖動(dòng)進(jìn)行描述,如果layout 工具不能實(shí)現(xiàn)此功能,則需用戶從layout 工具提取時(shí)鐘的延時(shí)和抖動(dòng)信息,描述命令同pre_layout.如果含有時(shí)鐘樹(shù)的網(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ú)法得到包含有時(shí)鐘樹(shù)的網(wǎng)表,只有SDF文件,則對(duì)原網(wǎng)表只需定義時(shí)鐘,并將SDF 文件回饋給原網(wǎng)表,時(shí)鐘的延時(shí)和抖動(dòng)由SDF文件決定。design and clo

60、ck constraintsn生成時(shí)鐘DC命令介紹: 對(duì)于內(nèi)部產(chǎn)生時(shí)鐘的模塊,如內(nèi)部含有分頻邏輯,DC不能模擬時(shí)鐘產(chǎn)生模塊創(chuàng)造一個(gè)時(shí)鐘對(duì)象。如下圖:DC創(chuàng)造時(shí)鐘命令應(yīng)用于頂層輸入CLK,因clkB 繼承自CLK,所以Block B的時(shí)鐘來(lái)自CLK,對(duì)clkA,因CLK被clk_div 內(nèi)部的寄存器隔離,不能傳遞給clkA,所以clkA 這個(gè)時(shí)鐘對(duì)象應(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論