后仿真关闭某些寄存器的时序检查

文章介绍了门级仿真的两种类型,包括不带时序反标的仿真和带时序反标的后仿真,强调了SDF文件在后仿真的重要性。同时,详细阐述了VCS编译选项,如nospeicy、delay_mode_zero和notimingcheck等,以及如何通过notiming.list文件关闭特定寄存器的时序检查,以解决后仿真的时序违例问题。
摘要由CSDN通过智能技术生成

门级仿真分为两种:

       一种是不带时序反标的门级仿真(只有门级电路延时的仿真,综合后的门级网表就可以做,因为在布局布线之前,由于这时hold没有修,所以会出现不少时序违例的情况);一种是带时序反标(back annotation)的门级后仿真,这时的网表是后端做完布局布线,修补完timing的网表,这时进行后仿真时,我们需要告知仿真工具cell与cell之间的延迟,D端到Q端的延迟,这就需要sdf文件。

VCS编译选项

+nospeicy在仿真时忽略库文件中指定的延时。

+delay_mode_zero将标准单元库中定义的延时替换成0。testbench中的#延时也都被消除。

+notimingcheck时序检查开关,启用该option在仿真中就不检查时序,启用该option往往能消除后仿结果中的X态,但是后仿真不使用该选项,因为后仿不检查时序,后仿就失去了意义。

反标SDF文件的后仿真编译选项

+sdfverbose显示所有的sdf反标错误;

+neg_tchk 使用负延时检查,检查设计的负延时。如果忽略此选项,VCS将所有负延时更改为0。

-negedelay 当sdf文件中有负延时,且负延时不忽略,开启此选项,否则VCS将所有负延时更改为0。

关闭某些寄存器的时序检查

在后仿过程中,可能会有一些不需要检查的时序,这些时序往往是不影响功能的。关闭某些寄存器的时序检查方法如下:

1、创建一个notiming.list文件,文件名notiming.list;

2、文件内容

(notes:关于选择关闭哪些寄存器的时序检查,由于在门级网表中,很多信号名已经改变,所以可以先进行后仿真,根据终端或sim.log文件上面显示的信息,看是哪些寄存器发生了时序违例,再判断这些寄存器需不需要关闭时序检查,从而获得关闭这些寄存器时序检查的文件格式。)

例如终端显示的一个时序违例:

Timing violation in tb_digital_top.e333d_top_u.spi_u.so_data_reg_1_

$hold(posedge RN:8,posedge SN:8,limit:2);

若要关闭tb_digital_top.e333d_top_u.spi_u.so_data_reg_1_寄存器,就在notiming.list文件里面写

instance{tb_digital_top.e333d_top_u.spi_u.so_data_reg_1_}{notiming};

注意notiming是连写,notiming.list和testbench以及DUT放在同一个文件夹里(同一级目录)。

{notiming};的 “ ; ”不能漏掉,否则编译会报错。

关闭多个寄存器的情况:

instance{tb.u_top.reg1,tb.u_top.reg2,tb.u_top.reg3}{notiming};

3、VCS编译选项

VCS+optconfigfile+notiming.list可以用上面的方法加载notiming.list这个文件,这样在后仿过程中将不对这些寄存器进行时序检查,避免了不必要的时序问题而引起的X态的传递。

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值