找回密码
 注册
关于网站域名变更的通知
查看: 260|回复: 3
打印 上一主题 下一主题

Verilog输出信号延时问题

[复制链接]
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-1-28 09:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

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

    x
    module test1_1(input clk,input in,output reg out1);
    + _8 W; X& `4 V, m% Q% b. ]% ~
    4 p  I, q" w. T5 ualways @(posedge clk)% A1 g, e7 D/ n, p
    out1<=in;
    5 k4 r1 A- i; U) T2 `+ O* dendmodule
    : Y3 X* `4 w4 r新人求教,在clk上升沿时输入in变化那么输出是延时一拍变化还是跟随in立即变化啊,我在modelsim和hdlbits仿真得到了两种结果,一直没搞懂这个问题/ e0 ^+ U( Q3 r; n
  • TA的每日心情
    慵懒
    2022-1-21 15:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-1-28 09:57 | 只看该作者
    我理解的是由于in有一个上升/下降时间,所以在clk上升沿这一瞬间,它是将变化前的值赋给了out,所以out波形要延时一个clk,但是modelsim仿真下来确是两者却是同步的
  • TA的每日心情
    开心
    2022-3-10 15:41
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    3#
    发表于 2022-1-28 10:46 | 只看该作者
    仿真本身的问题,在CLK上升沿时输入in变化本身是不符合要求的,时序逻辑需要满足基本的setup和hold时间要求,时序违例的话,鬼知道会输出什么玩意
  • TA的每日心情
    开心
    2022-1-21 15:22
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-1-28 13:27 | 只看该作者
    你在用modelsim仿真时,in信号应该不是由寄存器输出的,这个信号对你的out1寄存器来说,本质是异步信号,你强行将in信号与clk上升沿对齐,modelsim已经选择了一种最优的方式了,毕竟这个时候是在进行RTL仿真,故意淡化了电路的物理问题,否则,你这个仿真应该给你呈现亚稳态,你确定你不会崩溃?一个寄存器的D输入端是异步的,边沿又和本寄存器的时钟边沿对齐了,又不能给你按照亚稳态仿真,仿真软件必须选择一种实现方式,就是按照成功采样来实现,这无非是符合更多人的直观印象的选择,恰好你不习惯而已。- |8 J: Y* ]; \; ~5 q/ p3 f

    0 ]- [7 S0 \0 b+ {如果modelsim在RTL仿真阶段就给大家呈现组合逻辑的竞争冒险(毛刺满天飞)的话,再给你弄几个亚稳态看看的话,只有两个结果,要嘛你崩溃,要嘛你把modelsim骂到崩溃。
    ) N( O3 Q. }! \
    " _) d9 i# E. G( E& B! Y( _要看到寄存器一个clk节拍的延迟,不用修改你贴出来的out1寄存器的代码,把in信号的代码改为寄存器输出吧,或者把in信号上升沿相对clk上升沿往后延时错开哪怕是1ps,结果就是你想像的了。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-30 13:44 , Processed in 0.125000 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表