[sv-bc] package refs connected to .*

From: Francoise Martinolle <fm_at_.....>
Date: Mon May 02 2005 - 13:02:28 PDT
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

endmodule

 
 
Received 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