- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 VHDL 状态机-2
EDA技术与VHDL 第5章 VHDL状态机 5.1 状态机设计相关语句 5.1 状态机设计相关语句 5.1 状态机设计相关语句 5.1 状态机设计相关语句 5.1 状态机设计相关语句 5.1 状态机设计相关语句 5.1 状态机设计相关语句 5.1 状态机设计相关语句 5.1 状态机设计相关语句 5.2 Moore状态机 5.2 Moore状态机 5.2 Moore状态机 5.2 Moore状态机 5.2 Moore状态机 5.2 Moore状态机 5.2 Moore状态机 5.2 Moore状态机 5.2 Moore状态机 5.3 Mealy状态机 5.3 Mealy状态机 5.3 Mealy状态机 5.3 Mealy状态机 * * 有限状态机(FSM,Finite State Machine ) 有限状态机(Finite State Machine)又称有限状态自动机或简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。 模型是从概念的视角描述系统的功能,它是功能对象及其组成规则的集合;结构是从抽象的视角描述系统的实现,它是系统部件及其连接的集合。 状态机由一组状态、一个初始状态、输入和根据输入及现有状态转换为下一个状态的转换函数组成。 FSM有两种类型: 基于状态的FSM即Moore(摩尔型)FSM,状态机的输出仅是当前状态的函数,且仅在时钟跃变时发生,通常与时钟同步。 基于输入的FSM即Mealy(米勒型)FSM,状态机的输出是当前状态和当前输入的函数,不与时钟同步。 5.1.1 类型定义语句 TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 ;或 TYPE 数据类型名 IS 数据类型定义 ; TYPE st1 IS ARRAY ( 0 TO 15 ) OF STD_LOGIC ; TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ; TYPE m_state IS ( st0,st1,st2,st3,st4,st5 ) ; SIGNAL present_state,next_state : m_state ; TYPE BOOLEAN IS (FALSE,TRUE) ; 5.1.1 类型定义语句 TYPE my_logic IS ( 1 ,Z ,U ,0 ) ; SIGNAL s1 : my_logic ; s1 = Z ; SUBTYPE 子类型名 IS 基本数据类型 RANGE 约束范围; SUBTYPE digits IS INTEGER RANGE 0 to 9 ; 5.1.2 状态机的优势 状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点; 由于状态机的结构相对简单,设计方案相对固定; 状态机容易构成性能良好的同步时序逻辑模块; 与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样、程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的好处; 在高速运算和控制方面,状态机更有其巨大的优势。 高可靠性。 5.1.3 状态机结构 1. 说明部分 ARCHITECTURE ...IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST; ... 包含说明部分、主控时序进程、主控组合进程 、辅助进程等。 主要使用TYPE定义新的数据类型(枚举类型)。 5.1.3 状态机结构 2. 主控时序进程 图5-1 一般状态机结构框图 主控时序进程是指负责状态机运转和在时钟驱动下负责状态转换的进程。 5.1.3 状态机结构 3. 主控组合进程 4. 辅助进程 可称为状态译码进程,其任务是根据外部输入的控制信号和当前的状态值确定下一状态的取向。 用于配合状态机工作的组合进程或时序进程。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY s_machine IS PORT ( clk,reset : IN STD_LOGIC; state_inputs : IN STD_LOGIC_VECTOR (0 TO 1); comb_outputs : OUT INTEGER RANGE 0 TO 15 ); END s_machine; ARCHITECTURE be
文档评论(0)