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

Verilog时钟沿触发时信号跳变,if条件取值规则咨询

Verilog时钟沿触发时信号跳变的条件求值问题

核心规则说明

在Verilog同步逻辑中,always @(posedge clk)这类时钟沿触发的块,是在时钟上升沿采样输入信号的数值来执行逻辑判断,这个采样行为严格遵循建立时间和保持时间的时序规则:

  • 如果信号x的跳变发生在时钟上升沿的建立时间窗口内(时钟沿前的规定时间区间),或者保持时间窗口内(时钟沿后的规定时间区间),这属于时序违规。此时仿真工具通常会输出未知态X作为采样结果,实际硬件中则可能出现亚稳态,导致if(~x)的条件判断结果完全不可预测。
  • 如果x的跳变完全发生在建立时间之前,采样到的是跳变前的稳定值0,~x为1,条件成立,y会被赋值为1'b0;如果跳变完全发生在保持时间之后,采样到的是跳变后的稳定值1,~x为0,条件不成立,y保持原有状态。

关于波形精度的补充

若当前波形的时间精度无法分辨x是否稳定,说明仿真的时间步长设置过大,无法捕捉x跳变与时钟上升沿的精确时序关系。此时可以提高仿真的时间精度(例如将时间单位从1ns调整为1ps),就能明确两者的先后顺序,进而确定采样的具体数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:25:35