关于数字电路竞争-冒险现象的研究_第1页
关于数字电路竞争-冒险现象的研究_第2页
关于数字电路竞争-冒险现象的研究_第3页
关于数字电路竞争-冒险现象的研究_第4页
关于数字电路竞争-冒险现象的研究_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文关于数字电路竞争- 冒 险现象的研究学生姓名: 学号: 学 院: 专 业: 指导教师: 2012 年 6 月关于数字电路竞争-冒险现象的研究摘要:随着科学技术的发展,数字电路在实际应用中起到了举足轻重的作用,例如PLD、FPGA 等。本文介绍了竞争冒险的概念及产生的原因。就数字电路中出现的竞争冒险问题及解决办法,从理论和实践的角度对其进行了总结归纳,并举例分析了判别竞争冒险的方法和消除方法,提出人们在分析设计数字电路时要根据不同的电路情况采用不同的分析、判别和消除方法。在数字系统设计和调试中,常产生传输延迟、竞争冒险、毛刺干扰等问题,这是传统仪器和消除方法无法解决的,在这种情况下出现了适用于软、硬件分析的新的测试、消除竞争与冒险现象的方法。准确的实现系统功能是每一个系统设计者追求的最终目标,面对越来越庞大的系统设计,设计者需要更加完善、准确地检测出竞争与冒险现象,这样才能保证设计的准确性。本论文在对国内外有关竞争与冒险现象的发展现状的研究上,还进一步对冒险现象新的检测、消除技术和基于FPGA的虚拟逻辑分析仪进行了分析和研究。关键词:竞争冒险,数字电路,检测技术,逻辑分析仪Research and Analysis on Race and Competition in Digital Circuit Design Abstract:The digital circuits play a pivotal role in the practical application with the development of science and technology, For example, PLD, FPGA, etc. This paper proposes an experiment analysis on an enhanced algorithm of MVFDS. There are three part s in this paper, the first one is the introduction of features of the system, the second one is the process of experiment s which are conducted to verify the performance of the enhanced system. The third one is the conclusions and possible further improvements are discussed.Many problems are caused during designing or debugging the digital system,which include the transmission delay,the competition risk,the interference of burrs and so on. They can not be resolved by traditional instruments. In this situation,a new type of digital domain testing instrument named logic analyzer is made to analyze hardware and software,which can effectively solve these problems caused in the digital system. System evaluation is very important to a digital system designer. In order to complete a precise system, digital engineer should give the system evaluation as early as possible. This thesis has researched the virtual logic analyzer based on FPGA to let more users use it,which bases on researching virtual instrument technology,FPGA technology and USB interface. Key words:Race and Competition,Digital Circuit,Detection Technique,Logic Analyzer目 录1 引言 .11.1 课题背景 .11.2 国内外的研究现状及发展趋势 .11.3 本课题的任务及研究意义 .42 相关理论知识介绍 .52.1 竞争与冒险的现象 .52.2 竞争与冒险的分 类 .53 组合逻辑电路竞争与冒险 .63.1 组合电路中产生竞争冒险的原因和分析 .63.2 组合逻辑电路中竞争冒险的消除方法 .74 时序逻辑电路竞争与冒险 .114.1 时序逻辑电路中产生竞争冒险的原因和分析 .114.2 时序逻辑电路中竞争冒险的消除方法 .135 可编程逻辑电路的竞争与冒险 .155.1 可编程逻辑器件概述 .155.2 FPGA 的开发过程 .165.3 FPGA 器件中产生竞争冒险的原因和分析 .175.4 FPGA 中竞争与冒险的消除方法 .186 数字电路竞争与冒险的最新成果分析 .216.1 关于数字电路检测、设计技术 .216.1.1 冒险检测技术与无冒险电路设计的研究意义 .216.1.2 冒险检测技术与无冒险电路设计的研究现状 .216.1.2 主要研究成 果 .216.2 关于竞争与冒险的检测仪器 .256.2.1 逻辑检测仪的研究意义 .256.2.2 逻辑检测仪的研究现状 .266.2.3 主要研究成果 .277 结论 .30参 考 文 献 .31致谢 .331 引言 1.1 课题背景随着计算机科学与技术突飞猛进地发展,用数字电路进行信号处理的优势也更加突出。自 20 世纪 70 年代开始,这种用数字电路处理模拟信号的所谓“数字化”浪潮已经席卷了电子技术几乎所有的应用领域。数字信号可以从空间分布和时间分布两方面加以介绍,在空间分布上是大量的数据通道同时传输数据;在时间分布上是按一定格式组成的数据码流,这些数据码流是以离散时间为自变量的数据字。在半导体技术飞速的发展的今天,数字逻辑电路的容量、计算能力及可靠性已有了很大的提高。凭借高速、灵活的编程功能等优点,数字电路成为当今电路设计、信号处理等领域重要的组成部分。竞争冒险现象直接影响电路工作的稳定性、可靠性,甚至会导致整个数字系统的误动作和逻辑紊乱。因此,如何解决竞争冒险问题就成为数字电路设计中的关键环节。1.2 国内外的研究现状及发展趋势自从数字电路出现以来,对于冒险与竞争的分析和处理问题就一直是学术界与技术界十分关注的问题,提出了各种不同的方法用于处理冒险与竞争问题。但由于集成电路技术的发展,冒险与竞争问题一直没有得到有效解决。特别是在深亚微米 1和高速状态条件下,这种矛盾更加突出,即使是理论上能够保证电路不存在冒险与竞争,但由于电路工艺和传输线的问题,冒险与竞争也依然存在。 在工程上实际中,各逻辑门电路有一定的延迟时间,并且输入信号的到来也不一定是完全同时,有先有慢,由于种种原因,造成了输出信号中出现一些不希望出现的信号(毛刺) ,这种现象称为“冒险” 。而把数字逻辑中因信号延迟不均匀而引起的信号时间差别的现象叫信号的“竞争” 2。1、竞争冒险的成因与分析组合电路中产生竞争冒险的原因和分析在组合电路中,产生竞争冒险的主要原因是时延。时序逻辑电路中产生竞争冒险的原因和分析在时序逻辑电路中,竞争冒险的产生主要来自 2 个方面:一是组合逻辑电路部分可能发生的竞争冒险现象;二是存储电路工作过程中发生的竞争冒险。同步时序电路不存在竞争现象。异步时序电路中,当输入号和时钟信号发生同时改变时,而且是通过不同路径到达同一触发器时,就有可能导致竞争冒险。在 FPGA ( Field Programmable Gate Array) 中,延时主要是由连线的长短和逻辑单元的数目决定的,同时还受器件的制造工艺、工作电压、温度等因素的影响。信号的电平转换也需要一定的过渡时间 3。由于 FPGA 以及其他的 CPLD 器件内部的分布电容和电感不能过滤电路中的毛刺,从而使得毛刺逐级传递,对电路造成的影响更加突出。即使是在最简单的逻辑运算中,如果出现多路信号同时跳变的情况,在通过内部走线之后,也一定会产生毛刺。2、竞争冒险的判别方法根据定义可知,在一定的条件下,门电路的输出端表达式可以简化成两个互补信号相加或者相乘的形式, 即 或 的形式 ,那么就可以判断电路存在竞争冒AL险。一下介绍判断竞争冒险的几种常用方法。(1)代数法代数法紧扣竞争冒险最基本的定义,在 n 个变量的逻辑表达式中,在一定条件下,表达式可以化简为 或 的形式,就可以判断该电路存在竞争冒险。这种方AL法虽然简单,但局限性太大,因为多数情况下输入变量都有两个以上同时改变状态的可能性。如果输入变量的数目有很多,就更难于从逻辑函数时尚简单的找出所有产生竞争-冒险现象的情况了。(2) 卡诺图法从逻辑表达式的卡诺图上观察,如果有两个卡诺圈相切,则必然存在竞争冒险。需要注意的是,判断是否相切时,必须考虑卡诺图 5的循环相邻特性,即最左边的列与最右边的列是相邻的,最上面的行与最下面的行也是相邻的。图 1.1 卡诺图图1.1(a)中2个卡诺图圈相切,将产生冒险,相切处A =0 ,C= 1 ,B变量变化时产生冒险;图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 图化简新规则来化简函数以实现无冒险电路设计。针对二值电路中由于多个变量跳变而引发的冒险,引入了信号行为四值模型的基本概念,并进一步提出了基于信号多值行为的冒险检测方法。此方法与传统的冒险检测方法相比更直接,而且可以同时检测出电路的静态冒险和动态冒险。门冻结技术是用于电路无冒险设计的一项新技术,其基本思想是选择一些高冒险门用一个修改后的门(F 门)来代替,当一个适当的控制信号起作用的时候,F 门可以过滤掉冒险。利用门冻结技术的基本原理,提出了基于 F 门的逻辑单元电路设计;F -与非门和 F-或非门,并将其应用到一种新的 RS 触发器中。新设计的 RS触发器不仅有正确的逻辑功能,而且消除了冒险,降低了功耗。(2)有关检测仪器伴随着数字系统复杂度的不断增加,对测量速度和测量精度的要求也越来越高,因此使用者将视角转向了逻辑分析仪。逻辑分析仪作为数字域测试中的专用仪器,能够方便的查找程序编制和运行中的错误,测量和比较数字逻辑电路的状态,有效而准确的观察传输延迟、竞争冒险、毛刺干扰等数字系统设计和调试中存在的问题。虚拟仪器技术作为仪器发展的方向,在保障传统仪器功能的基础上根据自身的需要可对硬件自行裁剪,节约了成本。虚拟仪器技术应用到逻辑分析仪的设计里,将使逻辑分析仪的应用得到更广泛的普及。1.3 本课题的任务及研究意义本课题首先了解了数字电路竞争与冒险现象的国内外研究现状,对目前数字电路竞争与冒险现象的发展现状进行了回顾,在分析数字电路竞争与冒险产生的原因、判断方法的基础上,总结了消除数字电路竞争与冒险的方法,最后查询了数字电路竞争与冒险现象的最新发展动态,进一步对于可编程逻辑器件检测仪器 10、数字电路系统评估等进行了深入研究。随着 VLSI 和计算机技术的飞速发展,数字系统的设计发生了革命性的变化,今天的数字系统设计已经进入广泛应用大规模高密度可编程逻辑器件(HDPLD)的电子设计自动化(EDA)的新时代,一台电脑、一套 EDA 软件,在家中也能高效地实现大规模集成电路和数字系统的设计。尽管如此,毛刺仍然是设计中所必须克服和解决的主要问题之一,现代数字系统设计中对毛刺的判断、定位和分析完全可以在远离硬件的 EDA 环境下通过精确的时序仿真和时间分析来完成,毛刺的消除方法同传统方法相比有新的特点和本质不同。2 相关理论知识介绍2.1 竞争与冒险的现象在数字电路设计时,无论是在组合、时序还是 FPGA 电路中,都要考虑竞争冒险现象。由于信号在传输和处理过程中经过不同的逻辑门、触发器或逻辑单元时产生时差,造成信号的原变量和反变量状态改变的时刻不一致,这种现象称为竞争(Race) 。由于竞争而引起电路输出信号中出现了非预期信号,产生瞬间错误的现象称为冒险(Competition) ,表现为输出端出现了原设计中没有的窄脉冲,常称其为毛刺(Burr) 。2.2 竞争与冒险的分类(1)临界竞争和非临界竞争通常竞争可以分为临界竞争和非临界竞争。当竞争的结果导致冒险或险象( Hazard) 发生(例如毛刺) ,产生暂时或永久性错误输出,称为临界竞争。若结果没有导致冒险发生,或虽有冒险发生但不会产生错误输出不影响系统的工作的竞争为非临界竞争。(2)静态冒险和动态冒险组合逻辑电路的险象仅在信号状态改变的时刻出现毛刺,这种冒险是过渡性的,它不会使稳态值偏离正常值,但在时序电路中,冒险是本质的,可导致电路的输出值永远偏离正常值或者发生振荡。组合逻辑电路的冒险是过渡性冒险,从冒险的波形上,可分为静态冒险和动态冒险。输入信号变化前后,输出的稳态值是一样的,但在输入信号变化时,输出信号产生了毛刺,这种冒险是静态冒险。若输出的稳态值为 0,出现了正的尖脉冲毛刺,称为静态 0 险象。若输出稳态值为 1,出现了负的尖脉冲毛刺,则称为静态 1 冒险。输入信号变化前后,输出的稳态值不同,并在边沿处出现了毛刺,称为动态险象。(3)功能冒险和逻辑冒险功能冒险是由于电路功能状态的转化造成的,逻辑冒险是由于电路的延迟特性造成的。3 组合逻辑电路竞争与冒险3.1 组合电路中产生竞争冒险的原因和分析在组合电路中,产生竞争冒险的主要原因是时延。当逻辑门有 2 个互补输入信号同时向相反状态变化时,输出端可能产生过渡干扰脉冲的竞争冒险,通常称为“1”,“0”冒险。 “1”冒险(偏“0”冒险) 是由一个变量的原变量和反变量同时加到与门输入端造成的。 “0”冒险(偏“1”冒险) 是由一个变量的原变量和反变量同时加到一个或门输入端造成的。组合逻辑电路产生竞争冒险的典型电路与分析:若输入 B = C = 1 ,则有 ,AF在静态时,无论 A 取何值, F = 1 。但当 A 变化时由高电平变为低电平, A 的路径不同, 各条路径的时延不同, 将出图 1 中的偏“1”冒险,即负脉冲。若 B = C = 0 时, ,恒为 0 ,但当 A 变化时,由低电平变为高电平, 将产生一宽度为正极性的脉冲偏“0”冒险。如图 3.1 所示。图3.1 电路图与脉冲电平3.2 组合逻辑电路中竞争冒险的消除方法(1) 加选通脉冲信号这里分析图3.2 所示的组合电路:图3.2 修改逻辑设计由该电路逻辑图可写出输出函数: BCAF假定A = C = 1 时, B当B 由1 变为0 时,由于信号传输路径不同, F1 先由0变为1 , F2 后由1 变为0 ,使F1 和F2 出现同时为1 的时刻 ,故输出产生负向过渡干扰脉冲。该选通脉冲通常是P = 0 , 使电路处于封锁状态,只有在接收了输入信号并且电路达到了新的稳态之后,才有脉冲P = 1 , 允许电路输出。这就避免了竞争冒险的影响。引入选通脉冲的组合电路, 输出信号只有在选通脉冲P = 1 其间才有效, 这就是选通法。(2) 加封锁脉冲在输入信号产生竞争冒险的时间内,引入一个脉冲将可能产生尖峰干扰脉冲的门封锁住。封锁脉冲应在输入信号转换前到来,转换结束后消失,如图3.3所示。图3.3 封锁脉冲值得注意的是,无论是引入封锁脉冲还是选通脉冲,脉冲选通法最后的输出信号将变为脉冲信号,该方法不需要增加电路元件就可以从根本上消除尖峰脉冲,但要求脉冲与输入信号同步,且对取样脉冲的宽度和作用时间有较高的要求。(2) 修改逻辑设计(增加冗余项)适当修改逻辑电路,可以消除某些竞争冒险现象。例如,上面分析的电路中,当A = C = 1 时 ,由于 出现了竞争冒险现象。为此,可把表达式变换一下, 根据常用布尔BF公式可知: F = + BC = + BC + AC ,在增加了AC项以后,函数关系不变,但当A = C A= 1 时 ,输出F恒为1 ,不再产生干扰脉冲。所以,把电路按上式修改 ,即可消除竞争冒险现象。修改后的电路如图3.4所示。用增加多余项的方法修改逻辑设计,可以消除一些竞争冒险现象,但是,这种方法的适用范围是有限的。不过,只有通过逻辑设计使得在转换信号时电路中各个门的输入端只有一个变量改变状态,输出就不会出现过渡脉冲干扰,从而消除了竞争冒险现象。图3.4 修改后的电路图(4) 卡诺图法在卡诺图中静态逻辑冒险表现在卡诺图2 个圈的相切处。如 F用卡诺图法判断有无静态逻辑冒险。首先用卡诺图(见图3.5)表CABDA示该逻辑函数。有2 处发生静态逻辑冒险冒险(黑色标示):一处是当A = B = 1 , C = 0 时,表达式F = D + ,当D由1 0 , 由0 1 信号变化的过程中发生静态逻辑冒险。另一处是当B = C = D = 1 时,表达式 ,当A由01 , 由10信号变化的过程中发生F静态逻辑冒险。图3.5 卡诺图用代数法或者卡诺图法判断出竞争冒险以后,直接对逻辑表达式进行修改,进而修改电路,但局限性比较大,不适合输入变量较多及较复杂的电路。(3) 输出端并联电容器(滤波电容法)逻辑电路在较慢速度下工作时,为了消去竞争冒险,可以在输出端接一个几百微法的电容,将其滤出掉。如图 3.6 所示,由于电路中存在输出电阻 Ro ,致使输出波形上升沿和下降沿的变化变得比较缓慢, 仅适用于对输出波形上下沿要求不高的情形。对于很窄的负跳变脉冲起到平滑的作用,这时在输出端便不会出现逻辑错误。图3.6 电容滤出法4 时序逻辑电路竞争与冒险4.1 时序逻辑电路中产生竞争冒险的原因和分析在时序逻辑电路中,竞争冒险的产生主要来自2 个方面:一是组合逻辑电路部分可能发生的竞争冒险现象;二是存储电路工作过程中发生的竞争冒险。为了保证触发器可靠地翻转,输入信号和时钟信号在时间配合上应满足一定的要求。然而当输入信号和时钟信号同时改变,而且途径不同路径到达同一触发器时,便产生了竞争。1、异步时序电路中的竞争与冒险在异步时序电路中,当输入信号和时钟信号发生同时改变时,而且是通过不同路径到达同一触发器时,就有可能导致竞争冒险。时序逻辑电路产生竞争冒险的典型电路与分析,如图4.1所示,CP3取自Q1,而J3= K3 = Q2 ,且F2 的时钟信号取自Q1 ,因而当F1 由0 1 时, F3 的输入信号和CP3 同时改变,有可能导致竞争冒险。图4.1( a ) 是一个8进制计数器, 其状态转换图如图4.1(b)实线所示。如果当前状态是011 ,当Q1 由0 1时,若Q2 变化先于CP3 上升沿完成,则在CP3 = 1的全过程中, J3 = K3 = Q2 的状态始终不变 ,此时可根据 CP3 的下降沿到来时由Q2 的状态确定Q3 的状态。次态为 110 但如果Q1 由0 1 时,CP3 上升沿先于Q2 状态改变,则在CP3= 1 时, J3 = K3 = Q2 的状态有可能改变,这时不能由CP3下降沿到达时Q2 的状态来决定Q3 的状态。如 Q1 Q2 Q3 由011 101 时, F1 由0 1 。F1 首先变成高电平而Q2 的1 状态未改变,在极短的时间里出现J3 K3 CP3 同为高电平的情况, 使F3 主触发器为0 ,CP3 下降沿到达后, 尽管Q2 =J3 = K3 , 但由于F3 主触发器已为0 态,因此CP3 下降沿到达后, F3 将变为0 态,使Q1 Q2 Q3 = 000 ,如图 4.1(b) 虚线所示。这种竞争冒险将使电路的逻辑功能发生彻底的改变(变为4进制计数器) 。图8中如果不知CP3 和Q2 状态改变的先后,就不能确定该电路的逻辑功能。(a)(b)(c)(d)图4.1 异步时序电路中的竞争冒险2、同步时序电路中的竞争与冒险在有些规模较大的同步时序电路中,由于每个门的带负载能力有限,所以经常是先用一个时钟信号同时驱动几个门电路,然后再由这几个门电路分别去驱动若干个触发器。由于每个门的传输时间不同,严格地讲系统已不是真正的同步时序电路了,故仍有可能发生存储器电路的竞争-冒险现象 13。图4.2为由D触发器构成的移位寄存器。由于触发器较多,限于门电路的带载能力,选用分段供给时钟脉冲的方式,F0F7 由G1供给,F8 F15由G2供给,而G1 和G2是由同一时钟脉冲CP作为输入的,故该电路应属于同步时序电路。图4.2 D型触发器构成的移位寄存器但实际上,若G1和G2的传输延迟时间存在差异,则CP1和CP2之间将产生时间差,发生所谓的“始终偏移现象”,这就有可能使移位寄存器产生误动作。例如:G1的传输速度比G2快,则当输入一个CP信号时,CP1先于CP2到达触发器,使F7先于F8做出响应。若G1比G2的传输速度足够快,则当CP2始终到达F8时,F7已先行一步转换为新的状态,那么F8得到的将是F7的新状态,而应移位的F7的老状态已经丢失了,造成了移位错误。当然,如果CP2速度上比CP1快,则不会产生移位错误。事实上,此时的电路形式上是同步时序电路,而实际上已经成为了异步时序电路。4.2 时序逻辑电路中竞争冒险的消除方法时序电路中的竞争冒险若是由组合逻辑电路部分引起的,则可采用组合电路中的方法来消除。若是由触发器电路引起的,则可采用以下方法。1、修改设计方案,用同步时序电路代替异步时序电路从前述的计数器电路和移位寄存器电路产生竞争冒险的原因可知,正是由于触发器的输入信号和时钟信号的先来后到难以把握,因此造成了触发器的误动作,形成了竞争冒险。若采用时钟信号可控的同步时序电路,使所有触发器处于同一始终作用下,而且在时钟CP作用前,输入信号已处于稳态,则不再产生竞争冒险。2、延长信号的传输时间图4.3是在图9移位寄存器电路的F7和F8之间增加一个反相器G3,利用非门的传输时间来延缓信号的传输速度。图4.3 加入非门的移位寄存器图4.4是在图9移位寄存器电路的F7输出端接入一个电容C,利用电容的充电时间来减慢信号的传输速度,延长信号的传输时间。这样就有可能消除“时钟偏移”造成的竞争与冒险。图4.4 加入延迟电容的移位寄存器5 可编程逻辑电路的竞争与冒险5.1 可编程逻辑器件概述如果从逻辑功能的特点上将数字集成电路分类,则可以分为通用型和专用型两类。从理论上讲,用这些通用性的中、小规模数字集成电路(如 74 系列及其改进系列等)可以组成任何复杂的数字系统,但如果能把所涉及的数字系统做成一片大规模集成电路,则不仅能见效电路的体积、重量、功耗,而且会是电路的可靠性大为提高。这种为某种专门用途而设计的集成电路称为专用集成电路,即所谓的 ASIC。然而,再用量不大的情况下,设计和制造这样的专用集成电路不仅成本很高,而且设计、制造的周期也嫌太长。可编程逻辑器件(Programmable Logic Device,简称 PLD)的研制成功为解决这个矛盾提供了一条比较理想的途径。PLD 虽然是作为一种通用器件生产的,但它的逻辑功能是由用户通过对器件编程来设定的。FPGA 的基本组成与生产厂家有关, 不同厂家的器件其结构、工艺技术和编程方法各不相同。目前国内广泛使用Xilinx 16公司生产的FPGA 器件,由图5.1可知, XilinxFPGA 由三个可编程基本单元阵列组成: 输入/ 输出块( I/OB lock简称I/OB ) 阵列、可配置逻辑块(Configurable Logic Block简称CLB) 阵列及可编程互连网(Programmable Interconnect简称PI)。其中输入 /输出块( I/OB) 排列在芯片周围, 它是可配置逻辑块CLB 与外部引脚的接口。可配置逻辑块(CLB) 是FPGA 的核心, 它以矩阵形式排列在芯片中心。每个CLB 均可实现一个逻辑功能小单元。各CLB 之间通过互连网络(PI) 编程连接, 以实现复杂的逻辑功能。图5.1 FPGA 结构5.2 FPGA 的开发过程FPGA的开发过程依赖于它的软件开发系统, 其设计流程如图5.2所示:图5.2 FPGA 的基本设计流程由图5.2可知, FPGA 的基本设计流程 17分为三部分: 设计输入、设计实现及设计验证。1、设计输入设计输入是将要实现的逻辑关系以开发系统所支持的方式输入计算机, 这是设计FPGA的开始。有多种方法实现设计输入, 最常用的是原理图编辑器。它允许用两种方式进行设计输入:(1) 图形输入: 这种输入方式允许使用元件库中提供的各种常规门电路及逻辑部件(宏单元) 设计电路, 并以原理图的方式输入。(2) 文本输入: 这种输入方式允许使用高级可编程逻辑设计语言, 如ABEL、CUPL语言等编写输入文件, 也允许直接用布尔方程进行输入。设计输入的目的是要产生一个XNF(Xilinx Netlist Format)文件, 这是设计实现和设计验证的输入文件。如果同时采用图形输入和文本输入, 则还需要进行归(XNFMERGE) 处理, 以产生一个完整的XNF文件。2、设计实现设计实现是设计开发过程的核心, 其主要任务是对归并后的XNF文件进行分割、布局和布线。分割是把XNF文件中的逻辑设计经过化简,分割成为以CLB及I/OB为基本单元的逻辑设计。布局是把分割后的逻辑设计分配到FPGA 的相应CLB 及I/OB 位置。布线是对已布局好的CLB、I/OB 进行连线。Xilinx 开发软件具有自动布局、布线功能, 它能在布局、布线过程中采用一系列优化程序,找出最佳布局、布线方案。设计实现的最终目的是产生符合设计要求的比特流文件。这是用来为FPGA 芯片装载的二进制文件。3、设计验证设计验证主要是对电路进行仿真测试。仿真测试包括功能仿真和实时仿真。功能仿真假设信号通过每个逻辑门产生同样的延迟时间(0.1ns),而通过路径没有延时。这种仿真可测试系统功能是否满足设计要求。实时仿真是在布局布线后进行, 它能按照所选器件的实际延迟时间进行模拟, 主要用来验证系统的时序关系。设计输入、设计实现和设计验证三个部分交替进行, 最后得到完全满足设计要求的二进制文件。用该文件通过加载电缆或编程EPROM 对FPGA 加载, 即可得到用户需要的专用集成电路芯片。5.3 FPGA 器件中产生竞争冒险的原因和分析在FPGA ( Field Programmable Gate Array) 中,延时主要是由连线的长短和逻辑单元的数目决定的,同时还受器件的制造工艺、工作电压、温度等因素的影响。信号的电平转换也需要一定的过渡时间。由于FPGA 以及其他的CPLD 器件内部的分布电容和电感不能过滤电路中的毛刺,从而使得毛刺逐级传递,对电路造成的影响更加突出。即使是在最简单的逻辑运算中,如果出现多路信号同时跳变的情况,在通过内部走线之后,也一定会产生毛刺。目前,数字电路设计以及数字信号处理中的信号往往是由时钟控制的多数据输入的复杂运算系统产生的,每个数据都由相当多的位数组成。这时,每一级的毛刺都会对结果产生影响,乃至影响电路设计的可靠性和精确性 18。FPGA 电路产生竞争冒险的典型电路与分析:图5.3是一个简单的3人表决电路,当输入信号有二个或二个以上为高电平时,输出就为高电平。图5.4所示的是该电路的仿真结果。从图15中可知,在X1这一时刻,理想情况下输出应为高电平,由于芯片内部布线较复杂,延时效应就很明显,输出在X2 时刻才有高电平产生,仿真结果表明,信号将近延迟了78 ns 。产生了输出错误。图5.3三人表决电路图5.4三人表决电路的仿真结果5.4 FPGA 中竞争与冒险的消除方法(1) 修改电路法(加D 触发器法) 当计数器的输出进行相“与”或相“或”时会产生毛刺。随着计数器位数的增加,毛刺的数量和毛刺的种类也会越来越复杂。此时,可通过在输出端加D 触发器加以消除。但用D触发器消除时,有时会影响到时序,需要考虑很多问题。所以要仔细地分析毛刺产生的来源和毛刺的性质,采用修改电路或其他办法来彻底消除。(2) 信号同步法设计数字电路的时候采用同步电路可以大大减少毛刺。另外,由于大多数毛刺都比较短(大概几个ns) ,只要毛刺不出现在时钟跳变沿,毛刺信号就不会对系统造成危害了。因此只要在整个系统中使用同一个时钟就可以达到系统同步消除毛刺影响的目的。(3) 信号延时同步法因为时钟信号在FPGA 器件中传递时是有延时的,这样就无法预知时钟跳变沿的精确位置。也就无法保证在某个时钟的跳变沿读取的数据是一个稳定的数据,尤其是在多级电路设计中,这个问题就更加突出。真正的“同步”就成为去除毛刺信号的关键问题。为此提出信号延时法。信号延时法的原理是在2 级信号传递的过程中加1 个延时环节,从而保证在下一个模块中读取到的数据是稳定后的数据,即不包含毛刺信号。这里所指的信号延时可以是数据信号的延时,也可以是时钟信号的延时。(4) 灵活运用时钟信号法和上述方法的原理相似,灵活使用时钟信号的目的也是尽可能的消除竞争冒险。比如在时钟的第一个跳变沿触发模块a ,下一个跳变沿控制触发模块b ,这样时钟的交替控制也在一定程度上消除了竞争冒险,从而抑制了毛刺信号。但是这些方法不适合使用在比较复杂的设计中。(5) 状态机控制法 20对于大型的数字电路设计,状态机是一种非常理想的选择,能使运行性能和硬件资源的占用达到最佳的优化。另外,灵活的使用状态机也可以实现信号的同步和消除毛刺的目的。在数据传递比较复杂的多模块系统中,由状态机在特定的时刻分别发出控制特定模块的时钟信号或者模块使能信号,状态机的循环控制就可以使得整个系统协调运作,同时减少毛刺信号。那么只要在状态机的触发时间上加以处理,就可以避免竞争冒险,从而抑制毛刺的产生。原理如图5.4.3所示。图5.4.3 状态机控制原理EDA 环境中的数字系统设计,毛刺依然是系统成功设计的障碍,或者可以说对毛刺的处理仍然是现代数字系统设计所必须解决的问题。通过EDA 软件的精确分析和仿真可以方便地查找毛刺出现的位置、原因,并制定相应的解决方法。讨论的3 种方法中调整延时法是最费时、费事的方法,设计的电路有较大的局限性;选通法常常能取得较好的效果,但要求电路必须能正常工作在脉冲信号下,这也限制了它的使用;修改逻辑设计的方法由于从根本上消除了毛刺产生的根源,因此具有最普遍的意义,但同时由于该法必须全面分析、掌握和设计电路的工作状态及其转变,有时还需要多路输出,因此又带来了的复杂性。6 数字电路竞争与冒险的最新成果分析6.1 关于数字电路检测、设计技术6.1.1 冒险检测技术与无冒险电路设计的研究意义竞争而产生的毛刺不仅会引发电路的假条边从而导致功耗的增加,同时毛刺如果被存储电路中的触发器接受,可能引起触发器的误动作,造成整个时序电路的误动作,因而这种现象必须避免。长期以来,逻辑电路中的冒险最小化技术的研究一直都是一个受到强烈关注的课题,因为一个冒险活动有限甚至无冒险的电路总是非常受欢迎的。本文前面所提到的检测和消除冒险的方法都存在一定的局限性,最新的研究从二值电路的冒险检测出发,通过分析冒险的成因,致力于找出一种无冒险或者少冒险的电路设计方法,并对多值电路进行了讨论 21。6.1.2 冒险检测技术与无冒险电路设计的研究现状Eichelberger 根据冒险产生的原因区分了逻辑冒险和功能冒险的概念。为了检测电路中的冒险,在传统的二值布尔逻辑中引入了值 1/2,便是一个不确定的状态。从而使原来二值布尔函数变成三指函数。通过对这个三值函数的性质的讨论,给出了冒险存在的充分必要条件,根据这个条件可以检测员是输入单跳变和多跳变导致的冒险。但是,对于电路的每一个输出都构造一个三值函数 23,显然是非常繁琐的,所以这个方法只对较小(2000 个门左右)规模的电路有效。文献24提出了一种有效减少 CMOS 电路冒险功耗的路径平衡算法。该算法同时采用了门裁剪和插入缓冲器的方法来达到路径平衡。门裁剪的方法不仅减少了冒险,而且减少了电路中的有效电容。对于在门裁剪后依然不平衡的路径通过插入缓冲器来达到平衡。由于缓冲器本身也有功耗,因而它的插入必须是的减少的冒险功耗大于本身消耗的功耗。这里缓冲器插入位置是一个比较难解决的问题,因为通过插入缓冲器所减少的功耗与其他插入的缓冲器位置密切相关。6.1.2 主要研究成果1、 基于卡诺图的冒险分析与无冒险设计 25单变量跳变引起的冒险现象,即在其他变量取某些特定值时,逻辑电路的函数表达式中出现形如 因子,可能导致竞争冒险现象的发生。以卡诺图检测法A项 或为基础,指出在用卡诺图化简逻辑函数的同时考虑减少冒险,增加一些附加的制约条件,从而直接实现电路的无冒险(或者说少冒险)设计。由此提出一种基于卡诺图的无冒险设计-无冒险的卡诺图化简新规则。 新规则如下:(1) 相邻的 1 方格画为一个卡诺图,卡诺图尽量的大,圈内的方格数必须是 个n2(n=1,2,),圈的位置或者全是在某变量的 1 区,或者全在某变量的 0 区;(2) 先圈只有一种圈法的 1 方格;(3) 任意两个相邻的 1 方格必有一个卡诺图将他们覆盖;(4) 每个卡诺图尽可能包含未被其它圈圈入的 1 方格;(5) 所有的 1 方格都必须被圈入,且卡诺图尽量的少。通过比较可以发现两种画卡诺图规则的区别在于新规则增加了一条约束,即任意两个相邻的 1 必有一个卡诺图将他们覆盖,这样便破坏了卡诺图的单独相切性,达到了无冒险设计的目的。例 6-1:化简函数 DCBACABDBCADCBAF 并使其在单变量跳变时没有冒险。图 6.1(a)函数化简后 图 6.1(b)运用无冒通过增加卡诺图消除冒险 险新规则的卡诺图化简方法一:图 6.1(a)所示为函数 F 的卡诺图,先用传统的卡诺图化简法对函数进行化简,化简后发现图中有两处寻在卡诺图相切的现象,故此时电路有冒险。为了消除冒险,可加两个卡诺图(虚线圈)破坏其相切性,也即增加了两个冗余项,最后得到的逻辑函数式为 。BDACAF方法二:如图 6.1(b)所示,直接用无冒险的卡诺图化简新规则对函数进行化简,得到 。BC通过比较发现,当消除冒险的要求被加入到电路设计中以后,用无冒险的卡诺图化简新规则对函数进行化简更加方便、直接、快速。2、基于信号行为的冒险检测引入了信号行为的四值描述 26,用以研究电路中的信号跃迁活动,并把信号行为应用到冒险检测中去,提出了基本门电路对四值行为的运算规则,且给出了用信号四值行为的方法检测二值组合电路冒险的一般方法,这种方法简单、快速、方便、直接,且可以同时检测出静态和动态冒险。运用信号行为的四值方法来检测二值组合电路冒险的一般方法:第一步,对于一个给定的输入信号序列,把它转化为对应的行为序列。例如对于如下信号序列:X=0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 0只要将该输入序列中连续 0 的前面诺敢为改为 ,连续 1 的前面诺敢为改为 ,0最后一位改为 ,便可获得对应的行为序列:X= 01注意行为序列中 、 均不可能相邻。第二步,根据电路结构写出个节点的逻辑表达式,把得到的输入性位置带入逻辑表达式中求得各节点的行为值,由各节点的行为值就可以判断其冒险的产生情况。如果没有给定输入序列,则直接进入第二步,并对所有输入组合进行分析。例 6-2:检测图 6.2 所示电路中存在的冒险。图 6.2 例 6-2 电路由于本里没有直接给出输入序列,故直接从第二部开始。首先由电路图写出各节点的逻辑表达式:S1= ; S2=1 ; S3= S1; S4=S2+S3。xxx然后把各个输入行为值代入逻辑表达式就可以得到各个节点的行为值;当 = 时,S1= = , S2=1 = , 01x0S3= S1= = , S4=S2+S4= + = ;x0依次列推,当 =, =, = 时,汇总与表 6-1,通过这张行为表可以非常直观x的得出以下结论:当 发生跳变时,节点 S3 和 S4 都有可能发生冒险,而节点 S4 的冒险是由节点 S3 传递而来的。表 6-1 例 6-2 检测冒险的四值行为表3、基于 F 门的门冻结技术门冻结技术是用于无冒险电路设计的一项新技术。这一技术把一些现有的门用功能相同的单元(称为 F 门)代替,F 门可以通过插入一个控制信号使其冻结,而冻结的门无法把冒险跳变传送到输出端,通过这一方法可以减少冒险。虽然该方法在功能上与插入缓冲器的做法类似,然而基于面积、功耗等原因在应用中此方法更加有效,F 们可以直接取代原来的门,对原有电路的影响非常小。对普通 CMOS 库单元的修改如图 6.3 所示。它通过插入一个 N 型晶体管使其与原单元电路中的 N-网络串联,这个 N 型晶体管的输入端由一个控制输入信号 C 驱动。 图 6.3 F 门基本结构被修改后的门电路的行为非常直观:当控制输入信号 C 为高电平的时候,门电路的操作按照其正常模式,由 P-网络和 N-网络控制。当控制输入信号 C 为低电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论