`include “uvm_macros.svh“引发的思考

    一般在搭UVM环境的时候,会经常看到以下两句:

    import uvm_pkg::*;
    `include "uvm_macros.svh"

    我打开uvm_pkg.sv查看,却发现uvm_macros.svh这个头文件能在uvm_pkg.sv中找到,因此产生一个疑问:uvm_macros.svh为什么要单独拿出来include呢?

图片

 


    为此我查找了一些资料,在一个网站上看到Dave的solution解答了我的疑惑,以下为他的回答的翻译:

    像`define宏之类的编译器伪指令在识别任何SystemVerilog语法之前先进行处理,它们仅在当前代码单元(编译单元)被编译时存在。因此,问题的答案取决于是否将uvm_pkg作为单独的编译单元的一部分进行编译,而该代码是从其中导入uvm_pkg的代码导入的。通常,人们使用uvm_pkg的预编译库,因此您需要同时进行import和`include。对于将所有内容都编译为单个编译单元的另一种情况,是否重复`include也没关系,因为uvm_macros.svh文件中有编译防护,可以防止重新定义警告。因此,您最好在两种情况下都包括在内,只是为了使代码更具适应性。

 

    以下为我的个人理解:

   在SystemVerilog中,所有`defi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值