FPGA-竞争与冒险

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

存在多个输出的组合逻辑也必然存在着和寄存器输出类似不稳定态问题,不过不幸的是,对于多输出的组合逻辑。若想避免其输出出现不稳定态,可不是利用格雷码这样的方法可以轻松解决的,这是因为组合逻辑中还普遍存在着竞争和险象。

提示:以下是本篇文章正文内容,下面案例可供参考

单输入的组合逻辑

有些组合逻辑只有一个输入变量。例如非门,对于一个简单的非门电路,它的输出将会永远跟随输入变化,即使考虑到线延迟、门延迟的影响,其输出波形最多就是比输入波形滞后一些,但是不会产生太大的影响。但是如果设计逻辑电路,例如:F=A+A非=1,现实情况下没有人会设计一个这样无聊的电路,但是由于非门的延迟,导致A先于A非到达或门,因此如果初始令A为1,那么A非为0,此时如果A从1变化到0,由于A先于A非到达或门,则输出F会有一个短时间的为0状态,这就是一个非预期的典型现象。

多输入的组合逻辑

如果说单输入组合逻辑的问题电路有刻意为之的嫌疑,那么多输入组合逻辑的问题简直就是努力避免几乎都不可能。

(1)多个输入不同时变化

组合逻辑的输入决定输出,如果在一段时间内,有多个输入都发生了变化,那么其输出也会发生一列变化,此时,由于输入的不稳定必然导致输出的不稳定,在对这种情况进行分析时,**若这些输入变化的间隔比较大,那么可以将其分解为若干个时刻,每个时刻有”多个输入同时变化“或”仅有一个输入变化,然后再独立去分析即可,若这些输入变化的间隔很小,那么可以将其等效转化为“多个输入同时****变化”**的问,因为我们可以将这些输入变化的时间差等效折合到其传输路径的线延迟中去。

(2)多个输入同时变化

如果多输入组合逻辑电路中,有两个及以上输入变量同时发生变化,虽然从输入决定输出的理论出发,组合逻辑的输出应该直接变化到新输入对应的输出值,但是由于延迟的存在,现实的情况往往并非如此,例如一个简单的两输入与门,F=A&B,由于输入端A到与门的布线距离可能比B到与门的距离要小,因此当A与B同时发生变化时,A信号的新值肯定会先于B信号的新值到达与门,如果初始A为0、B为1、F为0,此时如果A变为1,B变成0,由于A的新值到达与门时B的新值还未到达,则输出F会有一个短时间的1状态,这就是一个非预期的典型现象,映射在卡诺图上,这是因为A为0、B为1,与A为1、B为0处于卡诺图的对角线位置,达到了非预期现象。
由此可见多输入的组合逻辑必然存在隐患,但是这种隐患什么时候会转化为问题,则取决于组合逻辑输入的取值以及各类延迟参数的具体情况。

(3)仅有一个输入变化

多输入不同时变化、多输入同时变化,都会在组合逻辑中 埋下隐患,那么如果能够每次仅允许改变组合逻辑的一个输入端,那问题总该解决了吧?别忘了,单输入的组合逻辑都有可能发生异常,更别说多输入组合逻辑中的单输入变化了,这就是组合逻辑不定态相对于寄存器输出不定态更加棘手的原因。
例如:F=AC+A非B,画卡诺图要按照最后一级逻辑来,也就是或的逻辑,当F逻辑由于A从1变化到0的时候,B为1,C为1的时候,AC为1、A非B为0,变化到AC为0、A非B为1的时候,会出现短暂的0脉冲,由于A非B,有一个非门的延迟,当A从1变化为0的时候,此时AC为0,由于A非B有一个非门的延迟导致A非B不能立刻变成1,所以出现了一个短暂的0脉冲。

竞争与险象的讨论前提

当多个输入发生变化时,由于变化时刻以及延迟的影响,组合逻辑的输出中必然存在着不稳定态,但是通过前面小节,我们发现即使仅有一个输入变化,组合逻辑的输出仍然可能存在着问题,这就是组合逻辑中的最大隐患----竞争与冒险。

什么是竞争

