3、OCV在STA中的实现:Derating因子的概念,Setup与Hold的Derating方向,Early/Late路径分析

好,咱们接着聊。上一章我讲了OCV是什么,以及它为什么让做时序的人头疼。这一章,咱们就深入看看,在STA工具里,OCV到底是怎么实现的。

说白了,OCV在工具里的实现,核心就靠一个东西——Derating因子(降额因子)。你想想看,工艺波动导致延迟有偏差,我们不可能真的去模拟每一颗芯片。那怎么办?我们就给标准单元和互连线的延迟,乘上一个系数,让它的延迟变大或者变小,以此来模拟最差的情况。

Derating因子:一个放大镜

Derating因子,你可以把它理解成一个放大镜。它把原本的延迟值,往悲观的方向去放大。

  • 对于Setup检查:我们希望数据路径慢一点,时钟路径快一点,这样才容易出问题。所以,数据路径的延迟要乘上一个大于1的因子(比如1.1),让它变慢;时钟路径的延迟要乘上一个小于1的因子(比如0.9),让它变快。
  • 对于Hold检查:正好反过来。我们希望数据路径快一点,时钟路径慢一点。所以,数据路径的延迟要乘上一个小于1的因子,让它变快;时钟路径的延迟要乘上一个大于1的因子,让它变慢。

嗯,这里要注意,不同的工艺节点,这个Derating因子的大小差别很大。我记得在180nm时代,大家用1.05、0.95就差不多了。到了28nm,可能就要用到1.15、0.85。现在到了7nm、5nm,因子甚至可能到1.3、0.7。工艺越先进,波动越大,因子就越夸张。

核心概念:Derating因子不是凭空捏造的,它通常由晶圆厂(Foundry)根据大量的测试芯片数据统计得出,并写在工艺库的文档里。我们做STA的,就是忠实地执行这些规则。

Setup与Hold的Derating方向

刚才提到了Setup和Hold的Derating方向是相反的。我画个表格,你一看就明白了。

检查类型 数据路径(Data Path) 时钟路径(Clock Path) 目的
Setup Late(慢,乘 >1) Early(快,乘 <1) 模拟最差情况下的建立时间
Hold Early(快,乘 <1) Late(慢,乘 >1) 模拟最差情况下的保持时间

你看,是不是很清楚?Setup和Hold的Derating方向,就像两个相反方向的力,把时序路径往两个极端去推。我们做STA,就是要确保在这两个极端情况下,电路都能正常工作。

个人经验:我在一个28nm的项目中,遇到过Setup和Hold同时违例的情况。当时我检查了Derating的设置,发现是脚本里把Setup和Hold的Derating方向搞反了。修正之后,违例就消失了。所以,Derating方向一定要检查清楚,这是最基础也最容易出错的地方。

Early/Late路径分析

刚才的表格里,我提到了“Late”和“Early”这两个词。在STA工具里,我们分析一条路径时,会同时分析它的Late Arrival Time(最晚到达时间)和Early Arrival Time(最早到达时间)。

为什么会这样?因为OCV的存在,同一个路径上的不同单元,延迟可能同时有快有慢。工具需要同时考虑这两种情况。

  • Late Path:指路径上所有单元都取最慢的延迟(乘上Late Derating因子)。这通常用于Setup检查。
  • Early Path:指路径上所有单元都取最快的延迟(乘上Early Derating因子)。这通常用于Hold检查。

你可能会问,那一条路径上,既有Late又有Early,怎么办?嗯,这就是AOCV(Advanced OCV)要解决的问题了。AOCV会根据路径的深度,动态地调整Derating因子。路径越深,各个单元的延迟偏差会相互抵消一部分,Derating因子就可以小一点。这个我们下一章再细聊。

避坑指南:我曾经在一个项目中,只分析了Setup的Late路径,忽略了Hold的Early路径。结果流片回来,芯片在低温低压下出现了Hold违例,导致数据采集错误。那一次教训让我深刻认识到,Early和Late路径分析,一个都不能少

好了,这一章的内容就到这里。总结一下:

  1. OCV在STA中通过Derating因子实现。
  2. Setup和Hold的Derating方向相反
  3. STA工具会同时分析Early和Late两条路径。

下一章,我们聊聊更高级的AOCV,看看它是如何解决Derating因子过于悲观的问题的。