Presentation is loading. Please wait.

Presentation is loading. Please wait.

第九章 数字系统设计 数字系统设计概述 ASM图、MDS图以及 ASM图至MDS图的转换 数字密码引爆器系统设计 数字系统设计实例 小结.

Similar presentations


Presentation on theme: "第九章 数字系统设计 数字系统设计概述 ASM图、MDS图以及 ASM图至MDS图的转换 数字密码引爆器系统设计 数字系统设计实例 小结."— Presentation transcript:

1 第九章 数字系统设计 数字系统设计概述 ASM图、MDS图以及 ASM图至MDS图的转换 数字密码引爆器系统设计 数字系统设计实例 小结

2 第一节 数字系统设计概述 一、数字系统基本组成 电脑 系统核心(最小) 计数运算 逻辑运算 输入 存 输出 储 受控 控制器 接口 器 电路
第一节 数字系统设计概述 一、数字系统基本组成 系统核心(最小) 控制器 电路 数据输入 计数运算 逻辑运算 电脑 输入 输出 接口 受控 电路 控制信号 应答信号 数据输出 注:规模庞大并不意味是一个系统,如存储器,只是一个功能部件。也许 由几片MSI构成的电路,包括控制器和受控器就是数字系统。

3 第一节 数字系统设计概述 二、传统数字系统设计方法 试凑法:由真值表、卡诺图、布尔方程、 状态表和状态图描述电路的功能。 小规模 规模较大
第一节 数字系统设计概述 二、传统数字系统设计方法 试凑法:由真值表、卡诺图、布尔方程、 状态表和状态图描述电路的功能。 小规模 规模较大 试凑法: 凭借设计者的经验 试凑法:不合适 寻找更合适的设计方法 可以

4 第一节 数字系统设计概述 三、现代数字系统设计方法 B C B C A 从上至下(from top to down): 上 下 D B
第一节 数字系统设计概述 三、现代数字系统设计方法 A B C 从上至下(from top to down): B C D B & 上层模块A 设计者从整个系统逻辑出发,进行最上层的系统设计,而后按一定的原则将全局系统分成若干子系统,逐级向下,再将每个子系统分为若干个功能模块、子模块、基本模块。 & =1 分解 E C & 优点: 中间层次模块 适合大规模数字系统设计,使得设计步骤之间相互联系越来越紧密、协调,以求数字系统获得良好的性能和正确的结果。 分解 D & =1 E & =1 下层模块

5 第一节 数字系统设计概述 四、现代数字系统设计流程 计算机辅助分析与设计(CAD) 早期电子设计自动化(EDA)
第一节 数字系统设计概述 四、现代数字系统设计流程 概念设计 计算机辅助分析与设计(CAD) 系统验证 系统设计和描述 早期电子设计自动化(EDA) 系统划分 近几年来,划分、综合、验证都由EDA完成。EDA软件还在优化、发展,使从上至下的设计方法得到广泛的应用。 近期EDA工具 功能验证 子系统功能描述 设计者 从上层系统级开始,对电路功能描述,从上至下地跨越各个层次完成整个设计。 综合 逻辑验证 逻辑描述 芯片

6 第二节 ASM图、MDS图 以及ASM图至MDS图的转换
ASM(Algorithmic State Machine)算法流程图,建立ASM图是数字系统的关键步骤。 ASM图表面上和软件流程图相似, 但ASM图有时间序列, 即每隔规定的数量脉冲转到下一状态。 000 (P) 1. ASM图符号 (1)状态框 名称 101 IN ← X AC ← 0 Sr = 1 001 (Q) 每隔规定的数量脉冲转到下一状态。 010 (R)

7 第二节 ASM图、MDS图 以及ASM图至MDS图的转换
(2)条件分枝框(判断框) (3)条件输出框 (P) (Q) (R) X 1 Z1 (A) (B) (C) X 1 当控制算法存在分枝时,次态不仅决定于现态,还与现态的外输入有关。表示条件分枝的符号用菱形表示。 X 1 上述三种符号构成了ASM图所需要的基本符号。 Z2

