VHDL で for ループを記述しようとしていますが、ループ ステートメントに型の問題があると思います。別の入力 B をシフトする必要がある回数を示す入力として 16 ビット ワード A を受け取るブロックがあります。出力 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;
コンパイラは 2 行目について不平を言い、「Range left bound type Integer is not same as the right bound type」と言います。なぜこの行が間違っているのか、どうすれば修正できるのか説明してもらえますか?