在ISE中使用Memory IP核生成存储器
调用基本ALU模块、寄存器堆模块和本实验所实现的存储器模块,编写一个顶层模块,完成Ri θ (addr) → Rj的操作。尝试编写代码,仿真调试通过。
源代码:
module Mem_Exp(
input clk_m,Mem_Write,
input [4:0]R_Addr_A,//A端口读寄存器地址
input [4:0]R_Addr_B,//B端口读寄存器地址
input [4:0]W_Addr,//写寄存器地址
input Write_Reg,
input [2:0]ALU_OP,
input rst,clk,
output [31:0]M_R_Data,
output [31:0]R_data_A,
output [31:0]R_data_B,
output [31:0] ALU_F,
input [7:0] Mem_Addr
);
wire ZF,OF;
RAM_B Data_RAM (
.clka(clk_m), // input clka
.wea(Mem_Write), // input [0 : 0] wea
.addra(R_data_B[5:0]), // input [5 : 0] addra
.dina(R_data_B), // input [31 : 0] dina
.douta(M_R_Data) // output [31 : 0] douta
);
//register REGS_1(R_data_A,R_data_B,M_R_Data,R_Addr_A,R_Addr_B,W_Addr,Write_Reg,rst,clk);
register r1(
.R_Addr_A(