0
我想做一个parity_check函数,它可以被三个不同的模块访问。这在SV中可能吗?如果是的话,我在哪里申报这个功能,以及如何将它导入我的模块?SystemVerilog是否支持全局功能?
我想做一个parity_check函数,它可以被三个不同的模块访问。这在SV中可能吗?如果是的话,我在哪里申报这个功能,以及如何将它导入我的模块?SystemVerilog是否支持全局功能?
你可以把一个函数到一个单独的文件,并使用`包括包括:
`include "some_file_name.sv"
然而,更好的办法是使用包:
package some_package_name;
function string some_function_name;
return "some_function_name called";
endfunction
endpackage
你会把它放到一个单独的文件中,你必须在编译任何使用它的模块之前编译它。然后,您进口包到每个模块:
module some_module_name;
import some_package_name::*; // or import some_package_name::some_function_name;
initial
$display(some_function_name);
endmodule
在一个包把功能不仅仅是把它变成一个文件,然后使用包括更好,因为包是命名范围。因为包是一个命名范围,其名称的一些冲突的任何问题都可以通过来解决,而不是使用进口,指的是在其包装功能的全名,如:
module some_module_name;
initial
$display(some_package_name::some_function_name);
endmodule
您应该添加参考免费的IEEE Std 1800-2012部分。教鱼,等等...... – toolic