module RAM_16W8D
(
input clk,
input rst_n,
input wr,
input [2:0] waddr,
input [15:0] wdata,
input rd,
input [2:0] raddr,
output reg [15:0] rdata
);
integer i;
reg [15:0] mem[2:0];
always @(posedge clk or negedge rst_n) begin
if(rst_n==1'b0) begin
for(i=0;i<8;i++) begin
mem[i] <= 16'b0;
end
end
else begin
for(i=0;i<8;i++) begin
if(wr & (waddr == i))
mem[waddr] <= wdata;
end
end
end
always @(posedge clk or negedge rst_n) begin
if(rst_n==1'b0) begin
rdata <= 16'b0;
else if(rd)
rdata <= mem[raddr];
end
endmodule