基于电路静态时延特性的冒险检测和消除方法

文档序号:7161756阅读:427来源:国知局
专利名称:基于电路静态时延特性的冒险检测和消除方法
技术领域
本发明涉及集成电路的技术领域。特别是涉及一种检测和消除集成电路中冒险的方法。是一种通过对电路定时特性的分析检测和消除冒险的方法。
芯片功耗的增加不仅增大了芯片的封装成本,降低了芯片的市场竞争力,而且过大的功耗也会降低芯片的可靠性。CMOS电路的功耗主要由四部分组成功能翻转,冒险,短路电流和漏电流。在开关晶体管时,导致电源和地线之间出现瞬时的短路,从而引起短路电流功耗,这部分功耗通常非常小。漏电流功耗是由于晶体管处于静态工作状态时仍然有少量电流流过造成的。在小于.18μm的工艺中,如果晶体管工作正常,这部分电流非常小,它造成的功耗通常比其它几部分功耗低几个数量级。在CMOS电路中冒险消耗的功率是由于电路到达稳定状态之前的跳变引起的(具体原理参见图2和下文说明)。这部分功耗约占电路总功耗的20%到40%。在有的电路中甚至达到60%以上。所以,研究电路中的冒险现象并找到检测和消除冒险的方法,对于降低电路的功耗,保证电路的可靠性,具有十分重要的意义。
图2表示了电路中由于冒险造成的功耗。图中的晶体管具有非零的阻抗。在这个模型中单个的晶体管可以被若干个PMOS晶体管或NMOS晶体管代替,从而表示各种不同的CMOS门。在输入脉冲的下降沿到来之前,N导通P断开。我们假设晶体管在断开时的阻抗为无穷大。所以没有电流,非门的输出电压为零。输出端的电容C不被充电。当输入端下降沿到来时(t=0),P导通,N断开,充电电流i(t)流过由阻抗R和电容C组成的通路。此时有i(t)=VDDRe-tRC]]>公式1电容C的充电使得输出电压提高,直到t=τ时,输入端上升沿到来。在此过程中消耗的电能为∫0τVDDi(t)dt=CVDD2(1-eτRC)]]>公式2由于电阻R,这些能量的一半以热能的方式散失掉了。另一半储存在电容C中。因此,一个门消耗的能量与它输出端的跳变数成比例,跳变越多,消耗的能量也就越多。如果脉冲宽度τ远远大于时间常数RC,输出端电压上升到VDD时造成最大功耗。由下式表示Emax=CVDD2,τ>>RC]]>公式3t=τ时输入端上升沿到来,这时P被断开N被导通,电容放电。由于N的阻抗R,储存在电容中的能量又以热量的形式散失。
由于,门的延迟对较窄的脉冲有过滤作用,即如果门的延迟大于脉冲的宽度那么在门的输出端不会出现尖峰脉冲,所以,采用什么样的门延迟模型会影响对电路中的冒险数目的估计。比较常用的有三种门延迟模型(1)0模型假定每个门无延迟;(2)单位延迟模型假定每个门的延迟为1;(3)扇出延迟模型电路中如果门A的输出是门B的输入,那么我们就称门A是门B的扇入,而称门B是门A的扇出。扇出延迟模型是假定每个门的延迟等于其扇出的数目。我们提出的方法对于上述三种延迟模型均适用。在以下的例子中均采用扇出延迟模型。
本发明的目的在于提供一种基于电路静态时序特性的检测和消除冒险的方法。
本发明提出的方法,根据电路的时延特性对产生冒险的条件做出判别,而通过适当调整电路中部分路径的长度来消除或减少冒险。当只有一个原始输入发生跳变时,如果两条延时不同的路径在电路某点汇聚,并且这两条路径上具有反相功能的门(与非门,或非门,非门)的数目奇偶性不同,则在该点可能产生冒险;当多个原始输入同时发生跳变时,只要汇聚的路径延时不同则认为在汇聚点可能产生冒险。对于单原始输入跳变导致的冒险我们通过有选择的增加一些门的延迟来消除或者减少。对于多个原始输入跳变导致的冒险我们通过增加一定数量的逻辑门使跳变在电路中同步传播来消除或减少冒险。
在此提出的检测单原始输入跳变导致的冒险的方法如下首先从原始输入到原始输出逐一标记电路元素,将从原始输入到该电路元素的时延信息记录在该元素的标记中,然后根据元素的标记判断在该元素发生冒险的可能性。电路原始输出的标记为0。电路中其它元素的标记由该元素的前驱元素的标记和该元素的延迟生成。具体标记方法参见本说明书的第四部分具体实施方式
中的2标记电路元素以及附图3的说明。标记完成后,逐一检测电路中的每个门的标记,如果某个门的标记中存在两个数,它们的符号相反并且绝对值之差大于这个门的延迟我们就认为在这个门的输出端可能发生冒险。
在此提出的检测多个原始输入跳变导致的冒险的方法如下对于已经被标记的电路,逐一检测电路中的每个门,如果某个门的标记中存在两个数,它们的绝对值之差大于这个门的延迟我们就认为在这个门的输出端可能有冒险。
在此提出的消除或减少单原始输入跳变导致的冒险的方法是按照和检测冒险标记次序相反的次序扩展每个门的标记,得到为消除一个冒险点,应该将和该点相关的那些门的延迟增加多少,扩展结束后,计算每个门的扩展标记中的增量,从而选出一个合适的门,增加这个门的延迟。给方法的流程图参见图5。
消除多个原始输入跳变导致的冒险的方法如下(1)首先将电路从原始输入到原始输出按照如下公式分级, (2)然后,从原始输入开始逐级处理电路中的门(只有一个扇入的门不计),如果一个门的多个扇入在不同的级上,我们保持级数最大的那个扇入不变,而在那些级数较小的扇入上增加延迟门,使得这些扇入的级数都等于该门扇入的最大级数。
图5.3是扩展元素11和9的标记图;图5.4是扩展元素8的标记图;图5.5是扩展元素3的标记图;图5.6是增加门9的延迟图;图6是经过同步处理后的全加器图。
图1门输入端跳变导致门输出端的冒险的原理。门输入端的跳变产生的冒险.前面已经详述,在此省略。
图2冒险导致功耗的原理.这里门输入端的跳变可能是由于一个原始输入跳变的扇出重汇聚造成,也可能是由于多个原始输入跳变造成的。在前面已经详述,在此省略。
图3为经过标记的全加器电路,图3中,全加器电路的功能是带进位的1位加法。图中1到14是电路元素(原始输入,逻辑门,原始输出)编号。每个电路元素的标记表示了从原始输入到该电路元素的时延信息。例如,元素7(与门)的标记是1(-5,3)2(-5,3),这个标记有两个节点组成,这两个节点分别是1(-5,3)、2(-5,3)。其中,节点1(-5,3)表示从原始输入1到元素7有两条路径,跳变信号沿着它们传播到元素7的时延分别是5和3,并且沿着长度为5的路径传播到元素7时跳变会被反相(上跳变被反相为下跳变,下跳变被反相为上跳变)。类似地,节点2(-5,3)表示的是从原始输入2到元素7的路径时延信息。
图4为全加器电路的检测结果。图4中,在电路原始输出14的标记中有一个节点3x(-4,2)表示原始输入3处的跳变导致原始输出14处的一个冒险。X表示可能产生冒险。图中两条粗线表示的路径显示了3处的跳变在传播过程中经过扇出重汇聚形成冒险的路径。
图5是消除冒险的方法的流程图。
图5.1-5.6为扩展全加器电路的过程。根据扩展标记后的电路我们将门9的延迟增加一个单位以消除原始输出14处的冒险。具体扩展过程及修改电路的方法参看附图。
图5.1扩展原始输出14的标记在有尖峰脉冲的原始输出的标记中加入增量。原始输出6上有冒险的节点加入增量后变为3x(-4+0,2+1).
图5.2扩展门12的标记在元素12的标记中加入增量。元素12唯一的扇出元素是元素14,元素14是原始输出,延时为0,反相系数为1。元素12与元素14标记中的增量相同。Mul为1时可以省略,未在图上标出。
图5.3是扩展元素11和9的标记图;图5.4是扩展元素8的标记图;图5.5是扩展元素3的标记图;图5.6是增加门9的延迟图;图6是同步处理后的全加器电路。
图6中,以全加器电路为例,按照我们的分级方法得到level(1)=level(2)=level(3)=0,level(4)=2,level(5)=1,level(6)=3,level(7)=5,level(8)=7,level(9)=6,level(10)=8,level(11)=8,level(12)=9,level(13)=8,level(14)=9。根据以上数据,我们分别在门7的扇入元素5,门9的扇入元素f6,门10的扇入元素f7和门12的扇入元素9增加延迟门,使得电路中的信号传播同步。
以上说明是对全加器电路的元素分级的结果。实现根据电路的时延特性进行冒险检测的方法应该包括下面步骤1.实现电路的内部数据结构,对电路元素排序。
2.标记电路元素。
元素标记的组成如下我们对电路的每个原始输入指定一个代表该原始输入的数值编号。对每个电路元素G,我们引入一个标记来记录从原始输入到此元素的时延信息,G的标记由一系列的节点组成。每个节点由一个原始输入编号和一个路径序列组成。对于任一元素G,从某个原始输入到它的所有路径长度记录在元素G的以这个原始输入为编号的节点的路径序列中。如果某条路径上具有反相功能的门(非门,与非门,或非门)的个数是奇数那么这条路径长度为负值,如果具有反相功能的门的个数是偶数,那么这条路径的长度为正值。
标记电路元素的方法如下首先把每一个原始输入I标记为I(0)。然后依序标记电路中的其它元素。一个元素的标记是由其所有扇入元素的标记按如下步骤生成的(1)按原始输入编号的升序归并该元素的所有扇入元素的标记中的节点。对相同原始输入编号的节点,按路径序列的升序归并它们的路径序列。;(2)修改已归并的每个路径序列将每个路径长度的绝对值加上本元素延迟,如果本元素为非门、与非门、或非门,则将原来的路径长度值的符号取反。图3为经过标记的全加器电路。
3.根据电路元素的标记,判断可能产生冒险的电路元素。
如果电路中某个门的标记中存在一个节点,其路径序列中存在两个值,它们符号相反,且绝对值之差大于门延迟,则认为在这个门的输出端可能产生冒险。图4为全加器电路的检测结果。我们发现,与门12的标记中原始输入编号为3的节点中存在两个值-4、2,它们的符号相反且绝对值之差大于门12的延迟,所以门12的输出端可能产生一个冒险。
基于电路静态时延特性的冒险消除方法,通过有选择的增加电路中某些门的延迟消除单原始输入跳变产生的冒险;通过增加延迟门同步电路信号的传播消除多个原始输入跳变产生的冒险。消除或减少单原始输入跳变导致的冒险的方法假定已按上述方法检测出冒险点,消除冒险点的方法基于扩展的路径序列。扩展的路径序列是由路径序列按如下方式扩展而得在路径序列的每一个路径长度值的后面加入一个增量族,使扩展后的路径长度成为路径长度+ 增量i*期望次数i的形式。
为了消除一个冒险点,我们从该点开始,按照从原始输出到原始输入的次序扩展每个门的路径序列。这相当于给出了为消除一个冒险点,按照和检测冒险标记次序相反的次序扩展每个门的路径序列,应该将和该点相关的那些门的延迟增加多少。扩展结束(扩展原始输入)后,计算每个门的扩展路径序列中的增量族中全部期望次数的总和,记作该门的总期望次数。找出电路中总期望次数最大、并且增量均不为0的门,给该门增加其所有增量族中增量的最小值。具体实现包括下面步骤1.在被判断为有冒险的电路元素的标记中加入增量。
设门G的延时为δ,G的路径序列中绝对值最大的一项为MAX,则该序列中路径长度调整的增量为MAX-δ。对路径序列中每一路径长度length,如果|length|≥MAX-δ,就不再调整,该项的增量设为0。如果|length|<MAX-δ,则将该项的增量设为MAX-δ-|length|。
2.从输出到输入依倒序逐一扩展其它电路元素的标记我们按照如下的方法扩展本元素的路径长度。
第一步从本元素所有的扇出元素的节点中,为本元素的每个路径长度,找出它的扇出元素中与这个路径长度匹配的扩展路径长度。假设本元素的某个扇出元素的延迟时间为τ,反相系数为Rev(非门,与非门,或非门的反相系数是-1,其它的门的反相系数是1)。本元素的路径长度和其扇出元素的扩展路径长度相匹配,指的是本元素的路径长度值(记为SPL1)与其扇出元素的扩展路径长度中的路径长度值(记为SPL2)具有这样的关系(SPL1+τ)*Rev=SPL2第二步合并本元素的所有扇出元素中匹配的扩展路径长度的增量族得到本元素的增量族。本元素的增量族应含有其扇出元素的增量族中所有不相等的增量值,本元素的增量对应的期望次数应是所有扇出元素同一增量的期望次数之和。
3.找到被请求加入增量次数最多的电路元素,增加该元素的门延迟。
具体步骤,参见图5.1-5.5。图5.1-5.5示出了扩展全加器电路元素的过程。图5.6示出了将电路元素9的延迟增加1,从而消除了原始输出14处的冒险。实现消除或减少多个原始输入跳变导致的冒险的方法包括下面步骤1.从原始输入到原始输出对电路元素分级。
我们指定原始输入为第0级。其它电路元素的级数由其所有扇入元素和本元素的延迟按照公式4决定,公式4中Level(G)表示元素G的级数,fi表示元素G的扇入元素。 公式

