system verilog에서 package는 다음의 사항들을 포함하고, package를 import하여 사용 가능(include와 유사)
package mypkg;
class myclass;
...
endclass
function myfunction;
...
endfunction
int x,y;
endpackage
pkg 모든 symbol을 import
특정 부분만 사용
*로 import되면 실제 사용되기 전까지는 나타나지 않음.
특정 부분을 import하면 바로 나타남
package p;
int x;
endpackage
module top;
import p::*; // line 1, wildcard import, 여기부터 potentially locally visible
if (1) begin : b
initial x = 1; // line 2, x is resolved from p::x, 여기 부터 locally visible
end
int x; // line 5, top scope에서 p::x가 locally visible 하므로 x가 추가 선언되어 에러
endmodule