CPPR模式

CPPR模式,第1张

Common Path  Pessismism Removal。

Common path 是指的两条时钟路径在分叉前一起走过的部分,起点由时序分析来定。

Pessismism 是指在分析建立保持时间的时候,我们取的都是最坏/悲观的情况。

那么为什么又要Removal呢?请看下图。

以建立时间分析为例,我们给Launch Path最长的延迟参数,而Capture Path最短的延迟参数。但是对于C1和C2,它们属于Common Path,那么就不太合理,因为运行的时候这两个器件的延迟一定是一样的。

所以我们计算出来的建立时间容限要比实际值小一点,在这里是小了0.2*2ns。

除此之外,还要考虑Capture Clock和Launch Clock有效沿不同以及Cross Talk(串扰)的问题。

OCV 模式和 CPPR 模式的技术层面解答:

OCV是on-chip variation. 是指在同一个芯片上, 由于制造工艺等原因造成的偏差. 具体表现在到两个ff的clk端的时钟路径. 本来时间应该是一样的. 但是因为制造工艺也就是OCV的原因, 造成工具无法计算的快慢偏差.

timing derate. 这个值就是告诉工具, OCV的影响有多大. 通常signoff的时候. derate会有5%到10%. 不同工艺不同设计, 由工程师的经验决定.

如果两个clk path 的长度都是1, 在OCV 分析模式下, 1.05和0.95的derate.

原本是0的 skew就变成了 1x1.05 - 1x0.95 = 0.1的skew.

以上就是OCV和timing derate的关系. 在.18um甚至.13um工艺下. ocv的影响很小, 基本可以不考虑. 但是90nm及以下,基本都会设.

cppr (clock path pessimism removal) 或者 crpr (clock reconveregence pessimism removal)是同一件事情的两种叫法. Cadence公司的叫前者, Synopsys公司的叫后者. 在开启OCV模式之后, 这个选项才有意义.

由于分析方式过于悲观了. 因为两个时钟可能有共同路径. 既然是共同路径, 逻辑上就不可能有偏差. cppr就是干这的. 去除共同路径上过于悲观的估计. 只计算不同路径的OCV影响.

为什么有 OCV 模式和 OCV-CPPR 模式?

首先因为有PVT,就是由于半导体器件的参数和很多因素有关,比如制造工艺/运行温度/电源电压等,相对于这些因素,工艺库就会针对不同的环境给出的不同的参数值,这些参数会影响线网和单元的时延delay值。

在不同温度工艺电压下,把时延相关信息分为三档:best,typical,worst

那么,为了保证时许验证的结果是保守的,会采取集中不同的分析模式。STA分析方式主要有三种:single,worst_best,OCV

Single:在单一的情况下进行分析,即在做setup/hold分析时用同一种PVT模式下的时延信息

Worst_best:在分析时同时读入worst和best情况下的延迟信息,用worst下的延迟信息计算

Setup constraints,用best下的PVT模式计算hold  time constraints

OCV(on_chip_variation):在分析时同时读入worst情况下的PVT,在进行setup计算时,clock skew采用考虑到加工工艺的不确定性对时延的影响,用PVT中best(shortest)情况下计算,data delay用PVT中worst(longest)情况进行计算。计算Hold时相反。这种分析方式对芯片的timing非常严格。

【 我的理解 】

在EDA工具对这个STA问题的处理时,引入了derate的概念,来对应worst和best的PVT时延影响,在不同path计算时可设置derate取其best或worst的时延delay。(在实际 *** 作时,还可能只考虑一条路径上的悲观情况,另另一条路径derate=1,使约束条件更加乐观)

因为OCV模式过于严格,所以才用基于OCV分析方式下的CPPR模式来去除悲观路径的影响,而CPPR实际上还是保留了OCV模式的计算方法和原理, 因此我当初理解是认为他们的最大差异在于是否考虑 commom path 的影响 ,OCV模式下计算简单电路时共同路径会影响slack的值(乘derate后共同路径延迟相减为负),而采用时cppr不会(共同路径延迟相减为0)。

然而,理解不透彻的是

