错误:信号参数在函数调用时需要信号表达式



短问题:

我写了一个函数,它接受一个信号整数作为参数。当我在进程中调用my_function(INTEGER_SIGNAL - 5)时,编译器抛出错误signal parameter requires signal expression。有人能给我解释一下信号表达式是什么,我怎么才能正确地调用这个函数吗?

提前感谢!

通常对于函数,您希望使用常量类参数。

信号类参数要求你将它们连接到一个信号——即:没有表达式。只有在使用信号参数(如'event ')时,才需要在函数内部使用信号。对于一个过程,当你期望对象更新时,你也需要一个信号——比如在等待语句中使用它,或者在等待语句之后读取它(并且你期望一个可能更新的值)。

对于常量类参数,允许您将它们与该类型的任何值连接。该值可以来自表达式或文字值(X"4A")。信号名或变量名是表达式的简单形式。

常量类也恰好是默认的输入,如果你没有指定参数的类。在下面的代码中,参数A和B都是常量类参数。

function fred (
constant A : integer ; 
B : integer
) return integer is 
...
end function fred ;

最新更新