Beruflich Dokumente
Kultur Dokumente
• Outline
– What is Physical Design
– Design Methods
– Design Styles
– Analysis and Verification
• Goal
– Understand physical design topics
What is Physical Design?
• 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
– topology and geometry constraints
– imposed by physics and manufacturing
– example: wires must be > 2 microns wide
Design Methods
• Symbolic design
– reduce problem to topology
– let tools determine geometry (following design rules)
– can reuse same topology when design rules change
» e.g. shrink wires from 2 microns to 1 micron
– used mostly to design cells
• Procedural design
– “cells” are programs
– module generation - ROMs, RAMs, PLAs
– silicon compilation - module assembly from HLL
• Analysis and verification
– design rule checking - geometry widths, spacings ok?
– circuit extraction - geometry => circuit
– interconnect verification - circuit A == circuit B?
Design
Styles
• Gate array design
– FPGAs are a form of gate array
• Standard cell design
• General cell design
• Full custom design
– still used for analog circuits
Design
Styles
Implementation
Methods Gate Array
Cache Decode
RAM PLA
Datapath
uCode
ROM
Std. Cells
Analysis and Verification
• Analysis
– 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
– Understand placement problem
– Understand placement algorithms
What is Placement?
density:
avg. 2.2
peak/avg 1.82
1 2 4 3 1
Cluster Growth Placement
• Add components to initial placement
– select components strongly connected to placed ones
– place near strongly connected components
• Algorithm
seedComponents = select components for seed
currentPlacement = PLACE(seedComponents, currentPlacement)
while all components not placed do
selectedComponent = SELECT(currentPlacement)
currentPlacement = PLACE(selectedComponent, currentPlacement)
endloop
– results not that good
» often used for initial starting position for other algorithms
– O(n2) complexity for n components
Placed Unplaced
Components Components
Quadratic Placement
•
Let (xi ,yi ) Coordinates of the center of cell i
wij Weight of the net between cell i and cell j
•
x, y Solution vectors
Cost of the net between cell i and cell j
wij ( xi x j ) 2 ( yi y j )2
1
•
2
1 T T 1 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
• Pair Swap
– cells may be of different size
– results in cell overlap
» penalize in cost function
» final postprocess to remove
overlaps
• Single Cell
– often causes cell overlap
– more general
• Cluster
– move connected components
– avoids a lot of unnecessary moves
Simulated Annealing Control
• Annealing Schedule
– cool fast to minimize CPU time
– cool slowly to get close to global optimum
» maintain equilibrium at each temperature
» exponentially slowly to get global optimum
– usually a = 0.95
– a = e-0.7t is closer to optimal
– at each temperature do “enough” moves to reach equilibrium
– stop when nothing moves
• Cost Function
– weighted sum of objectives
– score = w1*WireLength + w2*ChipArea + w3*CellOverlapArea
+ w4*ChipAspectRatio
– change weights to emphasize different goals
» “good” weights found by trial-and-error
» can also change weights as annealing runs
Simulated Annealing Improvements
• Advantages
– general-purpose optimization approach
– finds global optimum
– easily trade speed for quality
– can incorporate many cost functions
– can incorporate complex move functions
» take advantage of problem structure
• Disadvantages
– constraints complicate move and cost functions
» e.g. preplaced blocks, fixed wire lengths
– CPU hog
• Implementations
– Timberwolf, Cadence, Avant! - standard cell placement
– ACACIA - analog circuit transistor placement
Routing
Outline
– What is Routing?
– Why Routing?
– Routing Algorithms Overview
– Global Routing
– Detail Routing
Goal
– Understand routing problem
– Understand overview of routing
algorithms
– Understand shortest path algorithms
What is Routing?
• Determination of component wiring
– assignment of wires to routing areas
» restricted routing problems
» e.g. routing channel
– detailed wiring within areas B C
» layer assignment D
» vias E A
• Goal
– minimize routing area
» minimize wiring length
» minimize channel height
– minimize lengths of critical paths B C
– 100% completion in allocated space D
» fixed wiring areas E A
» e.g. gate arrays, FPGAs
– minimize crosstalk
Why Routing?
• 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
peak density 4
h average 2.2
peak/avg 1.82
area = h*L
1 2 4 3 1
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
– power, clock routers
Example: Global Routing
B C B C
D D
E A E A
B C B C
D D
E A E A
Example: Detailed Routing
1 2 3 4 2 2 3
1 2 3 4 2 1 3
Shortest Path and Multi-Commodity
• Find shortest path between two vertices in weighted graph
– graph with edge weights
– weight is distance, congestion, etc.
– search graph from source to destination
– backtrace to source once destination is found
• Multi-commodity flow
– Each net is a commodity
– Simultaneously route all commodities
S
1
3
3
4
1
2 3
1
5 2 10
1 D
Maze Routing
1
1 1 1
1 1
1
1
Maze Routing
• Shortest path search (Lee-Moore)
– maintain leaf nodes of expansion tree
– at each step add unexplored neighbors to list
3
» with accumulated cost 3 2 3
– stop when target vertex reached 3 2 1 2 3
3 2 1 0 1 2 3
» backtrace for route
3 2 1 2 3
• Guaranteed to find shortest path 3 2 3
3
– large memory requirements - the grid
– long search time - number of vertices marked
– local optimization - only routing one net at a time
16 15 14 13 12 11 10 9 8 7 6 5 4
16 15 14 13 5 4 3
16 15 14 8 7 6 5 4 3 2
9 8 7 6 5 2 1
16 15 14 13 12 11 10 8 7 1 0
13 12 11 9 8 2 1
16 15 14 10 8 7 3 2
16 15 9 8 7 6 5 4 3
Algorithm
B B
A B A B A B
• Solutions
– rip-up and re-route
» remove wire(s) causing blockage
» route blocked wire
» route ripped up wires
– shove-aside
» add dummy grid lines
» squeeze wire through
Line Probe Routing
• Gridless - store list of lines and obstructions
– sorted lists of vertical and horizontal lines
• Algorithm
– from source and destination project 4 horizontal/vertical rays (probes)
– if probes intersect, done - route wires from nodes to intersection
– if probes blocked, choose escape point and send new probes
» a point just past obstruction
E E
B E
E
Line Probe Routing
• Advantages
– small memory requirements - no grid
» store sorted lists of vertical and horizontal segments
– fast
» binary search of segments for blockage and escape points
» # probes << # grid points
– higher precision coordinates - no grid
• Disadvantages
– serial wire at a time - blockages
» similar rip-up and shove-aside approaches to cope
– basic algorithm may not find route when one exists
» need to try more escape points
» degenerates to grid search
Channel Routing
• Channel
– terminals on two sides of rectangle are fixed
– horizontal wires on layer1 - trunks, which run in tracks
– vertical wires on layer2 - branches, which run in columns
• Routing Problem
– minimize number of tracks used => minimizes channel height
– minimize wire lengths, vias
– all wires routed at same time - better overall optimization
A B A
A
track
via
B A
dogleg branch trunk
Channel Routing
• Greedy algorithm
– route column by column rather than track by track
– scan left-right by column
– at each track apply heuristics to bring new nets to an
existing trunk, and move nets between tracks
» greedy - at each column try to minimize tracks and
minimize distance to terminals
– can often use exhaustive search
» number of tracks in a column is small - < 100
– good results, but lots of vias
» lots of track to track movement for each net
Algorithm
A B
B A
Pattern Channel
Routers
• Slide window along channel
– recognize patterns of terminals and occupiedGet more
optimal results
– doglegs
• Challenge
– developing rule set
Problem:
A Vertical constraint between A and B.
C and D occupy surrounding tracks
C
and columns
D Solution:
B Shift contacts down and to right,
doglegs on each layer to reach them
Issues with DFM