有限状态机(FSM)的设计

有限状态机(FSM)的设计

ID:46278150

大小:834.50 KB

页数:23页

时间:2019-11-22

有限状态机(FSM)的设计_第1页
有限状态机(FSM)的设计_第2页
有限状态机(FSM)的设计_第3页
有限状态机(FSM)的设计_第4页
有限状态机(FSM)的设计_第5页
资源描述:

《有限状态机(FSM)的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章有限状态机FSM(简称状态机)的VHDL设计一、有限状态机的基本概念1、有限状态机的基本结构和功能有限状态机(FiniteStateMachine,简称FSM)是一种十分重要的时序逻辑电路,由状态寄存器和组合逻辑电路组成,是数字逻辑电路以及数字系统的重要组成部分,尤其应用于数字系统核心部件(控制单元)的设计,以实现高效率高可靠性的逻辑控制。有限状态机可实现以下两种基本操作:(1)状态机内部状态转换。由状态译码器根据当前状态和输入信号确定。(2)产生输出信号序列。由输出译码器根据状态机当前状态和输入信号确定。输出组合逻辑电路状态译码器状态寄存器输出译码器反馈

2、状态输出状态机结构示意图次态组合逻辑电路输入2、有限状态机的分类在实际的应用中,根据有限状态机是否使用输入信号,经常将其分为Moore型有限状态机和Mealy型有限状态机两种类型。1、Moore型有限状态机其输出信号仅与当前状态有关,即可以把Moore型有限状态的输出看成是当前状态的函数。2、Mealy型有限状态机其输出信号不仅与当前状态有关,而且还与所有的输入信号有关,即可以把Mealy型有限状态机的输出看成是当前状态和所有输入信号的函数。次态组合逻辑电路(NS)当前状态寄存器(CS)输出组合逻辑电路(OL)输入输出时钟Moore状态机结构示意图次态组合逻辑电

3、路(NS)当前状态寄存器(CS)输出组合逻辑电路(OL)输入输出时钟Mealy状态机结构示意图二、一般有限状态机的设计用VHDL语言描述状态机的常用方法有两种:三进程(PROCESS)语句描述分别对次态组合逻辑电路、输出组合逻辑电路和状态寄存器进行描述。两进程(PROCESS)语句描述将两个组合逻辑电路用一个进程语句语句描述,用另一个进程语句描述状态寄存器。当然也可以用单进程描述。1、一般有限状态机的VHDL组成:主要使用TYPE语句定义新的数据类型,如:TYPEstatesIS(st0,st1,st2,st3,st4,st5);SIGNALpresent_st

4、ate,next_state:states;:负责状态机运转和在外部时钟驱动下实现内部状态转换的进程。时序进程的实质是一组触发器,因此,该进程中往往也包括一些清零或置位的输入控制信号,如Reset信号。:根据状态机外部输入的状态控制信号(包括来自外部的和状态机内部的非进程的信号)和当前的状态值current_state来确定下一状态next_state的取值内容,以及对外部或对内部其他进程输出控制信号的内容。:辅助逻辑部分主要是用于配合状态机的主控组合逻辑和主控时序逻辑进行工作,以完善和提高系统的性能。说明部分主控时序逻辑部分主控组合逻辑部分辅助逻辑部分LIBR

5、ARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYtwo_process_state_machineISPORT(clk,reset:INSTD_LOGIC;state_inputs:INSTD_LOGIC;comb_outputs:OUTSTD_LOGIC_VECTOR(0TO1));ENDtwo_process_state_machine;ARCHITECTUREbehvOFtwo_process_state_machineISTYPEstatesIS(st0,st1,st2,st3);--定义states为枚举型数据类型,构

6、造符号化状态机SIGNALcurrent_state,next_state:states;BEGINREG:PROCESS(reset,clk)--时序逻辑进程BEGINIFreset='1'THEN--异步复位current_state<=st0;ELSIFclk='1'ANDclk'EVENTTHEN--出现时钟上升沿时进行状态转换current_state<=next_state;ENDIF;ENDPROCESS;2、一般有限状态机的设计实例例3.1二进程一般状态机的描述。COM:PROCESS(current_state,state_inputs)--组

7、合逻辑进程BEGINCASEcurrent_stateISWHENst0=>comb_outputs<="00";--系统输出及其初始化IFstate_inputs='0'THEN--根据外部输入条件决定状态转换方向next_state<=st0;ELSEnext_state<=st1;ENDIF;WHENst1=>comb_outputs<="01";IFstate_inputs=‘0’THENnext_state<=st1;ELSEnext_state<=st2;ENDIF;WHENst2=>comb_outputs<="10";IFstate_inputs

8、=‘0’THENnext

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。