Function SystemVerilog是否支持全局功能?

Function SystemVerilog是否支持全局功能?,function,global,system-verilog,Function,Global,System Verilog,我想做一个奇偶校验函数,它可以被三个不同的模块访问。这在SV中可能吗?如果是,我在哪里声明此函数,如何将其导入模块 您可以将函数放入单独的文件中,并使用“include: `include "some_file_name.sv" 但是,更好的方法是使用软件包: 您将把它放在一个单独的文件中,并且必须在编译任何使用它的模块之前编译它。然后将包导入每个模块: module some_module_name; import some_package_name::*; // or import

我想做一个奇偶校验函数,它可以被三个不同的模块访问。这在SV中可能吗?如果是,我在哪里声明此函数,如何将其导入模块

您可以将函数放入单独的文件中,并使用“include:

`include "some_file_name.sv"
但是,更好的方法是使用软件包:

您将把它放在一个单独的文件中,并且必须在编译任何使用它的模块之前编译它。然后将包导入每个模块:

module some_module_name;
  import some_package_name::*;   // or import some_package_name::some_function_name;
  initial
    $display(some_function_name);
endmodule
将函数放入包中比将其放入文件并使用include要好,因为包是一个命名范围。由于包是命名作用域,任何名称冲突的问题都可以通过引用其包中函数的全名来解决,而不是使用导入,例如:

module some_module_name;
  initial
    $display(some_package_name::some_function_name);
endmodule

您可以将函数放入单独的文件中,并使用“include:

`include "some_file_name.sv"
但是,更好的方法是使用软件包:

您将把它放在一个单独的文件中,并且必须在编译任何使用它的模块之前编译它。然后将包导入每个模块:

module some_module_name;
  import some_package_name::*;   // or import some_package_name::some_function_name;
  initial
    $display(some_function_name);
endmodule
将函数放入包中比将其放入文件并使用include要好,因为包是一个命名范围。由于包是命名作用域,任何名称冲突的问题都可以通过引用其包中函数的全名来解决,而不是使用导入,例如:

module some_module_name;
  initial
    $display(some_package_name::some_function_name);
endmodule