FPGA Design from Scratch ยท Verilog & VHDL Side by Side

Part III: Hardware Description Languages

Describing circuits, not programs. Every construct is shown in both Verilog and VHDL so you can read either and choose one.

From text to silicon

A hardware description language is a way of writing down a circuit as text. Two programs read that text. A simulator runs it on your PC so you can watch the signals over time and check them with a testbench. A synthesiser turns it into a netlist, a list of FPGA primitives (LUTs, flip-flops, carry chains, block RAMs, DSP slices) and the wires between them. Implementation then places each primitive on a specific site of the chip and routes the wires, and the result is packed into a bitstream that configures the FPGA. The three chapters of this part teach the language; Part IV covers simulation in depth, and Part V the rest of the flow on the PYNQ-Z2.

HDL source.v / .vhdsimulation+ testbench โ†’ waveformsIcarus, GHDL, xsimwhole language allowedsynthesissynthesisable subsetnetlistLUTs, FFs, wiresplace & route+ constraints (.xdc)bitstreamโ†’ PYNQ-Z2Chapters 7โ€“9Part IVPart V (Vivado)
The same HDL source feeds two tools. Simulation checks behaviour; synthesis, place-and-route and bitstream generation turn the description into a configured FPGA. Only the synthesisable subset of the language survives the lower path.

Verilog and VHDL: a fair comparison

Verilog was created in 1984 at Gateway Design Automation as the language of a commercial simulator. After Cadence acquired Gateway, it opened the language, which was standardised as IEEE 1364 in 1995 (major revision 1364-2001). In 2009 it was merged into SystemVerilog(IEEE 1800), which adds many verification features and some convenient design ones. VHDL (VHSIC Hardware Description Language) came out of the US Department of Defense's VHSIC programme in the early 1980s, initially as a way to document the behaviour of the chips contractors delivered. It was standardised as IEEE 1076 in 1987, revised in 1993 and 2008 (and again in 2019). Both languages were designed for simulation first; synthesis tools later adopted a subset of each.

VerilogVHDL
Origin1984, Gateway Design Automation1980s, US DoD VHSIC programme
StandardIEEE 1364 (now part of IEEE 1800)IEEE 1076 (-1987, -1993, -2008, -2019)
Styleterse, C-like, case-sensitiveverbose, Ada-like, case-insensitive
Typingweak: bits and numbers mix freelystrong: explicit conversions required
Typical mistakessilent width truncation, signed/unsigned mixingverbose conversions, sensitivity lists
Common inUS industry, ASIC design, open-source toolsEurope, aerospace & defence, FPGA teams

Neither language is better in any absolute sense. Verilog lets you write less, and it lets you make some mistakes without noticing. VHDL makes you write more, and its type checker catches many of those mistakes before you simulate. Vivado accepts both and mixes them freely in one project, and the synthesised hardware is the same. Who uses which depends mostly on habit, region and industry, and many companies use both.

Learn to read both, write one
Every example in this course is shown in both languages, describing the same hardware cycle for cycle and checked by the same testbench results. You will meet IP cores, reference designs and colleagues in both, so learn to read either fluently. Then pick one to write in, whichever your lab, employer or project already uses, and get good at it. Moving from one to the other later is mostly a matter of syntax, because the hard part is thinking in hardware, and that is the same in both.

Chapters in Part III

Share:XRedditLinkedIn