数字电路仿真实验报告

更新时间:2023-10-29 23:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字逻辑与CPU 仿真实验报告

姓名: 班级: 学号:

仿真实验

摘要:Multisim是Interactive Image Technologies公司推出的以Windows为基础的仿真工具,具有丰富的仿真分析能力。本次仿真实验便是基于Multisim软件平台对数字逻辑电路的深入研究,包括了对组合逻辑电路、时序逻辑电路中各集成元件的功能仿真与验证、对各电路的功能分析以及自行设计等等。

一、 组合逻辑电路的分析与设计

1、 实验目的

(1) 掌握用逻辑转换器进行逻辑电路分析与设计的方法。 (2) 熟悉数字逻辑功能的显示方法以及单刀双掷开关的应用。 (3) 熟悉字信号发生器、逻辑分析仪的使用方法。 2、 实验内容和步骤

(1) 采用逻辑分析仪进行四舍五入电路的设计

①运行Multisim,新建一个电路文件,保存为四舍五入电路设计。 ②在仪表工具栏中跳出逻辑变换器XLC1。

图1-1 逻辑变换器以及其面板

③双击图标XLC1,其出现面板如图1-1所示

④依次点击输入变量,并分别列出实现四舍五入功能所对应的输出状态(点击输出依次得到0、1、x状态)。

⑤点击右侧不同的按钮,得到输出变量与输入变量之间的函数关系式、简化的表达式、电路图及非门实现的逻辑电路。 ⑥记录不同的转换结果。

(2) 分析图1-2所示代码转换电路的逻辑功能

①运行Multisim,新建一个电路文件,保存为代码转换电路。 ②从元器件库中选取所需元器件,放置在电路工作区。 ?从TTL工具栏选取74LS83D放置在电路图编辑窗口中。 ?从Source库取电源Vcc和数字地。 ?从Indictors库选取字符显示器。

?从Basic库Switch按钮选取单刀双掷开关SPD1,双击开关,开关的键盘控制设置改为A。后面同理,分别改为B、C、D。

图1-2 代码转换电路

③将元件连接成图1-2所示的电路。

④闭合仿真开关,分别按键盘A、B、C、D改变输入变量状态,将显示器件的结果填入表1-1中。

⑤说明该电路的逻辑功能。

表1-1 代码转换电路输入输出对应表

输入 A 0 0 0 B 0 1 1 C 1 0 0 D 1 0 1 输出 U2 0 1 2 0 0 1 1 1 1 1

1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 3 4 5 6 7 8 9 (3) 用八选一数据选择器74LS151设计一个全加、全减逻辑电路。要求:党控制信号

M=0时,电路实现全加器的功能;当控制信号M=1时,电路实现全减器的功能。 ①运行Multisim,新建一个电路文件,保存为全加减电路文件。 ②从元器件库中选取所需元器件,放置在电路工作区,并连线。

从TTL工具栏选取所需元器件74LS151D和反相器74LS04,放置在电路工作区;在仪表工具栏中调出字信号发生器XWG1、逻辑分析仪XLA1;将元器件和仪表按图1-3所示连接。其中,为了使输出、输入变量之间对应关系更加清楚,在输入和输出端通过Place/Place text分别设置了S、Cn+1、M、A等文本标识。

图1-3 数据选择器实现的可控全加、全减器电路

③双击字信号发生器XWG1图标,按照图1-4所示进行面板的设置。

图1-4 字发生器XWG1面板设置

④双击逻辑分析仪XLA1图标,观察并画出输入变量与输出变量之间的对应波形。 ⑤分析输出变量与输入变量之间的对应关系,将结果填入表1-2中。

表1-2 全加减电路测试结果 输入 M 0 0 0 0 0 0 0 0 1 1 1 1 1 1 A 0 0 0 0 1 1 1 1 0 0 0 0 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 C 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S 0 1 1 0 1 0 0 1 0 1 1 0 1 0 输出 Cn+1 0 0 0 1 0 1 1 1 0 1 1 1 0 0

1 1

3、 实验结果与分析

1 1 1 1 0 1 0 1 0 1 (1) 采用逻辑分析仪进行四舍五入电路的设计

