Programmable Logic Devices
Programmable Logic Devices
[Lecture Notes for BEE-III, Electrical Engineering Department, Jadavpur University, Kolkata. Prepared
by Biswajit Bhattacharyya.]
biswajitb
Each of the ICs of this group has some specific functions and can be used for specific
objectives. ICs for timers and counters may be used as a part of sequential circuit; ICs for
arithmetic operations (e.g., full adder) may be used as a part of combinational circuit.
Designer can select from available ICs for design and development purpose.
Some examples of fixed function ICs are mentioned below:
ICs for Timers & Counters
ICs for Arithmetic operations
ICs for Logical operations
ICs for Control operations
ICs as Memory
ICs for Customized functions
2
biswajitb
● Features:
1. ASICs are designed by users to meet specific requirements.
2. These are produced by IC-manufacturer from foundry level as per the
specifications supplied by user.
3. Designs are too complex to be implemented using fixed function ICs.
◙ Advantages:
1. Reduced space requirement
2. Reduced power requirement
3. Per unit cost is quite low for large scale production
4. Almost copy-protect implementation
◙ Disadvantages:
1. Initial development cost may be enormous
2. Testing method may have to be developed that adds to the cost and effort
3. Quite costly for small volume of production
4. Existing design may be upgraded, but during implementation, the entire process
starts from foundry shop. Hence, up gradation may not be cost-effective.
1. These are the ICs of ‘regular structure’ over its dimensions and allow the designer
to customize it for any specific application, i.e., the function of the IC is user
programmable.
2. ‘Regular structure’ or ‘general structure’ contained within a PLD may vary
widely although the ultimate logic function offered by combination of these
structures as a result of a particular program is same.
3. Earlier versions of PLDs were One-Time-Programmable (OTP). Later,
ReProgrammable (RP) PLDs were developed.
◙ Advantages:
3
biswajitb
Functional block:
Fig-1
Fig:-2
4
biswajitb
If the switches D00, D03, D12, D13, D21 and D33 are programmed as closed, then:
column
Fig:-3
5
biswajitb
Dij 0 0 0 0 1 0000 m0
Dij 1 1 0 0 1 1100 m12
Dij 1 0 0 1 1 1001 m9
Dij 1 1 0 1 1 1101 m13
Dij 0 1 1 0 1 0110 m6
Dij 1 1 1 1 1 1111 m15
For all other combination of A3, A2, A1, A0, output will be zero. Thus, the logic function
for output will be:
Y = ∑m(0,6,9,12,13,15)
Y A0 A1 A2 A3 A0A1 A2 A3 A0 A1 A2A3 A0 A1A2 A3 A0 A1A2 A3 A0 A1 A2 A3
. ◘ Programmable Switches:
Along with the basic structures, programmable switches are an integral part of PLDs, and
of all later versions of programmable hardware.
For PLDs programmable switches may be of the following form:
6
biswajitb
Physically, each of the switches will be a fuse that can be blown off by applying a high
current through the switch. Fuse materials may be:
a) Nichrome
b) Polycrystalline silicon
The process AIM is the Avalanche Induced Migration process. The switch may be
implemented through diodes in avalanche breakdown, or through bipolar transistors.
c
row o
l
u
m
n
Fig:-5
A high current (200mA – 300mA) and high voltage in reverse-biased diode
causes an avalanche breakdown of the diode, thereby permanently shorting
(connecting) the ‘row’ and ‘column’ terminals. Corresponding memories
containing these switches are of OTP technology.
c
row o
Vcc l
u
m
n
programmable
link (fuse)
Fig:-6
From the figure, it is evident that as long as fuse-link is kept intact, row
remains connected to column.
7
biswajitb
These mechanisms, however, do not work with MOS memory devices, where
resistance and current levels required for the fusing process are incompatible
with MOS impedance levels.
Fig:-7
Commonly used MOS technologies for the fabrication of programmable memories are:
a) FAMOS
b) MAOS
Fig:-8
8
biswajitb
Device programming:
Fig:-9
i) Apply negative voltage to both the source (VSX) and the drain (VDX), for
inducing avalanche breakdown at both junctions.
ii) Simultaneously, apply a positive voltage to second gate G2 (VG2S).
The step (i) causes electrons to be injected into floating gate, while the step (ii)
accelerates the accumulation of charge at the gate. As electrons accumulate on the
floating gate, the channel appears between the source, and the device turns on.
When the applied voltage is removed, the charge remains trapped in the gate, since no
discharge path is available for the accumulated electrons because the gate is surrounded
by a very low-conductivity dielectric. The transistor now behaves as if an external
voltage were permanently connected to the gate terminal.
For the purpose of erasing, i.e., removing charge from gate, procedures will be:
This results in the accumulation of holes on the floating gate, which neutralizes existing
charge. Thus, erasing is carried out electrically.
9
biswajitb
Instead of erasing electrically, the charge accumulated on the gate can be removed by
illuminating the FAMOS device with ultraviolet light. This results in the flow of a photo
current from the floating gate back to the silicon substrate, thereby discharging the gate.
These devices are called Erasable Programmable Read-Only Memory (EPROM) devices.
Here, erase gate does not exist.
These devices are packaged with a transparent quartz lid for exposing the device to UV
radiation, for the purpose of erasing. In case the device is packaged in inexpensive
package without quartz lid, it works as an OTP ROM which is same as a PROM.
Another type of PROM uses the gate dielectric, such as alumina (Al2O3) and silicon
nitride itself, for charge storage and provides a reprogramming feature. This device is
known as MAOS memory element.
Fig:-10
For a p-channel device, a positive gate voltage of about 50V amplitude is required for 10
– 20 μs, for programming. Erase requires a voltage of opposite polarity on the gate.
10
biswajitb
It is used as another programmable switch, but mostly used in later versions of PLDs.
______
When Ax = 1, the cell is connected to Data and Data line.
When Ay = 1, T7 and T8 are on.
Asserting W = 1 will make T9 on.
Din Dout
SRAM Cell
Ax Ay
Fig:-12
11
biswajitb
This cell stores single bit per cell, and the bit can be used as an input to a programmable
switch for closing / opening the same. Pictorially,
row
Pass gate
l
el
C
AM column
SR
Fig:-13
When zero is stored in cell, pass transistor provides high resistance between two wire
segments.
For SRAM cells used in multiplexers (MUX), combination of bit values in cell selects the
particular input line which gets connected to the output. This is shown in figure below:
Cell 0
MUX
Cell 1
Fig:-14
1. At least five transistors are required to implement a memory cell. Hence, space
consumption is more for a given memory capacity.
2. SRAM cell is prone to radiation hazard, and hence is not suitable for space
application.
1. ROM
2. PROM / EPROM / EEPROM
3. Programmable Logic Array (PLA)
4. Programmable Array Logic (PAL)
They are, in general, called as simple PLDs (SPLDs).
12
biswajitb
Evidently, there can be 2p bit combinations at the input. Each combination is called an
address. Thus, 2p distinct addresses are possible at input for each of which data of N bit
length are available at the output side. Therefore, effectively there are 2p memory
locations as maximum and each of the location can store a data of N-bit length. In
general, all the memory locations may not be present in a given ROM structure. Thus, the
size of ROM may be specified as M x N, where M ≤ 2p.
The number of AND and OR gates, and their inputs are fixed for a given PLA chip. The
block diagram of a PLA structure is shown below:
In the diagram as shown above, there are M inputs. Hence, 2M minterms are available as
maximum. But, for a practical PLA, number of available minterms is generally less than
2M, say ‘n’. Each of the logic functions can have n minterms maximum, and such N
number of logic functions generate a total of N outputs. Thus, the PLA becomes a M-
input, N-output programmable hardware.
Since all of the possible 2M minterms are not available, logic minimization may be
applied to construct a given logic function.
● Input Buffer:
Fig: a) Fig: b)
Fig:-17
Buffers are required to avoid loading of the input sources. It draws low current and
delivers relatively high current. Fig b) is the symbol of inverters shown in Fig a), where
two complementary outputs are generated against a single input. Such M complementary
pair of signals are generated using M number of blocks.
● AND Matrix:
14
biswajitb
In an un-programmed AND matrix, all the input lines are connected to all output lines
through fuse-links, or programmable switch. Fuse may be blown off to disconnect the
diode from resistor terminal thereby making the existence of diode insignificant in the
circuit. This type of programming is permanent in nature as the fuse condition cannot be
restored to its original healthy condition. This programming, therefore, is called OTP
(One-Time Programming). The Fig. as shown above can be represented in a way shown
below:
Fig:-19
15
biswajitb
If any one of the inputs is zero, the corresponding diode with its healthy fuse (or
connected switch) along the input line will get a zero volt at its cathode, and therefore
will start conducting current from +Vcc to the input. The corresponding output line will
be drawn in to a zero potential, irrespective of the state of other inputs connected to the
output line.
Fig:-21
In Boolean representation,
P I 0 I 0 I 1 I 1 ... I M 1 I M 1 .
Here, each of AND gates has 2M inputs. An ‘x’ mark represents an interconnection
between input and output, which is entirely programmable. Absence of ‘x’ mark (not
shown in this Fig) indicates that the corresponding row and column are left unconnected.
‘n’ product terms are available as output.
The array of AND gates form what is called AND plane. The corresponding matrix
formed by the rows and columns is called AND matrix. A compact representation of
AND matrix is shown below:
16
biswajitb
Fig:-22
● OR Matrix:
A sample OR matrix is shown below. There are n product terms as input. These terms,
after OR operation, gives rise to N outputs.
Fig:-23
If any one of P inputs is at logic 1, all the transistors in the particular column of that P-
line become on. Transistors, containing healthy fuses (or, closed switches) connect Vcc
17
biswajitb
line to their emitter side. The respective S-outputs, connected to these emitter sides,
therefore, get connected to Vcc supply. This means that when any one of P-columns is at
logic one, a transistor with healthy fuse (or, closed switch) raises the entire row to logic
one, irrespective of the statuses of other P-columns. Effectively, this is an OR operation
and may be represented as:
S P0 P1 ... Pn 2 Pn 1
When the link (i.e., fuse or switch whichever is applicable) is broken, that particular P-
term vanishes from the respective S-output. The following Fig represents this feature in
compact form:
Fig:-24
Fig:-25
Fig:-26
18
biswajitb
Here, each of OR gates has n inputs. An ‘x’ mark represents an interconnection between
input and output, which is entirely programmable. Absence of ‘x’ mark (not shown in this
Fig) indicates that the corresponding row and column are left unconnected. n product
terms are available to use as input and N sum terms are available as output.
The array of OR gates form what is called OR plane. The corresponding matrix formed
by the rows and columns is called OR matrix. A compact representation of AND matrix
is shown below:
Fig:-27
Combination of AND plane and OR plane form a programmable matrix as shown below:
Fig:-28
19
biswajitb
In general, the representation of programmable matrix does not contain AND / OR gates.
Pictorially, this is:
Fig:-29
The output from OR plane often contains inverters, output buffers, flipflops etc.
Fig:-30
20
biswajitb
● Output buffers:
Output buffers are required to increase the driving capability of the PLA. The output may
be totem-pole (active pull-up), open-collector (passive pull-up) or three-state. A three-
state buffer is shown below:
Fig:-31
Sometimes flipflops are connected at the final stage in order to implement sequential
logic. The relevant circuit is
Fig:-32
21
biswajitb
Fig:-33
The two outputs, sum and carry, may be expressed in terms of inputs as
S ABC ABC ABC ABC
Cy AB BC CA
When PLAs were introduced in the early 1970s by Philips, their main drawbacks were
that they were expensive to manufacture and offered somewhat poor speed performance.
Both disadvantages were due to the two levels of configurable logic, because
programmable logic planes were difficult to manufacture and introduced significant
propagation delays.
22
biswajitb
Pictorially, this is
Fig:-35
☺Note:
The figure shown below demonstrates one feedback scheme. Some of the outputs from
OR plane re-circulates via AND plane and are again available as outputs from other OR
gates.
23
biswajitb
Fig:-36
#. A sample macrocell:
Generally, a macrocell contains a multiplexer (MUX) along with other elements like
logic gates, flip-flops etc.
A multiplexer is an n-input 1-output device where only one input out of n available goes
to output. Pictorially this is
Fig:-37
24
biswajitb
Fig:-38: A Macrocell
The fuses (alternatively switches) may be intact or opened. Accordingly, the macrocell
takes following forms:
Fig-(a) Fig-(b)
Fig-(c) Fig-(d)
Fig:-39: Various forms of a single macrocell
25
biswajitb
Two of the most popular SPLDs (Simple PLDs) are the PALs produced by Advanced
Micro Devices (AMD) known as the 16R8 and 22V10. Both of these devices are industry
standards and are widely second-sourced by various companies.
The name ‘16R8’ means that the PAL has a maximum of 16 inputs (there are 8 dedicated
inputs and 8 inputs / outputs), and a maximum of 8 outputs. The ‘R’ refers to the type of
outputs provided by the PAL and means that each of the outputs is ‘registered’ by a D
flip-flop.
Similarly, the ‘22V10’ has a maximum of 22 inputs and 10 outputs. Here, the ‘V’ means
that each output is ‘versatile’ and can be configured in various ways – some
configurations registered and some not.
Another widely used and second sourced SPLD is the Altera Classic EP10. This device is
similar in complexity to PALs, but it offers more flexibility in the way the outputs are
produced and has longer AND, OR planes. In the EP610, outputs can be registered and
the flip-flops are configurable as any of D, T, JK, or SR.
There are also other companies that offer SPLD including ICT, Lattice, Cypress, and
Philips-Signetics.
CPLDs were pioneered by Altera, first in their family of chips called classic EPLDs
(Enhanced PLDs), and then in additional series, called MAX 5000, MAX 7000 and MAX
9000.
26
biswajitb
Fig:-40
27
biswajitb
This CPLD consists of a programmable circuit called Logic Array Block (LAB),
Programmable Interconnect Array (PIA) acting as a switch matrix to couple various
LABs in various fashions, and I/O Block to communicate with outside world.
Fig:-41
1) A LAB can be thought of as a complex SPLD-like structure, and so the entire chip can
be considered to be an array of SPLDs.
4) MAX 7000 devices are based on EPROM and/or EEPROM technology. Therefore,
after the CPLD is powered-off and restarted again, the last configuration of the devices is
restored.
28
biswajitb
Fig:-42
8) The product select matrix provides required switching from AND matrix or from local
LAB interconnect, towards OR-gate.
9) As typical logic functions do not need more than five product terms, MAX 7000 series
LAB is very efficient in terms of chip area.
29
biswajitb
◘ 7200 series:
1) These are moderately small devices, with about 600 to 1500 gates capacity.
4) Each macrocell includes two OR-gates each of which is input to a two-bit Arithmatic
Logic Unit (ALU).
5) The ALU can produce any functions of its two inputs, and its output feeds a
configurable flip-flop.
◘ 7300 series:
It is an enhanced version of 7200 series, offering more logic capacity (upto 3000 gates)
and higher speed performance.
◘ XC9500 family:
It offers a logic capacity of 6200 logic gates, offers in-circuit programmability with 5 ns
pin-to-pin delays.
■ Programming a CPLD:
1) Out-of-board programming:
When the chip has relatively small number of pins and can therefore be taken out of the
circuit board without much of inconvenience this technique is used. Here, the chip is put
in a programming unit (called programmer). This technique is also called out-of-circuit
programming.
In case of CPLDs, instead of relying on a programming unit to configure a chip, the chip
is programmed while it is attached to the circuit board itself. This method of
programming is called In System Programming / In-circuit Programming.
30
biswajitb
1) CPLDs may have large number of pins (may even exceed 200) on the chip package,
and these pins are fragile and easily bent.
2) A socket is required to hold the chip in a programming unit. For large CPLDs the
packages used are very expensive, sometimes more expensive than the CPLD device
itself. The whole process of out-of-board programming is therefore complex and costly.
Fig:-43
This design entry is the only step performed manually by the designer – all other steps are
carried out automatically by most of the CAD systems.
31
biswajitb
All the designs are combined together and translated in to a form that can be used
subsequently for next stage processing.
c) Optimization of Equations:
The logic equations thereby formed are optimized through the use of certain algorithm.
The resulting equation is simplified in terms of number of logic gates and flip-flops,
interconnection among various circuit-elements etc.
d) Device Fitter:
Fitting into CPLD means that the logic equations are expressed and implemented through
the resources available within the hardware. In this stage hardware is not configured
physically. The detailed mapping of hardware, reflected in CAD software, is used to fit
equations in simulation environment to test whether the practical fitting is possible.
The device fitting consists of following steps:
Basic logic blocks developed in a program are mapped into available logic
blocks of the targeted hardware, in software environment.
If the available logic blocks are more than the blocks used in program,
which is the most frequent cases, some predefined algorithm is used to
select actual blocks over chip area.
A ‘router’ program is used to allocate interconnect wires to connect
various blocks of the targeted hardware.
Programmers sometimes impose pin-constraints and / or time-constraints.
Drive strength sets the worst case minimum current that will be available.
Worst case is measured at hottest temperature, worst (slowest) process,
and lowest IO voltage.
32
biswajitb
If the constraints are not fulfilled during device fitting (all being done in
software environment), an error message is conveyed regarding failure of
fitting.
Fitting is nothing but generating configuration bits for programmable switches in order to
open or close them. The configuration bits are stored in a file called configuration file
which acts as fuse map specifying the state of each switch in the targeted hardware.
e) Simulation:
Fig-44
f) Program Downloading:
This is the last step for configuring the hardware as per the program. The circuitry on the
hardware, that allows In-System-Programming (ISP) has been standardized by the IEEE
and is usually called a JTAG port. In case of ISP technique, a small connector is included
in the Printed Circuit Board (PCB) containing hardware. This connector along with the
required circuitry is the JTAG port. JTAG stands for Joint Test Action Group. A cable,
called JTAG cable, runs from JTAG port to the port of a computer. The latter may be a
COM port, LPT port, or a USB port (of growing use). The JTAG cable contains six wires
of which four wires are used to transfer information between the computer and the device
being programmed. These six pins are:
i. TCK (clock) - Test clock
ii. TDI (data input) - Test data input
iii. TDO (data output) - Test data output
iv. TMS - Test mode select input
v. Vcc - Power supply
vi. GND - Ground
33
biswajitb
Fig-45
Fig:-43
Fig-46
■ Applications of CPLDs:
1) CPLDs can realize reasonably complex designs, such as graphics controller, LAN
controllers, UARTs, cache control, and many others. As a general rule of thumb, circuits
that can exhibit wide AND / OR gates, and do not need a very large number of flip-flops
are good candidates for implementation in CPLDs.
2) A significant advantage of CPLDs is that they provide simple design changes through
re-programming. With in-system programmable CPLDs it is even possible to reconfigure
hardware without power-down. An example in this respect might be to change a protocol
for communication circuit.
34
biswajitb
◘ Disadvantages:
2) CPLD is suited for implementing combinational and sequential circuits. It, however, is
not optimized for fabricating RAM / ROM within it.
Logic chips that are programmed through Mask-based technologies are called Mask
Programmable Gate Arrays (MPGAs). MPGAs consist of an array of pre-fabricated
transistors that can be customized into the user’s logic circuit by connecting the
transistors with custom wires. Customization is performed during chip fabrication by
specifying the metal interconnect. This means that in order for a user to employ an
MPGA a large setup cost is involved and manufacturing time is long.
An FPGA differs from CPLDs (and obviously from SPLDs) and MPGAs on following
aspects:
1. FPGA configuration is performed through programming by the end user, using CAD
tool. This tool offers lot of flexibilities in the development process of a design and user-
specified constraints can be tackled quite easily.
3. FPGA has extremely high logic capacity, even much higher than CPLDs of largest
logic capacity, in terms of number of equivalent gates as well as in terms of complexity
level of each low-level gate.
4. Memory blocks exist as in-built structure within chip, unlike CPLDs. Thus, along with
implementation of logic functions, a full-fledged processor may be implemented using
FPGA.
5. Presence of internal clock source within FPGA eliminates the need of external
oscillator while designing sequential circuit.
35
biswajitb
■ Switching Technologies:
Programmable switches may be of following types:
1) SRAM based - already discussed.
2) Antifuse based
When FPGAs are powered off, configuration bits stored in RAM of FPGAs are
automatically erased.
Next time when power comes, FPGA cannot run since the programmable switches have
no more defined status, hence the connectivity too.
Thus, configuration bits need to be reloaded every time the system is powered up. This
reloading may be done by JTAG cable either from some computer or from other
equivalent devices (like E2PROM etc.), or there may be an automatic loader for this
purpose.
Lattice semiconductor, therefore, has constructed a two layer memories, the top layer
being the E2PROM containing the program (or, configuration bits permanently). The
bottom layer (or, running layer) containing SRAM reloads every time the power comes
up, the configuration bits from the top layer and runs subsequently.
◙ Disadvantages:
1. Loading of E2PROM is slow.
2. Loading of SRAM layer from E2PROM is slow because of slow speed of RAM.
4. Hence, Quicklogic has removed SRAM layer and developed fast E2PROM, a
costly alternative used many where, e.g., in space applications.
● Antifuse:
36
biswajitb
An antifuse is an electrical device that performs the opposite function to a fuse. Whereas
a fuse starts with a low resistance and is designed to permanently break an electrically
conductive path (typically when the current through the path exceeds a specified limit),
an antifuse starts with a high resistance and is designed to permanently create an
electrically conductive path (typically when the voltage across the antifuse exceeds a
certain level). Antifuses are suitable for FPGAs because they can be built using modified
CMOS technology. As an example, Actel’s antifuse structure, known as PLICE, is
depicted in the figure above.
The figure shows that an antifuse is positioned between two interconnect wires and
physically consists of three sandwiched layers: top and bottom layers are conductors, and
the middle layer is an insulator. When unprogrammed, the insulator isolates the top and
bottom layers, but when programmed the insulator changes to become a low-resistance
link.
PLICE uses Poly-Si and n+ diffusion as conductors and ONO as an insulator, but other
antifuses rely on metal for conductors, with amorphous silicon as the middle layer.
Quick logic’s antifuse structure, called ViaLink, consists of a top layer of metal, an
insulating layer of amorphous silicon, and a bottom layer of metal. When compared to
Actel’s PLICE antifuse, ViaLink offers a very low on-resistance of about 50 ohms
(PLICE is about 300 ohms) and a low parasitic capacitance.
Following table shows most important characteristics of the programming technologies.
The left-most column of the table indicates whether the programmable switches are One-
Time Programmable (OTP), or can be Re-Programmable (RP). The next column lists
whether the switches are volatile, and the last column names the underlying transistor
technology.
37
biswajitb
FPGA Structure
The structure of FPGA consists of logic block as its logical unit. This logic block can be
as simple as a transistor or as complex as a microprocessor. It is typically capable of
implementing many different combinational and sequential logic functions. Current
commercial FPGAs employ logic blocks that are based on one or more of the following:
1) Transistor pairs
2) Basic small gates such as two-input NANDs or exclusive-Ors.
3) Multiplexers
4) Look-up tables (LUTs)
5) Wide fan-in AND-OR structures
For all the logic blocks mentioned above it will be shown how the logic functions:
f a.b c
can be implemented with different circuit realizations.
The FPGA from Crosspoint solutions uses a single transistor pair in the logic block as
shown below:
Fig:-50
Fig:-51
A series of transistor pairs run parallel of which some pairs are taken for interconnecting
among themselves, rests being kept isolated.
38
biswajitb
39
biswajitb
● A transistor like 1 through 5 can be used as a closed switch when corresponding base
terminal receives logic 1.
● A transistor like 1 through 5 can be used as a closed switch when corresponding base
terminal receives logic 0.
Now,
40
biswajitb
Thus, when c 1, f 1.
As a whole, f a.b c
41
biswajitb
In order to implement f a.b c , Actel Act-1 logic block is used here as an example. It
consists of three multiplexers and one logic gate and has a total of 8 inputs and one
output.
__ __ __________
Here, P S1 .x S1 .w , Q S 2 .z S 2 . y And f S 3 S 4 .Q S 3 S 4 .P
__
__________ __
Hence, f S 3 S 4 . S 2 .z S 2 . y S 3 S 4 . S1 .x S1 .w
By setting each of the variables to an input signal, or to a constant, 702 logic functions
can be realized.
In the present case, by setting w = 1, x = 1, S1 = 0, y = 0, z = a, S2 = b, S3 = c and S4 = 0,
the function f a.b c is realized.
The Act-2 logic block is similar to Act-1, except that the separate multiplexers on the first
row are joined and connected to a Two-point AND gate as shown.
42
biswajitb
The Act-2 combinational logic module can implement 766 logic functions.
Note:
Multiplexer – based logic blocks have the advantage of providing a large degree of
functionality for a relatively small number of transistors.
This is, however, achieved at the expense of a large number of inputs, which when
utilized, place high demands on the routing resources. Such blocks are, therefore, more
suited to FPGAs that use programmable switches of small size such as antifuses.
A lookup table is an array of output against another array of input combinations with one-
to-one correspondence between them. SRAM is used mainly as programmable switch.
The truth table for a k – input logic function is stored in a 2k x 1 SRAM.
The address lines of the SRAM function as inputs and the output of the SRAM provides
the value of the logic function. The example of f a.b c is shown below.
a b c f
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
It is seen from the truth table that the bit – 1 is stored in cells with addresses 000, 010,
100, 110 and 111 only. Effectively, this is a memory of capacity 8 x 1.
43
biswajitb
The advantage of Lookup Tables is that they exhibit high functionality – a k-input LUT
k
can implement any function of k-inputs and there are 2 2 such functions.
The disadvantage is that they are unacceptably large for more than about five inputs,
since the number of memory cells needed for a k-input lookup table is 2k.
While the number of functions that can be implemented increases very fast, these
additional functions are not commonly used in logic designs and are also difficult to
exploit for a logic synthesis tool. Hence, it is often the case that a large LUT will be
largely underutilized.
The architecture of some FPGAs has evolved from the PLA based architecture of
traditional PLDs with its logic block consisting of wide fan-in (20 to over 100 inputs)
AND gates feeding into an OR gate with three to eight inputs.
44
biswajitb
Using the floating gate transistor-based programmable switch, any vertical wire passing
by an AND gate can be connected as an input to the gate.
The advantage of this type of block is that the wide AND gate can be used to form logic
functions with few levels of logic blocks, reducing the need for programmable
interconnect.
It is difficult, however, to make efficient use of all of the inputs to all of the gates,
resulting in loss of density.
Another disadvantage of the wired-AND configuration is the use of pull-up devices that
consume static power. An array full of these pull-ups will consume significant amount of
power. To mitigate this, each gate in the MAX 7000 series block can be programmed to
consume about 60% less power but at the expense of about 40% increase in delay. This
feature can be used in non-critical paths to reduce power consumption.
Nowadays, logic blocks of FPGAs are getting more complicated to eliminate various
disadvantages encountered in any particular form as mentioned above. These blocks
consist of features which are the result of combination of various architectures. As an
example, Altera FLEX 8000 contains logic element that consists of LUTs, sequential
circuit (flip flop) and multiplexers. AT & T ORCA FPGA contains LUTs, multiplexers
and sequential circuits.
Three more generations came after that: XC3000, XC4000, and XC5000, out of
which XC4000 family is most popular and is under consideration for the present
illustration purpose.
45
biswajitb
XC5000 is cheaper but similar with XC4000 although with same sacrifice in
speed.
These FPGAs are SRAM based. But Xilinx has recently introduced an FPGA
family based an anti-fuses, called the XC8100.
A new version of this family, the 4000E, has the additional feature that the RAM
can be configured as a dual part RAM with a single write part and two read parts.
Features:
The basic structure of the Xilinx is array based.
The Xilinx4000 family devices range in capacity from about 2000 to more than
15000 equivalent gates.
The XC4000 features a logic block, called a Configurable Logic Block (CLB) that
is based on look-up tables (LUTs).
Constructed a two layer memories, the top layer being the E2PROM containing
the program (or, configuration bits permanently).
The bottom layer (or, running layer) containing SRAM reloads every time the
power comes up, the configuration bits from the top layer and runs afterwards.
46
biswajitb
The XC4000 CLB contains three separate LUTs, as shown. There are two 4-input
LUTs that are led by CLB inputs, And the third LUT can be used in combination
with the other two.
This arrangement allows the CLB to implement a wide range of logic functions of
upto nine inputs, two separate functions of four inputs or other possibilities.
Each CLB also contains two flipflops with which sequential circuit can also be
implemented.
The XC4000 chips have “system oriented” features. For instance, each CLB
contains circuitry that allows it to efficiently perform arithmetic (ie., a circuit that
can implement a fast carry operation for adder like circuits).
Besides logic, the other key feature that characterizes an FPGA is its interconnect
structure. The XC4000 interconnect is arranged in horizontal and vertical
channels.
Each channel contains some number of short wire segment that span a single CLB ( the
number of segments in each channel depends on a specific part number), larger segments
that span two CLBs, and very long segments that span the entire length or width of the
chip.
47
biswajitb
Programmable switches are available to connect the inputs and outputs of the CLBs to the
wire segments, or to connect one wire segment to another.
The speed performance of an implemented circuit depends in part on how the wire
segments are allocated to individual signals by CAD tools and therefore may vary from
the specification in initial design entry.
Evolution of Xilinx FPGAs in terms of memory capacity and clock speed are given in
the following figure.
There is a trend of decreasing voltage of logic circuitry after the advent and advancement
of CMOS technology. This is presented below:
48
biswajitb
IP Core:
The IP core can be described as being for chip design what a library is for computer
programming or a discrete integrated circuit component is for printed circuit board
design.
When IP cores are of type soft core, they are typically offered as synthesizable RTL.
Synthesizable cores are delivered in a hardware description language such as Verilog or
VHDL. These are analogous to high level languages such as C in the field of computer
programming.
As hard core, they come as a particular hardware entity for analog, mixed signal and
digital logic circuit with a particular layout for their use by a chip maker.
49
biswajitb
Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), Bluetooth
Protocol
-- Bus Controller
■ Applications of FPGAs:
FPGA is a digital hardware that is user-configurable. It is a programmable structure that
acquires the final configuration for functioning in a desired way. The configurability is
achieved by using a CAD tool and a standard Hardware Description Language (HDL).
[Compilation means converting a source code, upon debugging, into a form which is
understood by a fixed hardware, i.e., processor, and executed by a processor thereafter.
It is possible that the success of the FPGA in the digital world may be reproduced in the
analog domain, with a field programmable analog array (FPAA). Such work has already
begun.
50