module example; reg [7:0] vec; reg [3:0] ix; wire vix = vec[ix]; initial begin $display( " time ix vix vec" ); $display( " ---- ---- --- --------" ); $monitor( "%T %b %b %b", $time, ix, vix, vec ); vec = 8'b00000000; ix = 0; // 0 #100 ix = 1; // 100 #100 ix = 2; // 200 #100 ix = 3; // 300 #100 ix = 4; // 400 #100 ix = 5; // 500 #100 ix = 6; // 600 #100 ix = 7; // 700 #100 ix = 8; // 800 #100 ix = 4'b001x; // 900 #100 ix = 4'b01x0; // 1000 #100 ix = 4'b0x01; // 1100 #100 ix = 0; // 1200 #100 vec[ix] <= 1'b1; // 1300 #100 vec[ix] <= 1'b0; // 1400 #100 ix = 3; // 1500 #100 vec[ix] <= 1'b1; // 1600 #100 vec[ix] <= 1'b0; // 1700 #100 ix = 6; // 1800 #100 vec[ix] <= 1'b1; // 1900 #100 vec[ix] <= 1'b0; // 2000 #100 ix = 8; // 2100 #100 vec[ix] <= 1'b1; // 2200 #100 vec[ix] <= 1'b0; // 2300 #100 ix = 4'b010x; // 2400 #100 vec[ix] <= 1'b1; // 2500 #100 vec[ix] <= 1'b0; // 2600 #100 ix = 4'b00x1; // 2700 #100 vec[ix] <= 1'b1; // 2800 #100 vec[ix] <= 1'b0; // 2900 #100 ix = 4'b0x10; // 3000 #100 vec[ix] <= 1'b1; // 3100 #100 vec[ix] <= 1'b0; // 3200 #100 ix = 4'bxxxx; // 3300 #100 vec[ix] <= 1'b1; // 3400 #100 vec[ix] <= 1'b0; // 3500 #100 $display( "Finish at time %T", $time ); end endmodule