public abstract class SeaOfGatesEngine
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
class |
SeaOfGatesEngine.GlobalRouter |
static class |
SeaOfGatesEngine.GRBucket |
static class |
SeaOfGatesEngine.GRNet |
static class |
SeaOfGatesEngine.GRWire |
static interface |
SeaOfGatesEngine.Handler
Public interface that encapsulates interaction of SeaOfGatesEngines with outer environment
|
class |
SeaOfGatesEngine.NeededRoute
Class to hold a route that must be run.
|
static class |
SeaOfGatesEngine.OrderedSearchVertex
SEARCH VERTICES
|
static class |
SeaOfGatesEngine.PossibleEndpoint
Class to define a single endpoint possibility for a waveform.
|
static class |
SeaOfGatesEngine.PossibleEndpoints
Class that defines the endpoint of a waveform,
which can be a single point, a rectangle, or a list of coordinates.
|
static class |
SeaOfGatesEngine.RouteAddUnrouted |
class |
SeaOfGatesEngine.RouteArc |
static class |
SeaOfGatesEngine.RouteNode |
static class |
SeaOfGatesEngine.RouteResolution |
static class |
SeaOfGatesEngine.RoutesOnNetwork |
static class |
SeaOfGatesEngine.SearchVertex
Class to define a vertex in the Dijkstra search.
|
static class |
SeaOfGatesEngine.SearchVertexAddon
Class to store additional geometry needed by SearchVertex contacts to ensure minimum area.
|
static class |
SeaOfGatesEngine.SOGBound
Class to define an R-Tree leaf node for geometry in the blockage data structure.
|
static class |
SeaOfGatesEngine.SOGNetID |
static class |
SeaOfGatesEngine.SOGPoly |
static class |
SeaOfGatesEngine.SOGVia
Class to define an R-Tree leaf node for vias in the blockage data structure.
|
class |
SeaOfGatesEngine.Wavefront
Class to define a routing search that advances a "wave" of search coordinates from the starting point
to the ending point.
|
Modifier and Type | Field and Description |
---|---|
static SeaOfGatesEngine.SearchVertex |
svAbandoned |
static SeaOfGatesEngine.SearchVertex |
svAborted |
static SeaOfGatesEngine.SearchVertex |
svExhausted |
static SeaOfGatesEngine.SearchVertex |
svLimited |
Constructor and Description |
---|
SeaOfGatesEngine() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
checkAbort()
Check if we are scheduled to abort.
|
protected void |
debug(java.lang.String msg)
Log a message at the DEBUG level.
|
protected java.lang.String |
describe(ArcInst ai)
Method to describe this ArcInst as a string.
|
protected java.lang.String |
describe(ArcProto ap)
Method to describe this ArcProto as a string.
|
protected java.lang.String |
describe(NodeInst ni)
Method to describe this NodeInst as a string.
|
protected java.lang.String |
describe(NodeProto np)
Method to describe this NodeProto as a string.
|
static java.lang.String |
describeMetal(int metal,
int color) |
SeaOfGatesEngine.GlobalRouter |
doGlobalRouting(Cell cell,
com.sun.electric.tool.routing.seaOfGates.SeaOfGatesEngine.RouteBatch[] routeBatches,
com.sun.electric.tool.routing.seaOfGates.SeaOfGatesEngine.RouteBatch[] fakeBatches,
double wirePitch)
GLOBAL ROUTER
|
protected abstract void |
doRoutingParallel(int numberOfThreads,
java.util.List<SeaOfGatesEngine.NeededRoute> allRoutes)
Stub for parallel routing.
|
protected void |
error(java.lang.String msg)
Log a message at the ERROR level.
|
protected Environment |
getEnvironment() |
ErrorLogger |
getErrorLgger()
Method to retrieve ErrorLogger associated with SoG
|
RTNode<SeaOfGatesEngine.SOGBound> |
getMetalTree(Layer lay)
Method to return an R-Tree of blockages on a given metal Layer.
|
int |
getNumMetals()
Method to return the number of metal layers being considered in routing.
|
SeaOfGates.SeaOfGatesOptions |
getPrefs()
Method to return the preferences in this SeaOfGatesEngine.
|
Layer |
getPrimaryMetalLayer(int layNum)
Method to return the primary metal Layer associated with a layer number.
|
java.lang.String |
getRoutedNetRatio() |
Technology |
getTech()
Method to return the technology considered in routing.
|
Layer |
getViaLayer(int layNum)
Method to return the via Layer associated with a layer number.
|
protected void |
info(java.lang.String msg)
Log a message at the INFO level.
|
void |
routeIt(SeaOfGatesEngine.Handler handler,
Cell cell,
boolean quiet)
This is the public interface for Sea-of-Gates Routing when done in batch mode.
|
void |
routeIt(SeaOfGatesEngine.Handler handler,
Cell cell,
boolean quiet,
java.util.List<ArcInst> arcsToRoute)
This is the public interface for Sea-of-Gates Routing when done in batch mode.
|
void |
routeIt(SeaOfGatesEngine.Handler handler,
Cell cell,
boolean quiet,
java.util.List<ArcInst> arcsToRoute,
SeaOfGates.SeaOfGatesCellParameters sogp)
This is the public interface for Sea-of-Gates Routing when done in batch mode.
|
java.util.Iterator<SeaOfGatesEngine.SOGBound> |
searchMetalTree(Layer lay,
java.awt.geom.Rectangle2D bound) |
void |
setPrefs(SeaOfGates.SeaOfGatesOptions p)
Method to set the preferences in this SeaOfGatesEngine.
|
protected void |
setProgressNote(java.lang.String message)
Method to set a text message in the progress dialog.
|
protected void |
setProgressValue(int done,
int total)
Method to update the progress bar
|
protected void |
trace(java.lang.String msg)
Log a message at the TRACE level.
|
protected void |
warn(java.lang.String msg)
Log a message at the WARN level.
|
protected void |
warn(java.lang.String msg,
Cell cell,
java.util.List<EPoint> linesToShow,
java.util.List<PolyBase> polysToShow)
Log a message at the WARN level including
ErrorLogger
|
public static SeaOfGatesEngine.SearchVertex svAborted
public static SeaOfGatesEngine.SearchVertex svExhausted
public static SeaOfGatesEngine.SearchVertex svLimited
public static SeaOfGatesEngine.SearchVertex svAbandoned
public void routeIt(SeaOfGatesEngine.Handler handler, Cell cell, boolean quiet)
handler
- interaction with outer environmentcell
- the cell to be Sea-of-Gates-routed.public void routeIt(SeaOfGatesEngine.Handler handler, Cell cell, boolean quiet, java.util.List<ArcInst> arcsToRoute)
handler
- interaction with outer environmentcell
- the cell to be Sea-of-Gates-routed.arcsToRoute
- a List of ArcInsts on networks to be routed.public void routeIt(SeaOfGatesEngine.Handler handler, Cell cell, boolean quiet, java.util.List<ArcInst> arcsToRoute, SeaOfGates.SeaOfGatesCellParameters sogp)
handler
- interaction with outer environmentcell
- the cell to be Sea-of-Gates-routed.arcsToRoute
- a List of ArcInsts on networks to be routed.sogp
- parameters to usepublic RTNode<SeaOfGatesEngine.SOGBound> getMetalTree(Layer lay)
lay
- the metal Layer to examine.public java.util.Iterator<SeaOfGatesEngine.SOGBound> searchMetalTree(Layer lay, java.awt.geom.Rectangle2D bound)
public java.lang.String getRoutedNetRatio()
public void setPrefs(SeaOfGates.SeaOfGatesOptions p)
p
- Preferences to use for routing.public SeaOfGates.SeaOfGatesOptions getPrefs()
public Technology getTech()
public int getNumMetals()
public Layer getPrimaryMetalLayer(int layNum)
layNum
- a layer number, from 0 to getNumMetals()-1.public Layer getViaLayer(int layNum)
layNum
- a layer number, from 0 to getNumMetals()-2.protected java.lang.String describe(NodeInst ni)
ni
- NodeInst to describeprotected java.lang.String describe(ArcInst ai)
ai
- ArcInst to describeprotected java.lang.String describe(NodeProto np)
np
- NodeProto to describeprotected java.lang.String describe(ArcProto ap)
ap
- ArcProto to describeprotected Environment getEnvironment()
protected boolean checkAbort()
protected void trace(java.lang.String msg)
msg
- the message string to be loggedprotected void debug(java.lang.String msg)
msg
- the message string to be loggedprotected void info(java.lang.String msg)
msg
- the message string to be loggedprotected void warn(java.lang.String msg)
msg
- the message string to be loggedprotected void warn(java.lang.String msg, Cell cell, java.util.List<EPoint> linesToShow, java.util.List<PolyBase> polysToShow)
msg
- the message string to be loggedcell
- cell warning belongs tolinesToShow
- list of points related to the warningpolysToShow
- list of polygons related to the warningprotected void error(java.lang.String msg)
msg
- the message string to be loggedprotected void setProgressNote(java.lang.String message)
message
- the new progress message.protected void setProgressValue(int done, int total)
done
- the amount done (from 0 to total-1).total
- the total amount to do.protected abstract void doRoutingParallel(int numberOfThreads, java.util.List<SeaOfGatesEngine.NeededRoute> allRoutes)
numberOfThreads
- number of threads to create.allRoutes
- the routes that need to be done.public ErrorLogger getErrorLgger()
public static java.lang.String describeMetal(int metal, int color)
public SeaOfGatesEngine.GlobalRouter doGlobalRouting(Cell cell, com.sun.electric.tool.routing.seaOfGates.SeaOfGatesEngine.RouteBatch[] routeBatches, com.sun.electric.tool.routing.seaOfGates.SeaOfGatesEngine.RouteBatch[] fakeBatches, double wirePitch)