第四章VHDL状态机
时表示转换完毕,可以输出。 ADDA:模拟信号进入通道选择信号,为‘0’时选通道0,为‘1’时
选通道1 Q:0809A/D转换后的数字输出数据,交给控制器锁存并输出
Company Logo
时序电路设计?(思考)
状态机就是在有效状态内,在时钟的驱动下,通过给定初 始状态,能够自动完成状态间的循环和相应状态的输出的 时序逻辑电路。
状态机分为状态译码部分:根据输入以及系统当前的状态, 由状态方程来决定下一状态的状态码。状态输出部分:根 据当前的状态码决定电路的当前输出。状态转换部分:将 下一状态转变为当前状态。
类型;
Company Logo
自定义数据类型
Type week is (sun,mon,tue,wed,thu,fri,sat); Type st1 is array (0 to 15) of std_logic; Std_logic_vector(0 to 15)
Type m_state is (st0,st1,st2,st3,st4,st5); Signal present_state,next_state : m_state;
SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围
SUBTYPE digits IS INTEGER RANGE 0 to 9;
NATURAL POSITIVE
Company Logo
状态机有哪几种?
Moore状态机 输出只取决于系统当前的状态,而与系统的输入无关
Company Logo
状态机如何工作
状态输出
根据当前状态确定系 统的输出
有限状态 机
状态译码
根据当前状态和当前 输入,确定状态机的
下一状态码
状态转换
将状态译码的结果, 即下一状态转换为当
前状态
Company Logo
状态机的VHDL结构
状态译码,状态输出,状态转换
双进程结构,时序进程REG完成状态转换,即把下一状态 转换为当前状态,组合进程COM完成当前状态下的状态 译码和状态输出。
用VHDL语言描述状态机的一般模式(结构): 1.说明部分:定义状态机使用的枚举数据类型 2.主控时序进程:在时钟的驱动下进行状态转换。 3.主控组合进程:根据当前状态完成状态译码和
状态输出,并将状态译码反馈给主控时序进程, 将状态输出给系统输出。 4.辅助进程:完成一些辅助算法。 例 5-1
Mealy状态机 输出不仅取决于当前的状态,还取决于系统当前的输入。
Company Logo
状态机的优势
1.控制灵活 2.利于综合器的优化 3.能够良好的避免毛刺 4.程序结构清晰,层析分明 5.在高速运算和控制方面优势明显 6.可靠性高
Company Logo
状态机实例
Company Logo
0809控制器
状态转换图
程序实例: 例5-2
Company Logo
例5-2 程序解析
COM,REG,LATCH1三个进程 COM:状态译码和状态输出 REG:状态转换 LATCH1:转换数据锁存
输入输出信号作用解析: ALE:模拟信号通道地址锁存(为‘1’时读入待转换的模拟信号) START:A/D转换启动信号 LOCK:数据锁存进程锁存数据信号,为‘1’时锁存 OE:数据输出有效信号,为‘1’时输出转换好的数据 EOC:0809转换状态信号,为‘0’时表示正在进行A/D转换,为‘1’
Company Logo
与状态机相关的语法语句
类型定义语句 已定义数据类型:
BIT,STD_LOGIC,BOOLEAN…… 用户自己定义新的数据类型:枚举,数组,记录,
时间,实数等
如何自定义数据类型? TYPE 数据类型名 IS 数据类型定义; TYPE 数据类型名 IS 数据类型定义 OF 基本数据
第四章 VHDL状态机
电子信息工程学院
主要内容
一
状态机概述
二
Moore状态机
三
Mealy状态机
四 状态编码与非法处理
Company Logo
5.1 状态机概述
1
什么是状态机?
2
状态机如何工作?
3
状态机的VHDL结构
Байду номын сангаас
4
与状态机相关的语法语句
5
状态机的种类
Company Logo
什么是状态机?
时序电路分析:驱动方程,状态方程,输出方程,状态转 换表,状态转换图。
Company Logo
5.2 Moore状态机 输出只取决于系统当前的状态,而与系统的输入
无关
Company Logo
Moore状态机
1
多进程Moore状态机
2
单进程Moore状态机
3
两者比较及优缺点
Company Logo
多进程Moore状态机实例 多进程Moore状态机 (以A/D转换控制器为实例) 0809控制器
枚举数据类型是使用文字符号来表示一组实际的二进制数。 枚举类型的文字元素在综合器中使用一组二进制数值来表 示的,具体数值由综合器来完成,用户不需介入。
Company Logo
自定义数据类型
子类型SUBTYPE 子类型是由TYPE所定义一的原数据类型的一个子
集。满足原数据类型的所有约束条件,只是确定 了数据范围。