杭电计组实验 - 存储器设计实验2 ————————————————————————————————作者:————————————————————————————————日期:1 实验报告2018 年5 月5 日成绩:姓名阳光男学号16041321 班级16052317 专业计算机科学与技术课程名称《计算机组成原理与系统结构试验》任课老师张翔老师指导老师张翔老师机位号默认实验序号5 实验名称《实验五存储器设计实验》实验时间2018/5/12 实验地点1 教 211 实验设备号个人电脑、 Nexys3 开发板一、实验程序源代码存储器顶层电路代码:module top_RAM_B(Mem_Addr,C,Mem_Write,Clk,LED); input [7:2]Mem_Addr;// 开关的 3、4、5、6、7、8 位input Mem_Write,Clk;//clk 为按键 C9,读写使能信号为按键C4,0 为读, 1 为写input [1:0]C;// 选择写入数据 +读操作时选择显示字节 ,为开关 1、2 位output reg [7:0]LED; wire [31:0]M_R_Data;// 存在存储器里的 32 位读出数据reg [31:0]M_W_Data;// 寄存在暂存器的 32 位写入数据RAM_B test_ram ( .clka(Clk), //输入时钟信号.wea(Mem_Write), // 输入读写信号.addra(Mem_Addr[7:2]), // 输入 5 位地址信号.dina(M_W_Data), // 写入 32 位数据.douta(M_R_Data) // 读出 32 位数据); always@(*) begin LED=0;//初始化M_W_Data=0;// 初始化2 if(!Mem_Write)// 读操作begin case(C) 2'b00:LED=M_R_Data[7:0];//读出数据的 0-7 位2'b01:LED=M_R_Data[15:8];//读出数据的 8-15 位2'b10:LED=M_R_Data[23:16];//读出数据的 16-23 位2'b11:LED=M_R_Data[31:24];//读出数据的 24-31 位endcase end else begin case(C) 2'b00:M_W_Data=32'h0055_7523;//写入第一个数据2'b01:M_W_Data=32'h1234_5678;//写入第二个数据2'b10:M_W_Data=32'h8765_4321;//写入第三个数据2'b11:M_W_Data=32'hffff_ffff;// 写入第四个数据endcase end end endmodule 测试代码:module test; // Inputs reg clka; reg [0:0] wea; reg [5:0] addra; reg [31:0] dina; // Outputs wire [31:0] douta; // Instantiate the Unit Under Test (UUT) 3 RAM_B uut ( .clka(clka), .wea(wea), .addra(addra), .dina(dina), .douta(douta) ); initial begin // Initialize Inputs clka = 0; wea = 0; addra = 0;...