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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2912|回复: 7

[求助] modelsim仿真寄存器没有延时输出

[复制链接]
发表于 2020-9-29 15:42:53 | 显示全部楼层 |阅读模式

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

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

x
image.png image.png
test_d1 不是应该延迟一拍输出吗,为什么仿真出来是和 test 信号同时变化的呀?
发表于 2020-9-29 22:52:44 | 显示全部楼层
你把波形放大了看看,我怀疑你的test的沿其实在sclk之前,可能就差几个ps。而你的test_d1
应该是跟着sclk翻转的,所以看上去就是现在这个样子!
发表于 2020-9-30 07:33:37 来自手机 | 显示全部楼层
test訊號加一些延遲以模擬Ck to q,或者也用non blocking的寫法
 楼主| 发表于 2020-9-30 13:29:51 | 显示全部楼层


Mucar 发表于 2020-9-29 22:52
你把波形放大了看看,我怀疑你的test的沿其实在sclk之前,可能就差几个ps。而你的test_d1
应该是跟着sclk翻 ...


放大了看是对齐的,就是没有延时
 楼主| 发表于 2020-9-30 13:30:58 | 显示全部楼层


jasper0608 发表于 2020-9-30 07:33
test訊號加一些延遲以模擬Ck to q,或者也用non blocking的寫法


test信号用non blocking赋值结果是对的,会延时一拍,请问这是为什么呢?
发表于 2020-9-30 16:27:16 | 显示全部楼层
你把test信号的表达式贴出来看看。
发表于 2020-9-30 17:32:40 | 显示全部楼层
估计test的激励是clk触发的,在一个时钟区域中,tb的行为比rtl早,所以同一个时钟产生的test会在同一个时钟采样到。
发表于 2020-10-1 23:33:34 | 显示全部楼层
你可能对D触发器理解不深刻。很多人也是有个误解,认为D触发器,输出和输入的延迟就是一个时钟周期。
请看下面时序图(ref: https://en.wikipedia.org/wiki/Flip-flop_(electronics))。数据在时钟上升沿被采样,其前后数据需要满足建立时间(Tsu)和保持时间(Th),经过一定输出延时(Tco)后,输出端口才更新数据。注意:这里的Tco不是一个时钟周期!!!
因为Modelsim做的是功能仿真,触发器为理想状态,仿真器设置Tco为0,所以你看到的就是Data和数据是“没有延时输出的”!
正确延时一个周期的做法是两个D触发器串联,如:
q1 <= D;
q2 <= q1;
此时,Q1和D之间会有Tco延时,也是因为Tco,Q2和Q1之间会有一个周期延迟,因为第二个触发器采样的是第一个触发器上一个周期的状态。

                               
登录/注册后可看大图




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

本版积分规则

关闭

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

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

GMT+8, 2024-6-2 05:45 , Processed in 0.031392 second(s), 8 queries , Gzip On, Redis On.

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