有限状态机设计讲解材料

上传人:yuzo****123 文档编号:138388467 上传时间:2020-07-15 格式:PPT 页数:62 大小:1.21MB
返回 下载 相关 举报
有限状态机设计讲解材料_第1页
第1页 / 共62页
有限状态机设计讲解材料_第2页
第2页 / 共62页
有限状态机设计讲解材料_第3页
第3页 / 共62页
有限状态机设计讲解材料_第4页
第4页 / 共62页
有限状态机设计讲解材料_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《有限状态机设计讲解材料》由会员分享,可在线阅读,更多相关《有限状态机设计讲解材料(62页珍藏版)》请在金锄头文库上搜索。

1、第6章 有限状态机设计,EDA 的控制单元 P189-208,第6章 有限状态机设计,一般有限状态机设计概述 Moore型有限状态机设计 Mealy型有限状态机设计 状态编码 非法状态处理,6.1 概 述,一、为什么要使用有限状态机,什么是状态机 二、有限状态机的分类及表示方法 三、有限状态机的设计举例,为什么要使用状态机,状态机:广义时序逻辑电路,按照预先设计的状态顺序运行。状态数有限,又称有限状态机(FSM,Finite State Machine)。 结构模式简单; 容易构成性能良好的同步时序逻辑模块; VHDL表述直观,程序结构清晰; 状态机设计的系统可靠性高。, 有限状态机克服了纯硬

2、件数字系统顺序方式控制不灵活的缺点。,状态机的表示方法1,方法一:状态转换表,状态机的表示方法2,方法二:算法流程图,方法与软件程序的流程图类似,状态机的表示方法3,方法三:状态转换图,状态1,状态4,状态2,状态3,入,/出,入,入,入,/出,/出,/出,Moore,条件控制定序,直接控制定序,状态机的表示方法3,方法三:状态转换图,状态1,状态4,状态2,状态3,入,/出,入,入,入,/出,/出,/出,/出,Mealy,条件控制定序,直接控制定序,一、概述,6.1.3 状态机基本结构,状态 译码器,状态 寄存器,输 出 译 码 器,输入,反馈,输出,状态,组合逻辑,组合逻辑,时序逻辑,二、

3、一般有限状态机的设计,6.2.1 一般有限状态机组成 说明部分; 时序进程; 组合进程; 辅助进程。,1. 说明部分,2. 时序进程,ARCHITECTURE . IS TYPE ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: ST; .,3.组合进程,在时钟信号的作用下,负责状态的转换。,4.辅助进程,根据输入信号和当前状态的取值(current_state)确定下一状态(next_state)的取值,确定输出或产生内部其它组合进程或时序进程所需的控制信号。,配合时序进程或组合进程工作的数据锁存器等进程。,有限状态机的程序构成,二

4、、一般有限状态机的设计,6.2.1 一般有限状态机组成 组合进程:,注:状态译码器部分; 判别控制过程中的当前状态;(case - when) 决定进入下一个状态。(if - then - else),二、一般有限状态机的设计,6.2.1 一般有限状态机组成 辅助进程:,二、一般有限状态机的设计,【例 6-1 】一般两进程有限状态机描述 课堂练习: 画出下面程序对应的状态转换图,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY s_machine IS PORT ( clk,reset : IN STD_LOGIC; state_inputs

5、: IN STD_LOGIC_VECTOR (0 TO 1); comb_outputs : OUT STD_LOGIC_VECTOR (0 TO 1) ); END s_machine; ARCHITECTURE behave OF s_machine IS TYPE states IS (st0, st1, st2, st3); SIGNAL current_state, next_state: states; BEGIN REG: PROCESS (reset,clk) BEGIN IF reset = 1 THEN current_state = st0; ELSIF clk=1 AN

6、D clkEVENT THEN current_state = next_state; END IF; END PROCESS; COM: PROCESS(current_state, state_Inputs),BEGIN CASE current_state IS WHEN st0 = comb_outputs comb_outputs comb_outputs comb_outputs = “11”; IF state_inputs = 11 THEN next_state = st3; ELSE next_state = st0; END IF; END case; END PROCE