实际上在工具中ocv模式和cppr都是针对delay来说的,这种情况下二者delay肯定都考虑共同路径的影响,否则delay计算不准确,区别在于是否考虑悲观影响。

更准确地说: OCV 模式考虑共同路径的悲观影响,本身过于悲观,CPPR 不考虑common path 的悲观估计(计算偏差)。

原文链接: OCV与CPPR模式的理解_weixin_30929195的博客-CSDN博客

http://wenku.baidu.com/link?url=JS6fOY5TSinMeyN9Sf7bAz1uVlkQzlaUrRwF7GibzVbfLU_cL9tHI6vxt-PoXfLIm2cvCKyaC2zGWMVsodpjqeksjfnNAovK5p5z34oCVX7

不必那么麻烦,选择你的牌子,开机按网址上的快捷键,然后选择USB回车就可以启动U盘了

学习数字设计(数字IC设计、FPGA设计)都必须学习静态时序分析(Static Timing Analysis ,STA)。然而静态时序时序分析是一个比较大的方向,涉及到的内容也比较多,如果要系统得学习,那得花费不少的心思。这里来记录一下关于静态时序分析的三种分析模式,这里的记录只是记录一下学习笔记,或者说是随笔,而不是系统地学习STA。本文是来自于前天遇到了一道静态时序分析的题目,感觉有点疑惑,于是发到群里请求解答。经过一番讨论、查找资料之后,真相渐渐露出水面。

先看一下题目:

一、 时序路径分析模式及相关概念

1.最快路径和最慢路径

在求解这道题目之前,先来介绍一下时序路径分析模式及相关概念。

①最快路径(early- path):指在信号传播延时计算中调用最快工艺参数的路径;根据信号的分类可以分为最快时钟路径和最快数据路径。

②最慢路径(late path):指在信号传播延附计算中调用最慢工艺参数的路径;分为最慢时钟路径和最慢数据路径。

(个人理解:)在一个库中,尽管电路器件单元已经被综合映射,但是工具可以通过改变周围的环境来得到不同的单元延时,所以即使是同一个库,调用工艺参数不一样的情况下,其单元延时是不同的,因此就有了最快路径和最慢路径。(这里理解有误)

注意:

  与数据路径不同,最快时钟路径、最慢时钟路径的选择在建立时间分析和保持时间分析中是不同的。

1)建立时间分析最快时钟路径和最慢时钟路径如下图所示:

在建立时间分析中,最快时钟路径是指时序路径中时钟信号从 时钟源点 到达 终止点 时序单元时钟端口的 延时 最短捕获 时钟路径 ,而最慢时钟路径是指时序路径中时钟信号从 时钟源 点到 达始发点 时序单元时钟端口的 延时 最长发射 时钟路径 。

2)保持时间分析最快时钟路径和最慢时钟路径如下图所示:

在保持时间分析中,最快时钟路径是指时序路径中时钟信号从 时钟源点 到达 达始发点 时序单元时钟端口的 延时 最短发射 时钟路径 ,而最慢时钟路径是指时序路径中时钟信号从 时钟源 点到 终止点 时序单元时钟端口的 延时 最长捕获 时钟路径 。

2.分析模式

静态时序分析工具提供3种分析模式进行静态时序分析,不同的设计需求通过选择对应的时序分析模式从而可以在合理的时序计算负荷范围内得到接近于实际工作的时序分析结果。这三种模式是:单一分析模式(single mode)、最好-最坏分析模式(BC-WC mode)、全芯片变化分析模式(OCV模式)。

我查阅了一些资料,在Synopsys公司的静态时序分析工具PrimeTime在早期的userguide中是有说明的,例如2010.06版本中:

但是在最近两三年的版本中,却忽略了BC_WC模式,变成了其他三种模式,比如2015.12版本中:

虽然在user  guide中没有明确写出BC_WC模式,但是这种模式还是存在的,也就是还是可以使用这种模式的。

在Cadence的时序分析分析工具Encounter Timing System的2013.01的版本中,也是支持这三种分析模式的:

