时序逻辑电路
基本概念
时序逻辑电路和组合逻辑电路的区别在于逻辑功能不同:
- 组合逻辑电路任一时刻的输出信号仅取决于当时的输入信号。
- 时序逻辑电路任一时刻的输出信号不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。
时序逻辑电路在电路结构上有两个显著的特点。
- 第一,时序电路通常包含组合电路和存储电路两个组成部分,而存储电路是必不可少的。这里的存储电路就是由触发器构成的,实际上触发器就是一种穆尔型时序电路。
- 第二,存储电路的输出状态必须反馈到组合电路的输入端,与输入信号一起,共同决定组合逻辑电路的输出。
三个方程
时序逻辑电路的输入信号、输出信号和存储电路的输入信号之间的逻辑关系可以用三个方程来描述,分别是驱动方程(或激励方程)、状态方程、输出方程。而这三个方程有恰好对应了存储电路的三个行为,分别是存数据、取数据、影响时序电路输出(利用取出来的数据间接影响)。后续时序逻辑电路的分析也是按照这个存-取-影响的顺序来分析。
1. 驱动方程(激励方程)[存数据]
- 定义:计算存储单元(如触发器)的输入信号,决定存储单元如何受到“激励”。
- 特点:描述触发器输入端的信号,决定状态如何更新。
- 表达式: D = f ( X , Q ) D = f(X, Q) D=f(X,Q),表示 存储电路输入信号 D D D 由当前状态 Q Q Q 和时序电路输入信号 X X X 共同决定。
2. 状态方程(下一状态方程)[取数据]
- 定义:描述存储单元的 下一状态,由当前输入信号和当前状态决定。
- 特点:依赖于触发器的类型(D、T、JK等),一般由 驱动方程的计算结果 确定。
- 表达式:
Q
∗
=
g
(
D
,
Q
)
Q^{\ast} = g(D, Q)
Q∗=g(D,Q),其中:
- Q ∗ Q^{\ast} Q∗表示下一时刻的状态,
-
g
(
⋅
)
g(\cdot)
g(⋅) 表示状态转换规则。
也就是说,驱动方程决定 D D D,然后状态方程决定 Q ∗ Q^{\ast} Q∗。
3. 输出方程[影响输出]
- 定义:描述电路的输出,由当前状态和外部输入决定。
- 特点:
- 在 Moore 型电路 中,输出仅由 状态 Q Q Q 决定,即 Y = h ( Q ) Y = h(Q) Y=h(Q)。
- 在 Mealy 型电路 中,输出由 状态 Q Q Q 和输入 X X X 共同决定,即 Y = h ( X , Q ) Y = h(X, Q) Y=h(X,Q)。
三者关系
可以用流程来表示三者的关系:
输入信号 X , Q → 驱动方程 D → 状态方程 Q + → 输出方程 Y \text{输入信号 } X, Q \quad \xrightarrow{\text{驱动方程}} \quad D \quad \xrightarrow{\text{状态方程}} \quad Q^+ \quad \xrightarrow{\text{输出方程}} \quad Y 输入信号 X,Q驱动方程D状态方程Q+输出方程Y
状态机
鉴于时序电路在工作时是在电路的有限个状态间按一定的规律转换的,所以又将时序电路称为状态机(State Machine,简称SM)、有限状态机(Finite State Machine,简称FSM)或算法状态机(Algorithmic State Machine,简称ASM)。
从理论上讲,有了驱动方程、状态方程和输出方程以后,时序电路的逻辑功能就已经描述清楚了。然而,从一组方程式中还不能获得电路逻辑功能的完整印象。这主要是由于电路每一时刻的状态都和电路的历史情况有关的缘故。由此可以想到,如果将电路在一系列时钟信号作用下状态转换的全部过程找出来,则电路的逻辑功能便可一目了然了。
用于描述时序电路状态转换全部过程的方法有状态转换表(也称状态转换真值表)、状态转换图、状态机流程图和时序图。由于这几种方法和方程组一样,都可以用来描述同一个时序电路的逻辑功能,所以它们之间可以互相转换。此外,还可以用硬件描述语言对时序电路的逻辑功能。
分析步骤
分析同步时序电路时一般按如下步骤进行:
(1)从给定的逻辑图中写出每个触发器的驱动方程(亦即存储电路中每个触发器输入信号
的逻辑函数式)。
(2)将得到的这些驱动方程代人相应触发器的特性方程,得出每个触发器的状态方程,从而
得到由这些状态方程组成的整个时序电路的状态方程组。
(3)根据逻辑图写出电路的输出方程。