Module Structure
Часть раздела Основы путешествия по Verilog на Coddy. Урок 30 из 90.
Модуль — это основной строительный блок в Verilog. Каждый проект состоит из модулей, которые соединяются друг с другом, образуя более крупные системы.
Модуль — это аппаратный компонент с:
- Именем
- Входами (поступающими сигналами)
- Выходами (исходящими сигналами)
- Внутренней логикой (тем, что делает модуль)
Представляй модуль как микросхему с выводами и внутренней схемой.
Базовая структура module
Каждый module следует этой структуре:
module module_name (
input signals,
output signals
);
// Внутренние объявления (wires, regs и т.д.)
// Логика (assign statements, always blocks и т.д.)
endmoduleЧасти модуля
| Часть | Назначение |
|---|---|
Ключевое слово module | Начинает определение модуля |
module_name | Имя модуля |
( ) | Список входных и выходных портов |
input / output | Объявляют направление портов |
| Тело модуля | Внутренняя логика и соединения |
endmodule | Завершает определение модуля |
Простой пример модуля
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleЭтот module:
- Называется
and_gate - Имеет два входа (
a,b) - Имеет один выход (
c) - Содержит один оператор
assign, определяющий логику
Правила структуры module
- Один module на файл — распространённая практика
- Имя module должно описывать его функцию
- Порты указываются в скобках после имени
- Входы — это всегда
input(нельзя записывать внутрь) - Выходы — это
output(может бытьregилиwire) <strong>endmodule</strong>должен закрывать module
Задание
Заполните пропущенные части, чтобы завершить этот module.
Что нужно сделать:
- Добавьте имя module
my_and - Добавьте
inputдляx - Добавьте
inputдляy - Добавьте
outputдляz - Добавьте внутреннюю логику с помощью
assign
Попробуйте сами
module ______ ( // Добавьте имя модуля
input x, // Добавьте вход
input y, // Добавьте вход
output z // Добавьте выход
);
// Добавьте оператор assign здесь (z = x & y)
endmoduleВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
1Введение
Что такое VerilogАппаратное обеспечение и программное обеспечениеВаш первый модульКомментарииУровни абстракции проектирования4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicПотренируйтесь самостоятельно: Онлайн-компилятор Verilog