penn ese535 spring 2015 -- dehon 1 ese535: electronic design automation day 13: march 3, 2015...
TRANSCRIPT
![Page 1: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/1.jpg)
1Penn ESE535 Spring 2015 -- DeHon
ESE535:Electronic Design Automation
Day 13: March 3, 2015
Routing 1
![Page 2: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/2.jpg)
2Penn ESE535 Spring 2015 -- DeHon
Today
• Routing Cases• Routing Problem
Decomposition• Channel Routing• Variations
– Over-the-cell
Behavioral (C, MATLAB, …)
RTL
Gate Netlist
Layout
Masks
Arch. SelectSchedule
FSM assign
Two-level, Multilevel opt.CoveringRetiming
PlacementRouting
![Page 3: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/3.jpg)
3Penn ESE535 Spring 2015 -- DeHon
Routing Problem
Once know where blocks live (placement),• How do we connect them up?
– i.e. where do the wires go?• In such a way as to:
– Fit in fixed resources– Minimize resource requirements
– (channel width area)
![Page 4: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/4.jpg)
4Penn ESE535 Spring 2015 -- DeHon
Routing Cases
Gate Array
Standard Cell
Full Custom
![Page 5: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/5.jpg)
5Penn ESE535 Spring 2015 -- DeHon
Gate Array
• Fixed Grid• Fixed row and
column width• Must fit into
prefab channel capacity
• Resource-constrainted routing
![Page 6: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/6.jpg)
6Penn ESE535 Spring 2015 -- DeHon
Gate Array
• What freedom can we exploit in routing?
![Page 7: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/7.jpg)
7Penn ESE535 Spring 2015 -- DeHon
Gate Array
• Opportunities– Choice in paths
– Exploit freedom to: • Meet channel
limits• Minimize
channel width
![Page 8: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/8.jpg)
8Penn ESE535 Spring 2015 -- DeHon
Gate Array
• What other paths could the red wire take?
T
S
![Page 9: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/9.jpg)
9Penn ESE535 Spring 2015 -- DeHon
Gate Array
• Opportunities– Choice in paths
– Exploit freedom to: • Meet channel
limits• Minimize
channel width
![Page 10: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/10.jpg)
10Penn ESE535 Spring 2015 -- DeHon
Gate Array
• Opportunities– Choice in paths
– Exploit freedom to: • Meet channel
limits• Minimize
channel width
![Page 11: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/11.jpg)
11Penn ESE535 Spring 2015 -- DeHon
Semicustom Array
• Float channel widths as needed
• How do we optimize area in this case?
![Page 12: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/12.jpg)
12Penn ESE535 Spring 2015 -- DeHon
Semicustom Array
• Float Channel widths as needed
• Area– minimize total
channel widths
A=H*V
H=S Hi
V=S Vi
![Page 13: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/13.jpg)
13Penn ESE535 Spring 2015 -- DeHon
Row-based Standard Cell
• Variable size – Cells– Channels
• Primary route within row– Minimize
tracks in channel
• Vertical feed throughs
![Page 14: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/14.jpg)
14Penn ESE535 Spring 2015 -- DeHon
Standard Cell Gates
• IOs on one or both sides
• Design in Feed-thru
![Page 15: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/15.jpg)
15Penn ESE535 Spring 2015 -- DeHon
Full Custom / Macroblock• Allow arbitrary
geometry– Place larger
cells • E.g. memory
– Datapath blocks
• Less regular, but still have channels…
![Page 16: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/16.jpg)
16Penn ESE535 Spring 2015 -- DeHon
Routing Decomposed
![Page 17: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/17.jpg)
17Penn ESE535 Spring 2015 -- DeHon
Phased Routing
After placement…1. Slice (macroblock case)
– And order channels
2. Global Route– Which channels to use– (suitable approach Monday after break)
3. Channel Route• Today
4. Switchbox Route
![Page 18: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/18.jpg)
18Penn ESE535 Spring 2015 -- DeHon
MacroblockChannel Route
• Slice into pieces• Route each as
channel• Significance of
numbers?
1
2
3
4
5
![Page 19: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/19.jpg)
19Penn ESE535 Spring 2015 -- DeHon
MacroblockChannel Route
• Slice into pieces• Route each as
channel• If work inside out
– Can expand channels as needed
– Complete in one pass 1
2
3
4
5
![Page 20: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/20.jpg)
20Penn ESE535 Spring 2015 -- DeHon
Not all Assemblies Sliceable
• No horizontal or vertical slice will separate
• Prevents ordering that allows us to route in one pass
![Page 21: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/21.jpg)
21Penn ESE535 Spring 2015 -- DeHon
Switchbox Routing
• Box with 3 or 4 sides fixed
• Contrast channel routing with only 2 sides fixed
![Page 22: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/22.jpg)
22Penn ESE535 Spring 2015 -- DeHon
Gate Array Channel
• Global route first– Decide which path each
signal takes– Sequence of channels– Minimize congestion
• Wires per channel segment
![Page 23: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/23.jpg)
23Penn ESE535 Spring 2015 -- DeHon
Gate Array Channel
• Then Channel route each resulting channel
Vertical Channel
HorizontalChannel
![Page 24: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/24.jpg)
24Penn ESE535 Spring 2015 -- DeHon
Std.Cell Channel Route
• Plan feed through
• Channel route each row
![Page 25: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/25.jpg)
25Penn ESE535 Spring 2015 -- DeHon
Channel Routing
• Key subproblem in all variants• Pseudo 1D problem• Given: set of terminals on one or both sides
of channel• Assign to tracks to minimize channel width
A C C D E E M F
K L M C M N N O
![Page 26: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/26.jpg)
26Penn ESE535 Spring 2015 -- DeHon
Standard Cell Area
nand3
All cellsuniformheight
Width ofchanneldeterminedby routing
![Page 27: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/27.jpg)
27Penn ESE535 Spring 2015 -- DeHon
Channel Abstraction
nand3
All cellsuniformheight
Width ofchanneldeterminedby routing
A C C D E E M F
K L M C M N N O
K L M M
M
![Page 28: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/28.jpg)
29Penn ESE535 Spring 2015 -- DeHon
Channel Routing
![Page 29: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/29.jpg)
30Penn ESE535 Spring 2015 -- DeHon
Trivial Channel Routing
• Assign every net its own track– Channel width > N (single output functions)– Chip bisection N chip area N2
![Page 30: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/30.jpg)
31Penn ESE535 Spring 2015 -- DeHon
Trivial Channel Routing
• How can we do better?– What do we want to exploit?
![Page 31: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/31.jpg)
32Penn ESE535 Spring 2015 -- DeHon
Sharing Tracks
• Want to Minimize tracks used• Trick is to share tracks
![Page 32: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/32.jpg)
33Penn ESE535 Spring 2015 -- DeHon
Not that Easy
• With Two sides– Even assigning one track/signal may not
be sufficient
A
B
B
C
C
D
![Page 33: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/33.jpg)
34Penn ESE535 Spring 2015 -- DeHon
Not that Easy
• With Two sides– Even assigning one track/signal may not
be sufficient
A
B
B
C
Bad assignmentOverlap: A,B B,C
C
D
![Page 34: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/34.jpg)
35Penn ESE535 Spring 2015 -- DeHon
Not that Easy
• With Two sides– Even assigning one track/signal may not
be sufficient
A
B
B
C
Valid assignment avoids overlap
C
D
![Page 35: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/35.jpg)
36Penn ESE535 Spring 2015 -- DeHon
Not that Easy
• With Two sides– Even assigning one track/signal may not
be sufficient
A
B
B
C
i.e. there are vertical constraints on ordering
C
D
![Page 36: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/36.jpg)
37Penn ESE535 Spring 2015 -- DeHon
Vertical Constraints• For vertically aligned pins:
– With single “vertical” routing layer– Cannot have distinct top pins on a lower
track than bottom pins• Leads to vertical overlap
– Produces constraint that top wire be higher track than lower
– Combine across all top/bottom pairs• Leads to a Vertical Constraint Graph (VCG)
![Page 37: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/37.jpg)
38Penn ESE535 Spring 2015 -- DeHon
VCG Example
A
B
B
C
C
D
A
B
C
D
![Page 38: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/38.jpg)
39Penn ESE535 Spring 2015 -- DeHon
Channel Routing Complexity
• With Vertical Constraints– Problem becomes NP-complete
• Without Vertical Constraints– Can be solved optimally– Tracks = maximum channel density– Greedy algorithm
![Page 39: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/39.jpg)
40Penn ESE535 Spring 2015 -- DeHon
No Vertical Constraints
Good for:• Single-sided channel
– (no top and bottom pins)• Three layers for routing
– Two vertical channels allow top and bottom pins to cross
– May not be best way to use 3 layers…
![Page 40: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/40.jpg)
41Penn ESE535 Spring 2015 -- DeHon
Left-Edge Algorithm
1. Sort nets on leftmost end position2. Start next lowest track; end=03. While there are unrouted nets with lowest
left position > end of this track– Select unrouted net with lowest left position >
end– Place selected net on this track– Update end position on this track to be end
position of selected net
4. If nets remain, return to step 2
Greedy, optimal.
![Page 41: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/41.jpg)
42Penn ESE535 Spring 2015 -- DeHon
Example: Left-Edge
• Top: a b g b c d f• Bottom: g d f e a c e• Nets:
– a:1—5– b:2—4– c:5—6– d:2—6 – e:4—7– f:3—7– g:1—3
Note: nets (shown asletters here) show up as numbers in conv. channel routing file formats.
![Page 42: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/42.jpg)
43Penn ESE535 Spring 2015 -- DeHon
Example: Left-Edge• Top: a b g b c d f• Bottom: g d f e a c eNets:
– a:1—5– b:2—4– c:5—6– d:2—6 – e:4—7– f:3—7– g:1—3
• Sort Left Edge: – a:1—5– g:1—3– b:2—4– d:2—6 – f:3—7– e:4—7– c:5—6
![Page 43: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/43.jpg)
44Penn ESE535 Spring 2015 -- DeHon
Example: Left-Edge
• Top: a b g b c d f• Bottom: g d f e a c e• Sort Left Edge:
– a:1—5– g:1—3– b:2—4– d:2—6 – f:3—7– e:4—7– c:5—6
– Track 0:– End 0– Add a:1—5– End 5
![Page 44: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/44.jpg)
45Penn ESE535 Spring 2015 -- DeHon
Example: Left-Edge
• Top: a b g b c d f• Bottom: g d f e a c e
• Sort Left Edge: – g:1—3– b:2—4– d:2—6 – f:3—7– e:4—7– c:5—6
– Track 0: a:1—5– Track 1:
– End 0– g:1—3– End 3– e: 4—7– End 7
![Page 45: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/45.jpg)
46Penn ESE535 Spring 2015 -- DeHon
Example: Left-Edge
• Top: a b g b c d f• Bottom: g d f e a c e
• Sort Left Edge: – b:2—4– d:2—6 – f:3—7– c:5—6
– Track 0: a:1—5– Track 1: g:1—3, e:4—7– Track 2:
– End 0– b:2—4– End 4– c:5—6– End 6
![Page 46: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/46.jpg)
47Penn ESE535 Spring 2015 -- DeHon
Example: Left-Edge
• Top: a b g b c d f• Bottom: g d f e a c e
• Sort Left Edge: – d:2—6 – f:3—7
– Track 0: a:1—5– Track 1: g:1—3, 4:e—7– Track 2: b:2—4, c:5—6– Track 3: d:2—6 – Track 4: f:3—7
![Page 47: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/47.jpg)
48Penn ESE535 Spring 2015 -- DeHon
Example: Left-Edge
• Top: a b g b c d f• Bottom: g d f e a c e
• Track 0: a:1—5• Track 1: g:1—3, e:4—7• Track 2: b:2—4, c:5—6• Track 3: d:2—6 • Track 4: f:3—7
![Page 48: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/48.jpg)
49Penn ESE535 Spring 2015 -- DeHon
Constrained Left-Edge
1. Construct VCG2. Sort nets on leftmost end position3. Start new track; end=04. While there are nets that have
No descendents in VCG And left edge > end
1. Place net on track and update end2. Delete net from list, VCG
5. If there are still nets left to route, return to 2
![Page 49: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/49.jpg)
50Penn ESE535 Spring 2015 -- DeHon
Example: Constrained Left-Edge
• Top: a b g b c d f• Bottom: g d f e a c e• Nets:
– a:1—5– b:2—4– c:5—6– d:2—6 – e:4—7– f:3—7– g:1—3
• Vertical Constraints[draw board]• ag• bd• gf• be• ca• dc• fe
c
a
g
f
e
d
b
![Page 50: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/50.jpg)
51Penn ESE535 Spring 2015 -- DeHon
Example: …
• Top: a b g b c d f• Bottom: g d f e a c e• Sort Left Edge:
– a:1—5– g:1—3– b:2—4– d:2—6 – f:3—7– e:4—7– c:5—6
• Track 0:• e:4—7
• Track 1:• f:3—7
• Track 2:• g:1—3
• Track 3:• a:1—5
• Track 4:• c:5—6
• Track 5:• d:2—6
• Track 6:• b:2—4
c
a
g
f
e
d
b
![Page 51: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/51.jpg)
52
Vertical Constraints
• Also give a lower bound on routed channel width– Channel width >= channel density– Channel width >= height of VCG graph
Penn ESE535 Spring 2015 -- DeHon
![Page 52: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/52.jpg)
53Penn ESE535 Spring 2015 -- DeHon
Example: Left-Edge
• Top: a b g b c d f• Bottom: g d f e a c e• Nets:
– a:1—5– b:2—4– c:5—6– d:2—6 – e:4—7– f:3—7– g:1—3
![Page 53: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/53.jpg)
54Penn ESE535 Spring 2015 -- DeHon
Example 2: …
• Top: a a a b e d g c• Bottom: b c d e f g f f • Sort Left Edge:
– b:1—4 – a:1—3– c:2—8– d:3—6 – e:4—5– f:5—8– c:6—7
a
c db
e
f
g
![Page 54: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/54.jpg)
55Penn ESE535 Spring 2015 -- DeHon
Example 2: …
• Top: a a a b e d g c• Bottom: b c d e f g f f • Sort Left Edge:
– b:1—4 – a:1—3– c:2—8– d:3—6 – e:4—5– f:5—8– g:6—7
a
c db
e
f
g
Track 0: fTrack 1: cTrack 2: e, gTrack 3: bTrack 4: dTrack 5: a
![Page 55: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/55.jpg)
56Penn ESE535 Spring 2015 -- DeHon
VCG Cycles
• Top: a a b• Bottom: b c a• VCG:
a
c b
![Page 56: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/56.jpg)
57Penn ESE535 Spring 2015 -- DeHon
VCG Cycles
• No channel ordering satisfies VCG• Must relax artificial constraint of single
horizontal track per signal• Dogleg: split horizontal run into multiple
track segments• In general, can reduce track
requirements a
c b
![Page 57: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/57.jpg)
58Penn ESE535 Spring 2015 -- DeHon
Dogleg Cycle Elimination
• Top: a a b• Bottom: b c a• VCG:
a
c b
• Top: a1 a1/a2 b• Bottom: b c a2• VCG:
a1
c
b
a2
![Page 58: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/58.jpg)
59Penn ESE535 Spring 2015 -- DeHon
Dogleg Cycle Elimination
• Top: a1 a1/a2 b• Bottom: b c a2
VCG:a1
c
b
a2
![Page 59: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/59.jpg)
60Penn ESE535 Spring 2015 -- DeHon
Dogleg Algorithm
1. Break net into segments at pin positions
2. Build VCG based on segments
3. Run constrained on segments rather than full wires
![Page 60: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/60.jpg)
61Penn ESE535 Spring 2015 -- DeHon
Dogleg Example (no cycle)
• Top: 1 1 2 - 2 3• Bottom: 2 3 - 3 4 4
1
3 2
4 1
3a 2a 4
3b 2b
1 1 2a/2b – 2b 3b
2a 3a – 3a/b 4 4
[note: switch to numbers for terminals]
![Page 61: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/61.jpg)
62Penn ESE535 Spring 2015 -- DeHon
No Dogleg
• Top: 1 1 2 - 2 3• Bottom: 2 3 - 3 4 4
1
3 2
4
![Page 62: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/62.jpg)
63Penn ESE535 Spring 2015 -- DeHon
With Dogleg
• Top: 1 1 2a/2b – 2b 3b• Bottom: 2a 3a – 3a/b 4 4
1
3a 2a 4
3b 2b
![Page 63: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/63.jpg)
64
Doglegs
• Exploiting dogleg – Introduces more freedom– Can reduce track requirements
• Reduces height of VCG
• In general, any unused vertical track could support some dogleg
Penn ESE535 Spring 2015 -- DeHon
![Page 64: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/64.jpg)
65Penn ESE535 Spring 2015 -- DeHon
Channel Abstraction
nand3
All cellsuniformheight
Width ofchanneldeterminedby routing
A C C D E E M F
K L M C M N N O
K L M M
M
![Page 65: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/65.jpg)
66
Doglegs
• Exploiting dogleg – Introduces more freedom– Can reduce track requirements
• In general, any unused vertical track could support some dogleg– How select which signal uses track for
dogleg?• Creates a larger optimization problem
– Might support multiple?
Penn ESE535 Spring 2015 -- DeHon
![Page 66: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/66.jpg)
67Penn ESE535 Spring 2015 -- DeHon
Other Freedoms
• Swap equivalent pins– E.g. nand inputs equivalent
• Mirror cells – if allowed electrically
• Choose among cell instances– Permute pins
A B C B A C
A B C C B A
A C B
![Page 67: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/67.jpg)
68Penn ESE535 Spring 2015 -- DeHon
Exploit Freedom To
• Reduce channel density
• Reduce/Eliminate vertical constraints– Cycles– VCG height 1 2
3 2 1 42 1
3 2 1 4
![Page 68: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/68.jpg)
69Penn ESE535 Spring 2015 -- DeHon
Over The Cell
• Limit cell to lower metal– Maybe only up to M1
• Can route over with higher metal
![Page 69: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/69.jpg)
70Penn ESE535 Spring 2015 -- DeHon
Example: OTC• Top: 0 1 6 1 2 3 5• Bottom: 6 3 5 4 0 2 4
![Page 70: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/70.jpg)
71Penn ESE535 Spring 2015 -- DeHon
Over The Cell
• Compute maximal independent set– To find nets can be routed in 1 layer
(planar) over cell– MIS can be computed in O(n2) time
with dynamic programming
• Then route residual connections in channel
• Works on 2-metal if only M1 in cell– Feedthrus in M1
1 2 3 42 43 1
![Page 71: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/71.jpg)
72Penn ESE535 Spring 2015 -- DeHon
Multilayer
• With 3 layer– Can run channel over cells– Put Terminals in center of cell
![Page 72: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/72.jpg)
73Penn ESE535 Spring 2015 -- DeHon
Standard Cell Area
nand3
All cellsuniformheight
Width ofchanneldeterminedby routing
![Page 73: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/73.jpg)
74Penn ESE535 Spring 2015 -- DeHon
Channel Over Cell
![Page 74: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/74.jpg)
75Penn ESE535 Spring 2015 -- DeHon
Route Over Cells
• If channel width < cell height– Routing completely on top of cells
• If channel width > cell height– Cell area completely hidden under routing
channel– More typical case
• Especially for large rows
![Page 75: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/75.jpg)
76Penn ESE535 Spring 2015 -- DeHon
Summary
• Decompose Routing• Channel Routing• Left-Edge• Vertical Constraints• Exploiting Freedom
– Dogleg, pin swapping• Routing over logic
![Page 76: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/76.jpg)
77Penn ESE535 Spring 2015 -- DeHon
Big Ideas• Decompose Problem
– Divide and conquer• Interrelation of components• Structure: special case can solve
optimally• Technique: Greedy algorithm• Use greedy as starting point for more
general algorithm
![Page 77: Penn ESE535 Spring 2015 -- DeHon 1 ESE535: Electronic Design Automation Day 13: March 3, 2015 Routing 1](https://reader037.vdocuments.mx/reader037/viewer/2022110206/56649f495503460f94c6b803/html5/thumbnails/77.jpg)
78Penn ESE535 Spring 2015 -- DeHon
Admin
• Next week Spring Break• Reading for Monday after break online• Andre out week after break
– Monday: Guest lecture– Wednesday: No class (no midterm)
• Assign 7, 8 on routing out