| Modifier and Type | Field and Description |
|---|---|
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 and Description |
|---|
MOSRules() |
MOSRules(Technology t) |
| Modifier and Type | Method and Description |
|---|---|
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.
|
DRCTemplate |
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) |
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
public MOSRules()
public MOSRules(Technology t)
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 usedpublic Technology getTechnology()
getTechnology in interface DRCRulespublic int getRuleIndex(int index1,
int index2)
getRuleIndex in interface DRCRulesindex1 - 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 layerspublic double getPolyOverhang()
public DRCTemplate isForbiddenNode(int nodeIndex, DRCTemplate.DRCRuleType type)
isForbiddenNode in interface DRCRulesnodeIndex - index of node in DRC rules map to examine.type - rule type.public double getWorstSpacingDistance(int lastMetal)
getWorstSpacingDistance in interface DRCRuleslastMetal - public double getMaxSurround(Layer layer, double maxSize)
getMaxSurround in interface DRCRuleslayer - the Layer to examine.public java.util.List<DRCTemplate> getRules(Layer layer1, DRCTemplate.DRCRuleType type)
public DRCTemplate getExtensionRule(Layer layer1, Layer layer2, boolean isGateExtension)
getExtensionRule in interface DRCRuleslayer1 - the first layer.layer2 - the second layer.isGateExtension - to decide between the rule EXTENSIONGATE or EXTENSIONpublic DRCTemplate getEdgeRule(Layer layer1, Layer layer2)
getEdgeRule in interface DRCRuleslayer1 - 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 DRCRuleslayer1 - 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 intersectionpublic boolean isAnySpacingRule(Layer layer1, Layer layer2)
isAnySpacingRule in interface DRCRuleslayer1 - the first Layer to check.layer2 - the second Layer to check.public boolean doesAllowMultipleWideRules(int index)
doesAllowMultipleWideRules in interface DRCRulesindex - the index in the upper-diagonal table of layers.public int getNumberOfRules()
getNumberOfRules in interface DRCRulespublic java.lang.String[] getNodesWithRules()
getNodesWithRules in interface DRCRulespublic void addRule(int index,
DRCTemplate rule)
public void addRule(int index,
DRCTemplate rule,
DRCTemplate.DRCRuleType spacingCase,
boolean wideRules)
public void deleteRule(int index,
DRCTemplate rule)
deleteRule in interface DRCRulesindex - rule - public void setSpacingRules(int index,
java.util.List<DRCTemplate> newRules,
DRCTemplate.DRCRuleType spacingCase,
boolean wideRules)
setSpacingRules in interface DRCRulesindex - 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 DRCRulesindex - 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 DRCRuleslayer - the Layer to examine.type - rule typepublic DRCTemplate getRule(int index, DRCTemplate.DRCRuleType type)
public DRCTemplate getRule(int index, DRCTemplate.DRCRuleType type, java.lang.String nodeName)
public void setMinValue(Layer layer, java.lang.String name, double value, DRCTemplate.DRCRuleType type)
setMinValue in interface DRCRuleslayer - 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 DRCRulesoverride - the override string.tech - the Technology in which these rules live.