如何读懂时序报告
从起点、终点、时钟和裕量找出失败路径的原因。
先修知识理解寄存器间组合逻辑。
适用环境通用 RTL 方法;具体工具与器件选项以项目版本为准
验证状态官方资料对照与原创教学示例 · 板卡 / Palladium 步骤待设备验证
先确认分析的路径
找出起点和终点寄存器、发射和捕获时钟,以及对应的时序例外。先判断约束是否反映真实设计意图,再讨论修复路径。错误的时钟关系可能让优化朝错误方向进行。
区分建立与保持问题
建立检查关注数据是否及时到达,保持检查关注数据是否过早改变。查看数据逻辑、布线、时钟偏斜和不确定性各自的贡献。负裕量表示该检查未满足;单看某一个最差路径不能概括全部时钟域。
修复并重新验证
组合层级深可评估流水线,长布线可检查扇出和布局,约束缺失应先修正约束。添加流水线会改变延迟,必须更新接口与检查器。不能靠任意降低目标频率或添加 false path 宣称满足原要求。
原理与信号关系
setup 检查数据能否在捕获边沿前稳定,hold 检查捕获边沿之后是否仍保持足够时间。报告中的 slack 已包含工具采用的时钟关系、路径延迟、uncertainty 等条件;教学公式只能帮助理解,不能替代完整报告。先判断约束是否正确,再判断路径是否过长。将错误时钟关系产生的违例当成逻辑深度问题,往往会造成无效的流水化。
动手步骤与预期结果
按下面的顺序执行,每一步都留下可复核的证据。若当前步骤的预期条件未满足,先停在该阶段定位原因;不要继续累积后续错误。涉及工具、板卡或专用硬件的步骤,需要使用本工程实际版本和配置,示例数值不能直接替代设备规格。
- 定位最差路径组
预期与判定:记录起点、终点、发射和捕获时钟,先确认路径确实应该被同步分析。
- 拆分到达时间
预期与判定:观察单元与网络延迟比例;逻辑深考虑流水化,网络长检查扇出、布局与拥塞。
- 检查时钟与例外
预期与判定:确认周期、生成时钟、uncertainty、multicycle 的语义,不为过关随意改周期或切路径。
- 修改后回归全部相关检查
预期与判定:流水化改变延迟,更新协议及检查器;同时检查 hold、其他路径组和功能。
仅演示 setup 裕量计算,数值已假设为报告中的最终 required 与 arrival;不是完整 STA 模型。
required_ns = 9.6
arrival_ns = 10.2
slack_ns = required_ns - arrival_ns
print(f"setup slack = {slack_ns:.3f} ns")
# 输出 -0.600 ns,表示该假设路径未满足 setup。典型故障:从现象到复测
下面的案例是为说明定位方法而构造的教学场景,不代表真实客户事故或本平台设备实测。实践时先确认现象与证据相符,再采用相应修复;若证据不同,应回到前一步缩小范围,避免把同一种表象都归因于同一个问题。
完成检查
- 读清起点终点与时钟关系
- 区分约束错误和实现瓶颈
- 修复后重新检查所有相关时钟域
延伸阅读与来源
本文为黄河电子原创教学说明。产品命令与支持范围请以实际安装版本的官方文档为准。
继续阅读
FPGA从 RTL 到板上运行的完整流程
建立约束、实现、下载与观测的最小工程闭环。
第一个工程的引脚与时钟约束
区分电气连接与时间要求,避免“能生成位流就算正确”。
跨时钟域问题的识别与处理
根据数据语义选择同步结构,避免把多位总线当成单比特处理。
黄河电子