状态机设计ppt课件.ppt

状态机设计ppt课件.ppt

ID:59032398

大小:778.00 KB

页数:44页

时间:2020-09-26

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

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

1、以Moore型状态机为例设计一个ADC0809的A/D采样控制器,说明采样控制状态机的设计方法。图8-5和图8-6分别是0809的引脚图、A/D转换时序和采样控制状态图。8.2.1多进程有限状态机状态st:完成0809的初始化;状态st2:完成0809的启动;状态st2:对0809工作状态信号EOC进行测试,如果为低电平,表示转换没有结束,直到EOC变成高电平后转换才结束,在下一时钟脉冲到来时转向状态st3。状态st3:由状态机向0809发出转换好的8位数据输出允许命令。状态st4:由状态机向FPGA中的锁存器发出锁存信号,将0809输出的数据进行锁存。图8

2、-5ADC0809工作时序图8-6控制ADC0809采样状态图10809采样控制器的程序结构用图8-7框图描述。程序含三个进程。REG进程是时序进程,它在CLK的驱动下,将next_state中的内容赋给current_state,并由此信号将状态变量传输给组合进程COM。组合进程COM有两个主要功能:①状态译码器功能,即根据从current_state信号中获得的状态变量,以及来自0809的状态线信号EOC,决定下一状态的转移方向,即确定次态的状态变量;②采样控制功能,即根据current_state中的状态变量确定对0809的控制信号线ALE、START

3、、OE等输出相应的控制信号,当采样结束后还要通过LOCK向锁存器件进程LATCH1发出锁存信号,由0809的D[7..0]数据输出口输出的8位转换数据锁存起来。2PROCESSREG时序进程PROCESSCOM组合进程PROCESSLATCH锁存器current_statenext_stateLOCK状态机FSMFPGA/CPLDCLK状态机工作时钟ALESTARTOEADDAEOCD[7..0]ADC0809Q[7..0]模拟信号输入采样数据输出CLKA/D工作时钟CLK=750KHz图8-7采样状态机结构框图3例8-2描述的状态机属于Moore机,由二个

4、主控进程构成,外加一个辅助进程,即锁存器进程LATCH1,层次清晰,各进程分工明确。在一个完整的采样周期中,状态机中最先被启动的是以CLK为敏感信号的时序进程,接着组合进程COM被启动,因为它们以信号current_state为敏感信号。最后被启动的是锁存器进程,它是在状态机进入状态st4后才被启动的,即此时LOCK产生了一个上升沿信号,从而启动进程LATCH1,将0809在本采样周期输出的8位数据锁存到寄存器中,以便外部电路能从Q端读到稳定正确的数据。也可以另外再做一个控制电路(可以是另一个状态机),将转换好的数据直接存入RAM或FIFO中而不是简单的锁存

5、器中。4【例8-2】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYADCINTISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);A/D转换后数据CLK,EOC:INSTD_LOGIC;--状态机时钟CLK,A/D转换状态信号ADDA,LOCK0:OUTSTD_LOGIC;--通道控制信号ADDA,内部锁存信号LOCKALE,START,OE:OUTSTD_LOGIC;--通道地址锁存,转换开始控制信号Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--锁存数据输出ENDA

6、DCINT;ARCHITECTUREbehavOFADCINTISTYPEstatesIS(st0,st1,st2,st3,st4);--定义各状态子类型SIGNALcurrent_state,next_state:states:=st0;SIGNALREGL:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALLOCK:STD_LOGIC;--转换后数据输出锁存时钟信号BEGINADDA<=‘1’;--当ADDA<=‘0’,模拟信号通道0;<=‘1’,模拟信号通道1;Q<=REGL;LOCK0<=LOCK;REG:PROCESS(CLK)--

7、时序进程BEGINIF(CLK'EVENTANDCLK='1')THENcurrent_state<=next_state;ENDIF;ENDPROCESSREG;--由信号current_state将当前状态值带出此进程转下页5COM:PROCESS(current_state,STATES)--组合进程,规定各状态转换方式BEGINCASEcurrent_stateISWHENst0=>ALE<=‘0’;START<=‘0’;LOCK<=‘0’;OE<=‘0’;next_state<=st1;--ADC0809初始化WHENst1=>ALE<=‘1’;S

8、TART<=‘1’;LOCK<=‘0’;OE<=‘0

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

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

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