复位释放后设计不运行

按时钟、复位、使能、输入握手的顺序定位停滞。

先修知识能观察至少一个目标寄存器。

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

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

本文目录先排除观察错误沿控制依赖逐级检查做有边界的验证原理与信号关系动手步骤与预期结果典型故障:从现象到复测

先排除观察错误

核对波形窗口、采样时钟、探针层次和下载版本。若分析仪本身没有采样,不能据此判断 DUT 没有运行。选择一个已知自由运行的计数器作为观察基准。

沿控制依赖逐级检查

确认目标时钟有边沿;检查复位极性、同步链输出以及各域释放情况;再检查 clock enable、状态机入口条件和外部 ready。停在第一处不满足预期的条件,追查其上游来源。

做有边界的验证

构造只包含复位和单个事务的短测试。若依赖 PLL lock、外部初始化或软件写寄存器,把这些事件记录进检查表。不要通过无期限等待掩盖启动条件缺失,超时必须给出当前状态与缺少的事件。

原理与信号关系

卡在复位附近可能是没有时钟、复位极性错误、释放条件未满足,也可能是状态机已经退出复位但第一笔握手没有发生。按依赖顺序检查电源或模型初始化、时钟、复位、启动条件和首笔事务,比直接探测大量内部数据更有效。超时应指明在哪个阶段等待以及已经观察到多少时钟边沿。

复位释放后设计不运行:关键关系时钟存在?边沿计数复位有效?极性 / 持续时间释放条件?锁定 / 同步启动握手?ready / valid用证据逐项排除;状态保持不变不自动等于复位故障
复位释放后设计不运行:关键关系(原创示意,非器件引脚图;窄屏可横向滑动)

动手步骤与预期结果

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

  1. 确认目标域有时钟边沿

    预期与判定:用独立观察点确认时钟推进;门控关闭时先查使能和启动依赖。

  2. 检查 DUT 端实际复位

    预期与判定:观察最终连接到寄存器的复位,而非仅看 Testbench 顶层变量。

  3. 检查解除后的状态

    预期与判定:按设计等待同步释放延迟;检查 PLL lock、初始化完成、启动使能。

  4. 加入有界阶段检查

    预期与判定:分别限制等待复位结束、ready 和首个响应的周期数,超时输出阶段名。

软件 Testbench 片段,观察周期数按项目设置;不会替代对停钟的独立墙钟 watchdog。

SystemVerilog
integer waited;
initial begin
  wait (!rst);
  waited = 0;
  while (ready !== 1'b1 && waited < 100) begin
    @(negedge clk);
    waited = waited + 1;
  end
  if (ready !== 1'b1) $fatal(1, "ready timeout after reset");
end

典型故障:从现象到复测

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

完成检查

  • 已确认采样与下载版本
  • 时钟复位使能逐项核对
  • 短测试有超时与状态输出

延伸阅读与来源

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

继续阅读

排障

编译失败时先收集哪些证据

从第一条错误判断问题属于输入、展开、综合还是资源阶段。

10 分钟
排障

仿真通过但硬件结果不一致

从输入、初始化、语义和跨域行为建立差异清单。

11 分钟
排障

为什么没有捕获到需要的波形

检查窗口、触发、可见性和数据完整性。

10 分钟