Physical Design 1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

10/26/2017

VLSI PHYSICAL DESIGN AUTOMATION


PROF. INDRANIL SENGUPTA
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Introduction
• Main steps in VLSI physical design
1. Partitioning and Floorplanning
d l l
2. Placement
3. Routing
4. Static timing analysis
5. Signal integrity and crosstalk issues
6. Clock and power timing issues
7. Physical verification and design sign‐off

1
10/26/2017

PARTITIONING

PROF. INDRANIL SENGUPTA


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

What is Partitioning?
System Design

• Decomposition
Decomposition of a complex system into smaller subsystems.
of a complex system into smaller subsystems
• Each subsystem can be designed independently.
• Decomposition scheme has to minimize the interconnections between the 
subsystems.
• Decomposition is carried out hierarchically until each subsystem is of 
manageable size
manageable size.

Module 1 Module 2 Module n Interface Information

2
10/26/2017

An Example of 
48 gates
Partitioningg
Size‐1 =  Size‐2 =  Size‐3 = 
15 16 17

Partitioning at Different Levels
• Can be done at multiple levels:
– System level
System level
– Board level
– Chip level
• Delay implications are different:
– Intrachip :  X
– Intraboard :: 10X
10X
– Interboard : 20X

3
10/26/2017

Different Delays in a Chip

A B X A

10X
10X
C
C
B

20X

Problem Formulation
• Partition a given netlist into smaller netlists such that:
1.
1 IInterconnection between partitions is minimized.
t ti b t titi i i i i d
2. Delay due to partitioning is minimized.
3. Number of terminals is less than a predetermined maximum value.
4. The area of each partition remains within specified bounds.
5. The number of partitions also remains within specified bounds.

4
10/26/2017

Partitioning Techniques
• Broadly two classes of algorithms:
1. Constructive
• Random selection
• Cluster growth
• Hierarchical clustering
2. Iterative‐improvement
p
• Min‐cut
• Simulated annealing

Random Selection
• Randomly select nodes one at a time and place them into 
clusters of fixed size, until the proper size is reached.
l t f fi d i til th i i h d
• Repeat above procedure until all the nodes have been placed.
• Quality/Performance:
– Fast and easy to implement.
– Generally produces poor results.
– Usually used to generate the initial partitions for iterative placement 
algorithms.

10

5
10/26/2017

m : size of each cluster, V : set of nodes
Cluster Growth n  =  |V| / m ;
for (i=1; i<=n; i++)
• Starting with a single  seed = vertex in V with maximum degree;
seed  vertex in V with maximum degree;
node, add other nodes  Vi = {seed};
to form the partitions  V = V – {seed};
based on connectivity. for (j=1; j<m; j++)  
• Number of clusters n can  t = vertex in V maximally connected to Vi;
be an input parameter. Vi = Vi U {t};
V V {t};
V = V – {t}
endfor
endfor

11

Hierarchical Clustering
• Consider a set of objects and group them depending on some 
measure of closeness.
f l
– The two closest objects are clustered first, and considered to be a 
single object for further partitioning.
– The process continues by grouping two individual objects, or an object 
or cluster with another cluster.
– We stop when a single cluster is generated and a hierarchical cluster 
We stop when a single cluster is generated and a hierarchical cluster
tree has been formed.
• The tree can be cut in any way to get clusters.

12

6
10/26/2017

Example
v1
v1
v241 v2413
7 5 7 5 6 v3
v2 1 v24 4 4
v3 1 v3
9 4 4 v5 v5
v4 v5 v5

v24135

13

Find an edge whose 
removal splits the set of 
v24135
vertices into two almost 
equal partitions.
v2413

v241

v24

v2 v4 v1 v3 v5

14

7
10/26/2017

Min‐Cut Algorithm (Kernighan‐Lin)
• Basically a bisection algorithm.
– The input graph is partitioned into two subsets of equal sizes.
h i hi ii di b f l i
• Till the cutsets keep improving:
– Vertex pairs which give the largest decrease in cutsize are exchanged.
– These vertices are then locked.
– If no improvement is possible and some vertices are still unlocked, the 
p p ,
vertices which give the smallest increase are exchanged.

15

Example

16

8
10/26/2017

17

