实验2 运算器实验(1)
学号: 姓名:
一、 实验目的
1.掌握开源数字电路模拟软件Logisim的使用;
2.掌握有符号数加减运算溢出检测的基本方法;
3.掌握运算器的组成及其工作原理;
4.验证4位函数发生器74181的组合功能。
二、实验设备
EL-JY-II型计算机组成原理实验系统一套,排线若干。
三、实验内容
1.利用Logisim软件设计一个全加器;
2.利用Logisim软件设计一个行波进位的补码加法/减法器;
四、实验步骤
- 74181功能验证
(1) 参考EL-JY-II型实验仪配套的实验指导(实验一),在EL-JY-II型实验仪上完成运算器实验的线路连接;
(2) 74181的功能表如下:
方式 |
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=/(AB) |
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加AB |
F=A加AB加1 |
1 0 0 1 |
F=/(A⊕B) |
F=A加B |
F=A加B加1 |
1 0 1 0 |
F=B |
F=(A+/B)加AB |
F=(A+/B)加AB加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 |
(3) 参考EL-JY-II型实验仪配套的实验指导(实验一),从74181功能表中选择部分功能进行测试,同时记录测试数据与测试结果。
A |
B |
S3 S2 S1 S0 M Cn |
F |
00000011 |
00000010 |
011000 |
00000001 |
00000101 |
00000001 |
100101 |
00000110 |
00000110 |
00000010 |
011010 |
00000100 |
00000101 |
00000001 |
111010 |
00000101 |
2、运算器数据传输通路分析与模拟;
(1) 学习Logisim中分割器(Splitter)、通道(Tunnel)组件、寄存器(Rigister)等组件,分析电路图lab1-3中运算器的数据通路;
(2) 设计一个操作流程,要求通过该流程能够在电路图lab1-3上模拟两个16位数的算术或逻辑运算,并将运算结果显示在输出灯上。
操作 说明
|
先分别输入两个16位数,每输入一个数时,先打开C-G,然后点LDR1按钮暂存第一个数,然后点灭C-G、LDR1;第二个数输入后,按打开C-G,然后点LDR2按钮暂存第二个数。此时,两个数据均储存在ALU里,点击ALU-G,再根据表格依次点击,完成对应运算
|
第1步 |
输入第一个16位数:0000000000000101,先打开C-G,然后点LDR1按钮暂存第一个数,然后点灭C-G、LDR1 |
第2步 |
第二个数:0000000000000001输入后,按打开C-G,然后点LDR2按钮暂存第二个数 |
第3步 |
点击ALU-G,依次点亮S0、S3、Cn,点击AR,实现两个数的加法算数运算 |
第4步 |
计算结果可知: 0000000000000101+0000000000000001=0000000000000110 |
最终结果 (截图) |
|
问:该实验如何实现多种不同运算的控制?
答:运算器部件要实现多种不同的功能,必须由控制器提供控制信号,运算器只是一个被动执行的部件。S0,S1, S2,S3是功能选择控制端,决定是做加、减、逻辑与、逻辑或、逻辑异或、移位等运算,表一的实验结果与手工验算完全一致,从而验正了整个ALU的算术/逻辑运算功能和移位处理功能。灵活运用SO,S1, S2,S3的不同组合可以实现许多其它功能,如通过移位运算可以实现数据的乘2(左移一位)和除2运算(右移一位)此外选择S3S2S1S0=0000或S3S2S1 S0=0001将操作数A或B可以直接送到ALU的输出,这样可以直接验证输入数据是否正确。