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

jas*_*son 2 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;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

目标(变量“结果”)不是信号

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

Mor*_*mer 5

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

result(i) := k1(i);
Run Code Online (Sandbox Code Playgroud)

Assign with<=用于分配给信号。

的范围内result1 to 32)不存在于循环(匹配范围0 to 31),所以在环路(第一分配result(0) := k1(0))将导致在距离误差。通过更改result或循环范围来解决此问题。