In errata 548, we discussed the interaction of wild card imports and .* connections. I am not sure if we talked in details about import selects of the form p::a, so this is why I am sending this question to the reflector. I assume that a " .* " only connect locally declared items and hence a .* can cannect an import select which is locally declared in the same scope as the .* instantiation and will not connect it if the import select is outside the the scope. Am I correct? For example: package pack1; reg a; //take this one for "a" endpackage package pack2; wire [31:0] b; //take this one for "b" endpackage import pack2::b; module test_top; import pack1::a; // import select causes pack1::a to be imported in the module scope wire [15:0] d; submod sm1( .* ); // .a is connected to pack1::a but b is not connected as symbol b is not imported in the module scope always @( b ) begin // causes pack2::b to be imported in the compilation unit scope $display ($time, ": b = %d", b); end endmodule module dummy(); import pack1::a; initial begin #20 a = 1'b1; #20 a = 1'b0; #5; $display ($time, ": a = %b", a); end endmodule module submod( a, b, d ); input wire a; output reg [31:0] b; output reg [15:0] d = 4567; initial begin #1 b = 98765432; #1 b = 23456789; #5 d = 5432; #5; end always @( a ) begin $display ($time, ": a = %b", a); end endmoduleReceived on Mon May 2 13:02:32 2005
This archive was generated by hypermail 2.1.8 : Mon May 02 2005 - 13:02:40 PDT