|
||||||||||
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.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(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)
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)
|
static int |
getActiveBits(Technology tech)
|
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 DRC.DRCCheckLogging |
getErrorLoggingType()
Method to retrieve logging type in DRC The default is "DRC_LOG_PER_CELL". |
static DRC.DRCCheckMode |
getErrorType()
Method to retrieve checking level in DRC. |
static DRCTemplate |
getExtensionRule(Layer layer1,
Layer layer2,
boolean isGateExtension)
Method to find the extension rule between two layer. |
static DRC.DRCCheckLogging |
getFactoryErrorLoggingType()
Method to retrieve logging type in DRC, by default. |
static DRC.DRCCheckMode |
getFactoryErrorType()
Method to retrieve checking level in DRC, by default. |
static DRC.DRCCheckMinArea |
getFactoryMinAreaAlgoOption()
Method to tell which min area algorithm to use, by default. |
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 DRC.DRCCheckMinArea |
getMinAreaAlgoOption()
Method to tell which min area algorithm to use. |
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 boolean |
isDatesStoredInMemory()
Method to tell whether DRC dates should be stored in memory or not. |
static boolean |
isFactoryDatesStoredInMemory()
Method to tell whether DRC dates should be stored in memory or not, by default. |
static boolean |
isFactoryIgnoreAreaChecking()
Method to tell whether DRC should ignore minimum/enclosed area checking, by default. |
static boolean |
isFactoryIgnoreCenterCuts()
Method to tell whether DRC should ignore center cuts in large contacts, by default. |
static boolean |
isFactoryIgnoreExtensionRuleChecking()
Method to tell whether DRC should check extension rules, by default. |
static boolean |
isFactoryIncrementalDRCOn()
Method to tell whether DRC should be done incrementally, by default. |
static boolean |
isFactoryInteractiveDRCDragOn()
Method to tell whether DRC violations should be shown while nodes and arcs are dragged, by default. |
static boolean |
isFactoryInteractiveLoggingOn()
Method to tell whether DRC loggers should be displayed in Explorer immediately, by default. |
static boolean |
isFactoryMultiThreaded()
Method to tell whether DRC should run in a single thread or multi-threaded, by default. |
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 boolean |
isIgnoreAreaChecking()
Method to tell whether DRC should ignore minimum/enclosed area checking. |
static boolean |
isIgnoreCenterCuts()
Method to tell whether DRC should ignore center cuts in large contacts. |
static boolean |
isIgnoreExtensionRuleChecking()
Method to tell whether DRC should check extension rules. |
static boolean |
isIncrementalDRCOn()
Method to tell whether DRC should be done incrementally. |
static boolean |
isInteractiveDRCDragOn()
Method to tell whether DRC violations should be shown while nodes and arcs are dragged. |
static boolean |
isInteractiveLoggingOn()
Method to tell whether DRC loggers should be displayed in Explorer immediately The default is "false". |
static boolean |
isMultiThreaded()
Method to tell whether DRC should run in a single thread or multi-threaded. |
static void |
resetDRCDates(boolean startJob)
Method to delete all cached date information on all cells. |
static void |
setDatesStoredInMemory(boolean on)
Method to set whether DRC dates should be stored in memory or not. |
static void |
setErrorLoggingType(DRC.DRCCheckLogging type)
Method to set DRC logging type. |
static void |
setErrorType(DRC.DRCCheckMode type)
Method to set DRC error type. |
static void |
setIgnoreAreaChecking(boolean on)
Method to set whether DRC should ignore minimum/enclosed area checking. |
static void |
setIgnoreCenterCuts(boolean on)
Method to set whether DRC should ignore center cuts in large contacts. |
static void |
setIgnoreExtensionRuleChecking(boolean on)
Method to set whether DRC should check extension rules. |
static void |
setIncrementalDRCOn(boolean on)
Method to set whether DRC should be done incrementally. |
static void |
setInteractiveDRCDragOn(boolean on)
Method to set whether DRC violations should be shown while nodes and arcs are dragged. |
static void |
setInteractiveLogging(boolean on)
Method to set whether DRC loggers should be displayed in Explorer immediately or not |
static void |
setMinAreaAlgoOption(DRC.DRCCheckMinArea mode)
Method to set which min area algorithm to use. |
static void |
setMultiThreaded(boolean mode)
Method to set whether DRC should run in a single thread or multi-threaded. |
static void |
setRules(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, getDiskSettings, getIndex, getListeners, getName, getNumTools, getProjectSettings, getSetting, getTools, initAllTools, initProjectSettings, isAnalysis, isBackground, isFixErrors, isIncremental, isOn, isSynthesis, makeBooleanSetting, makeDoubleSetting, makeIntSetting, makeLongSetting, makeStringSetting, 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(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(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)
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)
public static int getActiveBits(Technology tech)
public static boolean isIncrementalDRCOn()
public static void setIncrementalDRCOn(boolean on)
on
- true if DRC should be done incrementally.public static boolean isFactoryIncrementalDRCOn()
public static boolean isInteractiveDRCDragOn()
public static void setInteractiveDRCDragOn(boolean on)
on
- true if DRC violations should be shown while nodes and arcs are dragged.public static boolean isFactoryInteractiveDRCDragOn()
public static DRC.DRCCheckLogging getErrorLoggingType()
public static void setErrorLoggingType(DRC.DRCCheckLogging type)
type
- representing error logging mode.public static DRC.DRCCheckLogging getFactoryErrorLoggingType()
public static DRC.DRCCheckMode getErrorType()
public static void setErrorType(DRC.DRCCheckMode type)
type
- representing error level.public static DRC.DRCCheckMode getFactoryErrorType()
public static boolean isIgnoreCenterCuts()
public static void setIgnoreCenterCuts(boolean on)
on
- true if DRC should ignore center cuts in large contacts.public static boolean isFactoryIgnoreCenterCuts()
public static boolean isIgnoreAreaChecking()
public static void setIgnoreAreaChecking(boolean on)
on
- true if DRC should ignore minimum/enclosed area checking.public static boolean isFactoryIgnoreAreaChecking()
public static boolean isIgnoreExtensionRuleChecking()
public static void setIgnoreExtensionRuleChecking(boolean on)
on
- true if DRC should check extension rules.public static boolean isFactoryIgnoreExtensionRuleChecking()
public static boolean isDatesStoredInMemory()
public static void setDatesStoredInMemory(boolean on)
on
- true if DRC dates should be stored in memory or not.public static boolean isFactoryDatesStoredInMemory()
public static boolean isInteractiveLoggingOn()
public static void setInteractiveLogging(boolean on)
on
- true if DRC loggers should be displayed in Explorer immediately.public static boolean isFactoryInteractiveLoggingOn()
public static DRC.DRCCheckMinArea getMinAreaAlgoOption()
public static void setMinAreaAlgoOption(DRC.DRCCheckMinArea mode)
mode
- DRCCheckMinArea type to setpublic static DRC.DRCCheckMinArea getFactoryMinAreaAlgoOption()
public static boolean isMultiThreaded()
public static void setMultiThreaded(boolean mode)
mode
- True if it will run a multi-threaded version.public static boolean isFactoryMultiThreaded()
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 |