关于后仿经验谈

本文探讨了在数字设计中处理异步信号违例的方法,包括通过notimingcheck.cfg配置文件、工艺对信号延迟的影响、异步复位与同步释放的使用,以及如何解决仿真激励引发的问题。作者强调了频率较高时同步复位的重要性,并分享了后仿时序违例调试的经验技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文内容存在作者在工作中的思考和理解,请谨慎参考,如有问题请批评指正!

  1. 后仿出现的异步信号违例不做处理,一般违例报异步信号的第一级寄存器。通过建立文件notimingcheck.cfg,写入报告违例如下,makefile添加编译指令+optconfigfile+notimingcheck.cfg,或者使用force语句强制该信号。
instance{xx_tb.xx}{noTiming};
  1. 关于工艺,28nm以上的工艺,指晶体管的沟道长度,28nm以下不表示沟道长度,但这个数值越小,表示工艺更快,可以承载更高的频率。

  2. 反标负延时
    实际仿真时,某个cell的延时为负,仿真不加-negdelay,仿真提示如下:
    Warning-[SDFCOM_NDI] Negitive Delay Ignored
    如果加-negdelay仿真,仿真提示如下:
    Warning-[SDFCOM_NIOD] Negative IOPATH Delay encountered

  3. 工艺比较烂的情况下,会产生较大的毛刺,毛刺的大小不能超过时钟的10%,否则修改代码或通过后端修改。

  4. 关于异步复位同步释放的使用
    异步复位与同步释放的使用考虑数字设计的要求,例如对于数字设计上,要求出现时钟时输出数据,所以必须要异步释放。大多数情况采用异步复位同步释放更好,这样可以避免亚稳态的产生。

  5. 注意仿真激励给的不合适会造成后仿出现违例情况,注意排除仿真激励问题,例如:复位信号避免与时钟沿对齐,还有在工艺很烂的情况下,给了合适复位仍旧造成多处违例,最好将复位信号同步化避免违例。在频率比较高的情况下,最好将复位同步化。例如:设计采用上升沿,在tb中采用下降沿给激励,防止时序错误。

  6. $width脉冲宽度违例,可以通过修hold的方式消除。

  7. 后仿有违例,波形一定有问题,但可能不影响整体功能,但最好消除掉。

  8. recovery和removal检查是寄存器的特性,根据寄存器的制造工艺定,一般将其等同于setup和hold检查。

  9. 后仿时序违例的debug经验
    ①pt干净,后仿出现时序违例,查看仿真平台问题。
    后仿debug经验很好

参考链接:
[1]negative timing check和negative delay

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值