left edge algorithm
DESCRIPTION
Left edge algorithm pptTRANSCRIPT
WIRE ROUTING BY OPTIMIZING CHANNEL ASSIGNMENT WITHIN LARGE APERTURES
- Vaibhav Damle- Amit Tamboli
Left-Edge Algorithm• Proposed by Hashimoto and Stevens in 1971• Regarded as the first channel routing
algorithm• Can be used in solving Channel Routing
Problems• Originally used in PCB design• Can be applied on VLSI physical design
2
3
Basic Left-Edge Algorithm• Attempts to maximize placement of horizontal
segments in each track• No vertical constraints• HV-layer model is used• Doglegs are not allowed• Produces optimal routing solution with
minimum # of tracks(If no vertical constraint)
Algorithm1. Sort all nets on their leftmost end positions.2. Select the net with lowest left position; place it
on the first available track; delete net from list.3. Continue scanning the list and select from it
nets that do not overlap with the nets assigned to this track; Assign the nets to the current track and delete from list.
4. If list ≠ null then goto 2.5. Exit
5
N2
N1
N3
N4
N5
N6
N7
N8
N9
N10
66
N2
N1
N3
N4
N5
N6
N7
N8 N10
N9
N1 N3N2 N5N4 N10N9N6 N8N7
The Left-Edge Algorithm (cont’d)Step 1: Build VCG
7
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
8
Consider horizontal segments of N1, N4, and N10 (the nets that do not have ancestors)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
9
N1 has the smallest x coordinate N1 and N4 cannot be placed on the same track N1 and N10 can be placed on the same track Place N1 and N10 on the highest track
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
10
N1 has the smallest x coordinate N1 and N4 cannot be placed on the same track N1 and N10 can be placed on the same track Place N1 and N10 on the highest track
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
11
Update the VCG (remove N1 and N10 from the VCG)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
12
Update the VCG (remove N1 and N10 from the VCG)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
13
Consider horizontal segments of N4 and N7 (the nets that do not have ancestors)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
14
Consider horizontal segments of N4 and N7 (the nets that do not have ancestors)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
15
Consider horizontal segments of N4 and N7 (the nets that do not have ancestors) N4 has the smallest x coordinate N4 and N7 cannot be placed on the same track Place N4 on the second highest track
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
16
Consider horizontal segments of N4 and N7 (the nets that do not have ancestors) N4 has the smallest x coordinate N4 and N7 cannot be placed on the same track Place N4 on the second highest track
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
17
Update the VCG (remove N4 from the VCG)
The Left-Edge Algorithm (cont’d)Step 2: Place horizontal segments
18
Update the VCG (remove N4 from the VCG) Repeat the placement iterations …
The Left-Edge Algorithm (cont’d)- Result of the Example
19
The Left-Edge Algorithm (cont’d)- Result of the Example
20
N1 = 5N2 = 1N3 = 2N4 = 4N5 = 3N6 = 2N7 = 3N8 = 1N9 = 2N10 = 5
(The Output of Your Channel Router)
What if VCG is Cyclic• Left Edge cannot handle Cyclic VCG
Solution - Doglegging
\
Improvement• Doglegging can also reduce the height of
channel.
# of Tracks – 3 (w/o Doglegging)
# of Tracks – 2 (w/ Doglegging)
Summary• With 2 layer modeling, Basic Left Edge
Algorithm produces minimum # of Tracks
• VCG is used to remove vertical constraints
• Cyclic VCG is solved using doglegging.
Questions?
THANK YOU!