FORループを使用して1つのマルチプレクサを生成する方法を教えてください。ここ は、私が何を意味するか抜粋です:ケースのループ
CASE test IS
FOR i IN ... LOOP
WHEN i => ... ;
END LOOP;
END CASE;
私は1つのCASE FOR前に置くことができますが、その場合には、それは多くのマルチプレクサを生成することを承知していますか?
FORループを使用して1つのマルチプレクサを生成する方法を教えてください。ここ は、私が何を意味するか抜粋です:ケースのループ
CASE test IS
FOR i IN ... LOOP
WHEN i => ... ;
END LOOP;
END CASE;
私は1つのCASE FOR前に置くことができますが、その場合には、それは多くのマルチプレクサを生成することを承知していますか?
case文の式を生成するためのループを作成することはできません。
FOR i IN ... LOOP
IF test = i then
output <= myarray(i);
END IF;
END LOOP;
を...しかし、あなたがやっているすべては、上記のような単純なマルチプレクサであるならば、あなたドン:あなたはおそらくちょうどforループを使用して、しかし、あなたはケースなしで欲しいものに近い何かを行うことができます「Tはあなたの選択信号に直接ちょうどインデックス可能な場合またはループを、必要とする:
output <= myarray(to_integer(test));
私は最初のスニペットを使うことができると思います。私はマルチプレクサではない優先デコーダと常にIFを接続しました(しかし、それはelsifとelse文がある場合です)。 – user1131562
私は、値の全範囲をカバーしたいときには、IFを使用するのが難しいことを知りました。 testがstd_logicのときは、「他人がいるとき」が必要です。または "if ... else {}"と入力します。 – user1131562
VHDLの壊れたビットをリストし、「なぜこれを行うことができないのですか」と尋ねるのではなく、あなたがしたいことについて正確に少し詳細を述べると、より良い答えが得られるかもしれません! :) –
あなたは、 'when i =>'の後に何を入れようとしているのかという疑問が明確になります。これは実際にあなたが望む構造ではない可能性があります。 –
私は同意しません。私は意図的にこう書いた。 – user1131562