>
首页 » 技术文章 » ASIC综合后的静态验证方法的研究

ASIC综合后的静态验证方法的研究

作者:舒适 唐长文 闵昊  时间:2006-12-04 23:04  来源:电子设计信息网-www.edires.net
摘要:本文介绍了基于深亚微米CMOS工艺ASIC电路设计流程中的静态验证方法。将这种验证方法与以往的动态验证方法进行了比较,结果表明,前者比后者更加高效和准确。由此可以说明,静态验证完全可以取代动态验证,并且静态验证比动态验证更加适合超大规模集成电路的发展趋势。

关键词:专用集成电路;电路综合;静态验证;静态时序分析;形式验证

1引言

随着深亚微米技术的发展,数字电路的规模已经发展到上百万门。未来的二十多年里,一块ASIC芯片中将会达到上千万门的规模。这样的电路规模做验证的时间在整个芯片的开发周期所占的比例会越来越重。通常,在做验证的时候,我们都会采用动态验证的方法。现在,用静态验证方法不仅能够完成验证的工作,而且还能大大地节省验证所需要的时间。

深亚微米工艺下的ASIC设计流程如图1所示。设计流程可以分为以下几个主要的部分:整体设计,设计实现,设计验证和流片封装。流片失败70%是功能出错造成的,所以,设计验证是保证设计电路功能正确的关键步骤。

图1 ASIC设计流程

2静态时序分析与形式验证

在静态时序分析和形式验证的方法出现以前,唯一的方法是用动态验证工具进行验证。动态验证的最大缺点在于验证时间很长,而且动态验证是对特殊情况的验证,其验证结果正确只能说明在这种特定条件下的功能正确,不能据此说明电路一定没有功能错误。在提出静态时序分析和形式验证的概念后,我们可以用静态验证代替动态验证。静态验证的方法是把时序验证和逻辑功能验证分开来做,不需要加任何激励。这样做可以大大节省验证时间。

静态时序分析是判断电路中所有单元是否满足时序要求。静态时序分析检查设计中电路每一条通路的时序信息,看是否有时序错误。静态时序分析不检查电路的逻辑功能,所以,在做完电路的时序验证后,还必须做形式验证。形式验证不考虑设计电路的时序问题,它只比较两个电路的功能是否一致。形式验证不需要加激励。因此,如果RTL级电路动态验证正确的前提条件成立,那么,只要通过形式验证,就能保证后者的电路功能没有错误。比较动态验证和静态验证,后者的优点在于:1)运行时间短;2)覆盖率为100%;3)通过错误分析报告,比较容易找到出错处。下面,我们着重就后一种验证方法进行具体的描述。

3ASIC中的静态时序分析

在设计ASIC芯片的时候,设计者除了要考虑如何按照要求设计出正确的电路外,还要考虑设计电路在物理层实现后,原本在RTL级正确的逻辑关系是否还会保证不出错。因此,设计者需要能够精确描述器件特性的器件模型。这些器件模型要和实际器件的工作情况相同,当用这些器件模型做设计电路验证时,电路的工作情况就和实际设计出来的芯
片的工作情况相同。

建立一个用器件模型搭出的简单电路,如图2所示。从图中可以看出造成电路延时的四种因素。数据输入跳变延时取决于D触发器输入端充放电的速度和输入端RC负载的大小,输入数据跳变越频繁,延时就越长;门延时由D触发器自身RC负载大小和充放电速度决定;线上RC延时则由D触发器的输出驱动能力和线上RC的负载大小决定,连线越长,负载越大,驱动时间越长;输出负载只是增加D触发器输出驱动的负荷量,输出接负载的门数越多,输出数据的延时时间就越长。这些延时是基于不同的CMOS工艺和具体电路的布局布线。在特定的工艺条件和工作环境下,影响器件充放电速度和自身RC负载的因素有器件的面积、密度、掺杂密度、温度、工作电压、输入充放电速度、输出扇出大小。我们可以通过对实际电路进行测试,从测试得到的数据分析计算器件的延时信息,这样就可以预测出电路在实际实现后会出现的延时信息。不同的厂商提供的库文件中已经包含了器件的延时信息,做静态时序分析的时候调用这些库文件,分析和检查设计电路各个路径的建立时间和保持时间是否满足时序要求,是否有违反设计规则的地方。

图2电路器件延时模型

有了器件的模型,就可以用STA的工具做电路的静态时序分析。STA主要分为两个阶段,第一个阶段是在布局布线前,第二个阶段是在布局布线后。这两个阶段的主要区别在于:后者有具体的连线长度、宽度、信号分布情况等信息,所以,后者可以更加准确地估计线上延时,以及时钟树的延时;而前者只能根据设计电路面积的大小,估计线上延时和时钟树的延时。

STA的工具有Synopsys公司的Primetime,Cadence公司的Pearl,等等。静态时序分析工具可以对设计电路进行以下几种分析:
a)从主要的输入端口到电路中所有触发器;
b)从触发器到触发器;
c)从触发器到主要输出端口;
d)从主要的输入端口到主要的输出端口。

静态时序分析工具把整个设计电路打散成上述四种类型的时序路径,分析不同路径的时序信息,得到建立时间和保持时间的计算结果。这里有必要介绍一下这两个参数的含义,因为静态时序分析的精髓就在于判断和分析这两个参数的结果。如图3所示,数据从触发器FF1的D端进入,传到触发器FF2的Q端输出,这是一个最基本的时序路径,而且这两个触发器都是用同一个时钟驱动。

