FPGA 连续实战 · 04 时序审查与收敛

区分真实违例、遗漏约束和报告误读,以路径证据指导修改,再生成可追踪位流。

先修知识掌握同步 RTL、非阻塞赋值与 FIFO;按六章顺序完成前置交付。

适用环境Basys 3 / xc7a35tcpg236-1 / 100 MHz;Vivado Tcl 参考 2024.1;Python 3、Icarus Verilog。

验证状态RTL 正常与故障仿真已验证;Vivado 综合、实现、下载和 ILA 采集须在目标环境验证。

本文目录从报告读到设计动作报告命令与判断口径完成审查再生成位流典型故障:用假路径掩盖真实违例

从报告读到设计动作

时序收敛必须同时检查建立、保持、脉宽和路径覆盖范围。先确认主时钟存在,再确认内部端点受约束,最后分析最差路径的逻辑级数与布线占比。这个小工程并不保证在一百兆赫下出现负裕量,若全部合格就保持设计;为了练习而伪造违例或随意放宽时钟,会破坏工程结论。

建立与保持分析共同约束设计,单看 WNS 不足以签核。覆盖范围clock / endpoints最差路径逻辑延迟 / 布线修改设计流水 / 扇出 / 局部布局全量回归功能 + STA + DRC每次修改都重新验证功能并重新实现
建立与保持分析共同约束设计,单看 WNS 不足以签核。(原创示意,非器件引脚图;窄屏可横向滑动)

报告命令与判断口径

实现脚本输出包含未约束路径与详细检查的时序汇总,并附带 CDC、例外和规则检查。按钮与 LED 没有外部同步时序关系,端口延时检查可能仍给出提示,应逐项记录为何适用例外。内部未约束端点、未知时钟或被误切的同步路径不能作为同类提示忽略,必须修复后重新分析。

工程检查与预期结果
观察下一步
内部 no_clock / unconstrained endpoints补齐真实时钟关系,定位遗漏端点
建立负裕量且逻辑级数多考虑流水线或缩短组合逻辑,连同 valid 一起对齐
建立负裕量且布线占比高检查高扇出、拥塞与物理位置,勿先盲加流水线
保持违例检查时钟关系与约束,使用实现工具修复并重查
例如 WNS=-0.35 ns仅为教学示意,不是本工程实测结果

在 build/baseline 的 Vivado Tcl 环境审查已布线检查点;命令以安装版帮助为准。

tcl
open_checkpoint routed.dcp
report_timing_summary -check_timing_verbose -report_unconstrained -max_paths 10
report_cdc
report_exceptions
report_drc
report_methodology

完成审查再生成位流

review.template.txt 不是自动认证表,而是让执行者写下实际报告结论与证据位置。每一项必须填写,并保存为 review.txt;位流阶段还会拒绝负的建立或保持最差裕量以及严重 DRC。自动门槛不能覆盖所有设计问题,脉宽、遗漏约束与例外合理性仍依赖本章人工审查,不能填写无依据的通过。

  1. 审查覆盖

    预期与判定:内部端点全部有合理时序约束。

  2. 审查质量

    预期与判定:建立、保持、脉宽及 DRC 有明确结论。

  3. 填写记录

    预期与判定:六个 review 字段引用实际证据。

  4. 生成发布物

    预期与判定:位流、探针文件与清单来自同一次构建。

在解压后的 fpga-course 目录执行;Vivado 步骤需本机安装并配置 PATH。

bash
cp build/baseline/review.template.txt build/baseline/review.txt
# 编辑 review.txt,填写真实报告位置与结论,不要照抄 PASS
# reviewer=执行者与日期
# setup_hold_pulse_width=实际 WNS/WHS/脉宽结论与报告位置
python3 flow.py vivado baseline bit
# 预期:FPGA_STAGE_PASS bit (not board verification)
# release/ 下产生 fpga_top.bit、fpga_top.ltx、release.json

典型故障:用假路径掩盖真实违例

如果原先存在负裕量,新增宽泛的 false path 后报告突然变好,应先检查路径是否还在分析范围,而不是宣布性能提升。时序例外应来自真实接口协议或时钟关系,并有设计依据。本工程只有按钮首级与人眼 LED 输出两个例外类别,FIFO、检查器及同步器后续级之间都必须保持时序检查。

完成检查

  • 内部路径覆盖完整,例外逐项有依据。
  • 建立、保持、脉宽与 DRC 已按实际报告审查。
  • 发布清单绑定输入、review 与 bit/ltx 哈希。

延伸阅读与来源

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

继续阅读

FPGA

从 RTL 到板上运行的完整流程

建立约束、实现、下载与观测的最小工程闭环。

10 分钟
FPGA

第一个工程的引脚与时钟约束

区分电气连接与时间要求,避免“能生成位流就算正确”。

11 分钟
FPGA

如何读懂时序报告

从起点、终点、时钟和裕量找出失败路径的原因。

10 分钟