有限状态机设计课件

有限状态机设计课件

ID:33489712

大小:206.50 KB

页数:39页

时间:2018-05-25

有限状态机设计课件_第1页
有限状态机设计课件_第2页
有限状态机设计课件_第3页
有限状态机设计课件_第4页
有限状态机设计课件_第5页
资源描述:

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

1、7.1有限状态机概述第7章有限状态机设计根据有限状态机的输出与当前状态及当前输入的关系,可以将有限状态机分成Moore型和Mealy型两种:Moore型状态机的输出仅仅与状态机的当前状态有关(即为当前状态的函数),而与当前输入信号无关,且在时钟边沿到来时状态才会发生变化;Mealy型状态机的输出不单受当前状态的影响,而且还与当前的输入信号有关。ClockResetInputNextstateCurrentstateStatelogicStateregisterOutputlogicOutput1、Moore型状态机Moore型状态机在时钟信号

2、clock的有效边沿后的若干个门延时后,输出达到稳定。即使在一个时钟周期内输入信号发生变化,输出也至少可以在一个完整的时钟周期内保持稳定不变。因此,Moore型状态机的一个重要特点就是将输入和输出隔离开来。2、Mealy型状态机Mealy型状态机的输出直接受输入信号的作用,而输入信号可能在一个clock周期内发生变化,因此Mealy型状态机对输入的响应发生在当前的时钟周期,要比Moore型状态机早一个时钟周期。ClockResetInputNextstateCurrentstateStatelogicStateregisterOutputlo

3、gicOutput7.2一般状态机的设计利用VHDL来设计状态机的一般步骤如下:(1) 利用自定义枚举类型定义状态空间:TYPEstate_spaceIS(idle,decision,read,write);SIGNALCurrent_State,next_state:state_space;状态名最好具有明显的解释性意义一、状态机建立的一般步骤该进程的任务是根据外部输入的信号和当前状态的取值确定下一状态的取值;在该进程中定义状态的转移,其方法是:在进程中插入CASE_WHEN语句,将所有的状态都表示为CASE_WHEN结构中的一条CASE语

4、句,而状态的转移条件则可以通过IF_ELSE_THEN语句来实现。由于次态是现态及输入信号的函数,所以都需作为进程的敏感信号。(2)建立状态机主控组合进程(3)建立状态机主控时序进程状态机是同步时序电路,必须包含一个对工作时钟信号敏感的进程,作为状态机的“驱动泵”。当时钟发生有效跳变时,状态机的状态才发生变化。状态机的主控时序进程主要负责将主控时序进程得到的下一个状态锁存到状态寄存器中。如:process(clk)beginifclk'eventandclk='1'thencurrent_state<=next_state;endif;end

5、process;状态机的复位或置位功能也需在该进程中实现。二、状态机设计示例ADC0809外部引脚及功能示意图1、ADC0809采用控制电路设计ADC0809工作时序图:ST0ST1ST2ST3ST4ST5ST6ST7ST0ST1ST2ST3ST6ST7ST4ST5根据ADC0809工作时序图绘出其采样控制电路的状态转换图,如下图所示:ST0:采用控制信号初始化ST1:地址锁存信号有效(ALE=‘1’)ST2:启动采样信号(START=‘1’)ST3:转换等待状态ST4:转换即将结束状态(EOC=‘0’)ST5:转换结束状态(EOC=‘1’)

6、ST6:开启输出使能(OE=‘1’)ST7:读出转换结果ADC0809采样控制电路的VHDL程序:beginadda<='1';process(current_state,eoc)--主控组合进程begincasecurrent_stateiswhenst0=>qq<=0;ale<='0';start<='0';oe<='0';lock<='0';next_state<=st1;whenst1=>qq<=1;ale<='1';start<='0';oe<='0';lock<='0';next_state<=st2;whenst2=>qq<=2

7、;ale<='1';start<='1';oe<='0';lock<='0';next_state<=st3;whenst3=>qq<=3;ale<='1';start<='1';oe<='0';lock<='0';ifeoc='0'thennext_state<=st4;elsenext_state<=st3;endif;libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityadc0809isport(d:instd_logic_vector(

8、7downto0);clk,eoc:instd_logic;oe,adda:outstd_logic;ale,start:outstd_logic;q:outstd

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

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

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