Menu
Coddy logo textTech

2 To 1 Mux Design

CoddyのVerilogジャーニー「基礎」セクションの一部。レッスン 64/90。

challenge icon

チャレンジ

マルチプレクサ (MUX)は、複数の入力のうち1つを選択し、選択信号に基づいて単一の出力へ転送するデジタル回路です。データセレクターのようなものだと考えてください。複数の入力があり、そのうちどれを出力へ送るかを選択します。

このプロジェクトでは、if-else文とcase文を使用して、さまざまなサイズのマルチプレクサを構築します。

2対1マルチプレクサ

2対1マルチプレクサは最も単純な形式です。2つのデータ入力(in0in1)、1つの選択入力(sel)、そして1つの出力(out)があります。selが0の場合、出力はin0に従います。selが1の場合、出力はin1に従います。これをalways @(*)ブロック内のif-else文を使用して実装します。

例: in0 = 0in1 = 1sel = 1の場合、out = 1となります。

2対1マルチプレクサは、2つの入力のうち1つを選択し、選択信号に基づいて出力へ渡します。

真理値表

 

selout
0out = in0
1out = in1

selが0の場合、出力はin0に従います。selが1の場合、出力はin1に従います。

行うこと:

  1. Create mux2to1という名前のmoduleを作成する
  2. input in0(1ビット)をAddする
  3. input in1(1ビット)をAddする
  4. input sel(1ビット)をAddする
  5. output out(1ビット、type reg)をAddする
  6. always @(*) blockをAddする
  7. その中にif-else statementをAddする:
    • sel == 0の場合、out = in0を設定する
    • Else、out = in1を設定する
  8. endmoduleで閉じる

自分で試してみよう

// ステップ 1: mux2to1 という名前のモジュールを作成


  // ステップ 2: 入力 in0 を追加
  
  // ステップ 3: 入力 in1 を追加
  
  // ステップ 4: 入力 sel を追加
  
  // ステップ 5: 出力 out を追加 (reg 型)
  

  // ステップ 6: always @(*) ブロックを追加
  

    // ステップ 7: if-else 文を追加
    // sel == 0 の場合、out = in0
    // それ以外の場合、out = in1
    

// ステップ 8: Endmodule

基礎のすべてのレッスン

自分で練習してみよう: Verilogオンラインコンパイラ