com.sun.electric.technology
Interface DRCRules

All Known Implementing Classes:
MOSRules, XMLRules

public interface DRCRules

Interface for abstracting design rules.


Method Summary
 void addRule(int index, DRCTemplate rule)
           
 void addRule(int index, DRCTemplate rule, DRCTemplate.DRCRuleType spacingCase, boolean wideRules)
           
 void applyDRCOverrides(java.lang.String override, Technology tech)
           
 void deleteRule(int index, DRCTemplate rule)
           
 boolean doesAllowMultipleWideRules(int index)
           
 DRCTemplate getEdgeRule(Layer layer1, Layer layer2)
           
 DRCTemplate getExtensionRule(Layer layer1, Layer layer2, boolean isGateExtension)
           
 double getMaxSurround(Layer layer, double maxSize)
           
 DRCTemplate getMinValue(Layer layer, DRCTemplate.DRCRuleType type)
           
 java.lang.String[] getNodesWithRules()
          For UI
 int getNumberOfRules()
           
 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)
           
 java.util.List<DRCTemplate> getRules(Layer layer1, DRCTemplate.DRCRuleType type)
           
 DRCTemplate getSpacingRule(Layer layer1, Geometric geo1, Layer layer2, Geometric geo2, boolean connected, int multiCut, double wideS, double length)
           
 java.util.List<DRCTemplate> getSpacingRules(int index, DRCTemplate.DRCRuleType type, boolean wideRules)
           
 Technology getTechnology()
           
 double getWorstSpacingDistance(int lastMetal)
           
 boolean isAnySpacingRule(Layer layer1, Layer layer2)
           
 DRCTemplate isForbiddenNode(int nodeIndex, DRCTemplate.DRCRuleType type)
           
 void setMinValue(Layer layer, java.lang.String name, double value, DRCTemplate.DRCRuleType type)
           
 void setSpacingRules(int index, java.util.List<DRCTemplate> newRules, DRCTemplate.DRCRuleType spacingCase, boolean wideRules)
           
 

Method Detail

getTechnology

Technology getTechnology()

getRuleIndex

int getRuleIndex(int index1,
                 int index2)

getWorstSpacingDistance

double getWorstSpacingDistance(int lastMetal)

getMaxSurround

double getMaxSurround(Layer layer,
                      double maxSize)

getEdgeRule

DRCTemplate getEdgeRule(Layer layer1,
                        Layer layer2)

getSpacingRule

DRCTemplate getSpacingRule(Layer layer1,
                           Geometric geo1,
                           Layer layer2,
                           Geometric geo2,
                           boolean connected,
                           int multiCut,
                           double wideS,
                           double length)

isAnySpacingRule

boolean isAnySpacingRule(Layer layer1,
                         Layer layer2)

getExtensionRule

DRCTemplate getExtensionRule(Layer layer1,
                             Layer layer2,
                             boolean isGateExtension)

getRules

java.util.List<DRCTemplate> getRules(Layer layer1,
                                     DRCTemplate.DRCRuleType type)

getNumberOfRules

int getNumberOfRules()

getMinValue

DRCTemplate getMinValue(Layer layer,
                        DRCTemplate.DRCRuleType type)

getRule

DRCTemplate getRule(int index,
                    DRCTemplate.DRCRuleType type)
Method to retrieve simple layer or node rules

Parameters:
index - the index of the layer or node
type - the rule type.
Returns:
the requested rule.

getRule

DRCTemplate getRule(int index,
                    DRCTemplate.DRCRuleType type,
                    java.lang.String nodeName)
Method to retrieve specific rules stored per node that involve two layers

Parameters:
index - the combined index of the two layers involved
type -
nodeName - the name of the primitive
Returns:
the requested rule.

setMinValue

void setMinValue(Layer layer,
                 java.lang.String name,
                 double value,
                 DRCTemplate.DRCRuleType type)

applyDRCOverrides

void applyDRCOverrides(java.lang.String override,
                       Technology tech)

isForbiddenNode

DRCTemplate isForbiddenNode(int nodeIndex,
                            DRCTemplate.DRCRuleType type)

getNodesWithRules

java.lang.String[] getNodesWithRules()
For UI


getSpacingRules

java.util.List<DRCTemplate> getSpacingRules(int index,
                                            DRCTemplate.DRCRuleType type,
                                            boolean wideRules)

addRule

void addRule(int index,
             DRCTemplate rule)

addRule

void addRule(int index,
             DRCTemplate rule,
             DRCTemplate.DRCRuleType spacingCase,
             boolean wideRules)

deleteRule

void deleteRule(int index,
                DRCTemplate rule)

setSpacingRules

void setSpacingRules(int index,
                     java.util.List<DRCTemplate> newRules,
                     DRCTemplate.DRCRuleType spacingCase,
                     boolean wideRules)

doesAllowMultipleWideRules

boolean doesAllowMultipleWideRules(int index)