Menu
Coddy logo textTech

Проектирование дешифратора

Часть раздела Основы путешествия по Verilog на Coddy — урок 85 из 90.

challenge icon

Задание

Декодер (дешифратор) принимает двоичное число на вход и включает ровно один выход на основе этого числа. Активный выход называется "one-hot", поскольку только один бит является "горячим" (1), а все `others` — "холодными" (0).

Таблица истинности (декодер 2 в 4)

Вход (in)out0out1out2out3
001000
010100
100010
110001

Интерфейс модуля

ПортНаправлениеШиринаОписание
ininput2 битаДвоичный вход (от 0 до 3)
out0output1 битАктивен, когда in = 00
out1output1 битАктивен, когда in = 01
out2output1 битАктивен, когда in = 10
out3output1 битАктивен, когда 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: Добавить блок always @(*) с case (in)
  // 2'b00: out0=1, остальные 0
  // 2'b01: out1=1, остальные 0
  // 2'b10: out2=1, остальные 0
  // 2'b11: out3=1, остальные 0

endmodule

Все уроки раздела Основы