At 04:52 PM 1/27/2010, you wrote:
I'm using Electric 8.10 on Snow Leopard 10.6.2 with Java version
1.6.0_17.
I do the following in Electric
1. Edit -> Technology Specific -> Convert Technology to Library for
Editing for mocmos
2. Then I click on technology nodes and select say node-Metal-1-N-
Active-Con{lay}.
3. Then I go Edit -> Technology Specific -> Identify Primitive layers
or Identify Ports
I get "Analysis Failure:
Cell node-Metal-1-N-Active-Con{lay}, node filled-box[...@3]: Node has
no layer information
However, this series of steps work OK in Electric 8.09 and show the
various layers that are present (they're highlighted with white
lines). I believe this is a bug in 8.10.
Hopefully this can be fixed or a patch can be made available?
The simple patch is to replace the method "getLayerCell()" in the module:
com.sun.electric.tool.user.tecEdit.Manipulate.java
The code should be:
--------------------------------------------------
static Cell getLayerCell(NodeInst ni)
{
Variable var = ni.getVar(Info.LAYER_KEY);
if (var == null) return null;
CellId cID = (CellId)var.getObject();
Cell clientCell = EDatabase.clientDatabase().getCell(cID);
Cell cell = EDatabase.serverDatabase().getCell(cID);
if (clientCell != null || cell != null)
{
// validate the reference
for(Iterator<Cell> it =
ni.getParent().getLibrary().getCells(); it.hasNext(); )
{
Cell oCell = it.next();
if (oCell == cell || oCell == clientCell) return oCell;
}
}
System.out.println("Layer " + cID.cellName + " not found");
return null;
}
--------------------------------------------------
However, your bug report uncovers other problems in that same
module. To fix these other problems, make these patches:
In the "doIt()" method of the RedoLayerGraphicsJob subclass, change the lines:
--------------------------------------------------
Variable varLay = cNi.getVar(Info.LAYER_KEY);
if (varLay == null) continue;
CellId cID = (CellId)varLay.getObject();
Cell varCell = EDatabase.serverDatabase().getCell(cID);
--------------------------------------------------
to be:
--------------------------------------------------
Cell varCell = getLayerCell(cNi);
--------------------------------------------------
In the "deletedCell()" method, change the lines:
--------------------------------------------------
Variable var = ni.getVar(Info.LAYER_KEY);
if (var == null) continue;
CellId cID = (CellId)var.getObject();
Cell varCell = EDatabase.serverDatabase().getCell(cID);
--------------------------------------------------
to be:
--------------------------------------------------
Cell varCell = getLayerCell(ni);
--------------------------------------------------
And in the "modPort()" method, change the line:
--------------------------------------------------
connectSet.add(EDatabase.serverDatabase().getCell(connects[i]));
--------------------------------------------------
to be:
--------------------------------------------------
connectSet.add(EDatabase.clientDatabase().getCell(connects[i]));
--------------------------------------------------
Sorry for the complexity. If you wish to have a new copy of the
entire module, let me know and I will send it to you.
-Steven Rubin
--
You received this message because you are subscribed to the Google Groups "Electric
VLSI Editor" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/electricvlsi?hl=en.