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, writeReplace
public 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 Technology
protected void dumpExtraProjectSettings(java.io.PrintWriter out, java.util.Map<Setting,java.lang.Object> settings)
dumpExtraProjectSettings
in class Technology
protected Poly[] getShapeOfNode(CellBackup.Memoization m, ImmutableNodeInst n, boolean electrical, boolean reasonable, Technology.NodeLayer[] primLayers)
getShapeOfNode
in class Technology
m
- 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 Technology
b
- 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 Technology
public Technology.SizeCorrector getSizeCorrector(Version version, java.util.Map<Setting,java.lang.Object> projectSettings, boolean isJelib, boolean keepExtendOverMin)
getSizeCorrector
in class Technology
public 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 Technology
varName
- 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 Technology
portName
- 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 Technology
ni
- the NodeInstwidth
- the new width (positive values only)length
- the new length (positive values only)public PortInst getTransistorBiasPort(NodeInst ni)
getTransistorBiasPort
in class Technology
ni
- the NodeInst