Verilogで4 - T0 - 1マルチプレクサ

S

santumevce1412

Guest
if - else文やケースを使用して4対1マルチプレクサをif - else文を与えられる場合(sel_1 == 0&&sel_0 == 0)、出力= I0、他の場合(sel_1 == 0&&sel_0 == 1)出力= I1、他の場合(sel_1 == 1&&sel_0 == 0)、出力= I2、他の場合(sel_1 == 1&&sel_0 == 1)出力= I3、case文を使用したケース({sel_1、sel_0})00:出力= I0; 01:出力= I1、10:出力= I2、11:出力= I3、デフォルト:出力= I0; ENDCASE#上記の各コーディングスタイルの長所/短所は何ですか? #どのように合成ツールでは、上記のコードの結果を与えるのだろうか? default文は、caseステートメントで削除されている場合#はどうなりますか?組み合わせ11と、デフォルトの文が削除されている場合#はどうなりますか? (ヒントラッチの推論)plsはこれらの質問に答える..............
 
こんにちは、のif - elseでのコーディングについては、合成ツールでは、優先度ベースのMUXのロジックを実装します。だから、優先順位のチェーンが作成されるより多くの遅延を持つことになります。ケースstatemetnでコーディングするのは、それがパラレルMUX構造を作成しますので、遅延は少なくなります。としてこれまでに合成ツールの結果として、上記のテキストはすでにこれを答える。 case文のdefault文の除去に関して....それはデフォルトのステートメントを記述する必要がないので完全なケースがないので、このケースではすべての4つの条件を記載している...あなたが削除しても、そのためには、case文では、組み合わせ"11"とdefalut文の削除については、ハードウェアに影響文句を言わない...ラッチがinferedされます...あなたは既にヒントとして挙げているように...ラッチは、合成ツールは、アイデアを持っていないので、ケースの項目は、の"11"になったとき、何をすべきか、inferedされる..そのため、出力の前の値を維持しようとします....そのため、ケースの項目で"11"の場合で、以前の出力を生成するために、ロジックのようなラッチをinfereなります。この情報がお役に立てば幸い...あなたが他の特定の疑いがある場合はお知らせください......
 
両方のコードの実装は、論理的に等価であるように、、それらが合成ツールによって異なる扱われることの小修道院を知ることはできません。それは、特定のツール(あなたが確かにどんなの知っているのですか?)の場合かもしれないが、どちらの構文で同一の結果がはるかに可能性が高い、私は思う。
 
私の2セントが、私はvijuに同意するとVerilogのが向かってコーディングスタイルに基づいて、インターネットの記事のほとんどが合成ツール(Synopsys社の設計のコンパイラ)に傾斜しているように私は、FVMに同意する。これは、私は信じvijuの答えの理由です。しかし、私は信じて引用されたRTLのため、設計のコンパイラは、ifelseのためのプライオリティエンコーダとcase文のためのマルチプレクサを推論します。マルチプレクサ状況のために我々は両方のRTL構造を同意できるツールの理解が論理的に正しいものですが、プライオリティエンコーダは最初RTLは正しい選択となります。私は、例では、まずRTL用/ / infer_muxため物事を取得するためのツールのプラグマを使用することができると信じて?私は敬具を設計する幸せな意味を成し願って、チップの設計が容易に作った、 http://www.vlsichipdesign.com
 

Welcome to EDABoard.com

Sponsor

Back
Top