时序逻辑将会是本笔记的最后几章的主题。虽然数字电路课程还包括脉冲电路、模数转换、EDA等内容,但那些和本文的主线内容(不注重硬件搭建的电路设计)关系就不大了。
一、时序功能
我们从一个例子开始,说明时序逻辑的概念和作用。
设计一个电路,当连续输入四个及以上的高电平时,输出高电平;其他时候,输出低电平。
这个需求显然无法用我们已设计过的任何组合逻辑电路实现:因为对于组合逻辑,每一次工作都是独立的,“连续输入四个高电平”这样的场景无法出现(但是,我们可以做出一个检验“同时输入四个高电平”的电路;品味这其中的区别)。因此,我们需要借助时序电路的时序功能。
时序电路和组合逻辑电路类似,我们最为关心的是它的输入(命名为
)和
输出(命名为
),在此题中,已经有了良定义的输入输出;同时,时序逻辑电路还会拥有一组自身的
状态。比如对于上述的需求,可以用两位来存储输入的高电平的数量:
。当
时,每次输入一个高电平,即认为已经“连续输入了四个以上的高电平”,输出高电平;其他时候,则根据输入决定是状态+1还是状态归0。这样的文字表述,我们可以用这样一张状态转换图做可视化: