1、第11章 数字系统设计,11-1 数字系统设计概述,11-2 ASM图、MDS图以及ASM图至MDS图的转换,11-3数字密码引爆器系统设计,11-4数字系统设计实例,小结,一、数字系统基本组成,第一节 数字系统设计概述,电脑,计数运算 逻辑运算,应答信号,控制信号,系统核心(最小),注:规模庞大并不意味是一个系统,如存储器,只是一个功能部件。也许由几片MSI构成的电路,包括控制器和受控器就是数字系统。,二、传统数字系统设计方法,试凑法:由真值表、卡诺图、布尔方程、状态表和状态图描述电路的功能,小规模,规模较大,试凑法: 凭借设计者的经验,试凑法:不合适寻找更合适 的设计方法,可以,三、现代数
2、字系统设计方法,从上至下(from top to down):,优点:,四、现代数字系统设计流程,计算机辅助分析与设计(CAD),近期EDA工具,第二节 ASM图、MDS图以及ASM图至MDS图的转换,一、ASM图,1. ASM图符号,(1)状态框,(2)条件分枝框(判断框),上述三种符号构成了ASM图所需要的基本符号,2. ASM图的硬件实现,(1)ASM图有三个状态,故有两个状态变量Q2Q1,(2)一个外输入X、两个输出Z1和Z2,两个D触发器。,(3)下面分析状态转换表,Q2 Q1 X,Q2 n+1 Q1 n+1,Z1 Z2,输出方程:,驱动方程:,由此可得PLA硬件逻辑图,二、MDS图
3、,MDS图与状态图十分相似,且扩展了状态图的功能,又简练了 状态图。MDS图表现设计过程时,既方便清晰又具有较大的灵活性。,1. MDS图符号,只要时钟CP的有效沿到来,表示状态Si无条件转换到状态Sj,只要时钟CP的有效沿到来,表示状态Si在条件E下转换到状态Sj E可以是积项, 布尔表达式等。,2. 状态图到MDS图,这是一个莫尔型电路,三个状态A、B、C和 输出Z1Z2依次为01、11、00。这说明: A态到B态时,Z1由0变1,Z1有效; B态到C态时,Z1由1变0,Z1无效。,Z1,加了三个输入X1、X2、X3的 情况。,现在再考虑有条件输出的情况:,有三个状态A、B、C,当 输入为
4、1时,输出为1,AB; 当输入为0时,输出为0,AC(输入/输出),到MDS图,三、ASM图至MDS图的转换,转换原则:,1.ASM图的状态框对应MDS图中的Si。,2.ASM图的判别框构成MDS图的分支。,START?,3.控制器的输出是为实现状态框的操作而发出的信息, 对应 MDS图中状态圈外侧的输出。,再举一例:,4.ASM图的条件输出与MDS图条件输出相对应。,注:A态返回到A态时, 有一条件输出:当X=0, CP=0时,RUN有效。,到MDS图,第三节 数字密码引爆器系统设计,下面讨论一个数字密码引爆系统,用它将从上至下的设计概念融会贯通。,设计步骤: 1.系统级分析,确定初步方案;
5、 2.将设计细分,进行模块划分; 3.VHDL综合.,一、数字密码引爆器顶层设计1.顶层方案设计系统密码采用三个十进制数字,当三个输入正确,就可引爆; 当输入不正确或密码位数不对时引爆,产生错误,系统报警。,输入电路:,(1)开始输入数字密码前,需设置一个READY键,表示电路系统准备就绪,可以输入密码。,(2)当引爆事件发生后,应重新恢复到等待状态,需设置一个WAIT_T键。,(3)若没有正确使用密码,产生报警信号,这时再按READY和WAIT_T键不起作用,必须内部保安人员重新设置到等待状态,需重新设置一个SETUP键。,(4)密码正确输入以后,设置一个引爆按键FIRE,(5) 十个数字按
6、键A0-A9作为密码输入,密码采用三位且设置在内部,OSCC为1MHz输入。,输出电路:,(1)当密码正确输入并点火后,输出一绿灯信号LT。,(2)当密码操作有误,输出一红灯信号,并伴随报警装置LB鸣叫。,注:在按WAIT_T后进入等待状态,LT、HT和LB皆不工作。,(3)设置一七段显示数码管显示输入的密码数据。,引爆过程如下:,(3)若按上述操作正确后,启动FIRE,LT绿灯亮。,按错密码按上述操作时,报警喇叭LB响,RT红灯亮。,(4)引爆正确后,需按WAIT_T键,使系统进入等待状态。,报警状态下,按READY和WAIT_T均不起作用,按另外的内部键SETUP,使系统进入等待状态。,(
7、5)按错密码可在按FIRE前,按READY键重新启动引爆程序。,二、顶层实体的VHDL程序,第一步:为系统建立系统名。,第二步:描述顶层的接口,包括输入信号、输出信号、信号方向、数据类型等。,LIBRARY ieee; USE ieee.std_logic_1164.all;,ENTITY fire_d ISEND fire_d;,PORT(A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,WAIT_T:IN std_logic;FIRE,READY,SETUP,OSCC:IN std_logic;LT,RT,LB,A,B,C,D,E,F,G:OUT std_logic);,三、顶层
8、结构体的设计及VHDL实现,从上至下的精神是将系统划分为几个部分,如控制部分和受控部分,受控部分又靠各种模块来实现。,(1) A0-A9十个数字进入系统编码器变成BCD码,并显示,(2)密码是内部设置为Z1、Z2、Z3,它是串行输出,所以用一4乘3选1电路构成。,(3)密码需和键入的BCD码比较,需设一个4比特比较电路。比较结果送入控制器。,至于READY、FIRE等输入信号,可直接送入控制器,由于按键产生引起电平抖动,最好加入同步消抖电路。,由于同步消抖输入是低电平,又由于按键产生是高电平,所以要加入一个反相器。,4乘3选1的地址由计数器控制,计数器由控制器控制。,当WAIT_T有效时,提供
9、WAIT_L信号封锁RS触发器,使LT、RT和LB无效。,系统使用1MHz信号,经过分频得OSC2为1000Hz, 再分频为4Hz(OSC1)提供给系统。,至此顶层模块划分完成,如上图所示。,VHDL结构描述程序如下:,ARCHITECTURE fire_d_arc OF fire_d IS,COMPONENT se7 ISPORT(A,B,C,D:IN std_logic;E,F,G,H,I,J,K:OUT std_logic); END COMPONENT;,COMPONENT kcom ISPORT(A,B,C,D:IN std_logic;E,F,G,H:IN std_logic;T:
10、OUT std_logic); END COMPONENT;,COMPONENT kbian ISPORT(A,B,C,D, E,F,G,H,I,J :IN std_logic;T,X,Y,Z,W:OUT std_logic); END COMPONENT;,COMPONENT k4mux ISPORT(A,B:IN std_logic;C,D, E,F:OUT std_logic); END COMPONENT;,BEGIN,U29:kbian PORT MAP(A01,A11,A21,A31,A41,A51,A61,A71,A81,A91,DATA_IN1,B1,B2,B3,B4);,U3
11、0:kcom PORT MAP(B1,B2,B3,B4,E1,E2,E3,E4,Dep);,U32:k4mux PORT MAP(CT0,CT1,E1,E2,E3,E4);,U41:se7 PORT MAP(B1,B2,B3,B4,A,B,C,D,E,F,G);,END fire_d_arc;,二、次级电路分析与VHDL实现,1.受控部分电路设计,主要包括编码电路、消抖同步电路、比较电路、 预置码电路、计数器选择电路和输出电路等。,(1)编码电路,编码电路是10线至4线的BCD编码器,又因前级消抖电路输出为高电平,所以A01A91进入编码器为高电平。,输出B4为MSB,B1为LSB。DATA_
12、IN1为当按下按键时,为高电平。,PORT(A,B,C,D,E,F,G,H,I,J:IN std_logic;,T,X,Y,Z,W:OUT std_logic);,(2)消抖同步电路,SETUP、WAIT_T、READY、FIRE和A0-A9都需要一同步消抖电路,如右图所示:,VHDL程序如下:,ENTITY ksy ISEND ksy;,PORT(A,B:IN std_logic;,C:OUT std_logic);,C,SIGNAL T1,T2,T3,T4,T5,T6:std_logic;,BEGIN,U0:knand2 PORT MAP(A,T1,T2);,(3)比较器电路,(B)比较器
13、的另外输入来自预置密码电路的输出E1至E4的四位数据。,(C)结果相等时,输出Dep为1;不等时,输出Dep为0。,2.控制器电路设计,控制器在系统中只占硬件的很小一部分,因此对 控制器的设计不是从如何最简化入手,而是着重 考虑逻辑清楚,便于修改。,(1)建立等待状态:,系统处于引爆后、上电状态时,系统还未进入正常的等待状态。此时系统不接受除WAIT_T外的任何信号,当键入WAIT_T后,系统进入等待状态,输出WAIT_L信号,将引爆指示灯LT和报警指示灯RT以及报警器切断,该状态可用右图(ASM)表示。,(2)准备操作状态:,当WAIT_T按下以后,进入准备操作状态。此时READY信号来到后
14、,为计数器清零RESET_CNT, 转入第三状态。输入密码状态,3.输入密码状态,进入此状态后, EN有效,允许密码和FIRE输入。,收前三个信号时先判断是否为数据信号,若是数据信号,使计数器加1,选出对应的预置码进行比较,若三个数全正确,转到下一状态。,若三个数有一个不正确,转入报警状态。,4.引爆操作状态,若有信号键入,判断是数据信号还是FIRE:,(1)若是FIRE信号,则发出SLT信号,LT亮,密码引爆器被引爆。,(2)若是数据信号,则进入报警状态,此时如果启动READY键,系统发出RESET_P信号返回到输入密码状态。,(3)报警状态有两种情况:,(A)没按FIRE键时,可按READ
15、Y键返回到输入密码操作状态;,(B)按FIRE键后,必须按SETUP键返回到等待操作状态状态。,输入密码,等待状态,将ASM图改成MDS图,得到6个激励方程和有关输出方程如下:,控制器的部分VHDL程序如下:,WHEN QA=H=0; -时钟信号CNP置0IF A=0 THEN -WAIT_T没按下current_state=QA;ELSE -WAIT_T按下current_state=QB;M=0; L=1; K=1;END IF;,PACKAGE state_pack ISTYPE state IS(QA,QB,QC,QD,QE,QF); END state_pack;,LIBRARY i
16、eee; USE ieee.std_logic_1164.all; USE work.state_pack.all;,ENTITY controll ISPORT(A,B,C,D,E,F,G,OSC2:IN std_logic;H,I,J,K,L,M:OUT std_logic); END controll;,ARCHITECTURE controll_arc OF controll ISSIGNAL current_state:state_pack:=QA; BEGINPROCESSBEGIN,WAIT UNTILL OSC2=1 AND OSC2EVENT;M= 1;CASE curren
17、t_state IS,若WAIT_T(A)有效,进入B状态,公式 (2)相对应;L(SLT)和 K(SLA)置 1,公式(11)和(12);M( WAIT_L) 置0,公式(8)的第一个乘积项与之相对应。,第四节 数字系统设计实例,这一节,介绍三个系统设计实例,以便更好掌握现代数字系统设计方法。,1.汽车尾灯控制系统;,2.四路口交通灯控制系统;,3.自动售货机控制系统。,小 结,1.数字系统由控制电路和受控电路组成,控制电路受同一时钟的控制。,2.ASM表面上与通常的软件流程图非常相似,但ASM图表示事件的精确时间间隔序列,而一般的软件流程图没有时间的概念。,MDS图与状态图十分相似,但MD
18、S图比状态图简练,并且扩展了状态图的功能,用MDS图表示控制器的控制过程时,既方便清晰有具有较大的灵活性。,ASM图或MDS图的建立是整个过程中的关键步骤,这一步解决的好,以后各个步骤就比较容易解决。用ASM图或MDS图描述一个数字系统不是唯一的,应选择最佳的ASM图或MDS图方案。,3.从上至下的设计方法是从宏观的总体要求入手,尽可能将数字系统划分为较简单的较小的子系统,再通过逻辑接口设计用各种划分的逻辑电路实现所要求的数字系统,4. 数字系统的设计分为系统级设计和逻辑级设计两个阶段。系统级设计即原理性设计,是数字系统设计的关键步骤,也是最困难的、最具有创造性的一步。画出ASM图或MDS图是完成系统级设计的标志。,5.系统级设计的具体步骤是: (1)在详细了解设计任务的基础上,确定顶层系统的方案; (2)列出各个输入变量; (3)列出各个输出变量; (4)给定时钟周期T; (5)画出ASM图或MDS图。,作 业,9-1,9-3,9-5,9-6,9-7,9-9,9-11,
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1