版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章有限状态机的VHDL设计主要内容有限状态机的基本概念一般有限状态机的设计摩尔状态机设计米立状态机设计无限状态机用于混沌系统非线性系统本书不要求8.1有限状态机的基本概念8.1.1有限状态机的基本结构和功能
有限状态机(FiniteStateMachine,简称FSM)是数字逻辑电路以及数字系统的重要组成部分,尤其应用于数字系统核心部件的设计,以实现高效率高可靠性的逻辑控制。有限状态机实现了以下两个基本功能:根据当前状态和输入条件决定状态机的内部状态转换。根据当前状态和输入条件确定产生输出信号序列。8.1有限状态机的基本概念(续)8.1.2状态机的状态编码有限状态机设计是基于状态描述的,因此首先必须对系统中的每一个工作状态有一个合理的表达。对于设计者而言,为了表达简捷方便通常使用符号化状态机。二进制编码方案:是用N位二进制数,表示M个工作状态,当然必须满足2N大于等于M。一位热码编码方案(独热码编码):用N位二进制数表示N个状态,每一位编码对应一个触发器,状态机中的每个状态都由其中一个触发器的状态来表示。例:二进制101(5)转换为独热码为11111(5个)1101111118.1.3有限状态机的技术优势设计方案相对固定,结构模式简单,可定义符号化枚举类型的状态。状态机的VHDL描述层次分明,结构清晰,易读易懂。基于有限状态机技术设计的控制器其工作速度大大优于CPU。基于有限状态机技术设计的控制器其可靠性也优于CPU。二进制:速度慢,位数少,节省资源独热码:快多浪费CASE语句:并行处理,程序最稳定,能用则用=:赋值=》:8.2一般有限状态机的设计8.2.1一般有限状态机的VHDL组成
说明部分:主要是设计者使用TYPE语句定义新的数据类型,如:
TYPEstatesIS(st0,st1,st2,st3,st4,st5);
SIGNALpresent_state,next_state:states;主控时序逻辑部分:任务是负责状态机运转和在外部时钟驱动下实现内部状态转换的进程。时序进程的实质是一组触发器,因此,该进程中往往也包括一些清零或置位的输入控制信号,如Reset信号。主控组合逻辑部分:任务是根据状态机外部输入的状态控制信号(包括来自外部的和状态机内部的非进程的信号)和当前的状态值current_state来确定下一状态next_state的取值内容,以及对外部或对内部其他进程输出控制信号的内容。辅助逻辑部分:辅助逻辑部分主要是用于配合状态机的主控组合逻辑和主控时序逻辑进行工作,以完善和提高系统的性能。8.2.2一般有限状态机的设计示例LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;
ENTITYtwo_process_state_machineIS(tpsmIS)
PORT(clk,reset:INSTD_LOGIC; state_inputs:INSTD_LOGIC; comb_outputs:OUTSTD_LOGIC_VECTOR(0TO1));ENDENTITYtwo_process_state_machine;
ARCHITECTURE
behv
OFtwo_process_state_machineIS
TYPEstatesIS(st0,st1,st2,st3);--定义states为枚举型数据类型,构造符号化状态机 SIGNALcurrent_state,next_state:states;BEGINREG:PROCESS(reset,clk)--时序逻辑进程
BEGIN
IFreset='1'THEN--异步复位
current_state<=st0;
ELSIF
clk='1'AND
clk'EVENT
THEN--出现时钟上升沿时进行状态转换
current_state<=next_state;
ENDIF;
ENDPROCESS;例8.1二进程一般状态机的描述。8.2.2一般有限状态机的设计示例(续1)COM:PROCESS(current_state,state_inputs)--组合逻辑进程 BEGIN
CASEcurrent_stateIS
WHENst0=>comb_outputs<="00";--系统输出及其初始化
IFstate_inputs='0'THEN--根据外部输入条件决定状态转换方向
next_state<=st0;
ELSEnext_state<=st1;
ENDIF;
WHENst1=>comb_outputs<="01";
IFstate_inputs=‘0’THEN
next_state<=st1;
ELSEnext_state<=st2;
ENDIF;
WHENst2=>comb_outputs<="10";
IFstate_inputs=‘0’THEN
next_state<=st2;
ELSEnext_state<=st3;
ENDIF;
WHENst3=>comb_outputs<="11";
IFstate_inputs=‘0’THEN
next_state<=st3;
ELSEnext_state<=st0;
ENDIF;
ENDCASE; ENDPROCESS;ENDARCHITECTURE
behv;例8.1二进程一般状态机的描述。8.2.2一般有限状态机的设计示例(续2)例8.1二进程一般状态机的描述。例8.1的状态转换图例8.1的时序仿真图例8.1的RTL图8.3摩尔状态机设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;
ENTITYfour_state_moore_state_machineIS PORT(
Clk:INSTD_LOGIC; Input:INSTD_LOGIC; reset :INSTD_LOGIC; output:OUT STD_LOGIC_VECTOR(1DOWNTO0) );ENDENTITY;
ARCHITECTURErtlOFfour_state_moore_state_machineIS --定义枚举类型的状态机
TYPEstate_typeIS(s0,s1,s2,s3); --定义一个信号保存当前工作状态
SIGNALstate:state_type;
从状态机的信号输出方式上看,可以将状态机分为摩尔型(Moore)和米立型(Mealy)状态机。摩尔型有限状态机输出只与当前状态有关,而与输入信号的当前值无关,是严格的现态函数。例8.2四状态摩尔型有限状态机的描述。8.3摩尔状态机设计(续1)BEGIN
PROCESS(clk,reset)
--状态转换的时序进程
BEGIN
IFreset='1'THEN state<=s0;
ELSIF(clk'EVENTandclk='1')THEN
CASEstateIS
WHENs0=> IFinput='1'THEN state<=s1;
ELSE state<=s0;
ENDIF;
WHENs1=> IFinput='1'THEN state<=s2;
ELSE state<=s1;
ENDIF;
WHENs2=> IFinput='1'THEN state<=s3;
ELSE state<=s2;
ENDIF;
WHENs3=> IFinput='1'THEN state<=s0;
ELSE state<=s3;
ENDIF;
ENDCASE;
ENDIF;
ENDPROCESS;
PROCESS(state)
--输出由当前状态唯一决定的组合逻辑进程
BEGIN
CASEstateIS
WHENs0=> output<="00";
WHENs1=> output<="01";
WHENs2=> output<="10";
WHENs3=> output<="11";
ENDCASE;
ENDPROCESS;END
rtl;例8.2四状态摩尔型有限状态机的描述。8.3摩尔状态机设计(续2)例8.2四状态摩尔型有限状态机的描述。例8.2的时序仿真图8.4米立状态机设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;
ENTITYfour_state_mealy_state_machineIS
PORT (
clk :INSTD_LOGIC; input :INSTD_LOGIC; reset :INSTD_LOGIC; output :OUTSTD_LOGIC_VECTOR(1DOWNTO0) );ENDENTITY;
ARCHITECTURE
rtl
OFfour_state_mealy_state_machineIS --定义枚举类型的状态机
TYPEstate_typeIS(s0,s1,s2,s3); --定义一个信号保存当前工作状态
SIGNALstate:state_type;
米立状态机的输出是现态和所有输入的函数,输出随输入变化而随时发生变化。因此,从时序的角度上看,米立状态机属于异步输出的状态机,输出不依赖于系统时钟,也不存在摩尔状态机中输出滞后一个时钟周期来反映输入变化的问题。例8.3四状态米立状态机的描述。8.4米立状态机设计(续1)BEGINREG:PROCESS(clk,reset)
BEGIN
IFreset=‘1’THEN
state<=s0;--高电平有效的系统异步复位
ELSIF(rising_edge(clk))THEN
CASEstateIS
--依据当前状态和输入信号同步决定下一个状态
WHENs0=> IFinput='0'THEN state<=s0;
ELSE state<=s1;
ENDIF;
WHENs1=> IFinput='0'THEN state<=s1;
ELSE state<=s2;
ENDIF;
WHENs2=> IFinput='0'THEN state<=s2;
ELSE state<=s3;
ENDIF;
WHENs3=> IFinput='0'THEN state<=s3;
ELSE state<=s0;
ENDIF;
ENDCASE;
ENDIF;
ENDPROCESS;例8.3四状态米立状态机的描述。8.4米立状态机设计(续2)COM:PROCESS(state,input)
--依据当前状态和输入信号决定输出信号,与时钟无关
BEGIN
CASEstateIS
WHENs0=> IFinput='0'THEN output<="00";
ELSE output<="01";
ENDIF;
WHENs1=> IFinput='0'THEN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产线的设备检修与生产效率提升
- 现代办公环境下的会议组织策略
- 环保理念在艺术空间设计中的应用
- 国庆节爱国实践活动方案
- 9 古诗三首《秋夜将晓出篱门迎凉有感》(说课稿)-2024-2025学年统编版语文五年级下册
- 2024年五年级语文下册 第六单元 15 自相矛盾说课稿 新人教版
- 6 我们神圣的国土第一课时 (说课稿)- 2024-2025学年统编版道德与法治五年级上册001
- Unit 3 After School Activities Let's Check(说课稿)-2023-2024学年人教新起点版英语三年级下册
- 2024-2025学年高中物理 第六章 万有引力与航天 2 太阳与行星间的引力(1)说课稿 新人教版必修2
- Unit5 Clothes (第六课时)(说课稿)-2024-2025学年人教新起点版英语三年级上册001
- 物流营销(第四版) 课件 第一章 物流营销概述
- 蓝印花布鉴赏课件
- 血液灌流流程及注意事项详细图解
- 5A+Chapter+2+Turning+over+a+new+leaf 英语精讲课件
- 相交线教学课件
- 贝克曼梁测定路基路面回弹弯沉
- 机电安装施工质量标准化实施图册
- ge680ct用户学习aw4.6软件手册autobone xpress指南中文
- 2023年高一年级必修二语文背诵篇目
- 竞聘岗位演讲评分表
- 2022届高考地理一轮复习课件区域地理欧洲西部
评论
0/150
提交评论