• 组合逻辑电路中竞争冒险的分析


    http://hi.baidu.com/hieda/blog/item/a4e2f826a8295c138b82a142.html

    1. 什么是竞争冒险?
    2. 竞争冒险产生的原因?
    3. 如何判断有竞争冒险?
    4. 如何消除竞争冒险?

    ===============================================================================
    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触发器,格雷码计数器,同步电路等优秀的设计方案消除。

    2008-01-16 17:09
  • 相关阅读:
    windows权限维持之注册表
    mstsc痕迹清理
    内网常用爆破手法
    RDP攻击&防御
    Java SPI 机制
    mysqldump 数据库备份
    Redis分布式锁
    Seata分布式事务中间件学习和实践
    pytube
    idea github登录
  • 原文地址:https://www.cnblogs.com/asic/p/2053384.html
Copyright © 2020-2023  润新知