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

时间:2013-12-31 10:55:37

标签: 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;

我收到此错误:

  

target(变量“result”)不是信号

我知道我需要改变结果的类型,但我不知道应该是什么。 感谢。

1 个答案:

答案 0 :(得分:3)

分配给变量时,请使用:=

result(i) := k1(i);

分配<=用于分配信号。

result1 to 32)的范围与循环中的范围(0 to 31)不匹配,因此首先在循环中分配(result(0) := k1(0))将导致范围错误。通过更改result或循环范围来解决此问题。