《第10讲有限状态机(moore型)的设计.ppt》由会员分享,可在线阅读,更多相关《第10讲有限状态机(moore型)的设计.ppt(23页珍藏版)》请在三一办公上搜索。
1、第 10 讲 有限状态机(moore型)设计,电子设计自动化技术,教 学 目 的,认识状态机及其特点 学习状态转移图的画法 掌握摩尔(MOORE)型状态机的VHDL设计法,1 什么是状态机?,有限状态机(简称状态机)相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制的一个状态,通过预先设计的顺序在各状态之间进行转换,状态转换的过程就是实现逻辑功能的过程。,2 为什么使用状态机,有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。状态机的结构模式相对简单。状态机容易构成性能良好的同步时序逻辑模块。状态机的VHDL表述丰富多样,结构清晰。在高速运算和控制方面,状态机更有其巨大
2、的优势。就可靠性而言,状态机的优势也是十分明显的。,3 状态机分类,根据输出信号产生的机理不同,状态机可以分成两类:摩尔(Moore)型状态机-输出信号仅和状态有关米勒(Mealy)型状态机-输出信号和状态、输入信号有关,用户定义的数据类型枚举,格式:TYPE 数据类型名 数据类型定义,枚举类型格式:TYPE 数据类型名 IS(元素1,元素2,);,例:TYPE week IS(sun,mon,tue,wed,thu,fri,sat);TYPE colour IS(red,green,blue);,枚举数据类型是一种特殊的数据类型,它是用文字符号来表示一组实际的二进制数。,用户定义的数据类型枚
3、举,VHDL语言中,许多常用的数据类型,都是采用枚举类型定义的,例:TYPE BOOLEAN IS(FALSE,TRUE);TYPE BIT IS(0,1);TYPE std_ulogic IS(U,-Uninitialized X,-Forcing Unknown 0,-Forcing 0 1,-Forcing 1 Z,-High Impedance W,-Weak Unknown L,-Weak 0 H,-Weak 1-Dont care);,4 Moore型状态机设计方法,摩尔型状态机的典型结构,4 Moore型状态机设计方法,More型状态机输出仅和状态机的当前状态有关,与外部输入无关
4、,即:外部输出是内部状态的函数。输入信号的变化决定当前状态的下一状态,即次态。,状态转移图描述方式:,例:设计一个序列检测器。要求检测器连续收到串行码1101后,输出检测标志1,否则输出0。,状态机设计步骤:分析设计要求,列出全部可能状态;画出状态转移图;用VHDL语言描述状态机。,4 Moore型状态机设计方法,(1)分析设计要求,列出全部可能状态:未收到一个有效位(0):S0 收到一个有效位(1):S1 连续收到两个有效位(11):S2 连续收到三个有效位(110):S3 连续收到四个有效位(1101):S4,4 Moore型状态机设计方法,(2)状态转移图:,1101,S0/0,S1/0
5、,S2/0,S4/1,S3/0,1,1,0,1,0,1,0,1,0,0,4 Moore型状态机设计方法,4 Moore型状态机设计方法,(3)用VHDL语言描述状态机,定义状态机 枚举类型 状态转换描述 输出信号描述,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY moore ISPORT(clk,data:IN STD_LOGIC;zo:OUT STD_LOGIC);END moore;,实体设计,12.4 Moore型状态机设计方法,ARCHITECTURE a OF moore ISTYPE STATE IS(S0,S1,S2,S3,S4)
6、;SIGNAL pstate:STATE;BEGIN PROCESS(clk)BEGIN IF(clkEVENT AND clk=1)THEN CASE pstate is WHEN S0=IF data=1 THEN pstate IF data=1 THEN pstate IF data=0 THEN pstate IF data=1 THEN pstate IF data=1 THEN pstate=S1;ELSE pstate=S0;END IF;END CASE;END IF;END PROCESS;zo=1 WHEN pstate=s4 ELSE 0;END a;,定义状态机,输出
7、信号描述,状态转移描述,4 Moore型状态机设计方法,仿 真 波 形,4 Moore型状态机设计方法,练习:位于十字路口的交通灯,在A方向和B方向各有红、黄、绿三盏灯,每10秒变换一次。变换顺序如下表:,4 Moore型状态机设计方法,交通灯的全部状态及输出:,画出状态转移图:,S0010100,12.4 Moore型状态机设计方法,S1001100,S3100001,S2100010,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jtd IS PORT(clk:IN STD_LOGIC;ZO:OUT STD_LOGIC_VECTOR(5 D
8、OWNTO 0);END jtd;,实体设计,12.4 Moore型状态机设计方法,ZO=“010100”WHEN pstate=s0 ELSE“001100”WHEN pstate=s1 ELSE“100010”WHEN pstate=s2 ELSE“100001”;END a;,BEGIN PROCESS(clk)BEGIN IF(clkEVENT AND clk=1)THEN CASE pstate is WHEN S0=pstate pstate pstate pstate=S0;END CASE;END IF;END PROCESS;,ARCHITECTURE a OF jtd ISTYPE STATE IS(S0,S1,S2,S3);SIGNAL pstate:STATE;,定义状态机,状态转换描述,输出信号描述,小 结,状态机容易构成性能良好的数字系统控制器;状态机可以分为摩尔型和米勒型;摩尔型状态机的输出只和状态机的状态有关;米勒型状态机的输出和状态机的状态及输入信号有关;状态机的设计步骤是分析状态、画状态转移图、VHDL描述VHDL描述一般使用枚举类型定义状态机。,