com.sun.electric.technology.technologies
Class FPGA

java.lang.Object
  extended by com.sun.electric.technology.Technology
      extended by com.sun.electric.technology.technologies.FPGA
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<Technology>

public class FPGA
extends Technology

This is the FPGA Technology.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.sun.electric.technology.Technology
Technology.ArcLayer, Technology.Distance, Technology.DistanceContext, Technology.DistanceRule, Technology.MultiCutData, Technology.NodeLayer, Technology.SizeCorrector, Technology.TechPoint, Technology.TechSetting
 
Field Summary
 
Fields inherited from class com.sun.electric.technology.Technology
cachedRules, DISK_VERSION_1, DISK_VERSION_2, EMPTY_CONTEXT, EMPTY_LIST, factoryNodeGroups, foundries, LAYERS_BY_HEIGHT, LAYERS_BY_HEIGHT_LIFT_CONTACTS, LAYERS_BY_ZVALUE, N_TYPE, nodeGroups, NULL_ARRAY, oldArcNames, oldNodeNames, P_TYPE, SPECIALMENUCELL, SPECIALMENUEXPORT, SPECIALMENUHIGH, SPECIALMENUMISC, SPECIALMENUPORT, SPECIALMENUPURE, SPECIALMENUSPICE, SPECIALMENUTEXT, sysArtwork, sysFPGA, sysGeneric, sysSchematics, TECH_TMPVAR, TRANS_CONTACT, xmlTech
 
Constructor Summary
FPGA(Generic generic)
           
 
Method Summary
protected  void getShapeOfArc(AbstractShapeBuilder b, ImmutableArcInst a)
          Fill the polygons that describe arc "a".
protected  Poly[] getShapeOfNode(NodeInst ni, boolean electrical, boolean reasonable, Technology.NodeLayer[] primLayers, Layer layerOverride)
          Method to return a list of Polys that describe a given NodeInst.
 boolean isEasyShape(ImmutableArcInst a, boolean explain)
          Tells if arc can be drawn by simplified algorithm FPGA arcs are not easy
 void programPips()
          Method to program the currently selected PIPs.
 void readArchitectureFile(boolean placeAndWire)
          Method to read an architecture file and customize the FPGA technology.
 void setTextDisplay(boolean show)
          Method to set the text display level.
 void setWireDisplay(int level)
          Method to set the wire display level.
static FPGA tech()
          the FPGA Technology object.
 
