我想创建一个可由三个不同模块访问的parity_check函数。这可能在SV?如果是,我在哪里声明此功能以及如何将其导入我的模块?
答案 0 :(得分:3)
您可以将函数放入单独的文件中,并使用`include:
将其包含在内public void getData(string[] Data)
{
int index = 0;
bool loop = false;
string text;
while (loop == true)
{
if (index < 10)
{ text = "tb0" + index.ToString(); }
else
{ text = "tb" + index.ToString(); }
index = index + 1;
}
}
但是,更好的方法是使用包:
`include "some_file_name.sv"
您可以将其放入单独的文件中,并且必须在编译使用它的任何模块之前编译它。然后,将包导入每个模块:
package some_package_name;
function string some_function_name;
return "some_function_name called";
endfunction
endpackage
将函数放入包中比将其放入文件并使用 include 更好,因为包是命名范围。由于包是命名范围,因此可以通过引用名称冲突的任何问题来解决,而不是使用 import ,引用其包中函数的全名,例如:
module some_module_name;
import some_package_name::*; // or import some_package_name::some_function_name;
initial
$display(some_function_name);
endmodule