Menu
CoddyTech

Структура модуля

Часть раздела Основы путешествия по Verilog на Coddy. Урок 30 из 90.

Модуль — это базовый строительный блок в Verilog. Каждая конструкция состоит из модулей, соединённых друг с другом для создания более крупных систем.

Модуль — это аппаратный компонент, у которого есть:

  • Имя
  • Входы (поступающие сигналы)
  • Выходы (исходящие сигналы)
  • Внутренняя логика (что делает модуль)

Представь себе модуль как чип с контактами и внутренней схемой.

Основная структура модуля

Каждый модуль имеет следующую структуру:

module module_name (
  input  signals,
  output signals
);
  
  // Внутренние объявления (провода, регистры и т. д.)
  // Логика (операторы assign, блоки always и т. д.)
  
endmodule

Части модуля

ЧастьНазначение
ключевое слово moduleНачинает определение модуля
module_nameИмя модуля
( )Список входных и выходных портов
input / outputОбъявляют направление порта
Тело модуляВнутренняя логика и соединения
endmoduleЗавершает определение модуля

Простой пример модуля

module and_gate (
  input a,
  input b,
  output c
);
  assign c = a & b;
endmodule

Этот модуль:

  • Называется and_gate
  • Имеет два входа (a, b)
  • Имеет один выход (c)
  • Содержит одну инструкцию assign, определяющую логику

Правила структуры модуля

  1. Один модуль на файл — распространённая практика
  2. Имя модуля должно описывать его функцию
  3. Порты перечисляются в скобках после имени
  1. Входы всегда являются input (нельзя записывать внутрь)
  2. Выходы — это output (может быть reg или wire)
  3. endmodule должен закрывать модуль
challenge icon

Задание

Заполните пропущенные части, чтобы завершить этот модуль.

Что нужно сделать:

  1. Добавьте имя модуля my_and
  2. Добавьте input для x
  3. Добавьте input для y
  4. Добавьте output для z
  5. Добавьте внутреннюю логику с помощью assign

Попробуйте сами

module ______ (   // Добавьте имя модуля
  input x,       // Добавьте вход
  input y,       // Добавьте вход
  output z       // Добавьте выход
);
  // Добавьте здесь оператор assign (z = x & y)
  
endmodule
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Verilog