网表仿真常见问题及解决办法

本文介绍了在VLSI设计中遇到的常见问题,如网表顶层测试信号引起的不确定状态、寄存器初始值问题、RAM初始化问题以及时序违例。针对这些问题,提出了相应的解决策略,包括屏蔽测试信号、为寄存器和RAM deposit初始值、确保RAM从仿真开始即处于读状态以及处理时序违例的方法。这些解决方案对于确保设计的正确性和仿真准确性至关重要。
摘要由CSDN通过智能技术生成

1、网表顶层测试信号引起的问题

    解决办法:可以通过规避手段,即屏蔽测试信号的有效性,对测试信号的初始化一个无效值,大多为0。

2、寄存器初始值引起的不定态问题

    解决办法: 一般情况下,不定态往往来自与没有初始化的寄存器或RAM,有些设计对这些初始化值为任何数都不影响使用时,但网表仿真会导致x传输,需要对无复位寄存器进行deposit初值

3、RAM初始化问题
如果RAM没有初始化或写操作,则RAM读数据是不定态。在RTL仿真时,不定态在逻辑上一般当作非0来处理,所以不会扩散。而在网表仿真时,不定态经过与非门等逻辑运算之后,很可能会往后扩散,导致后续逻辑全是不定态,仿真无法进行。
另外, RAM模型上电之后,初始值就是不定态(有些与综合器件有关,可能会消除部分不定态),只有在读操作有效时才将RAM的相应地址内容输出的读数据端并保持到下一次读操作。而读操作之前的这一段不定态也有可能影响仿真

解决方法:网表仿真时有必要对RAM进行初始化,为了节省仿真时间,采用$readmemb的方式进行RAM初始化,即初始化为随机值不影响功能。同时需要注意即使有初始化,有些RAM模型的输出依然有可能是不定态。
因此,必须保证从0时刻开始,RAM一直处于读状态,直到芯片复位结束。具体到把RAM的片选信号和读写指示信号force成读有效状态,直到复位结束之后才release

4、带sdf 出现时序违例引发不定态

 解决办法:
 1、确认违例路径是否是异步路径,如果是异步路径,增加tcheck条目,剔除时序检查
 2、如果是同步路径,报时序违例,需要找后端确认这条路径时序是否clean,如果是clean的需要检查sdf反标是否有问题,如果没问题在确认下是否是入口第一级寄存器报的,如果是入口第一级需要检查激励是否加入了input delay。
 3、平台force时间点不合适造成时序违例,调整force时刻点,对于配置force 可以在0时刻进行force。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值