华中科技大学数字逻辑实验 下载本文

数字逻辑实验报告(1)

数字逻辑实验1 一、系列二进制加法器二、小型实验室门禁系设计50% 评语:(包含:预习报告内容、实验过程、实验结果及分析) 总成绩 统设计50% 教师签名 姓 名: 学 号: 班 级: 指 导 教 师:

计算机科学与技术学院 20 年 月 日

1 / 24

《数字电路与逻辑设计》实验报告

数字逻辑实验报告

系列二进制加法器设计预习报告

2 / 24

《数字电路与逻辑设计》实验报告

一、系列二进制加法器设计 1、实验名称

系列二进制加法器设计。

2、实验目的

要求同学采用传统电路的设计方法,对5种二进制加法器进行设计,并利用工具软件,例如,“logisim”软件的虚拟仿真功能来检查电路设计是否达到要求。

通过以上实验的设计、仿真、验证3个训练过程使同学们掌握传统逻辑电路的设计、仿真、调试的方法。

3、实验所用设备

Logisim2.7.1软件一套。

4、实验内容

对已设计的5种二进制加法器,使用logisim软件对它们进行虚拟实验仿真,除逻辑门、触发器外,不能直接使用logisim软件提供的逻辑库元件,具体内容如下。

(1)一位二进制半加器 设计一个一位二进制半加器,电路有两个输入A、B,两个输出S和C。输入A、B分别为被加数、加数,输出S、C为本位和、向高位进位。

(2)一位二进制全加器

设计一个一位二进制全加器,电路有三个输入A、B和Ci,两个输出S和Co。输入A、B和Ci分别为被加数、加数和来自低位的进位,输出S和Co为本位和和向高位的进位。

(3)串行进位的四位二进制并行加法器

用四个一位二进制全加器串联设计一个串行进位的四位二进制并行加法器,电路有九个输入A3、A2、A1、A0、B3、B2、B1、B0和C0,五个输出S3、S2、S1、S0和C4。输入A= A3A2A1A0、B= B3B2B1B0和C0分别为被加数、加数和来自低位的进位,输出S= S3S2S1S0和Co为本位和和向高位的进位。

(4)先行进位的四位二进制并行加法器

3 / 24

《数字电路与逻辑设计》实验报告

利用超前进位的思想设计一个先行进位的四位二进制并行加法器,电路有九个输入A3、A2、A1、A0、B3、B2、B1、B0和C0,五个输出S3、S2、S1、S0和C4。输入A= A3A2A1A0、B= B3B2B1B0和C0分别为被加数、加数和来自低位的进位,输出S= S3S2S1S0和Co为本位和和向高位的进位。

(5)将先行进位的四位二进制并行加法器封装成一个组件并验证它的正确性

将设计好的先行进位的四位二进制并行加法器进行封装,生成一个“私有”库元件并验证它的正确性,以便后续实验使用,封装后的逻辑符号参见图1-1所示。

C4 四位二进制并行加法器 C0 A3 A2 A1 A0 B3 B2 B1 B0

图1-1“私有”的先行进位的四位二进制并行加法器

5、实验方案设计

(1)一位二进制半加器的设计方案

设A、B为半加器的输入,C、S为半加器的输出,其中S为本位和,C为进位,通过分析可知,当A=B=0时,C=S=0;当A、B中有一个为1时,C=0,S=1;当A=B=1时,C=1,S=0.据此写出逻辑表达式:

使用logism做出一位二进制半加器的电路图,结果如图1-2所示。

4 / 24

《数字电路与逻辑设计》实验报告

图1-2 一位二进制半加器

(2)一位二进制全加器的设计方案

设A、B、 为全加器的输入,S、 为输出,其中,A、B和 分别为被加数、加数和来自低位的进位,输出S和 为本位和和向高位的进位,据此可以列出全加器的真值表如表1-1所示。

表1-1 全加器真值表 A B Ci S Co 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 利用卡诺图化简并进行异或变换得到最简输出函数表达式为

使用logism做出一位二进制全加器的电路图,结果如图1-3所示。

5 / 24

《数字电路与逻辑设计》实验报告

图1-3 一位二进制全加器

(3)串行进位的四位二进制并行加法器的设计方案

串行进位的四位二进制并行加法器可以由四个一位二进制全加器级联构成,其中高位的 即为其相邻低位的 ,因此电路从最低位开始运算,得到本进位 以及本位后进行次低位的运算,以此类推,直到运算到最高位。设输入

、 和 分别为被加数、加数和来自低位的进位,输出 和 为本位和和向高位的进位。

使用logism做出串行进位的四位二进制并行加法器的电路图,结果如图1-4所示。

图1-4串行进位的四位二进制并行加法器

(4)先行进位的四位二进制并行加法器的设计方案

串行进位的并行加法器高位的运算需要低位的运算结果参与,因此运算速度较慢,需对其进行优化。由全加器的逻辑表达式可知第i位的进位输出函数 及本位和函数 的表达式为

当第i位被加数Ai和Bi均为1时,有Ci=1,定义 为进位产生函数。当 1时, ,定义 为进位传递函数,将Pi和Ci代入 和 中

6 / 24

《数字电路与逻辑设计》实验报告

得到

因此4位二进制并行加法器各位的进位输出函数和输出函数表达式分别为:

使用logism作出先行进位的四位二进制并行加法器的电路图,结果如图1-5所示。

图1-5先行进位的四位二进制并行加法器

(5)封装先行进位的四位二进制并行加法器电路

对先行进位的四位二进制并行加法器进行封装,其中输入A= A3A2A1A0、B= B3B2B1B0和C0分别为被加数、加数和来自低位的进位,输出S= S3S2S1S0和Co为本位和和向高位的进位。

封装结果如图1-6所示.

7 / 24

《数字电路与逻辑设计》实验报告

图1-6先行进位的四位二进制并行加法器封装图

接下来对该加法器进行测试,由于输入值得组合较多,这里选取部分输入进行测试

1.输入A=0B,B=1011B, Co=0B,理论输出 =0B,S=1011B,实际输出如图1-7所示,与理论结果一致

图1-7 测试样例1

2. 输入A=1111B,B=1111B, Co =1B,理论输出 =1B,S=1111B,实际输出如图1-8所示,与理论结果一致

图1-8 测试样例2

3. 输入A=1100B,B=0011B, Co =1B,理论输出 =1B,S=0000B,实际输出如图1-9所示,与理论结果一致

8 / 24

《数字电路与逻辑设计》实验报告

图1-9 测试样例3

4. 输入A=0100B,B=1001B, Co =1B,理论输出 =0B,S=1110B,实际输出如图1-10所示,与理论结果一致

图1-10 测试样例4

9 / 24

《数字电路与逻辑设计》实验报告

数字逻辑实验报告

小型实验室门禁系统设计实验报告

10 / 24

《数字电路与逻辑设计》实验报告

二、小型实验室门禁系统设计 1、实验名称

小型实验室门禁系统设计。

2、实验目的

要求同学采用传统电路的设计方法,对一个“设计场景”进行逻辑电路的设计,并利用工具软件,例如,“logisim”软件的虚拟仿真来检查这个小型实验室门禁系统的设计是否达到要求。

通过以上实验的设计、仿真、验证3个训练过程使同学们掌握小型电路系统的设计、仿真、调试方法以及电路模块封装的方法。

3、实验所用设备

Logisim2.7.1软件一套。

4、实验内容

设计场景:某小型保密实验室需要安装一个门禁系统,用于监测、控制和显示该实验室内上班人数,该实验室只有一个门,最多只能容纳15人。假设员工进出实验室都要刷校园卡,并且保证一次刷卡后有且只有一人能进出。实验室空置时人数显示为0,刷卡进入时实验室人数加1,刷卡离开时实验室人数减1。当实验室满员时,还有员工在门外刷卡进入时,门禁系统“不”动作,系统报警提示满员。

