在学习UVM环境的过程中,验证组件env,driver等都是在package中引用的,只是大概知道package中打包了一些有相关性的文件,详细的不理解。自己要搭建/修改验证平台时无从下手,so,记录package相关内容在此,加深理解/供以后回顾。
------------------------------------------------------------------------------------------------
Package在UVM中的作用是什么?
参照【SystemVerilog的语言参考手册】的定义
【SystemVerilog包提供了额外的机制在多个SystemVerilog模块,接口和程序之间,共享参数,数据,类型,任务,函数,序列,以及特性的声明。
包是显示命名的作用域。它出现在源文本的最外层。类型,变量,任务,函数和特性都可以在一个包中声明。这些声明可以在模块,接口,程序和其他包中通过导入或完成的解析名字来引用。】
个人理解:
存在相关性,需要相互调用的各种类型的数据,文件就放在一个包中,类似一个数据共享空间。
例如:
我们需要在uvm_base_test中例化env,在env中例化driver,refmodel等。可以把所有文件都按照层次关系include到一个文件中,需要被调用的先include。这样的方法只能看出被调用关系,不能体现各组件间的层次关系。通过package把test层,env层次,agent层次的组件分别打包,这样层次,调用关系