本来是准备花一次课(两个课时)好好讲讲这方面的内容的,实验课老师紧催慢催,花了不到一节课就过去了,感觉很多东西都来不及讲,借助这篇简述详细说说,希望对大家能有点帮助。
概述
前面的课程中,我们学习的都是理想情况,即:假设电信号经过线路和每个逻辑门电路时,没有延迟,在这一前提下,得到非常规整的波形图。然而,在现实中,这种情况是不可能存在的(否则,我们学完这门课就能造CPU了),信号经过线路和逻辑门都会有延迟。在IT界,任何分析只要加上时间(有些还会加上空间)这个维度,问题就很难解了,同样,数字电路中只要加上时间,其难度立马就难上一个级别,分析起来比较烧脑。
如果线路延迟和逻辑门的延迟,会有怎样的结果呢?
基本概念
先说基本概念。在组合电路中,同一信号或同时变化的某些信号,经过不同路径到达某一点的时间有先有后,这种现象称为竞争。
由于竞争而引起电路输出发生瞬间错误的现象称为险象(冒险)。表现为输出端出现了原设计中没有的窄脉冲,常称为“毛刺”。在组合电路中,“毛刺”不一定造成严重后果。但当组合逻辑与时序逻辑结合在一起时,险象就可能造成严重错误。特别是当组合逻辑的输出作为时序电路的使能输入时。
竞争是逻辑电路正常工作时也会出现的现象,有竞争的地方不一定会出现险象,而险象一定是竞争的结果。
引起错误输出的竞争称为临界竞争;没产生错误输出的竞争称为非临界竞争。
静态险象
下面以一个例子进行说明:
我们对这个例子进行分析,例子中假设经过线路没有延迟,经过每个门的延迟是一样的,均为td(其实已经很理想化了,但分析起来也很烦)。分析的条件,假设A=B=1,C从1->0。显然,此时:
F = !C + C