interface intf; byte x; endinterface module mod(intf j); intf i(); assign j.x = 1; assign i.x = 2; genvar z; for (z = 0; z < 2; z++) begin : blk wire [7:0] x = $bits(j.x) - 5 + z; end endmodule module top; byte z = 0; intf i(); mod m(i); `define DUMP(expr) $display(`"expr = %b`", expr); initial begin `DUMP(z) `DUMP(i.x) `DUMP(m.i.x) `DUMP(m.blk[0].x) `DUMP(m.blk[1].x) end endmodule