第五章状态机课件.ppt
《第五章状态机课件.ppt》由会员分享,可在线阅读,更多相关《第五章状态机课件.ppt(84页珍藏版)》请在三一办公上搜索。
1、第五章 状态机设计,目录,时序电路的概念时序电路与状态机的关系电路的竞争与冒险有限状态机的描述方法ASM图法状态机设计有限状态机的分类状态机VHDL实现举例,时序电路的概念,在组合电路中,任一时刻的稳定输出只取决于当时的输入,而在时序电路中任一时刻的稳定输出,不仅可能取决于当时的输入,还取决于电路的原来的状态,即与过去的输入情况有关。,时序电路的概念,下面以一个简单的三位计数器为例,说明时序电路的结构。设计分析3位计数器,由时钟上升沿触发,计数从000111,到111后则重新回到000。采用上升沿触发的D触发器作为状态寄存器,D触发器的示意图和真值表如下:,时序电路的概念,用A、B、C分别表示
2、3个位,则A+、B+、C+表示A、B、C的次态。其真值表如下:,时序电路的概念,三位计数器的结构根据上面的分析,3位计数器需要用到3个状态寄存器。A+、B+、C+是状态寄存器的输入;A、B、C是状态寄存器的输出。由此可根据时序电路的一般模型可画出3位计数器的结构。,时序电路的概念,次态逻辑关系的推导通过真值表,可以画出卡诺图如下:,由卡诺图可导出次态逻辑方程:,8,时序电路的概念,电路图根据次态电路的组成,可以得到次态逻辑的组成,从而可以得出3位计数器的详细电路:,时序电路与状态机的关系,状态机的本质状态机的本质就是对具有逻辑顺序或时序规律事件的一种描述方法。具有逻辑顺序和时序规律的事件都适合
3、用状态机描述。同步时序逻辑电路符合状态机的一般特征,即具有逻辑顺序和时序规律,所以可以用状态机描述。,时序电路与状态机的关系,状态机的基本要素状态:也叫状态变量。在逻辑设计中,使用状态划分逻辑顺序和时序规律。输出:输出指在某一个状态时特定发生的事件。输入:指状态机中进入每个状态的条件,有的状态机没有输入条件,其中的状态转移较为简单,有的状态机有输入条件,当某个输入条件存在时才能转移到相应的状态。,时序电路与状态机的关系,日常生活中的状态机通过状态机的方式,我们可以清晰地描述一个学生的在校生活方式。,时序电路与状态机的关系,描述时序电路的状态机的组成组合逻辑组合逻辑又可分为次态逻辑和输出逻辑两个
4、部分。其中:次态逻辑的功能是用来确定有限状态机的下一个状态;输出逻辑是用来确定有限状态机的输出。存储逻辑寄存器逻辑的功能:用来存储有限状态机的内部状态。,电路的竞争与冒险,竞争与冒险所谓竞争与冒险,就是在组合电路中,信号经不同途径传输后,达到电路中某一汇合点的时间有先有后,这种现象成为竞争。由于竞争而使电路输出发生瞬间错误的现象,称为冒险。在时序逻辑电路中,产生次态的电路和输出电路是组合逻辑电路。组合逻辑电路存在竞争与冒险,可能导致时序系统进入不正确的状态。使用同步时序逻辑电路可以克服次态逻辑存在竞争与冒险的问题。,电路的竞争与冒险,竞争与冒险的例子由于延迟时间的存在,当信号C经过多条路径传送
5、后又重新会合到U3上,由于C-D路径上门的级数与C-E路径不同,导致到达会合点U3的时间有先有后,从而产生瞬间的错误输出。,电路的竞争与冒险,上例中的时序如图,毛刺,电路的竞争与冒险,状态机克服竞争冒险的方法在次态产生组合逻辑电路中,可以通过时序逻辑消除毛刺,从而克服竞争冒险。通过输出端时序同步的方法消除竞争与冒险(即使用同步时序逻辑电路设计方法。详细实例见后面介绍)。,有限状态机的描述方法,状态转移图,状态转移列表,MDS图,ASM图(主要讲解),有限状态机的描述方法,ASM图法设计状态机ASM本质上是一个有限状态机,主要用于同步时序系统。ASM精确地表示出状态转换的时间关系。从形式上看,这
6、种流程图类似于描述软件程序的流程图,但它能和实现它的硬件很好的对应起来。本章主要学习使用ASM图法描述状态机。,ASM图法状态机设计ASM图组成,ASM图的组成状态框用一个矩形框来表示一个状态。状态的名称写在左上角;状态的二进制编码写在右上角;操作内容写在矩形框内。在同步系统中,状态经历的时间至少是一个时钟周期,也可以是几个周期。,寄存器操作或输出,状态名,二进制码,R 0C=1,T1,001,ASM图法状态机设计ASM图组成,ASM图的组成判断框用单入口双出口的菱形或单入口多出口的多边形符号表示。在菱形和多边形框内写检测条件,在分支出口处注明各分支所满足的条件。判断框必须跟着状态框。判断框的
7、执行与状态框在同一时钟周期内。,条件,0,1,引出分支,引出分支,ASM图法状态机设计ASM图组成,ASM图组成条件框用椭圆框表示。条件框一定是与判断框的一个转移分支相连接,仅当判断框中判断变量满足相应的转移条件时,才进行条件框中标明的操作和信号输出。虽然条件框和状态框都能执行操作和输出信号,但二者有很大区别。,寄存器操作或输出,ASM图法状态机设计ASM图组成,状态框与条件框的区别,ASM图法状态机设计ASM图组成,ASM图法状态机设计ASM图组成,状态框,判断框,条件框,虚线框部分就是一个状态单元,条件框中R0也在这个状态单元内执行。,ASM图法状态机设计ASM图组成,ASM图的组成,状态
8、单元状态单元由一个状态框和若干个判断框或条件框组成。状态单元的入口必须是状态框的入口,出口可以有几个,但必须指向状态框。仅包含一个状态框,无判断框和条件框的ASM块是一个简单块。每个状态单元表示一个时钟周期内系统所处的状态,在该状态下完成块内的若干操作。,ASM图法状态机设计硬件实现,用ASM图描述一个系统控制器时,实际上是描述了该控制器的硬件结构和时序工作过程,因此ASM图与硬件有很好的对应关系,ASM图的硬件实现有以下几种方法:用计数器实现ASM图用多路选择器实现ASM图每个状态一个触发器(定序型)基于ROM法实现ASM图(微程序型)ASM图的硬件实现一共有4种方法,这里我们重点介绍用计数
9、器实现ASM图的方法。,ASM图法状态机设计硬件实现,ASM图的状态分配,N个状态变量可以描述2n个状态。该ASM图中有3个状态,所以需要两个状态变量。设两个状态变量为Q2Q1,我们选用2个D触发器。用二进制计数序列依次表示状态。,ASM图法状态机设计硬件实现,状态转换表,因为10和11状态与输入X无关,所以X值可作任意值处理。表中01未指定状态,采用计数器实现,因此需考虑因偶然因素出现01状态时,应强迫其次态为00,所以一旦出现01状态后,经过一个时钟周期就可以自动回到有用状态循环。,ASM图法状态机设计硬件实现,由状态转换表推导触发器的驱动方程,对于复杂的ASM图和相应的状态表可用卡诺图对
10、次态进行化简,得到简化的驱动方程。,ASM图除了可以得到状态表和驱动方程外,还可以得到输出方程,ASM图法状态机设计硬件实现,ASM图的硬件实现,采用计数器法实现ASM图,一旦ASM图有很小的改动,就需要重新设计与次态相关的组合电路部分。此外,当系统的状态超过8个时,ASM图的硬件实现也很复杂。,学习ASM图的硬件实现有助于我们更好的理解后续的内容,下面我们将学习如何使用VHDL实现ASM图。,ASM图法状态机设计举例,举例要求设计一套交叉路口交通信号灯,该路口有一条交通干线与支线,支线上装有传感器,当支线有车通过时,传感器输出信号CAR=1。正常的工作状态时干线亮绿灯,支线亮红灯;当CAR=
11、1时,干线亮红灯,支线亮绿灯,并开始计时,START_TIEMR=1,当计时结束,即信号TIMED=1时,重新回到正常工作状态(干线亮绿灯,支线亮红灯)。,ASM图法状态机设计举例,设计步骤根据设计要求,我们先确定系统的输入:clock, car, timed.然后确定系统的输出:start_timer;major_green, minor_green. (枚举类型)分析系统所有可能出现的状态:state = Gmajor_green = 1, minor_green = 0;state = Rmajor_green = 0, minor_green = 1;根据题意,画出ASM图:,1,0,
12、有限状态机的分类,从信号输出方式上分Mealy型状态机Moore型状态机从结构上分单进程状态机两进程状态机三进程状态机从表达方式上分符号化状态机确定状态编码状态机顺序编码状态机独热码状态机格雷码状态机,从信号输出方式上分,Moore型有限状态机是指那些输出信号仅与当前状态有关的有限状态机,即可以把Moore型有限状态机的输出看成是当前状态的函数。Moore型有限状态机框图:,从信号输出方式上分,Mealy型有限状态机是指那些输出信号不仅与当前状态有关,而且还与所有的输入信号有关的有限状态机,即可以把Mealy有限状态机的输出看作当前状态和所有输入信号的函数。可见,Mealy有限状态机要比Moo
13、re有限状态机复杂一些。Mealy有限状态机框图:,从信号输出方式上分,Moore型和Mealy型有限状态机的区别:Moore型有限状态机仅与当前状态有关,而与输入信号无关;Mealy型有限状态机不但与当前状态有关,而且还与状态机的输入信号有关。,从信号输出方式上分,采用何种有限状态机的判别条件:Moore型有限状态机可能要比相应的Mealy型有限状态机需要更多的状态。Moore型有限状态机的输出与当前的输入部分无关,因此当前输入产生的任何效果将会延迟到下一个时钟周期。可见,Moore型状态机的最大优点就是可以将输入部分和输出部分隔离开。对于Mealy型有限状态机来说,由于它的输出是输入信号的
14、函数,因此如果输入信号发生改变,那么输出可以在一个时钟周期内发生改变。,从状态机的结构上分,单进程描述它就是将状态机的三个逻辑单元(状态寄存器、下状态产生逻辑、输出逻辑)合并起来,采用一个进程描述。适用于简单的设计;对于复杂的状态机,可读性差,易出错,不利于EDA软件优化。,从状态机的结构上分,单进程状态机,下一状态组合逻辑,寄存输出逻辑,当前状态时序逻辑,从状态机的结构上分,单进程状态机LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY traffic IS PORT( clock , timed , car : IN std_ulogic ;
15、 start_timer, major_green, minor_green : OUT std_ulogic );END ENTITY traffic ;ARCHITECTURE asm1 OF traffic IS BEGIN PROCESS (clock, timed, car) TYPE state_type IS (G, R); -这里采用符号化状态机的描述方式 VARIABLE state: state_type; -将状态定义为变量类型 BEGIN IF (rising_edge(clock) THEN CASE state IS WHEN G = major_green = 1
16、; minor_green = 0;,看图说话,1,0,从状态机的结构上分,单进程状态机 IF (car = 1) THEN start_timer major_green = 0; minor_green = 1; IF (timed= 1) THEN start_timer = 1; state := G; END IF; END CASE; END IF END PROCESS;END ARCHITETURE;,1,0,从状态机的结构上分,单进程状态机单进程状态变量可以定义为变量类型,放在进程的说明部分;一般在进程的开头写上时钟有效边沿的检测语句;注意在这里进程敏感参数表中的car和ti
17、med可省去rising_edge(clock)也可以写成clockevent and clock=1;条件涵盖不完整的if语句会产生寄存器;这是将时序电路和组合电路混合的系统,有时会引入不必要的寄存器。如果将描述时序的部分放在具有边沿检测条件的if语句或wait语句的进程中,而将描述组合电路的语句放在普通的进程中,这样可以有效控制寄存器的引入。,从状态机的结构上分,双进程状态机,第二个进程(纯组合逻辑),描述状态转移条件的判断与输出。,第一个进程(同步时序),格式化地描述次态到现态的转移。,一般情况是组合逻辑输出,如果时序允许,尽量插入寄存器输出。,从状态机的结构上分,双进程状态机LIBRA
18、RY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY traffic IS PORT( clock , timed , car : IN std_ulogic ; start_timer, major_green, minor_green : OUT std_ulogic );END ENTITY traffic ;ARCHITECTURE asm2 OF traffic ISTYPE state_type IS (G, R); -利用枚举类型定义状态SIGNAL pr_state, next_state : state_type; -将状态机的现态、次态定
19、义为全局信号,便于在进程间传递信息BEGINseq: PROCESS (clock)BEGIN IF(rising_edge(clock) THEN pr_state = next_state;-次态是寄存器的输入 END IF; -条件涵盖不完整的if语句产生状态寄存器END PROCESS seq; -产生状态寄存器的进程,1,0,从状态机的结构上分,双进程状态机com: PROCESS (pr_state, car, timed)BEGIN start_timer major_green = 1; minor_green = 0; IF (car = 1) THEN start_time
20、r = 1; nx_state = R; ELSE nx_state = G; END IF;,1,0,从状态机的结构上分,双进程状态机 WHEN R = major_green = 0; minor_green = 1; IF (timed= 1) THEN nx_state = G; ELSE nx_state = R; END IF; END CASE;END PROCESS com;-产生次态和输出逻辑的进程END asm2;,1,0,从状态机的结构上分,双进程状态机:双进程中状态变量要定义为SIGNAL类型,用于进程间信息的传递可以在产生寄存器的进程中加上异步复位语句,用于确定初始状
21、态seq: PROCESS (clock)BEGIN IF reset=1 THEN pr_state = G; IF(rising_edge(clock) THEN pr_state = next_state; END IF;END PROCESS seq;注意在组合进程中if语句要写完整if-else,从状态机的结构上分,三进程状态机,第一个进程(同步时序)格式化描述次态寄存器迁移到现态寄存器,第二个进程(状态转移组合逻辑),描述状态转移条件判断,第三个进程(输出组合逻辑),一般使用同步时序逻辑同步输出。,从状态机的结构上分,三进程状态机LIBRARY IEEE ;USE IEEE.STD
22、_LOGIC_1164.ALL ;ENTITY traffic IS PORT( clock , timed , car : IN std_ulogic ; start_timer, major_green, minor_green : OUT std_ulogic );END ENTITY traffic ;ARCHITECTURE asm2 OF traffic ISTYPE state_type IS (G, R); -利用枚举类型定义状态SIGNAL pr_state, next_state : state_type; -将状态机的现态、次态定义为全局信号,便于在进程间传递信息BEGI
23、Nseq: PROCESS (clock)BEGIN IF(rising_edge(clock) THEN pr_state = next_state;-次态是寄存器的输入 END IF; -条件涵盖不完整的if语句产生状态寄存器END PROCESS seq; -产生状态寄存器的进程,0,1,从状态机的结构上分,三进程状态机ns: PROCESS (car, timed, pr_state)BEGINCASE pr_state ISWHEN G = IF (car = 1) THEN nx_state IF (timed = 1) THEN nx_state = G; ELSE nx_sta
24、te = R; END IF;END CASE;END PROCESS ns; -产生次态逻辑进程,1,0,从状态机的结构上分,三进程状态机op: PROCESS (car, pr_state) Mealy State MachineBEGINstart_timer = 0;IF (pr_state = G) THEN major_green = 1; minor_green = 0; IF (car = 1) THEN start_timer = 1; END IF;ELSE major_green = 0; minor_green = 1;END IF;END PROCESS op;-产生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 状态机 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1859468.html