数字电路仿真实验报告.docx
《数字电路仿真实验报告.docx》由会员分享,可在线阅读,更多相关《数字电路仿真实验报告.docx(18页珍藏版)》请在冰豆网上搜索。
数字电路仿真实验报告
数字逻辑与CPU
仿真实验报告
姓名:
班级:
学号:
仿真实验
摘要:
Multisim是InteractiveImageTechnologies公司推出的以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
B
C
D
U2
0
0
1
1
0
0
1
0
0
1
0
1
0
1
2
0
1
1
0
3
0
1
1
1
4
1
0
0
0
5
1
0
0
1
6
1
0
1
0
7
1
0
1
1
8
1
1
0
0
9
(3)用八选一数据选择器74LS151设计一个全加、全减逻辑电路。
要求:
党控制信号M=0时,电路实现全加器的功能;当控制信号M=1时,电路实现全减器的功能。
运行Multisim,新建一个电路文件,保存为全加减电路文件。
从元器件库中选取所需元器件,放置在电路工作区,并连线。
从TTL工具栏选取所需元器件74LS151D和反相器74LS04,放置在电路工作区;在仪表工具栏中调出字信号发生器XWG1、逻辑分析仪XLA1;将元器件和仪表按图1-3所示连接。
其中,为了使输出、输入变量之间对应关系更加清楚,在输入和输出端通过Place/Placetext分别设置了S、Cn+1、M、A等文本标识。
图1-3数据选择器实现的可控全加、全减器电路
双击字信号发生器XWG1图标,按照图1-4所示进行面板的设置。
图1-4字发生器XWG1面板设置
双击逻辑分析仪XLA1图标,观察并画出输入变量与输出变量之间的对应波形。
分析输出变量与输入变量之间的对应关系,将结果填入表1-2中。
表1-2全加减电路测试结果
输入
输出
M
A
B
C
S
Cn+1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
3、实验结果与分析
(1)采用逻辑分析仪进行四舍五入电路的设计
在逻辑变换器XLC1面板中设置好输入状态以后,进行不同的转换。
(
)转换成逻辑函数表达式,得到输出变量与输入变量之间的函数关系式:
F=A’BC’D+A’BCD’+A’BCD+AB’CD’+AB’C’D,如图1-5
图1-5输出与输入变量之间的函数关系式图1-6最简函数关系式
(
)转换成最简函数表达式,得到:
F=BC+BD+A,如图1-6
(
)转换成与或门组成的门电路,得到图1-7。
图1-7与、或门逻辑电路
(
)转换成与非门组成的门电路,得到图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
R02
R91
R92
CP1
CP2
QD
QC
QB
QA
1
1
0
X
X
X
0
0
0
0
1
1
X
0
X
X
0
X
1
1
X
X
1
0
0
1
X
0
1
1
X
X
0
X
0
X
↓
QA
8421码十进制计数器
0
X
0
X
QD
↓
5421码十进制计数器
(3)用两片74LS160设计实现24进制计数器,用数码管显示并验证计数状态。
3、实验结果与分析
(1)四位二进制计数器电路的分析
(
)连接好电路并开始仿真后,在逻辑分析仪XLA1上可以得到仿真结果如图2-3所示,其中从上到下依次为CP脉冲、Q0、Q1、Q2、Q3(4个JK触发器的输出)的波形。
(
)分析该所有波形,可以确定该电路的逻辑功能实际上是一个异步十进制计数器。
Q3Q2Q1Q0从初始状态0000开始,到1001后
图2-3四位二进制计数器电路波形返回初始状态,如此循环下去。
(2)集成74LS290计数器的功能测试
电路中,输出端如果输出高电平,则相应发光器件会有亮光的指示,否则输出的是低电平。
经过功能测试后,测试结果已填入表2-1中。
经分析,该电路有以下特点与功能:
(
)异步清零。
当R01、R02全为高电平,R91、R92中至少一个为低电平时,不需要时钟脉冲配合,即可使所有触发器清零。
(
)异步置9。
当R91、R92全为高电平,R01、R02中至少一个为低电平时,不需要时钟脉冲配合,即可将Q3~Q0置成1001。
(
)计数。
当R01、R02及R91、R92中至少有一个为低电平时,在时钟脉冲CP0或者CP1的下降沿作用下电路开始计数。
其计数方式又根据不同情况分为两种:
第一种是Q0与CP1相连,计数脉冲从CP0输入,此时构成的是8421码十进制计数器,见图2-2
(1);第二种是Q3与CP0相连,计数脉冲由CP1输入,则构成5421码十进制计数器。
(3)用两片74LS160设计实现24进制计数器,并用数码管显示并验证计数状态。
经分析,我自行设计电路如图2-4所示,并已通过验证能实现24进制计数功能。
图
2-424进制计数器设计电路
(
)设计思路及原理:
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进制计数功能。
(
)结果显示与验证:
将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码电路
(
)设计思路及原理:
从实验一
(2)中,我们了解到74LS83是一个四位的全加器,利用它可以设计代码转换电路,而通过分析后,发现实验一
(2)正是将余3码转换成8421码的电路。
(
)结果显示与验证:
将全加器的输出端与数码管相连可以得到代码转换后的译码。
其测试结果与表1-1一致。
(2)用八选一数据选择器74LS151设计一个组合逻辑电路
经分析,自行设计电路如图3-2所示,控制M、C、B、A不同按键,通过逻
辑分析仪XLA1查看波形并能验证其满足了要求。
图3-2数据选择器实现组合逻辑电路电路图
(
)设计思路及原理:
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所示的电路图。
(
)结果显示与验证:
将M、A、B、C以及Y的波形接入到逻辑分析仪XLA1上,便可显示在不同情况下各自响应的波形。
一一分析后,可以验证该电路已满足实验要求。
下面,截取两种情况的波形图(由上至下依次为M、A、B、C以及Y的波形)以作示例。
(
)M=0,A=1,B=0,C=0:
注意到此时Y=0,与理论结果一致。
图3-3组合逻辑电路波形图例一图3-3组合逻辑电路波形图例二
(
)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软件应用的学习兴趣。