使用logisim软件对小型电路进行虚拟实验仿真,除逻辑门、触发器、7段数码显示管外,不能直接使用logisim提供的逻辑元件库,具体要求如下。

(1)设计一个四位二进制可逆计数器电路并进行封装和验证它的正确性 用D触发器设计一个四位二进制可逆计数器,并进行封装。该计数器有一个清零端CLR、一个累加计数脉冲端CPU(输入刷卡进入请求)、一个累减计数脉冲端CPD(输入刷卡离开请求),四个计数输出端QDQCQBQA记录当前实验室人数。

将设计好的4位二进制可逆计数器进行封装,生成一个“私有”库元件,以便后续实验使用,4位二进制可逆计数器逻辑符号参见图2-1所示。

11 / 24

《数字电路与逻辑设计》实验报告

SD SC SB SA CPU CLR 四位二进制可逆计数器 CPDS3 S2 S1 S0 图2-1 “私有”的一个4位二进制可逆计数器

(2)用实验1中已封装的“先行进位的四位二进制并行加法器”设计一个将实验室内人数转换成8421BCD码的电路

用实验一中已封装的“先行进位的四位二进制并行加法器”和适当的逻辑门将二进制数表示的实验室人数转换成两位十进制数的8421BCD码。

(3)设计7段译码器,并采用“7段数码显示管”显示人数的电路 设计一个7段译码器(参考书的7448芯片),将两位十进制数的8421BCD码表示的实验室人数用“7段数码显示管”显示出来。

该7段译码器有四个输入A3A2A1A0和七个输出abcdefg, A3A2A1A0为8421BCD码,abcdefg为7段数码显示管对应的段。

(4)设计当实验室满员时,门禁“不”动作,系统报警提示满员的电路 当实验室满员时,在累加计数脉冲端CPU输入刷卡进入请求,计数输出端数据保持不变,门禁“不”动作,系统报警提示满员。当实验室空时,逻辑上不会有实验室内累减计数脉冲端CPD输入刷卡离开请求。为防止信号干扰,在计数输出为0时,若CPD端有脉冲,也应使计数输出端数据保持不变,门禁“不”动作,但不用报警。

(5)设计小型实验室门禁系统电路并进行封装和验证它的正确性 设计满足要求的小型实验室门禁系统电路并进行封装,生成一个小型实验室门禁系统芯片,封装后的小型实验室门禁系统逻辑符号参见图2-2所示。

十位:7段数码显示管 个位:7段数码显示管 a b c d e f g a b c d e f g CPU CLR 封装后的门禁系统逻辑符号 报警 CPD 图2-2 封装后的小型实验室门禁系统

12 / 24

《数字电路与逻辑设计》实验报告

5、实验方案设计

(1)设计一个四位二进制可逆计数器电路 经分析采用异步时序逻辑电路,根据题意列出四位二进制可逆计数器的二进制状态表如表2-1所示.

表2-1四位二进制可逆计数器的二进制状态表 次态Q3n+1Q2n+1Q1n+1Q0n+1 现态 Q3Q2Q1Q0 CPU CPD 0000 0001 1111 0001 0010 0000 0010 0011 0001 0011 0100 0010 0100 0101 0011 0101 0110 0100 0110 0111 0101 0111 1000 0110 1000 1001 0111 1001 1010 1000 1010 1011 1001 1011 1100 1010 1100 1101 1011 1101 1110 1100 1110 1111 1101 1111 0000 1110 根据表2-1所示状态表,采用D触发器,可确定在输入脉冲作用下的状态转移关系和激励函数真值表,如表2-2所示。

