我有这段代码
function func (k1, k2 : in bit_vector) return bit_vector is
variable result : bit_vector(1 to 32);
begin
for i in 0 to 31 loop
result(i) <= k1(i);
end loop;
return result;
end func;
我收到此错误:
目标(变量"结果")不是信号
我知道我需要更改结果的类型,但我不知道它应该是什么。谢谢。
赋值给变量时,使用 :=
为:
result(i) := k1(i);
使用<=
分配用于分配给信号。
result
的范围(1 to 32
)与循环中的范围(0 to 31
)不匹配,所以首先在循环中分配(result(0) := k1(0)
)会导致范围错误。 通过更改result
或循环范围来解决此问题。