Professional Documents
Culture Documents
Electronics Industry
Provided By The University of Bolton
Home
About Us
Questions & Answers
Courses
Students
Links
Useful Tools
contact us contact tutor/group email to a friend accessibility options report a fault
Systems Design Using FPGAs
Unit Contents
Whilst each of these architectures have there own typical particular application area there is
also a certain degree of overlap where there is no clear cut decision as to which is the most
appropriate device for a particular application. For example some applications such as address
decoding could be implemented in both a CPLD and an FPGA however the implementation
within an FPGA would allow this to be implemented along with other functionality. In general
any function that can implemented in a smaller device can also be implemented in a more
complex device.
Programmable Logic Array (PLA) - This device has both programmable AND and OR
planes.
Field Programmable Logic Array (FPLA) - Same as PLA but can be erased and reprogrammed.
Programmable Array Logic (PAL) - This device has a programmable AND plane and a
fixed OR plane.
GAL - This device has the same logical properties as the PAL but can be erased and
reprogrammed
Figure 2 shows a general structure of an SPLD. The connection link across two wires can
either be pre-defined or programmable depending on the type of SPLD.
PLAs
These are the most configurable of the SPLDs. They consist of two levels of logic gates, an
array of AND gates and an array of OR gates, both arrays of which are user programmable.
The structure of a PLA allows any of it's inputs (and the complement of its inputs) to be
AND'ed together in the AND plane which will correspond to the product term of its inputs.
Also each output of the OR plane can be configured to give the logical sum of any outputs of
the AND plane. This structure allows the implementation of logic functions in the sum-ofproducts form. PLAs are particularly useful for large designs that require many common
product terms that can be used by several outputs. This is illustrated in Fig 3 showing that the
product term (a&b) is used by both the x and z outputs. The downside of the PLA device is
the price of manufacture and speed. This device has two levels of programmable links and
signals take a relatively long time to pass through programmable links as opposed to predefined ones.
PALS
The speed problems associated with the PLA were addressed with the development of the
PAL. The advantage of a PAL is that they are faster due to having only a single programmable
array. However this limits the number of product terms that can be OR'ed together. Because of
this, several variants of the device are produced with different numbers of inputs and outputs,
and different sizes of OR gate arrays. Also many PALs support registered or latched outputs
therefore if necessary the output can be stored in the flip-flop until the next clock edge and
sequential designs can be realised. The structure for such a device is shown in Fig 4.
SPLDs are often used for address decoding, where they have several clear advantages over the
7400-series TTL parts that they replaced. First is that one chip requires less board area, power,
and wiring than several do. Another advantage is that the design inside the chip is flexible, so
a change in the logic doesn't require any rewiring of the board. Rather, the decoding logic can
be altered by simply replacing that one PLD with another part that has been programmed with
the new design.
Most SPLD chips use fuses or non-volatile memory cells such as EPROM, EEPROM, or
Flash memory to store the logic design functionality.
The larger size of a CPLD allows you to implement either more logic equations or a more
complicated design. Most complex programmable logic devices contain macrocells with a
sum-of-product combinatorial logic function and an optional flip-flop. Complex
programmable logic devices feature predictable timing characteristics that make them ideal
for critical, high-performance control applications. Typically, CPLDs have a shorter and more
predictable delay than FPGAs and other programmable logic devices. Because they are
inexpensive and require relatively small amounts of power, CPLDs are often used in costsensitive, battery-operated portable applications. CPLDs are also used in simple applications
such as address decoding.
Because CPLDs can hold larger designs than SPLDs, their potential uses are more varied.
They are still sometimes used for simple applications like address decoding, but more often
contain high-performance control-logic or complex finite state machines. At the high-end (in
terms of numbers of gates), there is also a lot of overlap in potential applications with FPGAs.
Traditionally, CPLDs have been chosen over FPGAs whenever high-performance logic is
required. Because of its less flexible internal architecture, the delay through a CPLD
(measured in nanoseconds) is more predictable and usually shorter.
The logic blocks within an FPGA can be as small and simple as the macrocells in a PLD (a
so-called fine-grained architecture) or larger and more complex (coarse-grained). However,
they are never as large as an entire PLD, as the logic blocks of a CPLD are. The logic blocks
in an FPGA are generally nothing more than a couple of logic gates or a look-up table and a
flip-flop.
Because of all the extra flip-flops, the architecture of an FPGA is much more flexible than that
of a CPLD. This makes FPGAs better in register-heavy and pipelined applications. They are
also often used in place of a processor-plus-software solution, particularly where the
processing of input data streams must be performed at a very fast pace. In addition, FPGAs
are usually denser (more gates in a given area) and cost less than their CPLD cousins, so they
are the de facto choice for larger logic designs.
[ back to top ]
1.2.2 Simulation
In a typical design flow, the application developer will simulate the design at multiple stages
throughout the design process. The three general simulation stages are:
Behavioural simulation is performed before synthesis stage. May not be able to synthesise to
hardware.
Functional simulation is performed after the synthesis stage. Timing and analysis is based on
assumed gate and routing delays since the design has not yet been paced or routed.
Timing simulation is performed after design place and route. Based on actual back-annotated
timing delays and thus more accurate than functional simulation..
Simulation at these various stages allows the designer to test for problems before going on to
the next stage of development.
1.2.3 Synthesis
Synthesis or compilation only begins after a functionally correct representation of the
hardware exists. This hardware compilation consists of two distinct steps. First, an
intermediate representation of the hardware design is produced. This step is called synthesis
and the result is a representation called a netlist. The netlist is device independent, so its
contents do not depend on the particulars of the FPGA or CPLD; it is usually stored in a
standard format called the Electronic Design Interchange Format (EDIF)
1.2.5 Programming
Programming a particular FPGA or CPLD can begin once a bitstream file has been created.
This bitstream file contains the configuration pattern for the required design. The process of
downloading this bit stream depends on the chips underlying technology. Programmable logic
devices are similar to memory devices in that there are several underlying technologies. In
fact the same of names are used. The programming technologies are summarised below.
Non-volatile
o PROM
o EPROM
o EEPROM
o Flash
Volatile
o SRAM
Just like their memory counterparts, PROM and EPROM-based logic devices can only be
programmed with the help of a separate piece of lab equipment called a device programmer.
On the other hand, many of the devices based on EEPROM or Flash technology are in-circuit
programmable. In other words, the additional circuitry that's required to perform device
(re)programming is provided within the FPGA or CPLD silicon as well. This makes it
possible to erase and re-program the device internals via a JTAG interface or from an onboard embedded processor. (Note, however, that because this additional circuitry takes up
space and increases overall chip costs, a few of the programmable logic devices based on
EEPROM or Flash still require insertion into a device programmer.)
In addition to non-volatile technologies, there are also programmable logic devices based on
SRAM technology. In such cases, the contents of the device are volatile. This has both
advantages and disadvantages. The obvious disadvantage is that the internal logic must be
reloaded after every system or chip reset. That means you'll need an additional memory chip
of some sort in which to hold the bitstream. But it also means that the contents of the logic
device can be manipulated on-the-fly. In fact, you could imagine a scenario in which the
actual bitstream is reloaded from a remote source (via a network of some sort?), so that the
hardware design could be upgraded as easily as software.
[ back to top ]
SAQ
Attempt to answer these questions by use of the chapter notes and the internet and compare
your answers to the given solutions.
show solutions
[ back to top ]
Updated 06/07/2007 KS
Site Search
Go
Powered by Google
Site Map
Text & images 2009 The University of Bolton.