时钟和复位为何决定验证结果

从采样边沿与初始状态理解设计启动过程。

先修知识理解触发器与同步逻辑。

适用环境通用 RTL 方法;具体工具与器件选项以项目版本为准

验证状态官方资料对照与原创教学示例 · 板卡 / Palladium 步骤待设备验证

本文目录区分三个时间概念让复位过程可解释定位启动停滞原理与信号关系动手步骤与预期结果典型故障:从现象到复测

区分三个时间概念

设计时钟定义 RTL 的状态变化;仿真时间描述事件顺序;硬件运行速度描述真实时间内推进了多少设计周期。这三者不能互换。调试时用设计周期标记检查点,再单独记录真实运行耗时。

让复位过程可解释

明确复位极性、同步或异步属性、各时钟域的释放条件。异步复位的释放应按设计要求同步处理;不要仅靠延长一个固定延时掩盖时钟尚未稳定的问题。观察复位源、同步链末端和第一个状态寄存器,确认它们按预期先后变化。

定位启动停滞

先确认时钟实际到达目标模块,再确认复位释放,然后检查 clock enable、状态机条件和输入握手。跨域标志应经过合适的 CDC 结构。把检查顺序固化,比同时观察所有信号更容易找到第一处异常。

原理与信号关系

时钟定义状态何时变化,复位定义状态从哪里开始。同步复位只有在有效时钟边沿才能被采样,因此无时钟时拉高同步复位并不会立即改变寄存器。异步复位可以异步置位,但释放过程仍要考虑 recovery/removal 和不同寄存器退出复位的相对时刻。跨多个时钟域时,应为每个域设计并验证自己的释放路径,不能因为两个域共用一个复位引脚就认为释放同步。

时钟和复位为何决定验证结果:关键关系参考时钟振荡器 / 模型时钟网络分频 / 门控域内寄存器边沿采样状态观测复位后检查rst → 每个时钟域的复位释放电路 → 状态寄存器
时钟和复位为何决定验证结果:关键关系(原创示意,非器件引脚图;窄屏可横向滑动)

动手步骤与预期结果

按下面的顺序执行,每一步都留下可复核的证据。若当前步骤的预期条件未满足,先停在该阶段定位原因;不要继续累积后续错误。涉及工具、板卡或专用硬件的步骤,需要使用本工程实际版本和配置,示例数值不能直接替代设备规格。

  1. 列出所有时钟域

    预期与判定:记录源、频率、相位关系、门控使能和复位极性;生成时钟不能只靠名称推断。

  2. 先确认时钟再检查复位

    预期与判定:观察至少 10 个目标时钟有效边沿;同步复位应跨越足够边沿,解除后检查状态。

  3. 分别验证冷启动和运行中复位

    预期与判定:在存在待处理事务时施加复位;明确旧事务是丢弃、重试还是排空,检查器同步处理。

  4. 检查门控和释放条件

    预期与判定:门控停止时同步复位可能无法生效;先按设计规定恢复时钟,再完成复位序列。

教学检查片段:同步高有效复位;放在软件 Testbench 中,#1 仅用于避开 NBA 采样竞争,不是硬件实现。

SystemVerilog
rst = 1;
repeat (4) @(posedge clk);
@(negedge clk) rst = 0;
@(posedge clk); #1;
if (state !== IDLE) $fatal(1, "reset state mismatch");

典型故障:从现象到复测

下面的案例是为说明定位方法而构造的教学场景,不代表真实客户事故或本平台设备实测。实践时先确认现象与证据相符,再采用相应修复;若证据不同,应回到前一步缩小范围,避免把同一种表象都归因于同一个问题。

完成检查

  • 列出每个时钟域及频率关系
  • 记录复位释放条件
  • 检查目标寄存器确实更新

延伸阅读与来源

本文为黄河电子原创教学说明。产品命令与支持范围请以实际安装版本的官方文档为准。

继续阅读

基础

如何选择软件仿真、硬件仿真与 FPGA 原型

从验证目标、可见性和工程投入出发,选择当前阶段的验证方法。

10 分钟
基础

读懂 DUT、Testbench 与软硬件分工

明确设计边界、激励、检查器与交互接口各自的职责。

12 分钟
基础

如何准备一个可复现的问题工程

用最少信息重现故障,让同事和 FAE 能够接手分析。

10 分钟