3 FPGA Architecture 3
3 FPGA Architecture 3
Generic FPGA
Switchbox
FS = 3
Connection box
FC = 3
IDEA Lab
integrated design, engineering, algorithmics
FPGA Components
IDEA Lab
integrated design, engineering, algorithmics
FPGA Architecture
switchbox
IO connections
IDEA Lab
integrated design, engineering, algorithmics
FPGA Architecture and CAD
Synthesis
Technology Mapping
Placement/Floorplanning
Routing
Generate Programming
Data
IDEA Lab
integrated design, engineering, algorithmics
Logic Block Area (LUT)
LBArea = α + (β × 2 ) k
IDEA Lab
integrated design, engineering, algorithmics
Logic Block Architecture
Routing Architecture Efficiency
RArea = 2( LBside × W × λ ) + (W × λ ) 2
LBside λ
IDEA Lab
integrated design, engineering, algorithmics
Area
IDEA Lab
integrated design, engineering, algorithmics
Area v/s Inputs
IDEA Lab
integrated design, engineering, algorithmics
FPGA Architecture
IDEA Lab
integrated design, engineering, algorithmics
Virtex Slice
IDEA Lab
integrated design, engineering, algorithmics
The Logic Cluster
IDEA Lab
integrated design, engineering, algorithmics
Some Interesting Questions
IDEA Lab
integrated design, engineering, algorithmics
Cluster Based Logic
IDEA Lab
integrated design, engineering, algorithmics
Architectural Issues
IDEA Lab
integrated design, engineering, algorithmics
Number of Inputs per Cluster (98% utilization)
IDEA Lab
integrated design, engineering, algorithmics
Effect of N and K on Area
Inter-cluster area
IDEA Lab
integrated design, engineering, algorithmics
Effect of N and K on Performance
IDEA Lab
integrated design, engineering, algorithmics
Virtex Slice
IDEA Lab
integrated design, engineering, algorithmics
CLB Slice Structure
IDEA Lab
integrated design, engineering, algorithmics
Implement Two 4-input Functions
4-input
function
3-input
function;
registered
IDEA Lab
integrated design, engineering, algorithmics
Implement Some Larger Functions
e.g. 9-input
parity
IDEA Lab
integrated design, engineering, algorithmics
FPGA CAD Flow
Packing
Original Networks
Placement/Floorplanning
Logic Synthesis
Routing
Generate Programming
Data
IDEA Lab
integrated design, engineering, algorithmics
Clustering
IDEA Lab
integrated design, engineering, algorithmics
Clustering
• Need to group BLEs into groups
• Goals:
– Minimize number of clusters
– Minimize inter-cluster wiring
– Minimize critical path (timing-driven)
• How do we do this
– Take advantage of cluster architecture
IDEA Lab
integrated design, engineering, algorithmics
VPACK
IDEA Lab
integrated design, engineering, algorithmics
Basic Clustering
• Flow
– Iterate until all BLEs consumed
– Start new cluster by selecting a random BLE
• select the currently unclustered BLE with the most used inputs,
– Add BLE with most shared inputs with current cluster to
cluster
• to minimize the number of inputs that must be routed to each
cluster.
– Keep adding until either cluster full or input pins used up
– Hill climbing – if some cluster BLEs unused
• Add another BLE even if cluster input count temporarily
overflowed
• If input count not eventually reduced select best choice from
before hill climbing
IDEA Lab
integrated design, engineering, algorithmics
Simple Example
IDEA Lab
integrated design, engineering, algorithmics
Slack and Criticality Calculation
PI1 1 4 6 5 PO1
PI2 3 6 6 7 PO2
PI3 1 4 5 4 PO3
IDEA Lab
integrated design, engineering, algorithmics
Slack and Criticality Calculation
0
PI1 1 4 6 5 PO1
0
PI2 3 6 6 7 PO2
0
PI3 1 4 5 4 PO3
IDEA Lab
integrated design, engineering, algorithmics
Slack and Criticality Calculation
1
0
PI1 1 4 6 5 PO1
0
PI2 3 6 6 7 PO2
3
3
0
PI3 1 4 5 4 PO3
1
IDEA Lab
integrated design, engineering, algorithmics
Slack and Criticality Calculation
1
0
PI1 1 4 6 5 PO1
7
0
PI2 3 6 6 7 PO2
3 9
0
PI3 1 4 5 4 PO3
1 7
IDEA Lab
integrated design, engineering, algorithmics
Slack and Criticality Calculation
1
0
PI1
13 PO1
1 4 6 5
7
0 15
PI2 3 6 6 7 PO2
3 9
0
PI3 1 4 5 4 PO3
14
1 7
IDEA Lab
integrated design, engineering, algorithmics
Slack and Criticality Calculation
1
0 18
PI1
13 PO1
1 4 6 5
7
0 15 22
PI2 3 6 6 7 PO2
3 9
0 18
PI3 1 4 5 4 PO3
14
1 7
IDEA Lab
integrated design, engineering, algorithmics
Slack and Criticality Calculation
1
0 18/22
PI1
13 PO1
1 4 6 5
7
0 15 22/22
PI2 3 6 6 7 PO2
3 9
0 18/22
PI3 1 4 5 4 PO3
14
1 7
0 15 / 15 22/22
PI2 3 6 6 7 PO2
3 9
7 / 15
0 18/22
PI3 1 4 5 4 PO3
14/ 18
1 7
1
0 18/22
PI1
13 PO1
1 4 6 5
7
0 15 / 15 22/22
PI2 3 6 6 7 PO2
3 9
7 / 15
0 18/22
PI3 1 4 5 4 PO3
14 / 18
1 7/ 13
1 13 / 15
0 18/22
PI1 1 4 6 5 PO1
7
0 15 / 15 22/22
PI2 3 6 6 7 PO2
3 9
7 / 15
0 18/22
PI3 1 4 5 4 PO3
14 / 18
1 7/ 13
0 15 / 15 22/22
PI2 3 6 6 7 PO2
3 9/9
7 / 15
0 18/22
PI3 1 4 5 4 PO3
14 / 18
1 7/ 13
0 15 / 15 22/22
PI2 3 6 6 7 PO2
3/3 9/9
7 / 15
0 18/22
PI3 1 4 5 4 PO3
14 / 18
1/9 7/ 13
0/0 15 / 15 22/22
PI2 3 6 6 7 PO2
3/3 9/9
7 / 15
0/8 18/22
PI3 1 4 5 4 PO3
14 / 18
1/9 7/ 13
0 0 0
PI2 3 6 6 7 PO2
0 0
8 4
PI3 1 4 5 4 PO3
4
8 6
0/0 15 / 15 22/22
PI2 3 6 6 7 PO2
3/3 9/9
7 / 15
0/8 18/22
PI3 1 4 5 4 PO3
14 / 18
1/9 7/ 13
Critical Path
IDEA Lab
integrated design, engineering, algorithmics
Example with interconnect delay
22
3 2 1 1
5 5 5
F F
F F
19 2 1
4 4 4
2 1 3 2
IDEA Lab
integrated design, engineering, algorithmics
Logic Cluster Structure
IDEA Lab
integrated design, engineering, algorithmics
Timing-Driven Clustering – T-VPACK
IDEA Lab
integrated design, engineering, algorithmics
Base Criticality
IDEA Lab
integrated design, engineering, algorithmics
How to break ties?
IDEA Lab
integrated design, engineering, algorithmics