0% found this document useful (0 votes)
75 views36 pages

Programmable ASIC Logic Cells

Xilinx LCAs use configurable logic blocks (CLBs) that contain both combinational logic and flip-flops. The basic logic element is a lookup table (LUT) that can implement any function of its inputs. Xilinx's XC3000 CLB contains a 32-bit LUT that can implement one large function or be split to implement two smaller functions. It also contains two flip-flops for registering outputs. Altera's MAX architecture uses a programmable AND array feeding into a fixed OR array, with logic expanders and programmable inversion to efficiently implement functions. Both architectures aim to provide flexible yet high performance logic using LUT-based logic cells.

Uploaded by

nandan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views36 pages

Programmable ASIC Logic Cells

Xilinx LCAs use configurable logic blocks (CLBs) that contain both combinational logic and flip-flops. The basic logic element is a lookup table (LUT) that can implement any function of its inputs. Xilinx's XC3000 CLB contains a 32-bit LUT that can implement one large function or be split to implement two smaller functions. It also contains two flip-flops for registering outputs. Altera's MAX architecture uses a programmable AND array feeding into a fixed OR array, with logic expanders and programmable inversion to efficiently implement functions. Both architectures aim to provide flexible yet high performance logic using LUT-based logic cells.

Uploaded by

nandan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

Programmable ASIC logic cells

Xilinx LCA

Xilinx LCA

Xilinx LCA (a trademark, denoting logic cell array)


basic logic cells, configurable logic blocks or
CLBs , are bigger and more complex than the Actel
or QuickLogic cells.
The Xilinx CLBs contain both combinational logic
and flip-flops.

Coarse-grain architecture
Xilinx Mature Products: XC3000, XC4000,
XC5200

Logic Lookup Table

LUT is used instead of basic


gates or MUXs
Specify logic functions to be
implemented as a simple truth
table
n-input LUT can handle function
of 2n inputs
A LUT is actually a small (1-bit)
RAM

FPGA LUTs can be used as RAM

A Two Input Look up table

LUTs can be implemented using MUXs


We do not normally care about the implementation,
just the functioning
x1

x1
0/1
0/1

0/1

0/1
x2

x1 x2

f1

0
0
1
1

1
0
0
1

0
1
0
1

(b) f 1 = x1 x2 + x1 x2
(a) Circuit for a two-input LUT

f1

0
1
x2
(c) Storage cell contents in the LUT

A Three-Input LUT

A simple
extension of the
two-input LUT
leads to the
figure at right
Again, at this
point we are
interested in
function and not
form

x1
x2
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
x3

Inclusion of a Flip-Flop with a LUT

A Flip-Flop can be selected for inclusion or not


Latches the LUT output
Select

Out
Flip-flop

In 1
In 2

LUT

In 3
Clock

can program to
bypass the FF

Xilinx XC3000 CLB

The block diagram for


an XC3000 family CLB
illustrates all of these
features

To simplify the
diagram, programmable
MUX select lines are
not shown
Combinational function
is a LUT

LUT

Xilinx Configurable Logic Block (CLB)

Figure 5.6 The Xilinx XC3000 CLB (configurable logic block).

Xilinx XC3000 CLB

A 32-bit look-up table ( LUT )

CLB propagation delay is fixed (the LUT access


time) and independent of the logic function
7 inputs to the XC3000 CLB:

5 CLB inputs (AE), and


2 flip-flop outputs (QX and QY)

2 outputs from the LUT (F and G).


Since a 32-bit LUT requires only five variables to
form a unique address (32 = 25), there are multiple
ways to use the LUT

Xilinx XC3000 CLB

Use 5 of the 7 possible inputs (AE, QX, QY) with the entire
32-bit LUT [F mode]

the CLB outputs (F and G) are then identical

We can realize functions ranging in complexity from a simple AND


gate (F=G=ABCDE) to a parity function (F=G=A xor B xor C xor D
xor E)

