我有这段代码
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;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
目标(变量“结果”)不是信号
我知道我需要更改结果的类型,但我不知道它应该是什么。谢谢。
分配给变量时,请:=用作:
result(i) := k1(i);
Run Code Online (Sandbox Code Playgroud)
Assign with<=用于分配给信号。
的范围内result(1 to 32)不存在于循环(匹配范围0 to 31),所以在环路(第一分配result(0) := k1(0))将导致在距离误差。通过更改result或循环范围来解决此问题。