有限状态机的设计 (2)ppt培训课件

上传人:aa****6 文档编号:57532282 上传时间:2018-10-22 格式:PPT 页数:85 大小:3.67MB
返回 下载 相关 举报
有限状态机的设计 (2)ppt培训课件_第1页
第1页 / 共85页
有限状态机的设计 (2)ppt培训课件_第2页
第2页 / 共85页
有限状态机的设计 (2)ppt培训课件_第3页
第3页 / 共85页
有限状态机的设计 (2)ppt培训课件_第4页
第4页 / 共85页
有限状态机的设计 (2)ppt培训课件_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《有限状态机的设计 (2)ppt培训课件》由会员分享,可在线阅读,更多相关《有限状态机的设计 (2)ppt培训课件(85页珍藏版)》请在金锄头文库上搜索。

1、第6章,有限状态机设计,第6章 有限状态机设计,6.1 概述,6.2 一般有限状态机的设计,6.3 Moore型状态机的设计,6.4 Mealy型状态机的设计,6.5 状态编码,6.6 状态机剩余状态处理,6.1 概述,6.1.1 关于状态机,6.1.2 状态机的特点,6.1.3 状态机的基本结构和功能,6.1.1 关于状态机,有限状态机(Finite State Machine FSM)是由状态寄存器和组合逻辑电路构成的,能够根据控制信号按照预先设定的状态进行状态转移,属于一种同步时序逻辑电路。,用VHDL设计的状态机的分类:,(1)按信号输出方式分:,Mealy(米立)型,outputs=

2、f(current_states),Moore(摩尔)型,outputs=f(current_states,inputs),(4)从状态编码方式分:,(3)从状态表达方式分:符号化状态机和确定状态编码的状态机.,顺序编码、一位热码编码和其他编码方式状态机,(2)从结构上分:单进程和多进程.,6.1.2 状态机的特点,(1)有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。(运行方式上类似于控制灵活和方便的CPU,在运行速度和工作可靠性方面都优于CPU),(2)状态机的结构模式相对简单,设计方案相对固定,特别是可以定义符号化枚举类型的状态。,(3)状态机容易构成性能良好的同步时序逻辑模块。

3、有利于消除大规模逻辑电路设计中的竞争冒险现象, 提供了多种设计方案消除电路中的毛刺.,(4)与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂,在排错、修改和模块移植方面也有其独到的特点。,(5)在高速运算和控制方面,状态机更有其巨大的优势。,一般由状态机构成的硬件系统比CPU所能完成同样功能的软件系统的工作速度要高3-4个数量级.,(6)就可靠性而言,状态机的优势也是十分明显的。,1.由纯硬件电路构成,不存在CPU运行软件过程中许多固有的缺陷。,2.状态机的设计中能使用各种完整的容错技术。,3.当状态机进入非法状态并从中跳出,进入正常状态所耗的时间十

4、分短暂(约数十个微秒),尚不足以对系统的运行构成损害。,6.1.3 状态机的基本结构和功能,图6-1 状态机的结构示意图,状态机的两种基本操作:,(1)状态机内部状态转换.状态机经历一系列状态,下一状态由状态译码器根据当前状态和输入条件决定。,(2)产生输出序列.输出信号由输出译码器根据当前状态和输入条件决定。,6.2 一般有限状态机的设计,6.2.1 一般有限状态机的组成,6.2.2 设计实例,6.2.1 一般有限状态机的组成,一般的状态机通常包含说明部分、时序进程、组合进程、辅助进程等几个部分。,1.说明部分,说明部分定义新的枚举类型,其元素即为状态机的所有状态。状态变量(现态和次态)定义

5、为信号,并且状态变量的数据类型为前述的枚举类型。,如: type state_type is(start_state,run_state,error_state); Signal current_state,next_state :state_type;,2.时序进程,时序进程负责状态机运转和在时钟驱动下负责状态转换,图6-2 一般状态机的工作示意图,4.辅助进程,用于配合状态机工作的组合进程或时序进程.(如为了稳定输出设置的数据锁存器等)。,组合进程的任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它的信号)和当前状态的值确定下一状态(next_state)的取值内容

