The short answer: Verilog is a hardware description language (HDL): you use it to describe digital circuits, not to write a program that runs step by step. The same Verilog code is simulated to check that the design works, then synthesised into real logic gates for an ASIC or an FPGA. It’s standardised as IEEE 1364 and is now part of SystemVerilog (IEEE 1800), and it’s the most widely used HDL in the chip industry.
When I started with Verilog, the hardest part wasn’t the syntax. It was the mindset. Verilog looks like C, but almost nothing in it runs “line by line”. Every always block and every assign is a piece of hardware, and they all work at the same time.
This post is the first in my Verilog series. I’ll explain what Verilog is, how code becomes a chip, and how I’d learn it today.
- What a hardware description language does
- How Verilog code becomes a chip
- A short history
- Verilog, VHDL or SystemVerilog?
- Tools to start with
- How I’d learn Verilog: this series in order
Table of Contents
Part 1: What a hardware description language does
In software, you write instructions for a processor that already exists. In Verilog, you describe the processor (or any other circuit) itself: which wires connect where, which logic sits between them, and which flip-flops store state on each clock edge.
module and_gate (
input wire a,
input wire b,
output wire y
);
assign y = a & b; // this is a real AND gate, always active
endmodule
That assign isn’t executed once; it describes a gate whose output follows its inputs all the time. Keeping that picture in mind avoids most beginner mistakes.
Part 2: How Verilog code becomes a chip

- Simulation runs your design with a testbench and shows waveforms, so you can check it does what the spec says.
- Synthesis turns the RTL into a netlist of gates and flip-flops from a cell library (ASIC) or into LUTs and flops (FPGA).
- Implementation places and routes that netlist. For an ASIC it ends in a layout sent for fabrication; for an FPGA, in a bitstream.
Only a subset of Verilog can be synthesised. Things like delays (#10) and $display are for simulation and testbenches only. I’ll point these out as we go.
Part 3: A short history
- Verilog was created at Gateway Design Automation in the mid-1980s as a simulation language.
- Cadence acquired Gateway and later opened the language, and it became an IEEE standard: IEEE 1364-1995, revised in 2001 and 2005.
- In 2009 Verilog was merged into SystemVerilog (IEEE 1800), which adds features for design and, especially, verification. Today “Verilog” in job descriptions usually means the synthesisable core that both share.
Part 4: Verilog, VHDL or SystemVerilog?
| Verilog | VHDL | SystemVerilog | |
|---|---|---|---|
| Style | Compact, C-like | Verbose, strongly typed | Verilog plus many additions |
| Main use | RTL design | RTL design (FPGA, defence, Europe) | RTL design and verification (UVM) |
| Where it’s common | ASIC teams worldwide | FPGA and European companies | Almost every modern ASIC flow |
If you’re aiming for ASIC design or verification jobs, I’d learn Verilog first, then move to SystemVerilog. The concepts carry over directly.
Part 5: Tools to start with
- Icarus Verilog and Verilator: free simulators.
- GTKWave or Surfer: free waveform viewers.
- Yosys: free synthesis, great for seeing what your code turns into.
- VLSI Forge: I built it so you can write Verilog in the browser, run it on a real simulator and see waveforms without installing anything.
Part 6: How I’d learn Verilog: this series in order
Each post builds on the previous one, and each has small, synthesisable examples.
- What is Verilog?
- Verilog syntax, comments and numbers
- Verilog data types
- Verilog operators
- Modules, ports and hierarchy
- Levels of modelling in Verilog
- Dataflow modelling and continuous assignments
- initial and always blocks
- Blocking vs non-blocking assignments
- if, case and loops
- Writing combinational logic
- Flip-flops, latches, registers and counters
- FSMs in Verilog
- Delays and timing checks
- Tasks and functions
- parameter, localparam and define
- System tasks
- Coding guidelines for synthesisable RTL
Practise this on VLSI Forge
I built VLSI Forge so you can write RTL in your browser, run it on a real simulator and check every signal in the waveform. Free, nothing to install.
Next: Verilog syntax, comments and numbers.
FAQ
Is Verilog a programming language?
Not in the usual sense. It’s a hardware description language: it describes circuits that work in parallel, though its syntax looks like C.
How long does it take to learn Verilog?
The basics take a few weeks of regular practice. Writing clean, synthesisable RTL with confidence takes a few months of real designs.
Is Verilog still used?
Yes. It’s the base of SystemVerilog and the most common language for RTL design in the chip industry.
Do I need to know digital electronics first?
Yes, at least gates, flip-flops, counters and FSMs. Verilog describes hardware, so you need to know what hardware you want.

2 Comments
Nice article Raju, I am analog designer but interested to work in digital VLSI. What kind of digital electronics basics do I need to learn in order to start working with verilog? Is it possible to directly start using HDL for digital design?
Hi Vipul, start with digital design. If you’re good at digital design concepts, then verilog will be very interesting and easy to learn.