第7章 VHDL有限状态机设计ppt课件.ppt

第7章 VHDL有限状态机设计ppt课件.ppt

ID:59016904

大小:986.00 KB

页数:69页

时间:2020-09-26

第7章 VHDL有限状态机设计ppt课件.ppt_第1页
第7章 VHDL有限状态机设计ppt课件.ppt_第2页
第7章 VHDL有限状态机设计ppt课件.ppt_第3页
第7章 VHDL有限状态机设计ppt课件.ppt_第4页
第7章 VHDL有限状态机设计ppt课件.ppt_第5页
资源描述:

《第7章 VHDL有限状态机设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、EDA技术实用教程第7章VHDL有限状态机设计有限状态机及其设计技术,时使用数字系统设计中的重要组成部分,是实现高效、高可靠性逻辑控制的重要途径。面对先进的EDA技术,有限状态机在具体的设计技术和实现方法上又有了许多新的内容。本章重点介绍用VHDL设计不同类型有限状态机的方法,同时考虑设计中许多重点关注的问题。内容提要特点:用VHDL可以设计出不同表达方式和不同功能的状态机,然而它们都有相对固定的语句和表达方式。为什么要使用状态机有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。状态机的结构模式相对简单。状态机容易构成性能良好的同步时序逻辑模块。在高速运算和控制方面,状态机更有其

2、巨大的优势。就可靠性而言,状态机的优势也是十分明显的。7.1.一般有限状态机的设计用户自定义数据类型定义语句TYPE语句用法如下:TYPE数据类型名IS数据类型定义OF基本数据类型;或TYPE数据类型名IS数据类型定义;例如:以下列出了几种不同的定义方式:TYPEst1ISARRAY(0TO15)OFSTD_LOGIC;TYPEweekIS(sun,mon,tue,wed,thu,fri,sat);TYPEm_stateIS(st0,st1,st2,st3,st4,st5);SIGNALpresent_state,next_state:m_state;布尔数据类型的定义语句是:TYPE

3、BOOLEANIS(FALSE,TRUE);TYPEmy_logicIS('1','Z','U','0');SIGNALs1:my_logic;s1<='Z';子类型SUBTYPE的语句格式如下:SUBTYPE子类型名IS基本数据类型RANGE约束范围;例如:SUBTYPEdigitsISINTEGERRANGE0to9;一般有限状态机的设计1.说明部分说明部分中使用TYPE语句定义新的数据类型,该类型为枚举型,其元素通常都用状态机的状态名来定义。状态变量应定义成信号,便于信息的传递;并将状态变量的数据类型定义为含有既定状态元素的行定义的数据类型。ARCHITECTURE...ISTY

4、PEFSM_STIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:FSM_ST;...2.主控时序进程主控时序进程负责状态机的运转和在时钟驱动下负责状态转换的进程。状态机时随外部时钟信号,以同步时序方式工作的。因此,状态机中必须包含一个对工作时钟信号敏感的进程,作为状态机的“驱动泵”。当时钟发生有效跳变时,状态机的状态才发生变化。一般地,主控时序进程可以不负责下一状态的具体取值。REG:PROCESS(reset,clk)—主控时序进程BEGINIFreset='1'THENcurrent_state<=s0;ELSIFclk='1'ANDc

5、lk'EVENTTHENcurrent_state<=next_state;ENDIF;ENDPROCESS;3.主控组合进程主控组合进程的任务:根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它非主控的组合或时序进程的信号),或(和)当前状态的状态值,确定下一状态(next_state)的取向,即next_state的取值内容,以及确定对外输出或对内部其它组合或时序进程,输出控制信号的内容。COM:PROCESS(current_state,state_inputs)–主控组合进程BEGINCASEcurrent_stateISWHENs0=>comb_output

6、s<=5;IFstate_inputs="00"THENnext_state<=s0;ELSEnext_state<=s1;ENDIF;WHENs1=>comb_outputs<=8;IFstate_inputs="00"THENnext_state<=s1;ELSEnext_state<=s2;ENDIF;WHENs2=>comb_outputs<=12;IFstate_inputs="11"THENnext_state<=s0;ELSEnext_state<=s3;ENDIF;WHENs3=>comb_outputs<=14;IFstate_inputs="11"THENnext_

7、state<=s3;ELSEnext_state<=s0;ENDIF;ENDcase;ENDPROCESS;ENDbehv;主控组合进程完成的功能:状态译码1、根据信号current_state中的状态值,进入相应的状态;2、并在此状态中向外部发出控制信号comb_outputs;3、确定下一状态next_state的走向。用于配合状态及工作的组合进程或时序进程。4.辅助进程【例7-1】LIBRARYIEEE;USEIEEE.STD_LOGIC

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

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

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