SV的include与import的用法总结

作用

`include:用于将一个文件插入另一个文件
import:用于在一个作用域引入一个package或其中内容
package:提供了保存和共享数据、参数和方法的机制

区别

`include:将目标文件的内容插入文件,是一个预处理语句
import:不复制文本内容,是将package中内容引入import语句所在的作用域

注意

include “uvm_macros.svh”
其中定义了大量的宏,需要包括进来。
import uvm_pkg::*
其中包括基础库,也需要导入。

源码(uvm_1.1d_RC7)

uvm_macros.svh

`ifndef UVM_MACROS_SVH
`define UVM_MACROS_SVH

//
// Any vendor specific defines go here.
//

`ifdef MODEL_TECH
`ifndef QUESTA
`define QUESTA
`endif
`endif

`ifndef QUESTA
`define uvm_typename(X) $typename(X)
`else
`define uvm_typename(X) $typename(X,39)
`endif

`ifdef VCS
`ifndef UVM_DISABLE_RESOURCE_CONVERTER
//UVM_USE_RESOURCE_CONVERTER enables UVM-1.1d to print resources output to match uvm-1.1c. VCS2012.09-SP1 or later does not need resource_converter object, disbale by using +define+UVM_DISABLE_RESOURCE_CONVERTER
`define UVM_USE_RESOURCE_CONVERTER
`endif
`endif

`ifdef INCA
  `define UVM_USE_PROCESS_CONTAINER
`endif

//
// Deprecation Control Macros
//
`ifdef UVM_NO_DEPRECATED
  `define UVM_OBJECT_MUST_HAVE_CONSTRUCTOR
`endif

`define uvm_delay(TIME) #(TIME);


`include "macros/uvm_version_defines.svh"
`include "macros/uvm_message_defines.svh"
`include "macros/uvm_phase_defines.svh"
`include "macros/uvm_object_defines.svh"
`include "macros/uvm_printer_defines.svh"
`include "macros/uvm_tlm_defines.svh"
`include "macros/uvm_sequence_defines.svh"
`include "macros/uvm_callback_defines.svh"
`include "macros/uvm_reg_defines.svh"
`include "macros/uvm_deprecated_defines.svh"

`endif

uvm_pkg.sv

`ifndef UVM_PKG_SV
`define UVM_PKG_SV

`include "uvm_macros.svh"

package uvm_pkg;

  `include "dpi/uvm_dpi.svh"
  `include "base/uvm_base.svh"
  `include "tlm1/uvm_tlm.svh"
  `include "comps/uvm_comps.svh"
  `include "seq/uvm_seq.svh"
  `include "tlm2/uvm_tlm2.svh"
  `include "reg/uvm_reg_model.svh"

endpackage

`endif

参考链接:
https://zhuanlan.zhihu.com/p/520520709
https://zhuanlan.zhihu.com/p/106486751

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值