芯片后仿

INNOVUS/ICC吐出的netlist经过Formal/LEC验证后,Star-RC/QRC抽取RC寄生参数文件并读入到Tempus/PT分别做func/mbist/scan时序sign-off,写出SDF3.0用以后仿真,搭建后仿真的验证环境,添加sc/io/macro的verilog model,仿真输出VCD给Redhawk/Voltus做功耗/IR Drop分析。本文简要叙述下后仿真要点:

欢迎关注我的公众号:

芯片后仿

(一) VCS选项,主要介绍几个关键选项。

1)-debug选项,为了导出VPD通常选择-debug_pp;

芯片后仿

2)-negdelay,支持SDF中的负延时;

芯片后仿

3)-ssf自动加载fsdb;

4)-ucli模式,在-debug模式下才使能;

芯片后仿

5)+neg_tchk,支持负延时检查;

芯片后仿

6)+nospecify/+notimingcheck,忽略path delay和specify延时;

芯片后仿

7)+delay_mode_zero,去除仿真中的延迟信息,所有的延时为0;

(二)SDF annotated

$sdf_annotate ([sdf_file], top.U_DIGITAL_TOP, [sdf_configfile], [sdf_logfile],[mtm_spec], [scale_factors], [scale_type]);

  1. sdf_file指定时序签核输出的sdf文件及其路径;

  2. sdf_configfile”指定sdf配置文件,一般缺省;

  3. sdf_logfile指定sdf的log生成文件,该文件会保存VCS在运行过程中产生的Error和Warning信息。为了规VCS默认情况下不会记录超过10个以上的error信息/warning信息到log文件,可通过+sdfverbose选项来开启VCS记录所有信息;

  4. mtm_spec指定VCS反标哪一类延迟信息。可以使用MINIMUM,TYPICAL,MAXIMUM,TOOL_CONTROL(default);

  5. scale_factors指定minimum,typical,maximum延迟的因子。默认值是“1.0:1.0:1.0”

  6. scale_type指定在缩放比例之前使用的SDF 文件里面延迟值,可能的值有“FROM_TYPICAL”,”FROM_MIMINUM”,”FROM_MAXIMUM”,”FROM_MTM”(默认值),一般缺省;

(三)初始化寄存器的值(不常用)

设置寄存器初始值文件:

 

#init0_regs.ucli

 

force -deposit tb.U_DIGITAL.reg_A 0

在仿真的零时刻用下面的方式加载这个文件

 

ucli%  source ./init0_regs.ucli

(四)关某些寄存器的时序检查(常用)

#notiming.list

instance { tb.U_TOP.reg} { noTiming };

在仿真的时候加载这个文件,避免引起X态传递。

 

VCS +optconfigfile+notiming.list

(五)导出VCD文件

VCD是不压缩的文本格式,兼容性好,缺点是文件太大。后仿先写出高压缩比的FSDB文件,再转成VCD。可指定转换起止时间、结束时间。

 

fsdb2vcd xxx.fsdb -o xxx.vcd -bt 1000ns -et 2000ns

欢迎关注我的公众号:

芯片后仿

ISP处理后仿效果芯片后仿