上篇博文:组合逻辑中的竞争与险象问题(二)讲了半开关的相关知识,更确切的说是竞争的根源问题。这篇博文将险象问题。
险象的定义
有竞争引起的非预期行为就叫做险象。
可见,竞争是险象的前提。但是竞争就一前提的存在,并不一定会引起险象,什么样的竞争会引起险象呢?
下面对此进行分析:
半开关是竞争产生的根源因此要找到竞争与险象的关系,只需要仔细分析一下与门半开关和或门半开关到底在什么情况下会出现非预期的行为即可。
现假设某半开关的所有端口都直接或间接的与组合逻辑的输入端口A相关,那么,从逻辑上来说,这个与(或)门的M个输入不是与A相连就是与相连,此时若A发生变化时,相当于该与门的M个输入分别取反,只不过由于路径延迟导致取反效果的时间不同罢了,因此可以分为下面三种情况讨论。
(1)M个输入全部由0变为1
如果是与门,那么其输出初识值应该为0,等到所有输入都从0变为1后,输出才变为1,而在此期间,输出保持0不变。
如果是或门,那么其输出初始值应该为0,当最快的一个输入端完成翻转后,其输出变为1,并在其他输入端陆续完成从0到1的翻转期间保持输出1不变。
可见,M个输入全部从0