routing 2 l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Routing 2 PowerPoint Presentation
Download Presentation
Routing 2

Loading in 2 Seconds...

play fullscreen
1 / 12

Routing 2 - PowerPoint PPT Presentation


  • 118 Views
  • Uploaded on

Outline Maze Routing Line Probe Routing Channel Routing Goal Understand maze routing Understand line probe routing. Routing 2. Place wires and components on grid grid size = wire width + spacing works best if all wire widths and spacings are equal grid squares occupied Distance metric

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Routing 2' - gates


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
routing 2
Outline

Maze Routing

Line Probe Routing

Channel Routing

Goal

Understand maze routing

Understand line probe routing

Routing 2
maze routing
Place wires and components on grid

grid size = wire width + spacing

works best if all wire widths and spacings are equal

grid squares occupied

Distance metric

each square has 4 neighbors unit cost away

Search graph

node for each square

unit-cost edge to 4 neighboring nodes

w+s

1

1

1

1

1

1

1

1

Maze Routing
maze routing3
Shortest path search (Lee-Moore)

maintain leaf nodes of expansion tree

at each step add unexplored neighbors to list

with accumulated cost

stop when target vertex reached

backtrace for route

Guaranteed to find shortest path

large memory requirements - the grid

long search time - number of vertices marked

local optimization - only routing one net at a time

3

3

2

3

3

2

1

2

3

3

2

1

0

1

2

3

3

2

1

2

3

3

2

3

3

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

15

9

8

7

6

5

4

3

16

Maze Routing
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

Algorithm
maze routing5
Avoiding blockage

wire at a time => can block wires

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

A

A

A

B

B

A

B

A

B

A

B

Maze Routing
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

Line Probe Routing

E

E

B

E

A

E

line probe routing7
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

Line Probe Routing
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

Channel Routing

A

B

A

A

track

via

B

A

branch

trunk

dogleg

channel routing9
Left edge algorithm

one trunk per net

trunks on one layer, branches on other

sort trunks by left edge

scan trunks, put all that fit into first track

allocate new tracks as necessary

repeat scanning until done

add vertical branches

ignores vertical constraints

can add doglegs later

may need more tracks

advantage

minimum wire length, vias

not very optimal

31 tracks on “Deutsch’s difficult example”

density is 19 tracks

Channel Routing

B

A

B

A

B

A

B

A

channel routing10
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

Channel Routing
algorithm11
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

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

Pattern Channel Routers

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

A

C

D

B