在数字集成电路的浩瀚世界里,时钟是所有逻辑的心跳。每一次心跳(时钟沿),数据都必须在正确的时间窗口内准备就绪,才能被触发器(Flip-Flop)准确无误地锁存。这个时间窗口,由两个核心参数定义:建立时间 (Setup Time) 和 保持时间 (Hold Time)。
长久以来,我们习惯于用一种简单粗暴的方式来测试它们:不断挤压时间,直到电路“罢工”,也就是从“Pass”到“Fail”的那一瞬间。但这种方法就像在悬崖边试探,不仅危险,而且往往不够精确。
今天,让我们来聊一种更优雅、更科学的测试方法——10% Push-out Methodology。它不再纠结于“会不会崩”,而是关注“性能何时开始下降”。
什么是 10% Push-out Methodology?
想象一下你在测试一辆跑车的极限速度。传统方法是不断加速,直到引擎爆炸(Fail)。而 10% Push-out 方法则不同,它会不断加速,直到你发现车身开始出现明显抖动,性能下降了10%(性能拐点)。你选择在这个点停下来,并将其定义为安全操作的极限。

图:建立时间与时钟到输出延迟(tpd)的关系,完美诠释了10% Push-out 的核心思想
在芯片测试中,这个“性能抖动”就是**时钟到输出的延迟(tpd, Clock to Q delay)**的增加。
核心思想: 我们通过微调时钟或数据边沿,故意去压缩建立时间或保持时间,直到我们测得的 tpd 比其最理想情况下的值增加了10%。这个点,就是我们定义的 setup/hold 时间边界。
实战演练:如何测量建立时间 (Setup Time)?
让我们结合上图,一步步拆解这个过程:
第一步:找到性能基准 (Baseline Delay, D0)
首先,我们得知道电路的“最佳状态”是怎样的。我们会给出一个非常宽松、绝对能满足时序的建立时间(例如,将数据在时钟到来前半个周期就准备好)。
在这个理想条件下,我们测量一个基准的时钟到输出延迟 (tpd)。如图中的绿线 D0 所示,当 tsetup 足够大时,tpd 稳定在最小值,大约 0.7ns。这个值就是我们的性能基准。
第二步:逐步挤压,寻找性能拐点
接下来,好戏登场了。我们保持时钟频率不变,开始逐步向后移动数据的变化沿,也就是一点点地压缩建立时间 (tsetup)。
tsetup= 1.3ns -> tpd ≈ 0.7nstsetup= 1.0ns -> tpd ≈ 0.7nstsetup= 0.7ns -> tpd ≈ 0.71ns (嗯?开始有变化了!)- …
随着 tsetup 越来越小,留给触发器内部准备的时间变少,其输出会变慢,tpd 开始增加。
第三步:锁定 10% 的“Push-out”点
我们的目标是找到 tpd 增加了 10% 的那个点。
- 基准延迟
D0= 0.7ns - 增加目标
10% * D0= 0.07ns - 目标 tpd =
0.7ns + 0.07ns= 0.77ns
现在,我们在图中的蓝色曲线上找到 tpd 为 0.77ns 的点,它所对应的横坐标,就是我们最终测得的建立时间!从图上看,这个值大约是 0.4ns。
测量保持时间 (Hold Time) 的过程完全一样,只是方向相反——我们让数据边沿越来越靠近并“侵入”时钟沿之后的时间。
为什么说 10% Push-out 是一种更优秀的方法?
从简单的 Pass/Fail 切换到这种看似更复杂的方法,究竟带来了什么好处?
-
🎯 更高的稳定性和可重复性
在 Pass/Fail 的临界点,电路极易进入亚稳态,导致测试结果随机跳动。而测量 tpd 的变化是一个模拟量的过程,结果非常稳定,每次测试都能得到几乎相同的结果。 -
🛡️ 避免亚稳态的“黑洞”
该方法在电路进入功能完全失效或亚稳态的危险区域之前就完成了测量,有效保护了芯片和测试设备。 -
📈 内置设计裕量 (Margin)
我们定义的边界是“性能开始显著下降”的点,而不是“彻底崩溃”的点。这天然地为芯片的实际工作保留了宝贵的安全裕量。 -
🤝 完美衔接设计与测试
电路设计阶段的 SPICE 仿真结果,同样能精确地展示出 tpd 随tsetup/thold变化的曲线。这意味着,测试工程师在ATE机台上看到的数据,可以和设计工程师在EDA工具里看到的结果进行完美的关联和验证。
总结
在追求更高性能、更低功耗的今天,芯片设计的每一个环节都充满了挑战。时序测试早已不是一个非黑即白的“Pass/Fail”游戏。
10% Push-out Methodology 代表了一种更精细、更科学的思维方式。它让我们从关注“能否工作”转向关注“工作得好不好”,通过量化性能的衰减来定义时序的边界。这种方法不仅让测试结果更可靠、更具指导意义,也架起了设计与测试之间更紧密的桥梁。
下次当你看到一份芯片的时序报告时,不妨想一想,这些精准数字的背后,可能就隐藏着这样一种“温柔”而强大的测试艺术。
4万+

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



