实验0 ROM仿真
一、实验目的
- 掌握ROM的工作原理;
- 画出逻辑电路图及布出美观整齐的接线图;
- 掌握ROM读出原理。
二、总体设计
2.1基本原理
存储元由有否二极管组成,若有,由于二极管导通那么数据线上可以读出1;如果没有二极管,数据线上输出接地电平,读出0。
2.2设计步骤
(1)要求输出学号后四位:0427
(2)设计J1、J2为0或1时,需要向U7输入的值
(3)完成电路
三、详细设计
3.1设计
J1 J2\ | 0 | 1 |
0 | 0000 | 0100 |
1 | 0010 | 0111 |
四、实验结果与分析
4.1结果分析
成功输出0427,符合实验要求
4.2实验结果
图 输出0427
五、小结与心得体会
实验中需要设计一个ROM电路,以实现将给定的学号后四位(0427)进行读取输出。
通过这个实验,我对ROM的工作原理有了更深入的理解,并且学会了如何绘制逻辑电路图和整齐的接线图。
实验1 验证74LS181运算和逻辑功能
一、实验目的
- 掌握算术逻辑单元(ALU)的工作原理;
- 熟悉简单运算器的数据传送通路;
- 画出逻辑电路图及布出美观整齐的接线图;
- 验证4位运算功能发生器(74LS181)组合功能。
二、总体设计
2.1基本原理
ALU能进行多种算术运算和逻辑运算。4位ALU-74LS181能进行16种算术运算和逻辑运算。功能表如下:
M = 1 逻辑运算 | M = 0算术运算 | ||
S3 S2 S1 S0 | 逻辑运算 | CN=1 (无进位) | CN =0 (有进位) |
0 0 0 0 | F=/A | F=A | F=A加1 |
0 0 0 1 | F=/(A + B) | F=A + B | F=(A + B) 加1 |
0 0 1 0 | F=(/A ) B | F=A + /B | F=( A + /B )加1 |
0 0 1 1 | F=0 | F=负1(补码形式) | F=0 |
0 1 0 0 | F=/(A B) | F=A加A ( / B) | F=A加A / B加1 |
0 1 0 1 | F=/B | F=(A + B) 加A / B | F=(A + B)加A / B加1 |
0 1 1 0 | F=A Å B | F=A减B减1 | F=A减B |
0 1 1 1 | F=A/B | F=A (/ B)减1 | F=A (/ B) |
1 0 0 0 | F=/A +B | F=A加A B | F=A加A B加1 |
1 0 0 1 | F=/( A Å B) | F=A加 B | F=A加B加1 |
1 0 1 0 | F=B | F=( A + /B )加A B | F=( A + /B )加A B加1 |
1 0 1 1 | F=AB | F=AB减1 | F=AB |
1 1 0 0 | F=1 | F=A加 A | F=A加 A加1 |
1 1 0 1 | F=A + /B | F=(A + B) 加 A | F=(A + B) 加 A加1 |
1 1 1 0 | F=A + B | F=(A + / B) 加 A | F=(A + / B) 加 A加1 |
1 1 1 1 | F=A | F=A 减1 | F=A |
(上表中的“/”表示求反)
ALU-74LS181引脚说明:M=1 逻辑运算,M=0算术运算。
引 脚 | 说 明 |
M 状态控制端 | M=1 逻辑运算;M=0算术运算。 |
S3 S3 S1 S1运算选择控制 | S3 S3 S1 S1决定电路执行哪一种算术 |
A3 A2 A1 A1 | 运算数1,引脚3为最高位 |
B3 B2 B1 B0 | 运算数2,引脚3为最高位 |
Cn 最低位进位输入 | Cn =0 有进位;Cn =1 无进位; |
Cn+4本片产生的进位信号 | Cn+4=0 有进位;Cn+4=1 无进位; |
F3 F2 F1 F0 | F3 F2 F1 F0运算结果,F3为最高位 |
2.2设计步骤
(1)此为验证实验,按4位ALU验证电路示意图连线
三、详细设计
先放置元器件,然后进行连线
四、实验结果与分析
4.1结果分析
验证74LS181型4位ALU的逻辑算术功能,填写下表:
S3 S2 S1 S0 | 数据1 | 数据2 | 算术运算(M=0) | 逻辑运算(M=1) | |
CN=1 (无进位) | CN =0 (有进位) | ||||
0 0 0 0 | AH | 5H | F=AH | F=BH | F=5H |
0 0 0 1 | AH | 5H | F=FH | F=0H | F=0H |
0 0 1 0 | AH | 5H | F=AH | F=BH | F=5H |
0 0 1 1 | AH | 5H | F=FH | F=0H | F=0H |
0 1 0 0 | FH | 1H | F=DH | F=EH | F=EH |
0 1 0 1 | FH | 1H | F=DH | F=EH | F=EH |
0 1 1 0 | FH | 1H | F=DH | F=EH | F=EH |
0 1 1 1 | FH | 1H | F=DH | F=EH | F=EH |
1 0 0 0 | FH | FH | F=EH | F=FH | F=FH |
1 0 0 1 | FH | FH | F=EH | F=FH | F=FH |
1 0 1 0 | FH | FH | F=EH | F=FH | F=FH |
1 0 1 1 | FH | FH | F=EH | F=FH | F=FH |
1 1 0 0 | 5H | 5H | F=AH | F=BH | F=FH |
1 1 0 1 | 5H | 5H | F=AH | F=BH | F=FH |
1 1 1 0 | 5H | 5H | F=4H | F=5H | F=5H |
1 1 1 1 | 5H | 5H | F=4H | F=5H | F=5H |
4.2实验结果
图 电路连线(例图)
(s0s1s2s3 = 0000,CN = 0,M = 0,数据1=A,数据2=5 ,结果为B——正确)
五、小结与心得体会
本次实验,验证了74LS181算术逻辑单元(ALU)的组合功能,熟悉了简单运算器的数据传送通路。
在实验过程中,我了解了ALU的基本原理,即它能够进行多种算术和逻辑运算。通过设计测试用例,我针对每种运算功能都进行了验证,并完成了相应的表格(为保证报告简洁,验证过程图例不一一展示)。
通过实验,我学到了很多关于ALU的知识,包括其能够进行的各种运算功能和数据传送通路。我也体会到了实际验证电路功能的重要性,需要仔细设计测试用例并进行逐一验证,以确保ALU的每种功能都能正常工作。
实验2 运算器(2)
一、实验目的
- 熟练掌握算术逻辑单元(ALU)的应用方法;
- 进一步熟悉简单运算器的数据传送原理;
- 画出逻辑电路图及布出美观整齐的接线图;
- 熟练掌握有关数字元件的功能和使用方法。
- 熟练掌握子电路的创建及使用。
二、总体设计
2.1基本原理
电路图中,上右下三方的8条线模拟8位数据总线;K8产生所需数据;74244层次块为三态门电路,将部件与总线连接或断开,切记总线上只能有一个输入;两个74273层次块作为暂存工作寄存器DR1和DR2;两个74374层次块作为通用寄存器组(鉴于电路排列情况,只画出两个通用寄存器GR1和GR2,如果可能的话可设计4个或8个通用寄存器);众多的开关作为控制电平或打入脉冲;众多的8段代码管显示相应位置的数据信息;核心为8位ALU层次块。
2.2设计步骤
(1)验证实验,按要求连线
(2)完成验证
三、详细设计
先放置元器件,然后进行连线
四、实验结果与分析
4.1实验内容
- 说明74LS244N的功能及其在电路中作用,及输入信号G有何作用;
74LS244为3态8位缓冲器,用于暂存数据,信号G在电路中起开关作用,低电平有效。
- 说明74LS273N的功能及其在电路中作用,及输入信号CLK有何作用;
74LS273N是待清除功能触发器,输出输入端各8个,高电平触发,低电平清除,用作数据锁存器,输入信号CLK上跳沿即可触发。
- 说明74LS374N的功能及其在电路中作用,及CLK和OC有何作用;
74LS374N是有三态输出的触发器,CLK上跳沿触发工作,OC为低电平连接,高电平断开。
- K8产生任意数据存入通用寄存器GR1。
打开K8开关,在总线中存入数据3,然后将GR1寄存器的OC和CLK端置0,然后再将CLK端置1
图 存数据入GR1
- K8产生任意数据存入通用寄存器GR2。
打开K8开关,在总线中存入数据5,然后将GR2寄存器的OC和CLK端置0,然后再将CLK端置1
图 存数据入GR2
- 完成GR1+GR2→GR1。
取出数据1与数据2,s0s1s2s3为1001,M置0,CN置1,运算器G置0,将寄存器1的CLK置0然后置1,运算结果存入寄存器1
图 GR1+GR2→GR1
- 完成GR1-GR2→GR2。
操作与(6)类似,s0s1s2s3取0110,M置0,CN置0
图 GR1-GR2→GR2
- 完成GR1∨GR2→GR1。
操作与(6)类似,s0s1s2s3取0111,M置1,1∨0结果为1
图 GR1∨GR2→GR1
- 完成GR1∧GR2→GR2。
操作与(6)类似,s0s1s2s3取1101.M置1,1∧0结果为0
- 完成GR1⊕GR2→GR1。
操作与(6)类似,s0s1s2s3取0110.M置1,1⊕0结果为1
图 GR1⊕GR2→GR1
- ~GR1→GR2。(“~”表示逻辑非运算)
操作与(6)类似,s0s1s2s3取0000.M置1
图 ~GR1→GR2
- ~GR2→GR1。
操作与(6)类似,s0s1s2s3取1010.M置1
~GR2→GR1
五、小结与心得体会
掌握了算术逻辑单元(ALU)的应用方法,进一步熟悉了简单运算器的数据传送原理,并且学会了画出逻辑电路图及布置美观整齐的接线图。同时,更加熟练地掌握了数字元件的功能和使用方法,以及学会了创建和使用子电路。
此外,这个实验还锻炼了我在处理复杂电路时的思维能力和分析能力。
实验3 字发生器及跑马灯
一、实验目的
了解字发生器的使用方法。
二、总体设计
2.1基本原理
通过设定字发生器的数据,使探针依次点亮,形成跑马灯。
2.2设计步骤
(1)完成模拟电路的连线
(2)数据设置,将2的0~15次方依次存入,设置好开始点和终止点
三、详细设计
3.1数据设置
图 数据设置
四、实验结果与分析
4.1结果分析
成功实现了循环的红绿色爱心跑马灯效果
4.2实验结果
图 跑马灯
五、小结与心得体会
通过实验,我学会了如何使用字发生器,了解了其工作原理。我也体会到了实际操控电路时需要仔细设置数据和参数,以确保跑马灯效果的完美呈现。
实验4 模拟微程序实现指令
一、实验目的
模拟微程序实现机器语言指令
二、总体设计
2.1基本原理
字发生器的一行输出数据可以作为一条微指令,一条机器语言指令由若干条微指令组成。用字发生器的输出取代图2-3中开关,模拟微指令自动执行实现一条机器语言指令。
- 详细设计
图 完整电路图
(1)用字发生器代替开关功能
(2)将操作转化为数据保存下来
四、实验结果与分析
4.1实验内容
在Multisim画出电路图并仿真,完成如下操作。
- 产生任意数据存入通用寄存器GR1。
- 产生任意数据存入通用寄存器GR2。
- 完成GR1+GR2→GR1。
- 完成GR1-GR2→GR2。
- 完成GR1∨GR2→GR2。
- 完成GR1∧GR2→GR1。
10H->00010000;5H->00000101;15H->00010101。结果正确
(7)完成GR1⊕GR2→GR1。(这些不贴了,学弟学妹也要自己思考呀
(8)~GR1→GR2。(“~”表示逻辑非运算)
(9)~GR2→GR1。
五、小结与心得体会
实验中通过模拟微程序来实现机器语言指令。通过使用字发生器的输出作为微指令,并将多条微指令组合成一条机器语言指令。通过将字发生器的输出连接到相应的电路元件上,可以模拟微指令的自动执行,从而实现机器语言指令的功能。
在实验过程中,我进一步理解了微程序的概念和原理。微程序是一系列微指令的集合,通过控制微指令的执行顺序和操作,可以实现不同的机器语言指令。通过使用字发生器作为微指令的来源,我更直观地感受到了微程序的执行过程。
同时,在实现机器语言指令的过程中,我对电路元件的功能和连接方式有了更深入的了解。我学会了如何将微指令与相应的电路元件进行连接,并控制它们的工作状态,以实现特定的操作功能。这对于我理解计算机的指令执行过程和数字电路设计都有很大的帮助。