The model (API).
More...
The model (API).
Layout vs. Netlist Cell Hierarchy
The Cell / Instance hierarchy can be walkthrough in two different modes:
-
The Layout Mode, in this mode the walktrough will be done over all the instances levels. This mode is used for the following collections:
-
The Netlist Mode, in this mode the walktrough will stop at instances flagged as Cell::Flags::TerminalInstance. The netlist hierarchy will be a subset of the layout one. Or, conversely, some level of layout hirearchy can have no netlist equivalent. This mode is used for the following collections:
◆ create()
creates and returns a new Cell named name for the Library library.
- Caution: Throws an exception if the Library is null, if the Name is
- empty or if a cell with same name already exists in the Library.
◆ getLibrary()
Library * Hurricane::Cell::getLibrary |
( |
| ) |
const |
|
inline |
◆ getName()
const Name & Hurricane::Cell::getName |
( |
| ) |
const |
|
inline |
◆ getInstance()
Instance * Hurricane::Cell::getInstance |
( |
const Name & |
name | ) |
const |
|
inline |
Returns the Instance of name name if it exists, else NULL
.
◆ getInstances()
Instances Hurricane::Cell::getInstances |
( |
| ) |
const |
|
inline |
◆ getInstancesUnder()
Returns the collection of all instances of the Cell intersecting the given rectangular area.
◆ getSlaveInstances()
Instances Hurricane::Cell::getSlaveInstances |
( |
| ) |
const |
◆ getNet()
Net * Hurricane::Cell::getNet |
( |
const Name & |
name, |
|
|
bool |
useAlias = true |
|
) |
| const |
Returns the Net of name name if it exists, else NULL
.
◆ getNets()
Nets Hurricane::Cell::getNets |
( |
| ) |
const |
|
inline |
◆ getGlobalNets()
Nets Hurricane::Cell::getGlobalNets |
( |
| ) |
const |
◆ getExternalNets()
Nets Hurricane::Cell::getExternalNets |
( |
| ) |
const |
◆ getInternalNets()
Nets Hurricane::Cell::getInternalNets |
( |
| ) |
const |
◆ getClockNets()
Nets Hurricane::Cell::getClockNets |
( |
| ) |
const |
◆ getSupplyNets()
Nets Hurricane::Cell::getSupplyNets |
( |
| ) |
const |
◆ getSlice()
Slice * Hurricane::Cell::getSlice |
( |
const Layer * |
layer | ) |
const |
|
inline |
Returns the Slice associated with the Layer layer if it exists, else NULL
.
◆ getSlices()
◆ getRubbers()
Rubbers Hurricane::Cell::getRubbers |
( |
| ) |
const |
◆ getRubbersUnder()
Rubbers Hurricane::Cell::getRubbersUnder |
( |
const Box & |
area | ) |
const |
Returns the collection of all Rubbers of the Cell intersecting the given rectangular area.
- Caution: Only currently materialized rubbers are taken into account
- in this collection.
◆ getComponents()
◆ getComponentsUnder()
Returns the collection of all Components of the Cell intersecting the given rectangular area.
- Caution: Only currently materialized Components are taken into account
- in this collection.
◆ getOccurrences()
Occurrences Hurricane::Cell::getOccurrences |
( |
unsigned |
searchDepth = std::numeric_limits<unsigned int>::max() | ) |
const |
◆ getOccurrencesUnder()
Occurrences Hurricane::Cell::getOccurrencesUnder |
( |
const Box & |
area, |
|
|
unsigned |
searchDepth = std::numeric_limits<unsigned int>::max() , |
|
|
DbU::Unit |
threshold = 0 |
|
) |
| const |
Returns the Collection of all Occurrences belonging to this Cell and intersecting the given rectangular area.
- Caution: Only occurences corresponding to currently materialized
- entities are taken into account in this Collection.
◆ getTerminalInstanceOccurrences()
Occurrences Hurricane::Cell::getTerminalInstanceOccurrences |
( |
| ) |
const |
Returns the trans-hierarchical Collection of all instance Occurrences that are layout terminal cells (leaves).
◆ getTerminalNetlistInstanceOccurrences()
Occurrences Hurricane::Cell::getTerminalNetlistInstanceOccurrences |
( |
const Instance * |
topInstance = NULL | ) |
const |
Returns the trans-hierarchical Collection of all instance Occurrences that are leaf cells. With the topInstance
argument we can restrict the collection to leafs of that instance (of the current Cell) only.
◆ getNonTerminalNetlistInstanceOccurrences()
Occurrences Hurricane::Cell::getNonTerminalNetlistInstanceOccurrences |
( |
const Instance * |
topInstance = NULL | ) |
const |
Returns the trans-hierarchical Collection of all instance Occurrences that are not leaf cells. With the topInstance
argument we can restrict the collection to non-leafs of that instance (of the current Cell) only.
◆ getAbutmentBox()
Box Hurricane::Cell::getAbutmentBox |
( |
| ) |
const |
|
inline |
Returns Returns the abutment box of the cell (which is defined by the designer unlike the bounding box which is managed dynamically).
◆ isCalledBy()
bool Hurricane::Cell::isCalledBy |
( |
Cell * |
cell | ) |
const |
Returns true if the cell this
is directly or indirectly called by the Cell cell. This functions allows to check that there is no cyclic instance calls of cells (it is by default, automatically called when creating an instance).
◆ isTerminal()
bool Hurricane::Cell::isTerminal |
( |
| ) |
const |
|
inline |
Returns true if the cell contains no instances. This is a layout leaf cell.
◆ isTerminalNetlist()
bool Hurricane::Cell::isTerminalNetlist |
( |
| ) |
const |
|
inline |
Returns true if the Cell is marked as terminal for the netlist hierarchy. A terminal netlist cell may, however contains further level of physical (layout) instances. This is a state that can be set or unset.
◆ isUnique()
bool Hurricane::Cell::isUnique |
( |
| ) |
const |
Returns true if the Cell has one or less instances, regardless of it's uniquification state.
◆ isUniquified()
bool Hurricane::Cell::isUniquified |
( |
| ) |
const |
Returns true if this Cell is the result of an uniquification and is not the reference (the original) Cell.
◆ isUniquifyMaster()
bool Hurricane::Cell::isUniquifyMaster |
( |
| ) |
const |
Returns true if the Cell has been uniquified and this is the original Cell. The original Cell can have both normal instances and uniquified instances.
◆ setName()
void Hurricane::Cell::setName |
( |
const Name & |
name | ) |
|
◆ setAbutmentBox()
void Hurricane::Cell::setAbutmentBox |
( |
const Box & |
abutmentBox | ) |
|
◆ setTerminalNetlist()
void Hurricane::Cell::setTerminalNetlist |
( |
bool |
state | ) |
|
|
inline |
sets Cell netlist terminal status to state.
◆ materialize()
void Hurricane::Cell::materialize |
( |
| ) |
|
materializes all components of all the nets of the Cell.
◆ unmaterialize()
void Hurricane::Cell::unmaterialize |
( |
| ) |
|
De-materializes all components of all the nets of the Cell.
◆ getClone()
Cell * Hurricane::Cell::getClone |
( |
| ) |
|
Build a duplicate of the Cell. The database keep track of all the duplicate of one original Cell. The name of a duplicate is generated by appending '_uXX'
where 'XX'
is the number of the duplicate.
Only logical information (netlist) and instance's placements gets duplicated. No physical components will be duplicated.
◆ uniquify()
void Hurricane::Cell::uniquify |
( |
unsigned int |
depth = std::numeric_limits<unsigned int>::max() | ) |
|
- Parameters
-
depth | Recursively perform the uniquification until that hierarchical depth. |
Multiple instances of a same model are modificated so that each instance has it's own unique copy of the model.
This is equivalent to a flatten operation, but without destroying the intermediate level of hierarchy. Only the netlist and instance's placements gets duplicated. No physical components will be duplicated.
- See also
- Cell::getClone(), Instance::uniquify().
The documentation for this class was generated from the following files: