微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 后防RAM不定态求助

后防RAM不定态求助

时间:10-02 整理:3721RD 点击:
用IES作后防仿真,RAM中出现不定态。信号名为*_fifo_ram_mem,驱动源没有其他不定态,而且在Makefile中有设置-ncinitialize -INITMEM1。有遇到这种情况的大神吗?或者有其他处理方法吗?RAM可以force吗?急求,谢谢!

查一下RAM的model,有些model会有initial block把所有单元设为X或0或rand,看看是否有macro控制这个initial block行为

跟踪了一下RAM的model,发现model中没有输入的组合。这种情况下可以修改model吗?module a4hvt_dff1_a1_func(Q,CK,D,SE,SELD,SI,notifier);
input CK,D,SE,SELD,SI;
output Q;
input notifier;
...
MGM_IQ_FF_UDP_HVT(IQ,1'b0,1'b0,CK,MGM_D,notifier);
...
endmodule
可以把MGM_IQ_FF_UDP_HVT(IQ,1'b0,1'b0,CK,MGM_D,notifier)改成MGM_IQ_FF_UDP_HVT(IQ,1'b0,1'b1,CK,MGM_D,notifier)吗?
MGM_IQ_FF_UDP_HVT的model如下:
primitive MGM_IQ_FF_UDP_HVT(Q,C,P,CK,D,N);
output Q;
reg Q;
input C,P,CK,D,N;
table
//CPCKDN:Q:Q
...
01???:?:1
...
endtable
endprimitive

是不是不满足setup/hold时序了,这个要找到具体原因,可能是隐藏的时序bug,主要还要仔细看后仿报告中的告警

我们现在仿真没带反标,所以不存在hold/setup问题。我追踪memory中的model,发现是复位之前输入信号D的不定态引起的model中没有对应的项。现在想在model中增加一项,在输入信号D为x的时候,就把输出置1,对应model如下:table
//CPCKDN:Q:Q
endtable
现在想请教下如何表示信号D为x?
谢谢

这样改不好吧,如果后面再出现不定态就为1了

后仿真阶段,对于RAM的不定态最好不要使用force,可能会隐藏问题。
我做后仿时,也遇到过RAM不定态,有几种情况你可以参考:
1、未加SDF反标。有可能是RAM的model跟前仿不一致,或者是前仿用sim RAM后仿用的是asic RAM。
2、加入SDF反标。很有可能是时序不满足。
3、这种情况比较少见,但是也不排除。仿真器对于0时刻采样的解释不一致导致。
以上是我遇到过的情况,仅供参考。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top