《《DC综合流程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《DC综合流程》PPT课件.ppt(22页珍藏版)》请在三一办公上搜索。
1、,DC综合流程,浪潮电子信息产业股份有限公司,综合概述技术库概述综合基本步骤,提纲,综合概念,逻辑综合:决定设计电路逻辑门的相互连接。逻辑综合的目的:决定电路门级结构、寻求时序和与面积的平衡、寻求功 耗与时序的平衡、增强电路的测试性。逻辑综合的过程:Translation、map、optimization Translation是指把设计的HDL描述转化为GTECH库元件组成的逻辑电路 Mapping是指将GTECH库元件映射到某一特定的半导体工艺库上,此时 的电路网表包含了相关的工艺参数 Optimization是根据设计者设定的时延、面积、线负载模型等综合约束条 件对电路网表进一步优化的过
2、程,综合库,综合库中定义了operation condition、wire_load model、Gate(输入输出,功能,时序参数,面积等等);operating_conditions(typical)process:1;temperature:25;voltage:1.8;tree_type:balanced_tree wire_load(smic18_wl10)resistance:8.5e-8;capacitance:1.5e-4;area:0.7;slope:66.667;fanout_length(1,66.667);,综合步骤,综合步骤1:源文件准备,源文件的准备主要是检查rtl
3、的书写规范,时钟域划分是否合理,一般有专业的工具进行检查,综合步骤2:指定综合库,目标库设定使用target_library和link_library变量来指定符号库。符号库设定使用symbol_library变量来指定符号库。target_library:综合用的目标库,它一般是由生产线提供的工艺相关的库,如slow.db是smic0.18um最坏情况下的目标库。synthetic_library:综合库,它包含了一些可综合的与工艺无关的IP。link_library:链接库,DC不使用该库中的cells进行映射,它是DC在读入综合后网表时用来参考的库,RAM,ROM,PAD,macros都
4、应包含在这个库,目标库和综合库也必须包含在其中。symbol_library:指定的符号库,使用GUI时会调用。search_path:指明库文件的位置,这样在添加上面的库时就不用写绝对路径。set target_library typical.db sp018N.db“,综合步骤3:读入源码,read与analyze&elaborate都可以用来读入RTL代码。推荐使用analyze&elaborateanalyze&elaborate允许设计者在设计的GTECH建立之前,首先去分析设计的语法错误和进行HDL代码转换。GTECH由“soft macros”比如adders,comparato
5、rs等组成,这些组件来自synopsys 的synthetic lib,每种组件具有多种结构。Analyze做语法的检查并产生一个“.syn”文件,存储于work路径下的定义的设计库内,可供后来elaborate使用。对于一个analyzed过的设计,只需用elaborate重新输入,节省时间。Read就不行。以下是两个命令的比较:,综合步骤4:design environment,设计环境包括operating condition、wire load和system interface三部分,综合步骤4:design environment,1、operating condition oper
6、ating condition包括工作温度、工作电压、制造工艺,通过命令set_operating_condition来设定 命令set_operating_conditions min BEST max WORST用于指示DC对WORST和BEST条件,同时优化。WORST用于对setup-time进行优化,BEST用于对hold-time进行优化,当BEST和WORST都满足时,TYPICAL也就可以满足。例:set_operating_conditions-min fast_1v32cm40-max slow_1v08c125 通过命令report_lib lib_name查看使用的库信
7、息。,综合步骤4:design environment,2、wire load set_wire_load_model 用于设置线负载模型估计连线负载,线负载模型是根据cell的扇出数查表得到线长,再用线长乘以单位线长的电阻和电容值得到的负载电阻电容值的,,综合步骤4:design environment,2、wire load set_wire_load_mode 三种模式top、enclosed、segmentedtop:所有层次子模块的wire_load和top-level相同,综合策略为top-down可选择此模式编译子模块。enclosed:子模块net的wire_load和encl
8、osed 它的最小模块相同,推荐用于在layout后logical and physical hierarchy相似的设计;segmented:子模块之间net的wire_load和enclosed该net的模块相同,需技术库提供segmented wire_load,一般用于跨层次的net;,综合步骤4:design environment,2、wire load 对于wire load mode三种模式示意图,综合步骤4:design environment,3、system interfaceset_drive:用来指定input port的驱动强度,它指定的是一个阻抗值,用来计算从这个
9、port到被它驱动的cell之间的路径延时,0表示最大驱动,通常用于clock ports。例:set_drive 0$PROCLKset_driving_cell:用来模拟驱动input port的cell的驱动阻抗,用于计算输入信号的transition time做DRC的检查,一般在分模块综合时使用,顶层则设置为PAD或用buffer隔离。例:set_driving_cell-lib_cell DFFRX2-no_design_rule get_ports RX_DDC_PDC_SDAT_16B 选项-no_design_rule是指DFFRX2自身的DRC检查不做。set_load:用
10、于定义net或port的电容负载,保证输出路径的时序,主要用input port和output port,在顶层则设置为PAD的电容值或用buffer隔离,在库中获得。,综合步骤5:综合策略,综合策略包括top-down和bottom-up综合策略Top-down综合策略优点:1、仅需top_level的约束;2、将整个设计作为整体优化,可获得较好的结果;Top-down综合策略缺点 1、编译时间长;2、子模块的改变需要整个设计在综合;3、如果设计包含多个时钟或生成时钟逻辑,则不能很好执行。Bottom-up综合策略的优点:1、每一个子模块都由自己的Scripts文件,便于管理;2、子模块的改
11、变不需要整个设计全部重新综合;3、不需要关心设计类型,如:多时钟或产生时钟;4、一般来说,可获得好的结果;Bottom-up综合策略的缺点 1、需要更新维护多个scripts;2、Top的关键路径也许在子模块并非关键路径;3、需要incrementally编译。,综合步骤6:设计约束,设计约束包括rule constraints和optimization constraints两种rule contraints:1、set_max_transition:2、set_fanout_load:对design,net,output port进行操作,设定的不是具体的电容值 3、set_max_cap
12、acitance:定义输出管脚可以驱动的最大电容值optimization contraints:1、create_clock:用于定义时钟的周期和波形 2、set_input_delay:定义信号相对于时钟的到达时间 3、set_output_delay:定义从输出端口数据不可用开始距离后一个时钟沿的时间,综合步骤7:优化设计,1、多次使用同一模块进行综合时,有两种方法解决同一模块多次使用的问题:uniquify方法与compile-once-dont-touch方法。Uniquify方法操作步骤:1、uniquify设计;2、compile设计。dc_shell current_desig
13、n top dc_shell uniquify dc_shell compile,综合步骤7:优化设计,1、compile-once-dont-touch方法操作步骤:1、charactirize 环境最差的一个子模块;2、在此环境下综合此模块;3、使用set_donot_touch命令设置所有的此模块例化得模块;4、综合;dc_shell current_design topdc_shell characterize U2/U3dc_shell current_design Cdc_shell compiledc_shell current_design topdc_shell set_do
14、nt_touch U2/U3 U2/U4dc_shell compile,综合步骤7:优化设计,2、综合 利用compiler命令启动Design Compiler的综合和优化进程,有几个可选的编译选项。特别的map_effort选项可以设置为low、mediu或high。初步编译,如果你想对设计面积和性能有一个快速的概念,将map_effort设置为low;默认编译,如果你在进行设计开发,将map_effort设置为medium;当在进行最后设计实现编译时,将map_effort设置为high。通常设置map_effort为medium。Compile-map_effort low/medi
15、um/high,综合步骤8:分析修改设计,通常Design Compiler根据设计综合和优化的结果生成众多的报告。根据诸如面积、约束和时序报告来分析和解决任何设计问题,或者改进综合结果。需要的报告:report_design:报告用户的综合环境,包括operating condition、wire load report_constraint:用户定义的constraint report_timing-nworts num:所有路径中最差的路径。,综合步骤8:生成网表及sdc文件,利用write命令来保存综合过的设计,Design Compiler在退出时并不自动保存设计,保存的文件包括网表、.sdc、.sdf、.db等。生成网表:write-format verilog-output name.v 生成synopsys internal database format write-format ddc-output name.v 生成延迟文件 write_sdf name.sdf 生成约束文件 write_sdc name.sdc,