首页 / design / oaRoute

oaRoute

模块: oapy._oa._design 导入: from oapy._oa import _design

概览

oaRouteoapy 中可用,可通过 _design 模块访问。

本页汇总 oaRoute 当前在 oapy 中可用的 Python 接口。

详细说明

The oaRoute class represents a physical point-to-point connection that is part of a wire。 An oaRoute contains a sequence of objects that may describe both the routing segments on given layers and the vias between those layers。 An oaRoute (Route) may contain segments on multiple layers, but a Route may not branch。 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: An oaTerm , oaInstTerm or oaPin to which the route connects An oaSteiner where the Route ends (where the net branches) An oaShape or oaVia that is part of geometric routing 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

方法总览

状态 Python 调用
obj.getRouteStatus()
obj.getBeginConn()
obj.getEndConn()
obj.getNumObjects()
obj.getObjects(objects)
obj.isGlobal()
obj.isContiguous()
obj.hasGuide()
obj.hasDefaultConstraintGroup()
obj.getDefaultConstraintGroup()
obj.setRouteStatus(routeStatus)
obj.setBeginConn(object)
obj.setEndConn(object)
obj.setGlobal(global)
obj.setObjects(objects)
obj.unsetBeginConn()
obj.unsetEndConn()
obj.unsetObjects()
obj.destroyObjects()
_design.oaRoute.create(block, net=NULL, isGlobal=false, stat=oacNormalRouteStatus)

方法说明

obj.getRouteStatus()

绑定状态: 已绑定

Python 调用: obj.getRouteStatus()

This function returns the route status of this route。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.getRouteStatus()

obj.getBeginConn()

绑定状态: 已绑定

Python 调用: obj.getBeginConn()

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 。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.getBeginConn()

obj.getEndConn()

绑定状态: 已绑定

Python 调用: obj.getEndConn()

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 。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.getEndConn()

obj.getNumObjects()

绑定状态: 已绑定

Python 调用: obj.getNumObjects()

This function returns the number of objects that this route contains。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.getNumObjects()

obj.getObjects(objects)

绑定状态: 已绑定

Python 调用: obj.getObjects(objects)

This function retrieves the ordered set of objects associated with this route and returns them via the specified 'objects' array。

参数

  • objects: A reference to an oaRouteObjectArray object to be populated。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.getObjects(objects)

obj.isGlobal()

绑定状态: 已绑定

Python 调用: obj.isGlobal()

This function returns true if this is a global route, false otherwise。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.isGlobal()

obj.isContiguous()

绑定状态: 已绑定

Python 调用: obj.isContiguous()

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。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.isContiguous()

obj.hasGuide()

绑定状态: 已绑定

Python 调用: obj.hasGuide()

This function returns a boolean indicating whether or not this route has one or more guides in it。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.hasGuide()

obj.hasDefaultConstraintGroup()

绑定状态: 已绑定

Python 调用: obj.hasDefaultConstraintGroup()

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。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.hasDefaultConstraintGroup()

obj.getDefaultConstraintGroup()

绑定状态: 已绑定

Python 调用: obj.getDefaultConstraintGroup()

This function returns the constraint group for this route。 If no constraints exist on the route, a new constraint group is created。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.getDefaultConstraintGroup()

obj.setRouteStatus(routeStatus)

绑定状态: 已绑定

Python 调用: obj.setRouteStatus(routeStatus)

This function sets the route status attribute of this route to the specified value。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.setRouteStatus(routeStatus)

obj.setBeginConn(object)

绑定状态: 已绑定

Python 调用: obj.setBeginConn(object)

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 。

参数

  • object: The object to be connected to the begin of this route。

异常

  • oacInvalidRouteConnObj
  • oacRouteAndConnNotInSameBlock
  • oacCannotSetRouteObjAsRouteConn

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.setBeginConn(object)

obj.setEndConn(object)

绑定状态: 已绑定

Python 调用: obj.setEndConn(object)

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 。

参数

  • object: The object to be connected to the end of this route。

异常

  • oacInvalidRouteConnObj
  • oacRouteAndConnNotInSameBlock
  • oacCannotSetRouteObjAsRouteConn

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.setEndConn(object)

obj.setGlobal(global)

绑定状态: 已绑定

Python 调用: obj.setGlobal(global)

This function sets the global attribute of this route to the specified value。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.setGlobal(global)

obj.setObjects(objects)

绑定状态: 已绑定

Python 调用: obj.setObjects(objects)

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。

参数

  • objects: A reference to an oaRouteObjectArray object holding the new set of objects for this route。

异常

  • oacObjectNotValidForRoute
  • oacRouteAndObjectNotInSameBlock
  • oacCannotAddPinFigToRoute
  • oacCannotAddRouteConnFigToRoute
  • oacCannotAddFigToRouteOnDifferentNet
  • oacCannotAddSameFigToRouteAgain

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.setObjects(objects)

obj.unsetBeginConn()

绑定状态: 已绑定

Python 调用: obj.unsetBeginConn()

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。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.unsetBeginConn()

obj.unsetEndConn()

绑定状态: 已绑定

Python 调用: obj.unsetEndConn()

This function disconnects this route from its end connection object。 If this route does not have a end connection object, this function does nothing。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.unsetEndConn()

obj.unsetObjects()

绑定状态: 已绑定

Python 调用: obj.unsetObjects()

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。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.unsetObjects()

obj.destroyObjects()

绑定状态: 已绑定

Python 调用: obj.destroyObjects()

This function first disassociates this route from all of its objects and then destroys all the objects that were part of it。

Python 示例

from oapy._oa import _design

# assume obj is a oaRoute
obj.destroyObjects()

_design.oaRoute.create(block, net=NULL, isGlobal=false, stat=oacNormalRouteStatus)

绑定状态: 已绑定

Python 调用: _design.oaRoute.create(block, net=NULL, isGlobal=false, stat=oacNormalRouteStatus)

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。

参数

  • block: The block in which the route is to be created。
  • net: The net to which the route may be attached。
  • isGlobal: A boolean indicating whether it should be a global route。
  • stat: The initial routing status to be assigned to the new route。

异常

  • oacNetFigNotInSameBlock

Python 示例

from oapy._oa import _design

_design.oaRoute.create(block, net=NULL, isGlobal=false, stat=oacNormalRouteStatus)