预 习 报 告
实验题目:运算器
预习内容:
1. 逻辑运算
⑴逻辑非运算:按位求它的反,常用变量上加一横表示
⑵逻辑加运算:按位求它们的“或”,常用“+”来表示
⑶逻辑乘运算:按位求它们的“与”,常用“.”来表示
⑷逻辑异运算:按位求它们的模2和,常用“⊕”来表示
2. 多功能算术/逻辑运算单元
⑴基本思想:Si=Ai⊕Bi⊕Ci
Ci+1=AiBi+BiCi+CiAi
⑵逻辑表达式
⑶算术逻辑运算的实现:①算术操作②逻辑操作
⑷两级先行进位的ALU :①成组进位发生输出②成组进位传送输出
实验目的与要求(及主要实验仪器、设备):
1.掌握算术逻辑运算单元的工作原理。
2.熟悉简单运算器的电路组成。
3.熟悉 4 位运算功能发生器(74LS181)的算术、逻辑运算功能。
实验要求
1.做好实验预习,复习全加器的原理,掌握实验元器件的功能特性。
2.按照实验内容与步骤的要求,独立思考,认真仔细地完成实验。
本次实验采用的主要设备:自带电脑
实验原理(方法与与原理分析):
1. 两片74LS181 芯片以并/串形式构成的8位字长的运算器。右方为低4位运算芯片,左方为高4位运算芯片。低位芯片的进位输出端Cn+4与高位芯片的进位输入端Cn相连,使低4位运算产生的进位送进高4位。低位芯片的进位输入端Cn可与外来进位相连,高位芯片的进位输出外部。
2. 为控制运算器向内总线上输出运算结果,在其输出端连接了一个三态门(用74LS245实现) 。 若要将运算结果输出到总线上,则要将三态74LS245 的控制端ALU-B 置低电平。否则输出高阻态。数据输入单元(实验板上印INPUT DEVICE)用以给出参与运算的数据。其中,输入开关经过一个三态门(74LS245) 和内总线相连,该三态门的控制信号为SW-B,取低电平时,开关上的数据则通过三态门而送入内总线中。总线数据显示灯(BUS UNIT 单元中)已与内总线相连,用来显示内总线上的数据。控制信号中除T4为脉冲信号,其它均为电平信号。由于实验电路中的时序信号均已连至“W/R UNIT”单元中的相应时序信号引出端,因此,需要将“W/R UNIT”单元中的T4 接“STATE UNIT”单元中的微动开关 KK2 的输出端。 在进行实验时,按动微动开关,即可获得实验所需的单脉冲。
3. 运算器实验电路如图 2.1 所示。两片 4 位的 74LS181 构成了 8 位字长的 ALU。两个 8 位的 74LS273 作为工作寄存器 DR1 和 DR2,用于暂存参与运算的操作数。参与运算的数据由数据开关通过三态门 74LS245 送入工作寄存器,ALU 的运算结果也通过三态门74LS245 发送到数据显示灯上。
4. 参与运算的操作数由 SW7~SW0 共 8 个二进制开关来设置,当SW − BUS=0 时,数据通过三态门 74LS245 输出到 DR1 和DR2。DR1 接ALU 的 A 输入端口,DR2 接 ALU 的 B 输入端口。在 P1 的上升沿将数据打入 DR1,送至 74LS181 的 A 输入端口;在 P2 的上升沿将数据打入 DR2,送至 74LS181 的 B 输入端口。
5. LU 由两片 74LS181 构成,其中 74LS181(1)做低 4 位算术逻辑运算,74LS181(2)做高4 位算术逻辑运算,74LS181(1)的进位输出信号 Cn+4 与 74LS181(2)的进位输入信号 Cn 相连,两片 74LS181 的控制信号 S3~S0、M 分别相连。运算结果通过一个三态门 74LS245 输出到数据显示灯上。另外,74LS181(2)的进位输出信号 Cn+4 可另接一个指示灯,用于显示运算器进位标志信号状态。
实验步骤(程序代码与实验过程):
1)ALU-BUS=0,打开ALU输出端的三态门;
2)设置 Cn=1,ALU 无进位输入;
3)将S3、S2、S1、SO、M 置为 00000,指示灯应显示DR1中
数据00111101;
4) 将S3、S2、S1、SO、M 置为10101,指示灯应显示DR2中
数据10100111。
实验结果(数据分析与结论):
- 验证 74LS181 的算术运算和逻辑运算功能(采用正逻辑)。在给定 DR1=65H,DR2=A7H 的情况下,改变运算器的功能模式,观察运算器的输出,并填入表 2-1,并和理论值进行比较、验证。
表 2-1 运算器功能验证
工作模式选择 S3 S2 S1 S0 |
算术运算(M=0)(Cn=1 无进位) |
逻辑运算(M=1) |
||
功能 |
输出值 |
功能 |
输出值 |
|
0000 |
A |
00111101 |
— AEAE |
11000010 |
0001 |
A+B |
01111101 |
—————— AE A EAAE + EAAE B E |
10000010 |
0010 |
— A+AEBE |
10111111 |
— AEAEAB |
01000000 |
0011 |
0 minus 1 |
11111111 |
Logical 0 |
00000000 |
0100 |
— A plus AAEBE |
01111101 |
———— AE AEAAE BE |
11001010 |
0101 |
— (A+B) plus AAEBE |
10000101 |
— AEBE |
10001010 |
0110 |
A minus B minus 1 |
11000111 |
A⊕B |
01001000 |
0111 |
— AABE EA minus 1 |
00000111 |
— AAEBE |
00001000 |
1000 |
A plus AB |
00110010 |
— AEAEA+B |
11110111 |
1001 |
A plus B |
10110010 |
—————— AE AEAAE ⊕EAAE BE |
10110111 |
1010 |
— (A+ABE EA) plus AB |
11110100 |
B |
01110101 |
1011 |
AB minus 1 |
00110100 |
AB |
00110101 |
1100 |
A plus A |
01111010 |
Logical 1 |
11111111 |
1101 |
(A+B) plus A |
10111010 |
— A+AEBE |
10111111 |
1110 |
— (A+ABE A)E plus A |
I1111100 |
A+B |
01111101 |
1111 |
A minus 1 |
00111100 |
A |
00111101 |
注意:A 和B 分别表示参与运算的两个数,“+”表示逻辑或,“plus”表示算术求和。
问题讨论:
问:
1.运算器主要由哪些器件组成?这些器件是怎样连接的?
答:运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成。
2.芯片 74LS181 没有减法:A minus B 的指令,怎样实现减法功能?
答:在减法运算时,可用减法取反码运算后用加法器实现。
3.74LS181 有哪两种级联方法?分别要用到哪些引脚?哪一种速度更快?
答;1.第一种是单级先行进位的ALU用四片74181构成的16位行波进位的ALU,第二种为两级先行进位的ALU,分别是用四片74181构成的16位行波进位的ALU和用四片74181和一片74182构成的16位并行ALU,第二种速度更快。