|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.electric.technology.technologies.utils.MOSRules
public class MOSRules
Class to define a complete set of design rules. Includes constructors for initializing the data from a technology.
Field Summary | |
---|---|
java.lang.Double[] |
conList
minimum distances when connected |
java.lang.Double[] |
conListMulti
minimum distances when connected (multi-cut) |
java.lang.String[] |
conListMultiRules
minimum distance rules when connected (multi-cut) |
java.lang.String[] |
conListNodes
minimum distance ruless when connected |
java.lang.String[] |
conListRules
minimum distance ruless when connected |
java.lang.Double[] |
conListWide
minimum distances when connected (wide) |
java.lang.String[] |
conListWideRules
minimum distance rules when connected (wide) |
java.lang.Double[] |
cutNodeSize
cut size in the technology |
java.lang.String[] |
cutNodeSizeRules
cut size rules |
java.lang.Double[] |
cutNodeSpa1D
cut 1D spacing in the technology |
java.lang.String[] |
cutNodeSpa1DRules
cut 1D s[acing rules |
java.lang.Double[] |
cutNodeSpa2D
cut 2D spacing in the technology |
java.lang.String[] |
cutNodeSpa2DRules
cut 2D s[acing rules |
java.lang.Double[] |
cutNodeSurround
cut surround in the technology |
java.lang.String[] |
cutNodeSurroundRules
cut surround rules |
java.lang.Double[] |
edgeList
minimum edge distances |
java.lang.String[] |
edgeListRules
minimum edge distance rules |
java.lang.String[] |
layerNames
names of layers |
java.lang.Double[] |
minArea
minimum area rules |
java.lang.String[] |
minAreaRules
minimum area rule names |
java.lang.Double[] |
minNodeSize
minimim node size in the technology |
java.lang.String[] |
minNodeSizeRules
minimim node size rules |
java.lang.Double[] |
minWidth
minimum width of layers |
java.lang.String[] |
minWidthRules
minimum width rules |
java.lang.String[] |
nodeNames
names of nodes |
int |
numLayers
number of layers in the technology |
int |
numNodes
number of nodes in the technology |
java.lang.Double[] |
slotSize
maximum slot size rules |
java.lang.String[] |
slotSizeRules
maximum slot size rule names |
double |
transPolyOverhang
poly overhang/surround along gate |
java.lang.Double[] |
unConList
minimum distances when unconnected |
java.lang.Double[] |
unConListMulti
minimum distances when unconnected (multi-cut) |
java.lang.String[] |
unConListMultiRules
minimum distance rules when unconnected (multi-cut) |
java.lang.String[] |
unConListNodes
minimum distance rules when unconnected |
java.lang.String[] |
unConListRules
minimum distance rules when unconnected |
java.lang.Double[] |
unConListWide
minimum distances when unconnected (wide) |
java.lang.String[] |
unConListWideRules
minimum distance rules when unconnected (wide) |
int |
uTSize
size of upper-triangle of layers |
java.lang.Double |
wideLimit
width limit that triggers wide rules |
Constructor Summary | |
---|---|
MOSRules()
|
|
MOSRules(Technology t)
|
Method Summary | |
---|---|
void |
addRule(int index,
DRCTemplate rule)
|
void |
addRule(int index,
DRCTemplate rule,
DRCTemplate.DRCRuleType spacingCase,
boolean wideRules)
Method to add a rule based on template |
void |
applyDRCOverrides(java.lang.String override,
Technology tech)
Method to apply overrides to a set of rules. |
void |
deleteRule(int index,
DRCTemplate rule)
Method to delete a given spacing rule |
boolean |
doesAllowMultipleWideRules(int index)
Method to tell UI if multiple wide rules are allowed. |
DRCTemplate |
getEdgeRule(Layer layer1,
Layer layer2)
Method to find the edge spacing rule between two layer. |
DRCTemplate |
getExtensionRule(Layer layer1,
Layer layer2,
boolean isGateExtension)
Method to find the extension rule between two layer. |
double |
getMaxSurround(Layer layer,
double maxSize)
Method to find the maximum design-rule distance around a layer. |
DRCTemplate |
getMinNodeSize(int index,
int when)
|
DRCTemplate |
getMinValue(Layer layer,
DRCTemplate.DRCRuleType type)
Method to get the minimum |
java.lang.String[] |
getNodesWithRules()
To retrieve those nodes that have rules. |
int |
getNumberOfRules()
Method to retrieve total number of rules stored. |
double |
getPolyOverhang()
Method to return overhang of poly in transistors along the gate |
DRCTemplate |
getRule(int index,
DRCTemplate.DRCRuleType type)
Method to retrieve simple layer or node rules |
DRCTemplate |
getRule(int index,
DRCTemplate.DRCRuleType type,
java.lang.String nodeName)
Method to retrieve specific rules stored per node that involve two layers |
int |
getRuleIndex(int index1,
int index2)
Method to determine the index in the upper-left triangle array for two layers/nodes. |
static int |
getRuleIndex(int index1,
int index2,
int numLayers)
Method to determine the index in the upper-left triangle array for two layers/nodes. |
java.util.List<DRCTemplate> |
getRules(Layer layer1,
DRCTemplate.DRCRuleType type)
Method to find all rules of specified type associated to Layer layer1 |
DRCTemplate |
getSpacingRule(Layer layer1,
Geometric geo1,
Layer layer2,
Geometric geo2,
boolean connected,
int multiCut,
double wideS,
double length)
Method to find the spacing rule between two layer. |
java.util.List<DRCTemplate> |
getSpacingRules(int index,
DRCTemplate.DRCRuleType type,
boolean wideRules)
Method to retrieve different spacing rules depending on type. |
Technology |
getTechnology()
Method to determine the technology associated with this rules set. |
double |
getWorstSpacingDistance(int lastMetal)
Method to find the worst spacing distance in the design rules. |
boolean |
isAnySpacingRule(Layer layer1,
Layer layer2)
Method to tell whether there are any design rules between two layers. |
boolean |
isForbiddenNode(int nodeIndex,
DRCTemplate.DRCRuleType type)
Method to determine if given node is not allowed by foundry. |
void |
setMinValue(Layer layer,
java.lang.String name,
double value,
DRCTemplate.DRCRuleType type)
Method to set the minimum |
void |
setSpacingRules(int index,
java.util.List<DRCTemplate> newRules,
DRCTemplate.DRCRuleType spacingCase,
boolean wideRules)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public int numLayers
public int uTSize
public java.lang.Double wideLimit
public java.lang.String[] layerNames
public java.lang.Double[] minWidth
public java.lang.String[] minWidthRules
public java.lang.Double[] conList
public java.lang.String[] conListRules
public java.lang.String[] conListNodes
public java.lang.Double[] unConList
public java.lang.String[] unConListRules
public java.lang.String[] unConListNodes
public java.lang.Double[] conListWide
public java.lang.String[] conListWideRules
public java.lang.Double[] unConListWide
public java.lang.String[] unConListWideRules
public java.lang.Double[] conListMulti
public java.lang.String[] conListMultiRules
public java.lang.Double[] unConListMulti
public java.lang.String[] unConListMultiRules
public java.lang.Double[] edgeList
public java.lang.String[] edgeListRules
public java.lang.Double[] minArea
public java.lang.String[] minAreaRules
public java.lang.Double[] slotSize
public java.lang.String[] slotSizeRules
public int numNodes
public java.lang.String[] nodeNames
public java.lang.Double[] minNodeSize
public java.lang.String[] minNodeSizeRules
public java.lang.Double[] cutNodeSize
public java.lang.String[] cutNodeSizeRules
public java.lang.Double[] cutNodeSpa1D
public java.lang.String[] cutNodeSpa1DRules
public java.lang.Double[] cutNodeSpa2D
public java.lang.String[] cutNodeSpa2DRules
public java.lang.Double[] cutNodeSurround
public java.lang.String[] cutNodeSurroundRules
public double transPolyOverhang
Constructor Detail |
---|
public MOSRules()
public MOSRules(Technology t)
Method Detail |
---|
public DRCTemplate getMinNodeSize(int index, int when)
index
- represents node, widths are stored in index*2 and height in index*2+jwhen
- represents the foundry being used
public Technology getTechnology()
getTechnology
in interface DRCRules
public int getRuleIndex(int index1, int index2)
getRuleIndex
in interface DRCRules
index1
- the first layer/node index.index2
- the second layer/node index.
public static int getRuleIndex(int index1, int index2, int numLayers)
index1
- the first layer/node index.index2
- the second layer/node index.numLayers
- the number of layers
public double getPolyOverhang()
public boolean isForbiddenNode(int nodeIndex, DRCTemplate.DRCRuleType type)
isForbiddenNode
in interface DRCRules
nodeIndex
- index of node in DRC rules map to examine.type
- rule type.
public double getWorstSpacingDistance(int lastMetal)
getWorstSpacingDistance
in interface DRCRules
lastMetal
-
public double getMaxSurround(Layer layer, double maxSize)
getMaxSurround
in interface DRCRules
layer
- the Layer to examine.
public java.util.List<DRCTemplate> getRules(Layer layer1, DRCTemplate.DRCRuleType type)
getRules
in interface DRCRules
layer1
- layertype
- rule type
public DRCTemplate getExtensionRule(Layer layer1, Layer layer2, boolean isGateExtension)
getExtensionRule
in interface DRCRules
layer1
- the first layer.layer2
- the second layer.isGateExtension
- to decide between the rule EXTENSIONGATE or EXTENSION
public DRCTemplate getEdgeRule(Layer layer1, Layer layer2)
getEdgeRule
in interface DRCRules
layer1
- the first layer.layer2
- the second layer.
public DRCTemplate getSpacingRule(Layer layer1, Geometric geo1, Layer layer2, Geometric geo2, boolean connected, int multiCut, double wideS, double length)
getSpacingRule
in interface DRCRules
layer1
- the first layer.layer2
- the second layer.connected
- true to find the distance when the layers are connected.multiCut
- 1 to find the distance when this is part of a multicut contact.wideS
- widest polygonlength
- length of the intersection
public boolean isAnySpacingRule(Layer layer1, Layer layer2)
isAnySpacingRule
in interface DRCRules
layer1
- the first Layer to check.layer2
- the second Layer to check.
public boolean doesAllowMultipleWideRules(int index)
doesAllowMultipleWideRules
in interface DRCRules
index
- the index in the upper-diagonal table of layers.
public int getNumberOfRules()
getNumberOfRules
in interface DRCRules
public java.lang.String[] getNodesWithRules()
getNodesWithRules
in interface DRCRules
public void addRule(int index, DRCTemplate rule)
addRule
in interface DRCRules
public void addRule(int index, DRCTemplate rule, DRCTemplate.DRCRuleType spacingCase, boolean wideRules)
addRule
in interface DRCRules
index
- rule
- wideRules
- public void deleteRule(int index, DRCTemplate rule)
deleteRule
in interface DRCRules
index
- rule
- public void setSpacingRules(int index, java.util.List<DRCTemplate> newRules, DRCTemplate.DRCRuleType spacingCase, boolean wideRules)
setSpacingRules
in interface DRCRules
index
- newRules
- spacingCase
- SPACING for normal case, SPACINGW for wide case, CUTSPA for multi cutswideRules
- public java.util.List<DRCTemplate> getSpacingRules(int index, DRCTemplate.DRCRuleType type, boolean wideRules)
getSpacingRules
in interface DRCRules
index
- the index of the layer being queried.type
- SPACING (normal values), SPACINGW (wide values),
SPACINGE (edge values) and CUTSPA (multi cuts).wideRules
-
public DRCTemplate getMinValue(Layer layer, DRCTemplate.DRCRuleType type)
getMinValue
in interface DRCRules
layer
- the Layer to examine.type
- rule type
public DRCTemplate getRule(int index, DRCTemplate.DRCRuleType type)
getRule
in interface DRCRules
index
- the index of the layer or nodetype
- the rule type.
public DRCTemplate getRule(int index, DRCTemplate.DRCRuleType type, java.lang.String nodeName)
getRule
in interface DRCRules
index
- the combined index of the two layers involvedtype
- nodeName
- name of the primitive
public void setMinValue(Layer layer, java.lang.String name, double value, DRCTemplate.DRCRuleType type)
setMinValue
in interface DRCRules
layer
- the Layer to examine.name
- the rule namevalue
- the new rule valuetype
- rule typepublic void applyDRCOverrides(java.lang.String override, Technology tech)
applyDRCOverrides
in interface DRCRules
override
- the override string.tech
- the Technology in which these rules live.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |