第一个工程的引脚与时钟约束
区分电气连接与时间要求,避免“能生成位流就算正确”。
先修知识理解顶层端口与板卡原理图。
适用环境通用 RTL 方法;具体工具与器件选项以项目版本为准
验证状态官方资料对照与原创教学示例 · 板卡 / Palladium 步骤待设备验证
引脚约束描述物理连接
逐一对应顶层端口与原理图网络,确认封装引脚、I/O Bank 电压和 I/O 标准。差分接口还需检查正负端和专用引脚要求。不能为消除 DRC 而随意选择电平标准。
时钟与接口约束描述时间
按实际晶振定义主时钟;派生时钟和外部输入输出延迟依据真实电路与器件要求填写。输入延迟不是随意选的安全余量,它反映外部器件和板级路径的时间预算。
检查约束是否真正命中
打开时钟与未约束路径报告,检查对象名称能匹配有效端口。对 false path 和 multicycle path 写明设计理由,并确认不会掩盖本该检查的路径。更改约束后重跑分析,检查被覆盖和被排除的路径。
原理与信号关系
时钟约束定义分析边沿,I/O 延迟描述 FPGA 外部器件与板级走线消耗的时间。input delay 不是 FPGA 内部路径延迟,不能为了消除负裕量随意缩小。最大值与最小值分别服务于不同的检查,两者都要根据外设 Tco、板级数据延迟和时钟偏斜推导。引脚与 IOSTANDARD 还需匹配具体板卡,本文不提供可直接用于任意板卡的引脚表。
动手步骤与预期结果
按下面的顺序执行,每一步都留下可复核的证据。若当前步骤的预期条件未满足,先停在该阶段定位原因;不要继续累积后续错误。涉及工具、板卡或专用硬件的步骤,需要使用本工程实际版本和配置,示例数值不能直接替代设备规格。
- 建立主时钟
预期与判定:从板级规格确认频率与端口;示例 clk 为 100 MHz,即周期 10 ns。
- 推导输入延迟
预期与判定:教学假设:Tco=0.6~2.4 ns,数据走线=0.2~0.7 ns,两端时钟路径相同,则 min=0.8 ns、max=3.1 ns。
- 核对约束对象
预期与判定:确认 get_ports 匹配数量与总线位数一致,空集合必须修正;生成时钟依实际结构建模。
- 检查遗漏与错误例外
预期与判定:读取 check_timing、report_clocks;对异步时钟切断时序分析之前先确认正确的跨域电路。
Vivado 教学数值,假设端口 clk 与 din 存在且接口同源同步;必须替换为真实接口计算结果。
create_clock -name sys_clk -period 10.000 [get_ports clk]
set_input_delay -clock sys_clk -max 3.100 [get_ports {din[*]}]
set_input_delay -clock sys_clk -min 0.800 [get_ports {din[*]}]
report_clocks
check_timing典型故障:从现象到复测
下面的案例是为说明定位方法而构造的教学场景,不代表真实客户事故或本平台设备实测。实践时先确认现象与证据相符,再采用相应修复;若证据不同,应回到前一步缩小范围,避免把同一种表象都归因于同一个问题。
完成检查
- 引脚来源可追溯
- 时钟周期与实际输入一致
- 无未解释的未约束路径
延伸阅读与来源
本文为黄河电子原创教学说明。产品命令与支持范围请以实际安装版本的官方文档为准。
- AMD UG949 · 2023.2 · Defining Input Delays
输入延迟公式、板级时钟路径差与 min/max 的含义。
- AMD Vivado 官方开发者资源
- Quartus Timing Analyzer 官方资源
继续阅读
FPGA从 RTL 到板上运行的完整流程
建立约束、实现、下载与观测的最小工程闭环。
如何读懂时序报告
从起点、终点、时钟和裕量找出失败路径的原因。
跨时钟域问题的识别与处理
根据数据语义选择同步结构,避免把多位总线当成单比特处理。
黄河电子