Ваш первый модуль
Часть раздела Основы путешествия по Verilog на Coddy — урок 4 из 90.
Модуль является основным строительным блоком в Verilog. Каждый фрагмент кода Verilog находится внутри модуля.
Представьте модуль как компонент с:
- Входами (входящие сигналы)
- Выходами (исходящие сигналы)
- Поведением (что он делает)
Синтаксис модуля
module module_name ( inputs, outputs );
// Все, что находится внутри
endmoduleКаждый модуль начинается с module и заканчивается на endmodule.
Входы и выходы
module and_gate(
input a, // a входит В модуль
input b, // b входит В модуль
output c // c выходит ИЗ модуля
);
// Логика работы описывается здесь
endmodule- input = сигнал входит в модуль
- output = сигнал выходит из модуля
Добавление поведения
Теперь заставим модуль что-то делать:
module and_gate(
input a,
input b,
output c
);
assign c = a & b; // c равно 1 только тогда, когда a И b равны 1
endmoduleassignнепрерывно соединяет правую часть с левой&означает И (AND) в Verilog
Задание
В этом испытании вам нужно создать простой модуль, который выполняет операцию ИЛИ (OR).
Что нужно сделать:
- Модуль должен называться
or_gate - У него должен быть вход с именем
x - У него должен быть вход с именем
y - У него должен быть выход с именем
z - Внутри модуля используйте
assign, чтобы сделатьzравнымx OR y
Примечание: В Verilog операция ИЛИ записывается символом вертикальной черты |. Она выдает 1 (истина), если хотя бы один из входов равен 1 (истина).
Шпаргалка
Модуль — это основной строительный блок в Verilog, представляющий собой компонент с входами, выходами и определенным поведением.
module module_name (
input a,
input b,
output c
);
// поведение
endmoduleИспользуйте assign для непрерывного управления выходным сигналом:
assign c = a & b; // И
assign c = a | b; // ИЛИ&— оператор И|— оператор ИЛИ
Попробуйте сами
// Шаг 1: Создайте модуль с именем or_gate
// Шаг 2: Создайте вход x
// Шаг 3: Создайте вход y
// Шаг 4: Создайте выход z
// Шаг 5: Используйте assign, чтобы сделать z = x OR y
// В Verilog ИЛИ записывается как |
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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 против initial