edu.byu.ece.edif.tools.sterilize.halflatch
Class HalfLatchCopyReplace

java.lang.Object
  extended by edu.byu.ece.edif.tools.sterilize.lutreplace.EdifEnvironmentCopy
      extended by edu.byu.ece.edif.tools.sterilize.lutreplace.AbstractEdifEnvironmentCopyReplace
          extended by edu.byu.ece.edif.tools.sterilize.halflatch.HalfLatchCopyReplace

public class HalfLatchCopyReplace
extends AbstractEdifEnvironmentCopyReplace


Field Summary
protected  java.util.List<EdifPortRef> _badCutPins
           
protected  HalfLatchArchitecture _hlArchitecture
           
protected  EdifCellInstance _inputBufferCellInstance
           
protected  IOBAnalyzer _iobAnalyzer
           
protected  EdifCellInstance _safeConstantGeneratorCell
           
protected  EdifCellInstance _safeConstantInverterInstance
           
protected  EdifNet _safeConstantNetInv
           
protected  EdifNet _safeConstantNetNorm
           
static java.lang.String _safeConstantOneNetName
           
static java.lang.String _safeConstantOnePortName
           
protected  int _safeConstantPolarity
           
protected  EdifPort _safeConstantPort
           
static java.lang.String _safeConstantZeroNetName
           
static java.lang.String _safeConstantZeroPortName
           
protected  int safeConstantPolarity
           
 
Fields inherited from class edu.byu.ece.edif.tools.sterilize.lutreplace.AbstractEdifEnvironmentCopyReplace
_oldInstancesToReplace
 
Fields inherited from class edu.byu.ece.edif.tools.sterilize.lutreplace.EdifEnvironmentCopy
_cellMap, _instanceMap, _libMap, _netMap, _newEnv, _origEnv, _portMap
 
Constructor Summary
HalfLatchCopyReplace(EdifEnvironment env, HalfLatchArchitecture hlArchitecture, IOBAnalyzer iobAnalyzer, int safeConstantPolarity, boolean usePortForConstant)
           
HalfLatchCopyReplace(EdifEnvironment env, HalfLatchArchitecture hlArchitecture, IOBAnalyzer iobAnalyzer, int safeConstantPolarity, boolean usePortForConstant, java.lang.String safeConstantPortName)
           
 
Method Summary
protected  void addChildEdifCellInstance(EdifCell origCell, EdifCell newCell, EdifCellInstance oldChildInstance)
          Overrides the parent addChildEdifCellInstance method.
protected  EdifNet addNet(EdifCell origCell, EdifCell newCell, EdifNet oldNet)
           
protected  void addNets(EdifCell origCell, EdifCell newCell)
           
protected  void addSafeConstantGeneratorCell()
           
protected  void addSafeConstantInverter()
          If the safe constant net with *normal* polarity for 'this' cell has not already been created and added, then this method call will first create and add the net to 'this' cell.
protected  EdifNet addSafeConstantNetInvPolarity()
          This method should NOT be directly called.
protected  EdifNet addSafeConstantNetNormPolarity()
          This method should NOT be directly called.
protected  EdifPort addSafeConstantPort()
           
protected  void bufferSafeConstantPort()
           
protected  EdifNet findOrAddSafeConstantNet()
           
 EdifNet findOrAddSafeConstantNet(int polarity)
           
protected  EdifNet findOrAddSafeConstantNetInvPolarity()
          If the safe constant inverter and or the safe constant net with inverted polarity for 'this' cell have not already been created and added, then this method call will first create and add the inverter and net (attached to the output of the inverter) to 'this' cell before returning a reference to the inverted polarity net.
protected  EdifNet findOrAddSafeConstantNetNormPolarity()
          If the safe constant net with normal polarity for 'this' cell has not already been created and added, then this method call will first create and add the net to 'this' cell before returning a reference to it.
protected  EdifPort findOrAddSafeConstantPort()
           
 EdifCellInstance getSafeConstantGeneratorCell()
           
 EdifCellInstance getSafeConstantPortBufferInstance()
           
protected  void replaceSensitiveInstance(HalfLatchReplacementContext hlrc)
           
protected  void replaceSensitiveInstances()
           
 
Methods inherited from class edu.byu.ece.edif.tools.sterilize.lutreplace.AbstractEdifEnvironmentCopyReplace
addEdifPortRef, attachesToReplacedCell, getReplacementContexts
 
Methods inherited from class edu.byu.ece.edif.tools.sterilize.lutreplace.EdifEnvironmentCopy
addChildEdifCellInstances, addEdifPorts, copyEdifCell, copyEdifCell, copyEdifCell, copyEdifLibrary, copyEdifLibrary, createEdifEnvironment, createEdifEnvironment, createTopCell, createTopDesign, getNewEnvironment, setEdifEnvironmentDateAuthorProgramVersion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_hlArchitecture

protected HalfLatchArchitecture _hlArchitecture

_iobAnalyzer

protected IOBAnalyzer _iobAnalyzer

