有限状态机
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入
时钟 复位
次态 次态 逻辑
状 态 现态 寄存器
输出 输出 逻辑
状态机的表示方法
• 状态转换表 • 算法流程图 • 状态转换图
这是最流行的 表示方法
状态转换图
条件控 制定序
入/出
状态1
入/出
状态4
入/出 状态2
Mealy
入/出
状态3
/出
直接控 制定序
用VHDL描述状态机的组成
• 一 个 用 来 描 述 有 限 状 态 机 功 能 的 VHDL 语言程序中应该包含以下几个内容:
din Next_value
Q(n+1)
Clk
+/-1 Regs
Present_value
Q(n) 译码
DataOut Z(n)
Din=1
S0/0 Din = 0
Din = 1 Din = 0 Din = 0
S3/0 Din = 0 S2/1
Din = 1
再将计数器修改成一 个状态转换器,状态 为S0, S1, S2, S3。 S1/0 每个状态的取值根据 具体情况而定。比如
当前状态 idle decision
write
read
次态
转换条件
decision write read
ready=’1’ w_r=’0’ w_r=’1’
idle write
ready=’1’ ready=’0’
idle read
ready=’1’ ready=’0’
Din = 0 11/0
10/1 Din = 1
01/0
扩展一个输入端din, 当din = 1时计数器递 增计数;当din = 0时 计数器递减计数。
Din = 1
din Next_value
Q(n+1)
Clk
+/-1 Regs
Present_value
Q(n) 译码
DataOut Z(n)
Din=1
– (1)至少包括一个状态信号,它们用来指定有 限状态机的状态;
– (2)状态转移指定和输出指定,它们对应于控 制单元中与每个控制步有关的转移条件;
– (3)时钟信号,它一般是用来进行同步的; – (4)同步或异步复位信号。
状态机的VHDL描述方式
(1)单进程描述方式:单进程描述方式就是指在 VHDL语言程序的结构体中,使用一个进程语句 来描述有限状态机中的次态逻辑、状态寄存器和 输出逻辑。
ready idle
ready
ready ready
decision
read_write read_write
read
write
ready ready
存储控制器
•列出当前状态和输出值的关系
状态
输出
OE
WE
idle
0
0
decision 0
0
write
0
1
read
1
0
建立状态转换表,列出次态和转换条件
S2/1 Din = 1
Din = 1
现在我们得到了一个比较通用 的时序电路,这种电路统称为
din
状态机(State Machine)。
Next_value Q(n+1)
Clk
+/-1 R来自百度文库gs
Present_value
Q(n) 译码
DataOut Z(n)
有限状态机概述
• 数字系统控制部分的每一个控制态可以看 作一种状态,与每一个控制态相关的转换 条件指定了当前状态的下一个状态和输出。
有限状态机 Finite State Machine
例:计数器设计
• 设计一电路,包含基4计数器,和译码输出模块。 计数器的输出(Present_value)从0到3循环; 当计数值为2时,译码输出(DataOut)为“1”, 否则输出“0”。
Next_value Q(n+1)
Clk
+1 Regs
Present_value
Q(n) 译码
DataOut Z(n)
00/0 11/0
01/0 10/1
Next_value Q(n+1)
Clk
+1 Regs
Present_value
Q(n) 译码
DataOut Z(n)
Din=1
00/0 Din = 0
Din = 1 Din = 0 Din = 0
(2)双进程描述方式:一个进程语句用来描述有限 状态机中次态逻辑、状态寄存器和输出逻辑中的 任何两个;另外一个进程则用来描述有限状态机 剩余的功能。
(3)三进程描述方式:一个进程用来描述有限状态 机中的次态逻辑;一个进程用来描述有限状态机 中的状态寄存器;另外一个进程用来描述有限状 态机中的输出逻辑。
• 根据有限状态机的输出与当前状态与当前 输入的关系,可以分成Moore型和Mealy 型两种类型的有限状态机。
Moore状态机和Mealy状态机
• Moore状态机的输出只与当前状态有关
输入
时钟 复位
次态 次态 逻辑
状 态 现态 寄存器
输出 输出 逻辑
Moore状态机和Mealy状态机
• Mealy状态机的输出与当前状态机及 当前输入信号有关
S0 = 00, S1 = 11, Din = 1 S3 = 01, S4 = 10。
din Next_value
Q(n+1)
Clk
+/-1 Regs
Present_value
Q(n) 译码
DataOut Z(n)
Din=1
S0/0
Din = 0 Din = 1 Din = 0
S1/0
S3/0
Din = 0 Din = 0
单进程描述方式 进程1:描述次态逻辑、状态寄存器和 输出逻辑
存储控制器
• 设计一个存储控制器, 它的具体要求为:(1)存
储控制器能够根据微处 理器的读周期或者写周 期,分别对存储器输出 写使能信号we和读使能 信号oe;(2)存储控制 器的输入信号有3个:微
处理器的准备就绪信号 ready、微处理器的读 写信号read_write和 时钟信号clk。
00/0 Din = 0
Din = 1 Din = 0 Din = 0
11/0 Din = 0 10/1
Din = 1
再将计数器修改成一
个状态转换器,状态
01/0
为S0, S1, S2, S3。 每个状态的取值根据
具体情况而定。比如
Din = 1
S0 = 00, S1 = 11, S3 = 01, S4 = 10。
状态机的VHDL描述方式
描述方式 进程描述功能
三进程描述方式 进程1:描述次态逻辑 进程2:描述状态寄存器 进程3:描述输出逻辑
双进程描 形式1 进程1:描述次态逻辑、状态寄存器
述方式
进程2:描述输出逻辑
形式2 进程1:描述状态寄存器、输出逻辑 进程2:描述次态逻辑
形式3 进程1:描述次态逻辑、输出逻辑 进程2:描述状态寄存器