在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3332|回复: 6

[求助] 请教各路大佬,后仿真memory的Q端口(也就是输出)一直是x态问题

[复制链接]
发表于 2018-11-9 14:41:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教各路大佬,后仿真memory的Q端口(也就是输出)一直是x态问题
webwxgetmsgimg.jpg
webwxgetmsgimg.jpg
发表于 2018-11-10 13:25:53 | 显示全部楼层
你没写过呀。
发表于 2018-11-10 15:09:45 | 显示全部楼层
后仿真因为使用的网表,不是RTL代码,对RAM没有初始化操作,所以一般都会有不定态。正常流程,这里应该用后门的操作,直接force RAM的所有内部寄存器的Q端为一个随机值,然后一拍后释放掉,就不会导致不定态扩散了。很多公司内部都有类似的MEM加载初始化操作,你可以百度找找看有没有公开的方法介绍。
 楼主| 发表于 2018-11-12 10:06:03 | 显示全部楼层
回复 3# gaurson
谢谢 大佬啊   我先试一试哈
发表于 2019-1-9 14:40:55 | 显示全部楼层
3楼说的对,没初始化过出来X态很正常。到有点不是很认同,正确的设计就不应该使得这样的X态会传播开来,如果你发现你的X态最终由于这个传播来的,说明设计是有点缺陷的,虽然可能不会导致功能错误,可能你初始化ram后就不会有X态传播了。
发表于 2019-1-9 16:11:24 | 显示全部楼层
回复 5# enter923


    但是我看了下他的图片,发现开始的时候时钟也是x态,这个也会导致q端出现x态,所以应该看最前面出现x的地方在哪里吧?
    个人见解
发表于 2019-1-9 20:29:41 | 显示全部楼层
dff的Q端输出不定态原因有:
1. rtl中的时序逻辑未初始化(故意不加复位逻辑,为的是综合使用不带复位端的dff,减小面积和功耗),这种前仿真时没出现不定态传递不代表总合成网表(功能网表仿真,不带sdf)也一样;这时候解决办法是修改dff的std cell中的primitive定义,给Q initial一个0或者1(经过多个项目实践,无任何问题,可以一试);
2. dff处于powerdown 的domain;
3. 误操作,使dff的Q端被多驱了;
4. dff的输入有x态,比如dff的std cell定义中有如下类似定义:
    if (a==0) begin
        q = 0;
    end else begin
        q = d;
    end
    当a==x时,q应该输出d,但是如果你的vcs仿真器开启了xprop模式且你的license有xprop的feature,那么此时q端会输出x而不是d。
5. 你仿真使用的是一种std cell,但是verdi加载时读入了另一种std cell有时也会产生这种问题(不常见);
6. 仿真器抽风,排除以上原因仍然出现这种情况,那么把所以临时编译出的文件删除再重新编译仿真一次。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-11 05:31 , Processed in 0.024514 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表