8 例:已知ASM图如图所示,用PLA阵列和一定数量 的D触发器实现。
(Q) (R) X 1 Z1 Z2 00 10 (1)ASM图有三个状态, 故有两个状态变量Q2Q1。 11 (2)一个外输入X、两个输出 Z1和Z2,两个D触发器。 (3)下面分析状态转换表。

9 Q1 Q2 PLA实现图 现态 次态 输出 Q2 Q1 X Q2n+1Q1n+1 Z1 Z2 0 1 ☓ 0 0 1 0 0 0 1 0 ☓
1D Q2 CP X Z1 Z2 PLA实现图 C1 现态 次态 输出 Q2 Q1 X Q2n+1Q1n+1 Z1 Z2 1 1 1 1 由此可得PLA硬件逻辑图 输出方程: X Q P Z 1 2 = ) ( 驱动方程: X Q D 1 2 n = +

10 二、MDS图 只要时钟CP的有效沿到来,状态Si在条件E下转换到状态Sj E可以是积项, 布尔表达式等。
表示状态图 1. MDS图符号 E Si Sj Si Sj Z↑ Si 表示进入状态Si时,输出Z变成有效 Z↓ Si 表示进入状态Si时,输出Z变成无效。 Z↑↓ Si 如果条件E满足,进入状态Si时,输出Z有效;退出时,输出Z无效。 表示进入状态Si时,输出Z有效;退出时,输出Z无效。 Z↑↓=Si•E Si

11 2. 状态图到MDS图 现在再考虑有条件输出的情况: A/01 C/00 B/11 这是一个穆尔型电路,三个状态A、B、 C和输出Z1Z2依次为01、11、00。说明: A态到B态时,Z1由0变1,Z1有效; B态到C态时,Z1由1变0,Z1无效。 同理: C态到A态时,Z2由0变1,Z2有效; B态到C态时,Z2由1变0,Z2无效。 C B 1/1 0/0 A Z1↑↓=A·X C B X A 到MDS图 加了三个输入X1、X2、 X3的情况。 Z1↑ C B Z2↑ Z1↑↓ Z2↓ X1 X2 X1X3 A X1+X3 Z2↑ Z1=0 Z1=1 A Z1=0 Z1=1 有三个状态A、B、C,当 输入为1时,输出为1,A→B; 当输入为0时,输出为0,A→C (输入/输出) 。 B C Z2↓ Z1↑↓ Z1↑

12 三、ASM图至MDS图的转换 转换原则: ASM图 MDS图 1.ASM图的状态框对应 MDS图中的Si。
再举一例 X? Z? W? (A) NO YES (D) (C) (B) (A) YES NO (B) RUN (C) START? A C B D XW ZX XW+XZ START (A) 计数器复位 2.ASM图的判别框构成 MDS图的分支。 RUN =A·START A B C START A CR 到MDS图 START NO START? 3.控制器的输出是为实现 状态框的操作而发出的信 息, 对应 MDS图中状态圈 外侧的输出。 YES (B) 执行 B OPR

13 第三节 数字密码引爆器系统设计 下面讨论一个数字密码引爆系统,用它将从上至下的设计概念融会贯通。 设计步骤: 一、数字密码引爆器顶层设计
第三节 数字密码引爆器系统设计 下面讨论一个数字密码引爆系统,用它将从上至下的设计概念融会贯通。 设计步骤: 1.系统级分析,确定初步方案; 2.将设计细分,进行模块划分; 3.VHDL综合。 一、数字密码引爆器顶层设计 1.顶层方案设计 系统密码采用三个十进制数字,当三个输入正确,就可引爆;当输入不正确或密码位数不对时引爆,产生错误,系统报警。

14 第三节 数字密码引爆器系统设计 电路输入: (1)开始输入数字密码前,需设置一个READY键,表示电路系统准备就绪,可以输入密码。 引爆系统
第三节 数字密码引爆器系统设计 电路输入: WAIT_T 引爆系统 (1)开始输入数字密码前,需设置一个READY键,表示电路系统准备就绪,可以输入密码。 SETUP READY FIRE A1 A0 A3 A2 A4 A5 A7 A6 A8 OSCC A9 (2)当引爆事件发生后,应重新恢复到等待状态,需设置一个WAIT_T键。 (3)若没有正确使用密码,产生报警信号,这时再按READY和WAIT_T键不起作用,必须内部保安人员重新设置到等待状态,需新设置一个SETUP键。 (4)密码正确输入以后,设置一个引爆按键FIRE。 (5) 十个数字按键A0~A9作为密码输入,密码采用三位且设置在内部,OSCC为1MHz输入。

15 第三节 数字密码引爆器系统设计 电路输出: 引爆系统 (1)当密码正确输入并点火后,输出一绿灯信号LT。
第三节 数字密码引爆器系统设计 电路输出: WAIT_T 引爆系统 WAIT_T SETUP FIRE READY A0 A1 A3 A2 A4 A5 A7 A6 A8 OSCC A9 Ucc LT (1)当密码正确输入并点火后,输出一绿灯信号LT。 RT (2)当密码操作有误,输出一红灯信号,并伴随报警装置LB鸣叫。 LB A~G 注:在按WAIT_T后进入等待状态,LT、RT和LB皆不工作。 (3)设置一七段显示数码管显示输入的密码数据。

16 第三节 数字密码引爆器系统设计 引爆过程如下: 引爆系统 引爆系统 引爆系统 引爆系统
第三节 数字密码引爆器系统设计 引爆过程如下: (1)按READY键,启动引爆程序—系统处于准备状态。 引爆系统 WAIT_T SETUP FIRE READY A0 A1 A3 A2 A4 A5 A7 A6 A8 OSCC A9 引爆系统 Ucc WAIT_T 引爆系统 引爆系统 SETUP LT READY FIRE (2)依次键入三个十进制数字。 RT A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 (3)若按上述操作正确后,启动FIRE,LT绿灯亮。 LB 按错密码按上述操作时,报警喇叭LB响,RT红灯亮。 A~G (4)引爆正确后,需按WAIT_T键,使系统进入等待状态。 报警状态下,按READY和WAIT_T均不起作用,按另外的内部键SETUP,使系统进入等待状态。 (5)按错密码可在按FIRE前,按READY键重新启动引爆程序。

17 第三节 数字密码引爆器系统设计 二、顶层实体的VHDL程序 第一步:为系统建立系统名。 系统建立系统名 Fire_d
第三节 数字密码引爆器系统设计 二、顶层实体的VHDL程序 引爆系统 WAIT_T SETUP FIRE READY A0 A1 A3 A2 A4 A5 A7 A6 A8 OSCC A9 A~G LT RT LB Ucc 第一步:为系统建立系统名。 系统建立系统名 Fire_d 第二步:描述顶层的接口,包括输入信号、输出信号、信号方向、数据类型等。 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY fire_d IS END 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);

