VHDLで、信号の割り当てのための2つのタイプがあります一度チェックされます。たとえばreferenceを参照してください。同時との条件付き信号の割り当て(VHDL)
私は、when..else
は行単位でチェックしているため、順次割り当てであるとも言います。言い換えれば、私はと言う必要はないと言っています。プロセス内の.....elseは、when..elseと同等です。なぜ彼らはwhen..else
が並行する割り当てであると仮定しますか?
VHDLで、信号の割り当てのための2つのタイプがあります一度チェックされます。たとえばreferenceを参照してください。同時との条件付き信号の割り当て(VHDL)
私は、when..else
は行単位でチェックしているため、順次割り当てであるとも言います。言い換えれば、私はと言う必要はないと言っています。プロセス内の.....elseは、when..elseと同等です。なぜ彼らはwhen..else
が並行する割り当てであると仮定しますか?
あなたの問題でヒントを得ているところは、同時割り当てまたは順次文とは関係ありません。 ifとcaseの違いとはさらに関係があります。最初にそれを理解する前に、いくつかの等価物を理解することができます。同時条件付きの割り当て:同様に
process(A, ASel, B, BSel, C)
begin
if ASel = '1' then
Y <= A ;
elsif BSel = '1' then
Y <= B ;
else
Y <= C ;
end if ;
end process ;
同時選択割付:
With MuxSel select
Y <= A when "00", B when "01", C when others ;
が持つプロセスと同等です
Y <= A when ASel = '1' else B when BSel = '1' else C ;
は、次のコードでのプロセスとまったく同じです以下:
process(MuxSel, A, B , C)
begin
case MuxSel is
when "00" => Y <= A;
when "01" => Y <= B ;
when others => Y <= C ;
end case ;
end process ;
上記のシーケンシャルフォームは、代入フォームよりももう少し多くのコーディング能力を持っています。これは、caseとifが代入フォームが1つの信号のみを割り当てるコードブロックを許可するためです。しかし、それ以外の言語の制限は同じで、同じハードウェアを生成します(合成ツールと同じくらい)。多くの単純なハードウェアの問題に加えて、割り当てフォームはうまく機能し、問題を簡潔に把握できます。
あなたの考えがどこに導いているかは、ifとcaseの違いになります。複数の "elsif"が入っている(または暗示されている)ステートメント(およびそれらの同等の条件付き割り当て)が、優先順位ロジックまたは少なくともカスケードされたロジックを作成する傾向がある場合。ケース(およびそれに相当する選択された課題)はマルチプレクサのようなものに適している傾向があり、その論理構造はよりバランスの取れたツリー構造になりがちです。
時には、ツールがifステートメントをリファクタリングして、caseステートメントと同等になるようにします。また、一部のターゲット(特にXilinxやAlteraなどのLUTベースのロジック)では、 "elsif"ブランチが十分になくなるまで、ハードウェア効率の点でそれらの違いは現れません。
VHDL-2008では、割り当てフォームもシーケンシャルコードで使用できます。プロセスラッパーを使用しない限り、変換は同じです。
並行対シーケンシャルは、実行の独立性に関するものです。
同時実行文は、それを囲むコードとは独立に評価および/または実行される単なる文です。プロセスは並行しています。コンポーネント/エンティティインスタンスは同時に発生します。アーキテクチャで実行されるシグナルの割り当てとプロシージャ・コールは、並行して行われます。
シーケンシャルステートメント(待機以外)は、その前後のコードも実行されたときに実行されます。
興味深いことに、プロセスは(他のプロセスや並行した割り当てとは独立して実行されるため)並行して実行されますが、順序ステートメントが含まれています。
多くの場合、RTLコードを書くと、私たちが書いたプロセスは簡単なので、それらの逐次的な性質を見るのは難しいです。実際にプロセスの真の連続性を見るためには、ステートマシンやテストベンチが必要です。
この回答を前の質問に含めてください。今はっきりしている – mahmood
あなたの質問は何ですか? – mkrieger1
そしてなぜ投票が下りますか...投稿を編集しました – mahmood