什么是竞争?要想说明白这个问题,我们需要从组合逻辑的根源说起。
组合逻辑中,最本质的运算是什么?与、或、非。因此,无论多么复杂的组合逻辑,其本质都是由以上三种运算组成的,由于竞争是针对仅有一个输入变化的组合逻辑而言的,而任意一个组合逻辑的输入电信号,都是经由若干个与、或、非门然后才到达输出端的,因此为了解什么是竞争,就必须先要针对这些基本的逻辑运算进行分析。

(1)门电路的开关特性

非门-非门可以被看做一个常开的开关,因为任意一个输送到非门的电信号,取反后都会被非门输出,从而影响后续的电路。
与门-与门具有开关特性,因为它至少具有两个输入端,对于一个N输入与门来说,如果其中N-1个输入端同时为逻辑1,那么对于剩下的那一个输入端来说,该与门相当于一个打开的开关,因为该与门的输出将会和剩余那个输入端保持一致,如果其中只要有一个输入端逻辑为0,那么该与门对于其他N-1个输入端来说,就相当于一个关闭的开关,因为无论N-1个输入如何变化,该与门的输出始终为逻辑0。
或门-或门具有开关特性,因为它具有至少两个输入端,对于一个N输入或门来说,如果其中N-1个输入端同时为逻辑0,那么对于剩下的那一个输入端来说,该或门相当于一个打开的开关,因为该或门的输出将会和剩余那个输入端保持一致,如果其中只要有一个输入端为逻辑1,那么该或门对于其他N-1个输入端来说,就相当于一个关闭的开关。

(2)门电路的半开关特性

非门-非门不具有半开关性,因为它仅有一个输入。
与门-与门具有半开关性,因为它具有两个以上的输入端,当且仅当与门中有两个或以上的输入端都是由组合逻辑中的一个输入电信号直接或间接驱动的时候,该门具有半开关性,因为此时,与门的其他输入端仍具有开关性,因此对于一个具有半开关性的N输入与门来说,等效于一个M输入与门和开关的级联。
或门-或门具有半开关性,因为它具有两个以上的输入端,当且仅当与门中有两个或以上的输入端都是由组合逻辑中的一个输入电信号直接或间接驱动的时候,该门具有半开关性,因为此时,与门的其他输入端仍具有开关性,因此对于一个具有半开关性的N输入与门来说,等效于一个M输入或门和开关的级联。

(3)竞争的定义

如果在某一时刻,从组合逻辑的某一个输入端到其输出端存在两条以上的电信号通路时,就称该组合逻辑在当前状态下针对这个输入端存在竞争,这就是竞争的定义。

(4)险象的定义

竞争引起的非预期行为称为险象。
静态险象,指的是由于竞争,导致原本输出不应该变化的组合逻辑,出现了输出变化现象,从静态险象的定义,如果一个组合逻辑在某一种输入条件下存在静态险象,那么其逻辑表达式在该条件下一定可以为化简成F=1或F=0。
按其所应保持的逻辑电平,可以将这类险象分为0险象和1险象。
(1)0险象
0险象是指组合逻辑中初始输出为0,当其输入改变时,在新输入对应的输出仍然是0,却在输出端出现了短暂的不为0的情况。
(2)1险象
1险象是指组合逻辑初始输出为1,当其输入改变时,若新输入对应的输出仍为1,却在输出端出现了短暂的不为1的情况。
动态险象
指的是由于竞争,导致原本输出只应该发生一次变化的组合逻辑,出现了输出多次变化现象,如果一个组合逻辑在某一种输入条件下存在动态险象,那么其逻辑表达式在一定可以化简为F=A或F=A非,按照其初始和稳定时所对应的逻辑电平,又可以将这类险象分为01险象和10险象。
(1)01险象
01险象,是指组合逻辑初始输出为0,当其输出改变时,对应新的输出为1,本来输出只应该出现一次从0到1的翻转,但是实际上却出现了多次的0、1翻转的情况。
(2)10险象
10险象,是指组合逻辑初始输出为1,当其输入改变时,对应新的输出为0,本来输出只应该出现一次从1到0的翻转,但实际上却出现了多次的0、1翻转情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值