Menu

Compilador Verilog Online

Escribe, ejecuta y comparte fragmentos de código, sin instalaciones.

main.v
Pulsa Ejecutar para ver la salida aquí.
PlusargsParámetros en tiempo de ejecución que se pasan al simulador — léelos en tu testbench con $value$plusargs o $test$plusargs.
ClaveValor

Escribe, compila y simula Verilog HDL en línea

Un compilador y simulador de Verilog online gratis. Escribe módulos en Verilog o SystemVerilog, arma un testbench, presiona Run y mira la salida de stdout junto con la forma de onda VCD renderizada. Sin instalación, sin Vivado, sin Quartus, sin toolchain que configurar. El editor abre con un testbench de contador con reloj, así puedes editar y ejecutar en segundos.

El código se compila con Icarus Verilog (iverilog) y se ejecuta bajo vvp en un contenedor aislado, así obtienes la semántica real de Verilog HDL: bloques always con reloj, asignaciones no bloqueantes, instanciación jerárquica de módulos, $display, $finish. Agrega $dumpfile y $dumpvars en tu testbench y la pestaña Waveform renderiza señales de un solo bit y buses de varios bits con un cursor arrastrable, transiciones y etiquetas de valor por señal. Los plusargs (+KEY=VALUE / +FLAG) llegan a tu testbench a través de $value$plusargs y $test$plusargs, así puedes barrer el periodo de reloj, la duración de la simulación y los flags sin tocar el código fuente.

Por qué este compilador Verilog es útil

  • Compilación y simulación instantáneas — escribe Verilog HDL, pulsa Ejecutar y ve la salida estándar y las formas de onda VCD en segundos.
  • Resaltado de sintaxis para Verilog y SystemVerilog con el mismo motor de editor que usa VS Code, con ámbito module/endmodule y autocompletado de palabras clave.
  • Visor de formas de onda integrado: emite $dumpfile + $dumpvars desde tu testbench y la pestaña Forma de onda renderiza señales, buses, transiciones y un cursor móvil con valores por señal.
  • Panel de plusargs para parámetros del testbench: controla +CYCLES, +PERIOD, +VERBOSE mediante $value$plusargs / $test$plusargs y vuelve a ejecutar sin reescribir el código.

Qué puedes construir en el playground de Verilog

  • Lógica combinacional — sumadores, multiplexores, ALUs — conectados en un testbench con verificaciones $display y feedback inmediato.
  • Diseños secuenciales con reloj — contadores, registros de desplazamiento, máquinas de estados finitos manejadas por always @(posedge clk), con formas de onda VCD para inspeccionar las transiciones de señales.
  • Barridos de parámetros: pasa los plusargs +CYCLES, +PERIOD o +VERBOSE para cambiar el comportamiento entre ejecuciones, igual que lo harías en la línea de comandos de iverilog/vvp.

Preguntas frecuentes sobre el compilador Verilog online

¿Qué es Verilog?
Verilog es un lenguaje de descripción de hardware (HDL) que se usa para modelar y simular circuitos digitales, desde puertas combinacionales sencillas hasta procesadores completos. Describes módulos, cables y registros en código, los compilas con un compilador de Verilog y corres un testbench para verificar el comportamiento. SystemVerilog es un superconjunto de Verilog que añade funciones de verificación. El playground acepta ambos.
¿El compilador Verilog online es gratuito?
Sí, el compilador y simulador de Verilog son gratis. Sin registro, sin licencia de Vivado o Quartus y sin toolchain que instalar: escribe un módulo y presiona Run.
¿Necesito instalar Icarus Verilog o alguna herramienta EDA?
No. Tu código se compila con iverilog y corre bajo vvp dentro de un contenedor aislado en el servidor. Tú escribes el código Verilog y presionas Run; el compilador y el simulador se encargan del resto.
¿Cómo veo las formas de onda de mi código Verilog?
Dentro de un bloque initial en tu testbench, llama a $dumpfile("dump.vcd") y $dumpvars(0, tu_modulo). Después de Run, la pestaña Waveform renderiza las señales — haz clic en cualquier punto de una traza para fijar un cursor y leer los valores de cada señal en ese instante.
¿Cómo escribo un testbench Verilog con plusargs?
Agrega filas en el panel Plusargs (por ejemplo CYCLES=10, VERBOSE) y se pasan al simulador como +CYCLES=10 +VERBOSE en la línea de comandos. En tu testbench, léelos con $value$plusargs("CYCLES=%d", n) para valores enteros, o $test$plusargs("VERBOSE") para flags booleanos. El código inicial por defecto muestra ambos patrones.