管理约束 · 开篇概述(一)
文章目录
阅读书籍《vivado从此开始》(进阶篇)
米联客时序约束教程
该系列文章仅仅进行学习记录,希望把自己的学习中遇到不理解和领悟的地方进行分享,有不对的地方请大家指正!!!
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. 一句话记住核心
> “把约束当源代码管理”
> 分文件、分阶段、分策略 → 版本可控、结果可重现、调试有迹可循。
685

被折叠的 条评论
为什么被折叠?