表2-2 状态转移关系及激励函数真值表 输入 现态 次态 状态跳变 激励函数 CPDCPU Q3Q2Q1Q0 Q3n+1Q2n+1Q1n+1Q0n+1 Q3 Q2 Q1 Q0 C3 D3 C2 D2 C1 D1 C0 D0 01 0000 0001 d d d 1 0001 0010 d d 1 0 0010 0011 d d d 1 0011 0100 d 1 0 0 0100 0101 d d d 1 0101 0110 d d 1 0 0110 0111 d d d 1 0111 1000 1 0 0 0 1000 1001 d d d 1 1001 1010 d d 1 0 1010 1011 d d d 1 13 / 24

《数字电路与逻辑设计》实验报告

1011 1100 1100 1101 1101 1110 1110 1111 1111 0000 10 0000 1111 0001 0000 0010 0001 0011 0010 0100 0011 0101 0100 0110 0101 0111 0110 1000 0111 1001 1000 1010 1001 1011 1010 1100 1011 1101 1100 1110 1101 1111 1110 利用卡诺图化简得到 d d d d 0 1 d d d d d d d 0 d d d d d d d 1 d d d 0 1 d d d 0 d d d 1 d d d 0 d d d 0 d 1 d 0 1 d 0 d 1 d 0 d 1 d 0 d 1 d 0 d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

在加计数时,CPU有脉冲,通过观察表6-2可以看出C3所要求的触发信号

可由Q2Q1Q0提供,C2所要求的触发信 可由Q1Q0提供,C1所要求的触发信号 可由Q0提供,C0所要求的触发信号 可由CPU提供.

在减计数时,CPD有脉冲,通过观察表6-2可以看出C3所要求的触发信号 提供,C2所要求的触发信号 可由 提供,C1所要求的触发信可由

提供,C0所要求的触发信号 可由CPU提供. 号 可由

综合加计数和减计数,可知

使用Logism做出电路图如图2-1所示:

14 / 24

《数字电路与逻辑设计》实验报告

图2-1 一个四位二进制可逆计数器

图2-2四位二进制可逆计数器封装图

(2)用实验一中已封装的“先行进位的四位二进制并行加法器”设计将实验室内人数转换成8421BCD码的电路

由题意可列出四位二进制数和8421码的对应关系,如表2-3所示

表2-3 四位二进制数与8421码对应表 十进制数 N 0 1 2 3 4 5 6 7 8 9 10 11 输入(4位二进制数) A3 0 0 0 0 0 0 0 0 1 1 1 1 A2 0 0 0 0 1 1 1 1 0 0 0 0 A1 0 0 1 1 0 0 1 1 0 0 1 1 A0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 输出(8421码) C4 S8 S4 S2 S1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 修正控制 Z 0 0 0 0 0 0 0 0 0 0 1 1 15 / 24

《数字电路与逻辑设计》实验报告

12 13 14 15 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 1 利用卡诺图化简得到修正控制

修正方式为S3S2S1S0+0ZZ0

据此可以画出四位二进制数转8421码的电路图如图2-3和图2-4所示:

图2-3 四位二进制数转8421码电路图

图2-4 四位二进制数转8421码封装图

(3)设计7段译码器,并采用“7段数码显示管”显示人数的电路 (A)设计一个7段译码器

7段译码器的真值表如表2-4所示:

表2-4 7段译码器真值表

输入 A3 A2 A1 A0 a b 输出 c d e f g 16 / 24

《数字电路与逻辑设计》实验报告

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 利用卡诺图化简得: 2 1 0+ 3 2A1+ 3A2A0+A3 1A0 a= 3 2+ 1 0+ 2 1+ 3A1A0 b=

3A2+ 2 1+ 2A0 c=

1A0+ 2 0+ 2A1A0+ A2A1 0 d= A2 0+ 2 0 e= A1 1 0+A2 1+A3 2 1+A2 0 f=

1+ A3 2+ 2A1+A1 0 g= A2

使用logisim做出电路图,如图2-5所示

17 / 24

《数字电路与逻辑设计》实验报告

图2-5 7段译码器

(B)设计用“7段数码显示管”显示人数的逻辑电路

