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

Условная компиляция Verilog `ifdef

Verilog поддерживает несколько директив компилятора, которые по существу предписывают компилятору обрабатывать код определенным образом. Например, часть кода может представлять собой реализацию определенной функции, и должен быть какой-то способ не включать код в дизайн, если эта функция не используется.

Это можно решить с помощью условного компиляция, где разработчик может обернуть код в директивы компилятора, которые сообщают компилятору либо включить, либо исключить код для компиляции, когда установлен данный именованный флаг.

Синтаксис

Условную компиляцию можно выполнить с помощью Verilog 07. и 14 ключевые слова. Эти ключевые слова могут появляться в любом месте дизайна и могут быть вложены друг в друга.

Ключевое слово 29 просто говорит компилятору включить фрагмент кода до следующего 34 или 46 если данный макрос с именем FLAG определен с использованием 59 директива.

01

Ключевое слово 65 просто говорит компилятору включить фрагмент кода до следующего 78 или 86 если заданный макрос с именем FLAG не определяется с помощью 97 директива.

Пример дизайна с `ifdef

10 

Тестовый стенд

27

Обратите внимание, что по умолчанию rstn не будет включен во время компиляции дизайна и, следовательно, не появится в списке портов. Однако, если макрос с именем INCLUDE_RSTN либо определен в любом файле Verilog, который является частью списка компилируемых файлов, либо передан через командную строку компилятору, rstn будет включен в компиляцию и будет иметь его в проекте.

Поэкспериментируйте, добавляя и удаляя +define+INCLUDE_RSTN из «Параметры компиляции и запуска» на левой панели, чтобы понять разницу.

Пример Verilog `ifdef `elsif

В следующем примере два оператора display находятся внутри отдельных 102. области, у которых нет 119 по умолчанию часть к нему. Это означает, что по умолчанию ничего не будет отображаться. Если определен макрос или MACRO, соответствующее сообщение на дисплее включается и будет отображаться во время моделирования

31
Журнал моделирования
40

Пример Verilog `ifndef `elsif

Тот же код можно записать с помощью 129. и результаты будут прямо противоположными.

58
Журнал моделирования
60

Пример вложенного `ifdef Verilog

138 и его разновидности могут быть вложены друг в друга для создания сложных способов включения и исключения кода с помощью определенных макросов.

72
Журнал моделирования
89

Обратите внимание, что пока родительский макрос не определен, определение любого другого вложенного макроса внутри него не компилируется. Например, определения макросов NEST1_A или WHITE без флага FLAG не заставят компилятор подобрать вложенный код.


Verilog

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