Проектирование дешифратора
Часть раздела Основы путешествия по Verilog на Coddy — урок 85 из 90.
Задание
Дешифратор (decoder) принимает на вход двоичное число и включает ровно один выход в зависимости от этого числа. Такое состояние выхода называется «one-hot» (унитарный код), потому что только один бит является «горячим» (1), а все остальные — «холодными» (0).
Таблица истинности (дешифратор 2-в-4)
| Вход (in) | out0 | out1 | out2 | out3 |
|---|---|---|---|---|
| 00 | 1 | 0 | 0 | 0 |
| 01 | 0 | 1 | 0 | 0 |
| 10 | 0 | 0 | 1 | 0 |
| 11 | 0 | 0 | 0 | 1 |
Интерфейс модуля
| Порт | Направление | Ширина | Описание |
|---|---|---|---|
in | input | 2 бита | Двоичный вход (от 0 до 3) |
out0 | output | 1 бит | Активен, когда in = 00 |
out1 | output | 1 бит | Активен, когда in = 01 |
out2 | output | 1 бит | Активен, когда in = 10 |
out3 | output | 1 бит | Активен, когда in = 11 |
Ваша задача — дописать модуль ниже, используя оператор case.
Что нужно сделать:
- Когда
in = 2'b00,out0 = 1, остальные 0 - Когда
in = 2'b01,out1 = 1, остальные 0 - Когда
in = 2'b10,out2 = 1, остальные 0 - Когда
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Все уроки раздела Основы
1Введение
Что такое VerilogHardware против SoftwareУровни абстракции проектированияВаш первый модульКомментарии4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияОператоры сравненияПовторение: простая математикаПобитовые операторы7Оператор Assign и логические вентили
Непрерывное присваиваниеAssign с операторамиВстроенные примитивы вентилейВентили AND, OR, NOTВентили XOR, XNORИтоги: Схемы на логических вентилях10Принятие решений
Оператор ifКонструкция if - elseПовторение: простой компараторОператор caseОператоры casex и casezПовторение: проектирование ALU5Операторы. Часть 2
Логические операторыОператоры редукцииОператоры сдвигаОператор конкатенацииУсловный операторПовторение — Испытание по операторам3Системы счисления
Двоичное представлениеЧисла с заданным размеромЧисла без заданного размераОтрицательные числаСпециальные значения X и ZИтоги — форматы чисел6Модули
Структура модуляВходные и выходные портыПорты InoutИнстанцирование модуляПодключение портов по имениПодключение портов по порядкуИтоги: создание модуля9Процедурные блоки
Блок alwaysБлок initialСписок чувствительностиБлокирующее присваиваниеНеблокирующее присваиваниеИтоги: always против initial