在逻辑变换器XLC1面板中设置好输入状态以后,进行不同的转换。 (I)转换成逻辑函数表达式,得到输出变量与输入变量之间的函数关系式: F=A’BC’D+A’BCD’+A’BCD+AB’CD’+AB’C’D,如图1-5

图1-5 输出与输入变量之间的函数关系式图1-6最简函数关系式

(II)转换成最简函数表达式,得到:F=BC+BD+A ,如图1-6 (III)转换成与或门组成的门电路,得到图1-7。

图1-7 与、或门逻辑电路

(IV)转换成与非门组成的门电路,得到图1-8。

图1-8 与非门逻辑电路

(2) 分析图1-2所示代码转换电路的逻辑功能

分别改变A、B、C、D四个输入变量的状态可以得到不同的显示结果,并均已记录在表1-1中。从该表中,我们可以看出,该电路的逻辑功能是对余3码的译码(或者也可以说是将余3码转换成8421BCD码)。

这与理论上的分析结果一致。74LS83D是全加器,其中,输入端B4B3B2B1端已分别置为1101,最低位进位端C0也已置1。当改变A、B、C、D键以改变A4A3A2A1的状态后,输出端便得到不同的值。经计算会发现该电路的确是将余3码译码后在数码管上显示。

(3) 用八选一数据选择器74LS151设计一个全加、全减逻辑电路。

设计电路如图1-3所示。完成字信号发生器面板设置之后,在逻辑分析仪XLA1中可以观察到输入变量与输出变量之间的对应波形如图1-9所示。其中,从上而下显示的波形依次为变量M、C、B、A、S、Cn+1 的波形。

图1-9 全加减逻辑电路各变量波形

另外,该电路的测试结果已填入表1-2中。根据该表分析,可以看出该电路

已经满足功能,即当M=0时,S=A+B+C,Cn+1为进位位,电路实现的是全加器的功能;当M=1时,S=C-B-A,Cn+1为借位位,电路实现的是全减器的功能。

二、 时序逻辑电路的分析与设计

1、 实验目的

(1) 掌握常用时序逻辑电路的分析、设计与测试方法。 (2) 熟悉数字逻辑功能的显示方法及单刀双掷开关的应用。 (3) 熟悉字信号发生器、逻辑分析仪的使用方法。 2、 实验内容和步骤

(1) 四位二进制计数器电路的分析。 ①选取元器件、仪器并按图2-1连接电路。

②运行仿真,双击逻辑分析仪XLA1图标,观察并画出其显示的波形。

③分析逻辑分析仪上显示的Q0、Q1、Q2和Q3的波形,确定该电路的逻辑功能。

图2-1 四位二进制计数器电路

(2) 集成74LS290计数器的功能测试

①选取元器件并按图2-2所示电路连接,置“9”和置“0”端的状态由单刀双掷开关

控制,输出端状态由放光器件显示。

图2-2 (1) 74LS290的功能测试一(8421)

图2-2(2)74LS290的功能测试二(5421)

②分别改变置“9”和置“0”端的状态,实现置“0”(0000)和置“9”(1001)的功能,将测试结果填入表2-1中。

③改变电路的连接形式,用74LS290实现二进制、五进制、十进制8421BCD码的计数器,记录测试结果。 表2-1

输入端 R01 1 1 0 X 0 0

(3) 用两片74LS160设计实现24进制计数器,用数码管显示并验证计数状态。

R02 1 1 X 0 X X R91 0 X 1 1 0 0 R92 X 0 1 1 X X CP1 X X X X ↓ QD CP2 X X X X QA ↓ 8421码十进制计数器 5421码十进制计数器 1 0 0 1 QD 0 输出端 QC 0 QB 0 QA 0 3、 实验结果与分析

(1) 四位二进制计数器电路的分析

(I)连接好电路并开始仿真后,在逻辑分析仪XLA1上可以得到仿真结果如图2-3所示,其中从上到下依次为CP脉冲、Q0、Q1、Q2、Q3(4个JK触发器的输出)的波形。

(II)分析该所有波形,可以确定该电路的逻辑功能实际上是一个异步十进制计数器。Q3Q2Q1Q0从初始状态0000开始,到1001后

图2-3 四位二进制计数器电路波形返回初始状态,如此循环下去。 (2) 集成74LS290计数器的功能测试

