oaPRBoundary
模块: oapy._oa._design
导入: from oapy._oa import _design
概览
oaPRBoundary 在 oapy 中可用,可通过 _design 模块访问。
本页汇总 oaPRBoundary 当前在 oapy 中可用的 Python 接口。
详细说明
The oaPRBoundary class is used as the boundary of a block for place-and-route applications。 In a top-down design flow, it is commonly passed down to constrain the area in which the block's contents are placed。 Any shape or instance created for the block should be enclosed within the PRBoundary。 In a bottom-up design flow, a PRBoundary is used to indicate the primary extent of the block's contents。 For cell placement that is directed by sites in oaRows, the oaPRBoundary determines the aspect of the cell that must align with the site。 For placement near a placement blockage, it is the oaPRBoundary that is excluded from the blockage。 Some uses of the oaPRBoundary will be superseded by an oaSnapBoundary for non-rectangular oaPRBoundaries。 The oaSnapBoundary will provide an unambiguous lower left corner that will control the exact placement location。 oaPRBoundaries for blocks and chips may have an associated oaCoreBoxSpec 。 This defines a rectangular grid of sites within the oaPRBoundary where cells may be placed。 It can also have an IO box specified, which together with the outline of the core box indicates the area for the IO cells。
方法总览
| 状态 | Python 调用 |
|---|---|
| ✅ | obj.hasCoreBoxSpec() |
| ✅ | obj.hasIOBox() |
| ✅ | obj.getCoreBoxSpec(spec) |
| ✅ | obj.getIOBox(box) |
| ✅ | obj.setCoreBoxSpec(spec) |
| ✅ | obj.setIOBox(box) |
| ✅ | obj.removeCoreBoxSpec() |
| ✅ | obj.removeIOBox() |
| ✅ | obj.getBlockagesOwnedBy() |
| ✅ | _design.oaPRBoundary.create(block, points, edgeNames=NULL) |
| ✅ | _design.oaPRBoundary.find(block) |
| ✅ | _design.oaPRBoundary.create(block, points, edgeNames) |
方法说明
obj.hasCoreBoxSpec()
绑定状态: 已绑定
Python 调用: obj.hasCoreBoxSpec()
This function returns a boolean indicating if an oaCoreBoxSpec has been set on this oaPRBoundary。 See oaCoreBoxSpec for details。
Python 示例
from oapy._oa import _design
# assume obj is a oaPRBoundary
obj.hasCoreBoxSpec()
obj.hasIOBox()
绑定状态: 已绑定
Python 调用: obj.hasIOBox()
This function returns a boolean indicating if an ioBox has been set on this oaPRBoundary。 See the explanation of IO box in the class description。
Python 示例
from oapy._oa import _design
# assume obj is a oaPRBoundary
obj.hasIOBox()
obj.getCoreBoxSpec(spec)
绑定状态: 已绑定
Python 调用: obj.getCoreBoxSpec(spec)
This function fills in the specified oaCoreBoxSpec with the CoreBox attributes for this oaPRBoundary。 These define a grid of sites for placing lower level cells。 See oaCoreBoxSpec for details。
参数
spec: The oaCoreBoxSpec object to fill in。
Python 示例
from oapy._oa import _design
# assume obj is a oaPRBoundary
obj.getCoreBoxSpec(spec)
obj.getIOBox(box)
绑定状态: 已绑定
Python 调用: obj.getIOBox(box)
This function fills in the given oaBox with the data for the IO box associated with this oaPRBoundary object。
参数
box: The bounding box to fill in with the IO box coordinates。
Python 示例
from oapy._oa import _design
# assume obj is a oaPRBoundary
obj.getIOBox(box)
obj.setCoreBoxSpec(spec)
绑定状态: 已绑定
Python 调用: obj.setCoreBoxSpec(spec)
This function uses the specified oaCoreBoxSpec to set the CoreBox attributes for this oaPRBoundary。 These define a grid of sites for placing lower level cells。 See oaCoreBoxSpec for details。 An exception is thrown if the oaSiteDef in the oaCoreBoxSpec is from a technology database that is not included in the referenced graph of technology databases for the technology database currently bound to the design containing the boundary。
参数
spec: The oaCoreBoxSpec to store on this oaPRBoundary。
异常
oacSiteDefNotInTechAssociatedWithDesign。
Python 示例
from oapy._oa import _design
# assume obj is a oaPRBoundary
obj.setCoreBoxSpec(spec)
obj.setIOBox(box)
绑定状态: 已绑定
Python 调用: obj.setIOBox(box)
This function stores the contents of the given IO box on the oaPRBoundary object。 See the class description for details of the IO box。
参数
box: The bounding box indicating the IO area on the chip。
Python 示例
from oapy._oa import _design
# assume obj is a oaPRBoundary
obj.setIOBox(box)
obj.removeCoreBoxSpec()
绑定状态: 已绑定
Python 调用: obj.removeCoreBoxSpec()
This function removes the oaCoreBoxSpec from this oaPRBoundary object。 See oaCoreBoxSpec for details。
Python 示例
from oapy._oa import _design
# assume obj is a oaPRBoundary
obj.removeCoreBoxSpec()
obj.removeIOBox()
绑定状态: 已绑定
Python 调用: obj.removeIOBox()
This function removes the IO box from this oaPRBoundary object。 See the class description for details of the IO box。
Python 示例
from oapy._oa import _design
# assume obj is a oaPRBoundary
obj.removeIOBox()
obj.getBlockagesOwnedBy()
绑定状态: 已绑定
Python 调用: obj.getBlockagesOwnedBy()
This function returns a collection of derived blockages owned by this boundary。
Python 示例
from oapy._oa import _design
# assume obj is a oaPRBoundary
obj.getBlockagesOwnedBy()
_design.oaPRBoundary.create(block, points, edgeNames=NULL)
绑定状态: 已绑定
Python 调用: _design.oaPRBoundary.create(block, points, edgeNames=NULL)
This function creates a new PR boundary object in the specified block with the specified attributes。 The specified pointArray is checked to verify that there are at least three points and no collinear or coincident points。 This function throws an exception if there is already a PR boundary in the specified block。 Note that the number of edge names must be equal to the number of points or an oacBoundaryInvalidEdgeNames exception is thrown。 Note that the number of edge names is assumed to be equal to the number of points。 If the PR boundary edgeNames array is empty, the edges are automatically named using the form EDGE_ n, where n starts at zero and increments by one。 Note: The order of the points actually set on the oaPRBoundary is not guaranteed to be the same as the order of points passed to the create() function。 Consequently, the order of points returned by a subsequent oaPRBoundary::getPoints() may be different from the order of points specified in points。
参数
block: The block in which to create the new oaPRBoundary object。points: The points of the new oaPRBoundary object。edgeNames: The boundary edge names; If you supply an empty array, the edges are automatically named using the form EDGE_ n, where n starts at zero and increments by one。
返回
- A pointer to an oaPRBoundary object。
异常
oacBoundaryHasExtraPoints。oacBoundaryTooFewPoints。oacPRBoundaryExists。oacBoundaryInvalidEdgeNames。
Python 示例
from oapy._oa import _design
_design.oaPRBoundary.create(block, points, edgeNames=NULL)
_design.oaPRBoundary.find(block)
绑定状态: 已绑定
Python 调用: _design.oaPRBoundary.find(block)
This function searches the specified block looking for a oaPRBoundary。 If found, the boundary is returned。 Otherwise, NULL is returned。
参数
block: The block in which to search。
Python 示例
from oapy._oa import _design
_design.oaPRBoundary.find(block)
_design.oaPRBoundary.create(block, points, edgeNames)
绑定状态: 已绑定
Python 调用: _design.oaPRBoundary.create(block, points, edgeNames)
This function is deprecated。 Refer to the oaPRBoundary:: create function that takes a reference to an oaStringArray for the edgeNames。 This function creates a new PR boundary object in the specified block with the specified attributes。 The specified pointArray is checked to verify that there are at least three points and no collinear or coincident points。 This function throws an exception if there is already a PR boundary exists in the specified block。 If the boundary edgeNames are not supplied, the edges are automatically named, using the form EDGE_ n, where n starts at zero and increments by one for each edge。 Note: The order of the points actually set on the oaPRBoundary is not guaranteed to be the same as the order of points passed to the create() function。 Consequently, the order of points returned by a subsequent oaPRBoundary::getPoints() may be different from the order of points specified in points。
参数
block: The block in which to create the new oaPRBoundary object。points: The points of the new oaPRBoundary object。edgeNames: The boundary edge names; if omitted, the edges are automatically named, using the form EDGE_%d, where d starts at zero and increments by one。
返回
- A pointer to an oaPRBoundary object。
异常
oacBoundaryHasExtraPoints。oacBoundaryTooFewPoints。oacPRBoundaryExists。
Python 示例
from oapy._oa import _design
_design.oaPRBoundary.create(block, points, edgeNames)