Professional Documents
Culture Documents
Physical Design
Physical Design
Outline
Goal
ai2.1 ai2.2
Implementation Methods
Implementation methods
integrated circuits
programmable arrays - e.g. ROM, FPGA
full custom fabrication
hybrid integrated circuits
thin film - built-in resistors
thick film - ceramics
silicon-on-silicon - multi-chip modules
circuit boards
discrete wiring - wire-wrap
printed circuits
Design rules
Design Methods
Full custom design
Cell-based design
Design Methods
Symbolic design
Procedural design
Design Styles
Gate array design
Design
Styles
Implementation
Methods
Gate Array
Standard Cell
General Cell
Programmable Arrays
Custom
Custom
Cell
Symbolic
Design Methods
Procedural
CAD problems
CAD problems
General Cell
Design
CAD problems
Cache
RAM
Decode
PLA
Datapath
Std. Cells
uCode
ROM
circuit extraction
determine circuit from geometry
compute circuit parameters from geometry
resistance, capacitance, transistor sizes
feed back to logic design, place & route
Verification
design rules
geometry rules - e.g. widths, spacings
electrical rules - e.g. no floating gate inputs
interconnect
compare designed and extracted circuit
pin-point difference if there is one
catch human and CAD tool bugs
Placemen
t
Outline
What is Placement?
Why Placement?
Placement Algorithms
Goal
What is Placement?
Determination of component locations
cells in standard cells
ICs on PC board
pins on ICs
gates in gate array
modules in chip floorplan
Goal
B
E
C
A
Why Placement?
Multi-goal optimization
placement area
routing area
delay
power
symmetry - analog circuits
Objective Functions
Minimize placement cost according to function
want fast but reasonably accurate metrics
area
total area taken by components and estimated wiring
wire length (!= delay)
minimum spanning tree
Steiner tree
half-perimeter of bounding box
wiring congestion
track density along channels
cutset size
density:
avg. 2.2
peak/avg 1.82
1
Algorithm
Placed
Components
Unplaced
Components
Quadratic Placement
w
(
x
x
)
(
y
y
)
ij
i
j
i
j
2
1 T
1 T
T
T
Total cost C(x ) x Qx d x x y Qy d y y const
2
2
C (x, y )
C ( x, y )
Minimum cost :
0,
0
xi
yi
Analytic
Placement
Analytical Placement Framework:
repeat
Solve the convex quadratic program
Spread the cells
until the cells are evenly distributed
Simulated Annealing
Problem
Simulated Annealing
Randomly move components
Cool system
Single Cell
Cluster
Cost Function
Disadvantages
Implementations
Routing
Outline
Goal
What is Routing?
Why Routing?
Routing Algorithms Overview
Global Routing
Detail Routing
What is Routing?
Determination of component wiring
assignment of wires to routing areas
restricted routing problems
e.g. routing channel
detailed wiring within areas
layer assignment
vias
B
E
C
A
Goal
B
E
C
A
Why Routing?
Hand routing impractical
Multi-goal optimization
routing area
delay
cross-talk
clock and power routing
manufacturing yield
Objective Functions
Minimize routing cost according to function
want fast but reasonably accurate metrics
wiring area
channel area = channel density * channel length
wire length
minimum spanning tree
Steiner tree
half-perimeter of bounding box
wiring congestion
track density along channels
L
peak density 4
average 2.2
peak/avg 1.82
area = h*L
Types of Routers
Global routers
function
determine routing areas
assign net to routing areas
minimize global routing area, path lengths
consider congestion, approximate path length
Detail routers
goal
route actual wires
minimize routing area, path lengths
general-purpose - maze, line probe
restricted - channel, switchbox, river routers
Specialized
B
E
B
E
C
A
C
A
B
E
B
E
C
A
C
A
3 4 2
2 1
Multi-commodity flow
S
3
2
1
3
1
2
5
1
10
D
Maze Routing
Place wires and components on grid
Distance metric
Search graph
1
1
1 1
1
w+s
Maze Routing
Shortest path search (Lee-Moore)
3
3 2
3 2 1
3 2
3
9 8 7 6
5
7 6 5 4
8 7 6 5
8 7
9 8
8 7
8 7 6 5
5
4
3
2
1
2
3
4
4
3
2
1
0
1
2
3
3
2
1
0
1
2
3
3
2 3
1 2 3
2 3
3
Algorithm
add source node S into list
costS = 0
for all nodes i on list
if i == destination D
pathcost = costD
break
for j=N,S,E,W neighbors that are not visited
and not occupied
add node j to list
costj = costi+1
mark i as visited
remove node i from list
while i != S do
mark i as path
i = min cost N,S,E,W visited neighbor
Maze Routing
Avoiding blockage
B
A
Solutions
B
B
Algorithm
E
B
A
E
Disadvantages
Channel Routing
Channel
Routing Problem
A
A
track
via
B
dogleg
branch
trunk
Channel Routing
Greedy algorithm
Algorithm
for each column
for each terminal bring in branch
connect to trunk if it exists
create trunk at first empty track
otherwise create new track
move between tracks using heuristics
collapse nets to fewer trunks with spare branch space
reduce distance between net trunks
move nets towards next terminal
connect multiple trunks for a net at end of channel
A
Challenge
A
C
D
B
Problem:
Vertical constraint between A and B.
C and D occupy surrounding tracks
and columns
Solution:
Shift contacts down and to right,
doglegs on each layer to reach them