Altifigence Academy

33 / 37 · 概念

Setup、hold 与时序预算

区分最大与最小路径延迟,计算独立于时钟频率的 hold 条件。

功能正确,还必须按时到达

同步路径由发送触发器触发器 在指定时钟边沿存储输入,并保持到下一边沿的元件。输入必须满足 setup、hold 条件。了解更多 → 组合电路 → 接收触发器组成。在两个时钟偏斜均视为 0 的简化模型中,setupsetup 捕获时钟边沿之前,输入数据必须保持稳定的最短时间。违反建立时间就无法保证存储结果。 条件如下。uncertainty 用于保守计入抖动及设计裕量等因素。

Tclk≥tcq,max+tpd,max+tsetup+tuncertaintyT_{clk}\ge t_{cq,\mathrm{max}}+t_{pd,\mathrm{max}}+t_{setup}+t_{uncertainty}

tcqt_{cq} 表示 clock-to-Q,tpdt_{pd} 表示组合最大延迟。扣除寄存器寄存器 存储多位状态的电路。本课程中的同步寄存器在时钟边沿存储指定输入。了解更多产生结果的时间和接收端 setup 时间后,剩余区间才可供组合电路使用。

用数值例子计算路径限制

若 clock-to-Q 为 0.12ns、组合延迟为 1.80ns、setup 为 0.15ns、uncertainty 为 0.08ns,最小时钟周期就是 2.15ns。

fmax≤12.15 ns≈465.1 MHzf_{\mathrm{max}}\le\frac{1}{2.15\ \mathrm{ns}}\approx465.1\ \mathrm{MHz}

500MHz 对应 2ns,因此 setup 裕量为 -0.15ns。此计算只针对给定路径及假设;要保证实际工作频率,必须检查所有相关路径、工艺角和约束。

沿着串联相加的延迟项检查,下方数值之和为 2.15ns。箭头表示时序预算的相加顺序,并不表示器件大小或延迟比例。

消耗 setup 预算的路径
  1. 发送 FF: clock-to-Q: 0.12ns
  2. 组合路径: 最大延迟:1.80ns
  3. 接收条件: setup: 0.15ns
  4. 设计裕量: uncertainty: 0.08ns

hold 关注最快路径

若同一边沿发送端的数据变化过快,就会侵入接收触发器稳定捕获旧值所需的时间。令 skew=0、忽略额外裕量,简化的 hold 条件保持时间 捕获时钟边沿之后,输入数据仍必须保持稳定的最短时间。需结合上下文,将此时序要求与普通的数值保持行为区分。如下。

tcq,min+tcd,min≥tholdt_{cq,\mathrm{min}}+t_{cd,\mathrm{min}}\ge t_{hold}

最小 clock-to-Q 为 0.05ns、最小组合延迟为 0.03ns、hold 为 0.10ns 时,还差 0.02ns。延长周期无法解决这种同一边沿的条件,必须采用增加数据延迟或调整时钟路径等实现措施。

捕获时钟晚于发射时钟到达的正偏斜,通常有利于单周期 setup,却可能不利于 hold。与其记忆符号,不如在时间轴上画出数据到达与捕获边沿。不能在缺乏实际功能依据时,把多周期或 false path 例外当作消除时序警告的办法。

自己试试

某路径周期为 4ns,tcq=0.2t_{cq}=0.2ns、tsetup=0.3t_{setup}=0.3ns、uncertainty=0.1ns,允许的最大组合延迟是多少?把周期改为 8ns 能解决 hold 违规吗?

阅读解释

允许的最大延迟为 4−0.2−0.3−0.1=3.44-0.2-0.3-0.1=3.4ns。普通的同边沿 hold 条件不能靠延长时钟周期解决,必须单独分析最小数据路径与时钟到达时间。

你的选择适用于此浏览器,可随时在页脚更改。