import cpu_types::*;
module ram (
input clk, we,
input [31:0] a, wd,
input memory_mask_t mask,
output [31:0] rd);
reg [4095:0] RAM;
assign rd = RAM[a[11:0] +:32]; // word aligned
always @(posedge clk)
if(we) begin
case(mask)
MEM_BYTE: RAM[a[11:0] +:8] <= wd[7:0];
MEM_HALFWORD: RAM[a[11:0] +:16] <= wd[15:0];
MEM_WORD: RAM[{a[11:0]} +:32] <= wd[31:0];
default: ;
endcase
end
endmodule