You are on page 1of 42

Introduction to PLDs

CSET 4650
Field Programmable Logic Devices

Dan Solarek
Objectives

Review of Digital Systems


History of PLDs
Types of PLDs
Terminology

2
Some Basics

a combinational logic circuit is one where the


next output depends only on the current input

any number any number


of inputs of outputs
logic gates
AND, OR, NOT
(typically 7400 series SSI)
3
Some Basics

a sequential logic circuit is one where the next


output depends not only on the current input but
also on the sequence of past inputs

usually flip-flops
SR, JK, D, T

4
Some Basics

the design of a sequential logic circuit includes the


design of a combinational logic circuit

any number any number


of inputs of outputs
logic gates
AND, OR, NOT
(typically 7400 series SSI)
5
Purpose of this Course

This course is about logic circuit implementation


specification
X1 X2 Q1 Q2 Y Karnaugh Map
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0 circuit
0 0 1 1 0

?
0 1 0 0 1
0 1 0 1 1
0 1 1 0 x
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 x
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1
function
truth table
6
Logic Circuit Implementation

there are several options

Memory

SSI Gates MSI ICs

7
Logic Circuit Implementation

there are several options

U19-251641-02
PLA

Programmable Devices

8
Electronic Components
Logic

Standard
ASIC
Logic

Programmable
Logic Devices Gate Cell-Based Full Custom
(PLDs) Arrays ICs ICs

SPLDs
(PALs) CPLDs FPGAs

Acronyms Common Resources


SPLD = Simple Prog. Logic Device Configurable Logic Blocks (CLB)
PAL = Prog. Array of Logic Memory Look-Up Table (LUT)
CPLD = Complex PLD AND-OR planes
FPGA = Field Prog. Gate Array Simple gates
ASIC = Application Specific IC Input / Output Blocks (IOB)
Bidirectional, latches, inverters, pullup/pulldowns
Interconnect or Routing
Local, internal feedback, and global 9
How Do You Make a
“Programmable” Circuit?

One time programmable


Fuses (destroy internal links with current)
Anti-fuses (grow internal links)
PROM
Reprogrammable
EPROM
EEPROM
Flash
} non-volatile

SRAM - volatile
10
Programmable ROM (PROM)

First ones had fusible links


High voltage would blow out links
Fast to program
Single use

11
UV EPROM

Erasable PROM
Common technologies used UV light to
erase complete device
Took about 10 minutes
Holds state as charge in very well insulated
areas of the chip
Nonvolatile for several (10?) years

12
EEPROM

Electrically Erasable PROM


Similar technology to UV EPROM
Erased in blocks by higher voltage
Programming slower than reading
Some called flash memory
Digital cameras, MP3 players, BIOS
Limited life
Some support individual word write, some block
One on Xess board has 5 blocks
Has a boot block that is carefully protected

13
Details of ROM

Memory that is permanent


k address lines
2k items
a combinational
n bits logic circuit

14
Simple PLDs

15
Programmable Logic Device

A programmable logic device or PLD is an


electronic component used to build digital
circuits.
Unlike a logic gate, which has a fixed
function, a PLD has an undefined function
at the time of manufacture.
Before the PLD can perform in a circuit it
must be programmed.

16
Programmable Array Logic (PAL)

The first programmable logic devices were


produced by the Advanced Micro Devices
(AMD) corporation.
The devices were called PALs, for
programmable array logic.
The PLD business split from AMD under
the name Vantis, and was acquired by
Lattice Semiconductor in 1999.

17
Early PALs

The programmable array contains logic gates,


themselves fixed in function, with programmable
interconnections between them.
The array has a number of inputs and outputs, and
can create any Boolean function of a selection of
the inputs at any of its outputs.
A single PAL can replace a circuit containing a
large number, perhaps a few hundred, of fixed
logic gates.
18
Early PALs

In a PAL the logic gates are arranged as a


sum-of-products array.
In Boolean terms, this means a number of
AND gates whose outputs feed into a large
OR gate that drives one output.
By selecting which inputs drive each AND
gate, and which AND gates drive the OR
gate, any Boolean function can be created.

19
Early PALs

A PAL is programmed by fitting it into a


machine called a PAL programmer.
PAL programmers are usually general-
purpose machines that can program all
types of PLDs from all manufacturers.
A PAL may be programmed only once.

20
Early PALs

The PAL programmer must be supplied with a


description of the PAL's desired configuration.
This is usually in the form of a computer text file
with a standard format defined by the Joint
Electron Device Engineering Council (JEDEC).
JEDEC files can be hand-typed by the design
engineer or, more commonly, produced by a
computer program similar to the language
compilers used by software engineers.
21
Generic Array Logic (GAL)

An innovation of the PAL was the generic array


logic device, or GAL, invented by Lattice
Semiconductor Inc.
This device has the same logical properties as the
PAL but can be erased and reprogrammed.
The GAL is very useful in the prototyping stage of
a design, when any bugs in the logic can be
corrected by reprogramming.
GALs are programmed and reprogrammed using a
PAL programmer.

22
Programmable Electrically
Erasable Logic (PEEL)

A PEEL is a device similar to a GAL and


was introduced by the Integrated Circuit
Technology (ICT) corporation.
As the name implies, it differs from a GAL
or PAL in that it is electrically erasable
(reprogrammable)