上面的工具默认的都是 单一模式 。回到题目中,查了一下,这道题目是5、6年前(甚至更早)的了,算是很经典的一道题目。很显然,题目要求的是在BC_WC模式先分析建立时间和保持时间。在求解题目之前,先来看一下这三种模式是如何分析建立时间和保持时间的。

对于PT的2010.06版本:

对于PT的2015.12版本:

可以看到,2015.12并没有给出WC-BC模式的描述,但是是支持的。

对于ETS:没有给出表格,但是和PT的差不多。

下面就来介绍这三种模式下是如何分析路径延时的,这里只进行介绍建立时间的分析,看情况介绍保持时间。

二、单一分析模式(工具默认的模式)

1.模式介绍

在该模式下,工具只会在 指定的一种工作条件下 检查建立时间和保持时间,该工作条件可能是最好的、典型的、最坏的中的一种,但只能是单一的一种,

而这里不进行配置:

(1)建立时间分析

对于触发器到触发器时序路径的建立时间的要求,转换成单一分析模式下建立时间的基本计算公式如下:

发送时钟最慢路径延时+最慢数据路径延时≤捕获时钟最快路径延时+时钟周期-终止点时序单元建立时间

进行建立时间检查时,始发点触发器的发射时钟路径延时、终止点触发器捕获时钟路径沿和从始发点到终止点的数据路径延时都是基于单一工作条件下所计算的路径延时。这是工作单一的一个库中,也就是工具在同一工艺进程、温度、电源下,调用其他不同的工艺参数,得到最快、最慢的时钟路径和数据路径。这是路径值是确定的。例如下面例子中(时间单位为ns):

假设上述电路是在典型库中进行综合的,那么在分析建立时间的时候,工具通过调用不同的工艺参数,得到最慢的发射时钟路径、最慢的数据路径和最快的捕获时钟路径:

时钟周期=4

发射时钟最慢延时 = U1+U2 = 0.8+0.6 = 1.4

最慢数据路径延时 =3.6

最快捕获时钟延时 = U1+U3 = 1.3

时序单元FF2的建立时间要求查库得到0.2

因此 :建立时间的slack为:

1.3 + 4-0.2 - 1.4 - 3.6 = 0.1

(2)保持时间分析

保持时间的计算思路是一样的,这里只给出保持时间需要满足的公式,不再举具体例子。单一模式下要满足的保持时间要求如下所示:

发射时钟最快路径延时 + 最快数据路径延时≥捕获时钟最慢路径延时 + 终止点时序单元保持时间

2.题目计算

对于前面的题目,由于题目的要求是在WC-BC模式下,但是假如是在单一模式,我们来看看该如何分析:

单一库下工具提取到延时信息的理解如下:

下面分析题目中的路径:

对于F1和F2之间的建立时间分析如下所示:

时钟周期 = 2*4 = 8

最慢发射时钟路径(延时) = C1max + C2max = 1

最慢数据路径 = F1cqmax+L1max = 0.7+7 = 7.7

最快捕获时钟路径 = C1min + C2min + C3min = 0.6

F2的D端口建立时间 = 0.3

因此建立时间slack 为 :

8 +0.6 - 0.3 -  1 - 7.7 = -0.4 (建立时间违规)

对于F1和F2之间的保持时间分析如下所示(题目没有要分析这条路径的保持时间):

最快发射时钟路径:C1min + C2min = 0.4

最快数据路径:F1cqmin+L1min = 3.2

最慢捕获时钟:C1max + C2max + C3max = 1.5

F2保持时间 = 0.1

因此保持时间slack为:

0.4+3.2 - 1.5 - 0.1 = 2

同理可以分析单一模式下F3-F4路径的保持时间:

最快发射时钟路径:C1min + C2min = 0.4

最快数据路径:F3cqmin + L2min = 0.4

最慢捕获时钟:C1max + C2max + C4max+C5max = 2

F2保持时间 = 0.1

因此保持时间slack为:

0.4 + 0.4 - 2 - 0.1 = -1.3(保持时间违规)

三、最好-最坏分析模式(BC-WC)

1.模式介绍

