Hurricane VLSI Database


Hurricane::Net Class Reference

Net description (API) More...

Inheritance diagram for Hurricane::Net:

Classes

class  Direction
 
class  Type
 

Public Types

typedef Entity Inherit
 
typedef unsigned Arity
 

Public Member Functions

const NamegetName () const
 
const AritygetArity () const
 
const TypegetType () const
 
const DirectiongetDirection () const
 
const PointgetPosition () const
 
const DbU::UnitgetX () const
 
const DbU::UnitgetY () const
 
Components getComponents () const
 
Rubbers getRubbers () const
 
RoutingPads getRoutingPads () const
 
Plugs getPlugs () const
 
Contacts getContacts () const
 
Segments getSegments () const
 
Verticals getVerticals () const
 
Horizontals getHorizontals () const
 
Pads getPads () const
 
Plugs getSlavePlugs () const
 
Plugs getConnectedSlavePlugs () const
 
Plugs getUnconnectedSlavePlugs () const
 
bool isGlobal () const
 
bool isExternal () const
 
bool isLogical () const
 
bool isClock () const
 
bool isSupply () const
 
void setName (Name name)
 
void setArity (const Arity &arity)
 
void setGlobal (bool isGlobal)
 
void setExternal (bool isExternal)
 
void setType (const Type &type)
 
void setDirection (const Direction &direction)
 
void setPosition (const Point &position)
 
void materialize ()
 
void unmaterialize ()
 
void merge (Net *net)
 
NetgetClone (Cell *cloneCell)
 
- 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 Netcreate (Cell *cell, const Name &name)
 
Net Collection
static NetFilter getIsGlobalFilter ()
 
static NetFilter getIsExternalFilter ()
 
static NetFilter getIsInternalFilter ()
 
static NetFilter getIsClockFilter ()
 
static NetFilter getIsSupplyFilter ()
 

Detailed Description

Member Typedef Documentation

◆ Inherit

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

◆ Arity

typedef unsigned Hurricane::Net::Arity

This type allows to represent the number of bits associated to a net (a null value meaning undefined).

Member Function Documentation

◆ create()

static Net * Hurricane::Net::create ( Cell * cell,
const Name & name )
static

Creates and returns a new net named <name> for the cell <cell>.

Caution: Throws an exception if the cell is null, if the name empty or
if a net with same name already exists.

◆ getName()

const Name & Hurricane::Net::getName ( ) const
inline

Returns: the net name.

◆ getArity()

const Arity & Hurricane::Net::getArity ( ) const
inline

Returns: the signal arity (by default set to 1).

◆ getType()

const Type & Hurricane::Net::getType ( ) const
inline

Returns: the signal type (by default set to UNDEFINED).

◆ getDirection()

const Direction & Hurricane::Net::getDirection ( ) const
inline

Returns: the signal direction (by default set to UNDEFINED).

Remarks
This direction is meaningfull only for external nets.

◆ getPosition()

const Point & Hurricane::Net::getPosition ( ) const
inline

Returns: the X,Y position of the net. This position is used for computing the location of the plugs (on slave instances calling the cell owning this net) having that net as master.

◆ getX()

const DbU::Unit & Hurricane::Net::getX ( ) const
inline

Returns: net abscissa.

◆ getY()

const DbU::Unit & Hurricane::Net::getY ( ) const
inline

Returns: net ordinate.

◆ getComponents()

Components Hurricane::Net::getComponents ( ) const
inline

Returns: the collection of net's components.

◆ getRubbers()

Rubbers Hurricane::Net::getRubbers ( ) const
inline

Returns: the collection of net's rubbers.

◆ getRoutingPads()

RoutingPads Hurricane::Net::getRoutingPads ( ) const

Returns: the collection of net's RoutingPads.

◆ getPlugs()

Plugs Hurricane::Net::getPlugs ( ) const

Returns: the collection of net's plugs.

◆ getContacts()

Contacts Hurricane::Net::getContacts ( ) const

Returns: the collection of net's contacts.

◆ getSegments()

Segments Hurricane::Net::getSegments ( ) const

Returns: the collection of net's segments.

◆ getVerticals()

Verticals Hurricane::Net::getVerticals ( ) const

Returns: the collection of net's vertical segments.

◆ getHorizontals()

Horizontals Hurricane::Net::getHorizontals ( ) const

Returns: the collection of net's horizontal segments.

◆ getPads()

Pads Hurricane::Net::getPads ( ) const

Returns: the collection of net's pads.

◆ getSlavePlugs()

Plugs Hurricane::Net::getSlavePlugs ( ) const

