logo资料库

四位ALU算术逻辑单元设计实验.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
实 验 报 告 实验人: 郑博 学号: 07303156 日期: 2009-04-05 院(系): 软件学院 专业(班级): 07软件工程(数字媒体) 实验题目:四位ALU算术逻辑单元设计实验 一. 实验目的 1. 了解ALU(算术逻辑单元)的功能和使用方法; 2. 认识和掌握超前(并行)进位的设计方法; 3. 认识和掌握ALU的逻辑电路组成; 4. 认识和掌握ALU的设计方法。 二. 实验原理 由结构原理图可知,An、Bn数据是不能直接与全加器连接,它们受到功能变量F3—F1 的制约,因此,可由An、Bn数据和功能变量F3-F1组合产生成新的函数Xn、Yn,然后,再将 Xn、Yn和下一位Cn-1通过全加器进行全加运算以实现所需的运算功能。 图 9.1.1 ALU 的逻辑结构原理图 Sn=Xn○+ Yn○+ Cn-1; Cn=XnYn+(Xn+Yn)Cn-1 令Pn=Xn+Yn Gn=XnYn 则Cn=Gn+Pn-1 实验要求进位采用超前进位实现。超前进位电路同时形成各位进位,因此实现快速进
位,达到快速加法的目的。 各超前进位的形成根据表达式Cn=XnYn+(Xn+Yn)Cn-1来确定,其中n=1、2、3、4。后 产生的进位与前进位有关,最终每个进位也只和Xn、Yn、C0有关,而Xn、Yn又是An、Bn的函 数。 三. 实验内容 表 9.1.1 4 位 ALU 的八种功能操作表 F3 F2 F1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 1 注:“1*”为加 1 操作 Sn 功能描述 /B /B + 1* B B + 1* A + /B A + /B + 1* A + B A ⊕ B 求反 求补 传送 B 加 1 传送 加反 减 加 异或 依照ALU的原理与逻辑结构原理图,用超前进位的方法设计能实现以上八种功能操作 的4位ALU。为了能实现4位ALU到8位ALU、16位ALU等的扩展需要,设计时 必须考虑级联关系,并实现4位ALU到8位ALU的扩展电路。 四. 实验器材 1. 电脑一台; 2. MAX+PLUSII电路设计软件一套; 3. 根据需要选用器件,但以基本逻辑门电路器件为主。 五. 实验分析与设计 全加器的逻辑表达式如下: S1=X1○+ Y1○+ C0 C1=G1+P1C0=X1Y1+(X1+Y1)C0
S2=X2○+ Y2○+ C1= X2○+ Y2○+ ( X1Y1+(X1+Y1)C0) C2=G2+P2C1=G2+P2G1+P2P1C0=X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0 S3= X3○+ Y3○+ C2= X3○+ Y3○+ ( X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0) C3 = X3Y3 + (X3+Y3)C2 = X3Y3 + (X3+Y3)X2Y2 + (X3+Y3)(X2+Y2)X1Y1 +(X3+Y3)(X2+Y2)(X1+Y1)C0 S4=X4○+ Y4○+ C3 =X4○+ Y4○+ ( X3Y3 + (X3+Y3)X2Y2 + (X3+Y3)(X2+Y2)X1Y1 +(X3+Y3)(X2+Y2)(X1+Y1)C0) C4 = X4Y4 + (X4+Y4)C3 = 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 由函数发生器的功能表知,F3控制A的输入,F2控制B取反操作,F1控制加1操作。 但当F3 = F2 = F1 = 1时,功能是异或,也即An对Bn进行半加,所以在这种情况下必须 把进位输入屏蔽掉。这样我们有: Xn = F3An; Yn = F2○· Bn; C0 = F1; Cn’ = Cn(F3F2F1)’; 考虑级联关系,我们观察一下用两个四位ALU组合成8位ALU的情况,不难发现,需 要修改的就是加1操作,除了低位的ALU外,高位的ALU的F1不能加到其进位C0端,所以 我们设一个控制端G来控制F1对C0的影响: C0 = GF1 + C(C为低位的ALU的进位端); 那么当要扩展ALU时,除了低位的ALU接入1外,其它的控制端必须接入0.
电路图: 波形图: 实验结果及分析: 由ALU的功能操作表知,当F3F2F1为000时,ALU对B进行求反,观察以上波形图,B此时 为0000,输出结果为1111,进位为0,满足要求;当F3F2F1为001时,ALU对B进行求补,观察 以上波形图,B此时为0001,输出结果为1111,进位为0,满足要求;当F3F2F1为010时,ALU 传送B,观察以上波形图,B此时为0010,输出结果为0010,进位为0,满足要求;当F3F2F1 为011时,ALU对B加1传送,观察以上波形图,B此时为0011,输出结果为0100,进位为0,满 足要求;当F3F2F1为100时,ALU对A和B进行加反运算,观察以上波形图,A此时为1000,B 此时为0100,输出结果为0011,进位为1,满足要求;当F3F2F1为101时,ALU对A和B进行减 运算,观察以上波形图,A此时为1010,B此时为0101,输出结果为0001,进位为1,满足要
求;当F3F2F1为110时,ALU对A和B进行加运算,观察以上波形图,A此时为1100,B此时为0110, 输出结果为0010,进位为1,满足要求;当F3F2F1为111时,ALU对A和B进行异或功能,观察 以上波形图,A此时为1110,B此时为0111,输出结果为1001,进位为0,满足要求;以下类 同。 六. 实验心得 1.由于这是第一次使用 max-plus 做实验,对 max-plus 的操作还是相当生疏。比如,当编译 新的文件时,发现了错误,但一直找不到错误的源头,考虑了很久才发现是因为忘记了把待 编译的文件设为当前工程文件后就开始编译文件,而错误的源头是原工程文件。 2.要充分理解题意,比如实验中 4 位 ALU 的第八个功能“异或”,一开始我只是屏蔽了最低 位的进位而已,而没有考虑其他进位,因此只有最低位进行异或功能,其他位进行加功能。
分享到:
收藏