资源描述:
《第七章状态机设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、EDA技术实用教程第7章VHDL有限状态机设计有限状态机finitestatemachine(FSM)状态图statediagram状态表statetable7.1.1为什么要使用状态机7.1VHDL状态机的一般形式(1)高效的顺序控制模型。(2)容易利用现成的EDA优化工具。(3)性能稳定。(4)设计实现效率高。(5)高速性能。(6)高可靠性能。7.1.2一般有限状态机的设计7.1一般有限状态机的设计1.说明部分2.主控时序进程ARCHITECTURE...ISTYPEFSM_STIS(s0,s1,s2,s3);SIGNALcurre
2、nt_state,next_state:FSM_ST;...负责状态机运转和在时钟驱动下负责状态转换的进程3.主控组合进程7.1.2一般有限状态机的设计主控组合进程的任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它非主控的组合或时序进程的信号),或(和)当前状态的状态值确定下一状态(next_state)的取向,即next_state的取值内容,以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容。4.辅助进程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;ARCHITECTUREbehvOFs_machineISTYPEFSM_STIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:FSM_S
4、T;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;IFstate_inputs="00"THENnext_state<=s0;ELSEnext
5、_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_state<=s3;ELSEnext_state<=
6、s0;ENDIF;ENDcase;ENDPROCESS;ENDbehv;图7-2例7-1状态机的工作时序图7.1.3一般有限状态机的设计7.1VHDL状态机的一般形式7.1.3状态机设计初始控制与表述(1)打开“状态机萃取”开关(2)状态图观察7.2Moore型有限状态机的设计7.2.1ADC采样控制设计及多进程结构状态机7.2Moore型有限状态机的设计7.2.1ADC采样控制设计及多进程结构状态机7.2Moore型有限状态机的设计7.2.1ADC采样控制设计及多进程结构状态机【例7-2】LIBRARYIEEE;USEIEEE.STD
7、_LOGIC_1164.ALL;ENTITYADCISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);CLK,EOC,rst:INSTD_LOGIC;ALE,START,OE,LOCK0:OUTSTD_LOGIC;ADDA:OUTSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDADC;ARCHITECTUREbehavOFADCISTYPEstatesIS(st0,st1,st2,st3,st4);SIGNALcurrent_state,next_state:state
8、s:=st0;SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALLOCK:STD_LOGIC;7.2.1ADC采样控制设计及多进程结构状态机BEGINADDA<=‘0’