public static class Technology.NodeLayer
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static int |
BOX
Indicates that the "points" list defines a rectangle.
|
static Variable.Key |
CARBON_NANOTUBE_COUNT
key of Variable for number of tubes in CNFET.
|
static Variable.Key |
CARBON_NANOTUBE_PITCH
key of Variable for spacing of tubes in CNFET.
|
static Variable.Key |
CUT_ALIGNMENT
key of Variable for overridint cut alignent
|
static Variable.Key |
CUT_SPACING
key of Variable for overriding cut spacing.
|
static Variable.Key |
METAL_OFFSETS
key of Variable for overriding metal surround.
|
static int |
MULTICUT_CENTERED
CUT_ALIGNMENT: cuts centered in the node
|
static int |
MULTICUT_CORNER
CUT_ALIGNMENT: cuts pushed to corner of node
|
static int |
MULTICUT_SPREAD
CUT_ALIGNMENT: cuts spread to edges of node
|
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 and Description |
---|
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 |
Modifier and Type | Method and Description |
---|---|
void |
fixup(EPoint fixupCorrector) |
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.
|
int |
getGridMulticutSep1D() |
int |
getGridMulticutSep2D() |
int |
getGridMulticutSizeX() |
int |
getGridMulticutSizeY() |
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.
|
PrimitivePort |
getPort(PrimitiveNode pn)
Returns the port associated with this NodeLayer in specified PrimitiveNode.
|
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) |
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 |
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.
|
public static final int POINTS
public static final int BOX
public static final int MULTICUTBOX
public static final Variable.Key CUT_SPACING
public static final Variable.Key CUT_ALIGNMENT
public static final Variable.Key METAL_OFFSETS
public static final Variable.Key CARBON_NANOTUBE_COUNT
public static final Variable.Key CARBON_NANOTUBE_PITCH
public static final int MULTICUT_CENTERED
public static final int MULTICUT_SPREAD
public static final int MULTICUT_CORNER
public Technology.NodeLayer(Layer layer, int portNum, Poly.Type style, int representation, Technology.TechPoint[] points)
NodeLayer
with the specified description.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.public Technology.NodeLayer(Layer layer, int portNum, Poly.Type style, int representation, Technology.TechPoint[] points, double lWidth, double rWidth, double extentT, double extendB)
NodeLayer
with the specified description.
This form of the method, with 4 additional parameters at the end,
is only used for serpentine transistors.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.public Technology.NodeLayer(Technology.NodeLayer node)
NodeLayer
from given nodenode
- public static Technology.NodeLayer makeMulticut(Layer layer, int portNum, Poly.Type style, Technology.TechPoint[] techPoints, double sizeX, double sizeY, double sep1d, double sep2d)
public void fixup(EPoint fixupCorrector)
public Layer getLayer()
Layer
object associated with this NodeLayer.Layer
object associated with this NodeLayer.public boolean isPseudoLayer()
public Layer getLayerOrPseudoLayer()
Layer
or pseudo-layer object associated with this NodeLayer.Layer
or pseudo-layer object associated with this NodeLayer.public int getPortNum()
public PrimitivePort getPort(PrimitiveNode pn)
pn
- specified PrimitiveNodepublic Poly.Type getStyle()
public int getRepresentation()
public static java.lang.String getRepresentationName(int rep)
public Technology.TechPoint[] getPoints()
public EdgeH getLeftEdge()
public EdgeV getBottomEdge()
public EdgeH getRightEdge()
public EdgeV getTopEdge()
public java.lang.String getMessage()
public void setMessage(java.lang.String message)
message
- the text to be drawn by this NodeLayer.
This only makes sense if the style is one of the TEXT types.public TextDescriptor getDescriptor()
public void setDescriptor(TextDescriptor descriptor)
descriptor
- the text descriptor to be drawn by this NodeLayer.
This only makes sense if the style is one of the TEXT types.public double getSerpentineLWidth()
public void setSerpentineLWidth(double lWidth)
lWidth
- the left extension of this layer.public double getSerpentineRWidth()
public void setSerpentineRWidth(double rWidth)
rWidth
- the right extension of this layer.public double getSerpentineExtentT()
public void setSerpentineExtentT(double extentT)
extentT
- the top extension of this layer.public double getSerpentineExtentB()
public void setSerpentineExtentB(double extendB)
extendB
- the bottom extension of this layer.public double getMulticutSizeX()
public double getMulticutSizeY()
public double getMulticutSep1D()
public double getMulticutSep2D()
public int getGridMulticutSizeX()
public int getGridMulticutSizeY()
public int getGridMulticutSep1D()
public int getGridMulticutSep2D()