safeConstantPolarity

protected int safeConstantPolarity

_badCutPins

protected java.util.List<EdifPortRef> _badCutPins

_safeConstantZeroNetName

public static java.lang.String _safeConstantZeroNetName

_safeConstantOneNetName

public static java.lang.String _safeConstantOneNetName

_safeConstantZeroPortName

public static java.lang.String _safeConstantZeroPortName

_safeConstantOnePortName

public static java.lang.String _safeConstantOnePortName

_safeConstantPolarity

protected int _safeConstantPolarity

_safeConstantNetNorm

protected EdifNet _safeConstantNetNorm

_safeConstantNetInv

protected EdifNet _safeConstantNetInv

_safeConstantInverterInstance

protected EdifCellInstance _safeConstantInverterInstance

_safeConstantGeneratorCell

protected EdifCellInstance _safeConstantGeneratorCell

_inputBufferCellInstance

protected EdifCellInstance _inputBufferCellInstance

_safeConstantPort

protected EdifPort _safeConstantPort
Constructor Detail

HalfLatchCopyReplace

public HalfLatchCopyReplace(EdifEnvironment env,
                            HalfLatchArchitecture hlArchitecture,
                            IOBAnalyzer iobAnalyzer,
                            int safeConstantPolarity,
                            boolean usePortForConstant)
                     throws EdifNameConflictException
Throws:
EdifNameConflictException

HalfLatchCopyReplace

public HalfLatchCopyReplace(EdifEnvironment env,
                            HalfLatchArchitecture hlArchitecture,
                            IOBAnalyzer iobAnalyzer,
                            int safeConstantPolarity,
                            boolean usePortForConstant,
                            java.lang.String safeConstantPortName)
                     throws EdifNameConflictException
Throws:
EdifNameConflictException
Method Detail

addChildEdifCellInstance

protected void addChildEdifCellInstance(EdifCell origCell,
                                        EdifCell newCell,
                                        EdifCellInstance oldChildInstance)
                                 throws EdifNameConflictException
Overrides the parent addChildEdifCellInstance method. This method will check to see if the instance is of a type that needs to be replaced. If so, it will not add the instance and create a ReplacementContext for this instance. If it doesn't match, the instance will be added as usual.

Overrides:
addChildEdifCellInstance in class EdifEnvironmentCopy
Throws:
EdifNameConflictException

addNets

protected void addNets(EdifCell origCell,
                       EdifCell newCell)
                throws EdifNameConflictException
Overrides:
addNets in class EdifEnvironmentCopy
Throws:
EdifNameConflictException

addNet

protected EdifNet addNet(EdifCell origCell,
                         EdifCell newCell,
                         EdifNet oldNet)
                  throws EdifNameConflictException
Overrides:
addNet in class EdifEnvironmentCopy
Throws:
EdifNameConflictException

replaceSensitiveInstances

protected void replaceSensitiveInstances()

replaceSensitiveInstance

protected void replaceSensitiveInstance(HalfLatchReplacementContext hlrc)

findOrAddSafeConstantNet

public EdifNet findOrAddSafeConstantNet(int polarity)

findOrAddSafeConstantNetInvPolarity

protected EdifNet findOrAddSafeConstantNetInvPolarity()
If the safe constant inverter and or the safe constant net with inverted polarity for 'this' cell have not already been created and added, then this method call will first create and add the inverter and net (attached to the output of the inverter) to 'this' cell before returning a reference to the inverted polarity net.


findOrAddSafeConstantNetNormPolarity

protected EdifNet findOrAddSafeConstantNetNormPolarity()
If the safe constant net with normal polarity for 'this' cell has not already been created and added, then this method call will first create and add the net to 'this' cell before returning a reference to it.


addSafeConstantInverter

protected void addSafeConstantInverter()
If the safe constant net with *normal* polarity for 'this' cell has not already been created and added, then this method call will first create and add the net to 'this' cell. By default, this method will create a net which is attached to the output of the inverter this method is supposed to create.


addSafeConstantNetInvPolarity

protected EdifNet addSafeConstantNetInvPolarity()
This method should NOT be directly called. It is meant as a utility function for the function findOrAddSafeConstantNetInvPolarity()


addSafeConstantNetNormPolarity

protected EdifNet addSafeConstantNetNormPolarity()
This method should NOT be directly called. It is meant as a utility function for the function findOrAddSafeConstantNetNormPolarity()


findOrAddSafeConstantNet

protected EdifNet findOrAddSafeConstantNet()

bufferSafeConstantPort

protected void bufferSafeConstantPort()

findOrAddSafeConstantPort

protected EdifPort findOrAddSafeConstantPort()

addSafeConstantPort

protected EdifPort addSafeConstantPort()

addSafeConstantGeneratorCell

protected void addSafeConstantGeneratorCell()

getSafeConstantPortBufferInstance

public EdifCellInstance getSafeConstantPortBufferInstance()

getSafeConstantGeneratorCell

public EdifCellInstance getSafeConstantGeneratorCell()