com.sun.electric.tool.io.output
Class EDIF

java.lang.Object
  extended by com.sun.electric.tool.io.output.Output
      extended by com.sun.electric.tool.io.output.Topology
          extended by com.sun.electric.tool.io.output.EDIF

public class EDIF
extends Topology

This is the netlister for EDIF.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.sun.electric.tool.io.output.Topology
Topology.CellAggregateSignal, Topology.CellNetInfo, Topology.CellSignal, Topology.MyCellInfo, Topology.Visitor
 
Nested classes/interfaces inherited from class com.sun.electric.tool.io.output.Output
Output.OutputCellInfo, Output.WriteJELIB
 
Field Summary
 
Fields inherited from class com.sun.electric.tool.io.output.Topology
topCell
 
Fields inherited from class com.sun.electric.tool.io.output.Output
dataOutputStream, filePath, printWriter, quiet
 
Method Summary
protected  boolean canParameterizeNames()
          Method to tell whether the topological analysis should mangle cell names that are parameterized.
static java.lang.String convertCadencePropToElectric(java.lang.String prop)
          Convert a property in Cadence, with parameter passing, to Electric parameter passing syntax
static java.lang.String convertElectricPropToCadence(java.lang.String prop)
          Convert a property in Electric, with parameter passing, to Cadence parameter passing syntax
protected  void done()
          Abstract method called after traversal
protected  java.lang.String getGlobalName(Global glob)
          Method to return the proper name of a Global signal
protected  java.lang.String getGroundName(Network net)
          Method to return the proper name of Ground
static java.lang.String getOrientation(NodeInst ni, int addedRotation)
          Method to map Electric orientations to EDIF orientations
protected  java.lang.String getPowerName(Network net)
          Method to return the proper name of Power
protected  java.lang.String getSafeCellName(java.lang.String name)
          Method to adjust a cell name to be safe for EDIF output.
protected  java.lang.String getSafeNetName(java.lang.String name, boolean bus)
          Method to adjust a network name to be safe for EDIF output.
protected  Netlist.ShortResistors getShortResistors()
          Tell the Hierarchy enumerator how to short resistors
protected  boolean isAggregateNameGapsSupported()
          Abstract method to decide whether aggregate names (busses) can have gaps in their ranges.
protected  boolean isAggregateNamesSupported()
          Method to report that aggregate names (busses) are NOT used (bus information is extracted independently).
protected  boolean isLibraryNameAlwaysAddedToCellName()
          Method to report that library names ARE always prepended to cell names.
protected  boolean isNetworksUseExportedNames()
          Method to report that export names DO take precedence over arc names when determining the name of the network.
protected  boolean isSeparateInputAndOutput()
          Method to report whether input and output names are separated.
static java.lang.String makeValidName(java.lang.String name)
          Method to return null if there is no valid name in "var", corrected name if valid.
protected  void start()
          Abstract method called before hierarchy traversal
protected  void writeCellTopology(Cell cell, Topology.CellNetInfo cni, VarContext context, Topology.MyCellInfo info)
          Build up lists of cells that need to be written, organized by library
static void writeEDIFFile(Cell cell, VarContext context, java.lang.String filePath)
          The main entry point for EDIF deck writing.
 
Methods inherited from class com.sun.electric.tool.io.output.Topology
enterCell, enumerateLayoutView, getCellNetInfo, getUniqueCellName, isChooseBestExportName, isShortExplicitResistors, isShortResistors, maxNameLength, parameterizedName, skipCellAndSubcells, unIndexedName, validateSkippedCell, writeCell, writeCell
 
Methods inherited from class com.sun.electric.tool.io.output.Output
closeBinaryOutputStream, closeTextOutputStream, emitCopyright, exportCellCommand, getAreaToPrint, openBinaryOutputStream, openTextOutputStream, saveJelib, setContinuationString, setOutputWidth, writeCell, writeLibrary, writePanicSnapshot, writeWidthLimited
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

