问题描述
简短的问题:
我编写了一个以信号整数作为参数的函数。当我在进程中调用 signal parameter requires signal expression
时,编译器会抛出错误 my_function(INTEGER_SIGNAL - 5)
。
有人可以向我解释什么是信号表达式以及我如何正确调用此函数吗?
提前致谢!
解决方法
通常对于您希望使用常量类参数的函数。
信号类参数要求您将它们连接到信号 - 即:没有表达式。当您使用信号参数时,您只需要函数内部的信号,例如 'event.对于过程,当您希望对象更新时,您还需要一个信号 - 例如当它在等待语句中使用或在等待语句之后被读取时(并且您希望一个潜在的更新值)。
使用常量类参数,您可以将它们与该类型的任何值连接起来。该值可以来自表达式或文字值 (X"4A")。信号名称或变量名称是表达式的简单形式。
常量类也恰好是您未指定参数类的输入的默认值。在下面的代码中,参数A和B都是常量类参数。
function fred (
constant A : integer ;
B : integer
) return integer is
...
end function fred ;