Package com.sun.electric.database.hierarchy

Package for hierarchy (cell instances inside of cells).

See:
          Description

Interface Summary
Nodable This interface defines real or virtual instance of NodeProto in a Cell..
 

Class Summary
Cell A Cell is a non-primitive NodeProto.
Cell.CellGroup A CellGroup contains a list of cells that are related.
Cell.FrameDescription Class for creating a description of a frame around a schematic cell.
EDatabase Electric run-time database is a graph of ElectricObjects.
Export An Export is a PortProto at the Cell level.
HierarchyEnumerator The HierarchyEnumerator can help programs that need to "flatten" the design hierarchy.
HierarchyEnumerator.CellInfo The CellInfo object is used to pass information to the Visitor during the enumeration.
HierarchyEnumerator.NameProxy Stores the information necessary to generate an instance name for a Part It is sometimes important not to store the instance name as a String.
HierarchyEnumerator.NetDescription The NetDescription object provides a Network and the level of hierarchy in which the Network occurs.
HierarchyEnumerator.NetNameProxy  
HierarchyEnumerator.NodableNameProxy  
HierarchyEnumerator.Visitor Perform useful work while the HierarchyEnumerator enumerates the design.
Library A Library represents a collection of Cells.
View A View is an object that represents a style of design, for example schematic, layout, etc.
 

Package com.sun.electric.database.hierarchy Description

Package for hierarchy (cell instances inside of cells). Hierarchy is implemented by treating cells as node prototypes. Thus, in addition to primitive node prototypes (defined in the technologies) there are complex node prototypes, which are defined in the libraries. When placing an instance of a node, it doesn?t matter whether that instance?s prototype is primitive or complex. All that matters is that there is a node instance. This example shows how the ?TwoGate? cell contains a primitive node (a transistor) and two complex nodes (?Gate? cell instances):

Ports on cell instances are defined in terms of ports on subnodes inside of the cell. A port on the subnode becomes an export on the cell. For example, if the cell ?MyCircuit? has a transistor in it, then the gate port of that transistor can be made into an export on the cell, which then creates ports on instances of the ?MyCircuit? cell. The port on instances of this cell will actually be the same as the gate port of the transistor inside the cell. Exports can be repeatedly exported up the hierarchy.

All together, you have a complex internal representation. The figure here shows four node prototypes: two primitives (Transistor and Contact in the CMOS technology) and two cells (Gate and TwoGate in the MyCells library). All but the TwoGate have port prototypes. Note that the port prototype on the Gate cell points (with a double-headed arrow) to the port instance inside of the Gate cell which is the source of the export.