Methods inherited from class com.sun.electric.technology.Technology
addArcProto, addLayer, addNodeProto, cacheTransparentLayerColors, cleanUnusedNodesInLibrary, compareTo, computeShapeOfNode, convertOldArcName, convertOldNodeName, convertOldPortName, convertOldVariable, dump, dumpExtraProjectSettings, filterNodeGroups, findArcProto, findFoundry, findLayer, findLayerFromFunction, findNodeProto, findTechnology, findTechnology, getArcProto, getArcs, getArcsCollection, getCachedRules, getCMOS90Technology, getColorMap, getColorMap, getCurrent, getDefaultNodesGrouped, getDiffAlpha, getDiffAlphaSetting, getFactoryColorMap, getFactoryDesignRules, getFoundries, getGateCapacitance, getGateCapacitanceSetting, getGateIncludedSetting, getGateLengthSubtraction, getGateLengthSubtractionSetting, getGDSLayers, getGroundNetIncludedSetting, getId, getIndex, getLayer, getLayerFromOverride, getLayers, getLayersSortedByHeight, getLayersSortedByZValue, getMaxSeriesResistance, getMaxSeriesResistanceSetting, getMinCapacitance, getMinCapacitanceSetting, getMinResistance, getMinResistanceSetting, getMocmosTechnology, getMultiCutData, getNodeInstBaseRectangle, getNodes, getNodesCollection, getNodesGrouped, getNodesGroupedXML, getNodesSortedByName, getNumArcs, getNumLayers, getNumMetals, getNumMetalsSetting, getNumNodes, getNumTransparentLayers, getOldArcNames, getOldNodeNames, getPrefComponentMenu, getPrefFoundry, getPrefFoundrySetting, getPrimitiveFunction, getPrimitiveNode, getProjectSettings, getResistorSize, getResolution, getRuleAliases, getRuleDifferences, getRuleNodeIndex, getRuleSuffix, getSavedLayerOrder, getScale, getScaleSetting, getScaleVariableName, getSelectedFoundry, getShapeOfArc, getShapeOfArc, getShapeOfArc, getShapeOfNode, getShapeOfNode, getShapeOfPort, getShapeOfPort, getSizeCorrector, getSoftTechnologies, getSpacingDistances, getSpiceHeaderLevel1, getSpiceHeaderLevel2, getSpiceHeaderLevel3, getTechDesc, getTechName, getTechnologies, getTechnologyPreferences, getTechShortName, getTransistorActiveLength, getTransistorAltGatePort, getTransistorBasePort, getTransistorBiasPort, getTransistorCollectorPort, getTransistorDrainPort, getTransistorEmitterPort, getTransistorGatePort, getTransistorSize, getTransistorSourcePort, getTSMC180Technology, getWireRatio, getWireRatioSetting, getXmlTech, initAllTechnologies, isGateIncluded, isGroundNetIncluded, isLayout, isMultiCutCase, isMultiCutInTechnology, isNoDirectionalArcs, isNoNegatedArcs, isNonElectrical, isNonStandard, isNoPrimitiveNodes, isScaleRelevant, isSchematics, isStaticTechnology, isUniversalConnectivityPort, isValidVTPolyRule, make3d, makeNodeInst, makeNodeInst, makeRuleSets, makeXml, makeXml807, newArcProto, newFoundry, printlnBits, printlnSetting, resizeArcs, resizeXml, sameLayer, setArcCorrection, setCachedRules, setColorMap, setColorMapFromLayers, setCurrent, setDefaultOutline, setFactoryLESettings, setFactoryParasitics, setFactoryResolution, setFactoryScale, setFactoryTransparentLayers, setNodesGrouped, setNoDirectionalArcs, setNoNegatedArcs, setNonElectrical, setNonStandard, setNoPrimitiveNodes, setNotUsed, setNumTransparentLayers, setPrimitiveFunction, setPrimitiveNodeSize, setResolution, setRuleVariables, setSavedLayerOrder, setSoftTechnologies, setSpiceHeaderLevel1, setSpiceHeaderLevel2, setSpiceHeaderLevel3, setState, setStaticTechnology, setTechDesc, setTechName, setTechShortName, setup, toString, whatTechnology, whatTechnology, writeReplace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FPGA

public FPGA(Generic generic)
Method Detail

tech

public static FPGA tech()
the FPGA Technology object.


getShapeOfNode

protected Poly[] getShapeOfNode(NodeInst ni,
                                boolean electrical,
                                boolean reasonable,
                                Technology.NodeLayer[] primLayers,
                                Layer layerOverride)
Method to return a list of Polys that describe a given NodeInst. This method overrides the general one in the Technology object because of the unusual primitives in this Technology.

Overrides:
getShapeOfNode in class Technology
Parameters:
ni - the NodeInst to describe.
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.
layerOverride - the layer to use for all generated polygons (if not null).
Returns:
an array of Poly objects.

getShapeOfArc

protected void getShapeOfArc(AbstractShapeBuilder b,
                             ImmutableArcInst a)
Fill the polygons that describe arc "a".

Overrides:
getShapeOfArc in class Technology
Parameters:
b - AbstractShapeBuilder to fill polygons.
a - the ImmutableArcInst that is being described.

isEasyShape

public boolean isEasyShape(ImmutableArcInst a,
                           boolean explain)
Tells if arc can be drawn by simplified algorithm FPGA arcs are not easy

Overrides:
isEasyShape in class Technology
Parameters:
a - arc to test
explain - if true then print explanation why arc is not easy
Returns:
false

readArchitectureFile

public void readArchitectureFile(boolean placeAndWire)
Method to read an architecture file and customize the FPGA technology. Prompts for a file and reads it.

Parameters:
placeAndWire - true to build the primitives and structures; false to simply build the primitives.

setWireDisplay

public void setWireDisplay(int level)
Method to set the wire display level.

Parameters:
level - 0 to show no wires; 1 to show active wires; 2 to show all wires.

setTextDisplay

public void setTextDisplay(boolean show)
Method to set the text display level.

Parameters:
show - true to see text, false to hide text.

programPips

public void programPips()
Method to program the currently selected PIPs.