On Jan 28, 12:53 pm, Steven Rubin <[email protected]> wrote:
> 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

Hi Dr. Rubin,

The patch seems to be working OK.
thanks
pallav

-- 
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.

Reply via email to