com.sun.electric.technology
Class Technology.NodeLayer

java.lang.Object
  extended by com.sun.electric.technology.Technology.NodeLayer
Enclosing class:
Technology

public static class Technology.NodeLayer
extends java.lang.Object

Defines a single layer of a PrimitiveNode. A PrimitiveNode has a list of these NodeLayer objects, one for each layer in a typical NodeInst. Each PrimitiveNode is composed of a number of NodeLayer descriptors. A descriptor converts a specific NodeInst into a polygon that describe this particular layer.


Field Summary
static int BOX
          Indicates that the "points" list defines a rectangle.
static int MULTICUTBOX
          Indicates that the "points" list defines a rectangle, where centers of multi-cut are located It contains two diagonally opposite points.
static int POINTS
          Indicates that the "points" list defines scalable points.
 
Constructor Summary
Technology.NodeLayer(Layer layer, int portNum, Poly.Type style, int representation, Technology.TechPoint[] points)
          Constructs a NodeLayer with the specified description.
Technology.NodeLayer(Layer layer, int portNum, Poly.Type style, int representation, Technology.TechPoint[] points, double lWidth, double rWidth, double extentT, double extendB)
          Constructs a NodeLayer with the specified description.
Technology.NodeLayer(Technology.NodeLayer node)
          Constructs a NodeLayer from given node
 
Method Summary
 EdgeV getBottomEdge()
          Returns the bottom edge coordinate (a scalable EdgeV object) associated with this NodeLayer.
 TextDescriptor getDescriptor()
          Returns the text descriptor associated with this list NodeLayer.
 Layer getLayer()
          Returns the Layer object associated with this NodeLayer.
 Layer getLayerOrPseudoLayer()
          Returns the Layer or pseudo-layer object associated with this NodeLayer.
 EdgeH getLeftEdge()
          Returns the left edge coordinate (a scalable EdgeH object) associated with this NodeLayer.
 java.lang.String getMessage()
          Returns the text message associated with this list NodeLayer.
 double getMulticutSep1D()
           
 double getMulticutSep2D()
           
 double getMulticutSizeX()
           
 double getMulticutSizeY()
           
 Technology.TechPoint[] getPoints()
          Returns the list of coordinates (stored as TechPoints) associated with this NodeLayer.
 int getPortNum()
          Returns the 0-based index of the port associated with this NodeLayer.
 int getRepresentation()
          Returns the method of interpreting "points".
static java.lang.String getRepresentationName(int rep)
           
 EdgeH getRightEdge()
          Returns the right edge coordinate (a scalable EdgeH object) associated with this NodeLayer.
 double getSerpentineExtentB()
          Returns the bottom extension of this layer.
 double getSerpentineExtentT()
          Returns the top extension of this layer.
 double getSerpentineLWidth()
          Returns the left extension of this layer.
 double getSerpentineRWidth()
          Returns the right extension of this layer.
 Poly.Type getStyle()
          Returns the Poly.Type this NodeLayer will generate.
 EdgeV getTopEdge()
          Returns the top edge coordinate (a scalable EdgeV object) associated with this NodeLayer.
 boolean isPseudoLayer()
          Tells whether this NodeLayer is associated with pseudo-layer.
static Technology.NodeLayer makeMulticut(Layer layer, int portNum, Poly.Type style, Technology.TechPoint[] techPoints, double sizeX, double sizeY, double sep1d, double sep2d)
           
static Technology.NodeLayer makeMulticut(Layer layer, int portNum, Poly.Type style, Technology.TechPoint[] techPoints, java.lang.String sizeRule, java.lang.String cutSep1DRule, java.lang.String cutSep2DRule)
           
 void setDescriptor(TextDescriptor descriptor)
          Sets the text descriptor to be drawn by this NodeLayer.
 void setMessage(java.lang.String message)
          Sets the text to be drawn by this NodeLayer.
 void setPoints(Technology.TechPoint[] pts)
          Method to set new points to this NodeLayer
 void setSerpentineExtentB(double extendB)
          Sets the bottom extension of this layer.
 void setSerpentineExtentT(double extentT)
          Sets the top extension of this layer.
 void setSerpentineLWidth(double lWidth)
          Sets the left extension of this layer.
 void setSerpentineRWidth(double rWidth)
          Sets the right extension of this layer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

POINTS

public static final int POINTS
Indicates that the "points" list defines scalable points. Each point here becomes a point on the Poly.

See Also:
Constant Field Values

BOX

