湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机原理与设计
实验报告
实验一算术逻辑单元ALU
姓名: XXX
学号: 2013551728
班级: 13级软件工程2班
实验日期: 2014年 10 月22 日
一.实验目的
1.理解算术逻辑单元ALU的工作原理。
2.掌握算术逻辑单元ALU的设计方法。
3.验证32位算术逻辑单元ALU的加、减、与、移位功能。
4.按给定数据,完成几种指定的算术和逻辑运算。
二.实验内容
算术逻辑单元ALU的设计如图1-1所示。其中运算器addsub32能实现32位的加减运算。参加运算的两个32位数据分别为A[31..0]和B[31..0],运算模式由aluc[3..0]的16种组合决定,而aluc[3..0]的值由4位2进制计数器LPM_COUNTER产生,计数时钟是Sclk(图1-1);r[31..0]为输出结果,Z为运算后的零标志位。ALU功能如表1-1所示。
表1-1 ALU的运算功能
注1、* 表示每一位都移至下一更高有效位, “+”是逻辑或,“加”是算术加
三.实验步骤
(1)设计ALU元件
ALU元件设计代码:
module alu (a,b,aluc,r,z);
input [31:0] a,b;
input [3:0] aluc;
output [31:0] r;
output z;
assign r = cal(a,b,aluc);
assign z = ~|r;
function [31:0] cal;
input [31:0] a,b;
input [3:0] aluc;
casex (aluc)
4'bx000: cal=a+b;
4'bx100: cal=a-b;
4'bx001: cal=a&b;
4'bx101: cal=a|b;
4'bx010: cal=a^b;
4'bx110: cal={b[15:0],16'h0};