Professional Documents
Culture Documents
Moore's Law: FPGA-Based System Design: Chapter 1 2004 Prentice Hall PTR
Moore's Law: FPGA-Based System Design: Chapter 1 2004 Prentice Hall PTR
Gordon Moore: co-founder of Intel. Predicted that number of transistors per chip would grow exponentially (double every 18 months). Exponential improvement in technology is a natural trend: steam engines, dynamos, automobiles.
For low-volume ICs, design costs may swamp all manufacturing costs.
$10 million-$20 million.
Custom silicon:
Tailored to your application. Generally lower power consumption.
LE LE interconnect LE LE LE LE
Terminology
Configuration: bits that determine logic function + interconnect. CLB: combinational logic block = logic element (LE). LUT: Lookup table = SRAM used for truth table. I/O block (IOB): I/O pin + associated logic and electronics.
Logic element
Programmable:
Input connections. Internal function.
Lookup table: a
0
b
0 1 0
out
0 0 1 0 1 0 0 1
a b
0010
0
out
memory
1001
1
FPGA-Based System Design: Chapter 1
Logic synthesis
How do we break the function into logic elements? How do we implement an operation within a logic element?
Placement
LE
LE LE
LE
LE LE
Copyright 2004 Prentice Hall PTR
Programmable wiring
Choosing a path
LE
LE
Copyright 2004 Prentice Hall PTR
Routing problems
Global routing:
Which combination of channels?
Local routing:
Which wire in each channel?
Routing metrics:
Net length. Delay.
Segmented wiring
Length 1 Length 2
Offset segments
I/O
Fundamental selection: input, output, threestate? Additional features:
Programming technologies
SRAM.
Can be programmed many times. Must be programmed at power-up.
Antifuse.
Programmed once.
Flash.
Similar to SRAM but using flash memory.
Configuration
FPGA configuration:
Bits stay at the device they program. A configuration bit controls a switch or a logic bit.
CPU programming:
Instructions are fetched from a memory. Instructions select complex operations.
add r1, r2
addIR r2 r1,
memory
CPU
Reconfiguration
All functions of n inputs or eliminate some combinations? What inputs go to what pieces of the function?
Interconnect questions
How many wires in each channel? Uniform distribution of wiring? How should wires be segmented? How rich is interconnect between channels? How long is the average wire? How much buffering do we add to wires?
Are pins programmed individually or in groups? Can all pins perform all functions? How many logic families do we support?