|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.electric.tool.ncc.processing.ExportChecker
public class ExportChecker
The ExportChecker checks the Exports of the two Cells that are supposed to be equivalent. NCC checks exports in two phases. The first phase runs before NCC checks circuit topology. In the first phase NCC checks to see if the two Cells have consistent Exports. For example, if the schematic has a network with Export A then NCC makes sure that the layout has a network with Export A.
The second phase runs after NCC has checked the circuit topology. In the second phase NCC makes sure that the Wire attached to the schematic Export A is topologically matched to the Wire attached to layout Export A.
Electric allows a network to have multiple exports. For example a schematic network can have three Exports {A, B, C}. NCC can do one of two things for networks with multiple Exports.
When I first wrote NCC I implemented a flexible comparison. If the schematic had Exports {A, B, C} then I just made sure that the layout had a network with any of those Export names. For example, if the layout had a network with Exports {B, C, D} then the flexible comparison would say they match.
Years after the initial implementation the design group noticed that commercial tools lacked this flexibility. Therefore I changed NCC to mimic the behavior of the commercial tools. If a network has more than one Export attached, then NCC sorts the Export names and chooses only the first name. In that case if the schematic network has Exports {A, B, C} then it does not match the layout network with Exports {B, C, D}.
ExportChecker implements both flexible and strict Export checking in order to maintain compatibility with most of the NCC regression database. When NCC is invoked interactively it uses strict Export checking. However the regression scripts set NccOption.oneNamePerPort to false which enables flexible Export checking.
Constructor Summary | |
---|---|
ExportChecker(NccGlobals globals)
|
Method Summary | |
---|---|
boolean |
ensureExportsWithMatchingNamesAreOnEquivalentNets()
Check that Exports with matching names are on equivalent nets. |
void |
markPortsForRenaming()
|
boolean |
matchByName()
match Exports by name. |
void |
saveInfoNeededToMakeMeASubcircuit(HierarchyInfo hierInfo)
Gather information that will allow hierarchical netlist comparison at higher level to treat me as a subcircuit. |
void |
suggestPortMatchesBasedOnTopology()
If the topological comparison is successful, then both circuits match. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ExportChecker(NccGlobals globals)
Method Detail |
---|
public void markPortsForRenaming()
public boolean matchByName()
public void saveInfoNeededToMakeMeASubcircuit(HierarchyInfo hierInfo)
public boolean ensureExportsWithMatchingNamesAreOnEquivalentNets()
public void suggestPortMatchesBasedOnTopology()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |