com.sun.electric.tool.ncc.netlist
Class Mos

java.lang.Object
  extended by com.sun.electric.tool.ncc.netlist.NetObject
      extended by com.sun.electric.tool.ncc.netlist.Part
          extended by com.sun.electric.tool.ncc.netlist.Mos
All Implemented Interfaces:
NetObjReport.NetObjReportable, PartReport.PartReportable

public class Mos
extends Part

One or more MOS transistors in series. All gates have the same width and length.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.sun.electric.tool.ncc.netlist.NetObject
NetObject.Type
 
Field Summary
static PartTypeTable TYPES
           
 
Fields inherited from class com.sun.electric.tool.ncc.netlist.Part
BIPOLAR, pins, RESISTOR, SUBCIRCUIT, TRANSISTOR, TYPE_FIELD_WIDTH
 
Constructor Summary
Mos(PartType np, NccNameProxy.PartNameProxy name, double width, double length, Wire src, Wire gate, Wire drn)
          The standard 3 terminal Transistor.
 
Method Summary
 java.lang.Integer computeHashCode()
           
 java.lang.String connectionDescription(int n)
          human readable description of things connected this NetObject
 java.lang.String connectionDescription(Wire w)
          comma separated list of pins connected to w
 double getLength()
           
 int[] getPinCoeffs()
          Here is an accessor method for the coefficiant array for this Part.
 PinType[] getPinTypeArray()
           
 PinType getPinTypeOfNthPin(int n)
           
 PartType getType()
           
 double getWidth()
           
 java.lang.Integer hashCodeForParallelMerge()
          Compute a hash code for this part for the purpose of performing parallel merge.
 boolean isCapacitor()
           
 boolean isLike(Mos t)
          Compare the type (N vs P) and the gate length
static boolean joinOnWire(Wire w)
          Merge two series Transistors into a single Transistor.
 int numSeries()
           
 boolean parallelMerge(Part p)
          This method attempts to merge this Part in parallel with another Part
 boolean touchesOneDiffPinAndNoOtherPins(Wire w)
           
 int typeCode()
          returns a unique int value for each distinct Part type
 java.lang.String typeString()
          returns String describing Part's type
 java.lang.String valueDescription()
          Report the numeric values of this Part, for example: width, length, resistance.
 
Methods inherited from class com.sun.electric.tool.ncc.netlist.Part
checkMe, getConnected, getHashFor, getName, getNameProxy, getNetObjType, getNumWiresConnected, instanceDescription, isDeleted, isMos, isResistor, numDistinctWires, numPins, numPinsConnected, setDeleted
 
Methods inherited from class com.sun.electric.tool.ncc.netlist.NetObject
error, fullDescription, getCode, getParent, setParent, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.sun.electric.tool.ncc.result.NetObjReport.NetObjReportable
fullDescription
 

Field Detail

TYPES

public static final PartTypeTable TYPES
Constructor Detail

Mos

public Mos(PartType np,
           NccNameProxy.PartNameProxy name,
           double width,
           double length,
           Wire src,
           Wire gate,
           Wire drn)
The standard 3 terminal Transistor.

Method Detail

getPinTypeArray

public PinType[] getPinTypeArray()

getPinTypeOfNthPin

public PinType getPinTypeOfNthPin(int n)
Specified by:
getPinTypeOfNthPin in class Part
Returns:
the PinType for the nth pin

getType

public PartType getType()

getLength

public double getLength()
Specified by:
getLength in interface PartReport.PartReportable
Overrides:
getLength in class Part

getWidth

public double getWidth()
Specified by:
getWidth in interface PartReport.PartReportable
Overrides:
getWidth in class Part

numSeries

public int numSeries()

getPinCoeffs

public int[] getPinCoeffs()
Description copied from class: Part
Here is an accessor method for the coefficiant array for this Part. The terminal coefficients are used to compute new hash codes.

Specified by:
getPinCoeffs in class Part
Returns:
the array of terminal coefficients for this Part

touchesOneDiffPinAndNoOtherPins

public boolean touchesOneDiffPinAndNoOtherPins(Wire w)

isCapacitor

public boolean isCapacitor()

hashCodeForParallelMerge

public java.lang.Integer hashCodeForParallelMerge()
Description copied from class: Part
Compute a hash code for this part for the purpose of performing parallel merge. If two parallel Parts should be merged into one then hashCodeForParallelMerge() must return the same value for both Parts.

Specified by:
hashCodeForParallelMerge in class Part

parallelMerge

public boolean parallelMerge(Part p)
Description copied from class: Part
This method attempts to merge this Part in parallel with another Part

Specified by:
parallelMerge in class Part
Parameters:
p - the other Part with which to merge
Returns:
true if merge was successful, false otherwise

typeCode

public int typeCode()
Description copied from class: Part
returns a unique int value for each distinct Part type

Specified by:
typeCode in class Part

typeString

public java.lang.String typeString()
Description copied from class: Part
returns String describing Part's type

Specified by:
typeString in interface PartReport.PartReportable
Specified by:
typeString in class Part

valueDescription

public java.lang.String valueDescription()
Description copied from class: Part
Report the numeric values of this Part, for example: width, length, resistance.

Specified by:
valueDescription in class Part
Returns:
a String describing the Part's numeric values.

connectionDescription

public java.lang.String connectionDescription(int n)
Description copied from class: NetObject
human readable description of things connected this NetObject

Specified by:
connectionDescription in class NetObject

connectionDescription

public java.lang.String connectionDescription(Wire w)
Description copied from class: Part
comma separated list of pins connected to w

Specified by:
connectionDescription in class Part

isLike

public boolean isLike(Mos t)
Compare the type (N vs P) and the gate length

Parameters:
t - Transistor to compare to
Returns:
true if type and gate length match

joinOnWire

public static boolean joinOnWire(Wire w)
Merge two series Transistors into a single Transistor. Tricky: Parts on wire may be deleted or replicated.

Parameters:
w - wire joining diffusions of two transistors
Returns:
true if merge has taken place

computeHashCode

public java.lang.Integer computeHashCode()
Overrides:
computeHashCode in class Part