手机数字基带处理芯片中的静态时序分析
扫描二维码
随时随地手机看文章
1.引言
随着深亚微米技术的发展,数字电路的规模已经发展到上百万门甚至上千万门。工艺也从几十μm提高到65nm甚至45nm。这样的电路规模做验证的时间在整个芯片的开发周期所占的比例会越来越重。通常,在做验证的时候,我们都会采用动态验证的方法。现在,用静态验证方法(STA Static Timing Analysis),不仅能够完成验证的工作,而且还能大大节省验证所需要的时间。静态时序分析简称它提供了一种针对大规模门级电路进行时序验证的有效方法。静态时序分析是相对于动态时序分析而言的。动态时序分析时不可能产生完备的测试向量,覆盖门级网表中的每一条路径。因此在动态时序分析中,无法暴露一些路径上可能存在的时序问题;而静态时序分析,可以方便地显示出全部路径的时序关系,因此逐步成为集成电路设计签字认可的标准。
2.静态时序分析工作原理
本文以Synopsys公司的Prime Time SI作为时序分析的工具,介绍静态时序分析的工作原理。Prime Time把整个设计电路打散成从主要的输入端口到电路触发器、从触发器到触发器、从触发器到主要输出端口、从主要的输出端口到主要的输出端口、四种类型的时序路径,分析不同路径的时序信息,得到建立时间(setup time)和保持时间(hold time)的计算结果。而Prime time SI又在Prime time的基础上加入串扰分析(Crosstalk analysis)。串扰是由两个或者多个物理相邻连线之间的容性交叉耦合(capacitive cross-coupling)产生的相互作用。随着工艺越来越进步,在130nm或者90nm的工艺下,串扰的影响已经变得与单元延迟和线延迟一样重要。
2.1 时序路径的分析
整个电路的静态时序分析都是由时序路径分析组成。时序路径分析就是检查从发射沿(lunching edge)到捕获沿(capturing edge)的时间是否满足设计的需要。它主要可以分为两类:
建立时间路径
这种路径用于检查信号在到达捕获沿之前的一段稳定时间(setup time),也就是确定从发射沿到捕获沿的过程是否足够快。建立路径包括普通的数据到时钟的建立路径、数据到数据以及时钟门的路径。如果最晚的一个发射沿到最早的一个捕获沿之间的时间满足时序要求(没有timing violation),才能确保这条建立路径都满足条件。
保持时间路径
这种路径用于检查信号在到达捕获沿之后的一段稳定时间的(hold time),也就是确定从发射沿到捕获沿的时间是否太短。包括普通的数据到时钟的建立路径、数据到数据以及时钟门的路径、异步信号同步化的检查。为了正确的分析,我们检查保持路径时必须检查最早的一个发射沿到最晚的一个捕获沿之间的时间满足时序要求。
如图1中发射部分由所有的时钟端口到触发器FF2的D端口之间的单元(包括U1、U2、FF1、U4)和线组成;捕获部分由所有的时钟端口到触发器FF2的时钟端口之间的单元(U1、U3、FF2)和线组成。其中U1既属于建立路径又属于保持路径。那么,建立路径就应该结合到FF2的D端口最慢的路径和到其时钟端口最快的路径来看。保持路径则相反,我们应该找到达FF2D端口最快的路径和到其时钟端口最慢的路径。对于Setup Time验证来说:
Slack=Required Time – Arrival Time
对于Hold Time验证来说:
Slack= Arrival Time –Required Time
Slack为正值,表示满足时序要求
图1 建立/保持路径示意图
PT工作流程
图2为PT的工作流程,我们可以看出静态时序分析是一个反复进行的过程。直到结果满足要求为止。
图2 PT工作流程
芯片在工作时所处的环境是不同的,然而环境的不同导致芯片内部的单元和线的延迟不同。为了使芯片在大多数环境下都能正常工作,PT中提供了三种分析模式:single、bc_wc、on_chip_variation。我们平时常用的是bc_wc模式,它把环境用工艺制程(process)、温度(temperature)、电压(voltage)分为以下3种情况:
1、best case:工艺制程:1;理想温度零下40摄氏度;电压1.32V(此芯片额定电压为1.2V)
2、typical case:工艺制程:1;室温环境25摄氏度;电压1.2V
3、worst case: 工艺制程:1;125摄氏度;电压1.08V
为了测试芯片在投片生产和封装整个制造过程是否出现物理等方面的缺陷导致功能不正确。现在的超大规模集成电路的设计中,都加入了可测性设计(DFT:Design for Test)电路。当芯片工作于测试模式时,时钟树的结构与功能模式完全不同。我们必须在测试模式下也要分以上3种情况做静态时序分析。
3.静态时序分析与门级仿真的关系
静态时序分析也有自己的弱点,它无法验证电路功能的正确性。值得注意的是,静态时序分析只能有效地验证同步时序的正确性,大部分设计中可能包含地异步电路的时序验证,则必须通过门级仿真来保证其时序的正确性。[!--empirenews.page--]
根据以上对静态时序分析的介绍,我们做门级仿真也应该分别仿真功能模式和测试模式下的best case、typical case、worst case三种情况,但是侧重点有所不同。功能模式下,大部分电路我们只需要验证worst case和best case就可以认为是正确的,但是在我们芯片的设计中,曾经过出现worst case和best case通过而typical case仿真失败的情况。这是因为有的电路中寄存器级数太多,时钟偏移(clock skew)对电路的影响造成的。虽然这种情况即使在百万门级以上的设计中也很少见,但为了提高芯片成功率,对于关键路径,关键模块,需要仿真3中情况。测试模式一般工作在室温环境,它的仿真我们只需要关心typical case就可以了。
静态时序分析工具无法验证异步时钟的电路。然而现在芯片中可能存在异步时钟电路,如我们的TDS-CDMA数字基带处理芯片中,就有二十几个异步时钟域。在PT中,所有异步时钟域的路径都必须被设为false_path(表示不关心该路径)。由于RTL级功能仿真也不能发现异步时钟域之间信号的错误,我们在门级仿真时需要特别注意异步时钟域之间的信号的验证。
我们还可能遇到门级仿真失败,但是PT中并没有报错的情况。经过反复试验分析,可能会有以下几种情况导致它们的结果不一致:
1、VCS不支持负的输入输出路径延迟,但是PT是支持的。当VCS遇到负输入输出路径延迟,它就自动认为它是0。这样就导致了错误。
2、新版本的PT产生的SDF文件有关于信号沿的信息。如果我们用老版本的库或存储器模型没有包含这种沿的信息,PT将会认为它是一条更长的路径。而VCS仍然用标准的延迟来计算,就导致结果不一致。可见,一套完善的EDA工具很复杂,不同版本之间的细微差别也可能导致我们验证的失败。
3、最常见的原因是`timescale不同。如果设计和SDF文件中所设的`timescale不同,那么SDF文件中的反标值可能被舍去。这就导致了静态时序分析和动态仿真的不匹配。所以,保证RTL代码、库文件、存储器模型、SDF文件中的`timescale一致非常重要。
门级仿真是芯片流片前的最后一道验证。虽然能够很好的反映芯片工作的真实情况,但是资源占用严重、时间长。只有综合利用动态验证和静态验证的优点,才能高效准确的完成一块芯片的设计。
4.TDS-CDMA数字基带处理芯片中的应用
我们实验的对象TDS-CDMA数字基带处理芯片,是一块规模在1000万门以上,130nm工艺的超大规模集成电路,其中包含ARM、DSP等硬核。在门级做全功能测试需要大量的人力物力资源,是很不现实的。我们在实际芯片中设计中采用静态时序的分析加门级仿真的方法。
在芯片的设计过程中,我们在几个阶段做静态时序分析。
1)综合之后先做一次STA。此时主要检查:
1、电路设计的时序有没有问题。如两个寄存器之间有过多的组合逻辑,使电路不能运行在需要的时钟频率上。
2、由于综合工具(设计中用Design Complier)的算法限制,每一次综合出的网表都不同。需要反复做综合,直到网表的时序达到我们的期望。用这一版网表再继续往下做。
因为没有具体的布局布线信息,此时的时序分析建立在线上负载模型(wire load model)上。线上负载模型是一种比较悲观的模型,所以可能出现一些不是很严重的Violation。现阶段我们不需要关心这些,它们可以在布局布线时得到解决。
2)预布局之后:
这时候,元件的大概位置关系已经确定。可以通过静态时序分析来解决布局中不合理的地方,以便修改。
3)布局布线完成后:
布局布线后可以从版图中提取精确的器件和网络延迟得到SPEF (Standard Parasitic Exchange Format ) 文件,反标到Prime Time SI中再做一次时序分析,这时可以得到基于版图的精确的时序分析结果。
布局布线的过程中,需要不停的用STA来分析布局布线的结果。我们的芯片采用SMIC提供的0.13微米工艺的元件库。他们提供了标准元件库和HVT元件库两种。HVT元件的特点是漏电低,但是延时比较大。所以,刚开始的时候我们用HVT元件,做STA之后发现有的路径不能满足时序要求。我们再用一些标准元件来替代这些HVT元件,反复不停比较,直到所有路径都满足时序要求为止。这样,既最大程度的实现了低功耗,也满足了时序要求。
在完成时序分析之后,用PT SI生成SDF(standard delay format)文件反标到网表中做门级仿真。
此时的SDF文件不仅包含单元延迟和线延迟,也包含了版图信息,串扰信息等。门级仿真可以得到最真实,最接近实际情况的结果。
5.结束语
静态时序分析以它运行速度很快、占用内存较少,可以对芯片设计进行全面的时序功能检查,并利用时序分析的结果来优化设计等优点,很快地被用到数字集成电路设计的验证中。然而门级仿真也由于它不可取代的地位在ASIC设计中仍有一席之地。结合在TDS-CDMA数字基带处理芯片设计中的经验,我们可以得出这样的结论:静态时序分析和门级时序仿真是从不同的侧重点来分析电路以保证电路的时序正确,它们是相辅相成的。现在,实验中的TDS-CDMA数字基带处理芯片已经成功流片。
本文作者创新点:在实践中寻找到一种STA和门级仿真结合的新方法。在保证流片成功率的基础上最大程度的节省芯片验证的时间。