org.opencores.routing
Class Wavefront

java.lang.Object
  |
  +--org.opencores.routing.Wavefront

public class Wavefront
extends java.lang.Object

Just places wires using frontwave technique.

See Also:
, ,

Field Summary
static float COST_MODIFIER
          Cost modifier, if we failed to place it
private  Graph g
          graph to work on
static int NUM_ITERATIONS
          Number of iteration of ripping-up and re-routing.
 int[] statHopCnt
          Distribution of #hops.
 int[] statLenCnt
          Distribution of used wire connections by length
 int[] statWireCnt
          Distribution of wire length.
private  java.util.Vector tree
          Current net's tree is stored here.
 java.util.Vector unroutedNets
          Vector of all unrouted nets. (failed to route)
 
Constructor Summary
Wavefront(Graph g)
          starts new prerouting session based on graph g
 
Method Summary
(package private)  void findWayBack(Segment s, Heap wave)
          Sets path cost we've searched so far to zeroes.
 int minFreeSegment()
          Returns number of lowest free segments
 boolean route()
          Performs one iteration of routing.
 boolean spread(Net nt)
          Spread wave around specified net in graph
 void spread(Net[] nets)
          Spread wave around all nets in graph
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

NUM_ITERATIONS

public static final int NUM_ITERATIONS
Number of iteration of ripping-up and re-routing.

COST_MODIFIER

public static final float COST_MODIFIER
Cost modifier, if we failed to place it

g

private Graph g
graph to work on

tree

private java.util.Vector tree
Current net's tree is stored here. Vector of Segments.

unroutedNets

public java.util.Vector unroutedNets
Vector of all unrouted nets. (failed to route)

statLenCnt

public int[] statLenCnt
Distribution of used wire connections by length

statWireCnt

public int[] statWireCnt
Distribution of wire length.

statHopCnt

public int[] statHopCnt
Distribution of #hops.
Constructor Detail

Wavefront

public Wavefront(Graph g)
starts new prerouting session based on graph g
Parameters:
g - graph, it should have channels initialized
Method Detail

route

public boolean route()
Performs one iteration of routing.
Returns:
true if successful, false otherwise

spread

public void spread(Net[] nets)
Spread wave around all nets in graph

spread

public boolean spread(Net nt)
Spread wave around specified net in graph

findWayBack

void findWayBack(Segment s,
                 Heap wave)
Sets path cost we've searched so far to zeroes.
Parameters:
s - sink Segment to start from
wave - wave-front currently processed

minFreeSegment

public int minFreeSegment()
Returns number of lowest free segments
Returns:
min free segments