ASIC设计流程-DC课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《ASIC设计流程-DC课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASIC 设计 流程 DC 课件
- 资源描述:
-
1、基于standcell的ASIC设计流程使用DC进行逻辑综合Setup Filesetup file是一个脚本文件,用来指定DC综合时所需的初始化信息,它也可以和约束文件写在一起,但建议分开写,方便脚本的管理。需要定义的变量有:target_library:综合用的目标库,它一般是由生产线提供的工艺相关的库,如slow_1v08c125.db是smic0.13um最坏情况下的目标库。synthetic_library:综合库,它包含了一些可综合的与工艺无关的IP。dw_foundation.sldb是Synopsys提供的名为Design Ware的综合库,它包含了基本的算术运算逻辑、控制逻辑
2、、可综合存储器等IP,在综合时调用这些IP有助于提高电路性能和减少综合时间。link_library:链接库,DC不使用该库中的cells进行映射,它是DC在读入综合后网表时用来参考的库,RAM,ROM,PAD,macros都应包含在这个库,目标库和综合库也必须包含在其中。 symbol_library:指定的符号库,使用GUI时会调用。search_path:指明库文件的位置,这样在添加上面的库时就不用写绝对路径。另外还有一些变量需要在setup file里进行设置,分别是:define_name_rules,bus_naming_style,verilogout_show_unconnec
3、ted_pins,verilogout_no_tri,后面会讲到。使用DC进行逻辑综合 Design Environment 功能:定义设计的工艺参数,I/O端口属性,统计wire-load模型。下图解释了描述设计环境约束的DC命令:set_max_capacitance set_max_transition &set_max_fanout on input &output ports or current_design; Block BClockDividerLogicBlock Aset_load on output set_operating_conditions on the whol
4、e designclkset_drive on Clock set_driving_cell on input signals set_load on inputs set_wire_load for each block,including top level 使用DC进行逻辑综合 Design Environmentset_min_library:允许同时设置worst-case和best-case libraries,从而在初步编译时,DC修正hold-time violations时,避免出现setup-time的violation。 例:set_min_library slow_1v
5、08c125.db -min_version fast_1v32cm40.dbset_operating_conditions:定义设计的工艺,电压,温度等参数。操作条件的名字每个库不同,到库中去查。cell和net的delay和这几个参数呈线性关系,delay的计算公式如下(smic0.13um为例):(1) (1)TPDprocessvoltddtemptypicaltKKVKTtint()typicalrinsicloadloadttKCTPDt总传递延时(ns),()typicaltCns。一般情况下的延时1.2v,25典型工艺intrinsictcell不带负载时的固有延时(ns)(
6、/),loadKns pF负载的乘积因子是工艺厂家为简化计算 公式而使用的,cell的datasheet中可查到loadC总的输出负载,processKslow typical fast工艺因子,包括(/)voltKV电压参数1.2ddddVVv(/)otempKC 温度因子25oTC 工作温度使用DC进行逻辑综合 Design Environment 命令set_operating_conditions min BEST max WORST用于指示DC对WORST和BEST条件,同时优化。WORST用于对setup-time进行优化,BEST用于对hold-time进行优化,当BEST和WO
7、RST都满足时,TYPICAL也就可以满足。 例:set_operating_conditions -min fast_1v32cm40 -max slow_1v08c125set_wire_load_model:用于设置线负载模型估计连线负载,线负载模型是根据cell的扇出数查表得到线长,再用线长乘以单位线长的电阻和电容值得到的负载电阻电容值的,如图:使用DC进行逻辑综合 Design Environment 线负载模型是一个统计模型,它估计出的负载是不准确的,尤其是0.35um以 下的工艺,因此,在布局布线前应使用较悲观的模型,对最坏的情况做综合, 线负载模型由目标库提供。 例:set_w
8、ire_load_model -name smic13_wl10 -min set_wire_load_model -name smic13_wl30 maxset_wire_load_mode:有三种wire_load_modetop,enclosed,segmentedtop:所有层次子模块的wire_load和top-level相同,如果用户计划flatten设计去layout可选择此模式编译子模块。enclosed:子模块net的wire_load和enclosed 它的最小模块相同,推荐用于在layout后logical and physical hierarchy相似的设计;seg
9、mented:子模块之间net的wire_load和enclosed该net的模块相同,需技术库提供segmented wire_load,一般用于跨层次的net; 例:set_wire_load_mode top 图示:使用DC进行逻辑综合 Design Environment使用DC进行逻辑综合 Design Environmentset_drive:用来指定input port的驱动强度,它指定的是一个阻抗值,用来计算从这个port到被它驱动的cell之间的路径延时,0表示最大驱动,通常用于clock ports。 例:set_drive 0 $PROCLKset_driving_cel
10、l:用来模拟驱动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:用于定义net或port的电容负载,保证输出路径的时序,主要用input port和output port,在顶层则设置为PAD的电容值或用buffer隔离,
11、在库中获得。 例:set_load 0.4 get_ports TX_DDC_AOUT_18B -pin_loadDRC设计规则约束:set_max_transition set_max_capacitance set_max_fanout 使用DC进行逻辑综合 Design Environment DRC规则在厂家提供的库中有一个default值,不用人为的设置,如果在默认值无法满足时序的情况下可以人为约束。set_max_transition会影响setup-time,hold-time,recovery-time,removal-time,如图。 使用DC进行逻辑综合 Design En
12、vironment set_max_transition对时序的影响使用DC进行逻辑综合 Design Environmentset_max_fanout对design,net,output port进行操作,设定的不是具体的电容值。例如对一个design 我们设定set_max_fanout 12,表示在这个design中的一条net或一个port只能驱动12个fanout_load为1个单位的pin或6个fanout_load为2个单位的pin,在smic0.13um库中默认的fanout_load为1,我们可以用set_fanout_load自行设置,set_max_fanout和set
13、_fanout_load仅仅是用做DRC的检查,他们的值与时序无关。图示如下:使用DC进行逻辑综合 Design Environmentset_max_capacitance定义输出管脚可以驱动的最大电容值。set_max_transition和set_max_fanout间接的定义了output port可以驱动的最大电容,set_max_capacitance则是设定的一个真实的电容值,output port所带的容性负载不能超过这个值。一般情况下都通过set_max_transiti on来定义DRC规则,因为库里是使用transition time来计算动态延时。 DRC规则的优先级:
14、 transitionfanoutcapacitance例:set_max_transition 0.3 get_designs * set_max_capacitance 1.5 get_ports out1 set_max_fanout 3.0 all_outputs()使用DC进行逻辑综合 Design Constraints 功能:描述设计的目标,包括时序和面积约束,要注意约束必须是可实现的,否则会导致面积过大,功耗增加或时序不能满足要求。设计约束的DC命令如下: set_clock_latency set_clock_transitionset_output_delay on out
15、put Block BClockDividerLogicBlock AclkCreate_clock& set_clock_skewset_input_delay on input signals set_max_area for each block,Top level使用DC进行逻辑综合 Design Constraintscreate_clock:用于定义时钟的周期和波形(duty及起始沿); 例如:create_clock period 40 waveform0 20 CLK 周期40ns 上升沿0 ns,下降沿20 ns;如果不定义waveform,则默认占空比为50。set_clo
16、ck_transition:在pre_layout必须设置一个固定的transition值(技术库提供有一个值),因为时钟网络有很大的fanout,这样可使DC根据该时钟计算实际的延时值。 例:set_clock_transition 0.1 get_clocks $SCLKcreat_generated_clock:用于定义内部产生的时钟信号,比如分频和倍频的时钟信号。 creat_generated_clock name -source -divide_by set_dont_touch_network:在net或port上设置dont touch属性,主要用于clock和reset信号,
17、使DC不对这些nets插buffer,留到布局布线时综合。 例:set_dont_touch_network get_clocks $SCLK set_dont_touch_network get_pins masterrst*/Q使用DC进行逻辑综合 Design Constraintsset_dont_touch:用于对current_design,cells,references,nets设置dont touch属性,阻止DC对它们进行映射或优化,一般在分模块综合和综合后优化时使用。 例:set_dont_touch get_cells X_DATA_N_1_33B_reg0 set_d
18、ont_use:指示DC在进行映射时将目标库的某些cells滤除不用,比如一些驱动能力很小的cell就可以不用,以满足时序。通常将它写在setup file里。 例:set_dont_use slow_1v08c125/DFFRXL使用DC进行逻辑综合 Design Constraintsset_input_delay:定义信号相对于时钟的到达时间。指一个信号,在时钟沿之后多少时间到达input ports。 下图中input_delay=Tclk-q + Tm使用DC进行逻辑综合 Design Constraintsset_output_delay:定义从输出端口数据不可用开始距离后一个时钟
19、沿的时间,既时钟周期减去cell从上一个时钟沿开始的工作时间。 下图中output_delay=Tt + Tsetup 使用DC进行逻辑综合 Design ConstraintsConstraint for hold-time设寄存器的hold-time为0.5ns,则寄存器间的组合逻辑X的最小延时为0.5ns使用DC进行逻辑综合 Design Constraints设clock有0.5ns的skew,hold-time为0.5ns,则X最小应为1ns使用DC进行逻辑综合 Design Constraints设FF2hold-time为1ns,N的延时为0.7ns,为保证hold-time而设
20、置的最小input_delay就应为0.3ns使用DC进行逻辑综合 Design Constraints设hold-time为0.5ns,FF3+S的延时为0.2ns,则T的最小延时应为0.3ns set_output_delay max (Tmax + Tsetup) set_output_delay min (Tmin - Thold)使用DC进行逻辑综合 Design Constraintsset_clock_latency:模拟时钟树插入后从时钟输入端口到寄存器clock端口的延时,用于布局布线前的综合和时序分析,一般设0.3-0.8。 例:set_clock_latency 0.3
21、get_clocks $PROCLKset_clock_uncertainty:由于工艺制造的原因,时钟到达各个触发器clock端口时会有一定的偏差,set_clock_uncertainty就是为这种偏差留一定的余量以保证setup-time和hold-time,一般设为0.2-0.3。 例:set_clock_uncertainty 0.3 get_clocks $PROCLK使用DC进行逻辑综合 Design Constraints使用DC进行逻辑综合 Design Constraints setup-time check:(假设lib setup-time 为 1ns) creat_c
展开阅读全文