Chap 2
Chap 2
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning
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.4.2 Extensions of the Kernighan-Lin Algorithm
2.4.3 Fiduccia-Mattheyses (FM) 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
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.4.2 Extensions of the Kernighan-Lin Algorithm
2.4.3 Fiduccia-Mattheyses (FM) 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
where 3 7
Ec(v) is the set of v’s incident edges that are cut by the Node 3:
cut line, and D(3) = 3-1=2 4 8
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
should move, while low costs (D < 0) indicate D(7) = 2-1=1
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: D(3) = 3-1=2 4 8
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: D(3) = 3-1=2 4 8
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.
m
Gm = ∑ ∆g
i =1
i
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
Step 0:
– V = 2n nodes
– {A, B} is an initial arbitrary partitioning
Step 1:
– i=1
– Compute D(v) for all nodes v∈V
Step 2:
– Choose ai and bi such that ∆gi = D(ai) + D(bi) – 2 * c(aibi) is maximized
– Swap and fix ai and bi
Step 3:
– If all nodes are fixed, go to Step 4. Otherwise
– Compute and update D values for all nodes that are connected to ai and bi and are not fixed.
– i=i+1
– Go to Step 2
Step 4:
– ∑
m
Find the move sequence 1...m (1 ≤ m ≤ i), such that Gm =
i =1
Δg i is maximized
– If Gm > 0, go to Step 5. Otherwise, END
Step 5:
– Execute m swaps, reset remaining nodes
– Go to Step 1
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 16
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 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 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 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
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 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
∆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 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 23
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 24
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 25
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 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
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 27
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 28
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm
© KLMH
• Single cells are moved independently instead of swapping pairs of cells ---
cannot and do not need to maintain exact partition balance
• The area of each individual cell is taken into account
• Applicable to partitions of unequal size
and in the presence of initially fixed cells
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 29
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm
© KLMH
Given: a hypergraph G(V,H) with nodes and weighted hyperedges
partition size constraints
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 30
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Terminology
© KLMH
Gain ∆g(c) for cell c 2 3
b e
∆g(c) = FS(c) – TE(c) , a 4
where c
d
1 5
the “moving force“ FS(c) is the number of nets connected
to c but not connected to any other cells within c’s
partition, i.e., cut nets that connect only to c, and
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 31
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Terminology
© KLMH
Gain ∆g(c) for cell c 2 3
b e
∆g(c) = FS(c) – TE(c) , a 4
where c
d
1 5
the “moving force“ FS(c) is the number of nets connected
to c but not connected to any other cells within c’s
partition, i.e., cut nets that connect only to c, and
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 32
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Terminology
© KLMH
Maximum positive gain Gm of a pass
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 33
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Terminology
© KLMH
Ratio factor
The ratio factor is the relative balance between the two partitions
with respect to cell area
where area(A) and area(B) are the total respective areas of partitions A and B
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 34
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Terminology
© KLMH
Balance criterion
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 35
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Terminology
© KLMH
Base cell
A base cell is a cell c that has the greatest cell gain ∆g(c) among all free cells,
and whose move does not violate the balance criterion.
Base cell
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 36
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm - One pass
© KLMH
Step 0: Compute the balance criterion
Step 1: Compute the cell gain ∆g1 of each cell
Step 2: i = 1
– Choose base cell c1 that has maximal gain ∆g1 , move this cell
Step 3:
– Fix the base cell ci
– Update all cells’ gains that are connected to critical nets via the base cell ci
Step 4:
– If all cells are fixed, go to Step 5. If not:
– Choose next base cell ci with maximal gain ∆gi and move this cell
– i = i + 1, go to Step 3
Step 5:
– Determine the best move sequence c1, c2, .., cm (1 ≤ m ≤ i) , so that Gm = ∑
m
i =1
Δg i is maximized
– If Gm > 0, go to Step 6. Otherwise, END
Step 6:
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 37
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example
© KLMH
A 2 3 B
Given:
b e Ratio factor r = 0,375
a 4 area(Cell_1) = 2
area(Cell_2) = 4
c
area(Cell_3) = 1
d
1 5 area(Cell_4) = 4
area(Cell_5) = 5.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 38
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example
© KLMH
A 2 3 B
b e
a 4
c
d
1 5
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 39
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example
© KLMH
A 2 3 B
Cell1: FS(Cell_1) = 2 TE(Cell_1) = 1 ∆g(Cell_1) = 1
b e Cell 2: FS(Cell_2) = 0 TE(Cell_2) = 1 ∆g(Cell_2) = -1
a 4 Cell 3: FS(Cell_3) = 1 TE(Cell_3) = 1 ∆g(Cell_3) = 0
Cell 4: FS(Cell_4) = 1 TE(Cell_4) = 1 ∆g(Cell_4) = 0
c Cell 5: FS(Cell_5) = 1 TE(Cell_5) = 0 ∆g(Cell_5) = 1
d
1 5
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 40
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example
© KLMH
A 2 3 B
b e
a 4
c
d
1 5
After Iteration i = 1: Partition A1 = 2, Partition B1 = 1,3,4,5, with fixed cell 1.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 41
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example
© KLMH
Iteration i = 1
A 2 3 B
Cell 2: FS(Cell_2) = 2 TE(Cell_2) = 0 ∆g(Cell_2) = 2
b e Cell 3: FS(Cell_3) = 0 TE(Cell_3) = 1 ∆g(Cell_3) = -1
a 4 Cell 4: FS(Cell_4) = 0 TE(Cell_4) = 2 ∆g(Cell_4) = -2
c Cell 5: FS(Cell_5) = 0 TE(Cell_5) = 1 ∆g(Cell_5) = -1
d
1 5
Iteration i = 2
Move cell 3, updated partitions: A2 = {2,3}, B2 = {1,4,5}, with fixed cells {1,3}
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 42
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example
© KLMH
Iteration i = 2
A 2 3
Cell 2: ∆g(Cell_2) = 1
e
a b B Cell 4: ∆g(Cell_4) = 0
4
Cell 5: ∆g(Cell_5) = -1
c
d
1 5
Iteration i = 3
Move cell 2, updated partitions: A3 = {3}, B3 = {1,2,4,5}, with fixed cells {1,2,3}
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 43
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example
© KLMH
Iteration i = 3
B 2 3 A
e Cell 4: ∆g(Cell_4) = 0
a b
4 Cell 5: ∆g(Cell_5) = -1
c
d
1 5
Iteration i = 4
Move cell 4, updated partitions: A4 = {3,4}, B3 = {1,2,5}, with fixed cells {1,2,3,4}
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 44
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example
© KLMH
Iteration i = 4
B 2 3 A
e
a b Cell 5: ∆g(Cell_5) = -1
4
c
d
1 5
Iteration i = 5
Cell 5 has maximum gain ∆g5 = -1, area(A) = 10, balance criterion is met.
Move cell 5, updated partitions: A4 = {3,4,5}, B3 = {1,2}, all cells {1,2,3,4,5} fixed.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 45
Lienig
2.4.3 Fiduccia-Mattheyses (FM) Algorithm – Example
© KLMH
Step 5: Find best move sequence c1 … cm
B 2 3 A
G1 = ∆g1 = 1
G2 = ∆g1 + ∆g2 = 0 e
a b
G3 = ∆g1 + ∆g2 + ∆g3 = 1 4
G4 = ∆g1 + ∆g2 + ∆g3 + ∆g4 = 1 c
G5 = ∆g1 + ∆g2 + ∆g3 + ∆g4 + ∆g5 = 0. d
1 5
m
Maximum positive cumulative gain G =
m ∑ ∆g
i =1
i =1
The move prefix m = 4 is selected due to the better balance ratio (area(A) = 5);
the four cells 1, 2, 3 and 4 are then moved.
Result of Pass 1: Current partitions: A = {3,4}, B = {1,2,5}, cut cost reduced from 3 to 2.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 46
Lienig
Runtime difference between KL & FM
© KLMH
• Runtime of partitioning algorithms
− KL is sensitive to the number of nodes and edges
− FM is sensitive to the number of nodes and nets (hyperedges)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 47
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.4.2 Extensions of the Kernighan-Lin Algorithm
2.4.3 Fiduccia-Mattheyses (FM) 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 48
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 49
Lienig
2.5.1 Clustering
© KLMH
a d d a d
a,b,c
b c e b c,e
e
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 50
Lienig
2.5.2 Multilevel Partitioning
© KLMH
© 2022 Springer Verlag
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 2: Netlist and System Partitioning 51
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 52
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 53
Lienig