ALU设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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位的原码阵列除法器.

七. 实验心得

相关文档
最新文档