对于最好-最坏分析模式,静态时序分析工具会同时在PVT环境中的 最好的和最坏的工作环境下 检查建立时间和保持时间。也就是说,使用这个方式的时候,至少需要读入两个库(环境),一个用来设置最好的工作环境(或者说延时最小),一个用来设置最坏的工作环境(或者说延时最大)。

(1)建立时间分析

最好-最坏分析模式中建立时间的基本计算公式与单一分析模式下建立时间的基本计算公式一致,不同点在于计算建立时间所使用的工作环境不同,在计算建立时间过程中静态时序分析工具调用逻辑单元的最大(max)延时时序库,并用来检查时序路径最大延时是否满足触发器建立时间。

例如对下面电路进行建立时间分析:

时钟周期 = 4

发射时钟最慢路径延时(max库)=U1单元延时(max库)+U2单元延时(max库)=0.7+0.6=1.3

最慢数据路径延时(max库)=3.5

最快数据路径延时(max库) =1.9

捕获时钟最快路径延时值(max库) = U1单元延时(max库)+ U3单元延时(max库)=0.7+0.5=1.2

建立时间要求(max库) = 0.2

因此触发器之间路径的建立时间slack为:

  1.2 + 4 - 0.2 -1.3 - 3.5 = 0.2

(2)保持时间分析

同样,最好-最坏路径分析模式中保持时间的基本计算公式与单一分析模式下保持时间的基本计算公式一致。不同点在于计算保持时间所使用的工作环境不同。在计算保持时间过程中,静态时序分析工具调用逻辑单元的最小(min)延时时序库,并用来检查时序路径最小延时是否满足触发器保持时间的约束。 即进行保持时间检查时,始发点触发器的发射时钟延时、终止点触发器捕获时钟延时和从始发点到终止点的数据路径延时都是基于最好工作条件下所计算的路径延延时

例如对下面电路进行保持时间分析:

时钟周期 = 4

发射时钟最快路径延时(min库)=U1单元延时(min库)+U2单元延时(min库)=0.5+0.4=0.9

最快数据路径延时(min库)=1

最慢数据路径延时(min库) =2.3

捕获时钟最慢路径延时值(min库) = U1单元延时(min库)+ U3单元延时(min库)=0.5+0.3=0.8

保持时间要求(min库) = 0.1

因此触发器之间路径的保持时间slack为:

0.9+1-0.8-0.1 = 1 (保持时间不违规)

2.题目计算

对于我们的题目,就是要求我们在BC-WC模式下进行分析建立时间和保持时间。现在就来分析一下。

首先我们分析工具提取到延时信息:

 这里我们需要注意,本来我在读入max库的时候,应该有会得到max库下的单元延时的最大最小值;在读入min库的时候后,会得到min库下单元的最大最小值。题目中相当于只有一个库下单元延时的最大最小值,这个库取了max库的最大延时,同时取min库的最小延时。因此在进行WC分析的时候,我们就将max库中的单元延时最大和最小值看做相等进行处理,即max库中单元只有一个固定延时值(即上面的max列表里面)。同理BC分析的时候,min库中的单元也只有一个延时值(即上面的min列表里面)。

下面就对时序路径进行分析:

对于F1-F2路径的建立时间分析如下所示:

时钟周期 = 2*4 = 8

最慢发射时钟路径(max库) = C1max + C2max = 1

最慢数据路径(max库) = L1max = 7

最快捕获时钟路径(max库) = C1maxmin + C2maxmin + C3maxmin=C1max + C2max + C3max = 1.5   (maxmin表示max库下的最快路径)

F2的D端口建立时间 (max库)= 0.3

因此建立时间slack 为 :

8 +1.5 - 0.3 -  1 -0.7- 7 = 0.5

对F3-F4路径的保持时间分析如下所示:

最快发射时钟路径(min库):C1min + C2min = 0.4

最快数据路径(min库):F3cqmin + L2min = 0.4

最慢捕获时钟(min库):C1minmax + C2minmax + C4minmax+C5minmax =C1min + C2min + C4min+C5min=0.8   (minmax表示min库下的最慢路径)

F2保持时间 = 0.1

因此保持时间slack为:

