实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
2018 年 6 月 1 日 成绩:
姓名
阳光男
学号
16041321
班级
16052317
专业
计算机科学与技术
课程名称
《计算机组成原理与系统结构试验》
任课老师
张翔老师
指导老师
张翔老师
机位号
无
实验序号
8
实验名称
《实验八 实现R型指令的CPU
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
实验》
实验时间
2018/5/25
实验地点
1教225
实验设备号
个人电脑
一、实验程序源代码
顶层LED测试模块:
module Top_LED(clk,rst,SW,LED);
input clk,rst;
input [2:0]SW;
output reg[7:0]LED;
wire ZF,OF;
wire [31:0]ALU_F;
top_R_cpu test_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:begin LED[7:2]=0;LED[1]=OF;LED[0]=ZF;end
default:LED=0;
endcase
end
endmodule
顶层R型CPU模块:
module top_R_cpu(input rst,input clk,output ZF,output OF,output [31:0]F);
reg write_reg;
wire [31:0]Inst_code;
wire [31:0]R_Data_A;
wire [31:0]R_Data_B;
reg [2:0]ALU_OP;
pc pc_connect(clk,rst,Inst_code);
Register_file R_connect(Inst_code[25:21],Inst_code[20:16],
Inst_code[15:11],write_reg,F,~clk,rst,
R_Data_A,R_Data_B);
ALU ALU_connect(R_Data_A,R_Data_B,F,ALU_OP,ZF,OF);
always@(*)
begin
write_reg=0;
ALU_OP=0;
if(Inst_code[31:26]==0)
begin
case(Inst_code[5:0])
6'b100000:ALU_OP=3'b100;
6'b100010:ALU_OP=3'b101;
6'b100100:ALU_OP=3'b000;
6'b100101:ALU_OP=3'b001;
6'b100110:ALU_OP=3'b010;
6'b100111:ALU_OP=3'b011;
6'b101011:ALU_OP=3'b110;
6'b000100:ALU_OP=3'b111;
endcase
write_reg=1;
end
end
endmodule
PC取指令模块:
module pc(input clk,input rst,output [31:0]Inst_code);
reg [31:0]PC;
wire[31:0]PC_new;
initial
PC<=32'h00000000;
Inst_ROM Inst_ROM1 (
.clka(clk),
.addra(PC[7:2]),
.douta(Inst_code)
);
assign PC_new={24'h000000,PC_new[7:0]};
always@(negedge clk or posedge rst)
begin
if(rst)
PC=32'h00000000;
else PC=PC_new;
end
endmodule
寄存器堆模块:
module Register_file(R_Addr_A,R_Addr_B,W_Addr,Write_Reg,W_Data,Clk,Reset,R_Data_A,R_Data_B);
input [4:0]R_Addr_A;
input [4:0]R_Addr_B;
input [4:0]W_Addr;
input Write_Reg;
input [31:0]W_Data;
input Clk;
input Reset;
output [31:0]R_Data_A;
output [31:0]R_Data_B;
reg [31:0]REG_Files[0:31];
reg [5:0]i;
initial//仿真过程中的初始化
begin
for(i=0;i<=31;i=i+1)
REG_Files[i]=0;
end
assign R_Data_A=REG_Files[R_Addr_A];
assign R_Data_B=REG_Files[R_Addr_B];
always@(posedge Clk or posedge Reset)
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算术逻辑运算单元模块:
module ALU(A,B,F,ALU_OP,ZF,OF);
input [31:0]A,B;
input [2:0]ALU_OP;
output reg ZF,OF;
output reg[31:0]F;
reg C32;
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
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
序号 指令 执行结果 标志 结论
1 0000827 FFFFFFFF 0 0 正确
2 0001102b 0000_0001 0 0 正确
3 00421820 0000_0002 0 0 正确
4 00622020 0000_0003 0 0 正确
5 00832820 0000_0005 0 0 正确
6 00a33020 0000_0007 0 0 正确
7 00463804 0000_000E 0 0 正确
8 00a64820 0000_000C 0 0 正确
9 01264004 0000_7000 0 0 正确
10 00284826 FFFF_8FFF 0 0 正确
11 01215020 FFFF_8FFE 0 0 正确
12 01075822 0000_6FF2 0 0 正确
13 00e86022 FFFF_900E 0 0 正确
14 012c6824 FFFF_800E 0 0 正确
15 012c7025 FFFF_9FFF 0 0 正确
16 00c77825 0000_FFFF 0 0 正确