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.
