Altifigence Academy

23 / 37 · 概念

波形采样时刻与因果关系

区分组合稳定、时钟捕获与事件顺序,正确阅读波形。

同一个时间值内也有顺序

波形中的信号看似在同一时间戳变化,并不意味着它们无因果地同时改变。在事件驱动 RTL 模拟器中,需要处理活动事件、非阻塞非阻塞赋值 时序 RTL 中以 <= 表示的赋值。先计算右侧,再预约更新,使同一边沿的各寄存器能够依据旧状态计算。了解更多更新等之后,数值才稳定。实际器件则经过 clock-to-Q 与组合传播延迟传播延迟 从输入变化到输出稳定为正确值所需的时间。逻辑表达式等价与时间特性是两回事。了解更多后变化。必须区分这两种模型。

本实验按“施加输入 → 组合求值 → 上升沿上升沿 时钟从 0 变为 1 的瞬间。它不同于表示整个 CLK=1 区间的电平。了解更多捕获 → 状态更新”建立预测表。同时确认所用工具施加输入与记录结果的时刻。

必须检查实际模拟器的事件调度与输出记录时刻。以下顺序表示编写预测表时要区分的四个阶段,并不表示四个时钟周期。

分离激励施加与观察时刻
  1. 驱动输入: 改变 a、b、sel
  2. 组合求值: y = sel ? b : a
  3. 上升沿: 捕获边沿前的 y
  4. 更新后观察: 比较 sampled_y

先独立计算预期值

yk=sk‾ak+skbk,qk+1=yky_k=\overline{s_k}a_k+s_kb_k,\qquad q_{k+1}=y_k

计算每组输入的 y,再用独立列标明该值会在哪个边沿反映到 q。找到实际值与预期值首次不同的行,就能把原因缩小到输入施加、选择函数或存储行为。

区分转换过程与稳定状态

选择信号切换时,若两个数据输入相同,最终输出应相同,但内部路径延迟差可能产生短毛刺。反过来,也不能把所有正常的输出变化都称为毛刺。逻辑波形比较与物理时序分析回答的是不同问题。

普通测试平台若与 DUT 在同一上升沿改变激励并立即读取值,可能发生竞争。应分离激励驱动与观察时刻,或采用 clocking block 等明确的同步机制。当前 DDS 实验使用输入 JSON 与工具规定的单时钟规则,不额外加入任意 #delay 测试平台。

自己试试

若波形最终的 y 与 sampled_y 均为 1,能否断定中间周期也正确?

阅读解释

不能。即使选择线接反或晚一个周期存储,最后输入为 a=b=1 时也可能得到相同最终值。必须逐个边沿比较预期值,并包含 a、b 不同期间的 sel 切换。

你的选择适用于此浏览器,可随时在页脚更改。