我正在尝试用 VHDL 编写一个 for 循环,但我相信循环语句中存在一些类型问题。我有一个接收 16 位字 A 作为输入的块,它指示我应该移位另一个输入 B 的次数。输出 C 显示 B 的移位版本。我的代码如下所示:
TEMP_C := B;
FOR I IN 1 TO UNSIGNED(A) LOOP
TEMP_C := TEMP_C(15) & TEMP_C(15 DOWNTO 1);
END LOOP;
C <= TEMP_C;
编译器抱怨第二行,并说“Range left bound type Integer is not the same as right bound type”。有人可以向我解释为什么这条线是错误的,我该如何解决?