Inheritance diagram for oaRoute:
Public Methods | |
oaRouteStatus | getRouteStatus () const |
oaBlockObject * | getBeginConn () const |
oaBlockObject * | getEndConn () const |
oaUInt4 | getNumObjects () const |
void | getObjects (oaRouteObjectArray &objects) const |
oaBoolean | isGlobal () const |
oaBoolean | isContiguous () const |
oaBoolean | hasGuide () const |
oaBoolean | hasDefaultConstraintGroup () const |
oaConstraintGroup * | getDefaultConstraintGroup () const |
void | setRouteStatus (const oaRouteStatus &routeStatus) |
void | setBeginConn (oaBlockObject *object) |
void | setEndConn (oaBlockObject *object) |
void | setGlobal (oaBoolean global) |
void | setObjects (const oaRouteObjectArray &objects) |
void | unsetBeginConn () |
void | unsetEndConn () |
void | unsetObjects () |
void | destroyObjects () |
Static Public Methods | |
oaRoute * | create (oaBlock *block, oaNet *net=NULL, oaBoolean isGlobal=false, oaRouteStatus stat=oacNormalRouteStatus) |
Public Types | |
enum | { dtIndex = oacRouteDataType } |
Routes are used to represent the symbolic routing used by high capacity routers. They specify end-point connected routes that also indicate the objects they connect. Other routing may be geometric, which often is used for power and ground nets and other hand crafted nets. Geometric routing is defined with oaShapes and oaVias directly connected to their net without the use of an oaRoute.
Routes can either represent global routes or detailed routes. Global routes are approximate routes that are routed through a sequence of Gcell grid locations. Detailed routes express the complete route geometry with the exact coordinates of each segment and via.
The objects in a Route may be instances of oaPathSeg, oaVia, and oaGuide. These objects are created separately from the Route and then are added to the Route. Callers can set or retrieve the elements of a Route using an oaRouteObjectArray.
Routes may specify the two objects that they connect. These BeginConn and EndConn objects must be one of:
Routes should be constructed so that the end points and layers of each object match those of the adjacent object. The database checks this status with the isContiguous
member function.
Routes may have a default oaConstraintGroup associated with them that specifies the rules that the router follows when the oaRoute is constructed. Routing rules can be in the default constraint group of the route itself, or routing rules can be on the oNet, oaBlock, or oaDesign to which the Route belongs. Routing rules can also be in the default constraint group of the oaBoundary that contains the oaRoute.
A design may satisfy a connection on a net by abutment, where no additional wire is needed because the pins to be connected overlap. In this case the design should indicate that the connection is fully routed by creating an empty route. In the case that there are abutted pins and also additional routing on the net, this means there should be two empty routes (for the two abutted pins) that connect to a steiner. An additional non-empty route would also connect to that steiner.
The oaRoute class can be observed by deriving from oaObserver<oaRoute>.
|
This function creates a route with the specified attributes. An exception is thrown if a net is specified but it is from a different block than the one specified.
|
|
This function first disassociates this route from all of its objects and then destroys all the objects that were part of it. |
|
This function returns the beginning connection object of this route. If this route does not have a beginning connection object, NULL is returned. A beginning connection object may be an oaTerm, oaInstTerm, oaSteiner, oaPin, oaShape or oaVia. |
|
This function returns the constraint group for this route. If no constraints exist on the route, a new constraint group is created.
|
|
This function returns the end connection object of this route. If this route does not have a end connection object, NULL is returned. An end connection object may be an oaTerm, oaInstTerm, oaSteiner, oaPin, oaShape or oaVia. |
|
This function returns the number of objects that this route contains. |
|
This function retrieves the ordered set of objects associated with this route and returns them via the specified 'objects' array.
|
|
This function returns the route status of this route. |
|
This function returns a boolean indicating whether there are constraints associated with this route. Constraints in this constraint group apply to the objects in the oaRoute's oaRouteArray, namely its oaPathSegs, oaVias, and oaGuides.
|
|
This function returns a boolean indicating whether or not this route has one or more guides in it. |
|
This function returns a Boolean value indicating whether all objects in the route, which may be oaPathSegs, oaVias and/or oaGuides, are contiguous. Since a route can span multiple layers, the contiguity of a route is determined on the basis of the points at which each adjacent object connects to the next and the layer where each connection is made. Specifically, this function returns true if the end point of each object matches the begin point of the next object on the route and if the layers of objects at their connection points match. Note that this function returns true for single-object routes or zero-object (empty) routes. For vias, the via origin is both the begin and end point. The layer usage depends on the via direction set on the via (see oaVia::setDirection). For example, if the direction is set to oacLayer1ToLayer2ViaDirection, the via's layer1 must match the element before the Via and its layer2 must match the element after it. This function returns false for vias that are not bound to a viaDef. For guides, if the begin/end layer has not been specified, this function assumes that the guide begin/end layer matches any layer specified for the adjacent object. |
|
This function returns true if this is a global route, false otherwise. |
|
This function sets the beginning connection object of this route to the specified object. If this route already has a beginning connection object, it is disconnected first. A beginning connection object may be an oaTerm, oaInstTerm, oaSteiner, oaPin, oaShape or oaVia.
|
|
This function sets the end connection object of this route to the specified object. If this route already has a end connection object, it is disconnected first. An end connection object may be an oaTerm, oaInstTerm, oaSteiner, oaPin, oaShape or oaVia.
|
|
This function sets the global attribute of this route to the specified value. |
|
This function sets the objects of this route to the specified objects. If the route had any existing objects, they are removed from the route first. If the route is connected to a net, each object in the new set of route objects is effectively considered to be on that net. Only pathSegs, vias and guides are qualified to become a route object and they need to be in the same block as the route. A pathSeg or via that implements a pin is disqualified to be a route object. A pathSeg or via that is currently acting as a route connecting object also cannot become part of a route. If both the route and the object being added to it are connected to a net, the net needs to be the same. Also, the set of objects specified to be added to the route should be unique.
|
|
This function sets the route status attribute of this route to the specified value. |
|
This function attempts to disconnect this route from its beginning connection object. If this route does not have a beginning connection object, this function does nothing. |
|
This function disconnects this route from its end connection object. If this route does not have a end connection object, this function does nothing. |
|
This function disassociates this route from all of its objects. If the route was connected to a net, the disassociated objects acquire the route's net as part of the disassociation process. |
|
|
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.