中的图6的说明给出了对全加器电路的元素分级的结果。
2.对电路进行同步处理。逐级处理电路元素,使得信号从原始输入到达该级元素的延迟相同。
我们从原始输入开始逐级处理电路中的门(只有一个扇入的门不计)。如果一个门的多个扇入在不同的级上,我们保持级数最大的那个扇入不变,而在那些级数较小的扇入上增加延迟门,使得这些扇入的级数都等于该门扇入的最大级数。图6示出了使用该方法处理后的全加器电路。
权利要求
1.基于电路静态时延特性的冒险检测方法,考虑电路的时延特性来判断电路可能产生冒险的点,其特征在于从电路的原始输入到原始输出逐一标记电路元素,将从原始输入到该电路元素的路径时延信息记录在该元素的路径序列中,然后根据这些信息判断电路某点产生冒险的可能性。
2.根据权利要求1的基于电路静态时延特性的冒险检测方法,其特征在于,标记电路元素的方法如下首先把每一个原始输入I标记为I(0),;然后依序标记电路中的其它元素;一个元素的标记是由其所有扇入元素的标记按如下步骤生成的(1)按原始输入编号的升序归并该元素的所有扇入元素的标记中的节点;对相同原始输入编号的节点,按路径序列的升序归并它们的路径序列;(2)修改已归并的每个路径序列将每个路径长度的绝对值加上本元素延迟,如果本元素为非门、与非门、或非门,则将原来的路径长度值的符号取反。
3.根据权利要求1的基于电路静态时延特性的冒险检测方法,其特征在于,如果电路中某个门的标记中存在一个节点,其路径序列中存在两个值,它们符号相反,且绝对值之差大于门延迟,则认为在这个门的输出端可能产生冒险。
4.基于电路静态时延特性的冒险消除方法,其特征在于通过有选择的增加电路中某些门的延迟消除单原始输入跳变产生的冒险;通过增加延迟门同步电路信号的传播消除多个原始输入跳变产生的冒险。
5.消除单原始输入跳变导致的冒险的方法,步骤如下;按照和检测冒险标记次序相反的次序扩展每个门的路径序列,得到为消除一个冒险点,应该将和该点相关的那些门的延迟增加多少,扩展结束后,计算每个门的扩展路径序列中的增量族中全部期望次数的总和,记作该门的总期望次数,找出电路中总期望次数最大、并且增量均不为0的门,给该门增加其所有增量中的最小值。
6.根据权利要求5的消除单原始输入跳变导致的冒险的方法,其特征在于,具体实现包括下面步骤在被判断为有冒险的电路元素的标记中加入增量;设门G的延时为δ,G的路径序列中绝对值最大的一项为MAX,则该序列中路径长度调整的增量为MAX-δ,对路径序列中每一路径长度length,如果|length|≥MAX-δ,就不再调整,该项的增量设为0,如果|length|<MAX-δ,则将该项的增量设为MAX-δ-|length|;从输出到输入依倒序逐一扩展其它电路元素的标记按照如下的方法扩展本元素的路径长度;第一步从本元素所有的扇出元素的节点中,为本元素的每个路径长度,找出它的扇出元素中与这个路径长度匹配的扩展路径长度,假设本元素的某个扇出元素的延迟时间为τ,反相系数为Rev非门,与非门,或非门的反相系数是-1,其它的门的反相系数是1,本元素的路径长度和其扇出元素的扩展路径长度相匹配,指的是本元素的路径长度值记为SPL1与其扇出元素的扩展路径长度中的路径长度值记为SPL2具有这样的关系(SPL1+τ)*Rev=SPL2,第二步合并本元素的所有扇出元素中匹配的扩展路径长度的增量族得到本元素的增量族,本元素的增量族应含有其扇出元素的增量族中所有不相等的增量值,本元素的增量对应的期望次数应是所有扇出元素同一增量的期望次数之和;找到被请求加入增量次数最多的电路元素,增加该元素的门延迟。
7.消除多原始输入跳变导致的冒险的方法,步骤如下;(1)首先将电路从原始输入到原始输出按照如下公式分级, (2)然后,从原始输入开始逐级处理电路中的门,只有一个扇入的门不计,如果一个门的多个扇入在不同的级上,我们保持级数最大的那个扇入不变,而在那些级数较小的扇入上增加延迟门,使得这些扇入的级数都等于该门所有的扇入的最大级数。
全文摘要
本发明涉及检测和消除集成电路中产生冒险的方法。包括电路静态时延特性的冒险检测和消除方法。通过适当调整电路中部分路径的长度来消除或减少冒险。当只有一个原始输入发生跳变时,如果两条延时不同的路径在电路某点汇聚,并且这两条路径上具有反相功能的门(与非门,或非门,非门)的数目奇偶性不同,则在该点可能产生冒险;当多个原始输入同时发生跳变时,只要汇聚的路径延时不同则认为在汇聚点可能产生冒险。对于单原始输入跳变导致的冒险我们通过有选择的增加一些门的延迟来消除或者减少。对于多个原始输入跳变导致的冒险我们通过增加一定数量的逻辑门使跳变在电路中同步传播来消除或减少冒险。
文档编号H01L21/70GK1450617SQ0312512
公开日2003年10月22日 申请日期2003年5月21日 优先权日2003年5月21日
发明者刘国华, 闵应骅, 李晓维 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1