Menu
CoddyTech

Online Verilog Compiler

Write, run, and share code snippets. No setup required.

main.v
Click Run to see the output here.
PlusargsRuntime parameters passed to the simulator. Read them in your testbench with $value$plusargs or $test$plusargs.
KeyValue

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?

Verilog is a hardware description language (HDL) used to model and simulate digital circuits, from simple combinational gates up to full processors. You describe modules, wires, and registers in code, compile them with a Verilog compiler, and run a testbench to verify behavior. SystemVerilog is a superset of Verilog that adds verification features. The playground accepts both.

Is the online Verilog compiler free?

Yes, the Verilog compiler and simulator are free to use. No sign-up, no Vivado or Quartus license, and no toolchain to install - write a module and press Run.

Do I need Icarus Verilog or any EDA tool installed?

No. Your code compiles with iverilog and runs under vvp in a sandboxed container on the server. You write the Verilog source and press Run; the compiler and simulator handle the rest.

How do I view waveforms for my Verilog code?
Inside an 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.
How do I write a Verilog testbench with plusargs?

Add rows in the Plusargs panel (e.g. CYCLES=10, VERBOSE) and they're passed to the simulator as +CYCLES=10 +VERBOSE on the command line. In your testbench, read them with $value$plusargs("CYCLES=%d", n) for integer values, or $test$plusargs("VERBOSE") for boolean flags. The default starter code shows both patterns.

Useful tools for Verilog

Free, browser-based tools that pair well with the Verilog Playground, all part of Coddy.