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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5712|回复: 14

[求助] vcs前仿时遇到的问题,输入信号不延一拍

[复制链接]
发表于 2021-3-14 22:11:07 | 显示全部楼层 |阅读模式

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

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

x
vcs前仿时遇到的问题,输入信号不延一拍,而是立即赋值给寄存器,
为啥会这样呢?正常不应该是延一拍的嘛,这个问题该如何解决呢?
发表于 2021-3-15 09:28:09 | 显示全部楼层
看不到代码和波形,没法判断吧?
 楼主| 发表于 2021-3-15 10:06:00 | 显示全部楼层


ICS 发表于 2021-3-15 09:28
看不到代码和波形,没法判断吧?


程序的功能其实很简单,就是对输入的信号打两拍处理,但是test1没有做延迟,立即将输入的in 赋值给了test1,这个地方比较奇怪,为什么不延迟一拍?而test1延迟一拍赋值给test2这块是对的

程序

程序

波形

波形
发表于 2021-3-15 13:33:18 | 显示全部楼层
检查给in信号赋值的地方。
我估计是阻塞非阻塞概念没搞清楚
发表于 2021-3-15 13:46:42 | 显示全部楼层


atuhappy 发表于 2021-3-15 13:33
检查给in信号赋值的地方。
我估计是阻塞非阻塞概念没搞清楚


是非阻塞赋值
发表于 2021-3-15 15:51:05 | 显示全部楼层
可以尝试着放大点看看clk/in/test1的上升沿是不是同一时刻,如果是的话那我也不知道为啥了。。。
发表于 2021-3-15 16:14:38 | 显示全部楼层


ICS 发表于 2021-3-15 15:51
可以尝试着放大点看看clk/in/test1的上升沿是不是同一时刻,如果是的话那我也不知道为啥了。。。 ...


是同一时刻,我在后仿的波形里看了一下,后仿波形跟真实的D触发器的波形比较接近,前仿可能还是跟编译器的设置有关
发表于 2021-3-15 16:19:52 | 显示全部楼层
VCS认为in变化在clk变化之前了,把in的驱动代码贴出来看看
发表于 2021-3-15 16:37:30 | 显示全部楼层


失重wlq 发表于 2021-3-15 16:19
VCS认为in变化在clk变化之前了,把in的驱动代码贴出来看看


in的上升沿和clk的上升沿是严格对齐的

波形

波形
发表于 2021-3-15 17:37:24 | 显示全部楼层
本帖最后由 eric1810 于 2021-3-15 17:38 编辑

应该是你的输入给的有问题。
always @(posedege clk)
in<={$random}%WIDTH;
这样给他,应该就没问题。
或者在initial begin #2  in<=2'h2;#2 in<=2'h3;end里也用非阻塞赋值。
以上两种方法我都试过。波形是没有问题的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-27 04:04 , Processed in 0.023669 second(s), 7 queries , Gzip On, Redis On.

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