• Drawbacks of K‐L Algorithm
– It is not applicable for hyper‐graphs.
• It considers edges instead of hyper‐edges.
• It cannot handle arbitrarily weighted graphs.
• Partition sizes have to be specified a priori.
– Time complexity is high :: 
p y g ( 3)).
O(n
– It considers balanced partitions only.

18

9
10/26/2017

Extension of K‐L Algorithm
• Unequal sized blocks
– To partition a graph with 2n vertices into two subgraphs of unequal 
sizes n1 and n2:
• Divide the nodes into two subsets A and B, containing MIN(n1,n2) 
and MAX(n1,n2) vertices respectively.
• Apply K‐L algorithm, but restrict the maximum number of vertices 
th t
that can be interchanged in one pass to MIN(n1,n2).
b i t h di t MIN( 1 2)

19

• Unequal sized elements
– To generate a two‐way partition of a graph whose vertices have 
unequal sizes:
• Assume that the smallest element has unit size.
• Replace each element of size s with s vertices which are fully 
connected (s‐clique) with edges of infinite weight.
• Apply K‐L algorithm to the modified graph.

20

10
10/26/2017

Performance Driven Partitioning
• On‐board delay is much larger than on‐chip delay.
– On‐chip delay is of the order of nanoseconds.
On chip delay is of the order of nanoseconds.
– On‐board delay can be in the order of milliseconds.
• If a critical path is cut many times by the partition, the delay in the path 
may be too large to meet the goals of high‐performance systems.
• Goal of partitioning in high‐performance systems:
1. Reduce the cut‐size.
1 Reduce the cut‐size
2. Minimize the delay in critical paths.
3. Timing constraints have to be satisfied.

21

FLOORPLANNING

PROF. INDRANIL SENGUPTA


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

11
10/26/2017

What is Floorplanning?
• Find approximate locations of a set of modules that 
need to be placed on a layout surface.
– Available region typically considered rectangular.
– Modules are also typically rectangular in shape, but there 
can be exceptions (e.g. L‐shaped modules).

23

An Example Floorplan
I/O Pads
Module a

Module b
Block a Block c
Module c
GND VDD
Chip  Block d
Block Pins
Planning Block
Module d
b Block e

Module e

Power Supply Network

24

12
10/26/2017

Problem Definition
• Input:
– n Blocks with areas A
Bl k ith A1, A
A2, ... , A
An
– Bounds ri and si on the aspect ratio of block Bi
• Output:
– Coordinates (xi, yi), width wi and height hi for each block 
such that hi wi = Ai and ri  hi/wi  si
• Objective:
– Minimize area; reduce wire length for critical lengths.

25

Floorplanning and Placement: Differences
• The problems are similar in nature.
• Main differences:
M i diff
– Floorplanning:‐ Some of the blocks may be flexible, and 
the exact locations of the pins are not yet fixed.
– Placement:‐ All blocks have well‐defined geometrical 
shapes, with defined pin locations. We keep separate
shapes, with defined pin locations. We keep separate 
space for routing.

26

13
10/26/2017

• Points to note:
– Floorplanning problem is more difficult as compared 
to placement.
• Multiple choice for the shape of a block.
– In
In some of the VLSI design styles, the two problems 
some of the VLSI design styles, the two problems
are identical.

27

An Example for Rigid  Module Width Height

Blocks A
B
1
1
1
3
C 1 1
D 1 2
E 2 1

Some of the Feasible Floorplans


E E B
A C B D B E
D
D A C A C

28

14
10/26/2017

Design Style Specific Issues
• Full Custom
– All the steps required for general cells.
• Standard Cell
– Dimensions of all cells are fixed.
– Floorplanning problem is simply the placement problem.
– For large netlists, two steps:
• First do global partitioning.
• Next carry out placement for the individual regions.
• Gate Array
– Floorplanning problem same as placement problem.

29

Estimating Cost of a Floorplan
• The number of feasible solutions of a floorplanning problem 
y g
is very large.
– Finding the best solution is NP‐hard.
• Several criteria used to measure the quality of floorplans:
a) Minimize area
b) Minimize total length of wire
c) Maximize routability
Maximize routability
d) Minimize delays
e) Any combination of above

30

15
10/26/2017

