Modifier and Type | Class and Description |
---|---|
static class |
DRC.CheckDRCJob
Base class for checking design rules.
|
static class |
DRC.DRCCheckLogging |
static class |
DRC.DRCCheckMinArea |
static class |
DRC.DRCCheckMode
Control different level of error checking
|
static class |
DRC.DRCErrorType
QUICK DRC ERROR REPORTING
|
static class |
DRC.DRCPreferences
OPTIONS
|
static class |
DRC.ReportInfo |
Modifier and Type | Field and Description |
---|---|
protected static DRC |
tool
the DRC tool.
|
Modifier and Type | Method and Description |
---|---|
static void |
checkDRCHierarchically(DRC.DRCPreferences dp,
Cell cell,
java.util.List<Geometric> objs,
java.awt.geom.Rectangle2D bounds,
GeometryHandler.GHMode mode,
boolean onlyArea)
This method generates a DRC job from the GUI or for a bash script.
|
static void |
cleanCellsDueToFoundryChanges(Technology tech,
Foundry f,
DRC.DRCPreferences dp)
Method to clean those cells that were marked with a valid date due to
changes in the DRC rules.
|
static void |
createDRCErrorLogger(DRC.ReportInfo reportInfo,
DRC.DRCErrorType errorType,
java.lang.String msg,
Cell cell,
double limit,
double actual,
java.lang.String rule,
PolyBase poly1,
Geometric geom1,
Layer layer1,
PolyBase poly2,
Geometric geom2,
Layer layer2) |
void |
endBatch(Snapshot oldSnapshot,
Snapshot newSnapshot,
boolean undoRedo)
Handles database changes of a Job.
|
static java.lang.String |
explainBits(int bits,
DRC.DRCPreferences dp) |
static int |
getActiveBits(Technology tech,
DRC.DRCPreferences dp) |
static ErrorLogger |
getDRCErrorLogger(boolean layout,
java.lang.String extraMsg)
DRC INTERFACE
|
static ErrorLogger |
getDRCIncrementalLogger() |
static DRC |
getDRCTool()
Method to retrieve the singleton associated with the DRC tool.
|
static DRCTemplate |
getEdgeRule(Layer layer1,
Layer layer2)
Method to find the edge spacing rule between two layer.
|
static DRCTemplate |
getExtensionRule(Layer layer1,
Layer layer2,
boolean isGateExtension)
Method to find the extension rule between two layer.
|
static java.util.Date |
getLastDRCDateBasedOnBits(Cell cell,
boolean spacingCheck,
int activeBits,
boolean fromDisk)
Method to tell the date of the last successful DRC of a given Cell.
|
static boolean |
getMaxSurround(Layer layer,
double maxSize,
MutableDouble mutableDist)
Method to find the maximum design-rule distance around a layer.
|
static PrimitiveNode.NodeSizeRule |
getMinSize(NodeProto np)
Method to get the minimum size rule for a NodeProto.
|
static DRCTemplate |
getMinValue(Layer layer,
DRCTemplate.DRCRuleType type)
Method to get the minimum
|
static Layer.Function.Set |
getOnlyLayersWithRulesFromArc(ArcProto ap,
Technology tech) |
static Layer.Function.Set |
getOnlyLayersWithRulesFromPrimitive(NodeProto np,
Technology tech)
Method to retrieve only the layer functions with rules in a node.
|
static java.util.List<DRCTemplate> |
getRules(Layer layer1,
DRCTemplate.DRCRuleType type)
Method to find all possible rules of DRCRuleType type associated a layer.
|
static XMLRules |
getRules(Technology tech)
Method to build a Rules object that contains the current design rules for a Technology.
|
static 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.
|
static double |
getWorstSpacingDistance(Technology tech,
int lastMetal)
Method to find the worst spacing distance in the design rules.
|
static boolean |
getWorstSpacingDistance(Technology tech,
java.util.Set<Layer> layers,
MutableDouble mutableDist)
Method to find the worst spacing distance in the design rules for a given list of layers.
|
void |
init()
Method to initialize the DRC tool.
|
static boolean |
isAnySpacingRule(Layer layer1,
Layer layer2)
Method to tell whether there are any design rules between two layers.
|
static boolean |
isCellDRCDateGood(Cell cell,
java.util.Date date)
Method to check if current date is later than cell revision
|
static DRCTemplate |
isForbiddenNode(int index1,
int index2,
DRCTemplate.DRCRuleType type,
Technology tech)
Determine if node represented by index in DRC mapping table is forbidden under
this foundry.
|
static DRCTemplate |
isForbiddenNode(XMLRules rules,
int index1,
int index2,
DRCTemplate.DRCRuleType type) |
static void |
makeDRCAnnotation()
Annotations
|
static void |
resetDRCDates(boolean startJob)
Method to delete all cached date information on all cells.
|
static void |
setRules(DRC.DRCPreferences dp,
Technology tech,
XMLRules newRules)
Method to load a full set of design rules for a Technology.
|
static boolean |
testAll()
JUnit interface
|
eraseLibrary, examineCell, killObject, modifyArcInst, modifyCell, modifyCellGroup, modifyExport, modifyLibrary, modifyNodeInst, newObject, readLibrary, renameObject, request, slice, startBatch, writeLibrary
clearAnalysis, clearBackground, clearFixErrors, clearIncremental, clearOn, clearSynthesis, compareTo, findTool, getIndex, getListeners, getName, getNumTools, getProjectSettings, getTools, initAllTools, isAnalysis, isBackground, isFixErrors, isIncremental, isOn, isSynthesis, setAnalysis, setBackground, setFixErrors, setIncremental, setOn, setSynthesis, setVarInJob, toString
protected static DRC tool
public static void makeDRCAnnotation()
public static void createDRCErrorLogger(DRC.ReportInfo reportInfo, DRC.DRCErrorType errorType, java.lang.String msg, Cell cell, double limit, double actual, java.lang.String rule, PolyBase poly1, Geometric geom1, Layer layer1, PolyBase poly2, Geometric geom2, Layer layer2)
public void init()
public static DRC getDRCTool()
public void endBatch(Snapshot oldSnapshot, Snapshot newSnapshot, boolean undoRedo)
public static ErrorLogger getDRCErrorLogger(boolean layout, java.lang.String extraMsg)
public static ErrorLogger getDRCIncrementalLogger()
public static void checkDRCHierarchically(DRC.DRCPreferences dp, Cell cell, java.util.List<Geometric> objs, java.awt.geom.Rectangle2D bounds, GeometryHandler.GHMode mode, boolean onlyArea)
public static XMLRules getRules(Technology tech)
tech
- the Technology to examine.public static void setRules(DRC.DRCPreferences dp, Technology tech, XMLRules newRules)
tech
- the Technology to load.newRules
- a complete design rules object.public static double getWorstSpacingDistance(Technology tech, int lastMetal)
tech
- the Technology to examine.lastMetal
- public static boolean getWorstSpacingDistance(Technology tech, java.util.Set<Layer> layers, MutableDouble mutableDist)
tech
- the Technology to examine.layers
- List of layers to checkmutableDist
- the largest spacing distance in the Technology for the given layers. Zero if nothing foundpublic static boolean getMaxSurround(Layer layer, double maxSize, MutableDouble mutableDist)
layer
- the Layer to examine.public static Layer.Function.Set getOnlyLayersWithRulesFromPrimitive(NodeProto np, Technology tech)
np
- the Primitive node to obtain.tech
- the Technology that holds the Primitive node.public static Layer.Function.Set getOnlyLayersWithRulesFromArc(ArcProto ap, Technology tech)
public static DRCTemplate getEdgeRule(Layer layer1, Layer layer2)
layer1
- the first layer.layer2
- the second layer.public static DRCTemplate getSpacingRule(Layer layer1, Geometric geo1, Layer layer2, Geometric geo2, boolean connected, int multiCut, double wideS, double length)
layer1
- the first layer.geo1
- layer2
- the second layer.geo2
- 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 intersectionpublic static java.util.List<DRCTemplate> getRules(Layer layer1, DRCTemplate.DRCRuleType type)
layer1
- the layer whose rules are desired.public static DRCTemplate getExtensionRule(Layer layer1, Layer layer2, boolean isGateExtension)
layer1
- the first layer.layer2
- the second layer.isGateExtension
- to decide between the rule EXTENSIONGATE or EXTENSIONpublic static boolean isAnySpacingRule(Layer layer1, Layer layer2)
layer1
- the first Layer to check.layer2
- the second Layer to check.public static DRCTemplate getMinValue(Layer layer, DRCTemplate.DRCRuleType type)
layer
- the Layer to examine.type
- rule typepublic static DRCTemplate isForbiddenNode(int index1, int index2, DRCTemplate.DRCRuleType type, Technology tech)
public static DRCTemplate isForbiddenNode(XMLRules rules, int index1, int index2, DRCTemplate.DRCRuleType type)
public static PrimitiveNode.NodeSizeRule getMinSize(NodeProto np)
np
- the NodeProto to examine.public static void cleanCellsDueToFoundryChanges(Technology tech, Foundry f, DRC.DRCPreferences dp)
f
- public static boolean isCellDRCDateGood(Cell cell, java.util.Date date)
cell
- date
- public static java.util.Date getLastDRCDateBasedOnBits(Cell cell, boolean spacingCheck, int activeBits, boolean fromDisk)
cell
- the cell to query.fromDisk
- public static java.lang.String explainBits(int bits, DRC.DRCPreferences dp)
public static int getActiveBits(Technology tech, DRC.DRCPreferences dp)
public static void resetDRCDates(boolean startJob)
startJob
- public static boolean testAll()