Digital Design Using FPGAs
The first integrated circuits that were developed in the early 1960s contained less
that 100 transistors on a chip and are called small-scale integrated (SSI) circuits.
Medium-scale integrated (MSI) circuits, developed in the late 1960s, contain up to
several hundreds of transistors on a chip. By the mid 1970s large-scale integrated (LSI)
circuits containing several thousands of transistors had been developed. Very-large-scale
integrated (VLSI) circuits containing over 100,000 transistors had been developed by the
early 1980s. This trend has continued to the present day with 1,000,000 transistors on a
chip by the late 1980s, 10,000,000 transistors on a chip by the mid-1990s, over
100,000,000 transistors by 2004, and up to 1,000,000,000 transistors on a chip today.
This exponential growth in the amount of digital logic that can be packed into a single
chip has produced serious problems for the digital designer. How can an engineer, or
even a team of engineers, design a digital logic circuit that will end up containing
millions of transistors?
In Appendix C we show that any digital logic circuit can be made from only three
types of basic gates: AND, OR, and NOT. In fact, we will see that any digital logic
circuit can be made using only NAND gates (or only NOR gates), where each NAND or
NOR gate contains four transistors. These basic gates were provided in SSI chips using
various technologies, the most popular being transistor-transistor logic (TTL). These
TTL chips were the mainstay of digital design throughout the 1960s and 1970s. Many
MSI TTL chips became available for performing all types of digital logic functions such
as decoders, adders, multiplexers, comparators, and many others.
By the 1980s thousands of gates could fit on a single chip. Thus, several different
varieties of programmable logic devices (PLDs) were developed in which arrays
containing large numbers of AND, OR, and NOT gates were arranged in a single chip
without any predetermined function. Rather, the designer could design any type of
digital circuit and implement it by connecting the internal gates in a particular way. This
is usually done by opening up fuse links within the chip using computer-aided tools.
Eventually the equivalent of many PLDs on a single chip led to complex programmable
logic devices (CPLDs).
Field Programmable Gate Arrays (FPGAs)
A completely different architecture was introduced in the mid-1980’s that uses
RAM-based lookup tables instead of AND-OR gates to implement combinational logic.
These devices are called field programmable gate arrays (FPGAs). The device consists
of an array of configurable logic blocks (CLBs) surrounded by an array of I/O blocks.
The Spartan-3E from Xilinx also contains some blocks of RAM, 18 x 18 multipliers, as
well as Digital Clock Manager (DCM) blocks. These DCMs are used to eliminate clock
distribution delay and can also increase or decrease the frequency of the clock.