SV中import和include的区别

    一个常见问题:我们应该从package中import类或者Include它们?为了正确回答这个问题,先主要介绍这两个关键词的区别。


 

    SystemVerilog仅使用类型的名称来确定类的类型等效性。例如,假设我下面有这两个类定义A和B:

图片

    SystemVerilog认为这两个类定义是不相等的类型,因为它们的名称不同,即使它们的内容或类主体是相同的。类的名称不仅包括简单名称A和B,还包括其他名称。名称还包括定义的声明范围。当你在package中声明一个类时,package名称将成为该类名称的前缀:

图片

    现在,有A类的两个定义,一个定义为P::A,另一个定义为Q::A。而且变量P::a1和Q::a1是类型不兼容的,引用了两个不同的A类。使用包含文件重写以上示例将导致相同的情况,即还是两个不兼容的类定义。

图片

    在将A类包含在每个package中之后,将得到A类的两个定义,因为使用include只是在文件中剪切和粘贴文本的快捷方式,所以结果毫无疑问与上图一样。从包中导入名称不会重复文本。这样就可以从另一个软件包中看到该名称,而无需复制定义。

  • 22
    点赞
  • 153
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值