module example; reg [3:0] mem [0:7]; reg [3:0] addr; wire [3:0] m0 = mem[0]; wire [3:0] m1 = mem[1]; wire [3:0] m2 = mem[2]; wire [3:0] m3 = mem[3]; wire [3:0] m4 = mem[4]; wire [3:0] m5 = mem[5]; wire [3:0] m6 = mem[6]; wire [3:0] m7 = mem[7]; wire [3:0] maddr = mem[addr]; initial begin $write( " " ); $display( "time addr maddr m0 m1 m2 m3 m4 m5 m6 m7" ); $write( " " ); $display( "---- ---- ----- ---- ---- ---- ---- ---- ---- ---- ----" ); $monitor( "%T %b %b %b %b %b %b %b %b %b %b", $time, addr, maddr, m0, m1, m2, m3, m4, m5, m6, m7 ); mem[0] = 8; mem[1] = 1; mem[2] = 2; mem[3] = 3; mem[4] = 4; mem[5] = 5; mem[6] = 6; mem[7] = 7; addr = 0; // 0 #100 addr = 1; // 100 #100 addr = 2; // 200 #100 addr = 3; // 300 #100 addr = 4; // 400 #100 addr = 5; // 500 #100 addr = 6; // 600 #100 addr = 7; // 700 #100 addr = 8; // 800 #100 addr = 4'b001x; // 900 #100 addr = 4'b01x0; // 1000 #100 addr = 4'b0x01; // 1100 #100 addr = 0; // 1200 #100 mem[addr] = 9; // 1300 #100 addr = 3; // 1400 #100 mem[addr] = 10; // 1500 #100 addr = 6; // 1600 #100 mem[addr] = 11; // 1700 #100 addr = 8; // 1800 #100 mem[addr] = 12; // 1900 #100 addr = 4'b010x; // 2000 #100 mem[addr] = 13; // 2100 #100 addr = 4'b00x1; // 2200 #100 mem[addr] = 14; // 2300 #100 addr = 4'b0x10; // 2400 #100 mem[addr] = 15; // 2500 #100 addr = 4'bxxxx; // 2600 #100 mem[addr] = 0; // 2700 #100 $display( "Finish at time %T", $time ); end endmodule