您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第五章典型电路相关设计
第五章典型电路设计5.1数字系统的设计方法5.2有限状态机的设计5.1.1数字系统的组成数字系统分为两个部分——数字处理器和控制器控制器数字处理器数字处理器…输出数据数字处理器…控制信号状态信号输入信号输入数据控制器:负责规定算法的步骤,在每一个计算步骤给数据处理器发出命令信号,同时接收来自数字处理器的状态变量,确定下一个计算步骤,以确保算法按正确的次序实现。数字处理器:由寄存器和组合电路组成。寄存器用于短暂存储信息,组合电路实现对数据的加工和处理。5.1.2数字系统的设计方法自顶向下法自顶向下(toptodown)法是一种从抽象定义到具体的实现,从高层次到低层次逐步求精的分层次、分模块的设计方法,它是数字系统设计中最常用的设计方法之一。该设计方法的具体实施过程是:首先根据系统的总体功能要求,进行系统级设计;然后按照一定的标准将整个系统划分成若干个子系统;接着将各个子系统划分为若干功能模块,针对各模块进行逻辑电路级设计。5.1.3数字系统的设计过程数字系统设计分为系统级设计和逻辑级设计两个阶段。系统级设计:在详细了解设计任务的基础上,确定顶层系统的方案;描述系统功能,设计算法(MDS图、ASM图);逻辑级设计:根据算法选择电路结构;设计验证(仿真、测试)和设计实现;(EDA软件)5.1.4数字系统的描述方法(MDS图)备有记忆文档的状态图(MDS)备有记忆文档的状态图MDS(MemonicDocumentedDiagrams),又称为助记状态图。它是1980年由美国人WilliamFletcher提出的一种系统设计方法。MDS图可以描述出整个数字系统的逻辑关系,并且与硬件有良好的对应关系。MDS图可以清楚地反映出所要设计部分的电路应提供的状态数、各个状态之间的转换必须符合的条件以及在状态转换时需要哪些输入信号、何时产生输出信号、输出信号的输出方式等,以便设计者依照MDS图方便地设计出符合数字系统要求的逻辑电路。5.1.4数字系统的描述方法(MDS图)1、MDS图的表示方法MDS图用圆圈表示状态,圆圈内的符号表示状态名称,圆圈外的符号或者逻辑表达式表示输出MDS图用定向线表示状态转换方向,定向线旁的符号或者逻辑表达式表示状态转换条件。MDS图常用符号及含义如下:Si:表示状态Si。SiSj:表示状态Si无条件地转换到Sj,即只要系统时钟的有效沿到来,状态从Si无条件地转换到Sj。SiSjT:表示在满足条件T的情况下,状态Si转换到Sj;转换条件T可以是一个变量,也可以是一个较为复杂的布尔代数表达式。需要指出,该状态的转换必须在系统时钟有效沿的作用下实现。SiZ↑:表示进入状态Si时,输出信号Z变为有效。若Z的有效电平已经确定,则可在Z旁边注明。例如:Z为高有效,则用Z=H↑来替代Z↑。2、MDS图的常用符号及含义SiZ↓:表示进入状态Si时,输出信号Z变为无效。若Z的有效电平已经确定,则可在Z旁边注明。例如:Z为高有效,则用Z=H↓来替代Z↓。SiZ↑↓:表示进入状态Si时,输出信号Z变为有效,退出状态Si时,Z变为无效。若Z的有效电平已经确定,则可在Z旁边注明。例如:Z为高有效,则用Z=H↑↓来替代Z↑↓。SiZ↑↓=Si·T:表示如果条件T满足,则进入状态Si时,输出信号Z变为有效;退出状态Si时,Z变为无效。Si*T:表示T是一个异步输入,而Si是在异步输入T的作用下才退出这一状态。例:利用MDS图设计一个汽车尾灯控制电路。其中:(1)RC为右灯亮控制输入,LC为左灯控制输入,RLC为左右灯同时亮输入;(2)RD为右灯亮输出,LD为左灯亮输出;(3)CP为状态时钟输入。设计步骤:(1)设计分析和状态编码,状态表输入LCRCLRC输出LDRD说明状态00000左右灯灭A100010001100111左灯亮右灯亮左右灯亮BCD1010111111左右灯亮DD1101111111错误控制DD设计步骤:(2)汽车尾灯控制的MDS图ABDCLRCRCLCLRCRCLCLRCRCLCLRCRCLCLRCRCLCLRCRCLCLRCRCLCLD↑↓RD↑↓LD↑↓RD↑↓设计步骤:(3)汽车尾灯控制的VHDL设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYqcwdISPORT(CP:INSTD_LOGIC;LC,RC,LRC:INSTD_LOGIC;LD,RD:OUTSTD_LOGIC);ENDqcwd;ARCHITECTUREaOFwcwdISTYPESTATEIS(A,B,C,D);BEGINPROCESS(CP)VARIABLEpstate:STATE;BEGINCASEpstateISWHENA=IF(((NOTLC)AND(NOTRC)AND(NOTLRC))=‘1’)THENpstate:=A;LD=‘0’;RD=‘0’;ELSIF((LCAND(NOTRC)AND(NOTLRC))=‘1’)THENpstate:=B;LD=‘1’;RD=‘0’;ELSIF(((NOTLC)ANDRCAND(NOTLRC))=‘1’)THENpstate:=C;LD=‘0’;RD=‘1’;ELSIF((LRCOR(LCANDRC))=‘1’)THENpstate:=D;LD=‘1’;RD=‘1’;ENDIF;ABDCLRCRCLCLRCRCLCLRCRCLCLRCRCLCLD↑↓RD↑↓LD↑↓RD↑↓WHENB=IF(((NOTLC)AND(NOTRC)AND(NOTLRC))=‘1’)THENpstate:=A;LD=‘0’;RD=‘0’;ELSEpstate:=B;LD=‘1’;RD=‘0’;ENDIF;WHENC=IF(((NOTLC)AND(NOTRC)AND(NOTLRC))=‘1’)THENpstate:=A;LD=‘0’;RD=‘0’;ELSEpstate:=C;LD=‘0’;RD=‘1’;ENDIF;WHEND=IF(((NOTLC)AND(NOTRC)AND(NOTLRC))=‘1’)THENpstate:=A;LD=‘0’;RD=‘0’;ELSEpstate:=D;LD=‘1’;RD=‘1’;ENDIF;ENDCASE;WAITUNTILCP=‘1’;ENDPROCESS;ENDA;ABLRCRCLCLRCRCLCCALRCRCLCDA练习:根据下面的MDS图写出VHDL源程序S0S1S2GLED↑↓RLED↑↓YLED↑↓CCCCCCLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYlightISPORT(CLK,C:INSTD_LOGIC;RLED:OUTSTD_LOGIC;GLED:OUTSTD_LOGIC;YLED:OUTSTD_LOGIC);ENDlight;实体设计ARCHITECTUREaOFlightISTYPESTATEIS(S0,S1,S2);BEGINPROCESS(CLK)VARIABLEpstate:STATE;BEGINCASEpstateISWHENS0=IFC=‘1’THENpstate:=S1;GLED=‘1’;ELSEpstate:=S2;YLED=‘1’;ENDIF;RLED=‘0’;WHENS1=IFC=‘1’THENpstate:=S2;YLED=‘1’;ELSEpstate:=S0;RLED=‘1’;ENDIF;GLED=‘0’;WHENS2=IFC=‘1’THENpstate:=S0;RLED=‘1’;ELSEpstate:=S1;GLED=‘1’;ENDIF;YLED=‘0’;ENDCASE;WAITUNTILCLK=‘1’;ENDPROCESSENDa;S0S1S2GLED↑↓RLED↑↓YLED↑↓CCCCCC5.1.5数字系统的描述方法(ASM图)ASM图(AlgorithmicStateMachineChart)是硬件算法的符号表示方法,可方便地表示数字系统的时序操作。ASM图不同于算法流程,它是一种时钟驱动的流程图。ASM图由三个基本符号组成:状态框判断框条件输出框算法状态机图5.1.5数字系统的描述方法(ASM图)1、状态框状态框用一个矩形框表示,状态框内定义在此状态实现的寄存器传输操作和输出。状态框的左上角标明状态的名称,右上角标明分配给该状态的二进制码,寄存器操作和输出名称二进制代码2、判断框判断框又称为条件分支框,用一个菱形框表示。框中内容是被检验的判别变量和判别条件。其中的判别变量可以是状态变量,可以是外输入变量,也可以是外输入变量;变量的个数可以是一个,也可以是多个;变量的作用可以同等重要,也可以有优先级顺序。条件分支一分支二3、条件输出框条件输出框用一个圆角矩形框表示。条件输出框的输入必定与判断框的某一分支的输出相连。条件输出框内所规定的操作是在与其输入相连的判断框内的判断条件满足的情况下才发生的。因此,条件输出框的独特之处在于:条件输出框中所规定的操作必须在条件满足时才进行。寄存器操作和输出4、ASM块ASM图具有时间序列。ASM图状态由现态转到次态的这种状态改变是在时钟信号的控制下实现的。一个ASM图可以由若干个ASM块组成。一个ASM块表示一个时钟周期内的系统状态。每个ASM块必定包含一个且只允许包含一个状态框,与此状态框相连的若干个判断框和条件输出框也属于该ASM块,如图3.5(b)中的虚线框所示。cnl←cnl+1xvcnl←0S00001……01S101S210…011cnl←0(a)(b)5、ASM图和状态转移图的区别ASM图类似于状态转移图:一个ASM块相当于状态转移图中的一个状态;判断框内的信息相当于状态转移图定向线旁边标定的二进制信息。但是ASM图又不同于状态转移图,这是因为在状态转移图中无法表示有条件操作和无条件操作;而ASM图中的每一个ASM块都在状态框和条件输出框内列出了一个时钟脉冲周期应实现的操作,这些操作均在数字处理器中完成,状态的变化则在控制器中实现。因此,状态转移图只能定义一个数字系统的局部,而ASM图则定义了整个数字系统。例:利用ASM图设计一个汽车尾灯控制电路。其中:(1)RC为右灯亮控制输入,LC为左灯控制输入,RLC为左右灯同时亮输入;(2)RD为右灯亮输出,LD为左灯亮输出;(3)CP为状态时钟输入。设计步骤:(1)设计分析和状态编码,状态表输入LCRCLRC输出LDRD说明状态00000左右灯灭A100010001100111左灯亮右灯亮左右灯亮BCD1010111111左右灯亮DD1101111111错误控制DD设计步骤:(2)汽车尾灯控制的ASM图LD=0,RD=0LC+RC+LRCLC·RCLRCLCLD=0,RD=1LC+RC+LRCLD=1,RD=1LD=1,RD=0LC+RC+LRCLC+RC+LRC(A)00(C)00(D)00(B)0000000011111110设计步骤:(3)汽车尾灯控制的VHDL设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYqcwdISPORT(CP:INSTD_LOGIC;LC,RC,LRC:INSTD_LOGIC;LD,RD:BUFFERSTD_LOGIC);ENDqcwd;ARCHITECTUREaOFwcwdISTYPESTATEIS(A,B,C,D);BEGINPROCESS(CP)VARIABLEpstate:STATE;BEGINCASEpstateISWHENA=IF((LCORRCORLRC)=‘0’)THENpstate:=A;LD=‘0’;RD=‘0’;ELSIF((LCANDRC)=‘1’)THENpstate:=D;LD=‘1’;RD=‘1’;ELSIF(LRC=‘1’)THENpstate:=D;LD=‘1’;RD=‘1
本文标题:第五章典型电路相关设计
链接地址:https://www.777doc.com/doc-4979655 .html