public class MoCMOS extends Technology
Technology.ArcLayer, Technology.CarbonNanotube, Technology.MultiCutData, Technology.NodeLayer, Technology.SizeCorrector, Technology.State, Technology.TechPoint| Modifier and Type | Field and Description |
|---|---|
static Version |
changeOfMetal6 |
static int |
DEEPRULES
Value for deep rules.
|
static int |
SCMOSRULES
Value for standard SCMOS rules.
|
static int |
SUBMRULES
Value for submicron rules.
|
static Variable.Key |
TECH_LAST_STATE
key of Variable for saving technology state.
|
ALWAYS_SKIP_WIPED_PINS, cachedRules, DISK_VERSION_1, DISK_VERSION_2, EMPTY_LIST, factoryMenuPalette, factoryRules, foundries, IMMUTABLE_TECHS, LAYERS_BY_HEIGHT, LAYERS_BY_HEIGHT_LIFT_CONTACTS, N_TYPE, NULL_ARRAY, oldArcNames, oldNodeNames, P_TYPE, paramFoundry, paramNumMetalLayers, SPECIALMENUCELL, SPECIALMENUEXPORT, SPECIALMENUHIGH, SPECIALMENUMISC, SPECIALMENUPORT, SPECIALMENUPURE, SPECIALMENUSEPARATOR, SPECIALMENUSPICE, SPECIALMENUTEXT, TECH_NODE, techFactory, TRANS_CONTACT, xmlTech| Constructor and Description |
|---|
MoCMOS(Generic generic,
TechFactory techFactory,
java.util.Map<TechFactory.Param,java.lang.Object> techParams,
Xml.Technology t) |
| Modifier and Type | Method and Description |
|---|---|
PrimitivePort |
convertOldPortName(java.lang.String portName,
PrimitiveNode np)
Method to convert old primitive port names to their proper PortProtos.
|
java.util.Map<Setting,java.lang.Object> |
convertOldVariable(java.lang.String varName,
java.lang.Object value)
Method to convert any old-style variable information to the new options.
|
protected void |
copyState(Technology that)
SUPPORT METHODS
|
protected void |
dumpExtraProjectSettings(java.io.PrintWriter out,
java.util.Map<Setting,java.lang.Object> settings) |
protected void |
genShapeOfNode(AbstractShapeBuilder b,
ImmutableNodeInst n,
PrimitiveNode pn,
Technology.NodeLayer[] primLayers)
Puts into shape builder s the polygons that describe node "n", given a set of
NodeLayer objects to use.
|
Setting |
getAlternateActivePolyRulesSetting()
Returns project preferences to tell whether this Technology is using alternate Active and Poly contact rules.
|
Setting |
getAnalogSetting()
Returns project preferences to tell whether this technology has layers for vertical NPN transistor pbase.
|
Setting |
getDisallowStackedViasSetting()
Returns project preferences to tell whether this Technology disallows stacked vias.
|
static Xml.Technology |
getPatchedXml(java.util.Map<TechFactory.Param,java.lang.Object> params)
This method is called from TechFactory by reflection.
|
int |
getRuleSet()
Method to tell the current rule set for this Technology if Mosis is the foundry.
|
Setting |
getRuleSetSetting()
Method to set the rule set for this Technology.
|
Setting |
getSecondPolysiliconSetting()
Returns project preferences to tell a second polysilicon layer in this Technology.
|
protected Poly[] |
getShapeOfNode(CellBackup.Memoization m,
ImmutableNodeInst n,
boolean electrical,
boolean reasonable,
Technology.NodeLayer[] primLayers)
Method to return a list of Polys that describe a given NodeInst.
|
Technology.SizeCorrector |
getSizeCorrector(Version version,
java.util.Map<Setting,java.lang.Object> projectSettings,
boolean isJelib,
boolean keepExtendOverMin) |
static java.util.List<TechFactory.Param> |
getTechParams()
This method is called from TechFactory by reflection.
|
PortInst |
getTransistorBiasPort(NodeInst ni)
Return a substrate PortInst for this transistor NodeInst
|
boolean |
isAlternateActivePolyRules()
Method to determine whether this Technology is using alternate Active and Poly contact rules.
|
boolean |
isAnalog()
Method to tell whether this technology has layers for vertical NPN transistor pbase.
|
boolean |
isDisallowStackedVias()
Method to determine whether this Technology disallows stacked vias.
|
boolean |
isSecondPolysilicon()
Method to tell the number of polysilicon layers in this Technology.
|
protected XMLRules |
makeFactoryDesignRules()
Method to build "factory" design rules, given the current technology settings.
|
void |
setPrimitiveNodeSize(NodeInst ni,
double width,
double length)
Method to set the size of a transistor NodeInst in this Technology.
|
addArcProto, addLayer, addNodeProto, cleanUnusedNodesInLibrary, compareTo, computeShapeOfNode, convertOldArcName, convertOldNodeName, dump, findArcProto, findFoundry, findLayer, findLayerFromFunction, findNodeProto, findTechnology, findTechnology, getArcProto, getArcs, getArcsCollection, getCachedRules, getCMOS90Technology, getColorMap, getCurrent, getCurrentState, getDiffAlpha, getDiffAlphaSetting, getFactoryDesignRules, getFactoryMenuPalette, getFactoryResolution, getFactoryTransparentLayerColors, getFoundries, getGateCapacitance, getGateCapacitanceSetting, getGateIncludedSetting, getGateLengthSubtraction, getGateLengthSubtractionSetting, getGDSLayers, getGroundNetIncludedSetting, getId, getLayer, getLayer, getLayerFromOverride, getLayers, getLayersSortedByHeight, getLayersSortedByName, getMaxSeriesResistance, getMaxSeriesResistanceSetting, getMetalContactCluster, getMinCapacitance, getMinCapacitanceSetting, getMinResistance, getMinResistanceSetting, getMocmosTechnology, getMultiCutData, getNodeInstBaseRectangle, getNodes, getNodesCollection, getNodesSortedByName, getNumArcs, getNumLayers, getNumMetals, getNumMetalsSetting, getNumNodes, getNumTransparentLayers, getOldArcNames, getOldNodeNames, getParamValuesByXmlPath, getPrefFoundry, getPrefFoundrySetting, getPrimitiveFunction, getPrimitiveNode, getProjectSettings, getProjectSettingsRoot, getResistorSize, getRuleDifferences, getRuleNodeIndex, getScale, getScaleSetting, getScaleVariableName, getSelectedFoundry, getSetting, getSetting, getShapeOfArc, getShapeOfArc, getShapeOfArc, getShapeOfArc, getShapeOfNode, getShapeOfNode, getShapeOfPort, getShapeOfPort, getSpacingDistances, getSpiceHeaderLevel1, getSpiceHeaderLevel2, getSpiceHeaderLevel3, getTechDesc, getTechName, getTechnologies, getTechShortName, getTransistorActiveLength, getTransistorAltGatePort, getTransistorBasePort, getTransistorCollectorPort, getTransistorDrainPort, getTransistorEmitterPort, getTransistorGatePort, getTransistorSize, getTransistorSourcePort, getTransparentLayerColors, getTSMC180Technology, getWireRatio, getWireRatioSetting, getXmlTech, initAllTechnologies, isEasyShape, isEasyShape, isGateIncluded, isGroundNetIncluded, isLayout, isMultiCutCase, isMultiCutInTechnology, isNoDirectionalArcs, isNoNegatedArcs, isNonElectrical, isNonStandard, isNoPrimitiveNodes, isScaleRelevant, isSchematics, isStaticTechnology, isUniversalConnectivityPort, isValidVTPolyRule, isXmlTechAvailable, loadFactoryMenuPalette, makeBooleanSetting, makeDoubleSetting, makeInitialEnvironment, makeIntSetting, makeStringSetting, makeXml, newArcProto, newFoundry, parseComponentMenuXML, printlnBits, printlnSetting, sameLayer, setArcCorrection, setCachedRules, setColorMapFromLayers, setDefaultOutline, setFactoryLESettings, setFactoryParasitics, setFactoryResolution, setFactoryScale, setFactoryTransparentLayers, setNoDirectionalArcs, setNoNegatedArcs, setNonElectrical, setNonStandard, setNoPrimitiveNodes, setNotUsed, setPrimitiveFunction, setRuleVariables, setSpiceHeaderLevel1, setSpiceHeaderLevel2, setSpiceHeaderLevel3, setStaticTechnology, setTechDesc, setTechName, setTechShortName, setup, toString, whatTechnology, whatTechnology, withState, writeReplacepublic static final int SCMOSRULES
public static final int SUBMRULES
public static final int DEEPRULES
public static final Variable.Key TECH_LAST_STATE
public static final Version changeOfMetal6
public MoCMOS(Generic generic, TechFactory techFactory, java.util.Map<TechFactory.Param,java.lang.Object> techParams, Xml.Technology t)
protected void copyState(Technology that)
copyState in class Technologyprotected void dumpExtraProjectSettings(java.io.PrintWriter out,
java.util.Map<Setting,java.lang.Object> settings)
dumpExtraProjectSettings in class Technologyprotected Poly[] getShapeOfNode(CellBackup.Memoization m, ImmutableNodeInst n, boolean electrical, boolean reasonable, Technology.NodeLayer[] primLayers)
getShapeOfNode in class Technologym - information about including cell which is necessary for computingn - the ImmutableNodeInst that is being described.electrical - true to get the "electrical" layers.
This makes no sense for Schematics primitives.reasonable - true to get only a minimal set of contact cuts in large contacts.
This makes no sense for Schematics primitives.primLayers - an array of NodeLayer objects to convert to Poly objects.protected void genShapeOfNode(AbstractShapeBuilder b, ImmutableNodeInst n, PrimitiveNode pn, Technology.NodeLayer[] primLayers)
genShapeOfNode in class Technologyb - shape builder where to put polygonsn - the ImmutableNodeInst that is being described.pn - proto of the ImmutableNodeInst in this TechnologyprimLayers - an array of NodeLayer objects to convert to Poly objects.
The prototype of this NodeInst must be a PrimitiveNode and not a Cell.protected XMLRules makeFactoryDesignRules()
makeFactoryDesignRules in class Technologypublic Technology.SizeCorrector getSizeCorrector(Version version, java.util.Map<Setting,java.lang.Object> projectSettings, boolean isJelib, boolean keepExtendOverMin)
getSizeCorrector in class Technologypublic int getRuleSet()
public Setting getRuleSetSetting()
public boolean isSecondPolysilicon()
public Setting getSecondPolysiliconSetting()
public boolean isDisallowStackedVias()
public Setting getDisallowStackedViasSetting()
public boolean isAlternateActivePolyRules()
public Setting getAlternateActivePolyRulesSetting()
public boolean isAnalog()
public Setting getAnalogSetting()
public java.util.Map<Setting,java.lang.Object> convertOldVariable(java.lang.String varName, java.lang.Object value)
convertOldVariable in class TechnologyvarName - name of variablevalue - value of variablepublic static java.util.List<TechFactory.Param> getTechParams()
public static Xml.Technology getPatchedXml(java.util.Map<TechFactory.Param,java.lang.Object> params)
params - values of technology paramspublic PrimitivePort convertOldPortName(java.lang.String portName, PrimitiveNode np)
convertOldPortName in class TechnologyportName - the unknown port name, read from an old Library.np - the PrimitiveNode on which this port resides.public void setPrimitiveNodeSize(NodeInst ni, double width, double length)
setPrimitiveNodeSize in class Technologyni - the NodeInstwidth - the new width (positive values only)length - the new length (positive values only)public PortInst getTransistorBiasPort(NodeInst ni)
getTransistorBiasPort in class Technologyni - the NodeInst