首页 百科知识 有限状态机设计例程

有限状态机设计例程

时间:2023-10-10 百科知识 版权反馈
【摘要】:单进程Moore状态机比较容易构成能避免出现毛刺现象的状态机。当读或写操作完成后微处理器发出“就绪”信号标志本次处理任务完成,并使存储控制器回到空闲状态。状态转移图是非常重要的概念,它表明了有限状态机的状态和转移条件,是进行VHDL描述的关键。例3 设计一个自动售货机的逻辑电路,此机器投币口一次只能投一个一元或五角的硬币,累计投入一元五角后机器自动给出一瓶饮料,投入两元后给出一瓶饮料的同时找回一枚五角硬币。

3.3.2 有限状态机设计例程

例1 设计实现一个序列信号检测器,当连续接收到一组“110”后输出为“1”,其他情况下输出为“0”。

第一步:明确设计对象的外部特征

·输入信号有:

接收到的序列信号d_in;

时钟信号clk。

·输出信号有:

检测结果f。

第二步:根据设计对象的操作控制步来确定有限状态机的状态:

·初始状态为S0

·接收到1个‘1’的状态为S1

·连续接收到2个或2个以上‘1’的状态为S2

·接收到“110”的状态为S3

第三步:根据设计对象的工作过程画出有限状态机的状态转移图,如图3-18。

img148

图3-18 序列信号检测器的状态转移图

1.三进程描述方式

进程1:描述次态逻辑,即描述出各个状态之间的转移情况

进程2:描述状态寄存器,实现时钟控制下次态到现态转换

进程3:描述输出逻辑,描述各个状态下的输出信号情况

img149

img151

2.双进程描述方式

将以上三进程中的任意两个进程合并为一个,即可变成双进程方式;但将P1和P3合并为一个进程P13,而P2保留的方式最好,原因是这样用两个进程将组合逻辑和时序逻辑分开,便于测试。

img152

img153

可见,双进程描述方式比三进程源代码要短一些,这样会使模拟的过程加快,但对综合结果无影响。

3.单进程描述方式

由于以上描述的状态机的输出信号是由组合电路发出的,所以在一些特定情况下难免出现毛刺现象,如果这些输出被用于作为时钟信号,极易产生错误的操作,这是需要尽力避免的。单进程Moore状态机比较容易构成能避免出现毛刺现象的状态机。

img154

img155

4.本例仿真波形

本例的仿真波形如图3-19所示。

img156

图3-19 序列信号检测器的仿真波形图

例2 设计实现一个存储控制器,该控制器能够根据微处理器的读周期或写周期,分别对存储器输出写使能信号和读使能信号,详细工作过程如下:当微处理器发出“就绪”信号时,存储控制器开始工作:在下一个时钟周期到来时判断本次工作是读还是写——如果微处理器发过来的读写信号为高电平,本次操作为读操作,存储控制器输出有效读使能信号;如果读写信号为低电平,本次操作为写操作,存储控制器输出有效写使能信号。当读或写操作完成后微处理器发出“就绪”信号标志本次处理任务完成,并使存储控制器回到空闲状态。

第一步:明确设计对象的外部特征,画出结构框图如图3-20。

img157

图3-20 存储控制器的结构框图

·输入信号有:

微处理器发来的就绪信号ready;

微处理器发来的读写信号read_write;

时钟信号clk;

·输出信号有:

写使能信号we;

读使能信号oe;

第二步:根据设计对象的操作控制步来确定有限状态机的状态:

·设空闲状态为idle;

·“就绪”信号有效后的下一个时钟周期转入的状态为decision;

·读写信号为高电平后转入的读状态为read;

·读写信号为低电平后转入的写状态为write。

第三步:根据设计对象的工作过程画出有限状态机的状态转移图如图3-21。

img158

图3-21 存储控制器的状态转移图

状态转移图是非常重要的概念,它表明了有限状态机的状态和转移条件,是进行VHDL描述的关键。本例状态转移图的另一种画法如图3-22,其中包含了输出逻辑。

img159

图3-22 存储控制器的状态转移图的另一种画法

1.三进程描述方式

img160

img161

img162

2.双进程描述方式

img163

img164

3.单进程描述方式

img165

img166

4.本例仿真波形

本例的仿真波形如图3-23所示。

img167

图3-23 存储控制器的仿真波形

例3 设计一个自动售货机的逻辑电路,此机器投币口一次只能投一个一元或五角的硬币,累计投入一元五角后机器自动给出一瓶饮料,投入两元后给出一瓶饮料的同时找回一枚五角硬币。

分析:

(1)设A和B为输入,Y和Z为输出;意义如下:

·投入一元则A=‘1’,否则A=‘0’;

·投入五角则B=‘1’,否则B=‘0’;

·给出饮料则Y=‘1’,否则Y=‘0’;

·找钱五角则Z=‘1’,否则Z=‘0’;

(2)自动售货机有三个状态:

·S0:未投币时状态

·S1:投入五角时状态

·S2:投入一元时状态

(3)状态转移图如图3-24所示。

img168

图3-24 自动售货机的状态转移图

1.VHDL描述

img169

img170

2.仿真波形

本例的仿真波形如图3-25所示。

img171

图3-25 自动售货机的仿真波形

例4 设计一个灯光控制器电路,使红黄绿三色灯在时钟的控制下,按图3-26所示顺序转换,并且能够自启动。

img172

图3-26 灯光控制电路的状态转移图

1.VHDL描述

LIBRARY IEEE;

img173

2.仿真波形

本例的仿真波形如图3-27所示。

img174

图3-27 灯光控制电路的仿真波形

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