`timescale 1ns / 1ns module top #(parameter AWIDTH=8, localparam DEPTH=1<<AWIDTH, parameter DWIDTH=8) (output [DWIDTH-1:0] rdata, input [DWIDTH-1:0] wdata, input [AWIDTH-1:0] addr, input r_wn, cs_n); logic [DWIDTH-1:0] mem [DEPTH]; assign rdata = mem[addr]; always_latch if (!cs_n && !r_wn) mem[addr] <= wdata; endmodule