基线设计(Baseline Design)全流程拆解(二)

基线设计(Baseline Design)全流程拆解



前言

对于例外约束,一般靠代码,而不是靠约束来规避。


第一章 基线设计(Baseline Design)全流程拆解

对应原书 5.2 节,官方推荐的“三步走”时序收敛骨架
在这里插入图片描述
在这里插入图片描述


1.1 知识点:基线设计三大阶段

步骤目的门槛值交付物
① 基线约束所有内部同步路径被正确约束综合后 WNS ≥ -0.3 ns只有时钟+异步组+明显伪路径
② 添加 IO 约束所有 IO 路径也被约束实现后 WNS ≥ -0.3 ns加入 set_input/output_delay
③ 添加例外约束多周期/虚假路径真正生效最终 WNS ≥ 0 ns最终冻结版 XDC

任何一步 WNS < -0.3 ns → 停!先修时序或 RTL


1.2 解析:为什么必须“-0.3 ns”红线

  • 布局后 WNS < -0.3 ns 时,布线器几乎没有 slack 可借给保持时间修复 → 最终很难拉到 0 ns
  • 官方经验值:-0.3 ns 是 “布线阶段还能拉回来” 的最后安全垫
  • -0.3 ns 仍达不到 → 必须先 逻辑优化/插流水线/换策略,而不是继续往下加约束

1.3 补充:三步走检查脚本(一键模板)

# Step-0 环境准备
open_run synth_1
set rpt_suffix [clock format [clock seconds] -format %m%d%H%M]

# Step-1 基线体检
check_timing           -name chk_base_$rpt_suffix
report_methodology     -name ufdm_base_$rpt_suffix
report_clock_networks  -name clk_base_$rpt_suffix
report_timing_summary  -name ts_base_$rpt_suffix

脚本化→ nightly Jenkins 可自动判红:出现 Critical/Warning 即中断流水线


2.1 知识点:Timing Constraints Wizard(TCW)正确打开方式

  1. 只在综合后网表打开 → 工具能 看到真实时钟端口
  2. 第一阶段只填三类
    • 主时钟 create_clock
    • 生成时钟 create_generated_clock
    • 异步时钟组 set_clock_groups -async
  3. IO 延迟、多周期、false_path 先跳过 → 保证 baseline 纯净

2.2 解析:TCW 为何有时扫不出 GT/高速收发器时钟

  • GT 的 RXOUTCLK/TXOUTCLK 藏在 IP 子层次不是顶层端口
  • TCW 默认 只扫顶层端口 → 会漏掉 RXOUTCLK/TXOUTCLK
  • 结果:check_timingno_clock → 真实频率可能 > 300 MHz,隐患极大

3.1 知识点:例外约束“三剑客”优先级

set_clock_groups > set_false_path > set_max/min_delay > set_multicycle_path

同一路径同时被多条命中按上面顺序生效后面的被忽略


3.2 解析:为什么“只写 -setup 不写 -hold”会翻车

  • set_multicycle_path 3 -setup 只把建立捕获沿推后 2 周期
  • 保持检查仍用默认捕获沿Hold Requirement = 1 周期可能报假 Hold 违例
  • 必须成对写
    set_multicycle_path 3 -setup -end
    set_multicycle_path 2 -hold  -end   ;# 3-1=2
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值