清华大学2012届本科毕业论文
1 引言
1.1 课题背景
随着计算机科学与技术突飞猛进地发展,用数字电路进行信号处理的优势也更加突出。自20世纪70年代开始,这种用数字电路处理模拟信号的所谓“数字化”浪潮已经席卷了电子技术几乎所有的应用领域。数字信号可以从空间分布和时间分布两方面加以介绍,在空间分布上是大量的数据通道同时传输数据;在时间分布上是按一定格式组成的数据码流,这些数据码流是以离散时间为自变量的数据字。在半导体技术飞速的发展的今天,数字逻辑电路的容量、计算能力及可靠性已有了很大的提高。凭借高速、灵活的编程功能等优点,数字电路成为当今电路设计、信号处理等领域重要的组成部分。竞争冒险现象直接影响电路工作的稳定性、可靠性,甚至会导致整个数字系统的误动作和逻辑紊乱。因此,如何解决竞争冒险问题就成为数字电路设计中的关键环节。 1.2 国内外的研究现状及发展趋势
自从数字电路出现以来,对于冒险与竞争的分析和处理问题就一直是学术界与技术界十分关注的问题,提出了各种不同的方法用于处理冒险与竞争问题。但由于集成电路技术的发展,冒险与竞争问题一直没有得到有效解决。特别是在深亚微米[1]和高速状态条件下,这种矛盾更加突出,即使是理论上能够保证电路不存在冒险与竞争,但由于电路工艺和传输线的问题,冒险与竞争也依然存在。
在工程上实际中,各逻辑门电路有一定的延迟时间,并且输入信号的到来也不一定是完全同时,有先有慢,由于种种原因,造成了输出信号中出现一些不希望出现的信号(毛刺),这种现象称为“冒险”。而把数字逻辑中因信号延迟不均匀而引起的信号时间差别的现象叫信号的“竞争”[2]。 1、竞争冒险的成因与分析
组合电路中产生竞争冒险的原因和分析在组合电路中,产生竞争冒险的主要原因是时延。时序逻辑电路中产生竞争冒险的原因和分析在时序逻辑电路中,竞争冒险的产生主要来自2个方面:一是组合逻辑电路部分可能发生的竞争冒险现象;二是存储电路工作过程中发生的竞争冒险。同步时序电路不存在竞争现象。异步时序电路中,当输入号和时钟信号发生同时改变时,而且是通过不同路径到达同一触发器时,就有可能导致竞争冒险。在FPGA ( Field Programmable Gate Array) 中,延时主要是由连线的长短和逻辑
第 1 页 共 33 页
清华大学2012届本科毕业论文
单元的数目决定的,同时还受器件的制造工艺、工作电压、温度等因素的影响。信号的电平转换也需要一定的过渡时间[3]。由于FPGA 以及其他的CPLD 器件内部的分布电容和电感不能过滤电路中的毛刺,从而使得毛刺逐级传递,对电路造成的影响更加突出。即使是在最简单的逻辑运算中,如果出现多路信号同时跳变的情况,在通过内部走线之后,也一定会产生毛刺。 2、竞争冒险的判别方法
根据定义可知,在一定的条件下,门电路的输出端表达式可以简化成两个互补信号相加或者相乘的形式, 即L?A?A或L?AA的形式,那么就可以判断电路存在竞争冒险。一下介绍判断竞争冒险的几种常用方法。 (1)代数法
代数法紧扣竞争冒险最基本的定义,在n个变量的逻辑表达式中,在一定条件下,表达式可以化简为L?A?A或L?AA的形式,就可以判断该电路存在竞争冒险。这种方法虽然简单,但局限性太大,因为多数情况下输入变量都有两个以上同时改变状态的可能性。如果输入变量的数目有很多,就更难于从逻辑函数时尚简单的找出所有产生竞争-冒险现象的情况了。 (2) 卡诺图法
从逻辑表达式的卡诺图上观察,如果有两个卡诺圈相切,则必然存在竞争冒险。需要注意的是,判断是否相切时,必须考虑卡诺图[5]的循环相邻特性,即最左边的列与最右边的列是相邻的,最上面的行与最下面的行也是相邻的。
图1.1 卡诺图
图1.1(a)中2个卡诺图圈相切,将产生冒险,相切处A =0 ,C= 1 ,B变量变化时产生冒
第 2 页 共 33 页
清华大学2012届本科毕业论文
险;图1.1(b)中卡诺圈相交,无冒险。 (3)仿真法和实验法
代数法和卡诺图法都比较简单,但不适用于多个变量输入的情况,因此可以采用计 算机软件仿真法来判断,例如Multisim、QuartusⅡ等软件都能有效地检测出电路中存在的竞争冒险现象。而由于电路本身存在的误差等问题,还需要进一步通过实验的手段来判断是否存在竞争冒险,该方法虽然繁琐,但可靠性高,是电路设计的必经阶段。 3、竞争冒险的消除方法
组合逻辑电路中竞争冒险的消除方法:(1) 加选通脉冲信号(2) 修改逻辑设计(增加冗余项)(3) 输出端并联电容器(加滤波电容) (5) 加封锁脉冲(6)采用可靠性编码
时序逻辑电路中竞争冒险的消除方法:(1) 在电路中插入适当的可控延迟调整变化速度,保证得到正确的转移结果(2) 在电路设计中,状态分配时,通过适当的状态分配避免临界竞争。
FPGA 中竞争冒险的消除方法:(1) 修改电路法(加D 触发器法)(2) 信号同步法 设计数字电路的时候采用同步电路可以大大减少毛刺(3) 信号延时同步法(4) 灵活运用时钟信号法 (5) 状态机控制法 4、竞争冒险的敏感度问题
在实际应用中必须认识到一点:不同的电路对于尖峰脉冲的敏感度[7]是不一样的。例如:时钟端口、清零和置位端口对毛刺十分敏感,任何一点尖峰都会使系统出错,影响电路的稳定性。但是对于D触发器来说,由于它的状态变化出现在时钟上升沿,因此,只要毛刺不出现在时钟上升沿并且满足数据的建立和保持时间,就不会对系统造成危害,也就是说D触发器的输入端对尖峰不敏感根据这个特性,在系统设计时要求设计者尽量使用同步电路,同步电路的信号变化通常出现在时钟上升沿而且需要满足数据的建立和保持时间,事实上,由于尖峰脉冲出现时间很短,基本上很难满足数据的建立和保持时间。所以,这种方法可行性较高。 5、国内外最新发展动态
(1)有关数字电路检测、设计技术
在对应用代数法和K图法检测[8]与消除冒险的技术的研究基础上,提出了一种用于二值电路且针对单变量跳变的无冒险电路设计新方法,主要应用K图化简新规则来化简函数以实现无冒险电路设计。针对二值电路中由于多个变量跳变而引发的冒险,引入
第 3 页 共 33 页
清华大学2012届本科毕业论文
了信号行为四值模型的基本概念,并进一步提出了基于信号多值行为的冒险检测方法。此方法与传统的冒险检测方法相比更直接,而且可以同时检测出电路的静态冒险和动态冒险。门冻结技术是用于电路无冒险设计的一项新技术,其基本思想是选择一些高冒险门用一个修改后的门(F门)来代替,当一个适当的控制信号起作用的时候,F门可以过滤掉冒险。利用门冻结技术的基本原理,提出了基于F门的逻辑单元电路设计;F-与非门和F-或非门,并将其应用到一种新的RS触发器中。新设计的RS触发器不仅有正确的逻辑功能,而且消除了冒险,降低了功耗。 (2)有关检测仪器
伴随着数字系统复杂度的不断增加,对测量速度和测量精度的要求也越来越高,因此使用者将视角转向了逻辑分析仪。逻辑分析仪作为数字域测试中的专用仪器,能够方便的查找程序编制和运行中的错误,测量和比较数字逻辑电路的状态,有效而准确的观察传输延迟、竞争冒险、毛刺干扰等数字系统设计和调试中存在的问题。虚拟仪器技术作为仪器发展的方向,在保障传统仪器功能的基础上根据自身的需要可对硬件自行裁剪,节约了成本。虚拟仪器技术应用到逻辑分析仪的设计里,将使逻辑分析仪的应用得到更广泛的普及。
1.3 本课题的任务及研究意义
本课题首先了解了数字电路竞争与冒险现象的国内外研究现状,对目前数字电路竞争与冒险现象的发展现状进行了回顾,在分析数字电路竞争与冒险产生的原因、判断方法的基础上,总结了消除数字电路竞争与冒险的方法,最后查询了数字电路竞争与冒险现象的最新发展动态,进一步对于可编程逻辑器件检测仪器[10]、数字电路系统评估等进行了深入研究。
随着VLSI 和计算机技术的飞速发展,数字系统的设计发生了革命性的变化,今天的数字系统设计已经进入广泛应用大规模高密度可编程逻辑器件(HDPLD)的电子设计自动化(EDA)的新时代,一台电脑、一套EDA 软件,在家中也能高效地实现大规模集成电路和数字系统的设计。尽管如此,毛刺仍然是设计中所必须克服和解决的主要问题之一,现代数字系统设计中对毛刺的判断、定位和分析完全可以在远离硬件的EDA 环境下通过精确的时序仿真和时间分析来完成,毛刺的消除方法同传统方法相比有新的特点和本质不同。
第 4 页 共 33 页
清华大学2012届本科毕业论文
2 相关理论知识介绍
2.1 竞争与冒险的现象
在数字电路设计时,无论是在组合、时序还是FPGA电路中,都要考虑竞争冒险现象。由于信号在传输和处理过程中经过不同的逻辑门、触发器或逻辑单元时产生时差,造成信号的原变量和反变量状态改变的时刻不一致,这种现象称为竞争(Race) 。由于竞争而引起电路输出信号中出现了非预期信号,产生瞬间错误的现象称为冒险(Competition) ,表现为输出端出现了原设计中没有的窄脉冲,常称其为毛刺(Burr) 。 2.2 竞争与冒险的分类 (1)临界竞争和非临界竞争
通常竞争可以分为临界竞争和非临界竞争。当竞争的结果导致冒险或险象( Hazard) 发生(例如毛刺) ,产生暂时或永久性错误输出,称为临界竞争。若结果没有导致冒险发生,或虽有冒险发生但不会产生错误输出不影响系统的工作的竞争为非临界竞争。 (2)静态冒险和动态冒险
组合逻辑电路的险象仅在信号状态改变的时刻出现毛刺,这种冒险是过渡性的,它不会使稳态值偏离正常值,但在时序电路中,冒险是本质的,可导致电路的输出值永远偏离正常值或者发生振荡。
组合逻辑电路的冒险是过渡性冒险,从冒险的波形上,可分为静态冒险和动态冒险。输入信号变化前后,输出的稳态值是一样的,但在输入信号变化时,输出信号产生了毛刺,这种冒险是静态冒险。若输出的稳态值为0,出现了正的尖脉冲毛刺,称为静态0险象。若输出稳态值为1,出现了负的尖脉冲毛刺,则称为静态1冒险。输入信号变化前后,输出的稳态值不同,并在边沿处出现了毛刺,称为动态险象。 (3)功能冒险和逻辑冒险
功能冒险是由于电路功能状态的转化造成的,逻辑冒险是由于电路的延迟特性造成的。
第 5 页 共 33 页