ImageVerifierCode 换一换
格式:PPT , 页数:19 ,大小:787.50KB ,
资源ID:6523108      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6523108.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(状态机编程改.ppt)为本站会员(HR专家)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

状态机编程改.ppt

1、状态机编程,FSM设计方法,分析控制器设计指标,建立系统算法模型,即状态转换图; 分析被控对象的时序,确定控制器的有限状态机的各个状态及输入、输出条件; 应用VHDL语言完成状态机的描述。,FSM分类,Moore型:输出信号仅与现态相关 Mealy型:输出信号与现态和输入相关,DFFs,Output Comb. Logic,Feedback Comb. Logic,DFFs,Output Comb. Logic,Feedback Comb. Logic,Moore,Mealy,现态,次态,输入,输出,现态,次态,输出,输入,FSM 构成,FSM用来解决一般时序逻辑电路问题,包括同步/异步时序逻

2、辑 状态寄存器 当前状态(现态)寄存器 组合逻辑电路 下一状态(次态)组合逻辑 输出组合逻辑,Moore和Mealy状态机描述的区别就在于输出逻辑进程,例子:0101序列检测码,例子:0101序列检测码,例子:0101序列检测码,vhdl语言描述FSM的建立过程,定义状态机的状态定义状态变量描述状态机的进程,定义状态机的状态,在使用状态机之前应该定义状态变量的枚举类型,可以定义在状态机描述的源文件中,或者是专门的程序包中。 例子:TYPE state IS (state1,state2);,定义状态变量,定义两个状态机变量:当前状态和次态,其中当前状态描述的是一组寄存器,而下一状态描述的是组合

3、逻辑。 例:signal current_state:state;signal next_state:state;,描述状态机的进程,状态机的描述方式:三进程、二进程、单进程一般采用三个进程来描述状态机描述状态机寄存器的时序进程描述次态产生逻辑的组合逻辑进程描述输出组合逻辑进程,易出错, 可读性差, 不利于优化,状态机寄存器的时序进程,process(reset,clk)beginif reset=1 thencurrent_state=初始状态;elsif rising_edge(clk) thencurrent_state=next_state;end if; end process;,一

4、定要有复位信号,否则状态机处于随机状态,无法开始正常工作,FSM的复位,同步复位 双进程状态机 在第1个进程的开始处用IF THEN 语句判断RESET,在其后的ELSE语句里用CASE语句定义状态转换 或者在第2个进程里定义同步复位 单进程状态机 进程里定义同步复位 异步复位 双进程状态机 在第2个进程里定义异步复位 单进程状态机 进程里定义异步复位,CASE_WHENIF THENELSEPROCESS 1,CLKEVENT AND CLK=1PROCESS 2,次态,现态,输入,输出,次态转移逻辑进程,process(current_state,其他输入信号)beginnext_stat

5、e . next_state . next_state=某个状态; end case; end process;,次态转移逻辑进程,在case语句之前,给nenxt_state赋一个缺省值: next_state=current_state;其意义在于:当case语句中决定下个状态的逻辑比较复杂时,就不用给所有的情况赋值,不关心的情况就保持原状态。,输出逻辑进程,process(current_state,其他输入信号)beginoutput output output=某个值; .end case; end process;,Mealy机就需要其他输入信号,这些信号和当前状态共同决定输出信号

6、; Moore机则不需要,其输出只与当前状态有关。,Stmch1.vhd,library ieee; use ieee.std_logic_1164.all; entity stmch1 isport(clk, in1, rst: in std_logic; out1: out std_logic); end stmch1; architecture behave of stmch1 istype state_values is (sx, s0, s1);signal state, next_state: state_values; beginprocess (clk, rst)beginif

7、 rst = 1 thenstate = s0;elsif rising_edge(clk) thenstate = next_state;end if;end process;,process (state, in1) begin - set defaults for output and state out1 if in1 = 0 then out1 if in1 = 0 then out1 next_state = sx; end case; end process; end behave;,Comb Logic,DFFs,in1 state clk rst,out1 next_stat

8、e,s0/0,s1/1,input=0,Reset=1,input=0,input=1,input=1,statmach.vhd,Library IEEE ; use IEEE.std_logic_1164.all ;ENTITY statmach ISPORT( clk : IN BIT;input : IN BIT;reset : IN BIT;output : OUT BIT); END statmach;,ARCHITECTURE a OF statmach ISTYPE STATE_TYPE IS (s0, s1);SIGNAL state : STATE_TYPE; BEGINPROCESS (clk,reset)BEGINIF reset = 1 THENstate state IF input = 1 THENstate = s0;ELSEstate = s1;END IF;END CASE;END IF;END PROCESS;output = 1 WHEN state = s1 ELSE 0; END a;,s0/0,s1/1,input=1,input=0,Reset=1,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报