29 lines
617 B
Verilog
29 lines
617 B
Verilog
// expect-wr-ports 1
|
|
// expect-rd-ports 1
|
|
// expect-rd-clk \clk
|
|
|
|
module ram2 (input clk,
|
|
input sel,
|
|
input we,
|
|
input [SIZE-1:0] adr,
|
|
input [63:0] dat_i,
|
|
output reg [63:0] dat_o);
|
|
parameter SIZE = 5; // Address size
|
|
|
|
reg [63:0] mem [0:(1 << SIZE)-1];
|
|
integer i;
|
|
|
|
initial begin
|
|
for (i = 0; i < (1<<SIZE) - 1; i = i + 1)
|
|
mem[i] <= 0;
|
|
end
|
|
|
|
always @(posedge clk)
|
|
if (sel) begin
|
|
if (~we)
|
|
dat_o <= mem[adr];
|
|
else
|
|
mem[adr] <= dat_i;
|
|
end
|
|
endmodule
|