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

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

public abstract class XilinxIOBAnalyzer
extends AbstractIOBAnalyzer

See Also:
Serialized Form

Field Summary
 
Fields inherited from class edu.byu.ece.edif.util.iob.AbstractIOBAnalyzer
_cell, _debug, _feedbackIOBMap, _graph, _iobFeedbackEdges, _iobMap, _packInputRegs, _packOutputRegs
 
Constructor Summary
XilinxIOBAnalyzer()
           
 
Method Summary
protected  void analyze()
          Analyzes the EdifCell, extracting the IOB instances from the Connectivity graph.
static XilinxVirtexIOB createXilinxIOBFromPort(EdifSingleBitPort esbp, EdifCellInstanceGraph graph, boolean packInputRegisters, boolean packOutputRegisters)
          Creates a new XilinxIOB object and fills in the appropriate information using the given EdifCellInstanceGraph graph.
protected static EdifCellInstance findInputIOBRegister(java.lang.Object source, EdifCellInstanceGraph graph)
          Uses the "source" node given as an input port and finds any flip-flop instances which qualify as IOB register (those that the Xilinx tools would "pack" into the IOBs)
protected static EdifCellInstance findOutputIOBRegister(java.lang.Object sink, EdifCellInstanceGraph graph, boolean type)
          Uses the "sink" node given as an output port and finds any flip-flop instances which qualify as IOB register (those that the Xilinx tools would "pack" into the IOBs)
 
Methods inherited from class edu.byu.ece.edif.util.iob.AbstractIOBAnalyzer
getAllIOBInstances, getAllIOBRegisters, getFeedbackIOBs, getIOB, getIOBFeedbackEdges, getIOBFeedbackEPRs, getIOBInstances, getIOBInstances, getIOBRegisters, hasIOBFalseProperty, packInputRegs, packOutputRegs
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XilinxIOBAnalyzer

public XilinxIOBAnalyzer()
Method Detail

createXilinxIOBFromPort

public static XilinxVirtexIOB createXilinxIOBFromPort(EdifSingleBitPort esbp,
                                                      EdifCellInstanceGraph graph,
                                                      boolean packInputRegisters,
                                                      boolean packOutputRegisters)
Creates a new XilinxIOB object and fills in the appropriate information using the given EdifCellInstanceGraph graph.

Parameters:
esbp - The EdifSingleBitPort object to generate the XilinxIOB from
graph - The EdifCellInstanceGraph graph to use
packInputRegisters - Packs registers into input IOBs
packOutputRegisters - Packs register into output IOBs
Returns:
a newly-created XilinxIOB object with all IOB information

findInputIOBRegister

protected static EdifCellInstance findInputIOBRegister(java.lang.Object source,
                                                       EdifCellInstanceGraph graph)
Uses the "source" node given as an input port and finds any flip-flop instances which qualify as IOB register (those that the Xilinx tools would "pack" into the IOBs)

Parameters:
source - The top-level input port or the IBUF object that the port is attached to
graph - The EdifCellInstanceGraph graph for the parent Cell
Returns:
The EdifCellInstance object of the IOB register for this port, or null if there is none

findOutputIOBRegister

protected static EdifCellInstance findOutputIOBRegister(java.lang.Object sink,
                                                        EdifCellInstanceGraph graph,
                                                        boolean type)
Uses the "sink" node given as an output port and finds any flip-flop instances which qualify as IOB register (those that the Xilinx tools would "pack" into the IOBs)

Parameters:
source - The top-level output port or the OBUF object that the port is attached to
graph - The EdifCellInstanceGraph graph for the parent Cell
type - A boolean value which specifies if an "output" register or a "tristate" register should be searched for
Returns:
The EdifCellInstance object of the IOB register for this port, or null if there is none

analyze

protected void analyze()
Analyzes the EdifCell, extracting the IOB instances from the Connectivity graph. Assumes the EdifCell is a top-level cell (that the top-level ports will be connected to I/O pads).