电路中,输出端如果输出高电平,则相应发光器件会有亮光的指示,否则输出的是低电平。经过功能测试后,测试结果已填入表2-1中。经分析,该电路有以下特点与功能:

(I)异步清零。当R01、R02全为高电平,R91、R92中至少一个为低电平时,不需要时钟脉冲配合,即可使所有触发器清零。

(II)异步置9。当R91、R92全为高电平,R01、R02中至少一个为低电平时,不需要时钟脉冲配合,即可将Q3~Q0置成1001。

(III)计数。当R01、R02及R91、R92中至少有一个为低电平时,在时钟脉冲CP0或者CP1的下降沿作用下电路开始计数。其计数方式又根据不同情况分为两种:第一种是Q0与CP1相连,计数脉冲从CP0输入,此时构成的是8421码十进制计数器,见图2-2(1);第二种是Q3与CP0相连,计数脉冲由CP1输入,则构成5421码十进制计数器。

(3) 用两片74LS160设计实现24进制计数器,并用数码管显示并验证计数状态。

经分析,我自行设计电路如图2-4所示,并已通过验证能实现24进制计数功能。

图2-4 24进制计数器设计电路

(I)设计思路及原理:

74LS160是一种同步8421BCD码十进制计数器,具有异步清零、同步预置、计数和保持的功能。其中利用同步预置这一点,我设计出了如图2-4的电路。

电路中,U1、U2的时钟脉冲信号均由信号源CP直接提供,而U2的计数控制端ENP、ENT则与U1的进位端RCO相连。当U1有进位时,U2控制端才被驱动,U2计数一次。这是并行进位方式。

此外,电路中U1是计个位,U2是计十位,当从0计数到23(即U2:0010,U1:0011)时,通过与非门74LS12D,LD’同步预置端被激活,下一个CP信号脉冲时,U2U1均又预置已设定好的00000000,如此循环,实现24进制计数功能。 (II)结果显示与验证:

将U2的QD~QA和U1的QD~QA分别接入一个数码管(注意对应管脚),即可显示其表示的数,如图2-4中数码管显示的23。

仿真开始后,观察到数码管从00开始,01、02…22、23、00、01…一直循环下去。所以,该电路实现了从0——23的计数,也即实现了24进制的计数功能。

三、 选做内容

1、 实验目的

(1) 深入掌握组合逻辑电路的分析与设计方法。

(2) 熟悉数字逻辑功能的显示方法以及单刀双掷开关的应用。 (3) 熟悉逻辑分析仪的使用方法。

2、 实验内容与步骤

(1) 用74LS83将余3码转换成8421码。

74LS83是四位加法器,用它设计一个代码转换电路,将余3码转换成8421码,并用数码管显示转换结果。

(2) 用八选一数据选择器74LS151设计一个组合逻辑电路。

电路有三个输入变量A、B、C和一个控制变量M。当控制信号M=0时,电路实现“意见一致”的功能,即A、B、C状态一致时输出为“1”,否则为“0”;当控制信号M=1时,电路实现“多路表决”的功能,即输出与A、B、C中多数状态一致。 3、 实验结果与分析

(1) 用74LS83将余3码转换成8421码。

经分析,自行设计电路如图3-1所示,通过数码管显示,并已得到验证。

图3-1 余3码转换8421码电路

(I)设计思路及原理:

从实验一(2)中,我们了解到74LS83是一个四位的全加器,利用它可以设计代码转换电路,而通过分析后,发现实验一(2)正是将余3码转换成8421码

的电路。

(II)结果显示与验证:

将全加器的输出端与数码管相连可以得到代码转换后的译码。其测试结果与表1-1一致。

(2) 用八选一数据选择器74LS151设计一个组合逻辑电路

经分析,自行设计电路如图3-2所示,控制M、C、B、A不同按键,通过逻 辑分析仪XLA1查看波形并能验证其满足了要求。

图3-2 数据选择器实现组合逻辑电路电路图

(I)设计思路及原理:

74LS151是八选一的数选择器,控制端A、B、C不同的输入能得到D0~D7不同的输出。本实验中,逻辑变量有4个,分别为M、A、B、C,数据选择器的选择控制端只有3个A、B、C。在这里,我把逻辑变量C分离,而将M、A、B加到选择控制端,这样,按照要求,电路实现的逻辑函数表达式可以表示为:

