// test bench for synchronous single-port RAM module RAM_single_tb (); parameter D=8, A=4, T=20; logic clk, wren; logic [A-1:0] addr; logic [D-1:0] din, dout; RAM_single #(D, A) dut(.*); initial begin clk <= 0; forever #(T/2) clk <= ~clk; end // clock initial int i; initial begin wren = 1; for (i = 0; i < 2**A; i++) begin addr = i; din = 2**A-1 - i; @(posedge clk); end // for wren = 0; for (i = 0; i < 2**A; i++) begin addr = i; din = i; @(posedge clk); end // for @(posedge clk); $stop; end // initial endmodule // RAM_single_tb