中国高校课件下载中心 》 教学资源 》 大学文库

《EDA技术》课程教学资源(课件讲稿)第5章 VHDL状态机

文档信息
资源类别:文库
文档格式:PDF
文档页数:43
文件大小:914.77KB
团购合买:点击进入团购
内容简介
《EDA技术》课程教学资源(课件讲稿)第5章 VHDL状态机
刷新页面文档预览

技术EDA第5章VHDL状态机

EDA 技 术 第5章 VHDL状态机

1、有限状态机及其设计技术,是使用数学系统设计中的重要组成部分,是实现高效、高可靠性逻辑控制的重要途径。2、面对先进的EDA技术,有限状态机在具体的设计技术和实现方法上文有了许多新的内容。3、本章重点介绍用VHDL设计不同类型有限状态机的方法,同时考虑设计中许多重点关注的问题

1、有限状态机及其设计技术,是使用数字系统设计中的重 要组成部分,是实现高效、高可靠性逻辑控制的重要途径。 2、面对先进的EDA技术,有限状态机在具体的设计技术和 实现方法上又有了许多新的内容。 3、本章重点介绍用VHDL设计不同类型有限状态机的方法 ,同时考虑设计中许多重点关注的问题

特点:用VHDL可以设计出不同表达方式和不同功能的状态机,然而它们都有相对固定的语句和表达方式

特点: 用VHDL可以设计出不同表达方式 和不同功能的状态机,然而它们都有相 对固定的语句和表达方式

5.1 状态机设计相关语句5.1.1类型定义语句数据类型名数据类型定义OF基本数据类型、或ISTYPE数据类型名数据类型定义;ISTYPETYPESt1 IS ARRAY(OTO15)OFSTDLOGIC:TYPEweek Is (sun,mon,tue,wed,thu,fri,sat) ;TYPEmstate Is(sto,stl,st2,st3,st4,st5)SIGNAL present state, next state : m stateTYPEBOOLEANIS(FALSE,TRUE);

5.1 状态机设计相关语句 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状态机设计相关语句5.1.1类型定义语句TYPE my_logic IsT101SIGNAL sl:mylogics1 <= 'Z';SUBTYPE子类型名IS基本数据类型RANGE约束范围:SUBTYPEdigitsISINTEGERRANGE0to9:TYPE week IS(sun,mon,tue, wed,thu,fri,sat);

5.1 状态机设计相关语句 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 ; TYPE week IS (sun,mon,tue,wed,thu,fri,sat) ;

5.1状态机设计相关语句5.1.2状态机的优势1.状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点;2..由于状态机的结构相对简单,设计方案相对固定3、状态机容易构成性能良好的同步时序逻辑模块;4、与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样、程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的好处;5、在高速运算和控制方面,状态机更有其巨大的优势。6、高可靠性

5.1 状态机设计相关语句 5.1.2 状态机的优势 1.状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点; 2.由于状态机的结构相对简单,设计方案相对固定; 3、状态机容易构成性能良好的同步时序逻辑模块; 4、与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样、 程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植 方面也有其独到的好处; 5、在高速运算和控制方面,状态机更有其巨大的优势。 6、高可靠性

5.1状态机设计相关语句5.1.3状态机结构1.说明部分ARCHITECTURE...ISTYPEFSMSTIS(s0,s1,s2,s3);SIGNAL current_ state, next_state: FSM ST;说明部分中使用TYPE语句定义新的数据类型,该类型为枚举型,其元素通常都用状态机的状态名来定义。状态变量应定义成信号,便于信息的传递:并将状态变量的数据类型定义为含有既定状态元素的行定义的数据类型

5.1 状态机设计相关语句 5.1.3 状态机结构 1. 说明部分 说明部分中使用TYPE语句定义新的数据类型,该类 型为枚举型,其元素通常都用状态机的状态名来定义。 状态变量应定义成信号,便于信息的传递;并将状 态变量的数据类型定义为含有既定状态元素的行定义的 数据类型。 ARCHITECTURE .IS TYPE FSM_ST IS (s0,s1,s2,s3); SIGNAL current_state, next_state: FSM_ST;

5.1状态机设计相关语句5.1.3状态机结构2.主控时序进程图5-1一般状态机结构框图

5.1 状态机设计相关语句 5.1.3 状态机结构 2. 主控时序进程 comb_outputs state_inputs resetclk FSM: s_machine COM next_state current_state PROCESS REG PROCESS 图5-1 一般状态机结构框图

5.1状态机设计相关语句5.1.3状态机结构3.主控组合进程4.辅助进程

5.1 状态机设计相关语句 5.1.3 状态机结构 3. 主控组合进程 4. 辅助进程

【例5-1】LIBRARYIEEE:USEIEEE.STD LOGIC 1164.ALL;ENTITY s machineISPORTclk.reset:INSTDLOGIC:state inputs : IN STD _LOGIC_ VECTOR (0 TO 1);comb_outputs : OUT INTEGER RANGE 0 TO 15);END s machine;ARCHITECTUREbehvOFs machineISTYPEFSMSTIS(s0,SL,2,S3)SIGNAL eurrent state,nextstate:FSM STBEGINREG:PROCESS(reset.clk)一主控时序进程BEGINcurrent state<=so;--异步清零IFreset=1THENELSIFcIK-'I'ANDcIK'EVENTTHENcurrent state<-当时钟发生有效跳变时,状态机的状态才发生变化。一般ENDIF:ENDPROCESS程可以不负责下一状态的具体取值,主控时序进程负责状态机的运转和在时钟驱动下负责状态转换的进程状态机是随外部时钟信号,以同步时序方式工作的。因此,状态机中必须包含一个对工作时钟信号敏感的进程,作为状态机的“驱动泵

【例5-1】 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 behv OF s_machine IS TYPE FSM_ST IS (s0, s1, s2, s3); SIGNAL current_state, next_state: FSM_ST; BEGIN REG: PROCESS (reset,clk)—主控时序进程 BEGIN IF reset = ‘1’ THEN current_state <= s0; -异步清零 ELSIF clk='1' AND clk'EVENT THEN current_state <= next_state; END IF; END PROCESS; 主控时序进程负责状态机的运转和在时钟驱动下负责状态转换的进程 。状态机是随外部时钟信号,以同步时序方式工作的。因此,状态机中必须 包含一个对工作时钟信号敏感的进程,作为状态机的“驱动泵” 。 当时钟发生有效跳变时,状态机的状态才发生变化。一般地,主控时序进 程可以不负责下一状态的具体取值

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档