欢迎来到天天文库
浏览记录
ID:58700295
大小:478.00 KB
页数:69页
时间:2020-10-04
《第5章 VHDL 状态机ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、EDA技术与VHDL第5章VHDL状态机KX康芯科技5.1状态机设计相关语句5.1.1类型定义语句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;TYPEBOOLEANIS(FALSE,TRUE);5
2、.1状态机设计相关语句5.1.1类型定义语句TYPEmy_logicIS('1','Z','U','0');SIGNALs1:my_logic;s1<='Z';SUBTYPE子类型名IS基本数据类型RANGE约束范围;SUBTYPEdigitsISINTEGERRANGE0to9;5.1状态机设计相关语句5.1.2状态机的优势1.状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点;2.由于状态机的结构相对简单,设计方案相对固定;3、状态机容易构成性能良好的同步时序逻辑模块;4、与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样、程
3、序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的好处;5、在高速运算和控制方面,状态机更有其巨大的优势。6、高可靠性。5.1状态机设计相关语句5.1.3状态机结构1.说明部分ARCHITECTURE...ISTYPEFSM_STIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:FSM_ST;...5.1状态机设计相关语句5.1.3状态机结构2.主控时序进程图5-1一般状态机结构框图5.1状态机设计相关语句5.1.3状态机结构3.主控组合进程4.辅助进程【例5-1】LIBRA
4、RYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYs_machineISPORT(clk,reset:INSTD_LOGIC;state_inputs:INSTD_LOGIC_VECTOR(0TO1);comb_outputs:OUTINTEGERRANGE0TO15);ENDs_machine;ARCHITECTUREbehvOFs_machineISTYPEFSM_STIS(s0,s1,s2,s3);--数据类型定义,状态符号化SIGNALcurrent_state,next_state:FSM_ST;-
5、-将现态和次态定义为新的数据类型BEGINREG:PROCESS(reset,clk)--主控时序进程BEGINIFreset='1'THENcurrent_state<=s0;--检测异步复位信号ELSIFclk='1'ANDclk'EVENTTHENcurrent_state<=next_state;ENDIF;ENDPROCESS;COM:PROCESS(current_state,state_Inputs)--主控组合进程(接下页)BEGINCASEcurrent_stateISWHENs0=>comb_outputs<=5;IF
6、state_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_inp
7、uts="11"THENnext_state<=s3;ELSEnext_state<=s0;ENDIF;ENDcase;ENDPROCESS;ENDbehv;5.1状态机设计相关语句5.1.3状态机结构图5-2例5-1状态机的工作时序5.2Moore状态机5.2.1多进程状态机图5-3ADC0809工作时序5.2Moore状态机5.2.1多进程状态机图5-4控制ADC0809采样状态图5.2Moore状态机5.2.1多进程状态机图5-5采样状态机结构框图【例5-2】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.AL
8、L;ENTITYADCINTISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);--来自0809转换好的8位数据CLK:INSTD_LOGIC;--状态机工作时钟EOC
此文档下载收益归作者所有