|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.electric.tool.ncc.processing.HierarchyInfo
public class HierarchyInfo
Information needed to perform hierarchical netlist comparison
Constructor Summary | |
---|---|
HierarchyInfo()
|
Method Summary | |
---|---|
void |
addSubcircuitInfo(Cell c,
SubcircuitInfo subcktInfo)
Add new subcircuit information for each Cell in the compareList so it can be treated as a subcircuit primitive in a future hierarchical comparison at a higher level. |
void |
beginNextCompareList(java.lang.String subcktName)
You must call this before you begin comparing Cells in a new compareList. |
int |
currentSubcircuitID()
unique int ID of subcircuit being compared |
java.lang.String |
currentSubcircuitName()
name of the subcircuit being compared |
SubcircuitInfo |
getSubcircuitInfo(Cell c)
get me information I need to treat an instance of this Cell as a subcircuit primitive |
void |
purgeCurrentCompareList()
You must call this method if a Cell comparison reveals an Export name mismatch. |
void |
restrictSubcktDetection(CellContext cc1,
CellContext cc2,
java.util.Set compareListCells)
Restrict subcircuit detection. |
boolean |
treatAsPrimitive(Cell c)
should I treat an instance of this cell as a subcircuit primitive in the current comparison? |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public HierarchyInfo()
Method Detail |
---|
public void beginNextCompareList(java.lang.String subcktName)
public void restrictSubcktDetection(CellContext cc1, CellContext cc2, java.util.Set compareListCells)
Also, we should not detect a subcircuit if the Cell is in the current compare list. Here's the weird case that motivates this. Suppose B{lay} instantiates A{lay}. Suppose the designer compares A{sch} with B{lay}. NCC builds a compare list with A{sch}, A{lay}, and B{lay}. NCC might first compare A{sch} with A{lay}. Then when NCC compares A{sch} with B{lay} it will fail because A gets treated as a subcircuit. However, if NCC first compares A{sch} with B{lay} then the second comparison: A{sch} with A{lay} will pass. Unfortunately, NCC's choice is random. Successive runs produce different results.
In general the compare list might have n schematics and m layouts and the schematics may instantiate one-another and the layouts might instantiate one another. If we prevent all the schematics and layouts from being treated as subcells then any order of comparison should pass.
public void addSubcircuitInfo(Cell c, SubcircuitInfo subcktInfo)
However, if a comparison reveals an Export name mismatch then you must call purgeCurrentCompareList() after which it doesn't matter what you do.
public void purgeCurrentCompareList()
public java.lang.String currentSubcircuitName()
public int currentSubcircuitID()
public boolean treatAsPrimitive(Cell c)
public SubcircuitInfo getSubcircuitInfo(Cell c)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |