Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Verilog

Verilog - в ореховой скорлупе

Весь поведенческий код написан внутри 08 и 11 . Таким образом, какой бы цифровой дизайн вы ни собирались создать, он помещается в 23 блокировать. Он может иметь определенные порты, а может и не иметь их — разрешить вход сигналов в блок как 39 или экранируйте блок как 49 .

Модуль

Пустой модуль в приведенном ниже примере называется testbench. . Вы можете назвать его как угодно, за исключением того, что оно должно быть буквенно-цифровым и может содержать '_'.

01

Давайте посмотрим на другой модуль. Он имеет несколько сигналов (d, clk, rstb ), объявленные как входные данные, и q объявлен как выход.

10 

Типы данных

Теперь, когда мы увидели, как выглядит модуль, давайте посмотрим, что можно поместить внутрь модуля, еще раз взглянув на модуль тестового стенда. В Verilog есть в основном два типа типов данных:

  • рег
  • провод
А 57 тип данных используется для хранения значений, таких как переменная, а тип 64 просто аналогичен электрическому проводу, который должен постоянно двигаться. Обычно 70 используется для соединения между несколькими модулями и другими сигналами.

28

Задания

Verilog имеет три основных блока:

84 @ (условие ) всегда выполняется при выполнении условия
96 выполняется только один раз, когда начинается симуляция
109 [ЛЕВАЯ] =[ПРАВАЯ] Значение LHS будет обновляться при каждом изменении RHS

При написании Verilog следует помнить несколько правил:

  • 115 может быть назначен только в 129 и 136 блоки
  • 147 может быть присвоено значение только через 152 заявление
  • Если в initial/always несколько операторов блок, они должны быть завернуты в 160

32

Примечание следующее из приведенного выше примера:

  • Поскольку есть несколько строк для 179 блокировать, начать и конец используются
  • Сигналы d, rst_b и clk назначаются в начальном блоке, поскольку они имеют тип 188.
  • Код внутри начального блока будет выполнен в 0 нс, т. е. в начале моделирования.
  • Поскольку для 191 нет условия блок, он будет работать как бесконечный цикл в C
  • # используется для обозначения временной задержки. #10 указывает симулятору увеличить время моделирования на 10 единиц.
  • 201 будет переключать значение часов, а поскольку #10 ставится перед оператором, часы будут переключаться через каждые 10 единиц времени.
  • 215 это способ закончить симуляцию. В этом случае он будет работать 100 единиц времени и завершится.

Verilog

  1. Учебник Verilog
  2. Конкатенация Verilog
  3. Верилог Задания
  4. Блокировка и неблокировка Verilog
  5. Верилог-функции
  6. Верилог Задача
  7. Иерархическая справочная область Verilog
  8. Генератор часов Verilog
  9. Математические функции Verilog
  10. Формат времени Verilog