|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.electric.tool.Tool
com.sun.electric.tool.Listener
com.sun.electric.tool.drc.DRC
public class DRC
This is the Design Rule Checker tool.
Nested Class Summary | |
---|---|
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
|
Field Summary | |
---|---|
protected static DRC |
tool
the DRC tool. |
Fields inherited from class com.sun.electric.tool.Tool |
---|
prefs |
Method Summary | |
---|---|
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,
boolean incremental,
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 double |
getMaxSurround(Layer layer,
double maxSize)
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 java.util.List<DRCTemplate> |
getRules(Layer layer1,
DRCTemplate.DRCRuleType type)
Method to find all possible rules of DRCRuleType type associated a layer. |
static DRCRules |
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. |
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(DRCRules rules,
int index1,
int index2,
DRCTemplate.DRCRuleType type)
|
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 void |
resetDRCDates(boolean startJob)
Method to delete all cached date information on all cells. |
static void |
setRules(DRC.DRCPreferences dp,
Technology tech,
DRCRules newRules)
Method to load a full set of design rules for a Technology. |
static boolean |
testAll()
JUnit interface |
Methods inherited from class com.sun.electric.tool.Listener |
---|
eraseLibrary, examineCell, killObject, modifyArcInst, modifyCell, modifyCellGroup, modifyExport, modifyLibrary, modifyNodeInst, newObject, readLibrary, renameObject, request, slice, startBatch, writeLibrary |
Methods inherited from class com.sun.electric.tool.Tool |
---|
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 |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected static DRC tool
Method Detail |
---|
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()
init
in interface Changes
init
in class Tool
public static DRC getDRCTool()
public void endBatch(Snapshot oldSnapshot, Snapshot newSnapshot, boolean undoRedo)
endBatch
in interface Changes
endBatch
in class Listener
oldSnapshot
- database snapshot before Job.newSnapshot
- database snapshot after Job and constraint propagation.undoRedo
- true if Job was Undo/Redo job.public static ErrorLogger getDRCErrorLogger(boolean layout, boolean incremental, 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 DRCRules getRules(Technology tech)
tech
- the Technology to examine.
public static void setRules(DRC.DRCPreferences dp, Technology tech, DRCRules 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 double getMaxSurround(Layer layer, double maxSize)
layer
- the Layer to examine.
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 intersection
public 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 EXTENSION
public 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 type
public static DRCTemplate isForbiddenNode(int index1, int index2, DRCTemplate.DRCRuleType type, Technology tech)
public static DRCTemplate isForbiddenNode(DRCRules 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()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |