Professional Documents
Culture Documents
Original Authors:
Andrew B. Kahng, Jens Lienig, Igor L. Markov, Jin
Hu
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 1
Lienig
Chapter 2 – Netlist and System Partitioning
© KLMH
2.1 Introduction
2.2 Terminology
2.3 Optimization Goals
2.4 Partitioning Algorithms
2.4.1 Kernighan-Lin (KL) Algorithm
2.5 Framework for Multilevel Partitioning
2.5.1 Clustering
2.5.2 Multilevel Partitioning
2.6 System Partitioning onto Multiple FPGAs
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 2
Lienig
2.1 Introduction
© KLMH
System Specification
Partitioning
Architectural Design
ENTITY test is
port a: in bit;
end ENTITY test;
Functional Design Chip Planning
and Logic Design
Physical Design
Clock Tree Synthesis
Physical Verification
DRC and Signoff
LVS Signal Routing
ERC
Fabrication
Timing Closure
Chip
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 3
Lienig
2.1 Introduction
© KLMH
Circuit: 1 Cut cb
3
2
7 8
4
6
5
Cut ca
8 3 4 1 8 5 4 1
7 6 5 2 7 6 3 2
Cut ca: four external connections Cut cb: two external connections
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 4
Lienig
2.2 Terminology
© KLMH
Block (Partition) Graph G1: Nodes 3, 4, 5.
4 4
1 1
5 6 3 5 6
3
2 2
Cells
Graph G2: Nodes 1, 2, 6.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 5
Lienig
2.3 Optimization Goals
© KLMH
Given a graph G(V,E) with |V| nodes and |E| edges where each node v V
and each edge e E.
Each node has area s(v) and each edge has cost or weight w(e).
The objective is to divide the graph G into k disjoint subgraphs such that all
optimization goals are achieved and all original edge relations are respected.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 6
Lienig
2.3 Optimization Goals
© KLMH
In detail, what are the optimization goals?
Number of connections between partitions is minimized
Each partition meets all design constraints (size, number of external
connections..)
Balance every partition as well as possible
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 7
Lienig
Chapter 2 – Netlist and System Partitioning
© KLMH
2.1 Introduction
2.2 Terminology
2.3 Optimization Goals
2.4 Partitioning Algorithms
2.4.1 Kernighan-Lin (KL) Algorithm
2.5 Framework for Multilevel Partitioning
2.5.1 Clustering
2.5.2 Multilevel Partitioning
2.6 System Partitioning onto Multiple FPGAs
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 8
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm
© KLMH
Given: A graph with 2n nodes where each node has the same weight.
Goal: A partition (division) of the graph into two disjoint subsets A and B with
minimum cut cost and |A| = |B| = n.
Example: n = 4 1 5
2 6
Block A Block B
3 7
4 8
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 9
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Terminology
© KLMH
Cost D(v) of moving a node v 1 5
3 7
where
Ec(v) is the set of v’s incident edges that are cut by the Node 3:
4 8
cut line, and D(3) = 3-1=2
Enc(v) is the set of v’s incident edges that are not cut by
the cut line.
Node 7:
High costs (D > 0) indicate that the node D(7) = 2-1=1
should move, while low costs (D < 0) indicate
that the node should stay within the same
partition.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 10
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Terminology
© KLMH
Gain of swapping a pair of nodes a und b 1 5
where
3 7
• D(a), D(b) are the respective costs of nodes a, b
• c(a,b) is the connection weight between a and b: 4 8
If an edge exists between a and b,
then c(a,b) = edge weight (here 1),
otherwise, c(a,b) = 0.
The larger g, the more the total cut cost will be reduced
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 11
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Terminology
© KLMH
Node 7:
Gain of swapping a pair of nodes a und b D(7) = 2-1=1 1 5
where
3 7
• D(a), D(b) are the respective costs of nodes a, b Node 3:
• c(a,b) is the connection weight between a and b: 4 8
D(3) = 3-1=2
If an edge exists between a and b,
then c(a,b) = edge weight (here 1),
otherwise, c(a,b) = 0.
1 5
4 8
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 12
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Terminology
© KLMH
Node 5:
Gain of swapping a pair of nodes a und b D(5) = 2-1=1 1 5
where
3 7
• D(a), D(b) are the respective costs of nodes a, b Node 3:
• c(a,b) is the connection weight between a and b: 4 8
D(3) = 3-1=2
If an edge exists between a and b,
then c(a,b) = edge weight (here 1),
otherwise, c(a,b) = 0.
1 5
4 8
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 13
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Terminology
© KLMH
Gain of swapping a pair of nodes a und b
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 14
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Terminology
© KLMH
Maximum positive gain Gm of a pass
These m swaps lead to the partition with the minimum cut cost
encountered during the pass.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 15
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – One pass
© KLMH
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 16
Lienig
KL Algorithm- Pseudo-Code
© KLMH
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 17
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
1 5
2 6
3 7
4 8
Cut cost: 9
Not fixed:
1,2,3,4,5,6,7,8
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 18
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
1 5
2 6
3 7
4 8
Cut cost: 9
Not fixed:
1,2,3,4,5,6,7,8
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 19
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
1 5
2 6
3 7
4 8
Cut cost: 9
Not fixed:
1,2,3,4,5,6,7,8
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 20
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
1 5 1 5
2 6 2 6
3 7 3 7
4 8 4 8
Cut cost: 9
Not fixed:
1,2,3,4,5,6,7,8
D(1) = 1 D(5) = 1
D(2) = 1 D(6) = 2 Nodes that lead to
D(3) = 2 D(7) = 1 maximum gain
D(4) = 1 D(8) = 1
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 21
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
1 5 1 5
2 6 2 6
3 7 3 7
4 8 4 8
D(1) = 1 D(5) = 1
D(2) = 1 D(6) = 2
D(3) = 2 D(7) = 1
D(4) = 1 D(8) = 1
g1 = 2+1-0 = 3
Swap (3,5)
G1 = g1 =3
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 22
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
1 5 1 5
2 6 2 6
3 7 3 7
4 8 4 8
g1 = 2+1-0 = 3
Swap (3,5)
G1 = g1 =3
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 23
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
1 5 1 5 1 5
2 6 2 6 2 6
3 7 3 7 3 7
4 8 4 8 4 8
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 24
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
1 5 1 5 1 5 1 5
2 6 2 6 2 6 2 6
3 7 3 7 3 7 3 7
4 8 4 8 4 8 4 8
g1 = 2+1-0 = 3 g2 = 3+2-0 = 5 g3 = -3-3-0 = -6 Gain after node swapping
Swap (3,5) Swap (4,6) Swap (1,7)
G1 = g1 =3 G2 = G1+g2 =8 G3= G2 +g3 = 2 Gain in the current pass
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 25
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
1 5 1 5 1 5 1 5 1 5
2 6 2 6 2 6 2 6 2 6
3 7 3 7 3 7 3 7 3 7
4 8 4 8 4 8 4 8 4 8
Cut cost: 9 Cut cost: 6 Cut cost: 1 Cut cost: 7 Cut cost: 9
Not fixed: Not fixed: Not fixed: Not fixed: Not fixed:
1,2,3,4,5,6,7,8 1,2,4,6,7,8 1,2,7,8 2,8 –
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 26
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
D(1) = 1 D(5) = 1 D(1) = -1 D(6) = 2 D(1) = -3 D(7)=-3 D(2) = -1 D(8)=-1
D(2) = 1 D(6) = 2 D(2) = -1 D(7)=-1 D(2) = -3 D(8)=-3
D(3) = 2 D(7) = 1 D(4) = 3 D(8)=-1
D(4) = 1 D(8) = 1
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 27
Lienig
2.4.1 Kernighan-Lin (KL) Algorithm – Example
© KLMH
D(1) = 1 D(5) = 1 D(1) = -1 D(6) = 2 D(1) = -3 D(7)=-3 D(2) = -1 D(8)=-1
D(2) = 1 D(6) = 2 D(2) = -1 D(7)=-1 D(2) = -3 D(8)=-3
D(3) = 2 D(7) = 1 D(4) = 3 D(8)=-1
D(4) = 1 D(8) = 1
1 5
Since Gm > 0, the first m = 2 swaps
(3,5) and (4,6) are executed.
2 6
3 7
Since Gm > 0, more passes are needed until
Gm 0.
4 8
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 28
Lienig
Computational Complexity
© KLMH
Runtime of KL is dominated by:
Gain Updates
Pair Selection
After each pass i the time spent in updating gains is
Lienig
2.4.2 Extensions of the Kernighan-Lin (KL) Algorithm
© KLMH
Unequal partition sizes
Apply the KL algorithm with only min(|A|,|B|) pairs swapped
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 30
Lienig
2.5.1 Clustering
© KLMH
To simplify the problem, groups of tightly-connected nodes can be clustered,
absorbing connections between these nodes
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 31
Lienig
2.5.1 Clustering
© KLMH
a d d a d
a,b,c
b c e b c,e
e
© 2011 Springer
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 32
Lienig
2.5.2 Multilevel Partitioning
© KLMH
© 2011 Springer Verlag
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 33
Lienig
2.6 System Partitioning onto Multiple FPGAs
© KLMH
FPGA FPGA
FPGA FPGA FPGA FPGA RAM Logic Logic
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 34
Lienig
Summary of Chapter 2
© KLMH
Circuit netlists can be represented by graphs
Partitioning a graph means assigning nodes to disjoint partitions
Total size of each partition (number/area of nodes) is limited
Objective: minimize the number connections between partitions
Multilevel partitioning
Clustering
FM partitioning
Refinement (also uses FM partitioning)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 35
Lienig