《DC综合流程电子版本.ppt》由会员分享,可在线阅读,更多相关《DC综合流程电子版本.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、DC综合流程综合概述技术库概述综合基本步骤提纲综合步骤1:源文件准备源文件的准备主要是检查rtl的书写规范,时钟域划分是否合理,一般有专业的工具进行检查综合步骤2:指定综合库 目标库设定使用target_library和link_library变量来指定符号库。符号库设定使用symbol_library变量来指定符号库。target_library:综合用的目标库,它一般是由生产线提供的工艺相关的库,如slow.db是smic0.18um最坏情况下的目标库。synthetic_library:综合库,它包含了一些可综合的与工艺无关的IP。link_library:链接库,DC不使用该库中的ce
2、lls进行映射,它是DC在读入综合后网表时用来参考的库,RAM,ROM,PAD,macros都应包含在这个库,目标库和综合库也必须包含在其中。symbol_library:指定的符号库,使用GUI时会调用。search_path:指明库文件的位置,这样在添加上面的库时就不用写绝对路径。set target_library typical.db sp018N.db“综合步骤3:读入源码read与analyze&elaborate都可以用来读入RTL代码。推荐使用analyze&elaborateanalyze&elaborate允许设计者在设计的GTECH建立之前,首先去分析设计的语法错误和进行
3、HDL代码转换。GTECH由“soft macros”比如adders,comparators等组成,这些组件来自synopsys 的synthetic lib,每种组件具有多种结构。Analyze做语法的检查并产生一个“.syn”文件,存储于work路径下的定义的设计库内,可供后来elaborate使用。对于一个analyzed过的设计,只需用elaborate重新输入,节省时间。Read就不行。以下是两个命令的比较:综合步骤4:design environment设计环境包括operating condition、wire load和system interface三部分综合步骤4:des
4、ign environment1、operating condition operating 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 slo
5、w_1v08c125 通过命令report_lib lib_name查看使用的库信息。综合步骤4:design environment2、wire load set_wire_load_model 用于设置线负载模型估计连线负载,线负载模型是根据cell的扇出数查表得到线长,再用线长乘以单位线长的电阻和电容值得到的负载电阻电容值的,综合步骤4:design environment2、wire load set_wire_load_mode 三种模式top、enclosed、segmentedtop:所有层次子模块的wire_load和top-level相同,综合策略为top-down可选择此模
6、式编译子模块。enclosed:子模块net的wire_load和enclosed 它的最小模块相同,推荐用于在layout后logical and physical hierarchy相似的设计;segmented:子模块之间net的wire_load和enclosed该net的模块相同,需技术库提供segmented wire_load,一般用于跨层次的net;综合步骤4:design environment2、wire load 对于wire load mode三种模式示意图综合步骤4:design environment3、system interfaceset_drive:用来指定i
7、nput port的驱动强度,它指定的是一个阻抗值,用来计算从这个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_
8、rule是指DFFRX2自身的DRC检查不做。set_load:用于定义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、每一
9、个子模块都由自己的Scripts文件,便于管理;2、子模块的改变不需要整个设计全部重新综合;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进
10、行操作,设定的不是具体的电容值 3、set_max_capacitance:定义输出管脚可以驱动的最大电容值optimization contraints:1、create_clock:用于定义时钟的周期和波形 2、set_input_delay:定义信号相对于时钟的到达时间 3、set_output_delay:定义从输出端口数据不可用开始距离后一个时钟沿的时间综合步骤7:优化设计1、多次使用同一模块进行综合时,有两种方法解决同一模块多次使用的问题:uniquify方法与compile-once-dont-touch方法。Uniquify方法操作步骤:1、uniquify设计;2、compi
11、le设计。dc_shell current_design 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
12、_design topdc_shell set_dont_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。Co
13、mpile-map_effort low/medium/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结束语结束语谢谢大家聆听!谢谢大家聆听!23
限制150内