interface I; logic [3:0] x; endinterface
module A(I i); initial $display("A %b", i.x); endmodule module B #(localparam type I = logic [3:0]) (I i); initial $display("B %b", i); endmodule
module top; I i(); if (1) begin : blk typedef logic I; var I i; assign i = 0; end initial $display("%b %b", i.x, blk.i);
A a(i); B b(i.x); assign i.x = 1;
endmodule