1

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」と言います。なぜこの行が間違っているのか、どうすれば修正できるのか説明してもらえますか?

4

2 に答える 2

0
FOR I IN 1 TO to_integer(UNSIGNED(A)) LOOP

unsignedベクトルは と同じではありませんinteger。これは Verilog ではありません。

于 2013-02-05T14:30:04.683 に答える