com.sun.electric.tool.generator.layout
Interface FoldedMos.GateSpace

Enclosing class:
FoldedMos

public 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. There are a total of nbFolds * (nbSeries-1) such spaces.

The FoldedMos constructor builds FoldedMos transistors from left to right. Just before it adds a new poly gate or a new diffusion contact (except for the first diffusion contact) it calls GateSpace.getExtraSpace to find out the amount of "extra space" it should leave between this new object and the preceeding object.


Method Summary
 double getExtraSpace(double requiredExtraSpace, int foldNdx, int nbFolds, int spaceNdx, int nbGates)
          The getExtraSpace() method returns the desired amount of "extra space" to leave between the specified objects.
 

Method Detail

getExtraSpace

double getExtraSpace(double requiredExtraSpace,
                     int foldNdx,
                     int nbFolds,
                     int spaceNdx,
                     int nbGates)
The getExtraSpace() method returns the desired amount of "extra space" to leave between the specified objects.

First, we define "extra space". The "normal" distance from the center of a minimum sized diffusion contact and the center of a minimum width transistor gate is 4 lambda. For this normal spacing we define the "extra space" to be 0 lambda. However if the width of the transistor is less than 5 lambda, then the distance between the centers of the diffusion contact and the gate must be 4.5 lambda. In that case we define the extra space to be .5 lambda.

Similarly if the distance between the centers of two adjacent series gates is 5 lambda then the "extraSpace" is 0 lambda. However if the distance between the centers of two adjacent series gates is 6 lambda then the "extra space" is 1 lambda.

Parameters:
requiredExtraSpace - the extra space required by the design rules. Normally this is 0 lambda. However, if the gate width is less than 5 lambda, the requiredExtraSpace between the diffusion contact and the gate is .5 lambda.
foldNdx - the index of this fold. This will range between 0 and nbFolds-1
nbFolds - the number of folds in this FoldedMos
spaceNdx - the index of this space within this fold. This will range between 0 and nbGates. If spaceNdx==0 or spaceNdx==nbGates then getSpace must return the distance between a diffusion contact and a gate. Otherwise getSpace must return the distance between gates spaceNdx-1 and spaceNdx.
nbGates - the total number of gates in this FoldedMos.
Returns:
the desired extra space. Note that the returned extra space must be greater than or equal to requiredExtraSpace to avoid DRC errors.