¿Qué significa una declaración de importación fuera de de una definición de módulo (| clase | paquete)?
¿Se aplica a todo el archivo?
¿Es incluso legal? No lo veo en IEEE Std 1800 ™ -2012.
Parece ser tolerado por ncsim (15.10-s008) - esto se compila / ejecuta sin error:
package myPackage;
integer count = 0;
endpackage//myPackage
import myPackage::*;
module a;
initial begin
myPackage::count++;
#1;
$display("%0d: %m: myPackage::count=%0d", $time, myPackage::count);
$display("%0d: %m: count=%0d", $time, count);
end//initial
endmodule//a
module b;
import myPackage::*;
initial begin
count++;
#1;
$display("%0d: %m: count=%0d", $time, count);
$display("%0d: %m: myPackage::count=%0d", $time, myPackage::count);
myPackage::count++;
#1;
$display("%0d: %m: count=%0d", $time, count);
$display("%0d: %m: myPackage::count=%0d", $time, myPackage::count);
end//initial
endmodule//b
module test_package;
a a();
a b();
b c();
b d();
endmodule//test_package