Verilog/SystemVerilog
Last updated
Last updated
Verilog – язык описания аппаратуры (HDL, hardware description language), широко использующийся для моделирования электронных схем. Синтаксис Verilog схож с C, что упрощает его освоение программистами.
SystemVerilog – является надмножеством Verilog-2005 и позволяет работать на более высоком уровне абстракции, что отвечает сложности современных цифровых систем.
Синтаксические конструкции, примеры их использования и результат вывода кода приведены в . Большинство примеров кода представлены в виде набора оформленных модулей, которые можно при желании скомпилировать и провести симуляцию.
В этом разделе рассмотрены открытые сервисы и онлайн среды для написания кода на Verilog и SystemVerilog.
Может использоваться любой текстовый редактор. Далее для примера будет использоваться VSCode. Расширение добавит подсветку синтаксиса.
Расширение также позволяет добавить подсветку синтаксиса, автодобавление шаблонов частоиспользуемых конструкций языка и пр.
Из свободно распространяемых популярным решением является Icarus Verilog. Для Windows его можно скачать по ссылке: . В остальных случаях рекомендуется ознакомиться со следующей инструкцией: . Из командной строки его можно вызывать:
Icarus Verilog также является и симулятором, что позволяет запускать скрипты тестового окружения для проверки работоспособности.
Компиляция и запуск осуществляется командами в терминале:
Например:
Примечание: строка запуска по умолчанию выглядит как
Для добавления ключа компиляции -g2012
нужно вправить расширение, для этого нужно перейти в каталог с расширениями VSCode (Windows %USERPROFILE%\.vscode\extensions
, Linux и macOS ~/.vscode/extensions
), найти каталог leafvmaple.verilog-*
, в файле out/command.js
заменить строку
на строку
По желанию можно добавить свои ключи компиляции.
На сайте в файлах testbench.sv и design.sv пишется код тестового окружения и самой схемы соответственно. Для выполнения заданий предлагается выбирать в «Testbench+Design» SystemVerilog/Verilog и в «Tools & Simulators» бесплатный симулятор Icarus Verilog 0.10.0 11/23/14. Ниже приведён скриншот с настроенными параметрами.
С этим симулятором поддерживается просмотр в браузере временной диаграммы в EPWave. Для этого нужно включить опцию «Open EPWave after run». После окончания симуляции откроется новая вкладка, в которой будет показана временная диаграмма.
Аналог EDA playground, в котором весь код пишется в одном файле. Запуск симуляции осуществляется нажатием на «Execute». На панели справа отображается вывод модуля.
Используется компилятор Icarus Verilog 10.0. Данный сервис не позволяет выгружать генерируемые модулем файлы.
Другой аналог EDAPlayground. Как и сервис из предыдущего пункта не позволяет выгрузить сгенерированные выходные файлы, но позволяет добавить пользовательский ввод, в том числе в интерактивном режиме.
В качестве компилятора используется Icarus Verilog. Версия выбирается в разделе «Execute Mode, Version, Inputs & Arguments» из доступных версий: 10.1, 10.2, 10.3 или 11.
В VSCode есть несколько расширений, использующих Icarus Verilog, одним из которых является . После его установки симуляция запускается через Command Palette (CTRL+SHIFT+P) и выбор "Verilog: Run Verilog HDL Code" на текущем редактируемом файле.
Другое расширение для сборки и запуска через пользовательский интерфейс: . Использует ключ -g2012
по умолчанию и складывает собранные файлы в отдельную директорию.
В случае использования VSCode можно установить расширение .
Другим решением является десктопное приложение , которое устанавливается сразу вместе с Icarus.