收藏 分销(赏)

ALU的设计与实现.doc

上传人:丰**** 文档编号:4542030 上传时间:2024-09-27 格式:DOC 页数:4 大小:28.50KB
下载 相关 举报
ALU的设计与实现.doc_第1页
第1页 / 共4页
ALU的设计与实现.doc_第2页
第2页 / 共4页
ALU的设计与实现.doc_第3页
第3页 / 共4页
ALU的设计与实现.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、计算机组成原理实验实验四 ALU得设计与实现专业班级:计算机科学与技术学号: 0936008 姓名:冯帆学号: 0936036 姓名:张琪实验地点: 理工楼901 实验四 ALU得设计与实现一、实验目得 1、理解ALU得功能与其在处理器中得地位。2、掌握ALU得结构化(分模块、分层次)得设计方法。 3、掌握ALU得Verilog语言描述方法。二、实验内容1、学习ALU得设计方法。2、用Verilog语言采用行为描述得方法完成74181得逻辑设计。3、用Verilog语言采用结构描述得方法完成74181得逻辑设计。4、学习用宏模块得方法定制并调用 ALU 。三、实验仪器及设备:PC机+ Quar

2、tus 9、0 + DE270四、实验步骤:1.打开Quartus软件,新建工程,并新建一个verilog文件。2.编写verilog程序。首先,查找74181得功能表,用always模块与case语句实现其功能。然后,设计ALU得过程中,利用p函数与g函数实现超前进位功能。3.附程序代码如下:module ALU_74181 (input 3:0 a, input 3:0 b, input 3:0 s, /选择信号 input m, /m=1执行逻辑运算,反之执行算术运算 input cn, /低位得进位或者就是高位得借位 output 3:0 f, output aeqb, /输出,当a=

3、b时输出1,当a!=b时,输出0 output c4, /对应74181得Cn+4 output p, /p函数 output g /g函数);reg 3:0 result; /定义中间变量result存放结果wire 4:0temp; /定义中间变量temp存放选择变量s与mwire p0,p1,p2,p3; /进位产生信号wire g0,g1,g2,g3; /进位传递信号assign temp=s,m; always(temp or a or b) begin case (temp) /case语句实现74181得 32种功能 5b00000: result=a; 5b00001: res

4、ult=!a; 5b00010: result=a|b; 5b00011: result=(!a|b); 5b00100: result=(a|!b); 5b00101: result=!a&b; 5b00110: result=4b1111;/补码运算,1得补码就是1111 5b00111: result=0; 5b01000: result=a+(a&!b); 5b01001: result=!(a&b); 5b01010: result=!b; 5b01011: result=(a|!b)+(a&!b); 5b01100: result=ab; 5b01101: result=ab+4b

5、1111; 5b01110: result=a&(!(b+4b1111); 5b01111: result=a&!b; 5b10000: result=a+a&b; 5b10001: result=(!a)|b; 5b10010: result=a+b; 5b10011: result=!(ab); 5b10100: result=(a|!b)+a&b; 5b10101: result=b; 5b10110: result=a&b+4b1111; 5b10111: result=a&b; 5b11000: result=a+a; 5b11001: result=1; 5b11010: resu

6、lt=(a|b)+a; 5b11011: result=(a|!b); 5b11100: result=(a|!b)+a; 5b11101: result=(a|b); 5b11110: result=a+4b1111; 5b11111: result=a; default : result = 4b0000; /默认情况,给result赋值为0 endcase endassign f=result; /将中间变量result得值赋给f/片与片之间得超前进位assign g0=a0&b0; /g函数就是a与b得与assign g1=a1&b1;assign g2=a2&b0;assign g3

7、=a3&b0;assign p0=a0b0; /p函数就是a与b得异或assign p1=a1b1;assign p2=a2b2;assign p3=a3b3;assign c4=g3|(g2&p3)|(g1&p2&p3)|(g0&p0&p1&p2)|(cn&p0&p1&p2&p3);/g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0cnassign p=p0&p1&p2&p3; assign g=g3+g2&p3+g1&p2&p3+g0&p1&p2&p3;assign aeqb=(a=b)?1b1:1b0;endmodule4.编译并仿真得出结果。仿真结果如下

8、图:五、实验思考。1. ALU得功能就是什么,它在整机系统中得地位如何?答:ALU就是多功能算数逻辑运算单元,不仅能进行多种算术运算与逻辑运算,如与、或、非、异或循环、移位、求补、清零、加、减、乘、除等,而且具有先行进位逻辑,从而能实现高速运算。ALU就是CPU得核心部分,也就是CPU得重要组成部分。一台计算机最主要得功能就就是指向运算得功能,而ALU恰恰具有这样得功能,可以说多功能运算时据算计得灵魂,没有运算,计算机将不会具有如此强大得功能。2. ALU就是典型得组合逻辑,为什么在P157得实现中要加入时钟信号,其目得就是什么?答:处于整机同步得需要,这样可以保证ALU产生得结果能够适时得送

9、到总线,以便数据进行正确得读写。3. 74181 ALU内部加法运算用得就是超前进位算法吗?答:就是。74181得设计在内部得实现就是通过超前进位,而后又利用了p函数与g函数实现了片与片之间得超前进位功能。4位之间采用先行进位公式,每一位得进位公式可递推如下:G = A and B P = A xor Bc1= g0 + p0c0c2= g1 + p1c1= g1 + p1(g0 + p0c0)= g1 + p1g0 + p1p0c0c3= g2 + p2c2= g2 + p2(g1 + p1g0 + p1p0c0)= g2 + p2g1 + p2p1g0 + p2p1p0c0c4= g3 + p3c3= g3 + p3(g2 + p2g1 + p2p1g0 + p2p1p0c0)= g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0c0 其中G称为进位发生输出,P称为进位传送输出。这样,对一片ALU来说,可有三个进位输出。C4就是本片(组)得最后进位输出。逻辑表达式表明,这就是一个先行进位逻辑,可以实现高速运算。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服