Functional programming VHDL函数调用:外部引用未解决

Functional programming VHDL函数调用:外部引用未解决,functional-programming,system-verilog,verification,formal-verification,system-verilog-assertions,Functional Programming,System Verilog,Verification,Formal Verification,System Verilog Assertions,在架构内的功能如下: architecture rtl of entity1 is ... function func(data_in:data_5bit) return d_5bit is begin ... ... return ...; end; ... end rtl; 我想验证此函数是否按预期运行。因此,我在我的SVA文件中编写了一个类似(不精确)的函数 module verif(...); ... ... function verif_func(

在架构内的功能如下:

architecture rtl of entity1 is

...
function func(data_in:data_5bit) return d_5bit  is
    begin
    ...
    ...
 return ...;
 end;
 ...
end rtl;
我想验证此函数是否按预期运行。因此,我在我的SVA文件中编写了一个类似(不精确)的函数

module verif(...);

...
...
function verif_func(input data_in);
....
return data_out;
endfunction

property property1;
seq1 ##1 seq2
|->
entity1.func(sig1) == verif_func(sig1);
endproperty
endmodule
bind entity1 verif verif_inst(.*);
但我得到了一个错误:“外部引用func仍然未解决”


如何在断言文件中添加外部引用?

我认为在VHDL中不可能使用分层命名调用另一个作用域中的函数。谢谢!有没有一种方法可以在不使用分层命名的情况下从另一个作用域调用vhdl函数。VHDL对范围的要求比Verilog严格得多。在2008年之前,根本就没有像分层命名这样的东西。VHDL-2008中引入了相当于层次命名(外部名称)的VHDL,但我认为它不允许您从另一个作用域调用函数;正如大家所看到的,它的编码很脏(使用行号——因为行号总是会改变),我想用更好的方法来改变它。真的吗?这对我来说是个新闻。你在用什么模拟器?