Проектирование мультиплексора 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.
Что нужно сделать:
- Create модуль named
mux2to1 - Add input
in0(1 бит) - Add input
in1(1 бит) - Add input
sel(1 бит) - Add output
out(1 бит, typereg) - Add блок
always @(*) - Внутри Add оператор
if-else:- Если
sel == 0, установитьout = in0 - Else, установить
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Введение
Что такое 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