ImageVerifierCode 换一换
格式:PPT , 页数:44 ,大小:546KB ,
文档编号:7976193      下载积分:22 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-7976193.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(ziliao2023)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(第5讲-有限状态机课件.ppt(44页))为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

第5讲-有限状态机课件.ppt(44页)

1、例:计数器设计例:计数器设计 设计一电路,包含基设计一电路,包含基4计数器,和译码输出模块。计数器,和译码输出模块。计数器的输出计数器的输出(Present_value)从从0到到3循环;循环;当计数值为当计数值为2时,译码输出时,译码输出(DataOut)为为“1”,否则输出否则输出“0”。Regs1ClkPresent_valueQ(n)Next_valueQ(n+1)译码译码DataOutZ(n)00/001/010/111/0Regs1ClkPresent_valueQ(n)Next_valueQ(n+1)译码译码DataOutZ(n)00/001/010/111/0扩展一个输入端扩展

2、一个输入端din,当当din=1时计数器递时计数器递增计数;当增计数;当din=0时时计数器递减计数。计数器递减计数。dinDin=1Din=1Din=1Din=1Din=0Din=0Din=0Din=0Regs/-1ClkPresent_valueQ(n)Next_valueQ(n+1)译码译码DataOutZ(n)再将计数器修改成一再将计数器修改成一个状态转换器,状态个状态转换器,状态为为S0,S1,S2,S3。每个状态的取值根据每个状态的取值根据具体情况而定。比如具体情况而定。比如S0=00,S1=11,S3=01,S4=10。din00/001/010/111/0Din=1Din=1D

3、in=1Din=1Din=0Din=0Din=0Din=0Regs/-1ClkPresent_valueQ(n)Next_valueQ(n+1)译码译码DataOutZ(n)再将计数器修改成一再将计数器修改成一个状态转换器,状态个状态转换器,状态为为S0,S1,S2,S3。每个状态的取值根据每个状态的取值根据具体情况而定。比如具体情况而定。比如S0=00,S1=11,S3=01,S4=10。dinS0/0S1/0S2/1S3/0Din=1Din=1Din=1Din=1Din=0Din=0Din=0Din=0Regs/-1ClkPresent_valueQ(n)Next_valueQ(n+1)译

4、码译码DataOutZ(n)现在我们得到了一个比较通用现在我们得到了一个比较通用的时序电路,这种电路统称为的时序电路,这种电路统称为状态机状态机(State Machine)。dinS0/0S1/0S2/1S3/0Din=1Din=1Din=1Din=1Din=0Din=0Din=0Din=0Regs/-1ClkPresent_valueQ(n)Next_valueQ(n+1)译码译码DataOutZ(n)有限状态机概述有限状态机概述数字系统控制部分的每一个控制态可以看数字系统控制部分的每一个控制态可以看作一种状态,与每一个控制态相关的转换作一种状态,与每一个控制态相关的转换条件指定了当前状态

5、的下一个状态和输出。条件指定了当前状态的下一个状态和输出。根据有限状态机的输出与当前状态与当前根据有限状态机的输出与当前状态与当前输入的关系,可以分成输入的关系,可以分成Moore型和型和Mealy型两种类型的有限状态机。型两种类型的有限状态机。Moore状态机和状态机和Mealy状态机状态机Moore状态机的输出只与当前状态有关状态机的输出只与当前状态有关次态次态逻辑逻辑状状 态态寄存器寄存器输出输出逻辑逻辑输入输入次态次态现态现态输出输出时钟时钟复位复位Moore状态机和状态机和Mealy状态机状态机Mealy状态机的输出与当前状态机及状态机的输出与当前状态机及当前输入信号有关当前输入信号

6、有关次态次态逻辑逻辑状状 态态寄存器寄存器输出输出逻辑逻辑输入输入次态次态现态现态输出输出时钟时钟复位复位状态机的表示方法状态机的表示方法状态转换表状态转换表算法流程图算法流程图状态转换图状态转换图这是最流行的这是最流行的表示方法表示方法状态转换图状态转换图状态状态1状态状态4状态状态2状态状态3入入/出出入入/出出入入/出出入入/出出/出出Mealy条件控条件控制定序制定序直接控直接控制定序制定序用用VHDL描述状态机的组成描述状态机的组成一个用来描述有限状态机功能的一个用来描述有限状态机功能的VHDL语言程序中应该包含以下几个内容:语言程序中应该包含以下几个内容:(1)至少包括一个至少包括

