Menu
Coddy logo textTech

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

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

challenge icon

Задание

Дешифратор (decoder) принимает на вход двоичное число и включает ровно один выход в зависимости от этого числа. Такое состояние выхода называется «one-hot» (унитарный код), потому что только один бит является «горячим» (1), а все остальные — «холодными» (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

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