In Part 1 of this two-part series, we looked at the basics of
programmable logic: the structure of FPGAs and their utility
in digital system design. In this concluding part, we’ll explore
how FPGAs are actually used. This takes us into hardware
description languages (HDLs) used for configuring
programmable logic devices, and the hardware/software
environment used for application development.

Superficially, designing a digital circuit in an FPGA looks similar to programming a microcontroller. You write code that looks and feels much like writing code in any high level computer
programming language. VHDL code specifically bears a
strong resemblance to the software programming
languages PASCAL and Ada, because of historic reasons.

Making a Statement

In the case of an HDL, these statements reflect the
way the desired system is supposed to behave. The HDL
compiler makes use of the statements to work out the
circuit configuration needed to accomplish the desired
functionality. As a very simple example, a conditional
expression written in VHDL as
VHDL is an abbreviation that contains another
abbreviation inside it. VHDL stands for VHSIC Hardware

out_clk <= in_clk when ((bit1 AND bit2) = ‘1’);

Description Language, with VHSIC standing for Very High
Speed Integrated Circuit.

The names have only historic significance, but what is
really important while writing VHDL (or Verilog) code is to
keep in mind that you are writing the design description
for a digital system, not sequential instructions for
execution on a processor. This is in spite of the fact that
(which gates a clock signal) is equivalent to the circuit
layout shown in Figure 1.

HDL code is said to be written at the behavioral level,
i.e., it is written by the developer in a way that describes
the intended circuit function rather than as a circuit
description. The latter is derived from the former by the
HDL compiler.