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 определяет отключённый путь. Пропуск может непреднамеренно вывести защёлку, сохраняющую прошлое значение. Показан фрагмент логики, не полный top: перед использованием объявите порты address, en, y и их ширины.

Попробуйте сами

Каков y при en=1, address=10? А при en=0?

Прочитать объяснение

При разрешении 0100, установлен только y[2]. При запрете 0000.

Выбор действует в этом браузере. Его можно изменить внизу страницы.