Hurricane VLSI Database


Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
Hurricane::RoutingPad Class Reference

RoutingPad description (API) More...

Inheritance diagram for Hurricane::RoutingPad:
Inheritance graph
[legend]

Public Types

typedef Component Inherit
 
- Public Types inherited from Hurricane::Component
typedef Go Inherit
 

Public Member Functions

bool isPlacedOccurrence (uint32_t flags) const
 
Occurrence getOccurrence () const
 
Occurrence getPlugOccurrence ()
 
virtual const LayergetLayer () const
 
virtual DbU::Unit getX () const
 
virtual DbU::Unit getY () const
 
virtual Box getBoundingBox () const
 
virtual Point getCenter () const
 
Point getSourcePosition () const
 
Point getTargetPosition () const
 
DbU::Unit getSourceX () const
 
DbU::Unit getSourceY () const
 
DbU::Unit getTargetX () const
 
DbU::Unit getTargetY () const
 
virtual void translate (const DbU::Unit &dx, const DbU::Unit &dy)
 
void setExternalComponent (Component *)
 
ComponentsetOnBestComponent (uint32_t flags)
 
void restorePlugOccurrence ()
 
- Public Member Functions inherited from Hurricane::Component
NetgetNet () const
 
RubbergetRubber () const
 
HookgetBodyHook ()
 
virtual Hooks getHooks () const
 
Components getConnexComponents () const
 
Components getSlaveComponents () const
 
- Public Member Functions inherited from Hurricane::Go
bool isMaterialized () const
 
- Public Member Functions inherited from Hurricane::DBo
virtual void destroy ()
 
PropertygetProperty (const Name &) const
 
Properties getProperties () const
 
bool hasProperty () const
 
void put (Property *)
 
void remove (Property *)
 
void removeProperty (const Name &)
 
void clearProperties ()
 

Static Public Member Functions

static RoutingPadcreate (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 ()
 

Static Public Attributes

static const uint32_t BiggestArea = (1 << 0)
 
static const uint32_t HighestLayer = (1 << 1)
 
static const uint32_t LowestLayer = (1 << 2)
 
static const uint32_t ShowWarning = (1 << 3)
 
static const uint32_t ComponentSelection = BiggestArea|HighestLayer|LowestLayer
 

Detailed Description

RoutingPad description (API)

Introduction

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.

Member Typedef Documentation

◆ Inherit

Useful for calling upon methods of the base class without knowing it.

Member Function Documentation

◆ create()

RoutingPad * Hurricane::RoutingPad::create ( Pin pin)
static

Special variant to create a RoutingPad from a top-level Pin.

◆ isPlacedOccurrence()

bool Hurricane::RoutingPad::isPlacedOccurrence ( uint32_t  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).

◆ getOccurrence()

Occurrence Hurricane::RoutingPad::getOccurrence ( ) const
inline
Returns
The Occurence on which we are anchored on. If a Component has been selected to be the anchor, it's an Occurrence on that component which is returned, not the actual Plug.

◆ getPlugOccurrence()

Occurrence Hurricane::RoutingPad::getPlugOccurrence ( )
Returns
The original Plug Occurrence.

◆ getLayer()

const Layer * Hurricane::RoutingPad::getLayer ( ) const
virtual
Returns
If anchored on a component, the Layer of that Component. If anchored on a Plug, NULL.

Implements Hurricane::Component.

◆ getX()

DbU::Unit Hurricane::RoutingPad::getX ( ) const
virtual
Returns
The X position of the RoutingPad. This is the position, as returned by Component::getPosition() of the Component it is anchored on.

Implements Hurricane::Component.

◆ getY()

DbU::Unit Hurricane::RoutingPad::getY ( ) const
virtual
Returns
The Y position of the RoutingPad. This is the position, as returned by Component::getPosition() of the Component it is anchored on.

Implements Hurricane::Component.

◆ getBoundingBox()

Box Hurricane::RoutingPad::getBoundingBox ( ) const
virtual
Returns
If it's anchored on a Component, returns the bounding box of that component (with Occurrence Transformation applied). If it's on a Plug, just return a zero-sised box from getPosition().

Implements Hurricane::Component.

◆ getCenter()

Point Hurricane::RoutingPad::getCenter ( ) const
virtual
Returns
The center of the bounding box.

Reimplemented from Hurricane::Component.

◆ getSourcePosition()

Point Hurricane::RoutingPad::getSourcePosition ( ) const
Returns
If anchored on a Segment, the source position of it. getPosition() otherwise.

◆ getTargetPosition()

Point Hurricane::RoutingPad::getTargetPosition ( ) const
Returns
If anchored on a Segment, the target position of it. getPosition() otherwise.

◆ getSourceX()

Point Hurricane::RoutingPad::getSourceX ( ) const
Returns
If anchored on a Segment, the X coordinate of the source position. getX() otherwise.

◆ getSourceY()

Point Hurricane::RoutingPad::getSourceY ( ) const
Returns
If anchored on a Segment, the Y coordinate of the source position. getY() otherwise.

◆ getTargetX()

Point Hurricane::RoutingPad::getTargetX ( ) const
Returns
If anchored on a Segment, the X coordinate of the target position. getX() otherwise.

◆ getTargetY()

Point Hurricane::RoutingPad::getTargetY ( ) const
Returns
If anchored on a Segment, the Y coordinate of the target position. getY() otherwise.

◆ translate()

void Hurricane::RoutingPad::translate ( const DbU::Unit dx,
const DbU::Unit dy 
)
virtual

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.

◆ setExternalComponent()

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.

Remarks
component must be tagged as Net external.

◆ setOnBestComponent()

void Hurricane::RoutingPad::setOnBestComponent ( uint32_t  flags)

Automatically select the best component to anchor on, according to the criteria givens on flags (selection occurs in net external components).

◆ restorePlugOccurrence()

void Hurricane::RoutingPad::restorePlugOccurrence ( )

If the RoutingPad has been anchored on a Component, detach from it and revert to the Plug Occurrence.

Member Data Documentation

◆ BiggestArea

Hurricane::RoutingPad::BiggestArea = (1 << 0)
static

Select the external Component of biggest area.

◆ HighestLayer

Hurricane::RoutingPad::HighestLayer = (1 << 1)
static

Select the external Component of in the highest layer.

◆ LowestLayer

Hurricane::RoutingPad::LowestLayer = (1 << 2)
static

Select the external Component of in the lowest layer.

◆ ShowWarning

Hurricane::RoutingPad::ShowWarning = (1 << 3)
static

Whether to display a warning or not while checking the instances placement.

◆ ComponentSelection

Hurricane::RoutingPad::ComponentSelection = BiggestArea|HighestLayer|LowestLayer
static

A mask to filter bit parts of a flag belonging to component selection.


The documentation for this class was generated from the following files:


Generated by doxygen 1.9.1 on Wed Nov 20 2024 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved