|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.electric.technology.XMLRules
public class XMLRules
Nested Class Summary | |
---|---|
static class |
XMLRules.XMLRule
Local class to store information |
Field Summary | |
---|---|
java.util.HashMap<XMLRules.XMLRule,XMLRules.XMLRule>[] |
matrix
Hash map to store rules per matrix index |
Constructor Summary | |
---|---|
XMLRules(Technology t)
|
Method Summary | |
---|---|
void |
addRule(int index,
DRCTemplate rule)
Method to add a rule based on template |
void |
addRule(int index,
DRCTemplate rule,
DRCTemplate.DRCRuleType spacingCase,
boolean wideRules)
OLD FUNCTION |
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 |
getMinValue(Layer layer,
DRCTemplate.DRCRuleType type)
Method to get the minimum |
java.lang.String[] |
getNodesWithRules()
To retrieve those nodes whose have rules |
int |
getNumberOfRules()
Method to get total number of rules stored |
XMLRules.XMLRule |
getRule(int index,
DRCTemplate.DRCRuleType type)
Method to retrieve simple layer or node rules |
XMLRules.XMLRule |
getRule(int index,
DRCTemplate.DRCRuleType type,
java.lang.String nodeName)
Method to retrieve specific SURROUND 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. |
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 spacingCase,
boolean wideRules)
Method to retrieve different spacing rules depending on spacingCase. |
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 |
loadDRCRules(Technology tech,
Foundry foundry,
DRCTemplate theRule,
boolean pWellProcess)
|
void |
resizeContactsWithActive(PrimitiveNode[] contacts,
java.lang.String[] contactNames,
boolean aligned,
boolean buttedTop,
boolean buttedRightLeft)
Common resize function for well and active contacts |
void |
resizeMetalContacts(PrimitiveNode[] contacts,
int numMetals)
Public method to resize metal contacts |
void |
resizePolyContact(PrimitiveNode contact)
Common resize function for well and active contacts |
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)
|
void |
setWideLimits(double[] values)
To set wide limit for old techs // * @param values |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public java.util.HashMap<XMLRules.XMLRule,XMLRules.XMLRule>[] matrix
Constructor Detail |
---|
public XMLRules(Technology t)
Method Detail |
---|
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 DRCTemplate getEdgeRule(Layer layer1, Layer layer2)
getEdgeRule
in interface DRCRules
layer1
- the first layer.layer2
- the second layer.
public boolean doesAllowMultipleWideRules(int index)
doesAllowMultipleWideRules
in interface DRCRules
index
-
public int getNumberOfRules()
getNumberOfRules
in interface DRCRules
public java.lang.String[] getNodesWithRules()
getNodesWithRules
in interface DRCRules
public java.util.List<DRCTemplate> getSpacingRules(int index, DRCTemplate.DRCRuleType spacingCase, boolean wideRules)
getSpacingRules
in interface DRCRules
index
- spacingCase
- wideRules
-
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 XMLRules.XMLRule getRule(int index, DRCTemplate.DRCRuleType type)
getRule
in interface DRCRules
index
- the index of the layer or nodetype
- the rule type.
public XMLRules.XMLRule getRule(int index, DRCTemplate.DRCRuleType type, java.lang.String nodeName)
getRule
in interface DRCRules
index
- the combined index of the two layers involvedtype
- nodeName
- list containing the name of the primitive
public DRCTemplate getMinValue(Layer layer, DRCTemplate.DRCRuleType type)
getMinValue
in interface DRCRules
layer
- the Layer to examine.type
- rule type
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 setWideLimits(double[] values)
public void deleteRule(int index, DRCTemplate rule)
deleteRule
in interface DRCRules
index
- rule
- public void addRule(int index, DRCTemplate rule, DRCTemplate.DRCRuleType spacingCase, boolean wideRules)
addRule
in interface DRCRules
public void addRule(int index, DRCTemplate rule)
addRule
in interface DRCRules
index
- rule
- 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
- true to find the distance when this is part of a multicut contact.wideS
- widest polygonlength
- length of the intersection
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 boolean isAnySpacingRule(Layer layer1, Layer layer2)
isAnySpacingRule
in interface DRCRules
layer1
- the first Layer to check.layer2
- the second Layer to check.
public DRCTemplate isForbiddenNode(int nodeIndex, DRCTemplate.DRCRuleType type)
isForbiddenNode
in interface DRCRules
nodeIndex
- index of node in DRC rules map to examinetype
- rule type
public double getWorstSpacingDistance(int lastMetal)
getWorstSpacingDistance
in interface DRCRules
lastMetal
- last metal to check if only metal values are requested
public double getMaxSurround(Layer layer, double maxSize)
getMaxSurround
in interface DRCRules
layer
- the Layer to examine.
public void applyDRCOverrides(java.lang.String override, Technology tech)
applyDRCOverrides
in interface DRCRules
override
- the override string.tech
- the Technology in which these rules live.public void loadDRCRules(Technology tech, Foundry foundry, DRCTemplate theRule, boolean pWellProcess)
public void resizeMetalContacts(PrimitiveNode[] contacts, int numMetals)
contacts
- numMetals
- public void resizeContactsWithActive(PrimitiveNode[] contacts, java.lang.String[] contactNames, boolean aligned, boolean buttedTop, boolean buttedRightLeft)
contacts
- array of contacts to resizecontactNames
- Different contact names for butted contacts so already defined rules can be used.aligned
- buttedTop
- buttedRightLeft
- public void resizePolyContact(PrimitiveNode contact)
contact
- poly contact to resize
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |