管理约束 · 开篇概述(一)
管理约束 · 开篇概述(一)
文章目录
- 管理约束 · 开篇概述(一)
- 1 管理约束 · 开篇概述
- 2. 一张图看懂 XDC 文件体系(图 4.1)
- 3. 生命周期属性 —— “让文件在对的时间做对的事”
- 4. 多策略并行 —— 一次写多套约束,秒切场景
- 5. 一句话记住核心
1 管理约束 · 开篇概述
> “约束”不是附属品,而是设计的“宪法”——它告诉 Vivado:
> “我要多快、要多稳、引脚在哪、时钟谁是谁。”
> 写对一句约束,少跑一次 Implementation;写错一句约束,多烧一夜 FPGA。
2. 一张图看懂 XDC 文件体系(图 4.1)
3. 生命周期属性 —— “让文件在对的时间做对的事”
属性 | 值 | 作用场景 |
---|---|---|
USED_IN | synthesis , implementation , out_of_context , simulation … | 决定文件在何时被读入 |
USED_IN_IMPLEMENTATION | true / false | 老版本兼容,等价于 implementation |
IS_ENABLED | true / false | 立即启用/禁用,无需删除文件 |
PROCESSING_ORDER | EARLY , NORMAL , LATE | 解决“谁覆盖谁”——IP 时钟约束必须是 LATE ,等用户主时钟先加载 (这也会涉及约束优先级问题,有一些IP内的约束优先级低,所有需要主时钟约束OK了,才能约束IP内约束,才不会报错) |
4. 多策略并行 —— 一次写多套约束,秒切场景
场景举例
- 样机 A:DDR4-2400 → 400 MHz
- 样机 B:DDR4-3200 → 533 MHz
操作
- 建两个
Constraint Set
:constrs_2400
,constrs_3200
- 各写一份
timing.xdc
;其余物理约束复用 - 建两个
Implementation Run
分别绑定 - overnight run → 早上一眼对比
WNS
表格(图 7.18~7.21)
5. 一句话记住核心
> “把约束当源代码管理”
> 分文件、分阶段、分策略 → 版本可控、结果可重现、调试有迹可循。