Menu
Coddy logo textTech

Built In Gate Primitives

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

В Verilog есть встроенные gate primitives, которые позволяют описывать логические схемы с использованием настоящих обозначений gate. Это называется моделированием structural. Вы создаёте схемы, соединяя gate, точно так же, как при рисовании принципиальной схемы.

Gate primitive — это предопределённые ключевые слова, моделирующие базовые логические gates. Вместо записи выражения вроде assign out = a & b вы создаёте экземпляр gate:

and(out, a, b);   // вентиль AND с выходом out, входами a и b

Общий синтаксис

gate_type (output, input1, input2, ...);
  • Первый аргумент всегда является output
  • Следующие аргументы — это inputs (1 или больше, в зависимости от gate)

Доступные Gate-примитивы

Тип GateКлючевое словоКоличество inputs
ANDand2 или более
ORor2 или более
NOTnot1
NANDnand2 или более
NORnor2 или более
XORxor2 или более
XNORxnor2 или более

Как работают примитивы Gate

Когда вы пишете and(out, a, b), Verilog создаёт вентиль AND, который непрерывно подаёт в out result операции a & b. Каждый раз, когда изменяется a или b, out немедленно обновляется — совсем как у настоящего вентиля.

Примитивы Gate в сравнении с непрерывным присваиванием

Оба метода создают одинаковое аппаратное обеспечение:

// Примитив вентиля
and(out, a, b);

// Непрерывное присваивание (тот же результат)
assign out = a & b;

Gate primitives полезны, когда вы хотите описать схему как collection of gates (стиль structural). Непрерывное присваивание лучше подходит для behavioral style (выражений).

challenge icon

Задание

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

  1. Добавьте правильный примитив gate, чтобы эта схема работала. module should выдавать AND входов a и b. Порт output уже назван c.

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

module gate_challenge (
  input a,
  input b,
  output c
);
  
  // TODO: Добавьте правильный примитив вентиля
  // Выход c должен быть a AND b

endmodule
quiz iconПроверьте себя

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

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

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