Menu
Coddy logo textTech

Decoder Design

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

challenge icon

Задание

decoder принимает двоичное число в качестве input и включает ровно один output на основе этого числа. Включённый output называется "one-hot", потому что только один бит является активным (1), а все others неактивны (0).

Таблица истинности (decoder 2-to-4)

Input (in)out0out1out2out3
001000
010100
100010
110001

Интерфейс module

ПортНаправлениеШиринаОписание
ininput2 битаДвоичный input (от 0 до 3)
out0output1 битАктивен, когда in = 00
out1output1 битАктивен, когда in = 01
out2output1 битАктивен, когда in = 10
out3output1 битАктивен, когда in = 11

Твоя задача — завершить приведённый ниже module, используя оператор case.

Что нужно сделать:

  1. Когда in = 2'b00, out0 = 1, все others равны 0
  2. Когда in = 2'b01, out1 = 1, все others равны 0
  3. Когда in = 2'b10, out2 = 1, все others равны 0
  4. Когда in = 2'b11, out3 = 1, все others равны 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