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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5814|回复: 19

[求助] 用VCS仿真时,always列表里的信号明明没有变化,always块里面的信号却变了

[复制链接]
发表于 2020-10-18 01:55:13 | 显示全部楼层 |阅读模式

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

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

x
用VCS仿真,Verdi看波形
always块的敏感列表是SCLK和RST,里面是移位寄存器,有一个时刻这两个信号明明没有变化,里面移位寄存器的值却发生了变化。
其中SCLK的赋值语句是:assign SCLK = clk_en & CLK;
我发现在那个变化的时刻clk_en发生了变化,但其实SCLK并没有变化呀,谁知道这是什么原因呀
感激不尽
image.png image.png 这个最上面是SCLK,第二行是clk_en,第三行是CLK,第四行是移位寄存器,可以看到在白线的时刻数据发生了变化,但是SCLK的值并没有改变
发表于 2020-10-18 09:14:20 来自手机 | 显示全部楼层
clk_en是CLK domajn嗎? 把code貼出來看
发表于 2020-10-18 10:20:32 | 显示全部楼层
把glitch打开,你看看有没有glitch就知道了
 楼主| 发表于 2020-10-18 14:47:53 | 显示全部楼层


jasper0608 发表于 2020-10-18 09:14
clk_en是CLK domajn嗎? 把code貼出來看


clk_en是在这里进行赋值的: image.png

 楼主| 发表于 2020-10-18 14:49:45 | 显示全部楼层


phoenixson 发表于 2020-10-18 10:20
把glitch打开,你看看有没有glitch就知道了


请问这个在哪里打开呀?
发表于 2020-10-18 15:23:40 | 显示全部楼层
"其中SCLK的赋值语句是:assign SCLK = clk_en & CLK; "

这样做是铁定有 glitch 的。
加个 ICG。
发表于 2020-10-18 15:29:46 | 显示全部楼层
这个很简单啊
你的clk_en在delta时刻发生了1->0->1的跳变

另外门控时钟不是这么写的,你这代码不出问题才奇怪,你写门控时钟的时候需要用锁存器去避免glitch的发生
 楼主| 发表于 2020-10-18 16:33:03 | 显示全部楼层


jake 发表于 2020-10-18 15:23
"其中SCLK的赋值语句是:assign SCLK = clk_en & CLK; "

这样做是铁定有 glitch 的。


这个具体怎么加呢?谢谢
 楼主| 发表于 2020-10-18 16:48:17 | 显示全部楼层


churchmice 发表于 2020-10-18 15:29
这个很简单啊
你的clk_en在delta时刻发生了1->0->1的跳变


谢谢啦
请问这个具体怎么加啊
发表于 2020-10-18 21:18:23 | 显示全部楼层
always @(negedge SCLK)
clk_en1 <= clk_en;

assign SCLK = CLK & clk_en1;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-7-4 13:54 , Processed in 0.031682 second(s), 8 queries , Gzip On, MemCached On.

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