Menu
Coddy logo textTech

Decoder Design

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

challenge icon

チャレンジ

decoderはバイナリ番号をinputとして受け取り、その番号に基づいて正確にoutputを1つだけオンにします。オンになるoutputは「one-hot」と呼ばれます。これは、1つのビットだけがホット(1)で、その他すべてがコールド(0)だからです。

真理値表(2-to-4 decoder)

Input (in)out0out1out2out3
001000
010100
100010
110001

moduleインターフェース

ポート方向説明
ininput2ビットバイナリinput(0~3)
out0output1ビットin = 00のときアクティブ
out1output1ビットin = 01のときアクティブ
out2output1ビットin = 10のときアクティブ
out3output1ビットin = 11のときアクティブ

あなたの課題は、case文を使って以下のmoduleを完成させることです。

行うこと:

  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

基礎のすべてのレッスン

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