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

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

public class MOSSIM
extends Topology

This is the netlister for MOSSIM. A circuit can be augmented in a number of ways for MOSSIM output: The variable "SIM_mossim_strength" may be placed on any node or arc. On transistor nodes, it specifies the strength field to use for that transistor declaration. On arcs, it specifies the strength field to use for that network node (only works for internal nodes of a cell).


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
static Variable.Key MOSSIM_STRENGTH_KEY
          key of Variable holding node or arc strength.
 
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, stringWriter
 
Method Summary
protected  boolean canParameterizeNames()
          Method to tell whether the topological analysis should mangle cell names that are parameterized.
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
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 MOSSIM output.
protected  java.lang.String getSafeNetName(java.lang.String name, boolean bus)
          Method to adjust a network name to be safe for MOSSIM 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 used.
protected  boolean isCaseSensitive()
          Abstract method to decide whether netlister is case-sensitive (Verilog) or not (Spice).
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.
protected  void start()
          Abstract method called before hierarchy traversal
protected  void writeCellTopology(Cell cell, Topology.CellNetInfo cni, VarContext context, Topology.MyCellInfo info)
          Method to write cellGeom
static void writeMOSSIMFile(Cell cell, VarContext context, java.lang.String filePath)
          The main entry point for MOSSIM 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, closeStringsOutputStream, closeTextOutputStream, emitCopyright, exportCellCommand, getAreaToPrint, openBinaryOutputStream, openStringsOutputStream, 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
 

Field Detail

MOSSIM_STRENGTH_KEY

public static final Variable.Key MOSSIM_STRENGTH_KEY
key of Variable holding node or arc strength.

Method Detail

writeMOSSIMFile

public static void writeMOSSIMFile(Cell cell,
                                   VarContext context,
                                   java.lang.String filePath)
The main entry point for MOSSIM 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

done

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

Specified by:
done in class Topology

writeCellTopology

protected void writeCellTopology(Cell cell,
                                 Topology.CellNetInfo cni,
                                 VarContext context,
                                 Topology.MyCellInfo info)
Method to write cellGeom

Specified by:
writeCellTopology in class Topology

getSafeCellName

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

Specified by:
getSafeCellName in class Topology
Parameters:
name - the cell name.
Returns:
the name, adjusted for MOSSIM 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 used.

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

isCaseSensitive

protected boolean isCaseSensitive()
Abstract method to decide whether netlister is case-sensitive (Verilog) or not (Spice).

Specified by:
isCaseSensitive 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 MOSSIM 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