《第五章典型电路相关设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《第五章典型电路相关设计ppt课件.ppt(55页珍藏版)》请在三一办公上搜索。
1、第五章 典型电路设计,5.1 数字系统的设计方法5.2 有限状态机的设计,5.1.1 数字系统的组成,数字系统分为两个部分数字处理器和控制器,控制器:负责规定算法的步骤,在每一个计算步骤给数据处理器发出命令信号,同时接收来自数字处理器的状态变量,确定下一个计算步骤,以确保算法按正确的次序实现。数字处理器:由寄存器和组合电路组成。寄存器用于短暂存储信息,组合电路实现对数据的加工和处理。,5.1.2 数字系统的设计方法,自顶向下法 自顶向下(top to down)法是一种从抽象定义到具体的实现,从高层次到低层次逐步求精的分层次、分模块的设计方法,它是数字系统设计中最常用的设计方法之一。该设计方法
2、的具体实施过程是:首先根据系统的总体功能要求,进行系统级设计;然后按照一定的标准将整个系统划分成若干个子系统;接着将各个子系统划分为若干功能模块,针对各模块进行逻辑电路级设计。,5.1.3 数字系统的设计过程,数字系统设计分为系统级设计和逻辑级设计两个阶段。系统级设计:在详细了解设计任务的基础上,确定顶层系统的方案;描述系统功能,设计算法(MDS图、ASM图);逻辑级设计:根据算法选择电路结构;设计验证(仿真、测试)和设计实现;(EDA软件),5.1.4 数字系统的描述方法(MDS图),备有记忆文档的状态图(MDS)备有记忆文档的状态图MDS(Memonic Documented Diagra
3、ms),又称为助记状态图。它是1980年由美国人William Fletcher 提出的一种系统设计方法。MDS图可以描述出整个数字系统的逻辑关系,并且与硬件有良好的对应关系。MDS图可以清楚地反映出所要设计部分的电路应提供的状态数、各个状态之间的转换必须符合的条件以及在状态转换时需要哪些输入信号、何时产生输出信号、输出信号的输出方式等,以便设计者依照MDS图方便地设计出符合数字系统要求的逻辑电路。,5.1.4 数字系统的描述方法(MDS图),1、MDS图的表示方法MDS图用圆圈表示状态,圆圈内的符号表示状态名称,圆圈外的符号或者逻辑表达式表示输出MDS图用定向线表示状态转换方向,定向线旁的符
4、号或者逻辑表达式表示状态转换条件。,2、MDS图的常用符号及含义,例:利用MDS图设计一个汽车尾灯控制电路。其中:(1)RC为右灯亮控制输入,LC为左灯控制输入,RLC为左右灯同时亮输入;(2)RD为右灯亮输出,LD为左灯亮输出;(3)CP为状态时钟输入。,设计步骤:(1)设计分析和状态编码,状态表,设计步骤:(2)汽车尾灯控制的MDS图,A,B,D,C,LD,RD,LD,RD,设计步骤:(3)汽车尾灯控制的VHDL设计,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY qcwd ISPORT(CP:IN STD_LOGIC;LC,RC,LRC:I
5、N STD_LOGIC;LD,RD:OUT STD_LOGIC);END qcwd;ARCHITECTURE a OF wcwd IS TYPE STATE IS(A,B,C,D);BEGIN,PROCESS(CP)VARIABLE pstate:STATE;BEGINCASE pstate IS WHEN A=IF(NOT LC)AND(NOT RC)AND(NOT LRC)=1)THENpstate:=A;LD=0;RD=0;ELSIF(LC AND(NOT RC)AND(NOT LRC)=1)THENpstate:=B;LD=1;RD=0;ELSIF(NOT LC)AND RC AND(
6、NOT LRC)=1)THENpstate:=C;LD=0;RD=1;ELSIF(LRC OR(LC AND RC)=1)THENpstate:=D;LD=1;RD=1;END IF;,WHEN B=IF(NOT LC)AND(NOT RC)AND(NOT LRC)=1)THENpstate:=A;LD IF(NOT LC)AND(NOT RC)AND(NOT LRC)=1)THENpstate:=A;LD IF(NOT LC)AND(NOT RC)AND(NOT LRC)=1)THENpstate:=A;LD=0;RD=0;ELSEpstate:=D;LD=1;RD=1;END IF;END
7、 CASE;WAIT UNTIL CP=1;END PROCESS;END A;,练习:根据下面的MDS图写出VHDL源程序,S0,S1,S2,GLED,RLED,YLED,C,C,C,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY light ISPORT(CLK,C:IN STD_LOGIC;RLED:OUT STD_LOGIC;GLED:OUT STD_LOGIC;YLED:OUT STD_LOGIC);END light;,实体设计,ARCHITECTURE a OF light IS TYPE STATE IS(S0,S1,S2);BE
8、GINPROCESS(CLK)VARIABLE pstate:STATE;BEGIN CASE pstate IS WHEN S0=IF C=1 THEN pstate:=S1;GLED IF C=1 THEN pstate:=S2;YLED IF C=1 THEN pstate:=S0;RLED=1;ELSE pstate:=S1;GLED=1;END IF;YLED=0;END CASE;WAIT UNTIL CLK=1;END PROCESSEND a;,5.1.5 数字系统的描述方法(ASM图),ASM图(Algorithmic State Machine Chart)是硬件算法的符号
9、表示方法,可方便地表示数字系统的时序操作。ASM图不同于算法流程,它是一种时钟驱动的流程图。,ASM图由三个基本符号组成:状态框判断框条件输出框,算法状态机图,5.1.5 数字系统的描述方法(ASM图),1、状态框 状态框用一个矩形框表示,状态框内定义在此状态实现的寄存器传输操作和输出。状态框的左上角标明状态的名称,右上角标明分配给该状态的二进制码,,2、判断框 判断框又称为条件分支框,用一个菱形框表示。框中内容是被检验的判别变量和判别条件。其中的判别变量可以是状态变量,可以是外输入变量,也可以是外输入变量;变量的个数可以是一个,也可以是多个;变量的作用可以同等重要,也可以有优先级顺序。,3、
10、条件输出框 条件输出框用一个圆角矩形框表示。条件输出框的输入必定与判断框的某一分支的输出相连。条件输出框内所规定的操作是在与其输入相连的判断框内的判断条件满足的情况下才发生的。因此,条件输出框的独特之处在于:条件输出框中所规定的操作必须在条件满足时才进行。,4、ASM块 ASM图具有时间序列。ASM图状态由现态转到次态的这种状态改变是在时钟信号的控制下实现的。一个ASM图可以由若干个ASM块组成。一个ASM块表示一个时钟周期内的系统状态。每个ASM块必定包含一个且只允许包含一个状态框,与此状态框相连的若干个判断框和条件输出框也属于该ASM块,如图3.5(b)中的虚线框所示。,5、ASM图和状态
11、转移图的区别 ASM图类似于状态转移图:一个ASM块相当于状态转移图中的一个状态;判断框内的信息相当于状态转移图定向线旁边标定的二进制信息。但是ASM图又不同于状态转移图,这是因为在状态转移图中无法表示有条件操作和无条件操作;而ASM图中的每一个ASM块都在状态框和条件输出框内列出了一个时钟脉冲周期应实现的操作,这些操作均在数字处理器中完成,状态的变化则在控制器中实现。因此,状态转移图只能定义一个数字系统的局部,而ASM图则定义了整个数字系统。,例:利用ASM图设计一个汽车尾灯控制电路。其中:(1)RC为右灯亮控制输入,LC为左灯控制输入,RLC为左右灯同时亮输入;(2)RD为右灯亮输出,LD
12、为左灯亮输出;(3)CP为状态时钟输入。,设计步骤:(1)设计分析和状态编码,状态表,设计步骤:(2)汽车尾灯控制的ASM图,设计步骤:(3)汽车尾灯控制的VHDL设计,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY qcwd ISPORT(CP:IN STD_LOGIC;LC,RC,LRC:IN STD_LOGIC;LD,RD:BUFFER STD_LOGIC);END qcwd;ARCHITECTURE a OF wcwd IS TYPE STATE IS(A,B,C,D);BEGIN,PROCESS(CP)VARIABLE pstate:S
13、TATE;BEGINCASE pstate IS WHEN A=IF(LC OR RC OR LRC)=0)THENpstate:=A;LD=0;RD=0;ELSIF(LC AND RC)=1)THENpstate:=D;LD=1;RD=1;ELSIF(LRC=1)THENpstate:=D;LD=1;RD=1;ELSIF(LC=1)THENpstate:=B;LD=1;RD=0;ELSE pstate:=C;LD=0;RD=1;END IF;,WHEN B=IF(LC OR RC OR LRC)=1)THENpstate:=B;LD IF(LC OR RC OR LRC)=1)THENpst
14、ate:=C;LD IF(LC OR RC OR LRC)=1)THENpstate:=D;LD=1;RD=1;ELSEpstate:=A;LD=0;RD=0;END IF;END CASE;WAIT UNTIL CP=1;END PROCESS;END A;,第 12 讲 有限状态机的设计,教 学 目 的,认识状态机及其特点 学习状态转移图的画法 掌握摩尔(MOORE)型状态机的VHDL设计法 掌握米勒(MEALY)型状态机的VHDL设计法,5.2 有限状态机的设计,5.2.1 什么是状态机,有限状态机(简称状态机)相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制的一个状
15、态,通过预先设计的顺序在各状态之间进行转换,状态转换的过程就是实现逻辑功能的过程。,5.2.2 为什么使用状态机,有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。状态机的结构模式相对简单。状态机容易构成性能良好的同步时序逻辑模块。状态机的VHDL表述丰富多样。在高速运算和控制方面,状态机更有其巨大的优势。就可靠性而言,状态机的优势也是十分明显的。,5.2.3 状态机分类,根据输出信号产生的机理不同,状态机可以分成两类:摩尔(Moore)型状态机-输出信号仅和状态有关米勒(Mealy)型状态机-输出信号和状态与输入信号有关,5.2.4 Moore型状态机设计方法,摩尔型状态机的典型结构,
16、More型状态机输出仅和存储电路的状态有关,与外部输入无关,即:外部输出是内部状态的函数。,状态转移图描述方式:,例:设计一个序列检测器。要求检测器连续收到串行码1101后,输出检测标志1,否则输出0。,状态机设计步骤:分析设计要求,列出全部可能状态;画出状态转移图;用VHDL语言描述状态机。,(1)分析设计要求,列出全部可能状态:未收到一个有效位(0):S0 收到一个有效位(1):S1 连续收到两个有效位(11):S2 连续收到三个有效位(110):S3 连续收到四个有效位(1101):S4,(2)状态转移图:,1101,S0/0,S1/0,S2/0,S4/1,S3/0,1,1,0,1,0,
17、1,0,1,0,0,(3)用VHDL语言描述状态机,定义状态机 枚举类型 状态转换描述 输出信号描述,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY moore ISPORT(clk,data:IN STD_LOGIC;zo:OUT STD_LOGIC);END moore;,实体设计,ARCHITECTURE a OF moore ISTYPE STATE IS(S0,S1,S2,S3,S4);SIGNAL pstate:STATE;BEGIN PROCESS(clk)BEGIN IF(clkEVENT AND clk=1)THEN CASE
18、pstate is WHEN S0=IF data=1 THEN pstate IF data=1 THEN pstate IF data=0 THEN pstate IF data=1 THEN pstate IF data=1 THEN pstate=S1;ELSE pstate=S0;END IF;END CASE;END IF;END PROCESS;zo=1 WHEN pstate=s4 ELSE 0;END a;,定义状态机,输出信号描述,状态转移描述,仿 真 波 形,练习:位于十字路口的交通灯,在A方向和B方向各有红、黄、绿三盏灯,每10秒变换一次。变换顺序如下表:,交通灯的全部
19、状态及输出:,画出状态转移图:,S0010100,S1001100,S3100001,S2100010,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jtd IS PORT(clk:IN STD_LOGIC;ZO:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END jtd;,实体设计,ZO=“010100”WHEN pstate=s0 ELSE“001100”WHEN pstate=s1 ELSE“100010”WHEN pstate=s2 ELSE“100001”;END a;,BEGIN PROCESS(clk)BEG
20、IN IF(clkEVENT AND clk=1)THEN CASE pstate is WHEN S0=pstate pstate pstate pstate=S0;END CASE;END IF;END PROCESS;,ARCHITECTURE a OF jtd ISTYPE STATE IS(S0,S1,S2,S3);SIGNAL pstate:STATE;,定义状态机,状态转换描述,输出信号描述,5.2.5 Mealy型状态机设计方法,米勒型状态机的典型结构,Mealy型状态机输出不仅和存储电路状态有关,还和外部输入信号有关,即:外部输出是内部状态和外部输入的函数,状态图描述方式:,
21、LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mealy ISPORT(clk,data:IN STD_LOGIC;zo:OUT STD_LOGIC);END mealy;,实体设计,ARCHITECTURE a OF mealy ISTYPE STATE IS(S0,S1,S2,S3,S4);SIGNAL pstate:STATE;BEGIN PROCESS(clk)BEGIN IF(clkEVENT AND clk=1)THEN CASE pstate is WHEN S0=IF data=1 THEN pstate IF data=1 THEN pstate IF data=1 THEN pstate IF data=1 THEN pstate IF data=1 THEN pstate=S1;ELSE pstate=S0;END IF;zo=0;END CASE;END IF;END PROCESS;END a;,Mealy型状态机描述,