Menu
Coddy logo textTech

デコーダー設計

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

challenge icon

チャレンジ

デコーダは、バイナリ数値を入力として受け取り、その数値に基づいて正確に1つの出力をオンにします。1つのビットだけが「ホット」(1)で、他のすべてが「コールド」(0)であるため、オンになる出力は「ワンホット」と呼ばれます。

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

入力 (in)out0out1out2out3
001000
010100
100010
110001

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

ポート方向説明
in入力2ビットバイナリ入力 (0 から 3)
out0出力1ビットin = 00 の時にアクティブ
out1出力1ビットin = 01 の時にアクティブ
out2出力1ビットin = 10 の時にアクティブ
out3出力1ビットin = 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: case (in) を使用した always @(*) ブロックを追加する
  // 2'b00: out0=1, その他は 0
  // 2'b01: out1=1, その他は 0
  // 2'b10: out2=1, その他は 0
  // 2'b11: out3=1, その他は 0

endmodule

基礎のすべてのレッスン