Split the 32-bit LUT in half to implement 2 functions of 4


variables each [FG mode]

choose 4 input variables from the 7 inputs (AE, QX, QY).

you have to choose 2 of the inputs from the 5 CLB inputs (AE); then
one function output connects to F and the other output connects to G

Xilinx XC3000 CLB

Use 5 of the 7 possible inputs (AE, QX, QY) with the entire
32-bit LUT [F mode]

the CLB outputs (F and G) are then identical

Split the 32-bit LUT in half to implement 2 functions of 4


variables each [FG mode]

choose 4 input variables from the 7 inputs (AE, QX, QY).

you have to choose 2 of the inputs from the 5 CLB inputs (AE); then
one function output connects to F and the other output connects to G

You can split the 32-bit LUT in half, using one of the 7 input
variables as a select input to a 2:1 MUX that switches between
F and G [FGM mode]

to implement some functions of 6 and 7 variables

Xilinx XC3000 CLB

Xilinx XC3000 CLB

Xilinx XC3000 CLB: Example 1

Parallel Adder-Subtracter Logic Cell:

Xilinx XC3000 CLB: Example 1(cont..)

Example 2 to realize using Xilinx XC3000 CLB


One input one-output sequence detector that produces an
output value 1 every time the sequence 0101 is detected
and an output value 0 at all other times. For example, if
the input sequence is 010101 then the corresponding
output sequence is 000101.

Alternative Approach

Realizing Y1, Y2

Realizing Z

Altera MAX - Logic cells

Programmable Logic Array

Programmable AND array


feeding into an OR array
can implement a sum-ofproducts form of an
expression
n-channel EPROM
transistors wired to a pullup resistor can implement
a wired-AND function of
the inputs

Output is high only when


all the inputs are high
The inputs must be
inverted

Figure 5.11 Logic Arrays. (a) Two-level logic.


(b) Organized sum of products.
(c) A programmable-AND plane.
(d) EPROM logic array. (e) Wired
logic.

Registered PAL

Figure 5.12 A registered PAL with I inputs, j product terms, and k macrocells.

Logic Expander

A logic expander is an output line of the AND array that feeds back
as an input to the array itself
Logic expanders can help implement functions that require more
product terms than are available in a simple PAL
Consider implementing this function in a three-wide OR array:
F = A C D + B C D + A B + B C

This can be rewritten as a sum of (products of products):


F = (A + B) C D + (A + C) B
F = (A B) (C D) + (A C) B

Logic Expander

Logic expanders can be used to form the expander


terms
(A B) and (A C)
Logic expanders require an extra pass through the
AND array, increasing delay

Logic Expander Implementation

Figure 5.13 Expander logic and programmable inversion.

Simplifying Logic with Programmed


Inversion

Figure 5.14 Use of programmed inversion to simplify logic. (a) The function F = AB+ AC+ AD+ ACD requires four product
terms to implement while (b) the complement F = ABCD+ AD+ AC requires only three product terms.

Altera MAX Architecture

Macrocell features:

Wide, programmable
AND array
Narrow, fixed OR array
Logic Expanders
Programmable inversion

Figure 5.15 The Altera MAX architecture. (a)


Organization of logic and
interconnect. (b) A MAX family LAB
(Logic Array Block). (c) A MAX
family macrocell.

Altera MAX architecture

Macro cell for Altera MAX

Altera MAX

Two types of logic expanders

Shareable expanders

Parallel expanders

One of the product term in each macro cell can be used as a


shareable expander

An AND-OR logic expression with more than five terms can often
be factored to utilize shareable expanders from other macro cells.

Altera MAX Shareable expanders

Altera MAX Parallel expanders

References
Chapter-5
from Application Specific ICs
M.J.S.Smith(1997), Addison Wesley, Pearson education.

[1]

[2]. Chapter-6 from Digital Systems Design using VHDL by


Charles H Roth, Jr., PWS.

by

You might also like