• How to determine area?
– Not
Not difficult.
difficult
– Can be easily estimated because the dimensions of each block is 
known.
– Area A computed for each candidate floorplan.

31

• How to determine wire length?
– A coarse measure is used.
– Based on a model where all I/O pins of the blocks are merged and 
assumed to reside at its center.
– Overall wiring length  L = i,j (cij * dij) 
where   cij : number of connections between blocks i and j  
j
dij :  Manhattan distances between the
centres of rectangles of blocks i and j

32

16
10/26/2017

• Typical cost function used:


C t = w1
Cost 1 * A + w22*L
where w1 and w2 are user-specified parameters.

33

Dead Space
• Dead space is the space that is wasted:

Dead space
• Minimizing area is the same as minimizing deadspace. 
• Dead space percentage is computed as: (A ‐ iAi) / A  100%

34

17
10/26/2017

Slicing Structure
• A rectangular dissection that can be obtained by repeatedly splitting 
g y g
rectangles by horizontal and vertical lines into smaller rectangles.
• Slicing Tree:
– A binary tree that models a slicing structure.
– Each node represents a vertical cut line (V), or a horizontal cut line (H).
• A third kind of node called Wheel (W) appears for non‐sliceable 
floorplans (discussed later).
– Each leaf is a basic block (rectangle).

35

A Slicing Floorplan and Two Slicing Trees
V V

c H H H H
b
e f a b c H a b d H
a
d d V c V

e f e f

36

18
10/26/2017

Polish Expression
• V: |   H: −
V • For n number of 
leaves, length of the 
ea es, e g o e
c H H expression is 2n‐1
b
e f a b c H A B − C D E F | − − |

a
d d V

e f

37

A Non‐Slicing Floorplan
• One that may not be obtained by repetitively subdividing 
alone.
l
• Also called a WHEEL.

b b
c a
e e
a c
d d

38

19
10/26/2017

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

39

Polar Graph Representation
• An alternate graph representation of floorplan.
• Each floorplan
Each floorplan is modeled by a pair of directed acyclic graphs:
is modeled by a pair of directed acyclic graphs:
– Horizontal polar graph
– Vertical polar graph
• For horizontal (vertical) polar graph,
– Vertex represents vertical (horizontal) channel
– Edge indicates that the 2 channels are on 2 sides of a block
Ed i di h h 2 h l 2 id f bl k
– Edge weight indicates the width (height) of the block

40

20
10/26/2017

Polar Graph 

Vertical Polaar Graph
Example

Horizontal Polar Graph

41

FLOORPLANNING ALGORITHMS

PROF. INDRANIL SENGUPTA


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

21
10/26/2017

Floorplanning Algorithms 
• Several broad classes of algorithms:
– Integer programming based
– Rectangular dual graph based
– Hierarchical tree based
– Simulated annealing based
– Other variations

43

Integer Linear Programming Formulation
• The problem is modeled as a set of linear equations
using 0/1 integer variables
variables.
• ILP solver used to obtain optimal solution based on a
defined cost function.
• Can be used only for small problem instances.
– Very high computational complexity.

44

22
10/26/2017

Rectangular Dual‐Graph Approach
• Basic Concept:
–OOutput of partitioning algorithms represented by a graph.
t t f titi i l ith t db h
– Floorplan obtained by converting the graph into its 
rectangular dual.
• The rectangular dual of a graph satisfies the following 
properties:
p p
– Each vertex corresponds to a distinct rectangle.
– For every edge, the corresponding rectangles are adjacent.

45

A Rectangular Floorplan & its Dual Graph
• Without loss of generality, we  1
assume that a rectangular
assume that a rectangular  2

floorplan contains no cross  3 4
5
junctions.
• Under this assumption, the dual  1 2
graph of a rectangular floorplan
is a planar triangulated graph 
(PTG).
3 4 5

46

23
10/26/2017

Contd.
• Every dual graph of a rectangular floorplan (without cross junction)
is a PTG. 1 4

1 2 Replace by 1 2

4 3 4 3
2 3

• However, not every PTG corresponds to a rectangular floorplan.


Complex 
triangle

47

