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