VLSI Physical Design: From Graph Partitioning To Timing Closure
VLSI Physical Design: From Graph Partitioning To Timing Closure
VLSI Physical Design: From Graph Partitioning To Timing Closure
Original Authors:
Andrew B. Kahng, Jens Lienig, Igor L. Markov, Jin Hu
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 1
Lienig
Chapter 3 – Chip Planning
© KLMH
3.1 Introduction to Floorplanning
3.2 Optimization Goals in Floorplanning
3.3 Terminology
3.4 Floorplan Representations
3.4.1 Floorplan to a Constraint-Graph Pair
3.4.2 Floorplan to a Sequence Pair
3.4.3 Sequence Pair to a Floorplan
3.5 Floorplanning Algorithms
3.5.1 Floorplan Sizing
3.5.2 Cluster Growth
3.5.3 Simulated Annealing
3.5.4 Integrated Floorplanning Algorithms
3.6 Pin Assignment
3.7 Power and Ground Routing
3.7.1 Design of a Power-Ground Distribution Network
3.7.2 Planar Routing
3.7.3 Mesh Routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 2
Lienig
3.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 3: Chip Planning 3
Lienig
3.1 Introduction
© KLMH
I/O Pads Floorplan
Module a
Module b
Block a Block c
Module c
GND VDD
Chip Block d
Planning Block Pins
Block
Module d b Block e
Module e
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 4
Lienig
3.1 Introduction
© KLMH
Example
Given: Three blocks with the following potential widths and heights
Block A: w = 1, h = 4 or w = 4, h = 1 or w = 2, h = 2
Block B: w = 1, h = 2 or w = 2, h = 1
Block C: w = 1, h = 3 or w = 3, h = 1
C
A B
B
C
A
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 5
Lienig
3.1 Introduction
© KLMH
Example
Given: Three blocks with the following potential widths and heights
Block A: w = 1, h = 4 or w = 4, h = 1 or w = 2, h = 2
Block B: w = 1, h = 2 or w = 2, h = 1
Block C: w = 1, h = 3 or w = 3, h = 1
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 6
Lienig
3.1 Introduction
© KLMH
Example
Given: Three blocks with the following potential widths and heights
Block A: w = 1, h = 4 or w = 4, h = 1 or w = 2, h = 2
Block B: w = 1, h = 2 or w = 2, h = 1
Block C: w = 1, h = 3 or w = 3, h = 1
Solution:
Aspect ratios
Block A with w = 2, h = 2; Block B with w = 2, h = 1; Block C with w = 1, h = 3
This floorplan has a global bounding box with minimum possible area (9 square units).
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 7
Lienig
3.2 Optimization Goals in Floorplanning
© KLMH
Area and shape of the global bounding box
Global bounding box of a floorplan is the minimum axis-aligned rectangle
that contains all floorplan blocks.
Area of the global bounding box represents the area of the top-level floorplan
Minimizing the area involves finding (x,y) locations, as well as shapes,
of the individual blocks.
Total wirelength
Long connections between blocks may increase signal propagation delays
in the design.
Combination of area area(F) and total wirelength L(F) of floorplan F
Minimize ∙ area(F) + (1 – ) ∙ L(F)
where the parameter 0 ≤ ≤ 1 gives the relative importance between area(F)
and L(F)
Signal delays
Static timing analysis is used to identify the interconnects that lie on critical paths.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 8
Lienig
3.3 Terminology
© KLMH
A rectangular dissection is a division of the chip area into a set of blocks
or non-overlapping rectangles.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 9
Lienig
3.3 Terminology
© KLMH
Slicing floorplan and two possible corresponding slicing trees
V V
c H H H H
b
e f a b c a b d
e f e f
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 10
Lienig
3.3 Terminology
© KLMH
Polish expression
c H H
b
e f a b c H A B+ C D EF ++
a
d d V
e f
Bottom up: V and H +
Length 2n-1 (n = Number of leaves of the slicing tree)
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 11
Lienig
3.3 Terminology
© KLMH
Non-slicing floorplans (wheels)
b b
c a
e e
a c
d d
Lienig
3.3 Terminology
© KLMH
Floorplan tree: Tree that represents a hierarchical floorplan
d H
b e
g V H
c
a
f H W h i
h
i a b c d e f g
Horizontal division
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 13
Lienig
3.3 Terminology
© KLMH
In a vertical constraint graph (VCG), node weights represent the heights
of the corresponding blocks.
Two nodes vi and vj, with corresponding blocks mi and mj, are connected
with a directed edge from vi to vj if mi is below mj.
The longest path(s) in the VCG / HCG correspond(s) to the minimum vertical /
horizontal floorplan span required to pack the blocks (floorplan height / width).
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 14
Lienig
3.3 Terminology
© KLMH
Constraint graphs d t
b
e
g b d e
c
a g
f
h a c f
i
h
b d e Vertical
Constraint
g i Graph
s a c f t
s
h
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 15
Lienig
3.3 Terminology
© KLMH
Sequence pair
(… A … B … , … A … B …) → A is left of B
(… A … B … , … B … A …) → A is above B
(… B … A … , … A … B …) → A is below B
(… B … A … , … B … A …) → A is right of B
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 16
Lienig
3.4 Floorplan Representations
© KLMH
3.1 Introduction to Floorplanning
3.2 Optimization Goals in Floorplanning
3.3 Terminology
3.4 Floorplan Representations
3.4.1 Floorplan to a Constraint-Graph Pair
3.4.2 Floorplan to a Sequence Pair
3.4.3 Sequence Pair to a Floorplan
3.5 Floorplanning Algorithms
3.5.1 Floorplan Sizing
3.5.2 Cluster Growth
3.5.3 Simulated Annealing
3.5.4 Integrated Floorplanning Algorithms
3.6 Pin Assignment
3.7 Power and Ground Routing
3.7.1 Design of a Power-Ground Distribution Network
3.7.2 Planar Routing
3.7.3 Mesh Routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 17
Lienig
3.4.1 Floorplan to a Constraint-Graph Pair
© KLMH
Create nodes for every block
In addition, create a source node and a sink one
a b a b
s t
c d e c d e
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 18
Lienig
3.4.1 Floorplan to a Constraint-Graph Pair
© KLMH
Create nodes for every block.
In addition, create a source node and a sink one.
Add a directed edge (A,B) if Block A is below/left of Block B. (HCG)
a b a b
s t
c d e c d e
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 19
Lienig
3.4.1 Floorplan to a Constraint-Graph Pair
© KLMH
Create nodes for every block.
In addition, create a source node and a sink one.
Add a directed edge (A,B) if Block A is below/left of Block B. (HCG)
Remove the redundant edges
that can be derived from other edges by transitivity.
a b a b
s t
c d e c d e
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 20
Lienig
3.4.2 Floorplan to a Sequence Pair
© KLMH
Given two blocks A and B with
Locations: A = (xA,yA) and B = (xB,yB)
If x A w A x B and !( y A h A y B or y B hB y A ),
then A is left of B
If y A h A y B and !( x A w A x B or x B wB x A ),
then A is below B
a b
S : acdbe
c d e S : cdaeb
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 21
Lienig
3.4.3 Sequence Pair to a Floorplan
© KLMH
Start with the bottom left corner
Define a weighted sequence as a sequence of blocks based on width
Each block B has its own width w(B)
Old (traditional) algorithm: find the longest path through edges (O(n2))
Newer approach: find the longest common subsequence (LCS)
Given two weighted sequences S1 and S2, the LCS(S1,S2) is the longest
sequence found in both S1 and S2
LCS(S+R,S-) returns the y-coordinates of all blocks (S+R is the reverse of S+)
The
VLSI Physical length
Design: of LCS(S
From Graph +,S
Partitioning -) and
to Timing LCS(S+
Closure
R
,S-) is the widthChapter
and 3:height, respectively
Chip Planning 22
Lienig
3.4.3 Sequence Pair to a Floorplan
© KLMH
Algorithm: Longest Common Subsequence (LCS)
Input:sequences S1 and S2, weights of n blocks weights
Output: positions of each block positions, total span L
1. for (i = 1 to n) // initialization
2. block_order[S2[i]] = i
3. lengths[i] = 0
4. for (i = 1 to n)
5. block = S1[i] // current block
6. index = block_order[block]
7. positions[block] = lengths[index] // compute block position
8. t_span = positions[block] + weights[block] // finds length of sequence
// from beginning to block
9. for (j = index to n) // update total length
10. if (t_span > lengths[j]) lengths[j] = t_span
11. else break
12. L = lengths[n] // total length is stored here
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 23
Lienig
3.4.3 Sequence Pair to a Floorplan
© KLMH
Example: S1 = <acdbe>, S2 = <cdaeb>,
widths[a b c d e] = [8 4 4 4 4], heights[a b c d e] = [4 2 5 5 6]
Lienig
3.4.3 Sequence Pair to a Floorplan
© KLMH
Example: S1 = <acdbe>, S2 = <cdaeb>,
widths[a b c d e] = [8 4 4 4 4], heights[a b c d e] = [4 2 5 5 6]
Lienig
3.5 Floorplanning Algorithms
© KLMH
3.1 Introduction to Floorplanning
3.2 Optimization Goals in Floorplanning
3.3 Terminology
3.4 Floorplan Representations
3.4.1 Floorplan to a Constraint-Graph Pair
3.4.2 Floorplan to a Sequence Pair
3.4.3 Sequence Pair to a Floorplan
3.5 Floorplanning Algorithms
3.5.1 Floorplan Sizing
3.5.2 Cluster Growth
3.5.3 Simulated Annealing
3.5.4 Integrated Floorplanning Algorithms
3.6 Pin Assignment
3.7 Power and Ground Routing
3.7.1 Design of a Power-Ground Distribution Network
3.7.2 Planar Routing
3.7.3 Mesh Routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 26
Lienig
3.5 Floorplanning Algorithms
© KLMH
Common Goals
Otten, R.: Efficient Floorplan Optimization. Int. Conf. on Computer Design, 499-502, 1983
To minimize the total length of interconnect, subject to an upper bound on
the floorplan area
or
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 27
Lienig
3.5.1 Floorplan Sizing
© KLMH
Shape functions
Otten, R.: Efficient Floorplan Optimization. Int. Conf. on Computer Design, 499-502, 1983
h h
Legal shapes Legal shapes
w w
h*w A
a a Block with minimum width and
height restrictions
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 28
Lienig
3.5.1 Floorplan Sizing
© KLMH
Shape functions
Otten, R.: Efficient Floorplan Optimization. Int. Conf. on Computer Design, 499-502, 1983
h h
w w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 29
Lienig
3.5.1 Floorplan Sizing
© KLMH
Corner points
5 5
2
2
2
w
5 2 5
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 30
Lienig
3.5.1 Floorplan Sizing
© KLMH
Algorithm
This algorithm finds the minimum floorplan area for a given slicing floorplan in
polynomial time. For non-slicing floorplans, the problem is NP-hard.
Top down: From the corner point that corresponds to the minimum top-level
floorplan area, trace back to each block’s shape function to find that block’s
dimensions and location.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 31
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 1: Construct the shape functions of the blocks
3
Block A:
5
5
3
Block B:
4
2
2 4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 32
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 1: Construct the shape functions of the blocks
3 h
Block A:
5
5
3
6
5
4
Block B:
4 2
2
2 4 2 3 4 6 w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 33
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 1: Construct the shape functions of the blocks
3 h
Block A:
5
5
3
6
4
Block B:
3
4 2
2
2 4 2 4 5 6 w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 34
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 1: Construct the shape functions of the blocks
3 h
Block A:
5
5
3
6
4
Block B: hA(w)
4 2
2
2 4 2 6
4 w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 35
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 1: Construct the shape functions of the blocks
3 h
Block A:
5
5
3
6
4
Block B: hA(w)
4 2 hB(w)
2
2 4 2 6
4 w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 36
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 2: Determine the shape function of the top-level floorplan (vertical)
6
4
hA(w)
2 hB(w)
2 4 6 w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 37
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 2: Determine the shape function of the top-level floorplan (vertical)
6
4
hA(w)
2 hB(w)
2 4 6 w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 38
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 2: Determine the shape function of the top-level floorplan (vertical)
h h
8 8
6 6
hC(w)
4 4
hA(w) hA(w)
2 hB(w) 2 hB(w)
2 4 6 w 2 4 6 w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 39
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 2: Determine the shape function of the top-level floorplan (vertical)
h h
8 8
6 6
hC(w)
4 4
hA(w) hA(w) 5x5
2 hB(w) 2 hB(w)
2 4 6 w 2 4 6 w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 40
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 2: Determine the shape function of the top-level floorplan (vertical)
3x9
h h
8 8
4x7
6 6
hC(w)
4 4
hA(w) hA(w) 5x5
2 hB(w) 2 hB(w)
2 4 6 w 2 4 6 w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 41
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 2: Determine the shape function of the top-level floorplan (vertical)
3x9
h h
8 8
4x7
6 6
hC(w)
4 4
hA(w) hA(w) 5x5
2 hB(w) 2 hB(w)
2 4 6 w 2 4 6 w
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 2: Determine the shape function of the top-level floorplan (horizontal)
h h
5x5
6 6
4 4 7x4
2 2
9x3
2 4 6 8 w 2 4 6 8 w
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 3: Find the individual blocks’ dimensions and locations
2 4 6 8 w
Horizontal composition
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 44
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 3: Find the individual blocks’ dimensions and locations
2 4 6 8 w
Horizontal composition
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 45
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
Step 3: Find the individual blocks’ dimensions and locations
2 4 6 8 w
2x4 3x5
Horizontal composition
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 46
Lienig
3.5.1 Floorplan Sizing – Example
© KLMH
5x5
2x4 3x5
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 47
Lienig
3.5.2 Cluster Growth
© KLMH
Iteratively add blocks to the cluster until all blocks are assigned
Only the different orientations of the blocks instead of the shape / aspect ratio
are taken into account
Linear ordering to minimize total wirelength of connections between blocks
h h h
Growth
direction
b b
6 6 c
2 a a a
w w w
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 48
Lienig
3.5.2 Cluster Growth – Linear Ordering
© KLMH
New nets have no pins on any block from the partially-constructed ordering
Terminating nets have no other incident blocks that are unplaced
Continuing nets have at least one pin on a block from the partially-constructed
ordering and at least one pin on an unordered block
Continuing nets
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 49
Lienig
3.5.2 Cluster Growth – Linear Ordering
© KLMH
Gain of each block m is calculated:
N1 GainB = 1 – 1 = 0
A B
N4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 50
Lienig
3.5.2 Cluster Growth – Linear Ordering (Example)
© KLMH
N3
N1 N5
A B C D E
N2 N6
N4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 51
Lienig
N3
N1 N5
© KLMH
A B C D E
N2 N6
N4
A B D E C
N2 N6
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 52
Lienig
N3
N1 N5
© KLMH
A B C D E
N2 N6
N4
A B D E C
N2 N6
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 53
Lienig
N3
N1 N5
© KLMH
A B C D E
N2 N6
N4
A B D E C
N2 N6
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 54
Lienig
N3
N1 N5
© KLMH
A B C D E
N2 N6
N4
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 55
Lienig
3.5.2 Cluster Growth – Linear Ordering (Example)
© KLMH
N3
N1 N5
A B C D E
N2 N6
N4
N3
N1 N4 N5
A B D E C
N2 N6
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 56
Lienig
3.5.2 Cluster Growth – Algorithm
© KLMH
Input: set of all blocks M, cost function C
Output: optimized floorplan F based on C
F=Ø
order = LINEAR_ORDERING(M) // generate linear ordering
for (i = 1 to |order|)
curr_block = order[i]
ADD_TO_FLOORPLAN(F,curr_block,C) // find location and orientation
// of curr_block that causes
// smallest increase based on
// C while obeying constraints
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 57
Lienig
3.5.2 Cluster Growth
© KLMH
Analysis
Can be used to find the initial floorplan solutions for iterative algorithms
such as simulated annealing.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 58
Lienig
3.5.3 Simulated Annealing
© KLMH
Introduction
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 59
Lienig
3.5.3 Simulated Annealing
© KLMH
Cost
Initial solution
Local
optimum Global
optimum
Solution states
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 60
Lienig
3.5.3 Simulated Annealing
© KLMH
What is annealing?
Lienig
3.5.3 Simulated Annealing
© KLMH
Simulated Annealing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 62
Lienig
3.5.3 Simulated Annealing
© KLMH
Simulated Annealing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 63
Lienig
3.5.3 Simulated Annealing – Algorithm
© KLMH
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 64
Lienig
3.5.3 Simulated Annealing – Algorithm
© KLMH
Output: optimized new solution curr_sol
T = T0 // initialization
i=0
curr_sol = init_sol
curr_cost = COST(curr_sol)
while (T > Tmin)
while (stopping criterion is not met)
i=i+1
(ai,bi) = SELECT_PAIR(curr_sol) // select two objects to perturb
trial_sol = TRY_MOVE(ai,bi) // try small local change
trial_cost = COST(trial_sol)
cost = trial_cost – curr_cost
if (cost < 0) // if there is improvement,
curr_cost = trial_cost // update the cost and
curr_sol = MOVE(ai,bi) // execute the move
else
Lienig
3.6 Pin Assignment
© KLMH
3.1 Introduction to Floorplanning
3.2 Optimization Goals in Floorplanning
3.3 Terminology
3.4 Floorplan Representations
3.4.1 Floorplan to a Constraint-Graph Pair
3.4.2 Floorplan to a Sequence Pair
3.4.3 Sequence Pair to a Floorplan
3.5 Floorplanning Algorithms
3.5.1 Floorplan Sizing
3.5.2 Cluster Growth
3.5.3 Simulated Annealing
3.5.4 Integrated Floorplanning Algorithms
3.6 Pin Assignment
3.7 Power and Ground Routing
3.7.1 Design of a Power-Ground Distribution Network
3.7.2 Planar Routing
3.7.3 Mesh Routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 66
Lienig
3.6 Pin Assignment
© KLMH
During pin assignment, all nets (signals) are assigned to unique pin locations
such that the overall design performance is optimized.
Pin
Assignment
90 Pins 90 Pins
90 Connections
90 Pins 90 Pins
Lienig
3.6 Pin Assignment – Example
© KLMH
Given: Two sets of pins (1) Determine the circles
Lienig
3.6 Pin Assignment – Example
© KLMH
(2) Determine the points
Lienig
3.6 Pin Assignment – Example
© KLMH
(2) Determine the points
Lienig
3.6 Pin Assignment – Example
© KLMH
(3) Determine initial mapping
Lienig
3.6 Pin Assignment – Example
© KLMH
(3) Determine initial mapping and (4) optimize the mapping (complete rotation)
Lienig
3.6 Pin Assignment – Example
© KLMH
(3) Determine initial mapping and (4) optimize the mapping (complete rotation)
Lienig
3.6 Pin Assignment – Example
© KLMH
(4) Best mapping (shortest Euclidean distance)
Lienig
3.6 Pin Assignment – Example
© KLMH
(4) Best mapping Final pin assignment
Lienig
3.6 Pin Assignment
© KLMH
Pin assignment to an external block B
H. N. Brady, “An Approach to Topological Pin Assignment”, IEEE Trans. on CAD 3(3) (1984), pp. 250-255
B B B
m m m
l’
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 76
Lienig
3.6 Pin Assignment
© KLMH
Pin assignment to two external blocks A and B
H. N. Brady, “An Approach to Topological Pin Assignment”, IEEE Trans. on CAD 3(3) (1984), pp. 250-255
a7 a6
a5 a8
a8
a7
a a4 b7 b6
1
~d
a1 a6
2
d
b b5 a5
a2 a3 8 b
b1 b4 a4
b8
b2 b3
b7
b6
3
~d
lm~a b5
3
d
b4
b3
d1 a b2
b1
lm~b m
d2 d3 a3
2
~d
b
a2
1
d
m a1
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 77
Lienig
3.7 Power and Ground Routing
© KLMH
3.1 Introduction to Floorplanning
3.2 Optimization Goals in Floorplanning
3.3 Terminology
3.4 Floorplan Representations
3.4.1 Floorplan to a Constraint-Graph Pair
3.4.2 Floorplan to a Sequence Pair
3.4.3 Sequence Pair to a Floorplan
3.5 Floorplanning Algorithms
3.5.1 Floorplan Sizing
3.5.2 Cluster Growth
3.5.3 Simulated Annealing
3.5.4 Integrated Floorplanning Algorithms
3.6 Pin Assignment
3.7 Power and Ground Routing
3.7.1 Design of a Power-Ground Distribution Network
3.7.2 Planar Routing
3.7.3 Mesh Routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 78
Lienig
3.7 Power and Ground Routing
© KLMH
Power-ground distribution for a chip floorplan
G V G V
V
V G
per block or abutted blocks
G
V G
V
V
G
G V G V G V
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 79
Lienig
3.7 Power and Ground Routing
© KLMH
Planar routing
GND VDD
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 80
Lienig
3.7 Power and Ground Routing
© KLMH
Planar routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 81
Lienig
3.7 Power and Ground Routing
© KLMH
Planar routing
GND VDD
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 82
Lienig
3.7 Power and Ground Routing
© KLMH
Mesh routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 83
Lienig
3.7 Power and Ground Routing
© KLMH
Mesh routing
Connector
Power rail
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 84
Lienig
3.7 Power and Ground Routing
© KLMH
Mesh routing
1 Metal5 4 Metal7
16
mesh mesh 16
16
Metal1
rail
VDD GND
Metal4 mesh Metal4 mesh
Metal4
Lienig
Summary of Chapter 3 – Objectives and Terminology
© KLMH
Traditional floorplanning
Assumes area estimates for top-level circuit modules
Determines shapes and locations of circuit modules
Minimizes chip area and length of global interconnect
Additional aspects
Assigning/placing I/O pads
Defining channels between blocks for routing and buffering
Design of power and ground networks
Estimation and optimization of chip timing and routing congestion
Fixed-outline floorplanning
Chip size is fixed, focus on interconnect optimization
Can be applied to individual chip partitions (hierarchically)
Structure and types of floorplans
Slicing versus non-slicing, the wheels
Hierarchical
Packed
Zero-deadspace
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 86
Lienig
Summary of Chapter 3 – Data Structures for Floorplanning
© KLMH
Slicing trees and Polish expressions
Evaluating a floorplan represented by a Polish expression
Horizontal and vertical constraint graphs
A data structure to capture (non-slicing) floorplans
Longest paths determine floorplan dimensions
Sequence pair
An array-based data structure that captures the information
contained in H+V constraint graphs
Makes constraint graphs unnecessary in practice
Floorplan sizing
Shape-function arithmetic
An algorithm for slicing floorplans
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 87
Lienig
Summary of Chapter 3 – Algorithms for Floorplanning
© KLMH
Cluster growth
Simple, fast and intuitive
Not competitive in practice
Simulated annealing
Stochastic optimization with hill-climbing
Many details required for high-quality implementation (e.g., temperature schedule)
Difficult to debug, fairly slow
Competitive in practice
Pin assignment
Peripheral I/Os versus area-array I/Os
Given "ideal locations", project them onto perimeter and shift around,
while preserving initial ordering
Power and ground routing
Planar routing in channels between blocks
Can form rings around blocks to increase current supplied and to improve reliability
Mesh routing
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning 88
Lienig