7、SS; END behave;,课堂练习2,单稳态触发器设计 序列检测器设计,单稳态触发器,单稳态触发器在数字电路中一般用于定时(产生一定宽度的矩形波)、整形(把不规则的波形转换成宽度、幅度都相等的波形)以及延时(把输入信号延迟一定时间后输出)等。,(1)电路有一个稳态和一个暂稳态。 (2)在外来触发脉冲作用下,电路由稳态翻转到暂稳态。 (3)暂稳态是一个不能长久保持的状态,经过一段时间后,电路会自动返回到稳态。暂稳态的持续时间与触发脉冲无关,仅决定于电路本身的参数。,特点:,延迟与定时,整形,单稳态触发器的应用,二、一般有限状态机的设计,【例 6-2 】Moore状态机设计 Moore状态机

8、的输出仅为当前状态的函数 Mealy状态机的输出是输入和当前状态的函数 在控制AD574模数转换器方面,FPGA要比 MCU8051快。,状态机控制电路设计思路: AD转换器工作时序-状态转换图-逻辑结构框图-VHDL代码,二、一般有限状态机的设计,【例 6-2 】Moore状态机设计 由FPGA控制AD574电路(三进程),二、一般有限状态机的设计,【例 6-2 】Moore状态机设计 由FPGA控制AD574电路(三进程),图6-4 AD574工作时序,二、一般有限状态机的设计,【例 6-2 】Moore状态机设计 由FPGA控制AD574电路,图6-5 AD574工作状态图,二、一般有限

9、状态机的设计,【例 6-2 】Moore状态机设计 由FPGA控制AD574电路(三进程),图6-6 采样状态机结构框图,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY AD574 IS PORT ( d :IN STD_LOGIC_VECTOR(11 DOWNTO 0); clk,status : IN STD_LOGIC; -时钟CLK,状态信号STATUS lock0 :OUT STD_LOGIC; -内部锁存信号LOCK的测试信号 cs,a0,rc,k12x8 : OUT STD_LOGIC; -AD574控制信号 q : OUT S

10、TD_LOGIC_VECTOR(11 DOWNTO 0); -输出 END AD574; ARCHITECTURE behave 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; BEGIN k12x8 = 1; lock0 = lock ; COM1: PROCESS(current_state, st

11、atus) -决定转换状态的进程 接下页,BEGIN CASE current_state IS WHEN st0 = next_state next_state IF (STATUS=1) THEN next_state next_state next_state next_state CS CS CS CS CSCS=1; A0=1;RC=1;LOCK=0; -回初始态 END CASE ; END PROCESS COM2 ; REG: PROCESS (CLK) - 状态寄存器时序进程 接下页,BEGIN IF ( clkEVENT AND clk=1) THEN current_st

12、ate = next_state; END IF; END PROCESS REG; LATCH1 : PROCESS (lock) - 数据锁存器进程 BEGIN IF lock=1 AND lockEVENT THEN regl = d ; END IF; END PROCESS ; q = regl; END behave;,2. Moore型有限状态机设,图:ADC0809工作时序,二、一般有限状态机的设计,【例 6-3 】Moore状态机设计 同步输出Moore型状态机,例1 两进程有限状态机,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; EN

13、TITY MOORE2 IS PORT (DATAIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0); CLK,RST : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END MOORE2; ARCHITECTURE behav OF MOORE2 IS TYPE ST_TYPE IS (ST0, ST1, ST2, ST3,ST4); SIGNAL current_state,next_state : ST_TYPE ; BEGIN shi_xu: process(clk,rst) begin,if rst=1

14、 then current_state IF DATAIN =10 THEN next_state IF DATAIN =11 THEN next_state = ST2 ; ELSE next_state = ST1 ;END IF; Q = 0101 ;,WHEN ST2 = IF DATAIN =01 THEN next_state IF DATAIN =00 THEN next_state IF DATAIN =11 THEN next_state next_state = ST0; END CASE; END PROCESS; END behav;,两进程有限状态机,图:单进程状态机

15、工作时序,2. Moore型有限状态机设计,实例2:单进程Moore型有限状态机,特点是组合进程和时序进程在同一个进程中,输出引入了锁存器,且与时钟同步,避免了输出的竞争和冒险。缺点是输出晚了一个时钟周期。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MOORE1 IS PORT (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 IS TYPE ST_TYPE IS (ST0, ST1, ST2, ST3,ST4); SIGNAL C_ST : ST_TYPE ; BEGIN,2. Moore型有限状态机设,PROCESS(CLK,RST) BEGIN IF RST =1 THEN C_ST IF DATAIN =10 THEN C_ST IF DATAIN =11 THEN C_ST IF DATAIN =01 THEN C_ST = ST3 ; ELSE C_ST = ST0 ;END IF; Q = 1100 ;,2

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

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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