You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VHDL代码疑问:out_1相对input_sig_1延迟1个时钟周期的原因咨询

VHDL代码时序问题解答

核心结论

延迟和input_sig_1是signal、input是port无关——port本质就是带方向属性的signal,两者的赋值行为完全一致。真正的原因是信号赋值的执行时机不同:

具体分析

  1. 并发赋值的即时性
    代码中的input_sig_1 <= input;是一条并发赋值语句,只要input发生变化,input_sig_1会在当前仿真时刻立即更新,和input完全同步,没有任何时钟延迟。

  2. 进程内赋值的时钟触发特性
    out_1 <= input_sig_1;是在时钟上升沿触发的进程内部执行的赋值:

    • 只有当时钟上升沿到来时,才会将此刻input_sig_1的当前值锁存到out_1中。
    • 这相当于给input_sig_1做了一级寄存器打拍,因此out_1的波形会比input_sig_1延迟一个时钟周期。
  3. input_sig_2的同步逻辑
    input_sig_2 <= input;同样是在时钟上升沿时执行的赋值,所以input_sig_2也是input经过一级寄存器打拍后的结果。这就是为什么out_1和input_sig_2波形一致——两者都是原信号打一拍后的输出。

补充说明

如果想让out_1和input_sig_1同步,只需要把out_1 <= input_sig_1;改成并发赋值即可,不需要放在时钟进程里。

内容的提问来源于stack exchange,提问作者anor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:50:21