Drawbacks
• An interesting approach to floorplanning.
• The main problem concerns the existence of the rectangular dual, i.e. the 
The main problem concerns the existence of the rectangular dual i e the
elimination of complex triangles.
– Select a minimum set E of edges such that each complex triangle has at least 
one edge in E.
– A vertex can be added to each edge of E to eliminate all complex triangles.
– The weighted complex triangle elimination problem has been shown to be NP‐
complete.
l
• Some heuristics are available.

October 17 CAD for VLSI 48

24
10/26/2017

Hierarchical Approach
• Widely used approach to floorplanning.
– Based on a divide‐and‐conquer paradigm.
– At each level of the hierarchy, only a small number of 
rectangles are considered.
• A small graph, and all possible floorplans. 
a
a b c
b c a c a b
c b

49

• After an optimal configuration for the three modules has been 
d
determined, they are merged into a larger module.
i d h di l d l
• The vertices ‘a’, ‘b’, ‘c’ are merged into a super vertex at the 
next level.
• The number of floorplans increases exponentially with the 
number of modules ‘d’ considered at each level.
b f d l ‘d’ d d hl l
– ‘d’ is thus limited to a small number (typically d < 6).

50

25
10/26/2017

• All possible floorplans for:

d = 2

d = 3

51

Hierarchical Approach :: Bottom‐Up
• Hierarchical approach works best in bottom‐up fashion.
• Modules are represented as vertices of a graph, while 
d l d f h hl
edges represent connectivity.
– Modules with high connectivity are clustered together.
• Number of modules in each cluster  d.
– An optimal floorplan for each cluster is determined by 
exhaustive enumeration.
– The cluster is merged into a larger module for high‐level 
processing.
52

26
10/26/2017

• A Greedy Procedure
– Sort the edges in decreasing weights.
– The heaviest edge is chosen, and the two modules of 
the edge are clustered in a greedy fashion.
• Restriction: number of modules in each cluster  d.
– In
In the next higher level, vertices in a cluster are 
the next higher level vertices in a cluster are
merged, and edge weights are summed up 
accordingly.

October 17 CAD for VLSI 53

• Problem
– SSome lightweight edges may be chosen at higher levels in the 
li h i h d b h hi h l l i h
hierarchy, resulting in adjacency of two clusters of highly incompatible 
areas.
• Possible solution
– Arbitrarily assign a small cluster to a neighboring cluster when their 
sizes will be too small for processing at a higher level of the hierarchy.

54

27
10/26/2017

Example
a 3 c
2
10 3 10 e
1
b 3 d
a c a c
e
b d b e
d

Greedy clustering Merging small clusters

55

Hierarchical Approach :: Top‐Down
• The fundamental step is the partitioning of modules.
– Each partition is assigned to a child floorplan.
E h titi i i dt hild fl l
– Partitioning is recursively applied to the child floorplans.
• Major issue here is to obtain balanced graph 
partitioning.
– k‐way partitioning, in general.
• Not very widely used due to the difficulty of obtaining 
balanced partitions.

56

28
10/26/2017

Simulated Annealing
• Important issues in the design of a simulated annealing 
optimization problem:
ti i ti bl
1. The solution space.
2. The movement from one solution to another.
3. The cost evaluation function.
• A solution by Wong is applicable to sliceable floorplans only.
– Floorplan can be represented by a tree.
– Postfix notations used for easy representation and manipulation.

October 17 CAD for VLSI 57

Some Notations
• Dissection operators defined:
– ijH
j means rectangle j is on top of rectangle i.
g j p g
– ijV means rectangle j is on left of rectangle i.
• Normalized Polish expression:
– A Polish expression corresponding to a floorplan is called normalized if it 
has no consecutive H’s or V’s.
– Used for the purpose of removing redundant solutions from the solution 
p p g
space.
• Several Polish expressions may exist for the same slicing floorplan.
• Same floorplan can have more than one slicing tree.

58

29
10/26/2017

Example: Two tree representations of a floorplan

1
3 4
2

1 2 – 3 4 | | V V
1 2 – 3 | 4 |
H V V 4

1 2 3 4
H 3 Normalized
1 2

59

Parameters of the Algorithm 
• Solution Perturbations (Move)
a) Swap two adjacent operands
b) Complement a series of operators between two operands (called a 
chain).   V = H  and H = V
c) Swap two adjacent operand and operator.
• We accept a move only it is results in a normalized 
expression.
– Only move “c” may result in a non‐normalized solution.
– We need to check only when move “c” is applied.

