Проектирование мультиплексора 2 в 1
Часть раздела Основы путешествия по Verilog на Coddy — урок 64 из 90.
Задание
Мультиплексор (MUX) — это цифровая схема, которая выбирает один из нескольких входов и передает его на один выход на основе сигнала выбора. Представьте его как селектор данных — у вас есть несколько входящих сигналов, и вы выбираете, какой из них пойдет на выход.
В этом проекте вы создадите мультиплексоры разных размеров, используя операторы if-else и case.
Мультиплексор 2-в-1
Мультиплексор 2-в-1 — это простейшая форма. Он имеет два входа данных (in0 и in1), один вход выбора (sel) и один выход (out). Когда sel равен 0, выход соответствует in0. Когда sel равен 1, выход соответствует in1. Вы реализуете это с помощью оператора if-else внутри блока always @(*).
Пример: Если in0 = 0, in1 = 1 и sel = 1, то out = 1.
Мультиплексор 2-в-1 выбирает один из двух входов и передает его на выход в зависимости от сигнала выбора.
Таблица истинности
| sel | out |
|---|---|
| 0 | out = in0 |
| 1 | out = in1 |
Когда sel равен 0, выход соответствует in0. Когда sel равен 1, выход соответствует in1.
Что нужно сделать:
- Создайте модуль с именем
mux2to1 - Добавьте вход
in0(1 бит) - Добавьте вход
in1(1 бит) - Добавьте вход
sel(1 бит) - Добавьте выход
out(1 бит, типreg) - Добавьте блок
always @(*) - Внутри добавьте оператор
if-else:- Если
sel == 0, установитеout = in0 - Иначе, установите
out = in1
- Если
- Закройте модуль с помощью
endmodule
Попробуйте сами
// Шаг 1: Создайте модуль с именем mux2to1
// Шаг 2: Добавьте вход in0
// Шаг 3: Добавьте вход in1
// Шаг 4: Добавьте вход sel
// Шаг 5: Добавьте выход out (тип reg)
// Шаг 6: Добавьте блок always @(*)
// Шаг 7: Добавьте оператор if-else
// Если sel == 0, out = in0
// Иначе, out = in1
// Шаг 8: 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