版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计一、状态机概述一、状态机概述1、状态机的基本结构和功能、状态机的基本结构和功能(1)基本结构)基本结构状态状态译码器译码器状态状态寄存器寄存器输出输出译码器译码器输入输入输出输出状态状态第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计(2)基本操作)基本操作 状态机的内部状态转换:状态机需要经历一系列的状态机的内部状态转换:状态机需要经历一系列的状态转换,下一状态由状态译码器根据当前状态和输入状态转换,下一状态由状态译码器根据当前状态和输入信号决定。信号决定。 产生输出信号序列:状态机的输出信号
2、由输出译码产生输出信号序列:状态机的输出信号由输出译码器根据当前状态和输入信号来决定。器根据当前状态和输入信号来决定。第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计(3)状态机的分类)状态机的分类 状态机在产生输出的过程中,根据是否使用输入信号状态机在产生输出的过程中,根据是否使用输入信号可以将状态机分为可以将状态机分为Moore型状态机和型状态机和Mealy型状态机。型状态机。u Moore型状态机的输出信号仅与当前状态有关,而型状态机的输出信号仅与当前状态有关,而与状态机的输入信号无关;与状态机的输入信号无关;u 而而Mealy型状态机的输出信号不仅与状态机的当
3、前型状态机的输出信号不仅与状态机的当前状态有关,而且还与状态机的输入信号有关。状态有关,而且还与状态机的输入信号有关。第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计(4)状态机的功能)状态机的功能p CPU在实现控制功能的过程中,一般需要很多的操作在实现控制功能的过程中,一般需要很多的操作指令步和硬件操作单元;指令步和硬件操作单元;p 而在状态机中,控制状态存储在多个触发器中,表示而在状态机中,控制状态存储在多个触发器中,表示状态转移和控制功能的代码存储在门级网络中。状态转移和控制功能的代码存储在门级网络中。p 状态机逻辑十分适用于可编程逻辑器件。通过恰当的状态机逻
4、辑十分适用于可编程逻辑器件。通过恰当的VHDL描述和描述和EDA工具的综合,一般可以生成性能优良的工具的综合,一般可以生成性能优良的状态机使其在运行时间、运行速度和占用资源等方面优于状态机使其在运行时间、运行速度和占用资源等方面优于CPU实现的设计方案。实现的设计方案。第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计(5)状态机与数字系统中控制单元的关系)状态机与数字系统中控制单元的关系 状态机的每一个状态对应于控制单元的一个控制步;状态机的每一个状态对应于控制单元的一个控制步;状态机中的次态和输出对应于控制单元中与每一个控制状态机中的次态和输出对应于控制单元中与每一
5、个控制步有关的控制条件。步有关的控制条件。第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计2、状态机的表示方法、状态机的表示方法 状态图、状态表和流程图。状态图、状态表和流程图。(1)状态图表示方法)状态图表示方法state Estate Bstate Astate Cstate Din/outin/outin/outin/outin/outin/out第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计(2)Moore型状态机和型状态机和 Mealy型状态机的表示方法型状态机的表示方法state A00state B01state Astate
6、 BI1/01第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计(3)状态图的原则)状态图的原则 状态图中应该包括全部的状态,包括状态图中应该包括全部的状态,包括“空闲空闲”状态;状态; 脱离一个状态的所有转换的逻辑或值应该为真,这是脱离一个状态的所有转换的逻辑或值应该为真,这是检验进入一个状态后能否跳出该状态的一个简单方法;检验进入一个状态后能否跳出该状态的一个简单方法; 验证脱离状态的转换的异或是否为真,这是保证在任验证脱离状态的转换的异或是否为真,这是保证在任何时候不会同时激活两个脱离状态的转换;何时候不会同时激活两个脱离状态的转换; 如果一个状态不是在每个过程发
7、生变化,则可以插入如果一个状态不是在每个过程发生变化,则可以插入自身循环,换句话说,当控制器进入一个状态且等待直到自身循环,换句话说,当控制器进入一个状态且等待直到某一个条件发生时,可以插入一个适当的自身循环转换。某一个条件发生时,可以插入一个适当的自身循环转换。第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计3、状态机的设计步骤、状态机的设计步骤 (1)依据具体的设计原则,确定是采用)依据具体的设计原则,确定是采用Moore型状态型状态机还是机还是Mealy型状态机;型状态机; (2)分析设计要求,列出状态机的所有状态,并对每)分析设计要求,列出状态机的所有状态,并
8、对每一个状态进行状态编码;一个状态进行状态编码; (3)根据状态转移关系和输出函数画出所要设计状态)根据状态转移关系和输出函数画出所要设计状态机的状态图;机的状态图; (4)根据所画的状态图,采用硬件描述语言对状态机)根据所画的状态图,采用硬件描述语言对状态机进行描述。进行描述。 第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计二、二、Moore型状态机的设计型状态机的设计1、状态机的建立过程、状态机的建立过程 例:例: 设计一存储控制器状态机。设计一存储控制器状态机。(1)设计要求)设计要求(2)工作过程)工作过程(3)确定存储控制器状态机的状态)确定存储控制器状态
9、机的状态(4)画出状态图)画出状态图(5)状态机的输出逻辑)状态机的输出逻辑第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计二、二、Moore型状态机的设计型状态机的设计1、状态机的建立过程、状态机的建立过程(1)设计要求)设计要求 设计的存储器控制器能够根据微处理器的读写周期,设计的存储器控制器能够根据微处理器的读写周期,分别对存储器输出写使能信号分别对存储器输出写使能信号we和读使能信号和读使能信号oe。 微处理器的准备就绪准备信号微处理器的准备就绪准备信号ready、微处理器的读、微处理器的读写信号写信号read_write和时钟信号和时钟信号clk。第第6章状
10、态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计二、二、Moore型状态机的设计型状态机的设计1、状态机的建立过程、状态机的建立过程(2)工作过程)工作过程u 当微处理器的当微处理器的ready有效或上电复位时,存储器开始有效或上电复位时,存储器开始工作,判断工作,判断read_write信号有效否确定当前读写。信号有效否确定当前读写。u 确定控制器的输出确定控制器的输出we和和oe哪者有效。哪者有效。u 当读写操作完成,微处理器的准备信号当读写操作完成,微处理器的准备信号ready标志本标志本次处理完成,使控制器回到空闲状态。次处理完成,使控制器回到空闲状态。第第6章状态机的
11、设计章状态机的设计第第6 6章章 状态机的设计状态机的设计二、二、Moore型状态机的设计型状态机的设计1、状态机的建立过程、状态机的建立过程(3)确定存储控制器状态机的状态)确定存储控制器状态机的状态 开始状态(开始状态(idle) 判断状态(判断状态(decision) 根据根据read_write判断读写判断读写 读状态读状态 (read) 写状态写状态 (write)(4)画出状态图)画出状态图(5)状态机的输出逻辑)状态机的输出逻辑第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计2、VHDL描述描述(1)所需要使用的语句)所需要使用的语句(2)用)用VHDL
12、语言描述的步骤语言描述的步骤 把所有的状态均表达为把所有的状态均表达为case-when结构中的一条结构中的一条case 语句,语句,而状态的转移则用而状态的转移则用if-then-else语句来实现。语句来实现。 利用枚举的状态类型定义信号;利用枚举的状态类型定义信号; type state_type is (idle,decision,read,write); singal present_state,next_state :state_type;第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计 建立状态机进程:由于状态机的次态是现态和输入信号的函数,所以这建立状
13、态机进程:由于状态机的次态是现态和输入信号的函数,所以这些现态和输入信号都要作为进程的敏感信号。些现态和输入信号都要作为进程的敏感信号。 process(present_state,ready,read_write) 通过进程定义状态的转移:在进程中使用通过进程定义状态的转移:在进程中使用case-when语句,因为空闲状态语句,因为空闲状态idle是状态机状态的起点和终点,因此需要把是状态机状态的起点和终点,因此需要把idle作为作为when之后的第一项,然之后的第一项,然后再列出状态转移到其他状态的条件,从而完成状态机的状态的转移。后再列出状态转移到其他状态的条件,从而完成状态机的状态的转
14、移。 process(present_state,ready,read_write) begin case present_state is when idle=we=0;oe=0; if (ready=1) then next_state=decision; else next_state if(ready=1) then state=idle; else state= if(ready=1) then state=idle; else state=write; end if; end case; end if;end process;oe=1 when state=read else 1;
15、we if(ready=1) then state=decision; else state if(read_write=1) then state=read; else state we=0;oe=1; if(ready=1) then next_state=idle; else next_state= we=1;oe=0; if(ready=1) then next_state=idle; else next_state we=0;oe=0; if(ready=1) then next_state=decision; else next_state we=0;oe=0; if(read_w
16、rite=1) then next_state=read; else next_state=write; end if; 第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计(1)进程)进程2用来描述状态寄存器用来描述状态寄存器-描述状态逻辑描述状态逻辑process(clk)begin if(clkevent and clk=1) then present_state if(ready=1) then next_state=decision; else next_state if(read_write=1) then next_state=read; else next
17、_state if(ready=1) then next_state=idle; else next_state= if(ready=1) then next_state=idle; else next_state=write; end if; end case; end process;第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计5、三进程状态机的设计方法、三进程状态机的设计方法-描述状态寄存器描述状态寄存器process(clk)begin if(clkevent and clk=1) then present_statewe=0;oewe=0;oewe=0;
18、oewe=1;oe=0; end case; end process;end state_machine;第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计四、四、Moore型状态机的信号输出方式型状态机的信号输出方式1、同步的信号输出方式、同步的信号输出方式 就是将状态机的输出信号加载到一个寄存器中,该寄存就是将状态机的输出信号加载到一个寄存器中,该寄存器一般是由器一般是由D触发器构成的,它的时钟信号就是状态机的时触发器构成的,它的时钟信号就是状态机的时钟信号。钟信号。 VHDL描述时,只需要将状态机输出信号的赋值语句写描述时,只需要将状态机输出信号的赋值语句写到时钟
19、进程里即可。到时钟进程里即可。三、三、Moore型状态机的复位型状态机的复位1、同步复位、同步复位2、异步复位、异步复位第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计四、四、Moore型状态机的信号输出方式型状态机的信号输出方式1、同步的信号输出方式、同步的信号输出方式 就是将状态机的输出信号加载到一个寄存器中,该寄存就是将状态机的输出信号加载到一个寄存器中,该寄存器一般是由器一般是由D触发器构成的,它的时钟信号就是状态机的时触发器构成的,它的时钟信号就是状态机的时钟信号。钟信号。次态次态逻辑逻辑状态状态寄存器寄存器输出输出逻辑逻辑输入输入输出输出现态现态寄寄存存器
20、器复位信号复位信号时钟信号时钟信号次态次态同步的信号输出方式的结构框图同步的信号输出方式的结构框图第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计2、状态直接输出方式、状态直接输出方式 为了缩短输出信号的时延和消除为了缩短输出信号的时延和消除“毛刺毛刺”现象,将状态现象,将状态位本身作为信号直接输出,相当于去掉了一般状态机中的输位本身作为信号直接输出,相当于去掉了一般状态机中的输出逻辑电路。出逻辑电路。 VHDL描述时,重要的工作就是对状态机进行编码。描述时,重要的工作就是对状态机进行编码。次态次态逻辑逻辑状态状态寄存器寄存器输入输入输出输出现态现态复位信号复位信号时
21、钟信号时钟信号次态次态状态直接输出方式的结构框图状态直接输出方式的结构框图第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计3、并行译码输出方式、并行译码输出方式 为了减少输出信号的传输延时,从而提高状态机的速度。为了减少输出信号的传输延时,从而提高状态机的速度。在状态位锁存之前,先进行逻辑译码,即把状态机的状态一边在状态位锁存之前,先进行逻辑译码,即把状态机的状态一边送到状态寄存器进行锁存,一边送到译码器进行译码输出。送到状态寄存器进行锁存,一边送到译码器进行译码输出。次态次态逻辑逻辑状态状态寄存器寄存器输出输出逻辑逻辑输入输入输出输出现态现态输出输出寄存器寄存器复位
22、复位时钟时钟次态次态并行译码输出方式的结构框图并行译码输出方式的结构框图第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计5.7 5.7 空调控制系统状态机的设计空调控制系统状态机的设计端口说明:端口说明:Reset: 输入,复位信号,高电平有效,复位期间系统进输入,复位信号,高电平有效,复位期间系统进入初始状态入初始状态S0。Clk: 输入,系统时钟。输入,系统时钟。Test_H:输入,检测到温度过高的输入信号,高电平有效。:输入,检测到温度过高的输入信号,高电平有效。Test_L: 输入,检测到温度过低的输入信号,高电平有效。输入,检测到温度过低的输入信号,高电平有
23、效。To_hot: 输出,升温信号,高电平有效。输出,升温信号,高电平有效。To_cool:输出,制冷信号,高电平有效。:输出,制冷信号,高电平有效。第第6章状态机的设计章状态机的设计 library ieee; use ieee.std_logic_1164.all; entity tc is port(reset,clk,test_H,test_L:in std_logic; to_hot,to_cool: out std_logic); end tc; architecture rtl of tc is type state is(s0,s1,s2); signal pre_s,next
24、_s:state; begin 5.7 5.7 空调控制系统状态机的设计空调控制系统状态机的设计process(reset,clk)begin if (reset=1) then pre_s=s0; elsif (clkevent and clk=1) then pre_s to_hot=0; to_cool=0; if(test_H=1 and test_L=0) then next_s=s2; elsif(test_H=0 and test_L=1) then next_s=s1; else next_s to_hot=1; to_cool=0; if(test_H=1 and test_
25、L=0) then next_s=s2; elsif(test_H=0 and test_L=1) then next_s=s1; else next_sto_hot=0; to_cool=1; if(test_H=1 and test_L=0) then next_s=s2; elsif(test_H=0 and test_L=1) then next_s=s1; else next_s=s0; end if; end case; end process; end rtl;第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计5.8 5.8 微波炉定时器芯片的设计微波炉定
26、时器芯片的设计一、功能描述一、功能描述 1.设定复位开关设定复位开关 2.设定启动开关设定启动开关 3.烹调时间设置控制信号烹调时间设置控制信号 4.显示烹调时间的进行情况显示烹调时间的进行情况 5.测试七段数码管工作是否正常测试七段数码管工作是否正常第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计min_msb微波炉定时器微波炉定时器clkresettestset_timeData15:0start_cookcookmin_lsbsec_msbsec_lsb第第6章状态机的设计章状态机的设计第第6 6章章 状态机的设计状态机的设计二、工作过程二、工作过程 1.上电后系统处于复位状态上电后系统处于复位状态 2.按按 set_time键设定烹调时间键设定烹调时间 3.系统自动回到复位状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网盘设备出租合同范例
- 笔记本印刷合同范例
- 花卉租赁合同范例
- 船舶买卖委托中介合同范例
- 交通肇事代理协议合同范例
- 草拟采购合同范例
- 贴地砖装修合同范例
- 干挂板合同范例
- 医药合同范例
- 购车合同跟按揭车合同范例
- 英美文化概论学习通超星期末考试答案章节答案2024年
- 北京市海淀区2023-2024学年高二上学期期末考试 生物 含解析
- 小学数学《比的认识单元复习课》教学设计(课例)
- 部编版三年级上册语文作文总复习
- 《电力电子技术》复习资料
- 2024秋期国家开放大学本科《会计实务专题》一平台在线形考(形考作业一至四)试题及答案
- 中国当代小说选读学习通超星期末考试答案章节答案2024年
- 2024年山西临汾市浮山县事业单位招聘工作人员28人高频难、易错点500题模拟试题附带答案详解
- 购物中心突发人员跳楼事件专项应急预案
- 基于认知行为疗法的药物干预研究
- 舞蹈鉴赏学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论