Использование оператора case
Часть раздела Основы путешествия по Verilog на Coddy. Урок 66 из 90.
Задание
Создайте мультиплексор 4-к-1, используя оператор case вместо if-else.
Таблица истинности
| sel | out |
|---|---|
| 00 | out = in0 |
| 01 | out = in1 |
| 10 | out = in2 |
| 11 | out = in3 |
Что нужно сделать:
- Создайте module с именем
mux4to1_case - Добавьте inputs
in0,in1,in2,in3(по 1 bit каждый) - Добавьте input
sel(2 bits) - Добавьте output
out(1 bit, typereg) - Добавьте блок
always @(*) - Внутри него добавьте оператор
case (sel) - Добавьте варианты для
2'b00,2'b01,2'b10,2'b11 - Добавьте вариант
default - Завершите с помощью
endcaseиendmodule
Попробуйте сами
// TODO: Создать модуль с именем mux4to1_case
// TODO: Добавить входы: in0, in1, in2, in3 (по 1 биту каждый)
// TODO: Добавить вход sel (2 бита)
// TODO: Добавить выход out (тип reg)
// TODO: Добавить блок always @(*)
// TODO: Добавить case (sel)
// TODO: Добавить case 2'b00: out = in0;
// TODO: Добавить case 2'b01: out = in1;
// TODO: Добавить case 2'b10: out = in2;
// TODO: Добавить case 2'b11: out = in3;
// TODO: Добавить default: out = in0;
// TODO: Добавить endcase
// TODO: Добавить 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 и Initial12Проект мультиплексора
Проектирование мультиплексора 2 к 1Проектирование мультиплексора 4 к 1Потренируйтесь самостоятельно: Онлайн-компилятор Verilog