杭电计组实验8实现R型指令的CPU设计实验.docx
- 文档编号:12314580
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:10
- 大小:217.01KB
杭电计组实验8实现R型指令的CPU设计实验.docx
《杭电计组实验8实现R型指令的CPU设计实验.docx》由会员分享,可在线阅读,更多相关《杭电计组实验8实现R型指令的CPU设计实验.docx(10页珍藏版)》请在冰豆网上搜索。
杭电计组实验8实现R型指令的CPU设计实验
杭电计组实验8-实现R型指令的CPU设计实验
实验报告
2018年6月1日成绩:
姓名
阳光男
学号
16041321
班级
16052317
专业
计算机科学与技术
课程名称
《计算机组成原理与系统结构试验》
任课老师
张翔老师
指导老师
张翔老师
机位号
无
实验序号
8
实验名称
《实验八实现R型指令的CPU设计实验》
实验时间
2018/5/25
实验地点
1教225
实验设备号
个人电脑
一、实验程序源代码
顶层LED测试模块:
moduleTop_LED(clk,rst,SW,LED);
inputclk,rst;
input[2:
0]SW;
outputreg[7:
0]LED;
wireZF,OF;
wire[31:
0]ALU_F;
top_R_cputest_cpu(rst,clk,ZF,OF,ALU_F);
always@(*)
begin
case(SW)
3'b000:
LED=ALU_F[7:
0];
3'b001:
LED=ALU_F[15:
8];
3'b010:
LED=ALU_F[23:
16];
3'b011:
LED=ALU_F[31:
24];
3'b100:
beginLED[7:
2]=0;LED[1]=OF;LED[0]=ZF;end
default:
LED=0;
endcase
end
endmodule
顶层R型CPU模块:
for(i=0;i<=31;i=i+1)
REG_Files[i]=0;
end
assignR_Data_A=REG_Files[R_Addr_A];
assignR_Data_B=REG_Files[R_Addr_B];
always@(posedgeClkorposedgeReset)
begin
if(Reset)
for(i=0;i<=31;i=i+1)
REG_Files[i]=0;
else
if(Write_Reg&&W_Addr!
=0)
REG_Files[W_Addr]=W_Data;
end
endmodule
ALU算术逻辑运算单元模块:
moduleALU(A,B,F,ALU_OP,ZF,OF);
input[31:
0]A,B;
input[2:
0]ALU_OP;
outputregZF,OF;
outputreg[31:
0]F;
regC32;
always@(*)
begin
OF=1'b0;
C32=1'b0;
case(ALU_OP)
3'b000:
F=A&B;
3'b001:
F=A|B;
3'b010:
F=A^B;
3'b011:
F=~(A^B);
3'b100:
begin{C32,F}=A+B;OF=A[31]^B[31]^F[31]^C32;end
3'b101:
begin{C32,F}=A-B;OF=A[31]^B[31]^F[31]^C32;end
3'b110:
if(A
F=1;
else
F=0;
3'b111:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 杭电计组 实验 实现 指令 CPU 设计