书签 分享 收藏 举报 版权申诉 / 44
上传文档赚钱

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

  • 上传人(卖家):ziliao2023
  • 文档编号:7976193
  • 上传时间:2024-09-20
  • 格式:PPT
  • 页数:44
  • 大小:546KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第5讲-有限状态机课件.ppt(44页)》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    有限状态机 课件
    资源描述:

    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次态次态现态现态红绿灯红绿灯显示显示

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第5讲-有限状态机课件.ppt(44页)
    链接地址:https://www.163wenku.com/p-7976193.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库