public static final int BOX
Indicates that the "points" list defines a rectangle. It contains two diagonally opposite points.

See Also:
Constant Field Values

MULTICUTBOX

public static final int MULTICUTBOX
Indicates that the "points" list defines a rectangle, where centers of multi-cut are located It contains two diagonally opposite points.

See Also:
Constant Field Values
Constructor Detail

Technology.NodeLayer

public Technology.NodeLayer(Layer layer,
                            int portNum,
                            Poly.Type style,
                            int representation,
                            Technology.TechPoint[] points)
Constructs a NodeLayer with the specified description.

Parameters:
layer - the Layer this is on.
portNum - a 0-based index of the port (from the actual NodeInst) on this layer. A negative value indicates that this layer is not connected to an electrical layer.
style - the Poly.Type this NodeLayer will generate (polygon, circle, text, etc.).
representation - tells how to interpret "points". It can be POINTS, BOX, or MULTICUTBOX.
points - the list of coordinates (stored as TechPoints) associated with this NodeLayer.

Technology.NodeLayer

public Technology.NodeLayer(Layer layer,
                            int portNum,
                            Poly.Type style,
                            int representation,
                            Technology.TechPoint[] points,
                            double lWidth,
                            double rWidth,
                            double extentT,
                            double extendB)
Constructs a NodeLayer with the specified description. This form of the method, with 4 additional parameters at the end, is only used for serpentine transistors.

Parameters:
layer - the Layer this is on.
portNum - a 0-based index of the port (from the actual NodeInst) on this layer. A negative value indicates that this layer is not connected to an electrical layer.
style - the Poly.Type this NodeLayer will generate (polygon, circle, text, etc.).
representation - tells how to interpret "points". It can be POINTS, BOX, or MULTICUTBIX.
points - the list of coordinates (stored as TechPoints) associated with this NodeLayer.
lWidth - the left extension of this layer, measured from the centerline. The centerline is the path that the serpentine transistor follows (it defines the path of the polysilicon). So, for example, if lWidth is 4 and rWidth is 4, it creates a NodeLayer that is 8 wide (with 4 to the left and 4 to the right of the centerline). Left and Right widths define the size of the Active layers.
rWidth - the right extension the right of this layer, measured from the centerline.
extentT - the top extension of this layer, measured from the end of the centerline. The top and bottom extensions apply to the ends of the centerline, and not to each segment along it. They define the extension of the polysilicon. For example, if extendT is 2, it indicates that the NodeLayer extends by 2 from the top end of the centerline.
extendB - the bottom extension of this layer, measured from the end of the centerline.

Technology.NodeLayer

public Technology.NodeLayer(Technology.NodeLayer node)
Constructs a NodeLayer from given node

Parameters:
node -
Method Detail

makeMulticut

public static Technology.NodeLayer makeMulticut(Layer layer,
                                                int portNum,
                                                Poly.Type style,
                                                Technology.TechPoint[] techPoints,
                                                java.lang.String sizeRule,
                                                java.lang.String cutSep1DRule,
                                                java.lang.String cutSep2DRule)

makeMulticut

public static Technology.NodeLayer makeMulticut(Layer layer,
                                                int portNum,
                                                Poly.Type style,
                                                Technology.TechPoint[] techPoints,
                                                double sizeX,
                                                double sizeY,
                                                double sep1d,
                                                double sep2d)

getLayer

public Layer getLayer()
Returns the Layer object associated with this NodeLayer.

Returns:
the Layer object associated with this NodeLayer.

isPseudoLayer

public boolean isPseudoLayer()
Tells whether this NodeLayer is associated with pseudo-layer.

Returns:
true if this NodeLayer is associated with pseudo-layer.

getLayerOrPseudoLayer

public Layer getLayerOrPseudoLayer()
Returns the Layer or pseudo-layer object associated with this NodeLayer.

Returns:
the Layer or pseudo-layer object associated with this NodeLayer.

getPortNum

public int getPortNum()
Returns the 0-based index of the port associated with this NodeLayer.

Returns:
the 0-based index of the port associated with this NodeLayer.

getStyle

public Poly.Type getStyle()
Returns the Poly.Type this NodeLayer will generate.

Returns:
the Poly.Type this NodeLayer will generate. Examples are polygon, lines, splines, circle, text, etc.

getRepresentation

public int getRepresentation()
Returns the method of interpreting "points".

Returns:
the method of interpreting "points". It can be POINTS, BOX, MINBOX, or MULTICUTBOX.

