当前位置:文档之家› 第五章 状态机设计

第五章 状态机设计


0
1
X
0
0
0
0
1
0
X
0
0
0
0
1
1
X
0
0
0
0
由状态转换表推导 触发器的驱动方程
ASM图的硬件实现
ASM图法状态机设计——硬件实现
• 由状态转换表推导触发器的驱动方程
对于复杂的ASM图和相应的状态表可用 卡诺图对次态进行化简,得到简化的驱 动方程。
用计数器法实现ASM图的流程
ASM图状态分配
ASM图除了可以得到状态表和驱动方程 外,还可以得到输出方程
state = Gmajor_green = 1, minor_green = 0; state = Rmajor_green = 0, minor_green = 1;
• 根据题意,画出ASM图:
G MAJOR=GRN MINOR=RED
0 CAR
1
START_TIME
R MAJOR=RED MINOR=GRN
会延迟到下一个时钟周期。可见,Moore型状态机的最大优点就是可以将输入部分和 输出部分隔离开。 • 对于Mealy型有限状态机来说,由于它的输出是输入信号的函数,因此如果输入信号发 生改变,那么输出可以在一个时钟周期内发生改变。
状态 \ 输入
S0
a=‘1’ S1
b=‘1’ S2
default
S1
S2
S0
S2
S0
MDS图
有限状态机的描述方法
• ASM图法设计状态机
• ASM本质上是一个有限状态机,主要用于同步时序系统。 • ASM精确地表示出状态转换的时间关系。 • 从形式上看,这种流程图类似于描述软件程序的流程图,但它能和实现它的硬件很好
时序电路的概念
下面以一个简单的三位计数器为例,说明时序电路的结构。
•设计分析
• 3位计数器,由时钟上升沿触发,计数从000~111,到111后则重新回到000。 • 采用上升沿触发的D触发器作为状态寄存器,D触发器的示意图和真值表如下:
D 1D
Q
C
C1
Q
D
C
Q+
Q+
0
0
1
1
1
0
-
0
Q
Q
-
1
Q
Q
时序电路的概念
的对应起来。 • 本章主要学习使用ASM图法描述状态机。
ASM图法状态机设计——ASM图组成
• ASM图的组成
• 状态框
• 用一个矩形框来表示一个状态。状态的名称写在左上角;状态的二进制编码写在右上角; 操作内容写在矩形框内。在同步系统中,状态经历的时间至少是一个时钟周期,也可以是 几个周期。
状态名 二进制码
Q SET D Q1n+1
Q CLR
学习ASM图的硬件实现有助 于我们更好的理解后续的内 容,下面我们将学习如何使 用VHDL实现ASM图。
Q SET D Q CLR
Q2n+1
CP
• A举例SM图法状态机设计——举例
• 要求设计一套交叉路口交通信号灯,该路口有一条交通干线与支线, 支线上装有传感器,当支线有车通过时,传感器输出信号CAR=1。 正常的工作状态时干线亮绿灯,支线亮红灯;当CAR=1时,干线亮 红灯,支线亮绿灯,并开始计时,START_TIEMR=1,当计时结束, 即信号TIMED=1时,重新回到正常工作状态(干线亮绿灯,支线亮 红灯)。
电路的竞争与冒险
• 竞争与冒险
• 所谓竞争与冒险,就是在组合电路中,信号经不同途径传输后,达到电路中某一汇合 点的时间有先有后,这种现象成为竞争。由于竞争而使电路输出发生瞬间错误的现象, 称为冒险。
• 在时序逻辑电路中,产生次态的电路和输出电路是组合逻辑电路。组合逻辑电路存在 竞争与冒险,可能导致时序系统进入不正确的状态。
• 用计数器实现ASM图 • 用多路选择器实现ASM图 • 每个状态一个触发器(定序型) • 基于ROM法实现ASM图(微程序型)
• ASM图的硬件实现一共有4种方法,这里我们重点介绍用计数器实现ASM图 的方法。
ASM图法状态机设计——硬件实现
• ASM图的状态分配
用计数器法实现ASM图的流程
N个状态变量可以描 述2^n个状态。该
表中01未指定状态,采用计数器实现,因此需考虑因 偶然因素出现01状态时,应强迫其次态为00,所以一 旦出现01状态后,经过一个时钟周期就可以自动回到 有用状态循环。
用计数器法实现ASM图的流程
ASM图状态分配
状态转换表
现态
次态
输出
Q2
Q1
X
Q2n+1 Q1n+1
Z1
Z2
0
0
0
1
0
1
1
0
0
1
1
1
1
0
Major Road
Sensor
Minor Road
ASM图法状态机设计——举例
• 设计步骤
• 根据设计要求,我们先确定系统的输入:
clock, car, timed.
• 然后确定系统的输出:
start_timer; major_green, minor_green. (枚举类型)
• 分析系统所有可能出现的状态:
tpd
C C
D
E
F
毛刺
电路的竞争与冒险
• 状态机克服竞争冒险的方法
• 在次态产生组合逻辑电路中,可以通过时序逻辑消除毛刺,从而克服竞争冒险。
• 通过输出端时序同步的方法消除竞争与冒险(即使用同步时序逻辑电路设计方法。详 细实例见后面介绍)。
有限状态机的描述方法
ASM图(主要讲解) 状态转移图
状态转移列表
但必须指向状态框。
条件
✓仅包含一个状态框,无判
断框和条件框的ASM块是一
个简单块。
S3 10
✓每个状态单元表示一个时
钟周期内系统所处的状态,
R0 S2 11
在该状态下完成块内的若干 操作。
ASM图法状态机设计——硬件实现
• 用ASM图描述一个系统控制器时,实际上是描述了该控制器的硬件结构和 时序工作过程,因此ASM图与硬件有很好的对应关系,ASM图的硬件实现 有以下几种方法:
时序电路与状态机的关系
• 日常生活中的状态机
• 通过状态机的方式,我们可以清晰地描述一 个学生的在校生活方式。
条件:周末
地点:宿舍 功能:睡觉
条件:非周末
地点:花前 月下 功能:
条件:周末
条件: 非周末
且 下午7点
地点:教室 功能:学习
条件:周末
地点:食堂 功能:吃饭
条件:非周末
条件: 非周末
且 下午6点
时序电路与状态机的关系
• 状态机的基本要素
• 状态:也叫状态变量。在逻辑设计中,使用状态划分逻辑顺序和时序规律。 • 输出:输出指在某一个状态时特定发生的事件。 • 输入:指状态机中进入每个状态的条件,有的状态机没有输入条件,其中的状态转移
较为简单,有的状态机有输入条件,当某个输入条件存在时才能转移到相应的状态。
条件: 非周末
且 下午2点
地点:体育馆 功能:运动
时序电路与状态机的关系
• 描述时序电路的状态机的组成
• 组合逻辑
• 组合逻辑又可分为次态逻辑和输出逻辑两个部分。其中:次态逻辑的功能是用来确定有限 状态机的下一个状态;输出逻辑是用来确定有限状态机的输出。
• 存储逻辑
• 寄存器逻辑的功能:用来存储有限状态机的内部状态。
ASM图状态分配
ASM图中有3个状态,
所以需要两个状态 变量。设两个状态
状态转换表
变量为Q2Q1,我们
选用2个D触发器。
由状态转换表推导
用二进制计数序列
触发器的驱动方程
依次表示状态。
ASM图的硬件实现
ASM图法状态机设计——硬件实现
• 状态转换表
因为10和11状态与输入X无关,所以X值可作任意值处 理。
0
1
条件
引出分支 引出分支
ASM图法状态机设计——ASM图组成
• ASM图组成
• 条件框
• 用椭圆框表示。条件框一定是与判断框的一个转移分支相连接,仅当判断框中判断变量满 足相应的转移条件时,才进行条件框中标明的操作和信号输出。
• 虽然条件框和状态框都能执行操作和输出信号,但二者有很大区别。
寄存器操作或输出
状态转换表
由状态转换表推导 触发器的驱动方程
ASM图的硬件实现
ASM图法状态机设计——硬件实现
X
•采A用SM计图的数硬器件法实现实现ASM图,
0
&
Z2
0
0
一旦ASM图有很小的改动, 就需要重新设计与次态相关 的组合电路部分。此外,当
0
&
0
0
Z1
0
&
0
0
系统的状态超过8个时,ASM 图的硬件实现也很复杂。
ASM图法状态机设计——ASM图组成
• 状态(a框) 与条件框的区别 A
(b)
A
1 C
0
Y
W
1 C
0
Y
W
ASM图法状态机设计——ASM图组成
Clock ASM(a)
Z
Y,C=1 Y,C=0
W ASM(b)
Z
Y,C=1
W,C=1
Y,C=0
W,C=0
ASM图法状态机设计——ASM图组成
状态框
P
00
• Mealy有限状态机框图:
从信号输出方式上分
相关主题