writeEDIFFile

public static void writeEDIFFile(Cell cell,
                                 VarContext context,
                                 java.lang.String filePath)
The main entry point for EDIF deck writing.

Parameters:
cell - the top-level cell to write.
context - the hierarchical context to the cell.
filePath - the disk file to create.

start

protected void start()
Description copied from class: Topology
Abstract method called before hierarchy traversal

Specified by:
start in class Topology

writeCellTopology

protected void writeCellTopology(Cell cell,
                                 Topology.CellNetInfo cni,
                                 VarContext context,
                                 Topology.MyCellInfo info)
Build up lists of cells that need to be written, organized by library

Specified by:
writeCellTopology in class Topology

done

protected void done()
Description copied from class: Topology
Abstract method called after traversal

Specified by:
done in class Topology

getOrientation

public static java.lang.String getOrientation(NodeInst ni,
                                              int addedRotation)
Method to map Electric orientations to EDIF orientations


makeValidName

public static java.lang.String makeValidName(java.lang.String name)
Method to return null if there is no valid name in "var", corrected name if valid.


convertElectricPropToCadence

public static java.lang.String convertElectricPropToCadence(java.lang.String prop)
Convert a property in Electric, with parameter passing, to Cadence parameter passing syntax

Parameters:
prop - the expression
Returns:
an equivalent expression in Cadence

convertCadencePropToElectric

public static java.lang.String convertCadencePropToElectric(java.lang.String prop)
Convert a property in Cadence, with parameter passing, to Electric parameter passing syntax

Parameters:
prop - the expression
Returns:
an equivalent expression in Electric

getSafeCellName

protected java.lang.String getSafeCellName(java.lang.String name)
Method to adjust a cell name to be safe for EDIF output.

Specified by:
getSafeCellName in class Topology
Parameters:
name - the cell name.
Returns:
the name, adjusted for EDIF output.

getPowerName

protected java.lang.String getPowerName(Network net)
Method to return the proper name of Power

Specified by:
getPowerName in class Topology

getGroundName

protected java.lang.String getGroundName(Network net)
Method to return the proper name of Ground

Specified by:
getGroundName in class Topology

getGlobalName

protected java.lang.String getGlobalName(Global glob)
Method to return the proper name of a Global signal

Specified by:
getGlobalName in class Topology

isNetworksUseExportedNames

protected boolean isNetworksUseExportedNames()
Method to report that export names DO take precedence over arc names when determining the name of the network.

Specified by:
isNetworksUseExportedNames in class Topology

isLibraryNameAlwaysAddedToCellName

protected boolean isLibraryNameAlwaysAddedToCellName()
Method to report that library names ARE always prepended to cell names.

Specified by:
isLibraryNameAlwaysAddedToCellName in class Topology

isAggregateNamesSupported

protected boolean isAggregateNamesSupported()
Method to report that aggregate names (busses) are NOT used (bus information is extracted independently).

Specified by:
isAggregateNamesSupported in class Topology

isAggregateNameGapsSupported

protected boolean isAggregateNameGapsSupported()
Abstract method to decide whether aggregate names (busses) can have gaps in their ranges.

Specified by:
isAggregateNameGapsSupported in class Topology

isSeparateInputAndOutput

protected boolean isSeparateInputAndOutput()
Method to report whether input and output names are separated.

Specified by:
isSeparateInputAndOutput in class Topology

getSafeNetName

protected java.lang.String getSafeNetName(java.lang.String name,
                                          boolean bus)
Method to adjust a network name to be safe for EDIF output.

Specified by:
getSafeNetName in class Topology

getShortResistors

protected Netlist.ShortResistors getShortResistors()
Tell the Hierarchy enumerator how to short resistors

Overrides:
getShortResistors in class Topology

canParameterizeNames

protected boolean canParameterizeNames()
Method to tell whether the topological analysis should mangle cell names that are parameterized.

Overrides:
canParameterizeNames in class Topology