Hurricane VLSI Database


List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions
Hurricane::Net Class Reference

Net description (API) More...

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

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

Net description (API)

Predefined filters

Member Typedef Documentation

◆ Inherit

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

◆ Arity

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

Member Function Documentation

◆ create()

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 Net::Arity & Hurricane::Net::getArity ( ) const
inline

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

◆ getType()

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

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

◆ getDirection()

const Net::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 Unit & Hurricane::Net::getX ( ) const
inline

Returns: net abscissa.

◆ getY()

const 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()

NetFilter Hurricane::Net::getIsGlobalFilter ( )
static

Returns: the filter selecting global nets.

◆ getIsExternalFilter()

NetFilter Hurricane::Net::getIsExternalFilter ( )
static

Returns: the filter selecting external nets.

◆ getIsInternalFilter()

NetFilter Hurricane::Net::getIsInternalFilter ( )
static

Returns: the filter selecting internal nets.

◆ getIsClockFilter()

NetFilter Hurricane::Net::getIsClockFilter ( )
static

Returns: the filter selecting clock nets.

◆ getIsSupplyFilter()

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.

◆ isExternal()

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

Returns: true if the net is external else false.

◆ 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>.

◆ 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.

◆ 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.

◆ 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.9.1 on Thu Aug 11 2022 Return to top of page
Hurricane VLSI Database Copyright © 2000-2020 Bull S.A. All rights reserved