0.4 + 0.4 - 0.8 - 0.1 = -0.1(保持时间违规)

四、OCV分析模式

在芯片变化相关工作模式下,与最好-最坏分析模式一样,静态时序分析工具也会同时在PVT境中的最好的和最坏的工作环境下检查建立时间和保持时间,也就是要读入两个库。

1.基本的OCV模式:

(1)建立时间的分析

OCV分析模式中建立时间的基本计算公式与其他分析模式下建立时间的基本计算公式一致,不同点在于计算最快路径和最慢路径所使用的工作环境不同,在计算建立时闻过程中静态时序分析工具调用时序单元的最大延时时序库来计算最慢路径的延时,同时调用逻辑单元的最小延时时序库来计算最快路径的延时,只检查时序路径的延时是否满足触发器建立时间的约束。

进行建立时间检查时。始发点触发器的发射时钟采用的是最坏条件下最慢时钟路径,终止点触发器的捕获时钟采用的是最好条件下最快时钟路径,而从始发点到终止点的数据路径的延时则是在最坏条件下最慢数据路径延时。

例如:

时钟周期 = 4

发射时钟最慢路径延时(max库)=U1单元延时(max库)+U2单元延时(max库)=0.7+0.6=1.3

最慢数据路径延时(max库)=3.5

捕获时钟最快路径延时值(min库) = U1单元延时(min库)+ U3单元延时(min库)=0.5+0.3=0.8

建立时间要求(max库) = 0.2

因此触发器之间路径的建立时间slack为:

  0.8 + 4 - 0.2 -1.3 - 3.5 =- 0.2(时序违规)

·保持时间:类似,不进行详细描述

(2)题目计算

对于我们的题目,假设要在基本的OCV模式下进行计算,我们来看一下:

首先库的分析WC-BC模式一样,不重复说明:

然后对时序路径进行分析:

对于F1-F2路径的建立时间分析如下所示:

时钟周期 = 2*4 = 8

最慢发射时钟路径(max库) = C1max + C2max = 1

最慢数据路径(max库) = F1cqmax+L1max = 0.7+7 = 7.7

最快捕获时钟路径(min库) = C1min + C2min + C3min= 0.6

F2的D端口建立时间 = 0.3

因此建立时间slack 为 :

8 +0.6 - 0.3 -  1 -7.7= -0.4  (建立时间违例)

对F3-F4路径的保持时间分析如下所示:

最快发射时钟路径(min库):C1min + C2min = 0.4

最快数据路径(min库):F3cqmin + L2min = 0.4

最慢捕获时钟(max库):C1max + C2max + C4max+C5max =2

F2保持时间 = 0.1

因此保持时间slack为:

0.4 + 0.4 - 2 - 0.1 = -1.3(保持时间违规)

对于上面的题目,在基本的OCV模式中计算分析建立时间时,公共路径C1、C2在计算最慢发射时钟路径时,使用的是max库的最慢延时;而在计算最快捕获时钟路径的时候使用的是min库的最快延时。也就是说,该分析把公共路径的输出,当做两个不同传播延时的信号进行延时计算。然而在芯片实际工作时,公共路径的输出是一个信号驱动后续的发射时钟和捕获时钟,上面的检查分析太过于悲观,不太符合实际,因此延伸到下面两种模式。

2.考虑时序减免的OCV模式:

时序减免〔timing derate)的作用是很据减免(derating)系数,静态时序分析工具会在时序路径的每级逻辑门、连线和端口上都加上或减去一个原来延时值乘以减免系数值的延时作为最终的延时结果。设置时序减免值的目的是使时序分析结果更加符合实际情况。

使用这种方式需要设置derating系数,系数值需要通过实际工程经验总结出来,这里不进行深入探讨,而且题目中没有给出该系数,因此不进行深入介绍。

3.考虑时钟路径悲观移除(CPPR)的OCV模式:

可以分为 不考虑时序减免和考虑时序减免情况,这里不进行介绍,感兴趣可以参考有关资料。

原文链接: 静态时序分析的三种分析模式(简述) - IC_learner - 博客园 (cnblogs.com)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6864206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存