com.sun.electric.tool.generator.layout
Class FoldedMos

java.lang.Object
  extended by com.sun.electric.tool.generator.layout.FoldedMos
Direct Known Subclasses:
FoldedNmos, FoldedPmos

public abstract class FoldedMos
extends java.lang.Object

first cut at a folded transistor generator. Transistors are rotated 90 degrees counter clockwise so that gates are vertical. FoldedMos is abstract. Instantiate FoldedNmos or FoldedPmos instead.


Nested Class Summary
static interface FoldedMos.GateSpace
          Users use GateSpace objects to tell the FoldedMos constructors to leave additional space between diffusion contacts and gates and between adjacent gates.
 
Method Summary
 double getDiffContWidth()
          The diffusion contact's width increases with the gateWidth but is only large enough to surround the diffusion contact cuts
 PortInst getGate(int mosNdx, char pos)
           
 double getGateWidth()
          return the width of each transistor's gate
 PortInst getInternalSrcDrn(int col)
          "Internal diffusions" are the diffusions between two series transistors.
 double getMosCenterY()
          Get the Y coordinate of the centers of the MOS transistors.
 double getPhysWidth()
          when the gate is narrower than the diffusion contact return the diffusion contact width, otherwise return the gate width
 PortInst getSrcDrn(int col)
           
 int nbGates()
           
 int nbInternalSrcDrns()
           
 int nbSrcDrns()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getGateWidth

public double getGateWidth()
return the width of each transistor's gate


getPhysWidth

public double getPhysWidth()
when the gate is narrower than the diffusion contact return the diffusion contact width, otherwise return the gate width


getMosCenterY

public double getMosCenterY()
Get the Y coordinate of the centers of the MOS transistors. This may be different from the Y coordinate passed into the constructor. When the MOS transistor is narrower than the diffusion contact the MOS transistor must be been shifted up or down to get its edges on grid


getDiffContWidth

public double getDiffContWidth()
The diffusion contact's width increases with the gateWidth but is only large enough to surround the diffusion contact cuts


nbSrcDrns

public int nbSrcDrns()

getSrcDrn

public PortInst getSrcDrn(int col)

nbGates

public int nbGates()

getGate

public PortInst getGate(int mosNdx,
                        char pos)

nbInternalSrcDrns

public int nbInternalSrcDrns()

getInternalSrcDrn

public PortInst getInternalSrcDrn(int col)
"Internal diffusions" are the diffusions between two series transistors. The user may wish to connect these with "generic:Uinversal" arcs in order to fool Electric's NCC into paralleling transistor stacks of series transistors.