You are on page 1of 53

Field Programmable Gate Array

FPGA

ECEn 224

19 FPGA Page 1

2003-2008 BYU

Using ROM as Combinational Logic


B C A C

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

F 0 0 0 1 0 1 0 1

A B C

8x1 ROM (LUT)

ECEn 224

19 FPGA Page 2

2003-2008 BYU

Mapping Larger Functions To ROMs


A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 F 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1
B C D LUT (CD) f1 f2 B C D LUT Af1 + Af2 F

LUT (B+C) A

Very similar to how we decomposed functions to implement with MUX blocks


ECEn 224
19 FPGA Page 3 2003-2008 BYU

ROM vs. LUT


A ROM can be used as a lookup table (LUT) An FPGA contains many, many such LUTs
Possibly hundreds of thousands

A 3LUT has 3 inputs and 1 output A 4LUT has 4 inputs and 1 output 4LUTs are the most common

ECEn 224

19 FPGA Page 4

2003-2008 BYU

Mapping a Gate Network to LUTs

ECEn 224

19 FPGA Page 5

2003-2008 BYU

Mapping a Gate Network to 3LUTs


3LUT #2 3LUT #1

3LUT #3

ECEn 224

19 FPGA Page 6

2003-2008 BYU

Mapping Same Network to 4LUTs


4LUT #2

4LUT #1

ECEn 224

19 FPGA Page 7

2003-2008 BYU

Mapping Equations to LUTs


How many 4LUTs do the following functions require? F=a F = abcd F = abcd + abcd + abcd + abcd F=a+b+c+d F = (a +b + c + d)(a + b + c + d) Each equation requires a single 4LUT!
Number of LUTs isnt a function of equation complexity, but a function of number of unique inputs
ECEn 224
19 FPGA Page 8 2003-2008 BYU

FPGAs What Are They?


Programmable Logic Elements (LEs) Programmable wiring areas

I/O Buffers I/O Buffers I/O Buffers I/O Buffers


19 FPGA Page 9

I/O Buffers communicate between FPGA and the outside world

An FPGA is a Programmable Logic Device (PLD) It can be programmed to perform any function desired.
ECEn 224
2003-2008 BYU

Programmable Logic Elements (LEs)


Typically contain a LUT, wires, and storage

inA inB inC inD

out

4LUT

D Q

16

clk

ECEn 224

19 FPGA Page 10

2003-2008 BYU

Programmable Logic Elements (LEs)


Typically contain a LUT, wires, and storage

inA inB inC inD

out

4LUT

D Q

16

clk

This mux provides a registered or unregistered function of the 4 input variables


ECEn 224
19 FPGA Page 11 2003-2008 BYU

Programmable Logic Elements (LEs)


Typically contain a LUT, wires, and storage

inA inB inC inD

out

4LUT

D Q

16

clk

Black dots indicate programming bits (configuration bits)


ECEn 224
19 FPGA Page 12 2003-2008 BYU

Programmable Logic Elements (LEs)


Typically contain a LUT, wires, and storage

inA inB inC inD

out

4LUT

D Q

16

clk

On power up, configuration bits are loaded into FPGA This customizes its operation (LUT function, MUX selection)
ECEn 224
19 FPGA Page 13 2003-2008 BYU

Programmable Logic Elements (LEs)


Typically contain a LUT, wires, and storage

inA inB inC inD

out

4LUT

D Q

16

clk

Typically, configuration bits are not changed during circuit operation (but, some FPGAs are dynamically reconfigurable)
ECEn 224
19 FPGA Page 14 2003-2008 BYU

Another LE Structure
Provides two outputs
One combinational, one registered
inA inB inC inD inE
0

D Q 4LUT
1

outReg

16
0

clk outComb

ECEn 224

19 FPGA Page 15

2003-2008 BYU

One Configuration
inA inB inC inD inE
0

D Q 4LUT
1

outR = reg(inB(inC+inD))

=1
16
0

clk

fn=inB(inC+inD)

ECEn 224

19 FPGA Page 16

2003-2008 BYU

Another Configuration
inA inB inC inD inE
0

D Q 4LUT
1

outR = reg(inA)

=0
16

clk outC = inC

fn=inC

=1

ECEn 224

19 FPGA Page 17

2003-2008 BYU

Yet Another Configuration


inA inB inC inD inE
0

D Q 4LUT
1

outR = reg(inC)

=1
16

clk outC = inC

fn=inC

=1

ECEn 224

19 FPGA Page 18

2003-2008 BYU

An LE With Carry/Cascade Logic


Cout inA inB inC inD
0

Carry/ 4LUT Cascade


16

out

D Q

clk Cin

Can do two functions at once (Sum and Cout) Carry/cascade logic optimized for add/subtract and wide AND,OR, Cin and Cout have dedicated connections to neighboring LEs fast carry chains fast arithmetic
ECEn 224
19 FPGA Page 19 2003-2008 BYU

An FPGA Architecture (Island Style)


Logic Elements Column Wires

Row wires