18 (3)密码需和键入的BCD码比较,需设一个4比特比较电路。比较结果送入控制器。
第三节 数字密码引爆器系统设计 三、顶层结构体的设计及VHDL实现 (3)密码需和键入的BCD码比较,需设一个4比特比较电路。比较结果送入控制器。 从上至下的思想是将系统划分为几个部分,如控制部分和受控部分,受控部分又靠各种模块来实现。 比较器 Dep Z2 Z3 Z1 4乘 3选 1 A0 A3 A1 A2 A4 A5 A7 A6 A8 A9 使能电路 A01 A31 A11 A21 A41 A51 A71 A61 A81 A91 编码器 A00 A30 A10 A20 A40 A50 A70 A60 A80 A90 消抖同步电路 (2)密码是内部设置为Z1、Z2、Z3,它是串行输入,所以用一4乘3选1电路构成。 B3 B1 B2 B4 E3 E1 E2 E4 (1) A0~A9十个数字进入系统编码器变成BCD码,并显示。 七段 译码器 A-G

19 第三节 数字密码引爆器系统设计 至于READY、FIRE等输入信号,可直接送入控制器,由于按键产生引起电平抖动,最好加入同步消抖电路。
第三节 数字密码引爆器系统设计 至于READY、FIRE等输入信号,可直接送入控制器,由于按键产生引起电平抖动,最好加入同步消抖电路。 4乘3选1的地址由计数器控制,计数器由控制器控制。 系统使用1MHz信号,经过分频得OSC2为 1000Hz,再分频为4Hz(OSC1)提供给系统。 当WAIT_T有效时,提供WAIT_L信号封锁RS触发器,使LT、RT和LB无效。 由于同步消抖输入是低电平,又由于按键产生是高电平,所以要加入一个反相器。 控制器 WAIT_L EN CNP CNTe3 SLT SLA DATA_IN RESET_CNT 消抖同步电路 WAIT_T SETUP FIRE READY C1 C2 C3 C4 C11 C22 C33 C44 F/F LT RT LB CT0 CT1 OSCC OSC1 OSC2

