edu.byu.ece.edif.util.iob
Class AbstractIOBAnalyzer

java.lang.Object
  extended by edu.byu.ece.edif.util.iob.AbstractIOBAnalyzer
All Implemented Interfaces:
IOBAnalyzer, java.io.Serializable
Direct Known Subclasses:
XilinxIOBAnalyzer

public abstract class AbstractIOBAnalyzer
extends java.lang.Object
implements IOBAnalyzer

See Also:
Serialized Form

Field Summary
protected  EdifCell _cell
           
static boolean _debug
           
protected  java.util.Map<EdifSingleBitPort,java.util.Collection<EdifCellInstanceEdge>> _feedbackIOBMap
           
protected  EdifCellInstanceGraph _graph
           
protected  java.util.ArrayList<EdifCellInstanceEdge> _iobFeedbackEdges
           
protected  java.util.Map<EdifSingleBitPort,AbstractIOB> _iobMap
           
protected  boolean _packInputRegs
           
protected  boolean _packOutputRegs
           
 
Constructor Summary
AbstractIOBAnalyzer()
           
 
Method Summary
 java.util.Collection<EdifCellInstance> getAllIOBInstances()
           
 java.util.Collection<EdifCellInstance> getAllIOBRegisters()
           
 java.util.Collection<EdifSingleBitPort> getFeedbackIOBs()
           
 AbstractIOB getIOB(EdifSingleBitPort esbp)
           
 java.util.Collection<EdifCellInstanceEdge> getIOBFeedbackEdges()
          Returns a Collection of graph Edges corresponding to possible IOB feedback in the design.
 java.util.Collection<EdifPortRef> getIOBFeedbackEPRs()
          Returns a Set of EPRs corresponding to the IOB feedback edges in the graph.
 java.util.Collection<EdifCellInstance> getIOBInstances(java.util.Collection<EdifSingleBitPort> esbps)
           
 java.util.Collection<EdifCellInstance> getIOBInstances(EdifSingleBitPort esbp)
           
 java.util.Collection<EdifCellInstance> getIOBRegisters(EdifSingleBitPort esbp)
           
static boolean hasIOBFalseProperty(EdifCellInstance eci)
          Checks for the IOB property being FALSE or not
 boolean packInputRegs()
           
 boolean packOutputRegs()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_cell

protected EdifCell _cell

_graph

protected EdifCellInstanceGraph _graph

_iobMap

protected java.util.Map<EdifSingleBitPort,AbstractIOB> _iobMap

_iobFeedbackEdges

protected java.util.ArrayList<EdifCellInstanceEdge> _iobFeedbackEdges

_feedbackIOBMap

protected java.util.Map<EdifSingleBitPort,java.util.Collection<EdifCellInstanceEdge>> _feedbackIOBMap

_packInputRegs

protected boolean _packInputRegs

_packOutputRegs

protected boolean _packOutputRegs

_debug

public static final boolean _debug
See Also:
Constant Field Values
Constructor Detail

AbstractIOBAnalyzer

public AbstractIOBAnalyzer()
Method Detail

hasIOBFalseProperty

public static boolean hasIOBFalseProperty(EdifCellInstance eci)
Checks for the IOB property being FALSE or not

Parameters:
eci - The EdifCellInstance
Returns:
true if the EdifCellInstance has an IOB property set to FALSE

getAllIOBInstances

public java.util.Collection<EdifCellInstance> getAllIOBInstances()
Specified by:
getAllIOBInstances in interface IOBAnalyzer
Returns:
A Collection of EdifCellInstances corresponding to all of the IOB instances in this EdifCell

getAllIOBRegisters

public java.util.Collection<EdifCellInstance> getAllIOBRegisters()
Specified by:
getAllIOBRegisters in interface IOBAnalyzer
Returns:
A Collection of EdifCellInstances corresponding to all of the IOB registers in this EdifCell

getFeedbackIOBs

public java.util.Collection<EdifSingleBitPort> getFeedbackIOBs()
Specified by:
getFeedbackIOBs in interface IOBAnalyzer
Returns:
A Collection of IOBs that may be in feedback (inout IOBs)

getIOBFeedbackEdges

public java.util.Collection<EdifCellInstanceEdge> getIOBFeedbackEdges()
Returns a Collection of graph Edges corresponding to possible IOB feedback in the design.

Specified by:
getIOBFeedbackEdges in interface IOBAnalyzer

getIOBFeedbackEPRs

public java.util.Collection<EdifPortRef> getIOBFeedbackEPRs()
Returns a Set of EPRs corresponding to the IOB feedback edges in the graph. The decision of which EPR is not smart currently. Please use getIOBFeedbackEdges() instead.

Specified by:
getIOBFeedbackEPRs in interface IOBAnalyzer
Returns:

getIOBInstances

public java.util.Collection<EdifCellInstance> getIOBInstances(EdifSingleBitPort esbp)
Specified by:
getIOBInstances in interface IOBAnalyzer
Returns:
A Collection of EdifCellInstances corresponding to all of the IOB instances associated with this EdifSingleBitPort

getIOBInstances

public java.util.Collection<EdifCellInstance> getIOBInstances(java.util.Collection<EdifSingleBitPort> esbps)
Specified by:
getIOBInstances in interface IOBAnalyzer
Returns:
A Collection of EdifCellInstances corresponding to all of the IOB instances associated with these EdifSingleBitPorts

getIOBRegisters

public java.util.Collection<EdifCellInstance> getIOBRegisters(EdifSingleBitPort esbp)
Specified by:
getIOBRegisters in interface IOBAnalyzer
Returns:
A Collection of EdifCellInstances corresponding to all of the IOB registers in associated with this EdifSingleBitPort (including input register, output register, and tristate register)

getIOB

public AbstractIOB getIOB(EdifSingleBitPort esbp)
Specified by:
getIOB in interface IOBAnalyzer
Returns:
the AbstractIOB associated with this EdifSingleBitPort

packInputRegs

public boolean packInputRegs()
Specified by:
packInputRegs in interface IOBAnalyzer
Returns:
a boolean indicating whether input register packing was selected

packOutputRegs

public boolean packOutputRegs()
Specified by:
packOutputRegs in interface IOBAnalyzer
Returns:
a boolean indicating whether output register packing was selected