RoutingPad description (API) More...
Public Types | |
enum | Flags { BiggestArea = (1 << 0) , HighestLayer = (1 << 1) , LowestLayer = (1 << 2) , ComponentSelection = BiggestArea|HighestLayer|LowestLayer , ShowWarning = (1 << 4) } |
typedef Component | Inherit |
Public Types inherited from Hurricane::Component | |
typedef Go | Inherit |
Static Public Member Functions | |
static RoutingPad * | create (Net *, Occurrence, unsigned int flags=0) |
static RoutingPad * | create (Pin *) |
Static Public Member Functions inherited from Hurricane::Component | |
static ComponentFilter | getIsUnderFilter (const Box &area) |
Static Public Member Functions inherited from Hurricane::Go | |
static bool | autoMaterializationIsDisabled () |
static void | enableAutoMaterialization () |
static void | disableAutoMaterialization () |
RoutingPad description (API)
The RoutingPad is a part of the trans-hierarchical mechanism. It allows to connect a Net from the top-level netlist to a plug in an Instance at any level inside the hierarchy, through a Plug Occurrence. RoutingPad can also be created from Pin or Contact Occurrences.
When the RoutingPad is created using a Plug Occurrence, it can be set afterward to any of master net external Component. A utility method RoutingPad::setOnBestComponent() is also provided to automatically set the RoutingPad on a Component matching criteria of surface or layer level.
The position of the RoutingPad is fixed relatively from the instances in it's occurrence path and the entity it refers. The reference point used on the entity is it's center whether it is a segment, a pin or a plug. In the later case, it is the center of the cell.
Useful for calling upon methods of the base class without knowing it.
Set of flags to choose how to select the external component of a RoutingPad to be anchored on.
Enumerator | |
---|---|
BiggestArea | Select the external Component of biggest area. |
HighestLayer | Select the external Component of in the highest layer. |
LowestLayer | Select the external Component of in the lowest layer. |
ComponentSelection | A mask to filter bit parts of a flag belonging to component selection. |
ShowWarning | Whether to display a warning or not while checking the instances placement. |
|
static |
net | The Net of the top-level netlist connected to this RoutingPad. |
occurrence | The Occurrence of Plug, Pin or Pad to connect to. |
flags | In the case of a Plug, the way to select the external component of the Net. |
|
static |
Special variant to create a RoutingPad from a top-level Pin.
bool Hurricane::RoutingPad::isPlacedOccurrence | ( | unsigned int | flags | ) | const |
Check wether all the instances in the occurrence path are placed. If at least, one is not and flags
contains RoutingPad::ShowWarning, display a warning.
When using a RoutingPad as a reference/anchor for other physical components (that is, the occurence entity is no longer a Plug), it is critical that it is in a truly meaningful position. And this is true only if all the instances in the occurrence's Path have a physical position (i.e. are placed).
|
inline |
Occurrence Hurricane::RoutingPad::getPlugOccurrence | ( | ) |
|
virtual |
Implements Hurricane::Component.
|
virtual |
Implements Hurricane::Component.
|
virtual |
Implements Hurricane::Component.
|
virtual |
Implements Hurricane::Component.
|
virtual |
Reimplemented from Hurricane::Component.
Point Hurricane::RoutingPad::getSourcePosition | ( | ) | const |
Point Hurricane::RoutingPad::getTargetPosition | ( | ) | const |
Point Hurricane::RoutingPad::getSourceX | ( | ) | const |
Point Hurricane::RoutingPad::getSourceY | ( | ) | const |
Point Hurricane::RoutingPad::getTargetX | ( | ) | const |
Point Hurricane::RoutingPad::getTargetY | ( | ) | const |
As the position of the RoutingPad is fixed relatively to the instance path and the anchoring component, it cannot be translated. Thus this method do nothing. The Routing pad will translate nevertheless with any translation of any of the instance in it's path or the anchor.
Implements Hurricane::Go.
void Hurricane::RoutingPad::setExternalComponent | ( | Component * | component | ) |
When the RoutingPad is anchored on a Plug, allow to set the component
that we will anchor on. The Occurrence of the RoutingPad is updated from the Plug to the component
.
component
must be tagged as Net external. void Hurricane::RoutingPad::setOnBestComponent | ( | unsigned int | flags | ) |
Automatically select the best component to anchor on, according to the criteria givens on flags
(selection occurs in net external components).
void Hurricane::RoutingPad::restorePlugOccurrence | ( | ) |
If the RoutingPad has been anchored on a Component, detach from it and revert to the Plug Occurrence.
Generated by doxygen 1.9.1 on Thu Aug 11 2022 | Return to top of page |
Hurricane VLSI Database | Copyright © 2000-2020 Bull S.A. All rights reserved |