目标(变量 " ")不是 VHDL 中的信号错误



我有这段代码

  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或循环范围来解决此问题。

最新更新