第6章 状态机程序设计ppt课件.ppt

第6章 状态机程序设计ppt课件.ppt

ID:59209420

大小:797.50 KB

页数:38页

时间:2020-09-26

第6章 状态机程序设计ppt课件.ppt_第1页
第6章 状态机程序设计ppt课件.ppt_第2页
第6章 状态机程序设计ppt课件.ppt_第3页
第6章 状态机程序设计ppt课件.ppt_第4页
第6章 状态机程序设计ppt课件.ppt_第5页
资源描述:

《第6章 状态机程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章状态机程序设计6.1有限状态机引论6.1.1有限状态机概念在一个复杂的控制系统中,可以将控制过程分为几步或几个状态,在每个状态下,控制系统的动作简单明确。我们只要根据系统的要实现的功能,画出状态转换图及每个状态下的动作或输出函数,即可实现有效控制。这种控制方式在数字系统中称为状态机,实际上就是控制系统理论中比较重要的步进控制。例:AD574转换控制器控制逻辑:CECSRCX12/8A0工作状态0XXXX禁止X1XXX禁止100X0启动12位转换100X1启动8位转换1011X12位数据输出10100高8位数据输出10101低4位数据输出操作时序状态转换图要求控制器在现场

2、信号作用下自动进行状态转换,并根据当前状态发出相应控制信号以控制现场。状态机就是完成这一目的。有限状态机及其设计技术是实用数字系统设计中的重要组成部分,是实现高效率高可靠逻辑控制的重要途径。6.1.2状态机的优点无论与基于VHDL的其他设计方案相比,还是与可完成相似功能的CPU相比,状态机都有其难以超越的优越性,它主要表现在以下几方面:1、控制灵活、方便:状态机的工作方式是根据控制信号按照预先设定的状态顺序运行的,因此状态机在其运行方式上类似于控制灵活和方便的CPU。2、结构简单,便于设计:设计方案相对固定3、易构成性能良好的同步时序逻辑模块,避免竞争冒险现象。4、运行速度比

3、CPU要高出三至四个数量级。5、可靠性:状态机由纯硬件电路构成;由非法状态跳出,只要2、3个时钟周期,所耗时间短6.1.3状态机的分类1)从状态机的信号输出方式上分有Mealy型和Moore型两种状态机。Mealy属于异步输出状态机。其输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的,不依赖时钟的同步。Moore属于同步输出状态机,其输出则仅为当前状态的函数,这类状态机在输入发生变化还必须等待时钟的到来,时钟使状态发生变化时才导致输出的变化,所以比Mealy机要多等待一个时钟周期。2)从程序结构上分,有单进程状态机和多进程状态机。3)从编码方式上分有顺序编

4、码状态机、一位热码编码状态机或其他编码方式状态机。6.2典型状态机设计典型状态机设计由状态信号定义、准备下一状态进程、状态切换进程、输出进程等四部分构成。【例6-1】用FPGA/CPLD控制AD574进行12位A/D转换,并将转换结果保存在Q0~Q11中CECSRCX12/8A0工作状态0XXXX禁止X1XXX禁止100X0启动12位转换100X1启动8位转换1011X12位数据输出10100高8位数据输出10101低4位数据输出分析:12位A/D转换,12位结果输出,X12/8接高电平,A0接低电平;2个片选信号用1个CE,CS接低电平。LIBRARYIEEE;USEIEE

5、E.STD_LOGIC_1164.ALL;ENTITYAD574ISPORT(D:INSTD_LOGIC_VECTOR(11DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(11DOWNTO0);CLK,STATUS:INSTD_LOGIC;CE,RC:OUTSTD_LOGIC);ENDAD574;ARCHITECTUREbehavOFAD574ISTYPEstatesIS(s0,sl,s2,s3,s4,s5);SIGNALc_st,n_st:states;SIGNALLOCK:STD_LOGIC;BEGIN1、状态信号定义:采用枚举数据类型定义系统中有哪些状态,

6、并定义当前状态信号、下一状态信号。一般放在结构体的ARCHITECTURE和BEGIN之间。在数字系统中,每一状态对应一个二进制数,称状态编码。如AD574控制有5个状态,可用3位二进制表示:(000、001、010、011、100)。但设计者在状态机的设计中,为了更利于阅读、编译和VHDL综合器的优化,往往将表征每一状态的二进制数组用文字符号来代表,即所谓状态符号化。如(s0,sl,s2,s3,s4,s5),或者(READY,START,WAIT_H,WAIT_L,READ,LOCK)等更直观的符号表示。PROCESS(c_st,STATUS)--准备下一状态BEGIN--

7、实现状态图连接CASEc_stISWHENs0=>n_st<=sl;WHENSl=>n_st<=s2;WHENs2=>IF(STATUS='1')THENn_st<=s3;ELSEn_st<=s2;END1F;WHENs3=>IF(STATUS='1')THENn_st<=s3;ELSEn_st<=s4;END1F;WHENS4=>n_st<=s5;WHENS5=>n_st<=s0;WHENOTHERS=>n_st<=s0;ENDCASE;ENDPROCESS;2、准备下一状态进程:根据外部输入的控制信

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。