1. 什么是竞争冒险? 信号在通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,成为“竞争”;往往导致出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。 如果一个组合逻辑电路中有“毛刺”出现,就说明该电路存在“冒险”。冒险是由变量的竞争引起的。冒险又分为逻辑冒险和功能冒险。 简言之:在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争,竞争产生冒险。 2. 竞争冒险产生的原因? (1)根本原因:延迟 (2)详细分析: 竞争冒险的产生受到四个要素的制约,即:时间延迟、过渡时间、逻辑关系和延迟信号相位。 [1]时间延迟,即信号在传输中受路径、器件等因素影响,输入端信号间出现的时间差异 [2]过渡时间,即脉冲信号状态不会发生突变,必须经历一段极短的过渡时间 [3]逻辑关系,即逻辑函数式 [4]延迟信号相位,即延迟信号状态间的相位关系,涵盖延迟信号同相位和延迟信号反相位两个方面。 延迟信号状态变化相同的则是延迟信号同相位,反之则是反相位。 时间延迟和过渡时间要素是竞争冒险的产生原因,逻辑关系和延迟信号相位要素是竞争冒险的产生机制。由原因和机制,构成竞争冒险的产生条件。当电路满足产生条件时,则一定产生毛刺。 3. 如何判断有竞争冒险? 3.1 逻辑冒险的判断方法有两种: 1)。 代数法: 在逻辑函数表达式中,若某个变量同时以原变量和反变量两种形式出现,例如:逻辑函数在一定条件下可简化为Y=A+A反或Y=A*A反就具备了竞争条件。去掉其余变量(也就是将其余变量取固定值0或1),留下有竞争能力的变量, 如果表达式为F=A+A~(用A~表示A的反变量,以下同),就会产生0型冒险(F应该为1而实际却为0);如果表达式为F=AA~,就会产生1型冒险。 例:表达式 F=AB+CB~,当A=C=1时,F=B+B~,在B发生跳变时,可能出现0型冒险。 2)。 卡诺图法:将函数填入卡诺图,按照函数表达式的形式圈好卡诺圈。 A\BC| 00 01 11 10 ----------------------- 0 | 0 0 0 1 1 | 0 1 1 1 F=AC+BC~的卡诺图(将101和111的1圈一起,010和110的1圈一起) 通过观察发现,这两个卡诺圈相切。则函数在相切处两值间跳变时发生逻辑冒险。(前提是这两个卡诺圈没有被其他卡诺圈包围) 3.2 功能冒险的判断: 功能冒险是当多个输入信号同时变化的瞬间,由于变化快慢不同而引起的冒险。 卡诺图法:依然用上面的卡诺图,按同样函数圈好。举例F=AC+BC~中,ABC从111变为010时,A和C两个变量同时发生了跳变,若A先变化,则ABC的取值出现了过渡态011,由卡诺图可以知道此时函数输出F为0,然而ABC在变化的前后的稳定状态输出值为1,此时就出现了0型冒险。这种由过渡态引起的冒险是由于电路的功能所致,因此成为功能冒险。 3.3 综合逻辑冒险和功能冒险: 例 :F=CD+BD~+AC~,自己画及圈卡诺图,可以发现信号ABCD从0100变化到1101可能存在0型功能冒险,不存在逻辑冒险。从0111变化到1110不存在功能冒险,而可能存在逻辑冒险。 3.4 总结判断竞争-冒险的方法: 1、逻辑函数在一定条件下可简化为Y=A+A反或Y=A*A反; 2、真值表卡诺图法; 3、计算机辅助分析。 4. 如何消除竞争冒险? 消除竞争-冒险的方法: 1、引入封锁脉冲; 2、引入选通脉冲; 3、修改逻辑设计,增加冗余乘积项; 4、接入滤波电容。 顺便提一句:时序逻辑中的竞争冒险可以用D触发器,格雷码计数器,同步电路等优秀的设计方案消除。 (责任编辑:admin) |