System verilog “符号”是什么*&引用;在SystemVerilog中是什么意思?

System verilog “符号”是什么*&引用;在SystemVerilog中是什么意思?,system-verilog,System Verilog,此示例摘自uvm_用户指南_1.1,第27页: `timescale 1ns/1ps package a_pkg; class a; function void f(inout time t); t += 10ns; endfunction endclass endpackage program p; import a_pkg::*; ... endprogram :与相同吗?*代表什么?参考IEEE标准1800-2017第26.3节

此示例摘自uvm_用户指南_1.1,第27页:

`timescale 1ns/1ps

 package a_pkg;
  class a;
    function void f(inout time t);
     t += 10ns;
    endfunction
  endclass
 endpackage


 program p;
   import a_pkg::*;
   ...
 endprogram

相同吗?
*
代表什么?

参考IEEE标准1800-2017第26.3节,参考数据包中的数据。
::*
语法是通配符导入,定义为:

通配符导入允许在包中声明的所有标识符 如果标识符未在中另行定义,则可以导入 导入范围

是包范围解析运算符<代码>*
允许导入所有标识符,而不是显式地导入名称标识符


在您的示例中,它允许访问
p
程序中的
a
类。

只需在范围解析运算符
和层次分隔符
之间添加一个关键区别,即
名称中的前缀:
,在编译时(当源文本被解析时),必须知道名称是包或类类型,而不是分隔符
,分隔符在精化结束时解析。这意味着您可以在比使用
更多的地方使用