SystemVerilog中的package如何在设计中使用?
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很大时,可以节省很多运行时间。
SV语言提供了一种在多个module、interface和program之中共享parameter、data、type、task、function、class等等的方法,即利用package(包)的方式来实现。如果用上面装修一个大房子(MCDF testbench)来看的话,我们喜欢将不同模块的类定义归整到不同的package中。这么做的好处在于将同一簇相关的类组织在了单一的名字空间(namespace)下,使得分属于不同模块验证环境的类首先来自于不同的package,这样可以通过package来区别类的归属问题。
package regs_pkg;
`include "stimulator.sv"
`include "monitor.sv&