# Hurricane Documentation

# 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:
[legend]

## Classes

class | Direction
class | Type

## Public Types

typedef Entity | Inherit
typedef unsigned | Arity

## Public Member Functions

const Name & | getName () const
const Arity & | getArity () const
const Type & | getType () const
const Direction & | getDirection () const
const Point & | getPosition () const
const DbU::Unit & | getX () const
const DbU::Unit & | getY () 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)
Net * | getClone (Cell *cloneCell)
Public Member Functions inherited from Hurricane::DBo
virtual void | destroy ()
Property * | getProperty (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 Net * | create (Cell *cell, const Name &name)
static NetFilter | getIsGlobalFilter ()
static NetFilter | getIsExternalFilter ()
static NetFilter | getIsInternalFilter ()
static NetFilter | getIsClockFilter ()
static NetFilter | getIsSupplyFilter ()

## Detailed Description

Net description (API)

# Predefined filters

- Hurricane::Net::getIsGlobalFilter
- Hurricane::Net::getIsExternalFilter
- Hurricane::Net::getIsInternalFilter
- Hurricane::Net::getIsClockFilter
- Hurricane::Net::getIsSupplyFilter

## Member Typedef Documentation

## ◆ Inherit

Hurricane::Net::Inherit

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

## ◆ Arity

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

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:

- Net.h
- Net.dox