Проектирование дешифратора
Часть раздела Основы путешествия по Verilog на Coddy. Урок 85 из 90.
Задание
decoder принимает двоичное число в качестве input и включает ровно один output на основе этого числа. Включённый output называется "one-hot", потому что только один бит является активным (1), а все others неактивны (0).
Таблица истинности (decoder 2-to-4)
| Input (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 |
Интерфейс module
| Порт | Направление | Ширина | Описание |
|---|---|---|---|
in | input | 2 бита | Двоичный input (от 0 до 3) |
out0 | output | 1 бит | Активен, когда in = 00 |
out1 | output | 1 бит | Активен, когда in = 01 |
out2 | output | 1 бит | Активен, когда in = 10 |
out3 | output | 1 бит | Активен, когда in = 11 |
Твоя задача — завершить приведённый ниже module, используя оператор case.
Что нужно сделать:
- Когда
in = 2'b00,out0 = 1, все others равны 0 - Когда
in = 2'b01,out1 = 1, все others равны 0 - Когда
in = 2'b10,out2 = 1, все others равны 0 - Когда
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Все уроки раздела Основы
1Введение
Что такое VerilogАппаратное и программное обеспечениеВаш первый модульКомментарииУровни абстракции проектирования4Операторы. Часть 1
Арифметические операторыОператор взятия остаткаОператоры сравненияПовторение — простая математикаПобитовые операторы7Присваивание и логические элементы
Непрерывное присваиваниеПрисваивание с операторамиВстроенные примитивы логических элементовЭлементы И, ИЛИ и НЕЭлементы XOR и XNORПовторение — схема на логических элементах10Принятие решений
Оператор ifif—elseПовторение — простой компараторОператор casecaseх и casezПовторение — проектирование ALU5Операторы, часть 2
Логические операторыОператоры свёрткиОператоры сдвигаОператор конкатенацииУсловный операторПовторение — задание на операторы11Циклы
Цикл forЦикл whileЦикл повторенияБесконечный циклОператор отключенияПовторение — шаблоны циклов3Система счисления
Двоичное представлениеЧисла заданной разрядностиЧисла без указания разрядностиОтрицательные числаСпециальные значения X и ZПовторение — форматы чисел6Модули
Структура модуляВходные и выходные портыДвунаправленные портыСоздание экземпляра модуляПодключение портов по имениПодключение портов по порядкуПовторение — создание модуля9Процедурные блоки
Блок AlwaysБлок InitialСписок чувствительностиБлокирующее присваиваниеНеблокирующее присваиваниеПовторение: Always и InitialПотренируйтесь самостоятельно: Онлайн-компилятор Verilog