20 第三节 数字密码引爆器系统设计 控制器 Z1 比较器 4乘 编码器 3选 使能电路 Z2 1 七段 Z3 译码器 WAIT_L EN CNP
第三节 数字密码引爆器系统设计 控制器 WAIT_L EN CNP CNTe3 SLT SLA DATA_IN RESET_CNT CT0 CT1 OSCC OSC1 OSC2 F/F LT RT LB 消抖同步电路 WAIT_T SETUP FIRE READY C1 C2 C3 C4 C11 C22 C33 C44 B3 B1 B2 B4 A0 A3 A1 A2 A4 A5 A7 A6 A8 A9 使能电路 A01 A31 A11 A21 A41 A51 A71 A61 A81 A91 编码器 A00 A30 A10 A20 A40 A50 A70 A60 A80 A90 七段 译码器 A-G 比较器 Dep E3 E1 E2 E4 Z2 Z3 Z1 4乘 3选 1 预置码

21 第三节 数字密码引爆器系统设计 VHDL结构描述程序如下: ARCHITECTURE fire_d_arc OF fire_d IS
第三节 数字密码引爆器系统设计 VHDL结构描述程序如下: ARCHITECTURE fire_d_arc OF fire_d IS COMPONENT kcom IS PORT(A,B,C,D:IN std_logic; E,F,G,H:IN std_logic; T:OUT std_logic); END COMPONENT; 比较器 Dep B3 B1 B2 B4 E3 E1 E2 E4 七段 译码器 A-G 4乘 3选 1 A01 A31 A11 A21 A41 A51 A71 A61 A81 A91 编码器 COMPONENT se7 IS PORT(A,B,C,D:IN std_logic; E,F,G,H,I,J,K:OUT std_logic); END COMPONENT;

22 PORT(A,B,C,D, E,F,G,H,I,J :IN std_logic; T,X,Y,Z,W:OUT std_logic);
COMPONENT kbian IS PORT(A,B,C,D, E,F,G,H,I,J :IN std_logic; T,X,Y,Z,W:OUT std_logic); END COMPONENT; 比较器 Dep B3 B1 B2 B4 E3 E1 E2 E4 七段 译码器 A-G 4乘 3选 1 A01 A31 A11 A21 A41 A51 A71 A61 A81 A91 编码器 COMPONENT k4mux IS PORT(A,B:IN std_logic; C,D, E,F:OUT std_logic); END COMPONENT; SIGNAL A01,A11,A21,A31,A41,A51,A61,A71,A81,A91,B1,B2,B3,B4:std_logic; SIGNAL Dep,E1,E2,E3,E4:std_logic;