F=M’A’B’(C’)+M’A’B(0)+M’AB’(0)+M’AB(C) +MA’B’(0)+MA’B(C)+MAB’(C)+MAB(1)

由此,便可以设计出如图3-2所示的电路图。

(II)结果显示与验证:

将M、A、B、C以及Y的波形接入到逻辑分析仪XLA1上,便可显示在不同情况下各自响应

的波形。一一分析后,可以验证该电路已满足实验要求。下面,截取两种情况的波形图(由上至下依次为M、A、B、C以及Y的波形)以作示例。

(i)M=0,A=1,B=0,C=0:注意到此时Y=0,与理论结果一致。

图3-3 组合逻辑电路波形图例一图3-3 组合逻辑电路波形图例二

(ii)M=1,A=0,B=1,C=1:注意到此时Y=1,与理论结果一致。

四、 实验问题及解决方法

1、 实验一(1)四舍五入电路电路设计中,遇到问题如下:

①逻辑分析仪与逻辑转换器搞混。解决方法:多次实验后,找到其中的错误在于原实验材料中“逻辑分析仪”出错,实际上该实验用的是逻辑转换器。

②点击图4-1的图标一直出错,跳出图4-2的窗口。解决方法:冷静分析后,明白了该实验是由真值表得到逻辑表达式和电路图,而图4-1表示将逻辑电路转换成真值表。

图4-1图4-2

2、 实验一(3)设计全加、全减逻辑电路中,遇到问题如下:

字信号发生器XWG1不会用,出不来结果。解决方法:通过查询资料和多次实验,明白了字信号发生器有32个输出端,从高位到低位从0开始不断计数和进位,类似于计数器的工作原理,只不过它是更大进制的计数器。一开始,我将控制端A、B、C端和XWG1的16、15、14管脚相连了,这样的话需要等到特别长的时间它们才能通过进位得到“1”高电平,所以在实验中我无法得出结果。经改正后,得到了实验结果。

3、 实验二(2)集成74LS290计数器的功能测试中,遇到问题如下:

5421码十进制计数器测试结果误以为错。解决方法:通过查看书和资料,最终理解了该电路在5421码计数器情况下的原理,其计数不再像8421码那样从QDQCQBQA的角度,而应是QAQDQCQB的角度。 4、 实验二(3)设计24进制计数器实验中,遇到问题如下;

数码管从显示0变化到23后,没有跳回0,而是从20开始再在20~23之间来回改变。解决方法:问题的出现在于十位无法实现预置数。针对该问题,思考许久后,我找到了根本原因:集成计数器74LS160的预置功能是同步预置的,而在原先电路中我却采用了串行进位的方式将两片计数器相连,即U1的进位端RCO控制U2的CP脉冲端。这样,当达到23后,本应该预置,但是十位未能到等到U1进位端的信号,所以停留在“2”不变。这样,我将电路改成了并行进位的方式,其连接也就是图2-4所示,得到了结果。

五、 实验收获、体会和建议

在本次实验中,所有内容均在multisim软件平台上独立完成,掌握了各仿真技术,也深入理解了数字逻辑中很多知识,收获颇多。

首先,对multisim软件的各应用模块我已经能较为熟练的应用,包括字信号发生器、逻辑转换器、逻辑分析仪、数码管、发光元件、时钟脉冲信号源等等。无论从设置还是连接,通过实验我已经能独立迅速完成。

其次,通过实验,我对数字逻辑电路知识的了解更加深入和具体。比如,通过74LS290计数器功能测试实验,我深刻理解了该计数器两种不同的计数方式(8421码和5421码的十进制计数)。通过24进制计数器的设计实验,我深入掌握了计数器同步和异步的区别以及它们对设计过程中串行、并行进位方式的影响。这些都加强了我对理论知识的理解。

此外,本次实验还培养了我的独立思考和对问题的处理分析能力。实验中,我独立完成电路仿真,遇到问题也都能经冷静分析后独立解决,的的确确感觉到自己的能力有所增长,也大大培养了对数字逻辑以及multisim软件应用的学习兴趣。

本文来源:https://www.bwwdw.com/article/78m2.html

Top