Menu
Coddy logo textTech

デコーダー設計

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

challenge icon

チャレンジ

decoderは、2進数を入力として受け取り、その数値に基づいて1つの出力のみをハイ(1)にします。1つのビットだけがホット(1)で、それ以外のすべてのビットがコールド(0)になるため、この出力は「ワンホット」と呼ばれます。

真理値表 (2-to-4 デコーダ)

入力 (in)out0out1out2out3
001000
010100
100010
110001

モジュールインターフェース

ポート方向ビット幅説明
ininput2 bits2進数入力 (0〜3)
out0output1 bitin = 00 のときにアクティブ
out1output1 bitin = 01 のときにアクティブ
out2output1 bitin = 10 のときにアクティブ
out3output1 bitin = 11 のときにアクティブ

あなたのタスクは、case 文を使用して以下のモジュールを完成させることです。

行うこと:

  1. in = 2'b00 のとき、out0 = 1、その他は 0
  2. in = 2'b01 のとき、out1 = 1、その他は 0
  3. in = 2'b10 のとき、out2 = 1、その他は 0
  4. in = 2'b11 のとき、out3 = 1、その他は 0

自分で試してみよう

module decoder (
  input [1:0] in,
  output reg out0,
  output reg out1,
  output reg out2,
  output reg out3
);
  
  // TODO: always @(*) ブロックと case (in) を追加
  // 2'b00: out0=1, 他は0
  // 2'b01: out1=1, 他は0
  // 2'b10: out2=1, 他は0
  // 2'b11: out3=1, 他は0

endmodule

基礎のすべてのレッスン