23 U29:kbian PORT MAP(A01,A11,A21,A31,A41,A51,A61,A71,A81,A91,
BEGIN U29:kbian PORT MAP(A01,A11,A21,A31,A41,A51,A61,A71,A81,A91, DATA_IN1,B1,B2,B3,B4); U30: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; 比较器 Dep B3 B1 B2 B4 E3 E1 E2 E4 七段 译码器 A-G 4乘 3选 1 A01 A31 A11 A21 A41 A51 A71 A61 A81 A91 编码器

24 第三节 数字密码引爆器系统设计 二、次级电路分析与VHDL实现 1.受控部分电路设计 (1)编码电路 包括编码电路、消抖同步电路、比较电路、
第三节 数字密码引爆器系统设计 二、次级电路分析与VHDL实现 1.受控部分电路设计 B3 B1 B2 B4 编码器 DATA_IN A01 A11 A41 A51 A71 A61 A81 A91 A31 A21 (1)编码电路 包括编码电路、消抖同步电路、比较电路、 预置码电路、计数器选择电路和输出电路等。 编码电路是10线至4线的BCD编码器,又因前级消抖电路输出为高电平,所以A01~A91进入编码器为高电平。 输出B4为MSB,B1为LSB。DATA_IN1为当按下按键时,为高电平。 ENTITY kbian IS END kbian; PORT(A,B,C,D,E,F,G,H,I,J:IN std_logic; T,X,Y,Z,W:OUT std_logic);

25 第三节 数字密码引爆器系统设计 (2)消抖同步电路
第三节 数字密码引爆器系统设计 (2)消抖同步电路 SETUP、WAIT_T、READY、FIRE和A0~A9都需要一同步消抖电路,如右图所示: T5 T6 T4 T3 T2 T1 B A C & & D D ENTITY ksy IS END ksy; PORT(A,B:IN std_logic; C:OUT std_logic); & CP ARCHITECTURE ksy_arc OF ksy IS COMPONENT knand2 IS PORT(A,B:IN std_logic; C:OUT std_logic); END COMPONENT; SIGNAL T1,T2,T3,T4,T5,T6:std_logic; BEGIN U0:knand2 PORT MAP(A,T1,T2);

26 第三节 数字密码引爆器系统设计 (3)比较器电路 (A)比较器的输入来自编码器的输出B1至B4的四位数据。
第三节 数字密码引爆器系统设计 (3)比较器电路 (A)比较器的输入来自编码器的输出B1至B4的四位数据。 (B)比较器的另外输入来自预置密码电路的输出E1至E4的四位数据。 Dep B1 E1 (C)结果相等时,输出Dep为1;不等时,输出Dep为0。 B2 E2 比较器 B3 E3 PORT(A,B,C,D,E,F,G,H:IN std_logic; T:OUT std_logic); ENTIY kcom IS END kcom; B4 E4 ARCHITECTURE kcom_arc OF kcom IS BEGIN PROCESS(A,B,C,D,E,F,G,H) BEGIN IF A=E AND B=F AND C=G AND D=H THEN T<=1; ELSE T<=0; END IF;

27 第三节 数字密码引爆器系统设计 2.控制器电路设计 (1)建立等待状态:
第三节 数字密码引爆器系统设计 2.控制器电路设计 EN (A) 等待状态 (1)建立等待状态: 系统处于引爆后、上电状态时,系统还未进入正常的等待状态。此时系统不接收除WAIT_T外的任何信号,当键入WAIT_T后,系统进入等待状态,输出WAIT_L信号,将引爆指示灯LT和报警指示灯RT以及报警器切断,该状态可用右图(ASM)表示。 NO WAIT_T YES 控制器在系统中占硬件很小一部分,因此对 控制器的设计不是从如何最简化入手,而是着重 考虑逻辑清楚,便于修改。 WAIT_L 准备操作 NO READY (2)准备操作状态: YES 当WAIT_T按下以后,进入准备操作状态。此时READY信号来到后,为计数器清零RESET_CNT, 转入第三状态。 RECET_CNT 输入密码 EN

28 第三节 数字密码引爆器系统设计 3.输入密码状态
第三节 数字密码引爆器系统设计 3.输入密码状态 收到前三个信号时先判断是否为数据信号,若是数据信号,使计数器加1,选出对应的预置码进行比较,若三个数全正确,转到下一状态。 进入此状态后, EN有效,允许密码和FIRE输入。 若三个数有一个不正确,转入报警状态。 NO DATA_IN 引爆 YES CNT+1 输入密码 EN NO YES Dep FIRE NO YES YES READY NO CNTe3 NO YES

29 第三节 数字密码引爆器系统设计 4.引爆操作状态 若有信号键入,判断是数据信号还是FIRE。
第三节 数字密码引爆器系统设计 READY NO YES 引爆 DATA_IN SLT FIRE CNT+1 Dep CNTe3 WAIT_T WAIT_L EN 准备操作 RECET_CNT 输入密码 等待状态 通电 SLA 报警状态 SETUP 4.引爆操作状态 若有信号键入,判断是数据信号还是FIRE。 (1)若是FIRE信号,则发出SLT信号,LT亮,密码引爆器被引爆。 (2)若是数据信号,则进入报警状态,此时如果启动READY键,系统发出RESET_P信号返回到输入密码状态。 (3)报警状态有两种情况: 没按FIRE键时,可按READY键返回到输入密码操作状态; 按FIRE键后,必须按SETUP键返回到等待状态。

30 将ASM图改成MDS图。 得到6个激励方程和有关输出方程如下:

31 M( WAIT_L)置0,公式(8)的第一个乘积 项与之相对应。
控制器的部分VHDL程序如下: 控制器 WAIT_L EN CNP RESET_CNT CNTe3 SLT SLA DATA_IN C11 C22 C33 C44 PACKAGE state_pack IS TYPE state IS(QA,QB,QC,QD,QE,QF); END state_pack; LIBRARY ieee; USE ieee.std_logic_1164.all; USE work.state_pack.all; ENTITY controll IS PORT(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 IS SIGNAL current_state:state_pack:=QA; BEGIN PROCESS WHEN QA=> H<=‘0’; 时钟信号CNP置0 IF A=‘0’ THEN WAIT_T没按下 current_state<=QA; ELSE WAIT_T按下 current_state<=QB;M<=‘0’; L<=‘1’; K<=‘1’; END IF; 若WAIT_T(A)有效,进入B状态, 公式(2)相对应;L(SLT)和 K (SLA)置1,公式(11)和(12); M( WAIT_L)置0,公式(8)的第一个乘积 项与之相对应。 WAIT UNTILL OSC2=‘1’ AND OSC2’EVENT; M<= ‘1’; CASE current_state IS

32 第四节 数字系统设计实例 这一节,介绍三个系统设计实例,以便更好掌握现代数字系统设计方法。 1.汽车尾灯控制系统;
第四节 数字系统设计实例 这一节,介绍三个系统设计实例,以便更好掌握现代数字系统设计方法。 1.汽车尾灯控制系统; 2.四路口交通灯控制系统; 3.自动售货机控制系统。

33 小 结 1.数字系统由控制电路和受控电路组成,控制电路受同一时钟的控制。
小 结 1.数字系统由控制电路和受控电路组成,控制电路受同一时钟的控制。 2.ASM表面上与通常的软件流程图非常相似,但ASM图表示事件的精确时间间隔序列,而一般的软件流程图没有时间的概念。 3.从上至下的设计方法是从宏观的总体要求入手,尽可能将数字系统划分为较简单的子系统,再通过逻辑接口设计用各种划分的逻辑电路实现所要求的数字系统。 4. 数字系统的设计分为系统级设计和逻辑级设计两个阶段。系统级设计即原理性设计,是数字系统设计的关键步骤,也是最困难的、最具有创造性的一步。画出ASM图或MDS图是完成系统级设计的标志。

34 作 业 自我检测:9.2,9.4,9.5,9.7,9.9 思考题: ,9.3,9.5 习题: ,9.3,9. 5 ,9. 6 ,9. 7


Download ppt "第九章 数字系统设计 数字系统设计概述 ASM图、MDS图以及 ASM图至MDS图的转换 数字密码引爆器系统设计 数字系统设计实例 小结."

Similar presentations


Ads by Google