6、,以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容。,3.组合进程,6.2.2 设计实例,【例6-1】一般状态机描述(摩尔型),LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;,ENTITY s_machine IS -实体PORT(clk,reset:IN STD_LOGIC;state_inputs:IN STD_LOGIC_VECTOR(0 TO 1);comb_outputs:OUT STD_LOGIC_VECTOR(0 TO 1); END s_machine;,REG:PROCESS (reset, clk) -时序逻辑进程BEGIN

7、IF reset=1 THEN -异步复位current_state=st0;ELSIF(clk=1AND clkEVENT) THENcurrent_statecomb_outputs=“00“; -初始态译码输出IF state_inputs=“00“ THEN next_state=st0; -根据外部的状态控制输入“00”,在下一时钟后,进程REG的状态维持为st0ELSE next_statecomb_outputs=“01“; -对应st1的译码输出“01”IF state_inputs=“00“ THEN next_state=st1; -根据外部的状态控制输入“00”在下一时钟

8、后,进程REG的状态将维持为st1ELSEnext_statecomb_outputs=“10“; IF state_inputs=“11“ THENnext_state=st2;ELSEnext_statecomb_outputs=“11“;IF state_inputs=“11“ THENnext_state=st3;ELSEnext_state=st0;END IF;END CASE; END PROCESS;-由信号next_state将下一状态值带出此进程,进入进程regEND behave;,例6-1状态机的仿真波形(功能仿真),例6-1状态机的状态转换图,6.3 Moore型状态

9、机的设计,图6-3 Moore型状态机框图,6.3 Moore型状态机的设计,6.3.1 多进程Moore型有限状态机,6.3.2 用时钟同步输出信号的Moore型有限状态机,6.3.1 多进程Moore型有限状态机,1Pin2(12/8)数据模式选择端,通过此引脚可选择数据总线是12位或8位输出。,3Pin4(A0)字节地址短周期控制端。与12/8端用来控制启动转换的方式和数据输出格式。,5Pin6(CE)使能端。,6Pin28(STS)工作状态指示信号端,当STS=1时,表示转换器正处于转换状态,当STS=0时.声明A/D转换结束.,表6-1 AD574逻辑控制真值表(X表示任意值),AD

10、574工作时序图,对AD574初始化,打开片选,启动12位转换,采样周期 中等待,STATUS=1 :正在转换!,STATUS=0 : 转换结束!,12位转换数 据输出有效,由LOCK发数据锁存信号,图6-5 AD574采样控制状态图,PROCESS REG 时序进程,PROCESS COM 组合进程,PROCESS LATCH 锁存器,current_state,next_state,LOCK,状态机FSM,FPGA/CPLD,CLK,CSA0RCK12/8STATUS D110,AD574,Q110,模拟信号输入,采样数据输出,图6-6 采样状态机结构框图,【例6-2】AD574控制器描述

11、 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY AD574 ISPORT (D :IN STD_LOGIC_VECTOR(11 DOWNTO 0); CLK ,STATUS : IN STD_LOGIC;-状态机时钟CLK,AD574状态信号STATUSLOCK0 : OUT STD_LOGIC; -内部锁存信号LOCK的测试信号CS,A0,RC,K12X8 : OUT STD_LOGIC;-AD574控制信号Q : OUT STD_LOGIC_VECTOR(11 DOWNTO 0); -锁存数据输出 END AD574;,ARCHITECTU

12、RE behav OF AD574 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL current_state, next_state: states :=st0 ;SIGNAL REGL : STD_LOGIC_VECTOR(11 DOWNTO 0);SIGNAL LOCK : STD_LOGIC; BEGINK12X8 next_state next_state IF (STATUS=1) THEN next_state = st2; ELSE next_state next_state next_state next_state CS

13、 CS CS CS CS=0; A0=0;RC=1;LOCKCS=1; A0=1;RC=1;LOCK=0;-其它情况返回初始态(容错) END CASE ;END PROCESS COM2 ;REG: PROCESS (CLK) - 时序进程 BEGINIF ( CLKEVENT AND CLK=1) THEN current_state = next_state; END IF;END PROCESS REG;LATCH1 : PROCESS (LOCK) - 数据锁存器进程BEGINIF LOCK=1 AND LOCKEVENT THEN REGL = D ;END IF;END PROC

14、ESS ; Q = REGL; END behav;,状态机工作时序图,6.3.2 用时钟同步输出的Moore型有限状态机,图6-8 用时钟同步输出的Moore型状态机框图,【例6-3】用时钟同步输出的单进程状态机 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MOORE1 ISPORT (DATAIN :IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,RST : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END MOORE1; ARCHITECTURE behav OF MOORE1 ISTYPE ST_TYPE IS (ST0, ST1, ST2, ST3,ST4); SIGNAL C_ST : ST_TYPE ;BEGIN PROCESS(CLK,RST) -混合进程BEGIN IF RST =1 THEN C_ST = ST0 ; Q= “0000“ ;ELSIF CLKEVENT AND CLK=1 THEN,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号