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.

Want the full 320+ question set?

This cheat sheet covers the basics — our Verilog interview question bank goes much deeper.

See Verilog questions