计算机组成原理实验 实验三 8位算术逻辑运算实验

目录

实验三 8位算术逻辑运算实验

一、实验目的

二、实验原理

三、实验电路

四、实验步骤

五、实验数据分析

六、思考题


实验三 8位算术逻辑运算实验

一、实验目的

1.掌握算术逻辑运算器单元ALU(74LS181)的工作原理。

2.掌握简单运算器的数据传送通路组成原理。

3.验证算术逻辑运算功能发生器74LS181的组合功能。

4.按给定数据,完成实验指导书中的算术/逻辑运算。

二、实验原理

实验中所用的运算器数据通路如图所示。其中运算器由两片74LS181以并/串形成8位字长的ALU构成。运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,内部数据总线通过LZD0~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存,两个锁存器的输入并联后连至插座ALUBUS,实验时通过8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,通过数据开关输入的数据由LD0~LD7显示。

图中算术逻辑运算功能发生器 74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M并行相连后连至SJ2插座,实验时通过6芯排线连至6位功能开关插座UJ2,以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDR1、LDDR2、ALUB`、SWB`以手动方式用二进制开关LDDR1、LDDR2、ALUB、SWB来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中ALUB`、SWB`为低电平有效,LDDR1、LDDR2为高电平有效。

另有信号T4为脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。

74LS181芯片:

                              

(1)芯片功能:

74LS181是一个2输入4输出的编码器,通过输入0~15输出0000~1111编码的芯片。74ls181芯片总共由22个引脚,其中包括8个数据输入端。这八个都是低电平有效。还包括S0、S1、S2、S3这四个控制端,这四个控制端主要控制两个四位输入数据的运算。

(2)芯片引脚:

A0~A3、B0~B3:数据输入端(低电平有效)。

F0~F3:二进制输出端,以四位二进制形式输出运算结果。

CN:处理进入芯片前进位制。

CN4:记录运算后的进位,

G:先行进位产生端。

P:先行进位传递函数。

S0、S1、S2、S3:四个控制端,控制两个四位输入数据的运算(加、减、与、或)。

M:控制芯片的运算方式,包括算术运算和逻辑运算。

(3)芯片功能表:

模式选择

M=0 算术运算

M=1

S3S2S1S0

n=1 无进位

n=0带进位

逻辑运算

0 0 0 0

F=A

F=A plus 1

F=  

0 0 0 1

F=A+B

F=(A+B) plus 1

F= 

0 0 1 0

F=A+ 

F=(A+ ) plus 1

F= B

0 0 1 1

F= -1

F=0

F=0

0 1 0 0

F=A plus (A )

F=A plus  (A ) plus 1

F= 

0 1 0 1

F=(A+B) plus (A )

F=(A+B) plus (A ) plus 1

F= 

0 1 1 0

F=A minus B minus 1

F=A minus B

F= 

0 1 1 1

F=(A ) minus 1

F=A 

F=A 

1 0 0 0

F=A plus AB

F=A plus AB plus 1

F=  +B

1 0 0 1

F=A plus B

F=A plus B plus 1

F= 

1 0 1 0

F=(A+ ) plus AB

F=(A+ ) plus AB plus 1

F=B

1 0 1 1

F=AB minus 1

F=AB

F=AB

1 1 0 0

F=A plus A

F=A plus A plus 1

F=1

1 1 0 1

F=(A+B) plus A

F=(A+B) plus A plus 1

F=A+ 

1 1 1 0

