如何规划片上逻辑分析仪采样
用明确触发和采样时钟捕获故障附近的关键事件。
先修知识已完成上板运行。
适用环境通用 RTL 方法;具体工具与器件选项以项目版本为准
验证状态官方资料对照与原创教学示例 · 板卡 / Palladium 步骤待设备验证
从待验证假设选择信号
先写下怀疑的故障,例如 valid 拉高但 ready 长期不响应,再选握手、状态机、计数器与复位。大量无关探针会消耗资源并增加观察负担。
采样时钟必须适合被观测信号
确认分析仪采样时钟在故障发生时仍运行。跨域信号要考虑采样解释,不把异步边沿的采样结果当成精确时序测量。触发位置预留足够前置窗口,看到故障形成过程。
重新实现后核对结果
插入探针可能改变布局、时序和资源使用,必须重新检查实现报告。核对探针描述文件与下载位流来自同一次构建。先用容易出现的事件验证触发链路,再等待偶发异常。
原理与信号关系
ILA 使用连接到它的采样时钟记录探针值,能够看到的是该时钟域上的离散样本。若采样时钟停止,采集也无法正常推进。捕获深度决定可保存多少样本,触发位置决定多少样本在触发前;增大探针宽度和深度会占用更多调试资源,并可能改变实现结果。优先捕获能重建事务的信号,而非一次加入所有总线。
动手步骤与预期结果
按下面的顺序执行,每一步都留下可复核的证据。若当前步骤的预期条件未满足,先停在该阶段定位原因;不要继续累积后续错误。涉及工具、板卡或专用硬件的步骤,需要使用本工程实际版本和配置,示例数值不能直接替代设备规格。
- 选择能解释失败的探针
预期与判定:包括复位、状态、valid、ready、关键数据和事务编号;跨域信号按实际同步后含义解释。
- 预算窗口
预期与判定:假设深度 1024、时钟 100 MHz,连续采样总跨度 10.24 µs;需要更早历史则增加触发前样本。
- 先用必然发生的事件触发
预期与判定:先验证计数器翻转等简单条件能完成采集,再配置复杂失败条件。
- 匹配位流与探针文件
预期与判定:使用同一次构建的 bitstream 与调试探针文件;加入 ILA 后重新检查资源及时序。
连续采样窗口计算,Python 3 可运行;不包含存储限定等高级采集模式。
depth = 1024
clock_hz = 100_000_000
pretrigger = 768
print("total us:", depth / clock_hz * 1e6)
print("before us:", pretrigger / clock_hz * 1e6)
print("after us:", (depth-pretrigger) / clock_hz * 1e6)典型故障:从现象到复测
下面的案例是为说明定位方法而构造的教学场景,不代表真实客户事故或本平台设备实测。实践时先确认现象与证据相符,再采用相应修复;若证据不同,应回到前一步缩小范围,避免把同一种表象都归因于同一个问题。
完成检查
- 采样时钟可靠运行
- 探针文件与位流匹配
- 插入探针后时序仍满足要求
延伸阅读与来源
本文为黄河电子原创教学说明。产品命令与支持范围请以实际安装版本的官方文档为准。
- AMD UG908 · 2024.1 · Programming and Debugging
ILA 采样、触发与捕获窗口设置;具体属性以所用工具版本为准。
- AMD Vivado 官方开发者资源
继续阅读
FPGA从 RTL 到板上运行的完整流程
建立约束、实现、下载与观测的最小工程闭环。
第一个工程的引脚与时钟约束
区分电气连接与时间要求,避免“能生成位流就算正确”。
如何读懂时序报告
从起点、终点、时钟和裕量找出失败路径的原因。
黄河电子