- 256
- 0
- 约2.77千字
- 约 7页
- 2015-09-26 发布于重庆
- 举报
寄存器堆实验报告
寄存器堆设计实验报告
2015 年 5 月 14 日 成绩:
姓名 刘明智 学号班级 专业 物联网工程 课程名称 《计算机组成原理课程设计》 任课老师 冯建文 指导老师 冯建文 机位号 **** 实验序号 四 实验名称 寄存器堆设计实验 实验时间 5-11 实验地点 1教223 实验设备号 **** 一、实验程序源代码 module Top_m(
input Clk,
input Reset,
input [4:0] Reg_Addr,
input Write_Reg,
input [1:0] Sel,
input AB,
output reg [7:0] LED
);
reg [31:0] W_Data;
wire [31:0] R_Data_A,R_Data_B,LED_Data;
REG RU1(Clk,Reset,Reg_Addr,Reg_Addr,Reg_Addr,W_Data,Write_Reg,R_Data_A,R_Data_B);
assign LED_Data=AB?R_Data_A : R_Data_B;
always @(*)
begin
W_Data=32h0000_0000;
LED=8b0000_0000;
if(Write_Reg)
begin
case(Sel)
2b00: W_Data= 32h1234_5678;
2b01: W_Data= 32h89AB_CDEF;
2b10: W_Data= 32h7FFF_FFFF;
2b11: W_Data= 32hFFFF_FFFF;
endcase
end
else
begin
case(Sel)
2b00: LED=LED_Data[7:0];
2b01: LED=LED_Data[15:8];
2b10: LED=LED_Data[23:16];
2b11: LED=LED_Data[31:24];
endcase
end
end
endmodule
module REG( input Clk,
input Reset,
input [4:0] R_Addr_A,
input [4:0] R_Addr_B,
input [4:0] W_Addr,
input [31:0] W_data,
input Write_Reg,
output [31:0] R_Data_A,
output [31:0] R_Data_B
);
reg [31:0] REG_Files[0:31];
integer n;
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)
begin
for(n=0;n=31;n=n+1)
REG_Files[n]=32h0000_0000;
end
else
begin
if(Write_Reg)
REG_Files[ W_Addr]=W_data;
end
end
endmodule
二、仿真波形 三、电路图
四、引脚配置(约束文件) NET LED[0] LOC = U16;
NET LED[1] LOC = V16;
NET LED[2] LOC = U15;
NET LED[3] LOC = V15;
NET LED[4] LOC = M11;
NET LED[5] LOC = N11;
NET LED[6] LOC = R11;
NET LED[7] LOC = T11;
NET Reg_Addr[4] LOC = T5;
NET Reg_Addr[3] LOC = V8;
NET Reg_Addr[2] LOC = U8;
NET Reg_Addr[1] LOC = N8;
NET Reg_Addr[0] LOC = M18;
NET Sel[1] LOC = V9;
NET Sel[0] LOC = T9;
NET Write_
原创力文档

文档评论(0)