- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
寄存器堆实验报告.
寄存器堆设计实验报告
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]
文档评论(0)