7、一个状态信号状态信号,它们用来指定有,它们用来指定有限状态机的状态;限状态机的状态;(2)状态转移状态转移指定和指定和输出指定输出指定,它们对应于控,它们对应于控制单元中与每个控制步有关的转移条件;制单元中与每个控制步有关的转移条件;(3)时钟信号,它一般是用来进行同步的;时钟信号,它一般是用来进行同步的;(4)同步或异步复位信号。同步或异步复位信号。状态机的状态机的VHDL描述方式描述方式(1)单进程描述方式:单进程描述方式就是指在单进程描述方式:单进程描述方式就是指在VHDL语言程序的结构体中,使用一个进程语句语言程序的结构体中,使用一个进程语句来描述有限状态机中的次态逻辑、状态寄存器和来

8、描述有限状态机中的次态逻辑、状态寄存器和输出逻辑。输出逻辑。(2)双进程描述方式:一个进程语句用来描述有限双进程描述方式:一个进程语句用来描述有限状态机中次态逻辑、状态寄存器和输出逻辑中的状态机中次态逻辑、状态寄存器和输出逻辑中的任何两个;另外一个进程则用来描述有限状态机任何两个;另外一个进程则用来描述有限状态机剩余的功能。剩余的功能。(3)三进程描述方式:一个进程用来描述有限状态三进程描述方式:一个进程用来描述有限状态机中的次态逻辑;一个进程用来描述有限状态机机中的次态逻辑;一个进程用来描述有限状态机中的状态寄存器;另外一个进程用来描述有限状中的状态寄存器;另外一个进程用来描述有限状态机中的

9、输出逻辑。态机中的输出逻辑。状态机的状态机的VHDL描述方式描述方式描述方式描述方式进程描述功能进程描述功能三进程描述方式三进程描述方式进程进程1:描述次态逻辑:描述次态逻辑进程进程2:描述状态寄存器:描述状态寄存器进程进程3:描述输出逻辑:描述输出逻辑双进程描双进程描述方式述方式 形式形式1 进程进程1:描述次态逻辑、状态寄存器:描述次态逻辑、状态寄存器进程进程2:描述输出逻辑:描述输出逻辑形式形式2 进程进程1:描述状态寄存器、输出逻辑:描述状态寄存器、输出逻辑进程进程2:描述次态逻辑:描述次态逻辑形式形式3 进程进程1:描述次态逻辑、输出逻辑:描述次态逻辑、输出逻辑进程进程2:描述状态寄

10、存器:描述状态寄存器单进程描述方式单进程描述方式进程进程1:描述次态逻辑、状态寄存器和:描述次态逻辑、状态寄存器和输出逻辑输出逻辑存储控制器存储控制器idledecisionreadwritereadyread_writereadyreadyreadyreadyreadyread_write 设计一个存储控制器,设计一个存储控制器,它的具体要求为它的具体要求为:(1)存存储控制器能够根据微处储控制器能够根据微处理器的读周期或者写周理器的读周期或者写周期,分别对存储器输出期,分别对存储器输出写使能信号写使能信号we和读使能和读使能信号信号oe;(2)存储控制存储控制器的输入信号有器的输入信号有3

11、个个:微微处理器的准备就绪信号处理器的准备就绪信号ready、微处理器的读、微处理器的读写信号写信号read_write和和时钟信号时钟信号clk。存储控制器存储控制器列出当前状态和输出值的关系列出当前状态和输出值的关系状态状态输出输出OEWEidle00decision00write01read10建立状态转换表,列出次态和转换条件建立状态转换表,列出次态和转换条件当前状态当前状态次态次态转换条件转换条件idledecisionready=1decisionwritew_r=0readw_r=1writeidleready=1writeready=0readidleready=1readre

