您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > -synopsys-dc中文教程(比较详细)
ADVANCEDASICCHIPSYNTHESIS提纲综合的定义ASICdesignflowSynopsysDesignCompiler的介绍SynopsystechnologylibraryLogicsynthesis的过程Synthesis和layout的接口——LTLPost_layoutoptimizationSDF文件的生成综合的定义逻辑综合:决定设计电路逻辑门的相互连接。逻辑综合的目的:决定电路门级结构、寻求时序和与面积的平衡、寻求功耗与时序的平衡、增强电路的测试性。逻辑综合的过程:首先,综合工具分析HDL代码,用一种模型(GTECH),对HDL进行映射,这个模型是与技术库无关的;然后,在设计者的控制下,对这个模型进行逻辑优化;最后一步,进行逻辑映射和门级优化,将逻辑根据约束,映射为专门的技术目标单元库(targetcelllibrary)中的cell,形成了综合后的网表。ASICdesignflowVerifiedRTLDesignConstraintsIPandLibraryModelsLogicSynthesisoptimization&scaninsertionStaticTimingAnalysisFormalverificationFloorplanplacement,CTInsertion&GlobalroutingTransferclocktreetoDCPostglobalrouteStaticTimingAnalysisDetailroutingPost-layoutOptimization(in-placeoptimization(IPO))StaticTimingAnalysisTapeoutTimeok?Timeok?nonoTimeok?noASICdesignflow设计举例,tap控制器,已完成代码编写及功能仿真:Tap_controller.vTap_bypass.vTap_instruction.vTap_state.v完成全部设计还需经过如下几个步骤:Pre_layoutSynthesisSTAusingPrimeTimeSDFgenerationVerificationFloorolanningandRoutingPost_layout反标来自layouttool的信息,STAusingPrimeTimePost-layoutOptimizationFixHold-TimeViolationASICdesignflowInitialSetup:建立设计环境,技术库文件及其它设计环境设置。DC.synopsys_dc.setup文件company=“ztecorporation”;designer=“name”;technology=“0.25micron”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.sdb}ASICdesignflowSynthesis:利用约束完成设计的门及实现及扫描插入Constrainscripts/*Createrealclockifclockportisfound*/if(find(port,clk)=={clk}){clk_name=clkcreate_clock-periodclk_periodclk}/*Createvirtualclockifclockportisnotfound*/if(find(port,clk)=={}){clk_name=vclkcreate_clock-periodclk_period-namevclk}ASICdesignflowConstrainscripts(续)/*ApplydefaultdrivestrengthsandtypicalloadsforI/Oports*/set_load1.5all_outputs()set_driving_cell-cellIVall_inputs()/*Ifrealclock,setinfinitedrivestrength*/if(find(port,clk)=={clk}){set_drive0clk}/*Applydefaulttimingconstraintsformodules*/set_input_delay1.2all_inputs()-clockclk_nameset_output_delay1.5all_outputs()-clockclk_nameset_clock_skew-minus_uncertainty0.45clk_name/*Setoperatingconditions*/set_operating_conditionsWCCOM/*TurnonAutoWireloadselectionLibrarymustsupportthisfeature*/auto_wire_load_selection=trueASICdesignflowCompileandscaninsert的scripts,采用bottom_up的编译方法set_fix_multiple_port_net–buffer_constants–allcompile–scancheck_testcreate_test_pattern–sample10preview_scaninsert_scancheck_test如果模块内的子模块具有dont_touch属性需添加如下命令,因要插入扫描remove_attributefind(-hierarchydesign,”*”)dont_touchWritenetlistremove_unconnected_portsfind(-hierarchycell,”*”)change_names–hierarchy–rulesBORGset_dont_touchcurrent_designwrite–herarchy–outputactive_design+”.db”write–formatverilog–hierarchy–outputactive_design+”.sv”ASICdesignflowPre_layout的STA:用DC的静态时序分析引擎做block的STA,用PrimeTime做full_chip的STA。Setup_time分析Hold_time分析其时序约束和提供给DC做逻辑综合的约束相同。静态时序分析同综合一样,是一个迭代的过程,和cell的位置及布线关系密切,通常都执行多次,直到满足需要。ASICdesignflowSDFgeneration,pre_layout的SDF文件,用于pre_layouttiming仿真,同时还需提供时序约束文件(SDF格式)给layouttool做布局布线。script文件如下:active_design=tap_controllerreadactive_designcurrent_designactive_designlinkCreate_clock–period33–waveform{016.5}tckSet_dont_touch_network{tcktrst}set_clock_skew–delay2.0–minus_uncertainty3.0tckset_driving_cell–cellBUFF1X–pinZall_inputs()set_drive0{tcktrst}set_input_delay20.0–clocktck–maxall_inputs()set_output_delay10.0–clocktck–maxall_outputs()write_timing–formatsdf-v2.1\-outputactive_design+”.sdf”write_constraints–formatsdf–cover_design\-outputconstraints.sdfASICdesignflowVerification利用SDF文件进行动态时序仿真:利用功能仿真时。用verilog编写的test_bench文件形式验证:利用数学算法检查设计的逻辑的等效性,静态验证,需要的时间比动态仿真少,验证全面。在这里验证RTL描述与gate_level网表的逻辑等效性。FloorolanningandglobalRouting;Estimated寄生电容和RCdelay的抽取;利用抽取的参数静态时序分析,若时序不满足要求,生成customwire_load做incrementalsynthesis即post_layout的优化,采用reoptimize_design–in_place命令,其script文件需反标抽取的参数到设计;Detailrouting;real寄生电容和RCdelay的抽取;利用抽取的参数静态时序分析,修正hold_time如需要做post_layout的优化;生成post_layout的SDF文件,做gate_level仿真验证;ASICdesignflowECOEngineeringchangeorder,不属于正常的ASIC流程,一般只有在ASIC设计的后期,需要改变网表,可利用ECO,例如,在tape-out(sign-off)以后,遇见设计的硬件bug。采用ECO可仅对设计的一小部分重新布线不影响chip其他部分的位置及时序,通常,修改不能大于10%。最新版本的DC提供由ECOcompiler,可使设计者手工修改网表,节省时间。一些layout工具也具有ECO功能。DC介绍SynopsysDesignCompiler,是一个基于UNIX系统,通过命令行进行交互的综合工具,除了综合之外,它还含有一个静态时序分析引擎及FPGA和LTL(links-to-layout)的解决方案。我们就以下几个方面对DC做以介绍:script文件:由DC的命令构成,可使DC自动完成综合的整个过程。DC支持的对象、变量、属性DC支持的文件格式及类型DC在HDL代码中的编译开关,控制综合过程Translate_off/translate_on:指示DC终止或开始verilog源代码转换的位置。full_case:阻止case语句在不完全条件下生成latch。Script文件Script文件Script文件的构成DC综合环境设置(.synopsys_dc.setup);属性和约束信息;综合命令(read,compile);控制流命令;Conditional:Looping:if(expr){foreach(variable,list){[dc_shellcommands][dc_shellcommands]}else{}[dc_shellcommands]while(expr){}[dc_shellcommands]Script文件的检查:DC提供syntaxandcontextcheckers来检查Script文件的错误DC支持的对象、变量、属性对象,DC将设计对象分为8类,分别如下:Design:具有某种或多种逻辑功能的电路描述;Cell:设计的instance;Reference:cell或instance在库中定义的名字;Port:design的输入、输出;Pin:design中cell的输入、输出;Net:ports和pins之间或pins之间的信号名;Clock:被定义为时钟源的pin或port;Library:cell的集合,如:targ
本文标题:-synopsys-dc中文教程(比较详细)
链接地址:https://www.777doc.com/doc-6901191 .html