论文部分内容阅读
摘 要:论文对数字电路中的冒险进行了研究。针对单输入变量跳变而引发的冒险,介绍了应用代数法检测竞争冒险的方法及消除方法。
关键词:数字电路;冒险;代数法
复杂的数字系统,往往由多个功能模块电路组成,而模块电路一般由多种门电路和触发器等基本元件组成,例如与门、与非门、或门、或非门、异或门、D触发器和JK触发器等。由于数字系统一般由多级门电路和触发器等器件组成,且器件的时延不同,因此各输入端所加的信号不可能同时到达某些输出端,最终导致数字系统的竞争冒险发生[1]。冒险现象是数字电路工作状态转换过程中经常会出现的一种现象,反映在输出波形上就会产生尖峰脉冲,俗称毛刺。这种由于竞争而产生的毛刺会引发电路的假跳变从而导致功耗的增加,同时毛刺如果被存储电路中的触发器接受,可能引起触发器的误操作,造成整个时序电路的误动作,因而这种现象必须避免。复杂的数字系统由于涉及的元器件众多,且各种信号变化情况复杂,所以对电路中冒险现象的讨论是比较复杂的。长期以来,逻辑电路中的冒险最小化技术的研究一直都是一个受到强烈关注的课题,因为一个冒险活动有限甚至无冒险的电路总是非常受欢迎的。
任何一个门电路都具有一定的传输时间,当输入信号的状态突然改变时,输出信号不可能发生突变,需要滞后一段时间。这样,当电路的原始输入发生变化时,如果它经过两个不同的传输路径在某一门G汇聚,由于不同传输路径上门的级数不一定相同,且门电路的延迟时间有差异,从而使门G的这两个输入的变化产生了先后,因而可能会在门G的输出端产生一个预期之外的窄脉冲。我们把这种现象称为组合逻辑电路中的竞争冒险。这个窄脉冲可能会使负载电路发生误动作。
触发器是这种窄脉冲的敏感电路,但在设计电路时,往往不考虑这个窄脉冲因素的影响,而是假定了所有信号的改变都是以阶跃形式完成的。因此,在实践中发现,基于这种假定条件所设计出来的逻辑电路,有时会产生误动作,有时竟然无法工作。因此为了保证电路的正常工作,必须对冒险进行检测和消除。
有关研究表明CM0S电路中由于冒险消耗的功耗约占电路总功耗的20%一40%[3],以一个逻辑深度为30的16x16位的乘法器为例,冒险造成的功耗甚至占电路总功耗的67%,冒险功耗随着逻辑深度的增加而迅速上升[2]。冒险功耗是由电路达到稳定状态之前的跳变引起的功耗,这些跳变对于电路逻辑功能的实现没有任何贡献,给电路带来了大量不必要的功耗,因此在电路设计中冒险的检测并加以避免和消除是降低电路功耗的一个重要手段。
从上述分析可见对数字电路中冒险的检测和消除方法的研究无论对于保证电路正常工作还是对于电路的低功耗设计均具有至关重要的意义。
一、常见检测冒险的方法及消除方案
常见的冒险消除方法有四种:一是引入封锁脉冲;二是引入选通脉冲;三是接入滤波电容四是修改逻辑设计。引入封锁脉冲和引入选通脉冲由于冒险现象发生在输入信号变化的瞬间,所以可以用封锁脉冲封锁不稳定的输出状态或者用选通脉冲选取稳定时的输出状态,消除冒险现象。这两个方法比较简单,而且不增加器件数目,但是它们有一个共同的局限性,这就是必须找到一个封锁脉冲或选通脉冲,而且对此脉冲的宽度和产生的时间有严格的要求,选通脉冲的宽度和频率需对实际电路进行调整选取。要注意其输出不再是电平信号,而是脉冲信号。接入滤波电容由于电路中出现的冒险现象是很窄的尖峰脉冲,因此可以在电路的输出与地之间接一个小电容,瞬间的尖峰脉冲便抑制在下级门电路的阈值电压以下。但选用的滤波电容大小比较讲究,它应以输入最高频率信号时,不滤掉真实信号为佳,电容的容量需实测选取,一般在零点几到几个。此方法同样也具备简单易行的优点,使用此法会使输出波形边沿变坏,并增加延迟,一般仅用于低速逻辑电路中。修改逻辑设计这个方法实际上是指在电路设计中尽量采用树形结构,避免层叠式结构,减小逻辑深度,避免多余的假跳变,同时充分利用现存电路的有利条件,适当地增加冗余项,消除互补变量,插入缓冲器等此方法如果运用得当,有时可以收到比较理想的效果,但这种方法受到条件限制而且能解决的问题也是有限的。
二、应用代数法检测竞争冒险的方法及消除方法
在进行逻辑电路设计时,必须能发现和判别出产生竞争冒险的可能,并采取积极有效的措施将竞争冒险予以消除。通常作为研究对象的电路为“与/或”或“或/与”的二级门结构,它们对应的函数分别具有sop或pos的形式。因此,对这些电路的竞争冒险分析可直接通过对相应函数形式的代数分析来进行。在组合电路中,只要某个因子同时以原变量和反变量出现在函数式中,就具备了竞争条件,如果消去式中其它因子,仅留下该因子,若能得到如下形式:
F=X+X或F=XX
电路就存在竞争冒险,这里只讨论具有“与或”二级门电路结构的竞争冒险分析,而讨论结果能对应推广到“或与”二级门电路结构的情况。并且假设输入变量每次只有一个改变状态。首先,对象函数可以通过对各乘积项抽因子而被表示为跳变变量设为的如下分解形式:
F=AX+BX+C(1)
上式中展开系数A、B、C被认为是其他变量的函数。
当A=B=1时,电路产生竞争冒险,所有由式(1)出发得出的竟争冒险条件是ABC=1。在输入变量每次只有一个改变状态的情况下,消除竞争冒险的方法是增加逻辑函数的冗余项ABC。冗余项的加入并不改变原逻辑函数的逻辑值,但冗余项的加入却可以有效的消除冒险。如在式(1)所示的函数中我们增加一个与冒险条件一致的冗余项ABC,即可以消除跳变带来的竞争冒险。容易证明,增加冗余项原函数功能不变。
F=AX+BX+C+ABC=AX+BX+C+AB=AX+BX+C
上式亦暗示,其实只要增加较简单的冗余项就可能达到消除竞争冒险的目的。因为在增加冗余项后,如记C+AB=C,可证明产生竞争冒险的条件不再满足。
ABC=ABC+AB=ABCAB=0≠1
由此可见,通过增加冗余项,竞争冒险现象被消除了。
参考文献:
[1]阎石.数字电子技术基础(第四版)[M].北京:高等教育出版社,2001年.
[2]Rabacy J M,Pedram M.Low Power design methodologies[J].Boston:Kluwer Academic Press, 1996
[3] Bellaouar A,Elmasry M1.Low Powerdigital VLSI design circuits and systems[J].Boston:Kluwer Academic Press,1995.
[4]李艳,消除组合逻辑电路中竞争冒险的几种方法[J].潍坊高等职业教育,2006 ,(04).
[5]张文,竞争冒险现象研究[J].内江师范学院学报,2005,(04).
关键词:数字电路;冒险;代数法
复杂的数字系统,往往由多个功能模块电路组成,而模块电路一般由多种门电路和触发器等基本元件组成,例如与门、与非门、或门、或非门、异或门、D触发器和JK触发器等。由于数字系统一般由多级门电路和触发器等器件组成,且器件的时延不同,因此各输入端所加的信号不可能同时到达某些输出端,最终导致数字系统的竞争冒险发生[1]。冒险现象是数字电路工作状态转换过程中经常会出现的一种现象,反映在输出波形上就会产生尖峰脉冲,俗称毛刺。这种由于竞争而产生的毛刺会引发电路的假跳变从而导致功耗的增加,同时毛刺如果被存储电路中的触发器接受,可能引起触发器的误操作,造成整个时序电路的误动作,因而这种现象必须避免。复杂的数字系统由于涉及的元器件众多,且各种信号变化情况复杂,所以对电路中冒险现象的讨论是比较复杂的。长期以来,逻辑电路中的冒险最小化技术的研究一直都是一个受到强烈关注的课题,因为一个冒险活动有限甚至无冒险的电路总是非常受欢迎的。
任何一个门电路都具有一定的传输时间,当输入信号的状态突然改变时,输出信号不可能发生突变,需要滞后一段时间。这样,当电路的原始输入发生变化时,如果它经过两个不同的传输路径在某一门G汇聚,由于不同传输路径上门的级数不一定相同,且门电路的延迟时间有差异,从而使门G的这两个输入的变化产生了先后,因而可能会在门G的输出端产生一个预期之外的窄脉冲。我们把这种现象称为组合逻辑电路中的竞争冒险。这个窄脉冲可能会使负载电路发生误动作。
触发器是这种窄脉冲的敏感电路,但在设计电路时,往往不考虑这个窄脉冲因素的影响,而是假定了所有信号的改变都是以阶跃形式完成的。因此,在实践中发现,基于这种假定条件所设计出来的逻辑电路,有时会产生误动作,有时竟然无法工作。因此为了保证电路的正常工作,必须对冒险进行检测和消除。
有关研究表明CM0S电路中由于冒险消耗的功耗约占电路总功耗的20%一40%[3],以一个逻辑深度为30的16x16位的乘法器为例,冒险造成的功耗甚至占电路总功耗的67%,冒险功耗随着逻辑深度的增加而迅速上升[2]。冒险功耗是由电路达到稳定状态之前的跳变引起的功耗,这些跳变对于电路逻辑功能的实现没有任何贡献,给电路带来了大量不必要的功耗,因此在电路设计中冒险的检测并加以避免和消除是降低电路功耗的一个重要手段。
从上述分析可见对数字电路中冒险的检测和消除方法的研究无论对于保证电路正常工作还是对于电路的低功耗设计均具有至关重要的意义。
一、常见检测冒险的方法及消除方案
常见的冒险消除方法有四种:一是引入封锁脉冲;二是引入选通脉冲;三是接入滤波电容四是修改逻辑设计。引入封锁脉冲和引入选通脉冲由于冒险现象发生在输入信号变化的瞬间,所以可以用封锁脉冲封锁不稳定的输出状态或者用选通脉冲选取稳定时的输出状态,消除冒险现象。这两个方法比较简单,而且不增加器件数目,但是它们有一个共同的局限性,这就是必须找到一个封锁脉冲或选通脉冲,而且对此脉冲的宽度和产生的时间有严格的要求,选通脉冲的宽度和频率需对实际电路进行调整选取。要注意其输出不再是电平信号,而是脉冲信号。接入滤波电容由于电路中出现的冒险现象是很窄的尖峰脉冲,因此可以在电路的输出与地之间接一个小电容,瞬间的尖峰脉冲便抑制在下级门电路的阈值电压以下。但选用的滤波电容大小比较讲究,它应以输入最高频率信号时,不滤掉真实信号为佳,电容的容量需实测选取,一般在零点几到几个。此方法同样也具备简单易行的优点,使用此法会使输出波形边沿变坏,并增加延迟,一般仅用于低速逻辑电路中。修改逻辑设计这个方法实际上是指在电路设计中尽量采用树形结构,避免层叠式结构,减小逻辑深度,避免多余的假跳变,同时充分利用现存电路的有利条件,适当地增加冗余项,消除互补变量,插入缓冲器等此方法如果运用得当,有时可以收到比较理想的效果,但这种方法受到条件限制而且能解决的问题也是有限的。
二、应用代数法检测竞争冒险的方法及消除方法
在进行逻辑电路设计时,必须能发现和判别出产生竞争冒险的可能,并采取积极有效的措施将竞争冒险予以消除。通常作为研究对象的电路为“与/或”或“或/与”的二级门结构,它们对应的函数分别具有sop或pos的形式。因此,对这些电路的竞争冒险分析可直接通过对相应函数形式的代数分析来进行。在组合电路中,只要某个因子同时以原变量和反变量出现在函数式中,就具备了竞争条件,如果消去式中其它因子,仅留下该因子,若能得到如下形式:
F=X+X或F=XX
电路就存在竞争冒险,这里只讨论具有“与或”二级门电路结构的竞争冒险分析,而讨论结果能对应推广到“或与”二级门电路结构的情况。并且假设输入变量每次只有一个改变状态。首先,对象函数可以通过对各乘积项抽因子而被表示为跳变变量设为的如下分解形式:
F=AX+BX+C(1)
上式中展开系数A、B、C被认为是其他变量的函数。
当A=B=1时,电路产生竞争冒险,所有由式(1)出发得出的竟争冒险条件是ABC=1。在输入变量每次只有一个改变状态的情况下,消除竞争冒险的方法是增加逻辑函数的冗余项ABC。冗余项的加入并不改变原逻辑函数的逻辑值,但冗余项的加入却可以有效的消除冒险。如在式(1)所示的函数中我们增加一个与冒险条件一致的冗余项ABC,即可以消除跳变带来的竞争冒险。容易证明,增加冗余项原函数功能不变。
F=AX+BX+C+ABC=AX+BX+C+AB=AX+BX+C
上式亦暗示,其实只要增加较简单的冗余项就可能达到消除竞争冒险的目的。因为在增加冗余项后,如记C+AB=C,可证明产生竞争冒险的条件不再满足。
ABC=ABC+AB=ABCAB=0≠1
由此可见,通过增加冗余项,竞争冒险现象被消除了。
参考文献:
[1]阎石.数字电子技术基础(第四版)[M].北京:高等教育出版社,2001年.
[2]Rabacy J M,Pedram M.Low Power design methodologies[J].Boston:Kluwer Academic Press, 1996
[3] Bellaouar A,Elmasry M1.Low Powerdigital VLSI design circuits and systems[J].Boston:Kluwer Academic Press,1995.
[4]李艳,消除组合逻辑电路中竞争冒险的几种方法[J].潍坊高等职业教育,2006 ,(04).
[5]张文,竞争冒险现象研究[J].内江师范学院学报,2005,(04).