23
Complex Programmable
Logic Devices (CPLDs)

Xilinx devices that are cheaper and have fewer


gates than FPGAs
Meant for interfacing rather than heavy
computation
Built-in flash memory
Instead of FPGA, which needs external
Xess bd. has XC9572XL part
Approx $2-$7 in one’s qty. (vs. ~$15-20 for the
Spartan2 on the board). Larger qty much lower.
1600 gates, 72 registers

24
Complex PLDs

PALs and GALs are available only in small sizes,


equivalent to a few hundred logic gates.
For bigger logic circuits, complex PLDs or
CPLDs can be used.
These contain the equivalent of several PALs
linked by programmable interconnections, all in
one integrated circuit.
CPLDs can replace thousands, or even hundreds
of thousands, of logic gates.

25
Complex PLDs

Some CPLDs are programmed using a PAL


programmer, but this method becomes
inconvenient for devices with hundreds of pins.
A second method of programming is to solder the
device to its printed circuit board, then feed it with
a serial data stream from a personal computer.
The CPLD contains a circuit that decodes the data
stream and configures the CPLD to perform its
specified logic function.
26
Complex PLDs

Each manufacturer has a proprietary name


for its CPLD programming system.
For example, Lattice calls it "in-system
programming".
However, these proprietary systems are
beginning to give way to a standard from
the Joint Test Action Group (JTAG).

27
Field Programmable Logic
Devices (FPGAs)

While PALs were busy developing into


GALs and CPLDs, a separate stream of
development was happening.
This type of device is based on gate-array
technology and is called the field-
programmable gate array (FPGA).

28
Field Programmable Logic
Devices (FPGAs)

Gate arrays are non-programmable devices that


can be manufactured more cheaply than other
types of IC, because they contain a standard grid
of logic gates whose interconnections are specified
by the customer.
When a customer orders a new type of chip, the
manufacturer does not have to design it from
scratch, but can just take a standard gate array and
modify it to the customer's requirement.
29
Field Programmable Logic
Devices (FPGAs)

FPGAs use a similar grid of logic gates, but


the programming is done by the customer,
not by the manufacturer.
The term "field-programmable" may be
obscure to some, but the "field" is just an
engineering term for the world outside the
factory where customers live.

30
Field Programmable Logic
Devices (FPGAs)

FPGAs are usually programmed after being


soldered down to the circuit board, in the
same way as larger CPLDs.
In most larger FPGAs the configuration is
volatile, and must be re-loaded into the
device whenever power is applied or
different functionality is required.

31
Field Programmable Logic
Devices (FPGAs)

FPGAs and CPLDs are often equally good


choices for a particular task.
Sometimes the decision is more an
economic one than a technical one, or may
depend on the engineer's personal
preference and history.

32
PLD Device Density and VLSI
Technology
Year 1995 1996 1997 2000 2003 2004 ?

Technology 0.6µ 0.35 µ 0.25 µ 0.18 µ 0.13 µ 0.07µ

100K LC*
8Mb RAM
Gate Count 25K 100K 250K 1M
400 18X18
multipliers

Transistor
3.5M 12M 23M 75M 430M 1B
Count

*note: Xilinx Virtex-II Pro XC2VP100 (9/16/2003)


33
How PLDs Remember Their
Configuration

A PLD is a combination of a logic device


and a memory device.
The memory is used to store the pattern that
was given to the chip during programming.
Most of the methods for storing data in an
integrated circuit have been adapted for use
in PLDs.

34
How PLDs Remember Their
Configuration

The methods for storing data in an


integrated circuit include:
silicon antifuses
static RAM (SRAM)
flash memory
EPROM cells

35
How PLDs Remember Their
Configuration - Antifuses

Silicon antifuses are the storage elements used in


the PAL, the first type of PLD.
These are connections that are made by applying a
voltage across a modified area of silicon inside the
chip.
They are called antifuses because they work in the
opposite way to normal fuses, which begin life as
connections until they are broken by an electric
current.
36
How PLDs Remember Their
Configuration - SRAM

SRAM, or static RAM, is a volatile type of


memory, meaning that its contents are lost
each time the power is switched off.
SRAM-based PLDs therefore have to be
programmed every time the circuit is
switched on.
This is usually done automatically by
another part of the circuit.

37
How PLDs Remember Their
Configuration - Flash

Flash memory is non-volatile, retaining its


contents even when the power is switched
off.
It can be erased and reprogrammed as
required.
This fact makes flash memory useful for
PLD memory.

38
How PLDs Remember Their
Configuration - EPROM

An EPROM cell is a MOS (metal-oxide-


semiconductor) transistor that can be switched on
by trapping an electric charge permanently on its
gate electrode.
This is done by a PAL programmer.
The charge remains for many years and can only
be removed by exposing the chip to strong
ultraviolet light in a device called an EPROM
eraser.
39
PLD Programming Languages

PLD programming languages


PALASM
ABEL
CUPL

40
Hardware Description Languages

The languages used as source code for logic


compilers are called hardware description
languages, or HDLs.
Examples of HDLS include:
VHDL
Verilog HDL
AHDL

41
Programmable Logic Solutions

No high development cost barriers


Recovered time for authoring and innovating
SW improvements reduce design iterations

No lengthy prototyping cycle


Ability to remotely upgrade any networked
system
Ultimate flexibility to manage rapid change

42

You might also like