Menu
Coddy logo textTech

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

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

Задание

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

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

  1. Добавьте имя module 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