欢迎来到天天文库
浏览记录
ID:16216413
大小:1.80 MB
页数:53页
时间:2018-08-08
《状态机设计(2)ppt培训课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章有限状态机设计电信学院张沛泓教学目的及要求本章重点介绍用VHDL设计不同类型有限状态机的方法,同时介绍EDA工具和设计实现中许多必须重点关注的问题,比如综合器优化、毛刺信号的克服、控制速度及状态编码方式等问题。通过对本章的学习,要求大家掌握Moore型和Mealy型状态机的设计方法。第七章有限状态机设计一般有限状态机设计Moore型有限状态机设计Mealy型有限状态机设计状态编码非法状态处理12345第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句TYPE语句的用法如下:TYPE数据
2、类型名IS数据类型定义OF基本数据类型;TYPE数据类型名IS数据类型定义;举例:TYPEst1ISARRAY(0TO15)OFSTD_LOGIC;TYPEweekIS(sun,mon,tue,wed,thu,fri,sat);第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句TYPEm_stateIS(st0,st1,st2,st3,st4,st5);SIGNALpresent_state,next_state:m_state;TYPEBOOLEANIS(FALSE,TRUE);TYPEm
3、y_logicIS('1','Z','U','0');SIGNALs1:my_logic;s1<='Z';SUBTYPE子类型名IS基本数据类型RANGE约束范围;SUBTYPEdigitsISINTEGERRANGE0to9;第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句7.1.2为什么要使用状态机状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点状态机可以定义符号化枚举类型的状态状态机容易构成性能良好的同步时序逻辑模块状态机的VHDL表述丰富多样、程序层次分明,易读易懂在高速运算和控
4、制方面,状态机更有其巨大的优势高可靠性第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句7.1.2为什么要使用状态机7.1.3一般有限状态机的设计1.说明部分2.主控时序进程3.主控组合进程4.辅助进程第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句7.1.2为什么要使用状态机7.1.3一般有限状态机的设计1.说明部分ARCHITECTURE...ISTYPEFSM_STIS(s0,s1,s2,s3);SIGNALcurrent_state,next_stat
5、e:FSM_ST;...第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句7.1.2为什么要使用状态机7.1.3一般有限状态机的设计1.说明部分2.主控时序进程第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句7.1.2为什么要使用状态机7.1.3一般有限状态机的设计1.说明部分2.主控时序进程3.主控组合进程第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句7.1.2为什么要使用状态机7.1.3一般有限状态机的设计1.说明部分2.
6、主控时序进程3.主控组合进程4.辅助进程第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句7.1.2为什么要使用状态机7.1.3一般有限状态机的设计【例7-1】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYs_machineISPORT(clk,reset:INSTD_LOGIC;state_inputs:INSTD_LOGIC_VECTOR(0TO1);comb_outputs:OUTINTEGERRANGE0TO15);ENDs_machine
7、;ARCHITECTUREbehvOFs_machineISTYPEFSM_STIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:FSM_ST;BEGINREG:PROCESS(reset,clk)第七章有限状态机设计7.1一般有限状态机设计7.1.1用户自定义数据类型定义语句7.1.2为什么要使用状态机7.1.3一般有限状态机的设计BEGINIFreset='1'THENcurrent_state<=s0ELSIFclk='1'ANDclk'EVENTTHENcurrent_
8、state<=next_state;ENDIF;ENDPROCESS;COM:PROCESS(current_state,state_Inputs)BEGINCASEcurrent_stateISWHENs0=>comb_outputs<=5;IFstate_inputs="00"THENnext_state<=s0
此文档下载收益归作者所有