资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第七章 有限状态机设计,教学目标:通过本章知识的学习,掌握状态机的基础知识;掌握有限状态机的设计流程;掌握,mealy,型和,moore,型状态机的,VHDL,语言设计方法;掌握,Quartus,软件状态图输入法。,7.1,有限状态机概述,7.1.1,有限状态机的概念和分类,状态机是一种广义的时序电路,它不同于一般的时序逻辑电路。状态机内部状态的变化规律不再像计数器、移位寄存器那么简单,而是需要精心设计和规划。,状态机一般包含组合逻辑和寄存器逻辑两部分。寄存器逻辑用于存储状态,组合逻辑用于状态译码和产生输出信号。实际中状态机的状态数是有限的,因此,又称为有限状态机,本章将讲解有限状态机。,状态机的输出不仅与当前输入信号有关,还与当前的状态有关,因此状态机有,4,个基本要素:现态、条件、动作、次态。,7.1,有限状态机概述,7.1.1,有限状态机的概念和分类,输出信号可以由当前状态和当前输入信号决定,也可以只由当前状态决定。按照输出信号是否与输入信号有关,可将有限状态机分为,Moore,型(摩尔型)和,Mealy,型(米里型)。,Moore,型状态机的输出只与当前状态有关,,Mealy,型状态机的输出不仅与当前状态有关,还与当前输入有关。,7.1,有限状态机概述,7.1.1,有限状态机的概念和分类,Moore,型状态机,Mealy,型状态机,7.1,有限状态机概述,7.1.2,有限状态机的状态转换图,序列检测器状态转换图,7.1,有限状态机概述,7.1.3,有限状态机的设计流程,1,理解问题背景,2,逻辑抽象,得出状态转换图,3,状态化简,4,状态编码,5,形成状态转换图,6,用,VHDL,语言实现有限状态机,7.1,有限状态机概述,7.1.4,有限状态机的,VHDL,描述,2,状态机的结构,1,)状态机的说明部分,状态机的说明部分一般放在结构体,ARCHITECTURE,和,BEGIN,之间,首先使用,TYPE,语句定义新的数据类型,并且一般将该数据类型定义为枚举型,其元素采用文字符号表示,作为状态机的状态名,然后用,SIGNAL,语句定义状态变量(如现态和次态),将其数据类型定义为由,TYPE,语句定义的新的数据类型。,ARCHITECTURE OF IS,TYPE new_state IS,(,s0,s1,s2,s3,s4,);,SIGNAL present_state,,,next_state,:,new_state,;,BEGIN,7.2,Moore型状态机,7.2.1 “,三进程描述”,【例7-1】序列检测-三进程,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY fsm IS,PORT(clk,reset,cin:IN STD_LOGIC;,result:OUT STD_LOGIC);,END;,ARCHITECTURE bhv OF fsm IS,TYPE state IS(start,s0,s1,s2,s3);-用枚举类型定义状态,简单直观,SIGNAL current_state,next_state:state;-定义存储现态和次态的信号,BEGIN,p1:PROCESS(clk)-状态更新进程,BEGIN,IF clkEVENT AND clk=1 THEN,IF reset=1 THEN current_state=start;,ELSE current_stateresultresultresultresultresultNULL;,END CASE;,END PROCESS;,END;,7.2,Moore型状态机,7.2.2 “,双进程”描述,【例7-2】序列检测-双进程,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY fsm IS,PORT(clk,reset,cin:IN STD_LOGIC;,result:OUT STD_LOGIC);,END;,ARCHITECTURE bhv OF fsm IS,TYPE state IS(start,s0,s1,s2,s3);,SIGNAL current_state,next_state:state;,BEGIN,p1:PROCESS(clk)-状态更新进程,BEGIN,IF clkEVENT AND clk=1 THEN,IF reset=1 THEN current_state=start;,ELSE current_stateresult=0;,IF cin=0 THEN next_state=start;ELSE next_stateresult=0;,IF cin=0 THEN next_state=s0;ELSE next_stateresult=0;,IF cin=0 THEN next_state=start;ELSE next_stateresult=0;,IF cin=0 THEN next_state=start;ELSE next_stateresult=1;,IF cin=0 THEN next_state=start;ELSE next_stateNULL;,END CASE;,END PROCESS;,END;,7.2,Moore型状态机,7.2.3 “,单进程”描述,【例7-3】序列检测-单进程,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY fsm IS,PORT(clk,reset,cin:IN STD_LOGIC;,result:OUT STD_LOGIC);,END;,ARCHITECTURE bhv OF fsm IS,TYPE istate IS(start,s0,s1,s2,s3);,SIGNAL state:istate;,BEGIN,p1:PROCESS(clk),BEGIN,IF clkEVENT AND clk=1 THEN,IF reset=1 THEN state=start;resultresult=0;,IF cin=0 THEN state=start;ELSE stateresult=0;,IF cin=0 THEN state=s0;ELSE stateresult=0;,IF cin=0 THEN state=start;ELSE stateresult=0;,IF cin=0 THEN state=start;ELSE stateresult=1;,IF cin=0 THEN state=start;ELSE stateNULL;,END CASE;,END IF;,END IF;,END PROCESS;,END;,7.3,Mealy型状态机,7.3,Mealy型状态机,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY example IS,PORT(a:IN STD_LOGIC_VECTOR(1 DOWNTO 0);,clk,reset:IN STD_LOGIC;,q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);,END;,ARCHITECTURE bhv OF example IS,TYPE istate IS(s0,s1,s2,s3);,SIGNAL state:istate;,BEGIN,PROCESS(clk,reset),BEGIN,IF reset=1 THEN state=s0;,ELSIF RISING_EDGE(clk)THEN,7.4,设计实例-十字路口交通灯控制器,本节将通过设计一个简化的十字路口交通灯控制电路来为读者介绍有限状态机的设计方法。,1,设计要求,(,1,)正常工作模式下,每个状态持续的时间各自独立,通过,CONSTANT,定义。,(,2,)测试模式下,每个状态持续一个较短时间,以便观察状态转移过程,该时间可以通过程序修改。,(,3,)紧急模式下,两个方向都亮黄灯,直到状态解除为止,该状态的设置可以通过外界输入,如按钮。,7.4,设计实例-十字路口交通灯控制器,状态,State,状态模式,正常,测试,紧急,RG,(东西红南北绿),30s,2s,-,RY,(东西红南北黄),5s,2s,-,GR,(东西绿南北红),45s,2s,-,YR,(东西黄南北红),5s,2s,-,YY,(东西黄南北黄),-,-,未定,7.5,Quartus软件状态图输入法,1,创建原状态图模块文件,新建文件对话框,7.5,Quartus软件状态图输入法,2,设置状态机输出文件格式,状态机输出文件,7.5,Quartus软件状态图输入法,3,利用状态机编辑向导,建立状态机,创建一个新的状态机设计,7.5,Quartus软件状态图输入法,5,状态设置对话框,状态设置对话框,7.5,Quartus软件状态图输入法,6,输出设置对话框,输出设置对话框,7.5,Quartus软件状态图输入法,7,状态机情况统计,设置情况统计,7.5,Quartus软件状态图输入法,状态转换图,
展开阅读全文