数字电路基础知识—— 组合逻辑电路中的竞争与冒险(竞争与冒险、检验方法、及消除方法)

本文深入探讨了数字逻辑设计中的竞争与冒险问题,解释了其形成原因及影响因素,介绍了通过逻辑表达式化简法、卡洛图法检测竞争冒险的方法,以及通过加滤波电容、加选通信号和增加冗余项等手段消除冒险竞争。

在数字逻辑设计中,并不是说最简的逻辑表达式在设计组合逻辑时一定是最优的,可能就会出现本次介绍的竞争与冒险问题,所以需要了解竞争与冒险的检验以及竞争与冒险的避免消除方法。

一、竞争与冒险现象及其形成原因

两个输入信号同时向相反方向的逻辑电平跳变的现象(即一个由1- > 0, 另一个从0 -> 1),称为竞争。
因竞争导致在输出端可能产生尖峰脉冲的现象,称为冒险。

通俗一点的说,信号由于经由不同路径传输达到某一汇合点的时间有先有后的现象,就称之为竞争,由于竞争现象所引起的电路输出发生瞬间错误的现象,就称之为冒险。
竞争表现在输出波形上,则是出现0电平或者1电平的尖峰,称 “毛刺”
在这里插入图片描述
上图表示一个与门,在输入信号A从1变为0,并且B 从)变为1,而且B信号首先上升到VIL,这样会在极短时间内,产生一个毛刺。

二、竞争冒险的影响因素:

对于一个非门和一个与门,本来在理想情况下Y的输Y出应该是一直稳定的0输出,但是实际上每个门电路从输入到输出是一定会有时间延迟的,这个时间通常叫做电路的开关延迟。而且制作工艺门的种类甚至制造时微小的工艺偏差,都会引起这个开关延迟时间的变化。
下图图很好的说明了组合逻辑中的冒险竞争对于电路的影响。
在这里插入图片描述

三、 检查竞争冒险的常用方法:

  1. 逻辑表达式化简法
    如果输出端门电路的两个输入信号A和A’是输入变量A经过两个不同的传输途径而来,则当输入变量发生变化时,输出端就可能产生尖峰脉冲。

    故对于输出端的逻辑函数在一定条件下能化简成:
    Y=A+A’ , 存在 “0” 型竞争;
    Y=AA’ ,存在 “1” 型竞争;
    的情况下,则判定一定有竞争冒险现象。

  2. 卡洛图法
    即如果一个逻辑函数的表达式的卡洛图中所画圈没有重叠并且相切,则判定有竞争冒险。(本质上还是利用上面的方法,只是比较直观形象的判断)
    对于以下卡洛图,左图存在竞争冒险,而由图不存在竞争冒险。
    在这里插入图片描述

  3. 例:对于逻辑函数Y=AB+A’C
    当B=C=1时,Y=A+A’,故此函数存在竞争冒险。
    画出此逻辑函数的卡洛图,发现和上左图有类似的,因此存在竞争与冒险。

四、消除冒险竞争

  1. 加滤波电容,消除毛刺的影响
    在输出端并联接一个很小的滤波电容,削弱尖峰脉冲的幅度至门电路的阈值以下。
    简单易行,但是会增加输出电压波形上升时间和下降时间,使波形变坏。
    在这里插入图片描述

  2. 加选通信号,避开毛刺
    引入选通信号p,因为p的高电平出现在电路到达稳定状态后,所以上图中的G0-G3每个门都不会出现尖峰脉冲。
    注意:
    G0-G3的信号也会变成脉冲信号,并且宽度需要和脉冲相同。如,当AB=11时,Y3并不会立刻变为1,需要等到p脉冲出现过后,才给出一个正脉冲。
    在这里插入图片描述

  3. 增加冗余项,消除逻辑冒险。(卡洛图)
    1)存在竞争的情况下,增加冗余项,实现输出消除毛刺。
    例:逻辑表达式如下:Y = A’BC + AB
    当B = C = 1时, 电路存在“0”型竞争。增加项:冗余项 B&C
    更变后:Y = A’BC + AB + B C (利用消去冗余项公式)

    2)还有卡诺图法,在两个相切的圆之间,相切接触的地方增加一个连接圆。
    在这里插入图片描述
    对于上面的卡洛图,在相切的位置增加 冗余项 B’C,故函数表达式Y=A’B’+AC+B’C

### 数字电路中的竞争冒险现象 在数字电路中,当多个输入信号通过不同的路径传递到同一逻辑门时,由于各路径上的传输延迟不同,这些信号不会在同一时刻到达目标节点。这种现象称为自竞争[^1]。 如果因为上述原因,在组合逻辑电路工作过程中出现了瞬态的异常输出——即所谓的“毛刺”或“尖峰脉冲”,那么这就是由竞争引发的冒险行为。具体来说,“1”型冒险指的是不应该存在的高电平(正脉冲),而“0”型冒险则是指不应有的低电平(负脉冲)。值得注意的是,并不是每次发生竞争都会导致冒险;然而一旦观察到了冒险,则必然存在某种形式的竞争[^2]。 为了减少甚至消除这类问题的发生频率,可以采取如下几种措施: #### 修改逻辑表达式 通过对原始函数进行化简或者重新排列项的方式,使得最终实现能够避开潜在的风险区域。例如,利用卡诺图来寻找最简化的标准积之和(SOP)表示法,从而优化硬件结构的设计。 #### 增加冗余元件 向现有架构内引入额外组件以补偿因传播差异引起的时间偏差。比如增加缓冲器或其他类型的存储单元,以此平衡各个支路上的数据流速度,确保它们尽可能同步抵达终点位置。 #### 应用滤波技术 采用适当的过滤机制去除那些短暂而不稳定的波动成分。这可以通过设置RC网络或者其他专用集成电路(ASICs)内的内置滤波单元完成,有效抑制不必要的高频干扰因素。 ```python def add_redundancy_circuit(input_signals, delay_elements): """ 向给定的输入信号列表添加指定数量的延迟元素, 以便调整整个系统的响应特性。 参数: input_signals (list): 输入信号集合 delay_elements (int): 需要插入的延迟级数 返回: list: 处理后的带延迟的新输入信号序列 """ processed_inputs = [] for signal in input_signals: delayed_signal = apply_delay(signal, times=delay_elements) processed_inputs.append(delayed_signal) return processed_inputs def apply_filtering(output_waveform, filter_type='low_pass'): """ 对输出波形应用选定类型的滤波处理 参数: output_waveform : 待处理的目标波形数据 filter_type : 所需使用的滤波种类,默认为'low_pass' 可选参数还包括 'high_pass', 'band_pass'. 返回: 过滤后更加平稳干净的结果波形 """ filtered_result = None if filter_type == 'low_pass': # 实现具体的低通滤波算法... pass elif filter_type == 'high_pass': # ... 或者其他类型滤波操作 ... pass else: raise ValueError("Unsupported filter type.") return filtered_result ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值