Altifigence Academy

4 / 36 · 概念

デコーダとイネーブル信号

二進アドレスを一つの有効出力に変えます。

学習目標

  • 二進アドレスを一つの有効出力に変えます。

一つのアドレスから一つの出力へ

2-to-4デコーダは00、01、10、11を0001、0010、0100、1000へ対応させます。y[3:0]の右端はy[0]です。en=0では0000、en=1でのみ一つの出力が有効という条件を定めます。

RTLコード抜粋
always_comb begin
  y = 4'b0000;
  if (en) begin
    case (address)
      2'b00: y = 4'b0001;
      2'b01: y = 4'b0010;
      2'b10: y = 4'b0100;
      2'b11: y = 4'b1000;
      default: y = 4'b0000;
    endcase
  end
end

全経路に代入する

組合せ出力は現在の入力で決まります。最初に0000を代入すると無効時も定義できます。代入を省くと意図しないラッチが推論される場合があります。コードは抜粋なので、使用時にはaddress、en、yのポートと幅を宣言してください。

自分で考えてみましょう

en=1、address=10のyは? en=0なら?

解説を見る

有効時はy[2]だけが1の0100、無効時は0000です。

選択はこのブラウザに適用されます。フッターからいつでも変更できます。