静态时序分析的三种分析模式(简述)

  通过跟行业前辈的探讨和参考一些书籍,本文中的“我的理解”部分有误,即:ide

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

  对于一个综合好的电路网表,在一个肯定的pvt环境下(即只读入一个库的状况下)、约束好了端口的transition和load,那么电路网表中的某个器件的延时是惟一肯定的(从库查表获得)。ovc模式下一个器件才有两个延时值。学习

  所以下面的库分析(延时分析)过程当中,存在认识错误,请读者们注意!!!之后我会专门写一篇文章来更正的。ui

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

  先看一下题目:设计

           

 

 

1、时序路径分析模式及相关概念3d

  1.最快路径和最慢路径blog

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

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

②最慢路径(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的版本中,也是支持这三种分析模式的:

            

             

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

  对于PT的2010.06版本:

            

             

              

对于PT的2015.12版本:

              

能够看到,2015.12并无给出WC-BC模式的描述,可是是支持的。

 

  对于ETS:没有给出表格,可是和PT的差很少。

 

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

 

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

  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(保持时间违规)

 

 

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(保持时间违规)

 

 

4、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模式中计算分析创建时间时,公共路径C一、C2在计算最慢发射时钟路径时,使用的是max库的最慢延时;而在计算最快捕获时钟路径的时候使用的是min库的最快延时。也就是说,该分析把公共路径的输出,当作两个不一样传播延时的信号进行延时计算。然而在芯片实际工做时,公共路径的输出是一个信号驱动后续的发射时钟和捕获时钟,上面的检查分析太过于悲观,不太符合实际,所以延伸到下面两种模式。

 

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

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

使用这种方式须要设置derating系数,系数值须要经过实际工程经验总结出来,这里不进行深刻探讨,并且题目中没有给出该系数,所以不进行深刻介绍。

 

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

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

 

其余先进的分析模式如AOVC、POCV等,涉及内容较多,就不写了,感兴趣能够参考有关资料。

 

 

参考资料:

《集成电路静态时序分析与建模》,刘峰,2016

《PrimeTime  User Guide》,synopsys,2015

《PrimeTime  Fundamentals User Guide》,synopsys,2010

《Encounter Timing System User Guide》,cadence,2013

 

 

 

相关文章
相关标签/搜索