Each LE is configured to do a function Wire intersections are programmed to either connect or not
ECEn 224
19 FPGA Page 20 2003-2008 BYU

Programmable Interconnect Junction


Column wire

=1 Row wire

ON

Connected

=0

OFF

Unconnected

ECEn 224

19 FPGA Page 21

2003-2008 BYU

Example Problem
Generate the N, Z, P status flags for a 6-bit microprocessor

D0-D5

D5

Z N

ECEn 224

19 FPGA Page 22

2003-2008 BYU

Example Problem
Generate the N, Z, P status flags for a 6-bit microprocessor

D0-D5

D5

Z N

Will require 2 4LUTs

Can be done with wiring only or with 1 4LUT


ECEn 224

Will require 1 4LUT

19 FPGA Page 23

2003-2008 BYU

1
D0 D1

10
P

D2

11
D3 D4 D5

12

13

14

15

LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1D4D5 Z output


ECEn 224

LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output


19 FPGA Page 24 2003-2008 BYU

1
D0 D1

10
P

D2

11
D3 D4 D5

12

13

14

15

LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1D4D5 Z output


ECEn 224

LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output


19 FPGA Page 25 2003-2008 BYU

1
D0 D1

10
P

D2

11
D3 D4 D5

12

13

14

15

LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1D4D5 Z output


ECEn 224

LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output


19 FPGA Page 26 2003-2008 BYU

1
D0 D1

10
P

D2

11
D3 D4 D5

12

13

14

15

LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1D4D5 Z output


ECEn 224

LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output


19 FPGA Page 27 2003-2008 BYU

1
D0 D1

10
P

D2

11
D3 D4 D5

12

13

14

15

LUT #1: F1 = D0 D1 D2 D3 LUT #7: F2 = F1D4D5 Z output


ECEn 224

LUT #8: F3 = D5 N output LUT #9: F4 = Z N P output


19 FPGA Page 28 2003-2008 BYU

Configuring an FPGA
Most FPGAs have a configuration input pin
Configuration bits are shifted into FPGA using this pin, one bit per cycle Configuration bits in FPGA linked into a long shift register (SIPO)

Examples on following slides are conceptual


Commercial devices slightly different

ECEn 224

19 FPGA Page 29

2003-2008 BYU

Structure of a 3LUT
b0 b1 b2 b3 b4 b5 b6 b7
3

Configuration Storage Bits (Flip Flops)

LUT Output Its just an 8:1 MUX LUT inputs select which config bit is sent to LUT output Programming LUT function setting configuration bits
19 FPGA Page 30 2003-2008 BYU

LUT Inputs

ECEn 224

How are the Configuration Bit Flip Flops Loaded?

A serial-in/parallel-out (SIPO) shift register

D Q
1

B6

CONFIG
0

CCLK

These are the configuration bits which the LUT selects from
B7

D Q
1

CONFIG

CCLK

ECEn 224

19 FPGA Page 31

2003-2008 BYU

Configuring the Programmable Interconnect

Column wire

Configuration bit

Also arranged in a SIPO shift register

Row wire

ECEn 224

19 FPGA Page 32

2003-2008 BYU

Additional FPGA Features


Found in commercial FPGAs

ECEn 224

19 FPGA Page 33

2003-2008 BYU

At this point, can use following sections slides on advanced FPGA features or simply show data sheets for commercial FPGAs

ECEn 224

19 FPGA Page 34

2003-2008 BYU

Configurable Input/Output
I/O blocks allow internal FPGA signals to connect to external pins Configurable I/O block features: Can be configured as inputs or outputs Electrostatic discharge (ESD) protection Input signal conditioning (voltage levels, ) Output drive
Fast, slow Strong, weak Tri-state

Handles a variety of electrical standards


LVTTL LVCMOS PCI LVDS

I/O blocks are configured when the rest of the chip is configured

ECEn 224

19 FPGA Page 35

2003-2008 BYU

Configuration Storage
Actual configuration storage is not flip flops
Many use SRAM memory cells

Different technologies
Program once
Fuse, anti-fuse configuration

Program multiple times


SRAM-based configuration

Some chips can be partially reconfigured, even while rest of chip is running
ECEn 224
19 FPGA Page 36 2003-2008 BYU

Programmable Interconnections
Expensive to put programmable connections at every wire junction
Commercial parts use partially populated junctions Little or no loss of routing flexibility

ECEn 224

19 FPGA Page 37

2003-2008 BYU

Hierarchical Routing
Collection of short, medium, and long wires
Both rows and columns

Signals use wires that go distance needed CAD tools make determinations Like alleys, streets, expressways in a city
Longer distance more limited access points

ECEn 224

19 FPGA Page 38

2003-2008 BYU

Clustered LEs
Cluster: >= 1 LE
Example: Cluster of 4 Dedicated wires within groups of 4 LEs

Closely related to hierarchical routing Higher performance Different vendors different clustering

ECEn 224

19 FPGA Page 39

2003-2008 BYU

Embedded Function Units