F=(A+  plus A

F=(A+ ) plus A plus 1

F=A+B

1 1 1 1

F=A minus 1

F=A

F=A


三、实验电路

1、实验接线图

本实验用到4个主要模块:⑴低8位运算器模块,⑵数据输入并显示模块,⑶数据总线显示模块,⑷功能开关模块(借用微地址输入模块)。

根据实验原理详细接线如下:

⑴ ALUBUS连EXJ3;

⑵ ALUO1连BUS1;

⑶ SJ2连UJ2;

⑷ 跳线器J23上T4连SD;

⑸ LDDR1、LDDR2、ALUB、SWB四个跳线器拨在左边(手动方式);

⑹ AR跳线器拨在左边,同时开关AR拨在“1”电平。

2、实验原理图

四、实验步骤

1.连接线路,仔细查线无误后,接通电源。

2.用二进制数码开关KD0~KD7向DR1和DR2寄存器置数。方法:关闭ALU输出三态门(ALUB`=1),开启输入三态门(SWB`=0),输入脉冲T4按手动脉冲发生按钮产生。设置数据开关具体操作步骤图示如下:(写入学号的后4位:34H,48H)

说明:LDDR1、LDDR2、ALUB`、SWB`四个信号电平由对应的开关LDDR1、LDDR2、ALUB、SWB给出,拨在上面为“1”,拨在下面为“0”,电平值由对应的显示灯显示,T4由手动脉冲开关给出。

3.检验DR1和DR2中存入的数据是否正确,利用算术逻辑运算功能发生器 74LS181的逻辑功能,即M=1。具体操作为:关闭数据输入三态门SWB`=1,打开ALU输出三态门ALUB`=0,当置S3、S2、S1、S0、M为1 1 1 1 1时,总线指示灯显示DR1中的数,而置成1 0 1 0 1时总线指示灯显示DR2中的数。

4.验证74LS181的算术运算和逻辑运算功能(采用正逻辑)。在给定DR1=34、DR2=05的情况下,改变算术逻辑运算功能发生器的功能设置,观察运算器的输出,完成实验数据的填写,并和理论分析进行比较、验证。

五、实验数据分析

操作数A

DR1

操作数B

DR2

S3 S2 S1 S0

M=0(算术运算)

Cn=1无进位

M=1(逻辑运算)

34H

05H

1  0  0  1

F=A plus B=39H

F= =1214H

1  1  1  0

F=(A+ plusA=32H

F=A+B=35H

六、思考题

1.如果要实现F=AB操作,S3、S2、S1、S0、M、Cn如何设置?

S3=0、S2=1、S1=1、S0=0、M=1、Cn任意

2.DR1置数完成后,如果不关闭控制端LDDR1会怎样?

LDDR1是寄存器DR1存数控制信号,高电平有效。LDDR2是寄存器DR2存数控制信号,高电平有效。如果不关闭控制端,则数据可能会丢失。

3.如果要实现F=AB操作,S3、S2、S1、S0、M、Cn如何设置?

S3=1、S2=0、S1=1、S0=1、M=0、Cn=0或者S3=1、S2=0、S1=1、S0=1、M=1、Cn任意

  • 4
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
根据提供的引用内容,可以得知已经有8位算术逻辑运算电路图的设计,但是没有提供具体的电路图。因此,我将为您介绍一下8位算术逻辑运算器的基本原理和实现方法。 8位算术逻辑运算器是计算机中的一个重要组成部分,它可以实现各种算术逻辑运算,如加、减、与、或、非、异或等。其基本原理是将两个8位二进制数输入到运算器中,经过运算后输出一个8位的结果。下面是一个简单的8位算术逻辑运算器的电路图: ```verilog module ALU(input [7:0] A, input [7:0] B, input [2:0] opcode, output reg [7:0] result, output reg zero, output reg carry, output reg overflow); always @(*) begin case (opcode) 3'b000: result = A + B; // 加法 3'b001: result = A - B; // 减法 3'b010: result = A & B; // 与运算 3'b011: result = A | B; // 或运算 3'b100: result = ~A; // 非运算 3'b101: result = A ^ B; // 异或运算 3'b110: result = A << 1; // 左移一位 3'b111: result = A >> 1; // 右移一位 endcase end assign zero = (result == 8'b0); // 判断结果是否为0 assign carry = (result[8] == 1); // 判断是否有进位 assign overflow = ((A[7] == B[7]) && (A[7] != result[7])); // 判断是否溢出 endmodule ``` 上述电路图中,输入A和B是两个8位的二进制数,opcode是一个3位的控制信号,用于选择不同的运算方式。输出result是一个8位的二进制数,表示运算结果;zero表示结果是否为0;carry表示是否有进位;overflow表示是否溢出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值