09_DesignAutomation
Transcript of 09_DesignAutomation
-
8/12/2019 09_DesignAutomation
1/52
Lecture 10
Design Automation
ENGR 3430 Digital VLSI
Mark L. Chang
Spring 07
-
8/12/2019 09_DesignAutomation
2/52
181
A Textbook on Design Automation
Sherwani, N. A.
Algorithms for VLSI Physical Design Automation
Many of the figures here come from the book, and:
Scott Hauck, University of Washington
Kia Bazargan, University of Minnesota
-
8/12/2019 09_DesignAutomation
3/52
182
Full Custom
We get exactly what we want.
-
8/12/2019 09_DesignAutomation
4/52
183
Standard Cell
Predefined gates with
standard form factor
-
8/12/2019 09_DesignAutomation
5/52
184
Gate Arrays
-
8/12/2019 09_DesignAutomation
6/52
185
Programmable Array of Logic
-
8/12/2019 09_DesignAutomation
7/52
186
Field-Programmable Gate Arrays
-
8/12/2019 09_DesignAutomation
8/52
187
Physical Design
CAD = Computer Aided Design
Todays circuits are too
complex to do all full custom
CAD is split into two parts:
Synthesis
translating high-level design
into a circuit
Physical Design
translating the circuit into a
layout
Partitioning
Floorplanning
Placement
Global Routing
Detailed Routing
Compaction
-
8/12/2019 09_DesignAutomation
9/52
188
History of CAD
-
8/12/2019 09_DesignAutomation
10/52
189
Partitioning
Circuits can exceed a chips capacity
Or, want to reclaim some hierarchy in
the design
Partitioning
Floorplanning
Placement
Global Routing
Detailed Routing
Compaction
-
8/12/2019 09_DesignAutomation
11/52
190
Floorplanning
Assign portions of the circuit
to physical regions on the chip
Want to reduce routing delay
and area of designPartitioning
Floorplanning
Placement
Global Routing
Detailed Routing
Compaction
-
8/12/2019 09_DesignAutomation
12/52
191
Placement
Pick physical location of each gate
Optimize for delay and area
Partitioning
Floorplanning
Placement
Global Routing
Detailed Routing
Compaction
-
8/12/2019 09_DesignAutomation
13/52
192
Global Routing
Determine loose route for each net
Assign a routing region to each net
Partitioning
Floorplanning
Placement
Global Routing
Detailed Routing
Compaction
-
8/12/2019 09_DesignAutomation
14/52
193
Detailed Routing
Find actual geometric layout of each
net within the assigned routing region
Partitioning
Floorplanning
Placement
Global Routing
Detailed Routing
Compaction
-
8/12/2019 09_DesignAutomation
15/52
194
Compaction
Give it that last squeeze
Squish out any free space due
to non-optimality in all
previous algorithms
Partitioning
Floorplanning
Placement
Global Routing
Detailed Routing
Compaction
-
8/12/2019 09_DesignAutomation
16/52
195
Why Partition?
Decomposition of a complex system into smaller
subsystems
Done hierarchically
Partitioning done until each subsystem has manageable size
Each subsystem can be designed independently Interconnections between partitions minimized
Less hassle interfacing the subsystems
Communication between subsystems usually costly
Partitioning may be necessary at alllevels of design
System, Board, Chip, Circuit
-
8/12/2019 09_DesignAutomation
17/52
196
Partitioning Algorithms
-
8/12/2019 09_DesignAutomation
18/52
197
Kernighan-Lin
Group Migration
or bisectioning
algorithm
Input graph is partitioned
into two equal parts Until the cutsize stops improving
Swap pairs of vertices that improve cutsize
Lock them down
If no improvement possible, exchange pairs that increase
cutsize the least
-
8/12/2019 09_DesignAutomation
19/52
198
Floorplanning
Why?
Early stage of physical design
Determines the location of large blocks
detailed placement easier (divide and conquer!)
Estimates of area, delay, power important design decisions
Impact on subsequent design steps (e.g., routing, heat
dissipation analysis and optimization)
How?
Many different algorithms
-
8/12/2019 09_DesignAutomation
20/52
199
Floorplan Classes
Slicing (recursively defined)
A floorplan that can be partitioned
into two slicing floorplans with a
horizontal or vertical cut line
Non-Slicing
Superset of slicing floorplans Contains the wheel shape too
1234567
167 2345
234 5167
43
6 27 34
1 3
4
5
2
67
Slicing
floorplan
Corresp.Slicing
tree
Non-Slicingfloorplan
-
8/12/2019 09_DesignAutomation
21/52
200
Example
Hierarchical floorplan of order 5
Templates
Floorplan and tree
L5 R5
3
8 5
7
34
6
87
1
2
5
R5
1 6 2
4
-
8/12/2019 09_DesignAutomation
22/52
201
Generic Hierarchical Algorithm
Form a tree with defined fanout restriction
For each node (bottom up) select best grouping
Minimize area, reduce routing delay (estimated)
Cluster nodes based on connectivity
Or, top-down, recursively partition logic Limit number of nodes in a partition
Form partitions on min-cut lines
Floor planning not always used for standard cell Fixed cell sizes mean floor planning is just placement But still used to break up the problem
-
8/12/2019 09_DesignAutomation
23/52
202
Placement
Why?
Placement is the heart of physical design
Determines routing to the first order
Bad placement means bad everything else
What? Pick relative location of each gate
Reduce area and wiring delay
How?
Standard-sized cells placed in rows
Estimate routing needs
-
8/12/2019 09_DesignAutomation
24/52
203
Placement Goals
-
8/12/2019 09_DesignAutomation
25/52
204
Placement Algorithms
Top Down
Partitioning-based placement
Recursive bi-partioning or quadrisection
Iterative improvement
Simulated annealing Force-directed
Constructive
Start with a few cells in the center
Place highly connected cells around them
-
8/12/2019 09_DesignAutomation
26/52
205
Force-Directed
Model
Wires as springs
Solve set of linear equations to find initial placement
Seek to minimize forces on each node
Increase spring constant for critical nodes Must avoid overlapping cells, or collapsing to a point
Use repelling force between unconnected cells
Do not allow moves that result in an overlap
Use repelling forces from areas of congestion
-
8/12/2019 09_DesignAutomation
27/52
206
Force-Directed
Model (details):
Cell distances: either
OR:
Forces:
Objective: find x,y coordinates for all cells such that total
force exerted on each cell is zero.
|||| jiijjiij yyyxxx !="!="
22 )()( jijiij yyxxd !+!="
)()(11
ij
n
j
ij
i
yij
n
j
ij
i
x ykFxkF "#!="#!= $$==
-
8/12/2019 09_DesignAutomation
28/52
207
Annealing
Cooling hot metals to form good crystalline structures
Start at high temperatures atoms move about randomly
Cool metal, leaving enough time for atoms to attract into
crystal lattice
-
8/12/2019 09_DesignAutomation
29/52
208
Simulated Annealing
Move nodes (gate position assignments) randomly
Initial high temperature allow bad moves to happen
Lower temperature accept fewer bad moves
Slowly cool placement to allow good structure to form
-
8/12/2019 09_DesignAutomation
30/52
209
Placement Cost Function
Most use Manhattan routing (NSEW, no diagonals)
A
A
A
B
B
C
C
C
Wirelength estimate = 0.5 * (perimeter of bounding box)
-
8/12/2019 09_DesignAutomation
31/52
210
Placement Cost Function
Most use Manhattan routing (NSEW, no diagonals)
A
A
A
B
B
C
C
C
Wirelength estimate = 0.5 * (perimeter of bounding box)
-
8/12/2019 09_DesignAutomation
32/52
211
Placement Cost Function
Most use Manhattan routing (NSEW, no diagonals)
A
A
A
B
B
C
C
C
Wirelength estimate = 0.5 * (perimeter of bounding box)
-
8/12/2019 09_DesignAutomation
33/52
212
Placement Cost Function
Most use Manhattan routing (NSEW, no diagonals)
A
A
A
B
B
C
C
C
Wirelength estimate = 0.5 * (perimeter of bounding box)
-
8/12/2019 09_DesignAutomation
34/52
213
Placement Cost Function
Most use Manhattan routing (NSEW, no diagonals)
A
A
A
B
B
C
C
C
Wirelength estimate = 0.5 * (perimeter of bounding box)
5
7
8
11 14
10
-
8/12/2019 09_DesignAutomation
35/52
214
Placement Cost Function
Most use Manhattan routing (NSEW, no diagonals)
A
A
A
B
B
C
C
C
Wirelength estimate = 0.5 * (perimeter of bounding box)
5
7
8
11 14
10
1912
24
-
8/12/2019 09_DesignAutomation
36/52
215
SA Cost Function
Simulated Annealing requires a cost function that
captures quality of placement
Smaller cost means better placement
Multiple concerns captured in one metric
Simple example
Might add
Row imbalance penalty
Overlap penalty
Row length
Area estimation
delaypathcriticalciperimetersemicplacementcostnetsi
__*)()(21
+! "=#
-
8/12/2019 09_DesignAutomation
37/52
216
Acceptance Criteria
After we obtain a new placement:
delta = cost(oldPlacement) cost(newPlacement)
if( delta >= 0 )
accept
else if ( random < edelta/temperature ) // 0
-
8/12/2019 09_DesignAutomation
38/52
217
Acceptance Criteria
random < edelta/temperature
Higher temperatures lots of bad moves accepted
Lower temperatures fewer bad moves tolerated
-
8/12/2019 09_DesignAutomation
39/52
218
Cooling Schedule
Initial temperature is very high
Most bad moves accepted
Temperature slowly goes to 0, attempting many moves
at each temperature
Run several iterations at temperature=0 Only accept good moves
Greedily quench the system
-
8/12/2019 09_DesignAutomation
40/52
219
Simulated Annealing Algorithm
-
8/12/2019 09_DesignAutomation
41/52
220
Practical Issues for SA
Cost function
Cost function must be carefully developed (fractal & smooth)
Cost function evaluation must be fast
Balancing quality and runtime requires lotsof testing
Move function Efficient random node selection
Maybe use area windowing
Cooling schedule
Moves per temp, starting temp, cooling rate, freezing point?
Takes lotsof testing
-
8/12/2019 09_DesignAutomation
42/52
221
Global Routing
Determine loose route for each net
Assign a routing region to each net
Partitioning
Floorplanning
Placement
Global Routing
Detailed Routing
Compaction
-
8/12/2019 09_DesignAutomation
43/52
222
Global Routing
Objectives
Minimize total channel
height
Assign feedthroughs
Minimize maximum wirelength
Minimize maximum path length
-
8/12/2019 09_DesignAutomation
44/52
223
Problem Formulation
Utilize a grid abstraction so we can apply graph theory
Coarse vs. fine grained
Vertices: routing regions. Edges: existence of route
Optional weighting of edges
t1 t2 t3t4
t1 t2 t3t4
1 1 1
1 1 1
2 2 1 1
t1 t3t4
t2
-
8/12/2019 09_DesignAutomation
45/52
224
Global Routing Algorithms
Sequential: one net at a time
Concurrent: all nets considered simultaneously
-
8/12/2019 09_DesignAutomation
46/52
225
Maze Routing
-
8/12/2019 09_DesignAutomation
47/52
226
Maze Routing
Pros
Simple
Easy to implement
Guaranteed to find an optimal solution
Can incorporate complex cost functions (along edges)
Cons
Not great for multiple-terminal nets
Large memory requirements if not programmed carefully
-
8/12/2019 09_DesignAutomation
48/52
-
8/12/2019 09_DesignAutomation
49/52
228
A* (A-Star) Maze Routing
-
8/12/2019 09_DesignAutomation
50/52
229
Multi-Terminal Maze Routing
-
8/12/2019 09_DesignAutomation
51/52
230
Minimum Spanning Tree
-
8/12/2019 09_DesignAutomation
52/52
231
Minimum Steiner Tree