getRepresentationName

public static java.lang.String getRepresentationName(int rep)

getPoints

public Technology.TechPoint[] getPoints()
Returns the list of coordinates (stored as TechPoints) associated with this NodeLayer.

Returns:
the list of coordinates (stored as TechPoints) associated with this NodeLayer.

setPoints

public void setPoints(Technology.TechPoint[] pts)
Method to set new points to this NodeLayer

Parameters:
pts -

getLeftEdge

public EdgeH getLeftEdge()
Returns the left edge coordinate (a scalable EdgeH object) associated with this NodeLayer.

Returns:
the left edge coordinate associated with this NodeLayer. It only makes sense if the representation is BOX or MINBOX. The returned coordinate is a scalable EdgeH object.

getBottomEdge

public EdgeV getBottomEdge()
Returns the bottom edge coordinate (a scalable EdgeV object) associated with this NodeLayer.

Returns:
the bottom edge coordinate associated with this NodeLayer. It only makes sense if the representation is BOX or MINBOX. The returned coordinate is a scalable EdgeV object.

getRightEdge

public EdgeH getRightEdge()
Returns the right edge coordinate (a scalable EdgeH object) associated with this NodeLayer.

Returns:
the right edge coordinate associated with this NodeLayer. It only makes sense if the representation is BOX or MINBOX. The returned coordinate is a scalable EdgeH object.

getTopEdge

public EdgeV getTopEdge()
Returns the top edge coordinate (a scalable EdgeV object) associated with this NodeLayer.

Returns:
the top edge coordinate associated with this NodeLayer. It only makes sense if the representation is BOX or MINBOX. The returned coordinate is a scalable EdgeV object.

getMessage

public java.lang.String getMessage()
Returns the text message associated with this list NodeLayer.

Returns:
the text message associated with this list NodeLayer. This only makes sense if the style is one of the TEXT types.

setMessage

public void setMessage(java.lang.String message)
Sets the text to be drawn by this NodeLayer.

Parameters:
message - the text to be drawn by this NodeLayer. This only makes sense if the style is one of the TEXT types.

getDescriptor

public TextDescriptor getDescriptor()
Returns the text descriptor associated with this list NodeLayer.

Returns:
the text descriptor associated with this list NodeLayer. This only makes sense if the style is one of the TEXT types.

setDescriptor

public void setDescriptor(TextDescriptor descriptor)
Sets the text descriptor to be drawn by this NodeLayer.

Parameters:
descriptor - the text descriptor to be drawn by this NodeLayer. This only makes sense if the style is one of the TEXT types.

getSerpentineLWidth

public double getSerpentineLWidth()
Returns the left extension of this layer. Only makes sense when this is a layer in a serpentine transistor.

Returns:
the left extension of this layer.

setSerpentineLWidth

public void setSerpentineLWidth(double lWidth)
Sets the left extension of this layer. Only makes sense when this is a layer in a serpentine transistor.

Parameters:
lWidth - the left extension of this layer.

getSerpentineRWidth

public double getSerpentineRWidth()
Returns the right extension of this layer. Only makes sense when this is a layer in a serpentine transistor.

Returns:
the right extension of this layer.

setSerpentineRWidth

public void setSerpentineRWidth(double rWidth)
Sets the right extension of this layer. Only makes sense when this is a layer in a serpentine transistor.

Parameters:
rWidth - the right extension of this layer.

getSerpentineExtentT

public double getSerpentineExtentT()
Returns the top extension of this layer. Only makes sense when this is a layer in a serpentine transistor.

Returns:
the top extension of this layer.

setSerpentineExtentT

public void setSerpentineExtentT(double extentT)
Sets the top extension of this layer. Only makes sense when this is a layer in a serpentine transistor.

Parameters:
extentT - the top extension of this layer.

getSerpentineExtentB

public double getSerpentineExtentB()
Returns the bottom extension of this layer. Only makes sense when this is a layer in a serpentine transistor.

Returns:
the bottom extension of this layer.

setSerpentineExtentB

public void setSerpentineExtentB(double extendB)
Sets the bottom extension of this layer. Only makes sense when this is a layer in a serpentine transistor.

Parameters:
extendB - the bottom extension of this layer.

getMulticutSizeX

public double getMulticutSizeX()

getMulticutSizeY

public double getMulticutSizeY()

getMulticutSep1D

public double getMulticutSep1D()

getMulticutSep2D

public double getMulticutSep2D()