图3 单时钟同步电路建立/保持时间分析示意图

首先分析Setup check。假设在time=0的时候,FF1的第一个上升沿时钟使得FF1获得D端的数据,那么,数据到达FF2的D端的时间一定要比FF2的第二个上升沿时钟到达FF2的CLK端的时间要短。如果预定的Setup time Violation的尺度为“0”,要求数据到达的时间就必须小于10ns,否则,时序分析结果就会报setuptime的Violation。Setup time Violation的尺度可以大于0,如果这样的话,Timingpath的延时就必须更小,对电路时序的要求就更高。

同理可以分析Holdcheck。总的来说,它就是要检测数据是否传得太快。假设当time=0的时候,FF1的上升沿时钟使得D端的数据进入触发器,那么,数据从FF1的D端传到FF2的D端的时间一定要比FF2在time=0的第一个上升沿时钟到达FF2的CLK端的时间长,否则,就会报Holdtime的Violation。

如果设计电路中的静态时序分析结果显示没有Violation,那么电路就没有时序错误,否则,就要根据具体情况,决定是否重新综合。如果对电路的时序性能要求比较高,可以另外加最大(最小)延迟时间的约束条件,最大(最小)时钟有效宽度,或最大(最小)时钟的skewtime的约束条件,让静态时序分析工具检查电路的时序是否满足这些约束条件。

以上分析了造成电路延时的一些因素,静态时序分析建立的时序模型基础和静态时序分析检查的方法。静态时序分析工作量的大小是由设计电路的复杂程度和电路中一些特殊情况决定的。设计电路中还可能出现时钟分频和多时钟的情况,这些本文中就不再详细讨论了。

4ASIC中的形式验证

形式验证在ASIC设计中是一个新的概念,对设计进行形式验证不需要考虑工艺的因素,即可以不用考虑电路的时序和物理效应。形式验证将需要验证的电路与参考电路进行比较,通过分析两者在功能方面是否一致。前面我们论述了静态时序分析的特点和方法。联系形式验证的特点不难发现,这两种方法是一种互补的关系,如果将两者结合起来做ASIC设计的验证,将是高效而且快捷的。

形式验证的工具有很多,其中包括Synopsys公司的Formality。当我们对电路进行了修改,比如说更改了流水线结构,改变了有限状态机,或是从RTL级综合到门级,从门级布局布线转为晶体管级,都可以做形式验证,比较改变前后两者在功能上是否改变。形式验证提供了一种静态的回归验证方法,取代了传统的验证工具。这样做有两个非常明显的优点:大大节约了验证时间和全面彻底的验证,具体的原因在介绍静态验证方法时已经提到过。

形式验证是多层次验证,可以比较的类型有RTL-to-RTL,RTL-to-gate,还有gate-to-gate。RTL-to-RTL是为了检查新的RTL与改变之前的RTL功能是否一致,在设计不断地修改,加上一些新的功能,或是改变流水线,改变有限状态机,以提高电路性能的情况下,以前的电路已经验证是逻辑正确的,但改变后是否仍然正确,就需要将改变前后的RTL电路作一个全面的比较,以确保电路的逻辑功能没有改变。RTL-to-gate和gate-to-gate则是比较电路综合前后和布局布线前后的电路,确保电路的逻辑功能没有改变。比如,当RTL电路综合后,想改进电路的性能,为了不用重新综合而直接修改了门级网表,那么就需要用形式验证比较修改前后的门级网表逻辑是否仍然一致。这一步骤如果采用动态验证需要几个星期的话,那么用形式验证只需要几个小时。

形式验证的流程如图4所示。从流程图中可以看到,将修改前的设计作为Reference电路,将修改后的作为Implementation电路,只要通过验证Reference和Implementation在不考虑工艺和时序的情况下功能一致,那么,修改就是没有错误的;下一次再验证时,就可以将这次修改过的设计作为Reference,与下次修改的电路进行比较。从以上的描述可以看到,作形式验证的时候,并没有给设计加特殊的激励,这样就大大节省了验证时间,尤其是进行综合后验证的时候。

图4 形式验证流程

5比较和分析

为了比较静态验证和动态验证方法的区别,我们用一个具体的例子来说明。分别用静态验证和动态验证方法对一个五万门的数字视频编码芯片设计综合后的门级同步时序数字电路进行验证,采用TSMC 0.35μm CMOS工艺,其中动态验证用Mentor公司的ModelSim验证工具。在同一台工作站上,验证结果列于表1。

从表1中可以看出,静态验证不仅大大地提高了验证效率,而且充分确保了设计的正确性。与动态验证相比,静态验证也有一些不足,后者要求的条件比前者严格。对设计代码风格的要求也比较严格,所以,进行静态验证需要严格规范RTL代码的编写风格。

6 结论

静态验证是可以替代动态验证的一种高效率的验证方法,它大大地节省了验证的时间,尤其是在进行综合后验证的时候。随着设计电路规模的不断扩大,静态验证的优势将会越来越明显。


相关推荐

静态时序分析(Static Timing Analysis)基础(1)

静态时序分析  2009-03-06

几种主流SoC(片上系统)验证技术

基于FPGA的AES算法芯片设计实现

一种面向系统芯片的FPGA协同验证方法

变参数RS编码器IP核的设计与实现

VHDL应用于专用集成电路功能仿真的研究

在线研讨会
焦点