《第五章典型电路设计》由会员分享,可在线阅读,更多相关《第五章典型电路设计(56页珍藏版)》请在金锄头文库上搜索。
1、第五章第五章 典型电路设计典型电路设计5.1 数字系统的设计方法数字系统的设计方法5.2 有限状态机的设计有限状态机的设计5.1.1 数字系统的组成数字系统的组成数字系统分为两个部分数字处理器和控制器控制器:负责规定算法的步骤,在每一个计算步骤给数据处理器发出命令信号,同时接收来自数字处理器的状态变量,确定下一个计算步骤,以确保算法按正确的次序实现。数字处理器:由寄存器和组合电路组成。寄存器用于短暂存储信息,组合电路实现对数据的加工和处理。5.1.2 5.1.2 数字系统的设计方法数字系统的设计方法自顶向下法自顶向下法自顶向下(toptodown)法是一种从抽象定义到具体的实现,从高层次到低层
2、次逐步求精的分层次、分模块的设计方法,它是数字系统设计中最常用的设计方法之一。该设计方法的具体实施过程是:l首先根据系统的总体功能要求,进行系统级设计;l然后按照一定的标准将整个系统划分成若干个子系统;l接着将各个子系统划分为若干功能模块,针对各模块进行逻辑电路级设计。 5.1.3 5.1.3 数字系统的设计过程数字系统的设计过程数字系统设计分为系统级设计和逻辑级设计两个阶段。系统级设计:u在详细了解设计任务的基础上,确定顶层系统的方案 ;u描述系统功能,设计算法(MDS图、ASM图);逻辑级设计:l根据算法选择电路结构;l设计验证(仿真、测试)和设计实现;(EDA软件)5.1.4 5.1.4
3、 数字系统的描述方法(数字系统的描述方法( MDSMDS图)图)备有记忆文档的状态图备有记忆文档的状态图(MDS)备有记忆文档的状态图MDS(MemonicMDS(Memonic Documented Documented Diagrams)Diagrams),又称为助记状态图。它是1980年由美国人WilliamFletcher提出的一种系统设计方法。MDS图可以描述出整个数字系统的逻辑关系,并且与硬件有良好的对应关系。MDS图可以清楚地反映出所要设计部分的电路应提供的状态数、各个状态之间的转换必须符合的条件以及在状态转换时需要哪些输入信号、何时产生输出信号、输出信号的输出方式等,以便设计者
4、依照MDS图方便地设计出符合数字系统要求的逻辑电路。5.1.4 5.1.4 数字系统的描述方法(数字系统的描述方法( MDSMDS图)图)1、MDS图的表示方法uMDS图用圆圈表示状态,圆圈内的符号表示状态名称,圆圈外的符号或者逻辑表达式表示输出uMDS图用定向线表示状态转换方向,定向线旁的符号或者逻辑表达式表示状态转换条件。2、MDS图的常用符号及含义例:利用例:利用MDSMDS图设计一个汽车尾灯控制电路。图设计一个汽车尾灯控制电路。其中其中: :(1 1)RCRC为右灯亮控制输入,为右灯亮控制输入,LCLC为左灯控制输入,为左灯控制输入,RLCRLC为左右灯同时亮输入;为左右灯同时亮输入;
5、(2 2)RDRD为右灯亮输出,为右灯亮输出,LDLD为左灯亮输出;为左灯亮输出;(3 3)CPCP为状态时钟输入。为状态时钟输入。设计步骤:设计步骤:(1)设计分析和状态编码,状态表)设计分析和状态编码,状态表输入输入 LC RC LRC LC RC LRC 输输 出出LD RDLD RD说说 明明状状 态态 0 0 0 0 0 0 0 00 0左右灯灭左右灯灭A A 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 01 0 0 1 0 1 1 1 1 1 左灯亮左灯亮右灯亮右灯亮左右灯亮左右灯亮B BC CD D 1 0 11 0 1 0 1 1 0 1 1 1
6、 11 1 1 1 1 1 左右灯亮左右灯亮D DD D 1 1 01 1 0 1 1 1 1 1 1 1 11 1 1 1 1 1错误控制错误控制D DD D设计步骤:设计步骤:(2)汽车尾灯控制的)汽车尾灯控制的MDS图图A AB BD DC CLDRDLDRD设计步骤:设计步骤:(3)汽车尾灯控制的)汽车尾灯控制的VHDL设计设计LIBRARY IEEELIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ENTITY qcwdqcwd IS ISPORT( CP: PORT( CP: IN
7、IN STD_LOGIC; STD_LOGIC; LC,RC,LRC: LC,RC,LRC:ININ STD_LOGIC; STD_LOGIC; LD,RD: LD,RD: OUTOUT STD_LOGIC); STD_LOGIC);END END qcwdqcwd; ;ARCHITECTURE a OF ARCHITECTURE a OF wcwdwcwd IS IS TYPE STATE IS (A,B,C,D); TYPE STATE IS (A,B,C,D);BEGINBEGINPROCESS(CP)PROCESS(CP)VARIABLE VARIABLE pstatepstate :
8、 STATE; : STATE;BEGINBEGINCASE CASE pstate IS IS WHEN A=WHEN A= IF (NOT LC) AND (NOT RC) AND (NOT LRC)= IF (NOT LC) AND (NOT RC) AND (NOT LRC)=1 1) ) THENTHENpstatepstate:=A;:=A;LD=LD=0 0;RD=;RD=0 0; ; ELSIF ( LC AND (NOT RC) AND (NOT LRC)=ELSIF ( LC AND (NOT RC) AND (NOT LRC)=1 1) THEN) THENpstatep
9、state:=B;:=B;LD=LD=1 1;RD=;RD=0 0; ; ELSIF (NOT LC) AND RC AND (NOT LRC)= ELSIF (NOT LC) AND RC AND (NOT LRC)=1 1) THEN) THENpstatepstate:=C;:=C;LD=LD=0 0;RD=;RD=1 1; ; ELSIF ( LRC OR ( LC AND RC ) = ELSIF ( LRC OR ( LC AND RC ) =1 1) THEN) THENpstatepstate:=D;:=D;LD=LD=1 1;RD=;RDWHEN B= IF (NOT LC)
10、 AND (NOT RC) AND (NOT LRC)= IF (NOT LC) AND (NOT RC) AND (NOT LRC)=1 1) ) THENTHENpstatepstate:=A;:=A;LD=LD=0 0;RD=;RD=0 0; ; ELSE ELSEpstatepstate:=B;:=B;LD=LD=1 1;RD=;RDWHEN C= IF (NOT LC) AND (NOT RC) AND (NOT LRC)= IF (NOT LC) AND (NOT RC) AND (NOT LRC)=1 1) ) THENTHENpstatepstate:=A;:=A;LD=LD=
11、0 0;RD=;RD=0 0; ; ELSE ELSEpstatepstate:=C;:=C;LD=LD=0 0;RD=;RDWHEN D= IF (NOT LC) AND (NOT RC) AND (NOT LRC)= IF (NOT LC) AND (NOT RC) AND (NOT LRC)=1 1) ) THENTHENpstatepstate:=A;:=A;LD=LD=0 0;RD=;RD=0 0; ; ELSE ELSEpstatepstate:=D;:=D;LD=LD=1 1;RD=;RD IF C= IF C=1 1 THEN THEN pstatepstate:=S1;GLE
12、D=:=S1;GLED=1 1; ;ELSE ELSE pstatepstate:=S2; YLED=:=S2; YLED=1 1; ; END IF; RLED= END IF; RLED IF C= IF C=1 1 THEN THEN pstatepstate:=S2; YLED=:=S2; YLED=1 1; ;ELSE ELSE pstatepstate:=S0; RLED=:=S0; RLED=1 1; ; END IF; GLED= END IF; GLED IF C= IF C=1 1 THEN THEN pstatepstate:=S0; RLED=:=S0; RLED=1
13、1; ;ELSE ELSE pstatepstate:=S1; GLED=:=S1; GLED=1 1; ; END IF; YLED= END IF; YLEDWHEN A= IF ( LC OR RC OR LRC )= IF ( LC OR RC OR LRC )=0 0) THEN) THENpstatepstate:=A;:=A;LD=LD=0 0;RD=;RD=0 0; ; ELSIF ( LC AND RC ) =ELSIF ( LC AND RC ) =1 1) THEN) THENpstatepstate:=D;:=D;LD=LD=1 1;RD=;RD=1 1; ; ELSI
14、F ( LRC = ELSIF ( LRC =1 1) THEN) THENpstatepstate:=D;:=D;LD=LD=1 1;RD=;RD=1 1; ; ELSIF ( LC = ELSIF ( LC =1 1 ) THEN ) THENpstatepstate:=B;:=B;LD=LD=1 1;RD=;RD=0 0; ; ELSE ELSE pstatepstate:=C;:=C;LD=LD=0 0;RD=;RDWHEN B= IF ( LC OR RC OR LRC )= IF ( LC OR RC OR LRC )=1 1) THEN) THENpstatepstate:=B;
15、:=B;LD=LD=1 1;RD=;RD=0 0; ; ELSE ELSEpstatepstate:=A;:=A;LD=LD=0 0;RD=;RDWHEN C= IF ( LC OR RC OR LRC )= IF ( LC OR RC OR LRC )=1 1) THEN) THENpstatepstate:=C;:=C;LD=LD=0 0;RD=;RD=1 1; ; ELSE ELSEpstatepstate:=A;:=A;LD=LD=0 0;RD=;RDWHEN D= IF ( LC OR RC OR LRC )= IF ( LC OR RC OR LRC )=1 1) THEN) TH
16、ENpstatepstate:=D;:=D;LD=LD=1 1;RD=;RD=1 1; ; ELSE ELSEpstatepstate:=A;:=A;LD=LD=0 0;RD=;RD IF data=1 THEN pstate=S1; ELSE pstate IF data=1 THEN pstate=S2; ELSE pstate IF data=0 THEN pstate=S3; ELSE pstate IF data=1 THEN pstate=S4; ELSE pstate IF data=1 THEN pstate=S1; ELSE pstate=S0; END IF; END CA
17、SE; END IF; END PROCESS; zo=1 WHEN pstate=s4 ELSE 0; END a; 定义状态机定义状态机输出信号描述输出信号描述状态转移描述状态转移描述仿仿 真真 波波 形形练习:练习:位于十字路口的交通灯,在位于十字路口的交通灯,在A A方向和方向和B B方向方向各有红、黄、绿三盏灯,每各有红、黄、绿三盏灯,每1010秒变换一次。变换秒变换一次。变换顺序如下表:顺序如下表:A方向方向B方向方向绿绿红红黄黄红红红红绿绿红红黄黄交通灯的全部状态及输出:交通灯的全部状态及输出:状态状态A方向方向(红绿黄)(红绿黄)B方向方向(红绿黄)(红绿黄)状态状态A方向方向
18、(红绿黄)(红绿黄)B方向方向(红绿黄)(红绿黄)S00 1 01 0 0S10 0 11 0 0S21 0 00 1 0S31 0 00 0 1 画出状态转移图画出状态转移图: : S0010100S1001100S3100001S2100010LIBRARY 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 pstate pstate pstate pstate IF data=1 THE
19、N pstate=S1; ELSE pstate=S0; END IF; zo IF data=1 THEN pstate=S2; ELSE pstate=S0; END IF; zo IF data=1 THEN pstate=S2; ELSE pstate=S3; END IF; zo IF data=1 THEN pstate=S4; zo=1; ELSE pstate=S0; zo IF data=1 THEN pstate=S1; ELSE pstate=S0; END IF; zo=0; END CASE; END IF; END PROCESS;END a; Mealy型型状态机描述状态机描述