OCV时序分析模式下,为什么想看hold time violation需要用-early,想看setup需要用-late?
专栏:iLoveIC Aug. 10, 2026, 12:35 p.m. 11 阅读
如何理解静态时序分析中,OCV模式下的early和late?为什么我想看hold time violation需要用-early,想看setup需要用-late?

要理解这个问题,首先需要明白OCV(片上工艺偏差)和STA(静态时序分析)的基本逻辑。

简单来说,-early-late是OCV分析中用来模拟芯片上不同区域工艺偏差的两种“滤镜”:

  • -late:让路径变慢(延迟变大)。

  • -early:让路径变快(延迟变小)。

OCV分析的核心思想,就是同时考虑最坏和最好的情况,来模拟现实中的不确定性。

🎯 为什么检查Setup要用 -late

建立时间(Setup Time)检查,是要确保信号不能到达得太晚,否则时钟沿就抓不到了。

为了抓住最极端、最容易出错的“晚到”情况,OCV分析会构造一个对Setup最不利的场景:

  • 让信号(Launch Clock & Data)尽量“晚”:这是为了模拟信号在传输过程中可能遭遇的最慢路径。因此,发射时钟路径(Launch Clock Path)和数据路径(Data Path)都会使用 -late 来分析。

  • 让采样时钟(Capture Clock)尽量“早”:这是为了模拟采样时钟可能最快到达,从而“不等”信号的情况。因此,捕获时钟路径(Capture Clock Path)会使用 -early 来分析。

这样一来,信号到达时间(Arrival Time)被放大了(慢),而采样信号要求时间(Required Time)被缩小了(快)。整个分析的裕量(Slack)会变小,从而暴露出最坏的Setup违例。

🎯 为什么检查Hold要用 -early

保持时间(Hold Time)检查,是要确保信号不能到达得太早,否则会冲掉上一拍的数据。

为了抓住最极端、最容易出错的“早到”情况,OCV分析会构造一个对Hold最不利的场景:

  • 让信号(Launch Clock & Data)尽量“早”:这是为了模拟信号可能以最快速度冲过来的情况。因此,发射时钟路径(Launch Clock Path)和数据路径(Data Path)都会使用 -early 来分析。

  • 让采样时钟(Capture Clock)尽量“晚”:这是为了模拟采样时钟可能最晚才到,从而更“慢”地锁存住数据,让早到的信号有机会造成破坏。因此,捕获时钟路径(Capture Clock Path)会使用 -late 来分析。

这样一来,信号到达时间(Arrival Time)被缩小了(快),而采样信号要求时间(Required Time)被放大了(慢)。同样,分析的裕量会变小,从而暴露出最坏的Hold违例。

📊 总结:两种检查的路径配置

为了让你更清晰地对比,我把两种检查的路径配置整理如下:

时序检查发射时钟路径 (Launch Clock)数据路径 (Data Path)捕获时钟路径 (Capture Clock)
建立时间 (Setup)-late (变慢)-late (变慢)-early (变快)
保持时间 (Hold)-early (变快)-early (变快)-late (变慢)

这个配置表清晰地展示了OCV分析的“悲观”思想:它总是把对检查不利的因素放大。对于Setup,就放大“慢”的因素;对于Hold,就放大“快”的因素。通过这种方式,STA工具可以确保你的设计在各种工艺偏差下都能稳定工作。

感谢阅读,更多文章点击这里:【专栏:iLoveIC】
最新20篇