Returns: the collection of plugs which have this net as master.

Remarks
Meaningfull only for external nets.

◆ getConnectedSlavePlugs()

Plugs Hurricane::Net::getConnectedSlavePlugs ( ) const

Returns: the collection of connected plugs which have this net as master.

Remarks
Meaningfull only for external nets.

◆ getUnconnectedSlavePlugs()

Plugs Hurricane::Net::getUnconnectedSlavePlugs ( ) const

Returns: the collection of unconnected plugs which have this net as master.

Remarks
Meaningfull only for external nets.

◆ getIsGlobalFilter()

static NetFilter Hurricane::Net::getIsGlobalFilter ( )
static

Returns: the filter selecting global nets.

◆ getIsExternalFilter()

static NetFilter Hurricane::Net::getIsExternalFilter ( )
static

Returns: the filter selecting external nets.

◆ getIsInternalFilter()

static NetFilter Hurricane::Net::getIsInternalFilter ( )
static

Returns: the filter selecting internal nets.

◆ getIsClockFilter()

static NetFilter Hurricane::Net::getIsClockFilter ( )
static

Returns: the filter selecting clock nets.

◆ getIsSupplyFilter()

static NetFilter Hurricane::Net::getIsSupplyFilter ( )
static

Returns: the filter selecting supply nets.

◆ isGlobal()

bool Hurricane::Net::isGlobal ( ) const
inline

Returns: true if the net is global else false.

Referenced by setGlobal().

◆ isExternal()

bool Hurricane::Net::isExternal ( ) const
inline

Returns: true if the net is external else false.

Referenced by setExternal(), and unmaterialize().

◆ isLogical()

bool Hurricane::Net::isLogical ( ) const
inline

Returns: true if the net is logical else false.

References Hurricane::Net::Type::LOGICAL.

◆ isClock()

bool Hurricane::Net::isClock ( ) const
inline

Returns: true if the net is a clock else false.

References Hurricane::Net::Type::CLOCK.

◆ isSupply()

bool Hurricane::Net::isSupply ( ) const
inline

Returns: true if the net is a supply else false.

◆ setName()

void Hurricane::Net::setName ( Name name)

Allows to change net name.

Remarks
Throws an exception if the new name is empty, or if a net with same net already exists in the cell.

◆ setArity()

void Hurricane::Net::setArity ( const Arity & arity)

Sets the signal arity to <arity>.

◆ setGlobal()

void Hurricane::Net::setGlobal ( bool state)

Sets global signal status to <state>.

References isGlobal().

◆ setExternal()

void Hurricane::Net::setExternal ( bool state)

Sets the external net status to <state>.

Remarks
This function will throw an exception if the net switches to internal and there is a plug refering to it.

References isExternal().

◆ setType()

void Hurricane::Net::setType ( const Type & type)

Sets the signal type of the net.

◆ setDirection()

void Hurricane::Net::setDirection ( const Direction & direction)

Sets the signal direction of the net.

◆ setPosition()

void Hurricane::Net::setPosition ( const Point & position)

Sets the X,Y location of the net. By default it is located at the coordinates origin of the cell (point 0,0).

◆ materialize()

void Hurricane::Net::materialize ( )

Materializes all the rubbers and components of a net.

◆ unmaterialize()

void Hurricane::Net::unmaterialize ( )

De-materializes all rubbers and the components of a net.

References isExternal().

◆ merge()

void Hurricane::Net::merge ( Net * net)

Merges the net <net> to the net <this> which keeps its characteristics (arity, global, external and direction).

Caution: An exception is thrown if the <net> is null or equal to
<this>, if the two nets don't belong to the same cell or if <net> is external and master net of a connected plug while net <this> is not external.
Remarks
All the rubbers and the components of the <net> (and also the plugs) become rubbers or components of the net <this>. Nevertheless if for a particular slave instance there was both a plug referencing the <net> and an other plug referencing <this>, the first is deleted to the advantage of the second, because a net can't have more than one plug for a given instance (the rings of the body hooks are then merged).
Once the merger done the net <net> is definitively deleted. Its properties and those of its deleted plugs, if any, are lost (as well as the ones which could be attached to their occurences).

◆ getClone()

Net * Hurricane::Net::getClone ( Cell * cloneCell)

Build a duplicate of net ( <this>) inside a cloned Cell <cloneCell>. The connectivity (Plug) or components of the original net are not copied.

Remarks
It is likely that <cloneCell> is a copy of this net's onwer Cell, but it is not mandatory.

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


Generated by doxygen 1.13.2 on Fri Sep 27 2024 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved