SystemVerilog中的packages用于在不同module和interface之间共享parameters、types、tasks和functions。
packages是一个name space,其和top level在同一个层次。
在任何SystemVerilog/Verilog设计项目中,设计团队通常都会共享一些parameters、types、tasks和functions。将这些通用结构放入packages中,就可以在团队中进行共享。
在packages中指定所有通用结构后,需要先analyze package。然后单独analyze和elaborate使用该packages中某些parameters、types、tasks和functions的模块。
无需reanalyze 这个package,当共享packages很大时,可以节省很多运行时间。
但是在使用packages时:
•不允许使用wire和reg声明。
•packages内部声明的tasks和functions需要是automatic的。
•sequence, p