Online Verilog Compiler
Write, run, and share code snippets — no setup required.
Click Run to see the output here.
$value$plusargs or $test$plusargs.Write, compile, and simulate Verilog HDL online
A free online Verilog compiler and simulator. Write Verilog or SystemVerilog modules, drive a testbench, press Run, and see stdout output plus a rendered VCD waveform. No install, no Vivado, no Quartus, no toolchain to set up. The editor opens with a clocked counter testbench so you can edit and Run in seconds.
Code compiles with Icarus Verilog (iverilog) and runs under vvp inside a sandboxed container, so you get real Verilog HDL semantics — clocked always blocks, non-blocking assignments, hierarchical module instantiation, $display, $finish. Add $dumpfile and $dumpvars to your testbench and the Waveform tab renders single-bit signals and multi-bit buses with a draggable cursor, transitions, and per-signal value pills. Plusargs (+KEY=VALUE / +FLAG) flow into your testbench through $value$plusargs and $test$plusargs, so you can sweep clock period, run length, and feature flags without editing the source.
What makes this Verilog compiler useful
- Instant compile and simulate — write Verilog HDL, press Run, and see stdout and VCD waveforms in seconds.
- Verilog and SystemVerilog syntax highlighting in the same editor engine VS Code uses, with module/endmodule scoping and keyword autocompletion.
- Built-in waveform viewer: emit $dumpfile + $dumpvars from your testbench and the Waveform tab renders signals, buses, transitions, and a movable cursor with per-signal value pills.
- Plusargs panel for testbench parameters: drive +CYCLES, +PERIOD, +VERBOSE through $value$plusargs / $test$plusargs and rerun without rewriting the source.
What you can build in the Verilog playground
- Combinational logic — adders, multiplexers, ALUs — wired up in a testbench with $display checks and instant feedback.
- Clocked sequential designs — counters, shift registers, finite state machines driven by
always @(posedge clk), with VCD waveforms to inspect signal transitions. - Parameter sweeps: drive +CYCLES, +PERIOD, or +VERBOSE plusargs to change behavior between runs, the same way you would on the iverilog/vvp command line.
Online Verilog compiler FAQ
What is Verilog?
Is the online Verilog compiler free?
Do I need Icarus Verilog or any EDA tool installed?
How do I view waveforms for my Verilog code?
initial block in your testbench, call $dumpfile("dump.vcd") and $dumpvars(0, your_module). After Run, the Waveform tab renders the signals — click anywhere on a trace to drop a cursor and read per-signal values at that time.