Ripup & Reroute: Formulation

<< Back [Home] Next >>

The HORE mazerouter includes:

  • Arbitrary initial ordering: Ripup and Reroute allows HORE to arbitrarily route nets in any order during the initial routing phase. Later passes of HORE will correct overloaded nets.

  • Minimum spanning tree-esque routing of multipoint nets: Multipoint nets are decomposed into 2-point nets. A source-target pair is selected from the available nodes on a multipoint net, routed, and then becomes the source for the next source-target pair. The next closest node is selected by calculating the minimum distance from a rectangle, formed from the new source cells, to the remaining nodes. This minimum spanning tree-esque procedure is continued until the entire multipoint net is routed.

  • Depth first prediction: Added to the cost of expansion is the a directional cost that points from the source to the target. Those cells closest to the target are encouraged to expand first, while those cells in the wrong direction are penalized. A "fudge factor" must be included to allow nets to route around blockages, such as the pins of the logic cells. This technique is crucial to providing fast routing solutions since it drastically decreases the number of grid cells expanded.

  • Path Dependent Penalty Costs: As the wavefront expands, the cost of the net is calculated by penalizing for wire bends, vias, and wrong way direction routing. Each of these costs can be set through flags passed to the HORE router, but the default costs are 1 for bends, 10 for vias, and 10 for wrong way wiring. Via costs and wrong way wiring costs share a symbiotic relationship: they are designed to allow nets to route in the wrong direction for short distances but provide cost advantages for using vias and crossing in the grid in another plane, in the correct direction for long distances.

[Top of Page]

The HORE ripup and reroute includes:

  • Path History Dependent Penalty Cost: Non-linear varying of the overloaded node penalty using previous pass experience as a guide. The cost for routing over another net varies inversely proportional to the number of violations on the previous pass wiring of that net. During wavefront expansion, this penalty is added to the cost of expanding a grid, encouraging the net to find another path. The overall effect is to allow those nets with many violation to get worse, sparing good nets from being violated.

  • Ralph Linsker's Trick #1: Violated nets are not removed from the routing solution. They are allowed to remain and affect each successive pass of ripup and reroute (through the path history dependent penalty cost). The final solution also returns routes for violated net; they are, however, marked for manual intersection.

  • Ralph Linsker's Trick #2: The final and most important element to ripup and reroute is a per-pass increase in the overloaded node penalty. In the first passes, the cost for crossing other nets is relatively low. Gradually this cost is increased until the cost for crossing another net is very expensive. At some point this cost is reduced, to escape from local minima routing solutions, and the cost is again increased through the final passes of ripup and reroute.

[Top of Page]


<< Back [Home] Next >>