EDA技术实用教程PPT教学课件第7章VHDL有限状态机设计.ppt
《EDA技术实用教程PPT教学课件第7章VHDL有限状态机设计.ppt》由会员分享,可在线阅读,更多相关《EDA技术实用教程PPT教学课件第7章VHDL有限状态机设计.ppt(99页珍藏版)》请在三一办公上搜索。
1、EDA技术实用教程,第7章 VHDL有限状态机设计,第7章 有限状态机设计教学内容:,7.1VHDL状态机的一般形式7.2Moore型有限状态机的设计7.3Mealy型有限状态机的设计7.4状态机图形编辑设计方法7.5状态编码7.6安全状态机设计7.7硬件数字技术排除毛刺,教学要求:,学习和掌握用VHDL设计不同类型的有限状态机的方法;了解EDA工具和设计中关注的问题:综合器优化、毛刺信号的克服、控制速度、状态编码方式等。,状态机(State Machine),状态机是一类很重要的时序电路,是很多数字电路的核心部件,是大型电子设计的基础。状态机相当于一个控制器,它将一项功能的完成分解为若干步,
2、每一步对应于二进制的一个状态,通过预先设计的顺序在各状态之间进行转换,状态转换的过程就是实现逻辑功能的过程。,状态机图是指用图形的方式来表示一个设计实体的各种工作状态、内部各工作状态转换的条件以及各工作状态对应的输出信号序列。,有限状态机 FSM-Finite State Machine,有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态,究竟转向哪一状态还是留在原状态不但取决于各个输入值,还取决于当前所在状态。这里指的是米里(Mealy)型有限状态机,而摩尔(Moore)型有
3、限状态机究竟转向哪一状态只决于当前状态。对应:Mealy(输出不但取决于各个输入值,还取决于当前所在状态)-时序逻辑电路(不仅与输入有关还和当前状态有关)Moore(输出只取决于当前状态)-组合逻辑电路(只与输入有关),比较:,传统的设计方法是首先绘制出控制器的状态图,并由此列出状态表,再合并消除状态表中的等价状态项。在完成状态寄存器的分配之后,根据状态表求出次态及输出方程,最后画出设计原理图。采用这种方法设计复杂状态机将会十分繁杂。利用VHDL设计状态机,不需要进行繁琐的状态分配、绘制状态表和化简次态方程。设计者不必使用卡诺图进行逻辑化简,不必画电路原理图,也不必搭试硬件电路进行逻辑功能的测
4、试,所有这些工作都可以通过EDA工具自动完成。应用VHDL设计状态机的具体步骤如下:(1)根据系统要求确定状态数量、状态转移的条件和各状态输出信号的赋值,并画出状态转移图(状态机图);(2)按照状态转移图编写状态机的VHDL设计程序;所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELSE语句实现。(3)利用EDA工具对状态机的功能进行仿真验证。,7.1 VHDL状态机的一般形式 7.1.1 为什么要使用状态机,(1)高效的顺序控制模型。(2)容易利用现成的EDA优化工具。(3)性能稳定。(4)设计实现效率高。(5)高速性能。(6)高可靠性能。
5、,7.1.2 一般有限状态机的设计,有限状态机分类:从信号的输入与输出方式分:Mealy型和Moore型有限状态机从结构分:单进程状态机和多进程状态机从状态表达方式分:有符号状态机和确定编码状态机从编码方式分:顺序编码状态机、一位热码编码状态机 或其它编码状态机,有限状态机的结构:说明部分、主控时序进程、主控组合进程、辅助进程,*说明部分在architecture与begin之间;*定义枚举型数据类型:用于描述状态*状态变量定义为信号:便于信息传输,状态变量数据类型定义为含有既定状态元素的新定义的数据类型,ARCHITECTURE.IS TYPE FSM_ST IS(s0,s1,s2,s3);
6、SIGNAL current_state,next_state:FSM_ST;.begin,1.说明部分,负责状态机运转和在时钟驱动下负责状态转换的进程作为状态机的“驱动泵”。功能1:状态机随外部时钟信号以同步方式工作,当时钟的有效跳变到来时,时序进程将代表次态的信号next_state中的内容送入现态信号current_state中,而next_state中的内容完全由其他进程根据实际情况而定。功能2:此进程中包括一些清零或置位的控制信号。,图7-1 一般状态机结构框图工作示意图,2.主控时序进程,主控组合进程的任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它非主控
7、的组合或时序进程的信号),或(和)当前状态的状态值确定下一状态(next_state)的取向,即next_state的取值内容,以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容。-译码过程,3.主控组合进程,图7-1 一般状态机结构框图工作示意图,用于配合状态机工作的组合进程或时序进程 例如:完成某种算法的进程;配合状态机工作的其他时序进程;稳定输出设置的数据锁存器等。,4.辅助进程,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS PORT(clk,reset:IN STD_LOGIC;state_input
8、s:IN STD_LOGIC_VECTOR(0 TO 1);comb_outputs:OUT INTEGER RANGE 0 TO 15);END s_machine;ARCHITECTURE behv OF s_machine IS TYPE FSM_ST IS(s0,s1,s2,s3);-定义FSM_ST为枚举型数据类型(符号化状态机)SIGNAL current_state,next_state:FSM_ST;BEGIN REG:PROCESS(reset,clk)-主控时序进程 BEGIN IF reset=1 THEN current_state=s0;-异步复位 ELSIF clk
9、=1 AND clkEVENT THEN current_state=next_state;-当检测到时钟上升沿时转换至下一状态 END IF;END PROCESS;-由current_state将当前状态值带出此进程,进入进程COM,接下页,【例7-1】2进程 Moore型,COM:PROCESS(current_state,state_Inputs)-主控组合进程 BEGIN CASE current_state IS-确定当前状态的状态值 WHEN s0=comb_outputs comb_outputs comb_outputs comb_outputs=14;IF state_in
10、puts=11 THEN next_state=s3;ELSE next_state=s0;END IF;END case;END PROCESS;-由信号next_state将下一状态值带出此进程,进入进程REG END behv;,接上页,进程间一般是并行运行的,但由于敏感信号的设置不同以及电路的延迟,在时序上进程间的动作是有先后的。,注意:状态变量的状态判断必须用CASE语句,不能用IF语句,图7-2 例7-1状态机的工作时序图,clk=2 reset=1 next_state=s0-REGcurrent_state=s0comb_outputs=5-COM state_inputs=“
11、01”next_state=s1-COMclk=3 next_state=s1 current_state-REGcurrent_state=s1comb_outputs=8-COM state_inputs=“10”next_state=s2-COMclk=4 next_state=s2 current_state-REGcurrent_state=s2comb_outputs=12-COM state_inputs=“10”next_state=s3-COM,2,4,3,7.1.3 状态机设计初始控制与表述,(1)打开“状态机萃取”开关,(2)状态图观察,7.2 Moore型有限状态机的设
12、计,按状态机的信号输出方式分类:Moore(摩尔)型和Mealy(米里)型Moore型:异步输出状态机当时钟到来时,输出仅为当前状态的函数。moore型最大的优点就是可以将输入部分与输出部分隔离开。Mealy型:同步输出状态机输出当前状态和所有输入信号函数,输出是在输入变化后立即发生。不依赖时钟的同步。,Moore型状态机框图,Mealy状态机的框图,7.2.1 ADC采样控制设计及多进程结构状态机,在一般状态机的设计过程中,为了能获得可综合的,高效的VHDL状态机描述,建议使用枚举类数据类型来定义状态机的状态,并使用多进程方式来描述状态机的内部逻辑。例如可使用两个进程来描述,个进程描述时序逻
13、辑,包括状态寄存器的工作和寄存器状态的输出,另一个进程描述组合逻辑,包括进程间状态值的传递逻辑以及状态转换值的输出。必要时还可以引入第三个进程完成其它的逻辑功能。,进程描述方式:,两进程描述的第三种和单进程描述方式最为常用,因为将组合逻辑和时序逻辑清楚区分,故综合效果较好,AD采样控制器-AD574启动时序,D11.0,图7-3 ADC0809工作时序,AD采样控制器-ADC0809设计,输入选通端口地址锁存信号,转换启动控制信号,状态转换信号,输出控制信号,图7-5 采样状态机结构框图,进程:状态机由两个主控进程构成,其中进程REG为主控时序进程,COM为主控组合进程。辅助进程LATCH,【
14、例7-2】描述的状态机由辅助进程LATCH和两个主控进程构成,其中进程REG为主控时序进程,COM为主控组合进程。LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT IS PORT(D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CLK,EOC:IN STD_LOGIC;ALE,START,OE,ADDA,LOCK0:OUT STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ADCINT;ARCHITECTURE behav OF ADCINT
15、 ISTYPE states IS(st0,st1,st2,st3,st4);-定义各状态子类型 SIGNAL current_state,next_state:states:=st0;SIGNAL REGL:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL LOCK:STD_LOGIC;-转换后数据输出锁存时钟信号 BEGIN ADDA=1;-当ADDA=0,模拟信号进入0809通道0;当ADDA=1,则进入通道1Q=REGL;LOCK0=LOCK;接下页,COM:PROCESS(current_state,EOC)BEGIN-规定各状态转换方式 CASE curren
16、t_state IS WHEN st0=ALEALE ALE ALE ALE next_state=st0;END CASE;END PROCESS COM;REG:PROCESS(CLK)BEGIN IF(CLKEVENT AND CLK=1)THEN current_state=next_state;END IF;END PROCESS REG;-由信号current_state将当前状态值带出此进程:REGLATCH1:PROCESS(LOCK)-st4进入进程中,在LOCK的上升沿,将转换好的数据锁入 BEGIN IF LOCK=1 AND LOCKEVENT THEN REGL=D;
17、END IF;END PROCESS LATCH1;END behav;,【例7-3】-将例7-2主控组合进程COM 分为两个组合进程COM1(状态转换)、COM 2(状态译码)COM1:PROCESS(current_state,EOC)-状态转换BEGIN CASE current_state IS WHEN st0=next_state next_state IF(EOC=1)THEN next_state next_state next_state next_state ALEALEALEALEALE ALE=0;START=0;LOCK=0;END CASE;END PROCESS
18、COM2;,7.2.2 序列检测器之状态机设计,接下页,序列检测器,7.2.2 序列检测器之状态机设计,接上页,例:用摩尔型状态机的设计空调控制器,空调控制器有两个输入,分别与温度传感器相连,用于检测室内温度。如果温度适宜(如1825),则两个输入temp_high和temp_low均为低;如果室内温度超过上限(25),则输入temp_high为高;如果室内温度低于下限(18),则输入temp_low为高。设控制器的输出为“heat”和“cool”,当两者之一为高时,空调器就制热或制冷。,空调控制器状态转换图,控制器的VHDL描述,LIBRARY IEEE;USE IEEE.STD_LOGIC
19、_1164.ALL;ENTITY air_cont IS PORT(clk:IN STD_LOGIC;temp_high:IN STD_LOGIC;temp_low:IN STD_LOGIC;heat:OUT STD_LOGIC;cool:OUT STD_LOGIC);END air_cont;ARCHITECTURE arc1 OF air_cont IS TYPE state_type IS(just_right,too_cold,too_hot);-状态类型,枚举三种状态 SIGNAL stvar:state_type;-状态变量BEGIN,PROCESS BEGINWAIT ON cl
20、k UNTIL RISING_EDGE(clk);-等待clk上升沿 IF temp_low=1 THEN stvarheatheatheat=0;cool=1;-太热,制冷 END CASE;END PROCESS;END arc1;,接上页,例:用摩尔型状态机的设计序列检测器,序列检测器在数字通信、雷达和遥控遥测等领域中用于检测同步识别标志。它是一种用来检测一组或多组序列信号的电路,本例中要求检测器连续收到一组串行码(1110010)后,输出检测标志为1;否则,输出为0。分析:该例子中要求检测的序列码是7位,因此需要7个状态分别记忆连续收到了1,11,111,1110,11100,1110
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 实用教程 PPT 教学 课件 VHDL 有限状态机 设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2263189.html