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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: 赵旭东

[求助] icg在pre_sim的网表仿真中出现x的原因?

[复制链接]
发表于 2022-1-7 14:22:09 | 显示全部楼层
从“网表仿真不同的latch对比图片.jpg”来看,有两个信号是明显不同的。
1. int_res__prectrl
G1为0,G2为1。说明G1, G2的SE, EN值是不一样的。估计G1一开始就是EN=0, 而G2一开始EN=1。

2. int_res_iq
G1为0,G2为x。问题发生在int_res_iq变成x的地方。在波形里往左走,一直到找到int_res_iq刚变成x的地方,比较G1, G2的信号有何不同。Debussy/Verdi 有个功能就是在Verilog里显示当前光标所在时间的值。把这个功能打开,就可以在右边的窗口里看到信号的值。比较G1,G2在int_res_iq变成x同一时间信号有何不同。
 楼主| 发表于 2022-1-13 14:02:56 | 显示全部楼层


jake 发表于 2022-1-7 14:22
从“网表仿真不同的latch对比图片.jpg”来看,有两个信号是明显不同的。
1. int_res__prectrl
G1为0,G2为1 ...


你好,向左扩大这个波形后发现除了int_res__perctrl信号不同外,其它的都一样,之前也查过用的latch cell单元都一致。如下面的两个图,一个是输出没有x的,一个是输出有x的,在verilog中也对应出了数值。按照前面的primitive.v的网表列出的功能,输出都应为x或者都应没有x才对。这个到底是怎么回事呢,请大神指导,十分感谢。

i2c0_per_sim_unknown_x.png
i2c0_per_sim_unknown_no_x.png
 楼主| 发表于 2022-1-13 14:16:14 | 显示全部楼层


jake 发表于 2022-1-7 14:22
从“网表仿真不同的latch对比图片.jpg”来看,有两个信号是明显不同的。
1. int_res__prectrl
G1为0,G2为1 ...


您好,这个向左扩大了波形,具体如下两个图,除了int_res__perctrl信号的数值不一样外,其它的输入信号都一样,之前也查了两个icg用了相同的latch单元。按照之前贴出来的primitive.v中的网表功能,我的理解这两个的latch行为应该一致才对,要么一直是x,要么一直是非x才对,现在很奇怪的行为不一致。请大神指导,非常感谢,下面是两个具体的图,在verilog中也显示出了对应的数值,一个是出了x的,一个是没有出x的。相当奇怪了。。。。。。 i2c0_per_sim_unknown_x.png

i2c0_per_sim_unknown_no_x.png
发表于 2022-1-13 23:54:32 | 显示全部楼层
G2 里面的 primitive latch 有问题。 在 delayed_CK 0->1, int_res__CK 1->0 的时候,int_res__prectrl 应该被锁住,这里没有,int_res_iq 依然是 X。
在standard cell verilog model文件中找一下 primitive latch,应该有一个表,决定latch的状态,贴上来研究一下。也许这个表做得有点问题。
G2_ICG_x_latch_issue.png
 楼主| 发表于 2022-1-14 10:39:45 | 显示全部楼层


jake 发表于 2022-1-13 23:54
G2 里面的 primitive latch 有问题。 在 delayed_CK 0->1, int_res__CK 1->0 的时候,int_res__prectrl 应 ...


你好,下面这个是latch对应的primitive.v 中的图,请大神指导。
primitive的描述.PNG
发表于 2022-1-14 11:24:09 | 显示全部楼层
table 前三列对应v, clk, d; 第四列对应 q 当前的状态; 第五列对应 q 的新状态。
在 int_res__CK failling edge 之前,clk=1, d=1, 59580 这一行应该被执行。但实际上这一行并没有被执行。唯一的可能就是仿真从 time = 0 一直到光标位置,clk, d 的 level 一直没有变化,simulator 一直不需要查这个 table 进行赋值。等到 clk 变低,59583 这一行被执行,q 状态不变,int_res_q 继续为 X。

在 waveform 里查一下 G2 的 CK, EN 从 t=0 到光标处是否一直没有变化 (CK=0, EN=1)。 如果是这样,问题就在这里了
 楼主| 发表于 2022-1-14 19:57:05 | 显示全部楼层


jake 发表于 2022-1-14 11:24
table 前三列对应v, clk, d; 第四列对应 q 当前的状态; 第五列对应 q 的新状态。
在 int_res__CK faillin ...


你好,查了一下,这个更奇怪了,出x的在时间上前面d信号从0变成1,一开始两个的对比图如下。
i2c0_pre_sim的从t为0时的波形.png
发表于 2022-1-14 20:12:57 | 显示全部楼层


赵旭东 发表于 2022-1-14 05:57
你好,查了一下,这个更奇怪了,出x的在时间上前面d信号从0变成1,一开始两个的对比图如下。
...


waveform 和 Verilog 对不起来,感觉显示的 Verilog 不是被执行的那一段。
在 waveform 里双击 0->X 那个边沿,Verdi 会跳到真正被执行的 Verilog

 楼主| 发表于 2022-1-17 10:18:08 | 显示全部楼层


jake 发表于 2022-1-14 20:12
waveform 和 Verilog 对不起来,感觉显示的 Verilog 不是被执行的那一段。
在 waveform 里双击 0->X 那个 ...


你好,这个确实是那个latch对应的verilog,点了0->x的部分,对应的图片如下

i2c0_pre_sim的从t为0时的波形-出现x的那个latch确定图片.png
发表于 2022-1-17 10:34:02 | 显示全部楼层


赵旭东 发表于 2022-1-16 20:18
你好,这个确实是那个latch对应的verilog,点了0->x的部分,对应的图片如下

...


这个像是工具报了timing violation。
在Verilog里往下看,Timing那一段,看有没有什么地方把int_res_iq置为X

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-5 19:29 , Processed in 0.028790 second(s), 6 queries , Gzip On, Redis On.

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