FREE DOWNLOAD

Verilog Essentials

A one-page quick reference for core Verilog syntax — data types, procedural blocks, module instantiation, and synthesis-safe constructs.

FREE PDF · NO SIGN-UP WALL

Get the full cheat sheet PDF

A printable, single-page version of this reference.

INSTANT EMAIL DELIVERY · FREE FOREVER
Get the PDF
QUICK REFERENCE

What's inside

Wire vs. Reg

wire for continuous assignments and combinational connections; reg for values assigned inside procedural blocks (always/initial) — it doesn't always mean a physical register.

always vs. initial

always blocks execute repeatedly on sensitivity-list triggers, used for both combinational and sequential logic. initial blocks execute once, used mainly in testbenches.

Module Instantiation

Prefer named port mapping (.clk(clk)) over positional mapping — it's more readable and safer against port-order changes.

Parameter vs. Localparam

parameter can be overridden at instantiation; localparam cannot — use it for values derived from other parameters that shouldn't be independently overridden.

Synthesizable Constructs

Avoid #delay statements, initial blocks (outside testbenches), and unconstrained for loops in RTL meant for synthesis.

Generate Blocks

Use generate/endgenerate with for or if to instantiate repeated or conditional hardware structures at compile time.

Ready to go past the basics?

This cheat sheet covers the essentials. The free Verilog question bank has 90+ questions with worked answers, and the ebook has 580, all answered.

See Verilog questions