Place the following into the FPGA fabric: Multipliers Memories (Block RAM) I/O interfaces (e.g. gigabit serial links or Ethernet PHY/MAC) CPUs (PowerPC, ARM, ) Result: higher speed, higher density, lower power designs

ECEn 224

19 FPGA Page 40

2003-2008 BYU

FPGAs Compared To Other Technologies

ECEn 224

19 FPGA Page 41

2003-2008 BYU

Performance vs. Flexibility


CPUs & DSPs Flexibility

FPGAs

ASICs

Performance

ASIC = Application Specific Integrated Circuit

Goal: the performance of ASICs with the flexibility of programmable processors.


ECEn 224
19 FPGA Page 42 2003-2008 BYU

FPGAs vs. CPUs Flexibility


Any function can be programmed to run on a CPU
Programming is relatively simple to do

Any function can also be configured onto an FPGA


Design is much more difficult and time consuming since its a digital logic design Hardware is harder than software

Both CPUs and FPGAs can be reprogrammed (reconfigured) in the field The winner: CPUs

ECEn 224

19 FPGA Page 43

2003-2008 BYU

FPGAs vs. CPUs Performance


10+ years of research advantage for FPGAs! Custom hardware 10x-100x performance

No fetch, decode, or memory access overhead Significant parallelism (e.g., pipelining)

Case in point: 1998 SONAR beamformer on an FPGA


BYU Configurable Computing Lab research 2 x 109 FLOP/sec sustained 10x-80x faster than comparable CPU technology

The winner: FPGAs


ECEn 224
19 FPGA Page 44 2003-2008 BYU

FPGAs vs. ASICs Flexibility


ASIC is a static hardware design
Wires and transistors fixed at manufacture time Cannot be upgraded (reprogrammed) in the field

FPGA can be configured (and reconfigured)


FPGA platform used for a variety of applications
CCM = Custom Computing Machine (based on FPGAs)

The winner: FPGAs

ECEn 224

19 FPGA Page 45

2003-2008 BYU

FPGAs vs. ASICs Performance


Both ASICs and FPGAs are custom hardware designs FPGA configurability comes at great cost FPGA density is much lower than that of an ASIC
Low density means logic must be physically spread out

Result:
FPGAs are slower, physically larger, and more power hungry than a custom ASIC chip For some/many applications FPGAs may
be too slow ...not hold enough logic be too power hungry

The winner: ASICs


ECEn 224
19 FPGA Page 46 2003-2008 BYU

FPGAs vs. ASICs Cost


Once the design is complete:
FPGAs can be purchased off-the-shelf and programmed in seconds
Negligible up-front costs Inexpensive for small volume Per part cost is high

ASICs require time-consuming, expensive manufacturing process


Fabrication facility (> $1 billion) Significant up-front costs Expensive for small volume Per part cost is very low, when volume is high

The winner: Depends on volume and application!


ECEn 224
19 FPGA Page 47 2003-2008 BYU

FPGA vs. ASIC Production Cost Example


FPGA
Non-recurring engineering (NRE) costs = $0 Per-part cost = $20 (prices vary from a few $s to $1000s) Cost to produce 100 = $2K Cost to produce 106 = $20M

ASIC
NRE costs = $5M Per-part cost = $1

Cost to produce 100 = $5M + $100 $5M Cost to produce 106 = $5M + $1M = $6M

Volume produced makes a big difference!


ECEn 224
19 FPGA Page 48 2003-2008 BYU

FPGAs vs. ASICs Time to Market and Bug Fixes


Manufacturing Time
Shorter time to market makes money sooner FPGA = seconds to configure ASIC = weeks to months

Fixing Bugs
FPGA = modify design + reconfigure FPGA
Reconfigurability can make debugging easier

ASIC = modify design + remanufacture

The winner: FPGA


ECEn 224
19 FPGA Page 49 2003-2008 BYU

FPGAs vs. ASICs - Summary


Two very different technologies
Flexibility: FPGA wins Performance: ASIC wins Risk: ? Cost: ?

Complex Decision
Only partially based on technical issues Significant business issues
Cost Risk Time-to-market Market characteristics (elasticity, price sensitivity, )
ECEn 224
19 FPGA Page 50 2003-2008 BYU

Design for FPGAs


1. 2. 3. 4. Draw schematics or write HDL CAD tool maps design to LUTs + FFs CAD tool generates bitstream Load bitstream to configure the FPGA

ECEn 224

19 FPGA Page 51

2003-2008 BYU

Design for ASICs


1. Draw schematics or write HDL 2. CAD tool maps design to physical silicon layout 3. Send layout data to silicon fab 4. Finished chip does intended function Step 1 fairly similar for FPGAs and ASICs
Major differences in later steps

ECEn 224

19 FPGA Page 52

2003-2008 BYU

For More Information


FPGA companies WWW sites tend to have lots of information
Catering to a wide range of customers
Novice to expert Low volume to high volume

Data sheets Application notes Success stories CAD tools


ECEn 224
19 FPGA Page 53 2003-2008 BYU

You might also like