Menu
Coddy logo textTech

Compilador Verilog Online

Escreva, execute e compartilhe trechos de código — sem instalação.

main.v
Clique em Executar para ver a saída aqui.
PlusargsParâmetros em tempo de execução passados ao simulador — leia-os no seu testbench com $value$plusargs ou $test$plusargs.
ChaveValor

Escreva, compile e simule Verilog HDL online

Um compilador e simulador Verilog online gratuito. Escreva módulos em Verilog ou SystemVerilog, monte um testbench, clique em Run e veja a saída no stdout junto com a forma de onda VCD renderizada. Sem instalação, sem Vivado, sem Quartus, sem toolchain para configurar. O editor abre com um testbench de contador com clock, então dá pra editar e rodar em segundos.

O código é compilado com Icarus Verilog (iverilog) e roda sob vvp dentro de um contêiner isolado, então você tem a semântica real de Verilog HDL: blocos always com clock, atribuições não bloqueantes, instanciação hierárquica de módulos, $display, $finish. Adicione $dumpfile e $dumpvars ao seu testbench e a aba Waveform renderiza sinais de um bit e barramentos de múltiplos bits, com cursor arrastável, transições e valores por sinal. Os plusargs (+KEY=VALUE / +FLAG) chegam ao seu testbench via $value$plusargs e $test$plusargs, então dá para varrer período de clock, duração de execução e feature flags sem mexer no código-fonte.

Por que este compilador Verilog é útil

  • Compilação e simulação instantâneas — escreva Verilog HDL, clique em Executar e veja a saída padrão e as formas de onda VCD em segundos.
  • Realce de sintaxe para Verilog e SystemVerilog no mesmo motor de editor que o VS Code usa, com escopo module/endmodule e autocompletar de palavras-chave.
  • Visualizador de formas de onda integrado: emita $dumpfile + $dumpvars no seu testbench e a aba Forma de onda renderiza sinais, barramentos, transições e um cursor móvel com valores por sinal.
  • Painel de plusargs para parâmetros do testbench: passe +CYCLES, +PERIOD, +VERBOSE via $value$plusargs / $test$plusargs e execute de novo sem reescrever o código.

O que você pode construir no playground Verilog

  • Lógica combinacional — somadores, multiplexadores, ULAs — conectados em um testbench com verificações $display e feedback imediato.
  • Designs sequenciais com clock — contadores, shift registers, máquinas de estados finitos acionadas por always @(posedge clk), com waveforms VCD para inspecionar transições de sinais.
  • Varreduras de parâmetros: passe os plusargs +CYCLES, +PERIOD ou +VERBOSE para mudar o comportamento entre execuções, do mesmo jeito que faria na linha de comando do iverilog/vvp.

Perguntas frequentes sobre o compilador Verilog online

O que é Verilog?
Verilog é uma linguagem de descrição de hardware (HDL) usada para modelar e simular circuitos digitais, de portas combinacionais simples até processadores completos. Você descreve módulos, fios e registradores em código, compila com um compilador Verilog e roda um testbench para verificar o comportamento. SystemVerilog é um superconjunto de Verilog que adiciona recursos de verificação. O playground aceita ambos.
O compilador Verilog online é gratuito?
Sim, o compilador e o simulador Verilog são gratuitos. Sem cadastro, sem licença Vivado ou Quartus e sem toolchain para instalar — escreva um módulo e clique em Executar.
Preciso instalar Icarus Verilog ou alguma ferramenta EDA?
Não. Seu código é compilado com iverilog e executa sob vvp em um contêiner isolado no servidor. Você escreve o código Verilog e clica em Executar; o compilador e o simulador cuidam do resto.
Como vejo as formas de onda do meu código Verilog?
Dentro de um bloco initial no seu testbench, chame $dumpfile("dump.vcd") e $dumpvars(0, seu_modulo). Depois de rodar, a aba Waveform renderiza os sinais — clique em qualquer ponto de uma trilha para fixar um cursor e ler os valores de cada sinal naquele instante.
Como escrevo um testbench Verilog com plusargs?
Adicione linhas no painel Plusargs (por exemplo CYCLES=10, VERBOSE) e eles são passados ao simulador como +CYCLES=10 +VERBOSE na linha de comando. No seu testbench, leia-os com $value$plusargs("CYCLES=%d", n) para valores inteiros, ou $test$plusargs("VERBOSE") para flags booleanas. O código inicial padrão mostra os dois padrões.