edu.byu.ece.edif.tools.replicate.nmr.xilinx
Class XilinxTMRVoter

java.lang.Object
  extended by edu.byu.ece.edif.tools.replicate.nmr.AbstractOrgan
      extended by edu.byu.ece.edif.tools.replicate.nmr.xilinx.XilinxTMRVoter
All Implemented Interfaces:
Organ, java.io.Serializable

public class XilinxTMRVoter
extends AbstractOrgan

This class represents a majority voter represented as a LUT3 with init string "E8".

See Also:
Serialized Form

Field Summary
protected static XilinxTMRVoter _instance
           
protected static java.lang.String[] VOTER_INPUT_NAMES
           
 
Fields inherited from class edu.byu.ece.edif.tools.replicate.nmr.AbstractOrgan
_createdOrgans, _organCell, _organOutputs, _organSuffix
 
Constructor Summary
protected XilinxTMRVoter()
          Make sure the only way to get an instance of the class is to use the static getInstance() method.
 
Method Summary
 void createOrgan(OrganSpecification organSpec, EdifNet origNet, EdifCell newCell)
          Create the voter's specified by the given OrganSpecification for the given net in the given EdifCell.
static XilinxTMRVoter getInstance()
          Get the singleton instance of the XilinxTMRVoter class.
protected  EdifCell getLUT3VoterCell(EdifCell parent)
          Create a LUT3 implementation of a voter cell if it has not been defined yet.
private  java.lang.Object readResolve()
          This method ensures that during deserialization, the _instance variable will be referred to and possibly modified so that extra instances (more than necessary) don't get created.
 void wireInputs(OrganSpecification organSpecification, EdifNet origNet, java.util.List<PortConnection> driverConnections, NetManager netManager, ReplicationType replicationType)
          Wire the voter's inputs to the given driver connections using the given net manager.
 
Methods inherited from class edu.byu.ece.edif.tools.replicate.nmr.AbstractOrgan
createOrgan, getOrganCell, getOrganSuffix, getOutputs, toString, wireInputs
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

VOTER_INPUT_NAMES

protected static java.lang.String[] VOTER_INPUT_NAMES

_instance

protected static XilinxTMRVoter _instance
Constructor Detail

XilinxTMRVoter

protected XilinxTMRVoter()
Make sure the only way to get an instance of the class is to use the static getInstance() method. (This is a singleton class).

Method Detail

createOrgan

public void createOrgan(OrganSpecification organSpec,
                        EdifNet origNet,
                        EdifCell newCell)
Create the voter's specified by the given OrganSpecification for the given net in the given EdifCell.


getLUT3VoterCell

protected EdifCell getLUT3VoterCell(EdifCell parent)
Create a LUT3 implementation of a voter cell if it has not been defined yet. Add it to the library to which the parent cell belongs. If the voter cell has already been built, a reference to that cell is simply returned.

Parameters:
parent - The parent cell from which all libraries will be extracted.
Returns:
A voter cell implemented as a LUT3.

wireInputs

public void wireInputs(OrganSpecification organSpecification,
                       EdifNet origNet,
                       java.util.List<PortConnection> driverConnections,
                       NetManager netManager,
                       ReplicationType replicationType)
Wire the voter's inputs to the given driver connections using the given net manager. Also, verify that this kind of voter can be used with the given replication type.


getInstance

public static XilinxTMRVoter getInstance()
Get the singleton instance of the XilinxTMRVoter class.

Returns:

readResolve

private java.lang.Object readResolve()
                              throws java.io.ObjectStreamException
This method ensures that during deserialization, the _instance variable will be referred to and possibly modified so that extra instances (more than necessary) don't get created.

Returns:
Throws:
java.io.ObjectStreamException