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