60

30
10/26/2017

• Typical cost function:
yp
Cost  =  w1 * A  +  w2 * L
where A is the area of the smallest rectangle 
enveloping the given basic rectangles, L is the overall 
interconnection length, w
g 1 & w2 are user‐specified 
p
parameters.

61

An Example
1 2 – 3 – 4 |
3
Move Move
a 3 b 2 4
4
3 4
1 2 1 2 1

1 2 | 4 – 3 | 1 2 | 3 – 4 | Move


c

2 4
1 2 – 3 4 – | 1 3

62

31
10/26/2017

Rectangular and L‐shaped Blocks
• Possible shapes:

• Note that L‐shaped 
blocks can be 
produced  by merging 
rectangular blocks.
• Can generate non‐
slicing floorplans.
slicing floorplans

PIN ASSIGNMENT

PROF. INDRANIL SENGUPTA


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

32
10/26/2017

Introduction
• The purpose is to define the signal that each pin will receive.
• It can be done 
It can be done
– During floorplanning
– During placement 
– After placement is fixed
• For un‐designed blocks, a good assignment of pins improves 
placement.
• If the blocks are already designed, still some pins can be exchanged.

65

Pin Assignment
• Input:
– A placement of blocks.
A placement of blocks
– Number of pins on each block, possibly an ordering.
– A netlist.
• Requirements:
– To determine the pin locations on the blocks.
To determine the pin locations on the blocks
• Objectives:
– To minimize net‐length.
66

33
10/26/2017

• Functionally equivalent pins:
– Exchanging the signals does not affect the circuit.
g g g
• Equipotential pins:
– Both are internally connected and represent the same net.

A C A,B ::  functionally equivalent

B D C,D ::  equipotential

67

Problem Formulation
• Purpose is to optimize the assignment of nets within a 
f
functionally equivalent (or equipotential) pin groups.
i ll i l ( i i l) i
• Objective:
– To reduce congestion or reduce the number of crossovers.

68

34
10/26/2017

Classification of Algorithms
Pin Assignment Algorithms

General Techniques Special Techniques
Concentric Circle Mapping
Channel Pin Assignment
Channel Pin Assignment
Topological Method
Nine Zone Method

69

Concentric Circle Mapping
Given: Two sets of pins (1) Determine the circles

70

35
10/26/2017

(2) Determine the points

71

(3) Determine initial mapping and (4) optimize the mapping (complete 
rotation)

72

36
10/26/2017

(4) Best mapping  Final pin assignment

73

Pin Assignment to an External Block B

B B B

m m m

l’

74

37
10/26/2017

Topological Pin Assignment
• Similar to concentric circle mapping.
• Easier to complete pin assignment
Easier to complete pin assignment.
– When there is interference from other components and barriers.
– For nets connected to more than two pins.
• If a net has been assigned to more than two pins, then the pin closest to the 
center of the primary component is chosen.
• Pins of primary component are mapped onto a circle as before.
i f i d i l b f
• Beginning at the bottom of the circle, and moving clockwise, the pins are assigned 
to nets.

75

Nine Zone Method
• Based on zones in a Cartesian co‐ordinate system.
• The center of the co‐ordinate system is located inside a 
group of interchangeable pins on a component.
– This component is called pin class.
• A net rectangle is defined by each of the nets 
connected to the pin class
connected to the pin class.
– There are nine zones in which this rectangle can be 
positioned.

76

38
10/26/2017

The Nine Pin Zones
4 7 1

6 5

3 8 2

October 17 77

Channel Pin Assignment
• A significant portion of the chip area is used for channel routing.
– After
After the placement phase, the position of terminals on the boundaries of a 
the placement phase the position of terminals on the boundaries of a
block are not fixed.
– They may be moved before routing begins.

• Yang & Wong proposed a dynamic programming formulation to the 
channel pin assignment problem.

78

39
10/26/2017

Integrated Approach
• Better understanding of the different stages in physical 
design automation over the years.
– Attempts are being made to merge some steps of the design cycle.
– For example, floorplanning and placement are considered together.
– Sometimes, placement and routing stages can also be combined 
together
together.

October 17 79

40

You might also like