12、ady=0利用利用VHDLVHDL语言进行状态机描述语言进行状态机描述所有状态均可以表达为所有状态均可以表达为CASE-WHENCASE-WHEN结构结构中的一条语句。中的一条语句。状态的转移通过状态的转移通过if-then-elseif-then-else语句实现。语句实现。CASE present_state IS WHEN idle =输出量;输出量;IF ELSE END IF;有些状态的转换中,在条件满足时,有些状态的转换中,在条件满足时,转换到下一个状态,否则保持原来的转换到下一个状态,否则保持原来的状态不变。状态不变。这种情况对应着这种情况对应着IF-THEN-ELSE的两个分支

13、。的两个分支。在这种情况下,在这种情况下,ELSE分支并不是必需分支并不是必需的。但是缺少的。但是缺少ELSE分支,会导致额外分支,会导致额外的存储器。的存储器。状态转换状态转换状态描述的步骤:对每一个状态建立一项对每一个状态建立一项CASE语句的分支语句的分支 WHEN 状态名状态名=确定输出变量确定输出变量通过通过IF-THEN-ELSE语句指定相应的次语句指定相应的次态。态。例case present_state is -CASE分支分支when idle=oe=0;we=0;-确定输出变量确定输出变量if(ready=1)then-确定次态确定次态next_state=decision

14、;elsenext_state IF(ready=1)THENnext_state=decision;ELSEnext_state=idle;END IF;END CASE;END PROCESS nextstate_logic;例:三进程描述方式例:三进程描述方式2 2state_register:PROCESS(clk)BEGIN IF(RISING_EDGE(clk)THEN present_state we=0;oe we=0;oewe=0;oewe=1;oe=0;END CASE;END PROCESS output_logic;任务任务1 1:空调控制器:空调控制器S1S2S3th

15、igh=0tlow=0thigh=0tlow=1thigh=1tlow=0thigh=0tlow=1thigh=0tlow=0thigh=1tlow=0hot=0cool=0hot=0cool=1hot=1cool=0空调控制器状态转换图空调控制器状态转换图任务任务1 1:空调控制器:空调控制器S1S1:表示温度适中,不高也不低,对应着输入信号thigh和tlow均为低电平(无效),空调器既不制冷也不制热,因此输出控制信号hot和cool都是低电平。S2S2:表示温度太低,对应着输入信号tlow为高电平,thigh为低电平,此时空调器应该工作在制热状态,相应的输出控制信号hot为高电平,coo

16、l无效。S3S3:表示温度太高,对应着输入信号thigh为高电平,tlow为低电平,此时空调器应该工作在制冷状态,相应的输出控制信号cool为高电平,hot无效。任务任务1 1:空调控制器:空调控制器状态转换表状态转换表当前当前状态状态转换条件转换条件下一下一状态状态执行操作执行操作输出值输出值S1thigh=0&tlow=1thigh=1&tlow=0S2S3制热制热制冷制冷hot=1/cool=0hot=0/cool=1S2thigh=0&tlow=0thigh=1&tlow=0S1S3既不制冷也不制热既不制冷也不制热制冷制冷hot=0/cool=0hot=0/cool=1S3thigh=

17、0&tlow=0thigh=0&tlow=1S1S2既不制冷也不制热既不制冷也不制热制热制热hot=0/cool=0hot=1/cool=0选做:状态机的应用设计选做:状态机的应用设计例子:设计一个二进制序列检测器,当检测到例子:设计一个二进制序列检测器,当检测到10110序列时,就输出序列时,就输出1(一个时钟周期的脉冲一个时钟周期的脉冲)。其他情况下输出其他情况下输出0。规定检测到一次之后,检测器复位到最初始的状规定检测到一次之后,检测器复位到最初始的状态,重新从头检测。如下所示:态,重新从头检测。如下所示:输入:输入:01101101101100输出:输出:1000001状态转换图设计(

18、状态转换图设计(MooreMoore)10110S0/0S1/0S2/0S3/0S4/0S5/1Reset1100110100101011 0s1 s2s3s4 s5s0问题问题1:如何保证:如何保证状态机在初始时状状态机在初始时状态为态为s0?问题问题2:在状态机:在状态机跑飞,即脱离有效跑飞,即脱离有效状态状态(s0s5)时,时,如何使状态机能恢如何使状态机能恢复工作复工作Sx/0波形波形波形如下图波形如下图所示所示问题:如果需要问题:如果需要将输出脉冲往前将输出脉冲往前推一个时钟周期,推一个时钟周期,该如何修改设计?该如何修改设计?101101011 0s1 s2s3s4 s5s0输入输

19、入时钟时钟输出输出当前状态当前状态 发现当前状态发现当前状态为为s4,并且输入并且输入为为0时时,输出为,输出为1。状态转换图设计状态转换图设计(Mealy)(Mealy)S0S1S2S3S4S5Reset100110100101sX/0/0/0/0/0/0/0/0/0/1/0/0101101011 0s1 s2s3s4 s5s0/00/1s0状态机的代码实现状态机的代码实现 状态定义状态定义Architecture rtl of Syn isArchitecture rtl of Syn is-其他信号定义。其他信号定义。Type SynFsmState is(s0,s1,s2,s3,s4,

20、s5);Type SynFsmState is(s0,s1,s2,s3,s4,s5);Signal SynCst,SynNst:SynFsmState;Signal SynCst,SynNst:SynFsmState;Begin Begin -结构体。结构体。End rtl;End rtl;状态机的代码实现状态机的代码实现状态寄存器进程描述状态寄存器进程描述状态寄存器输出译码下一状态译码当前状当前状态态输出输出下一状态下一状态输入输入时钟时钟clkclk状态寄存器进程描述状态寄存器进程描述Process(clk,Reset)Begin if(Reset=1)then SynCst=S0;-初始

21、状态。初始状态。elsif(clkevent and clk=1)then SynCst when s1=when s5=End case;End process;if(din=1)then SynNst=s1;else SynNst SynNst when s1=when s5=when others=End case;End process;MooreMealyDout=0;Dout=0;Dout=0if(din=1)then else end if;,din)任务任务2 2:交通灯控制器:交通灯控制器模拟显示十字路口两个方向的交通通模拟显示十字路口两个方向的交通通行情况。两个方向均用红、

22、黄、绿灯行情况。两个方向均用红、黄、绿灯指示实际状态。指示实际状态。用用LEDLED同时显示两个方向状态的时间。同时显示两个方向状态的时间。时间计数方式为倒计数方式。技术参时间计数方式为倒计数方式。技术参数为绿数为绿(红红)50)50秒、黄秒、黄(红红)5)5秒、红秒、红(绿绿)30)30秒和红秒和红(黄黄)5)5秒。秒。方法:有限状态机方法:有限状态机当前状态当前状态下一状态下一状态东西灯东西灯南北灯南北灯S1S1S2S2G GR RS2S2S3S3Y YR RS3S3S4S4R RG GS4S4S1S1R RY Y状态机状态机采用双进程描述方式采用双进程描述方式次态逻辑和输出逻辑放在一个进

