Menu
Coddy logo textTech

Онлайн-компилятор Verilog

Пишите, запускайте и делитесь фрагментами кода — без установки.

main.v
Нажмите «Запустить», чтобы увидеть вывод здесь.
PlusargsПараметры времени выполнения, передаваемые симулятору — считайте их в тестбенче через $value$plusargs или $test$plusargs.
КлючЗначение

Пишите, компилируйте и симулируйте Verilog HDL онлайн

Бесплатный онлайн-компилятор и симулятор Verilog. Пишите модули на Verilog или SystemVerilog, подключайте testbench, нажимайте Run и смотрите вывод stdout вместе с отрисованной осциллограммой VCD. Никакой установки, никакого Vivado или Quartus, никакой настройки тулчейна. Редактор открывается с тестбенчем тактируемого счётчика — отредактировал, запустил, готово за пару секунд.

Код компилируется через Icarus Verilog (iverilog) и выполняется под vvp в изолированном контейнере, так что вы получаете настоящую семантику Verilog HDL: тактируемые always-блоки, неблокирующие присваивания, иерархическое инстанцирование модулей, $display, $finish. Добавьте $dumpfile и $dumpvars в тестбенч — и вкладка «Осциллограмма» отрисует однобитные сигналы и многобитные шины с перетаскиваемым курсором, переходами и подписями значений по каждому сигналу. Plusargs (+KEY=VALUE / +FLAG) приходят в тестбенч через $value$plusargs и $test$plusargs, поэтому можно менять период тактов, длительность прогона и флаги функций без правки исходника.

Чем удобен этот компилятор Verilog

  • Мгновенная компиляция и симуляция — пишите Verilog HDL, нажимайте «Запустить» и видите стандартный вывод и VCD-осциллограммы за секунды.
  • Подсветка синтаксиса для Verilog и SystemVerilog в том же редакторе, что и VS Code, со скоупом module/endmodule и автодополнением ключевых слов.
  • Встроенный просмотрщик осциллограмм: добавьте $dumpfile и $dumpvars в тестбенч, и вкладка «Осциллограмма» отрисует сигналы, шины, переходы и подвижный курсор со значениями по каждому сигналу.
  • Панель plusargs для параметров тестбенча: задавайте +CYCLES, +PERIOD, +VERBOSE через $value$plusargs / $test$plusargs и перезапускайте без правок исходного кода.

Что можно собрать в Verilog-плейграунде

  • Комбинационная логика — сумматоры, мультиплексоры, АЛУ — собранные в тестбенче с проверками $display и мгновенной обратной связью.
  • Тактируемые последовательностные схемы — счётчики, сдвиговые регистры, конечные автоматы на always @(posedge clk), с VCD-осциллограммами для анализа переходов сигналов.
  • Перебор параметров: задавайте plusargs +CYCLES, +PERIOD или +VERBOSE, чтобы менять поведение между запусками так же, как в командной строке iverilog/vvp.

Частые вопросы об онлайн-компиляторе Verilog

Что такое Verilog?
Verilog — это язык описания аппаратуры (HDL), который используется для моделирования и симуляции цифровых схем: от простых комбинационных вентилей до полноценных процессоров. Вы описываете модули, провода и регистры в коде, компилируете его компилятором Verilog и запускаете testbench для проверки поведения. SystemVerilog — это надмножество Verilog с дополнительными средствами верификации. Плейграунд принимает оба.
Онлайн-компилятор Verilog бесплатный?
Да, компилятор и симулятор Verilog бесплатны. Без регистрации, без лицензий Vivado или Quartus, без установки тулчейна — пишите модуль и нажимайте «Запустить».
Нужно ли устанавливать Icarus Verilog или другой EDA-инструмент?
Нет. Ваш код компилируется через iverilog и выполняется под vvp в изолированном контейнере на сервере. Вы пишете исходник на Verilog и нажимаете «Запустить»; всё остальное компилятор и симулятор берут на себя.
Как посмотреть осциллограммы своего Verilog-кода?
Внутри блока initial в тестбенче вызовите $dumpfile("dump.vcd") и $dumpvars(0, your_module). После Run вкладка Waveform отрисует сигналы — щёлкните в любом месте трассы, чтобы поставить курсор и считать значения по каждому сигналу в этот момент.
Как написать тестбенч Verilog с plusargs?
Добавьте строки в панели Plusargs (например, CYCLES=10, VERBOSE), и они передаются симулятору в командной строке как +CYCLES=10 +VERBOSE. В тестбенче читайте их через $value$plusargs("CYCLES=%d", n) для целых значений или $test$plusargs("VERBOSE") для булевых флагов. Стандартный стартовый код показывает оба варианта.