实 验 报 告
实验人:
院(系):
学号:
日期:
专业(班级):
实验题目: 四位ALU算术逻辑单元设计实验
一. 实验目的
1. 了解ALU(算术逻辑单元)的功能和使用方法;
2. 认识和掌握超前(并行)进位的设计方法;
3. 认识和掌握ALU的逻辑电路组成;
4. 认识和掌握ALU的设计方法。
二. 实验原理
本实验中的ALU运算逻辑单元由4个一位的ALU运算逻辑单元组成,每一位的ALU电路由全
加器和函数发生器所组成。为了实现多功能的运算,An和Bn数据是不能和全加器直接相连接
的,他们的功能受到F3~F1的制约。因此,可由An和Bn数据和功能变量F3~F1组合成新的函数
Xn和Yn,然后,再将Xn和Yn和下一位的进位Cn-1通过全加器进行全家运算以实现所需的运算
功能。C0为最低位的进位输入端,C4为最高位的进位端,Sn是运算结果(n=1,2,3,4)。
ALU 的逻辑结构如下图:
三. 实验内容
本实验的算术逻辑运算单元可实现求反、求补、加反、(加1)传送、异或以及加减运
算等8种功能。当然也可以根据需要进行功能的增减,只需要对函数发生器的设计做出修改
即可。(其中/B表示取B的反)
四位 ALU 的八种功能操作表
F3
F2
F1
功能
操作名称
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
S ← /B
S ← /B + 1*
S ← B
S ← B + 1*
S ← A + /B
S ← A + /B + 1*
S ← A + B
S ← A ⊕ B
求反
求补
传送 B
加 1 传送
加反
减
加
异或
四. 实验器材
(1)电脑一台
(2)MAX+PLUS II 电脑设计软件一套
(3)根据需要选用器件,但已基本逻辑门电路器件为主。
五. 实验分析与设计
该算术逻辑运算单元采用模块化设计方法。共划分了三类模块: 全加器电路模块
(fulladder)、函数发生器电路模块(func)、先行进位逻辑电路模块(C0~C4)。先完成各个
单独模块的设计,再根据具体要求和需要,将这些设计好的模块按要求组合起来,来实现多
功能算术逻辑运算单元。
(1) 全加器电路模块
根据功能操作,可以得一位算术/逻辑运算单元的全加器逻辑表达式(n=1、2、3、4)如下:
Sn=Xn⊕Yn⊕Cn-1
Cn=XnYn + (Xn+Yn)Cn-1
令 Pn= Xn+Yn
Gn= XnYn
则 Cn= Gn+PnCn-1
全加器电路逻辑图如下:
装之后的逻辑图如下:
封
(2) 函数发生器模块
由 ALU 的功能操作表分析得到如下功能表达式:
Xn = F3·An
Yn = /( F2 ○+ Bn )
函数发生器的逻辑电路如下:
装之后的逻辑图如下:
(3) 超前进位模块
这是实现 ALU 高速运算的关键,由前述基本原理相关内容可得,各位的进位表达式
如下:
C1= (G1+P1C0)·/(F1·F2·F3) = (X1Y1 + (X1+Y1)C0)·/(F1·F2·F3)
C2= (G2+P2C1)·/(F1·F2·F3) =(G2+P2G2 + P2P1C0)·/(F1·F2·F3)=(X2Y2 + (X2+Y2)
X1Y1 + (X2+Y2)(X1+Y1)C0) ·/(F1·F2·F3)
C3、C4 依此类推得,
C3= (X3Y3+(X3+Y3)X2Y2 + (X3+Y3)(X2+Y2) X1Y1 +
(X3+Y3)(X2+Y2)(X1+Y1)C0) ·/(F1·F2·F3)
C4= (X4Y4+(X4+Y4)X3Y3+(X4+Y4) (X3+Y3)X2Y2 + (X4+Y4) (X3+Y3)(X2+Y2) X1Y1 + (X4+Y4)
(X3+Y3)(X2+Y2)(X1+Y1)C0) ·/(F1·F2·F3)
根据以上逻辑表达式,画出电路图,做成相应的先行进位芯片 C1~C4,并组成实现 4 位
先行进位的芯片组,
C0 的逻辑电路图和符号:(G 端表示联级关系控制端)
C0 一个特殊的先行进位芯片,这是用来接收来自其他芯片的低位进位并产生一个向高位
进位的芯片。也是本 ALU 芯片的最低位进位模块,它在多个 ALU 模块之间的扩展起到重要作
用。在使用多个此类 ALU 芯片制作位数更高的算术逻辑单元时,c0 的 G 端将用于接收来自
另一个芯片的高位进位,以实现扩展。而在单独使用时,C0 的 G 位不起作用,此时一般只
需要将这位置零。C0 的逻辑表达式为:
C0=F1·/(F2·F3)+G,
C1 的逻辑电路图和符号:
C2 的逻辑电路图和符号:
C3 的逻辑电路图和符号:
C4 的逻辑电路图和符号:
最后对完成的各模块进行整合,并进行编译和仿真。
4 位 ALU 的逻辑图
4 位 ALU 的符号: