第10讲有限状态机(moore型)的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

END IF;
WHEN S3=> IF data=‘1’ THEN pstate<=S4; ELSE pstate<=S0;
END IF;
WHEN S4=> IF data=‘1’ THEN pstate<=S1; ELSE pstate<=S0;
END IF;
END CASE; END IF;
输出信号描述
CASE pstate is
WHEN S0=> IF data=‘1’ THEN pstate<=S1; ELSE pstate<=S0;
END IF;
WHEN S1=> IF data=‘1’ THEN pstate<=S2; ELSE pstate<=S0;
END IF;
WHEN S2=> IF data=‘0’ THEN pstate<=S3; ELSE pstate<=S2;
2 为什么使用状态机
有限状态机克服了纯硬件数字系统顺序方式控制不灵 活的缺点。 状态机的结构模式相对简单。 状态机容易构成性能良好的同步时序逻辑模块。 状态机的VHDL表述丰富多样,结构清晰。 在高速运算和控制方面,状态机更有其巨大的优势。 就可靠性而言,状态机的优势也是十分明显的。
3 状态机分类
Data_INi
Si/ZOi
4 Moore型状态机设计方法
例:设计一个序列检测器。要求检测器连续收到 串行码{1101}后,输出检测标志1,否则输出0。
状态机设计步骤: ① 分析设计要求,列出全部可能状态; ② 画出状态转移图; ③ 用VHDL语言描述状态机。
4 Moore型状态机设计方法
(1) 分析设计要求,列出全部可能状态:
枚举数据类型是一种特殊的数据类型,它是用 文字符号来表示一组实际的二进制数。
用户定义的数据类型——枚举
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 '-' -- Don't care );
END PROCESS;
zo<=‘1’ WHEN pstate=s4 ELSE ‘0’;
END a;
4 Moore型状态机设计方法
仿真波形
4 Moore型状态机设计方法
练习:位于十字路口的交通灯,在A方向和B方向 各有红、黄、绿三盏灯,每10秒变换一次。变换 顺序如下表:
A方向 绿 黄
B方向 红 红
END moore;
ARCHITECTURE a OF moore IS TYPE STATE IS (S0,S1,S2,S3,S4);
定义状态机
SIGNAL pstate :STATE;
BEGIN
PROCESS(clk) BEGIN
状态转移描述
IF (clk’EVENT AND clk=‘1’) THEN
未收到一个有效位(0) 收到一个有效位(1) 连续收到两个有效位(11) 连续收到三个有效位(110) 连续收到四个有效位(1101)
:S0 :S1 :S2 :S3 :S4
4 Moore型状态机设计方法
(2) 状态转移图:
Data_INi
Si/ZOi
0
1101
0
S4/1
S0/0 1
0 1
S1/0
0 1
4 Moore型状态机设计方法
输入 X

组合 电路
态 寄 存
c1k 器
组合 电路
输出 Y
摩尔型状态机的典型结构
4 Moore型状态机设计方法
More型状态机输出仅和状态机的当前 状态有关,与外部输入无关,即:
外部输出是内部状态的函数。 输入信号的变化决定当前状态的下一状 态,即次态。
状态转移图描述方式:
电子设计自动化技术
第 10 讲 有限状态机(moore型) 设计
教学目的
认识状态机及其特点 学习状态转移图的画法 掌握摩尔(MOORE)型状态机的VHDL设计法
1 什么是状态机 ?
有限状态机(简称状态机)相当于一个控制器, 它将一项功能的完成分解为若干步,每一步对应 于二进制的一个状态,通过预先设计的顺序在各 状态之间进行转换,状态转换的过程就是实现逻 辑功能的过程。
END a;
小结
状态机容易构成性能良好的数字系统控制器; 状态机可以分为摩尔型和米勒型; 摩尔型状态机的输出只和状态机的状态有关; 米勒型状态机的输出和状态机的状态及输入信号有关; 状态机的设计步骤是分析状态、画状态转移图、
VHDL描述
VHDL描述一般使用枚举类型定义状态机。
S2
———— 100010
12.4 Moore型状态机设计方法
实体设计
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
ENTITY jtd IS PORT( clk:IN STD_LOGIC; ZO:OUT STD_LOGIC_VECTOR(5
DOWNTO 0)); END jtd;
S3/0
1 1
S2/0
0
4 Moore型状态机设计方法
(3)用VHDL语言描述状态机
定义状态机— 枚举类型 状态转换描述 输出信号描述
12.4 Moore型状态机设计方法
实体设计
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
ENTITY moore IS PORT( clk, data:IN STD_LOGIC; zo :OUT STD_LOGIC);
ARCHITECTURE a OF jtd IS TYPE STATE IS (S0,S1,S2,S3); SIGNAL pstate :STATE;
定义状态机
BEGIN
PROCESS(clk) BEGIN
状态转换描述
IF (clk’EVENT AND clk=‘1’) THEN
CASE pstate is

绿


4 Moore型状态机设计方法
交通灯的全部状态及输出:
状态
S0 S1 S2 S3
A方向
B方向
(红绿黄) (红绿黄)
010
100
001
100
100
010
100
001
12.4 Moore型状态机设计方法 画出状态转移图:
S0
———— 010100
S1
———— 001100
S3 ————
100001
WHEN S0=> pstaቤተ መጻሕፍቲ ባይዱe<=S1;
WHEN S1=> pstate<=S2;
WHEN S2=> pstate<=S3;
WHEN S3=> pstate<=S0;
END CASE;
END IF; END PROCESS;
输出信号描述
ZO<=“010100” WHEN pstate=s0 ELSE “001100” WHEN pstate=s1 ELSE “100010” WHEN pstate=s2 ELSE “100001”;
根据输出信号产生的机理不同,状态机可以分成两类: 摩尔(Moore)型状态机--输出信号仅和状态有关 米勒(Mealy)型状态机--输出信号和状态、输入信号有关
用户定义的数据类型——枚举
格式: TYPE 数据类型名 数据类型定义
枚举类型格式: TYPE 数据类型名 IS(元素1,元素2,……);
例:TYPE week IS (sun,mon,tue,wed,thu,fri,sat); TYPE colour IS (red,green,blue);
相关文档
最新文档