将四位二进制数转8421码的十位输出和个位输出分别连接到两个7段译码器上,然后将7段译码器连接到数码显示管得到显示实验室人数的电路,电路的输入是二进制数表示的实验室人数

图2-6 用7段数码显示管显示实验室人数的电路

(4)设计当实验室满员时,门禁“不”动作,系统报警提示满员的电路

18 / 24

《数字电路与逻辑设计》实验报告

当实验室满员时计数器输出均是高电平,将4个输出端与后得到满员状态的信号。当实验室无人时计数器的输出均是低电平,将4个输出端或后得到无人状态信号。利用A·0=0,A+0=A,设满员信号为M,无人信号为N,有:

M=SDSCSBSA

N=SD+SC+SB+SA

与后接入芯片的CPU,将U和 则当未满员时,U的脉冲可传递到芯片的CPU,

当满员时,U来脉冲时和0与,结果为0,脉冲未传递到芯片的CPU。

将D和 与后接入芯片的CPD,则当有人时,U的脉冲可传递到芯片的CPD,当无人时,D来脉冲时和0与,结果为0,脉冲未传递到芯片的CPD。

据此写出CPU和CPD的表达式

CPU=U CPD=D

当满员信号为1且U来了脉冲,进行报警,报警信号A的表达式为 A=UM

使用logism作图,结果如图2-7所示

图2-7 报警电路

(5)设计小型实验室门禁系统电路

将报警系统四位二进制数转8421码的芯片,然后通过7段译码器连接数码管,得到电路如图2-8所示。

19 / 24

《数字电路与逻辑设计》实验报告

图2-8 小型实验室门禁系统电路

图2-9 小型实验室门禁系统封装电路

6、实验结果记录

(1)给出“私有”库元件(采用一个四位二进制可逆计数器进行封装)的测试电路

图2-10一个四位二进制可逆计数器

20 / 24

《数字电路与逻辑设计》实验报告

图2-11 来一个CPU脉冲

图2-12 来一个CPD脉冲

(2)给出采用实验1中已封装的“先行进位的四位二进制并行加法器”设计的将实验室内人数转换成8421BCD码的电路

图2-13二进制数转换成8421BCD码的电路

(3)给出采用“7段数码显示管”显示人数的电路

21 / 24

《数字电路与逻辑设计》实验报告

图2-14人数显示的电路

(4)给出当实验室满员时,门禁不动作,系统报警提示满员的电路 当实验室满员时,U来一个脉冲报警灯会亮。

图2-15系统满员报警电路

当实验室无人时,D来一个脉冲计数器无变化

图2-16 系统无人报警电路

(5)给出“私有”库元件(采用小型实验室门禁系统电路进行封装)的测

22 / 24

《数字电路与逻辑设计》实验报告

试电路

图2-16实验室门禁系统电路

CPU每来一个脉冲,数码管显示的数字就会加一,CPD每来一个脉冲,数码管显示的数字就会减一。

图2-17 来了11个CPU脉冲后的电路

图2-18 又来了3个CPD脉冲后的电路

7、实验后的思考

(1)这两次实验的难点你认为在哪些方面?

第一次实验初次使用logism,对许多操作还不是很熟练,在使用logism作图时花费了许多时间。第二次实验首先是计数器的设计比较困难,第二就是七段译码器的线路过于庞杂,出现了连线错误的问题。

(2)你是如何解决的?

第一次实验多次练习,熟能生巧。第二次实验通过与同学讨论,参考课本获得解决问题

23 / 24

《数字电路与逻辑设计》实验报告

的大致思路,然后做出真值表,然后分析变量间的关系来求出表达式,最后利用logism作图并调试实现计数器。7段译码器的难点在于连线,所以我采用每连接一个输出端口就使用logism自带的分析电路功能比对真值表是否正确,若正确才连接下一个输出端口,一步一步来。

(3)意见和建议

实验2的内容量多于实验1,希望能合理分配实验量,将实验2的任务分配给实验1一些。

24 / 24