寄存器堆实验报告.docVIP

  • 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)

1亿VIP精品文档

相关文档