什么是时序电路
时序逻辑电路简称时序电路,是由最基本的逻辑门电路加上反馈逻辑回路(输出到输入)或器件组合而成的电路,类似于含储能元件的电感或电容的电路,如触发器、锁存器、计数器、移位寄存器、储存器等电路都是时序电路的典型器件。
时序逻辑电路的状态是由存储电路来记忆和表示的,与组合电路最本质的区别在于时序电路具有记忆功能。
时序电路的分类
逻辑设计领域主要有两种类型的时序电路,它们分类的标准取决于我们观察到的输入信息的时机和内部状态改变的时机。同步时序电路(synchronous sequential circuit)的行为可以根据其在离散的时间点上的信号信息来定义。而异步时序电路(asynchronous sequential circuit)的行为则取决于任意时刻的输入信号以及输入信号在连续的时间内变化的顺序。
时序电路的分析
时序电路的行为是由输入、输出和电路当前状态决定的。输出和下一状态是输入和当前状态的函数。通过对时序电路进行分析,可以得到关于输入、输出和状态三者的时序的一个合理描述。
如果一个电路包含这样的触发器,该触发器的时钟输入是直接驱动或者有一个时钟信号间接驱动的,同时这个电路在正常执行时不需加载直接置位和间接置位,那么我们就称这个电路为同步时序电路。触发器可以是任何类型的,逻辑图可以包括也可以不包括组合逻辑。
(1)输入方程
时序电路的逻辑图通常包括触发器和组合门。我们所使用地触发器类型和组合电路的一系列布尔函数为我们提供了绘制时序电路逻辑图所需要的全部信息。在组合逻辑电路中,触发器输入信号的产生,可以用一系列的布尔函数描述,我们称这些布尔函数为触发器的输入方程(flip-flop input equation)。在这里,我们同样将采用传统的表示方法,使用触发器的输入符号作为触发器输入方程中的变量,使用触发器的输出符号作为变量下标。在组核电路中,触发器的输入方程是一系列布尔表达式,下表变量是组合电路的输出符号。因为在电路中触发器的输出端始终与输入端相连,所以命名为“触发器的输入方程”。
触发器输入方程为指定时序电路的逻辑图提供了一种间接的代数表达方法。这些方程的字母符号隐含了所用的触发器的类型,同时完全确定了驱动触发器的组合逻辑电路。时间变量在触发器输入方程中没有指明,但是已经暗含在触发器C输入端的时钟之中。
(2)状态表
时序电路的输入、输出和触发器的状态之间的函数关系可以用状态表(state table)列举出来。状态表包括四个部分,分别标记为当前状态(present state)、输入(input)、下一状态(next state)和输出(output)。当前状态表示触发器A和B在任意给定时刻t的状态。输入部分表示在每个可能的当前状态下的输入X值。注意,对于每种可能的输入组合,每个当前状态都不断重复出现。下一状态表示触发器在一个时钟周期后的状态,即t+1时刻的状态。输出部分表示t时刻在给定的当前状态和输入组合下输出Y值。
由此推导出的状态表包括了所有可能的当前状态和输入信号的二进制组合。
(3)状态图
状态表中的有用信息可以通过状态图以图形化的方式表现出来。在状态图中,状态用圆圈表示,状态之间的转换用连接这些圆圈的有向线段表示。状态图是通过状态表直接得到的,与状态表提供了相同的信息。每个圆圈内的二进制数值定义了触发器的一个状态。在米粒型电路中,状态转换的有向线段上都标记了两个二进制数值,它们之间用斜线隔开,斜线前面的数值表示当前状态的输入,斜线后面的数值表示当前状态和给定述如下的输出。一个连接到自身圆圈的有向线段意味着没有发生状态转换。穆尔型电路在状态转换的有向线段上没有斜线,取而代之的是,输出是在圆圈中状态值下的斜线下表示出来的。在状态图中,每个状态的转换有两个输入条件,用都点分开。当有两个输入变量时,每个状态可能要有四个有向线段从响应的状态图中发出,这要依赖于状态的数量和每个输入组合的下一个状态。
除了表示方式不同,状态表和状态图是没有区别的。状态表易于从给定的逻辑图和输入方程中得出,而状态图可以直接从状态表中得出。状态图给出了状态的图形化表示,更便于我们理解电路的操作过程。
时序电路的设计步骤
下面提到的时序电路的设计步骤与组合电路类似,但还需要一些额外的步骤。
1)规格说明书:如果没有,先写出电路的规格说明书。
2)系统描述:从问题的陈述中得出状态图或状态表。
3)状态赋值:如果通过步骤1中只能得到状态图,则在从状态图中得到状态表。并未状态表中的每个状态赋二进制代码。
4)得到触发器的输入方程:选择一种或多种类型的触发器,通过已经编码的状态表中的下一状态得到触发器的状态方程。
5)得到输出方程:通过状态表中的输出信号栏得到输出方程。
6)优化:优化触发器的输入方程和输出方程。
7)工艺映射:画出电路由触发器、与门、或门和反向器所组成的逻辑图。将这个逻辑图转换为由有效的触发器和门工艺组成的新的逻辑图。
8)验证:验证最终设计的正确性。