23、程中次态逻辑和输出逻辑放在一个进程中实现,状态寄存器在另一个进程中实实现,状态寄存器在另一个进程中实现。现。从一个状态转换到另外一个状态,需从一个状态转换到另外一个状态,需要经过一段时间,这段时间的结束将要经过一段时间,这段时间的结束将导致次态变成现态;导致次态变成现态;关于计数器关于计数器设置东西、南北两个计数器设置东西、南北两个计数器计数器的初值在状态转换时设置计数器的初值在状态转换时设置计数器采用倒计数方式计数器采用倒计数方式计数结束计数结束(EOC)(EOC)信号将触发状态寄存器信号将触发状态寄存器进程的执行进程的执行计数的结果将被显示出来。计数的结果将被显示出来。状态转换的条件状态转换的条件计数器值为计数器值为0(0(使得使得EOC=1)EOC=1)由于有两个计数器,因此有四由于有两个计数器,因此有四(三三)种情种情况,分别对应状态转换的情况。况,分别对应状态转换的情况。程序组成程序组成结构体有三个进程结构体有三个进程 状态转换和输出状态转换和输出 状态寄存器状态寄存器 计数器及译码计数器及译码计数器计数器状态寄状态寄存器存器次态逻辑次态逻辑和输出和输出计数初值计数初值CLKCLK计数值计数值EOCEOC次态次态现态现态红绿灯红绿灯显示显示

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|