public class WorkPool
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static boolean |
output |
Constructor and Description |
---|
WorkPool() |
Modifier and Type | Method and Description |
---|---|
static void |
addPartToGlobalRoutingQueue(RoutingPart rp)
Puts a routingPart the global routingPart-queue
|
static void |
addWorkToPartition(RoutingPart rp,
int partition)
This methods puts the routingPart in the queue of the given workPartition
|
static void |
decreaseSegmentCounter()
decreases the current value of the segment counter
|
static int |
getAdditionalSegments()
Returns the current value of how many additional segments were created
|
static int |
getGlobalRoutingQueueSize()
Returns the size of the global routingPart queue
|
protected static int |
getHighIndexIn_X(int rank) |
protected static int |
getHighIndexIn_Y(int rank) |
protected static int |
getLowIndexIn_X(int rank) |
protected static int |
getLowIndexIn_Y(int rank) |
static RoutingPart |
getPartFromGlobalRoutingQueue()
Get a routing part from the global routingPart-queue
|
static int |
getResponsiblePartitionID_ForPoint(int posX,
int posY)
Get the index of the WorkPartition, which is responsible for this point
|
static RoutingFrame.RoutingSegment |
getRoutingSegment()
Gets a new routing segment for global routing.
|
static int |
getSegmentCounter()
Return the current value of the segment counter
|
static WorkPartition |
getWorkFromPartition()
Get a new work partition for detailed routing.
|
static void |
increaseAdditionalSegments()
Increase the value for additional segments
|
static void |
init(java.util.List<RoutingFrame.RoutingSegment> segmentsToRoute,
int numPartitions,
int size_x,
int size_y,
boolean output)
This method has to be called before any other!
|
static void |
prepare()
Change data structure for real work phase.
|
public static void init(java.util.List<RoutingFrame.RoutingSegment> segmentsToRoute, int numPartitions, int size_x, int size_y, boolean output)
segmentsToRoute
- the segments from Electric, which have to be routednumPartitions
- in how many partitions should the grid be devidedsize_x
- grid size in x directionsize_y
- grid size in y directionpublic static void prepare()
public static RoutingFrame.RoutingSegment getRoutingSegment()
public static RoutingPart getPartFromGlobalRoutingQueue()
public static void addPartToGlobalRoutingQueue(RoutingPart rp)
rp
- routingPartpublic static int getSegmentCounter()
public static void decreaseSegmentCounter()
public static void addWorkToPartition(RoutingPart rp, int partition)
rp
- routingPartpartition
- workPartitionpublic static WorkPartition getWorkFromPartition()
public static int getGlobalRoutingQueueSize()
public static void increaseAdditionalSegments()
public static int getAdditionalSegments()
protected static int getHighIndexIn_X(int rank)
protected static int getHighIndexIn_Y(int rank)
protected static int getLowIndexIn_X(int rank)
protected static int getLowIndexIn_Y(int rank)
public static int getResponsiblePartitionID_ForPoint(int posX, int posY)
posX
- X-coordinateposY
- Y-coordinate