ALU设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验人:学号:日期:2010-03-20 院(系):软件学院专业(班级):
实验题目:ALU设计(4位和8位)
一. 实验目的
1.了解ALU(算术逻辑单元)的功能和使用方法
2.认识和掌握超前(并行)进位的设计方法
3.认识和掌握ALU的逻辑电路组成
4.认识和掌握ALU的设计方法
二. 实验原理
从结构原理图上可推知,本实验中的ALU运算逻辑单元由4个一位的ALU运算逻辑单元
组成。每一位的ALU电路由全加器和函数发生器组成。事实上,ALU的设计是在全加器的基
础上,对全加器功能的扩展来实现符合要求的多种算术/逻辑运算的功能。为了实现多种功
能的运算,An、Bn数据是不能直接与全加器相连接的,它们受到功能变量F3—F1的制约,
因此,可由An、Bn数据和功能变量F3-F1组合成新的函数Xn 、Yn,然后,再将Xn 、Yn
和下一位进位Cn-1通过全加器进行全加运算以实现所需的运算功能。ALU中,C0为最低位
的进位输入端,C4为最高位的进位输出端,Sn为每一位运算结果。一位算术/逻辑运算单元
的逻辑表达式(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
图1 ALU的逻辑结构原理图
实验要求进位位采用超前(先行、并行)进位实现。超前进位电路同时形成各位进位,因此实现快速进位,达到快速加法的目的。这种加法器称为超前进位加法器。
各超前(先行)进位位的形成根据表达式Cn=XnYn+(Xn+Yn)Cn-1来确定,其中n=1、2、3、4。后产生的进位与前进位有关,最终每个进位也只和Xn、Yn、C0有关,而Xn、Yn又是An、Bn的函数,如:
C1=X1Y1+(X1+Y1)C0
C2=X2Y2+(X2+Y2)C1
C3=X3Y3+(X3+Y3)C2
一些控制信号如F3-F1为功能控制信号,控制着4位ALU运算逻辑单元的八种功能操作:A4-A1和B4-B1为ALU的两组数据输入端;S4-S1为4位ALU的4个输出端,S表示为S=S4S3S2S1;C4为4位ALU的最高位进位输出端,依此还有C3、C2、C1。考虑级联关系时,如有必要可增加级联控制端G
三. 实验内容
表1 4位ALU的八种功能操作表
F3 F2 F1 S 功能描述
0 0 0 /B 求反
0 0 1 /B+1* 求补
0 1 0 B 传送B
0 1 1 B+1* 加1传送
1 0 0 A+/B 加反
1 0 1 A+/B+1* 减
1 1 0 A+B 加
1 1 1 A B 异或
注:“1*”为加1操作
输入信号:A4-A1、B4-B1、F3-F1、C0(控制端);
输出信号:S4-S1(数位)、C4(进位)
依照ALU的原理与逻辑结构原理图,用超前进位的方法设计能实现以上八种功能操作的4位ALU,并将其电路封装。为了能实现4位ALU到8位ALU、16位ALU等的扩展需要,设计时必须考虑级联关系,并实现4位ALU到8位ALU的扩展电路。
四. 实验器材
1.电脑一台
2.MAX+PLUS II电路设计软件一套
3.根据需要选用器件, 但以基本逻辑门电路器件为主
五. 实验分析与设计
1.先设计出全加器的构造
根据Sn=Xn⊕Yn⊕Cn-1,Cn = XnYn + (Xn⊕Yn)C
n-1连出以下电路
1
图2 全加器电路(adder.gdf)
封装之:
图3 封装后的全加器(adder.sym)
2.设计函数发生器
由表1结果S可观察到,Xn Yn对应表1中S里A和B的值(F1另外处理)。Xn = F3·An
Yn = F2·Bn +F2’·Bn’= F2·Bn + (F2+Bn)’
考虑到F1信号用于加一操作,该操作关系到全加器,故不在函数发生器里控制。
图4 函数发生器(function.gdf)
封装之
图5 封装后的函数发生器 (function.sym)
3.进行四位ALU电路图连接
F1为1时(除去异或情况),C
0位应当进一,C
= (F
3
F
2
F
1
)’*F1 *G’+ G * C 。G控制
端为1时,由C
决定进位,G控制端为0时,由F1决定进位F1F2F3为1时,进位为0
由此可以推出电路连接逻辑:
C1= [ X1Y1+(X1+Y1)C0 ]·(F1F2F3)’
C2= [ X2Y2+(X2+Y2)C1 ]
C3= [ X3Y3+(X3+Y3)C2 ]
图6 4位ALU电路图 (附件alu4.gdf)
编译模拟后得到图7结果,A和B的信号随机发生,注意使用功能模拟否则会有延时
图 7 模拟后的波形图(附件alu.scf)
成功得到运行结果即可进行封装,级联成为八位ALU。
图8 封装后的4位ALU ( 附件alu4.sym)
4.扩展到8位ALU
使用封装后的4位ALU连接:
图9 扩展到8位的ALU ( 附件alu8.gdf)
图 10 八位ALU的波形图( 附件alu8.scf) 六. 思考题
设计一个4*4位的原码阵列乘法器和一个4/4位的原码阵列除法器.
七. 实验心得