Offline инструменты

Текстовый редактор для написания кода

Может использоваться любой текстовый редактор. Далее для примера будет использоваться VSCode. Расширение SystemVerilog - Language Support - Visual Studio Marketplace добавит подсветку синтаксиса.

Расширение Verilog-HDL/SystemVerilog/Bluespec SystemVerilog также позволяет добавить подсветку синтаксиса, автодобавление шаблонов частоиспользуемых конструкций языка и пр.

Компилятор+симулятор

Из свободно распространяемых популярным решением является Icarus Verilog. Для Windows его можно скачать по ссылке: Icarus Verilog for Windows bleyer.org. В остальных случаях рекомендуется ознакомиться со следующей инструкцией: Installation Guide | Icarus Verilog. Из командной строки его можно вызывать:

iverilog -help

Icarus Verilog также является и симулятором, что позволяет запускать скрипты тестового окружения для проверки работоспособности.

Компиляция и запуск осуществляется командами в терминале:

iverilog -g2012 -o <outfilename> <scriptfilename> && vvp <outfilename>

Например:

iverilog -g2012 -o testbench.out testbench.sv && vvp testbench.out

В VSCode есть несколько расширений, использующих Icarus Verilog, одним из которых является Verilog HDL - Visual Studio Marketplace. После его установки симуляция запускается через Command Palette (CTRL+SHIFT+P) и выбор "Verilog: Run Verilog HDL Code" на текущем редактируемом файле.

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

iverilog -o <outfilename> <scriptfilename> && vvp <outfilename>

Для добавления ключа компиляции -g2012 нужно вправить расширение, для этого нужно перейти в каталог с расширениями VSCode (Windows %USERPROFILE%\.vscode\extensions, Linux и macOS ~/.vscode/extensions), найти каталог leafvmaple.verilog-*, в файле out/command.js заменить строку

this.COMPILE_COMMANDS = "iverilog -o {fileName}.out {fileName}";

на строку

this.COMPILE_COMMANDS = "iverilog -g2012 -o {fileName}.out {fileName}";

По желанию можно добавить свои ключи компиляции.

Другое расширение для сборки и запуска через пользовательский интерфейс: dglog. Использует ключ -g2012 по умолчанию и складывает собранные файлы в отдельную директорию.

Last updated