package

김기찬·2024년 7월 3일

Hardware study

목록 보기
4/4

system verilog에서 package는 다음의 사항들을 포함하고, package를 import하여 사용 가능(include와 유사)

  • parameter (parameter x = a;)
  • data (variables: logic, reg, int. net: wire)
  • type definitions (typedef)
  • tast/function
  • sequence, property선언
  • class 선언

package 선언 예시

package mypkg;
	class myclass;
    ...
    endclass
    
    function myfunction;
    ...
    endfunction
    
    int x,y;
    
endpackage    

package 사용

pkg 모든 symbol을 import

  • import mypkg:: ; (:wildcard)

특정 부분만 사용

  • import mypkg::myclass;
  • import mypkg::myfunction;

*로 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
profile
SoC개발자

0개의 댓글