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

java.lang.Object
  extended by edu.byu.ece.edif.tools.replicate.nmr.AbstractNMRArchitecture
      extended by edu.byu.ece.edif.tools.replicate.nmr.xilinx.XilinxNMRArchitecture
All Implemented Interfaces:
NMRArchitecture, java.io.Serializable

public class XilinxNMRArchitecture
extends AbstractNMRArchitecture

Provides a Xilinx implementation of NMR. It is intended that this class be implemented by the different families of Xilinx parts.

Since:
Created on May 23, 2005
See Also:
Serialized Form

Field Summary
(package private)  java.util.Map<EdifCell,EdifCell> _cellToFDMap
           
(package private)  java.util.Map<EdifCell,EdifCell> _cellToObufMap
           
protected  EdifCell _voterCell
          The EdifCell object that implements the majority voting.
protected  java.lang.String[] XILINX_FLIP_FLOPS
          List of all flip-flop primitives in the Xilinx library.
 
Fields inherited from class edu.byu.ece.edif.tools.replicate.nmr.AbstractNMRArchitecture
_badCutConnections
 
Constructor Summary
XilinxNMRArchitecture()
           
 
Method Summary
protected  void _init()
          Initialize the set of Bad Cut Connections for this architecture.
 Organ getDefaultRestoringOrganForReplicationType(java.lang.Class<? extends ReplicationType> c)
           
protected  EdifCell getFDCell(EdifCell parent)
           
protected  EdifCell getOBUFCell(EdifCell parent)
           
 PortConnection insertFD(EdifNameable name, PortConnection input, java.lang.String clockNetName, NetManager netManager)
           
 PortConnection insertOBUF(EdifNameable name, PortConnection input, NetManager netManager)
           
 boolean isAFlipFlop(java.lang.String cellType)
           
 boolean isBRAM(java.lang.String cellType)
           
 boolean isClockNet(EdifNet net)
           
 java.util.List<PortConnection> prepareForDetectionOutput(java.util.List<? extends PortConnection> unpreparedOutput, boolean registerDetection, boolean addObuf, java.lang.String clockNetName, NetManager netManager)
           
 
Methods inherited from class edu.byu.ece.edif.tools.replicate.nmr.AbstractNMRArchitecture
isBadCutConnection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_voterCell

protected EdifCell _voterCell
The EdifCell object that implements the majority voting.


XILINX_FLIP_FLOPS

protected final java.lang.String[] XILINX_FLIP_FLOPS
List of all flip-flop primitives in the Xilinx library.


_cellToObufMap

java.util.Map<EdifCell,EdifCell> _cellToObufMap

_cellToFDMap

java.util.Map<EdifCell,EdifCell> _cellToFDMap
Constructor Detail

XilinxNMRArchitecture

public XilinxNMRArchitecture()
Method Detail

isAFlipFlop

public boolean isAFlipFlop(java.lang.String cellType)

isBRAM

public boolean isBRAM(java.lang.String cellType)

_init

protected void _init()
Initialize the set of Bad Cut Connections for this architecture. This list can be less verbose when utilizing the shortcuts enabled in the XilinxBadCutConnections class. E.g. MUXCY, MUXCY_L, and MUXCY_D can all be treated the same with the name MUXCY.


isClockNet

public boolean isClockNet(EdifNet net)
Returns:
true if the given EdifNet is a clock net, false otherwise

getDefaultRestoringOrganForReplicationType

public Organ getDefaultRestoringOrganForReplicationType(java.lang.Class<? extends ReplicationType> c)

prepareForDetectionOutput

public java.util.List<PortConnection> prepareForDetectionOutput(java.util.List<? extends PortConnection> unpreparedOutput,
                                                                boolean registerDetection,
                                                                boolean addObuf,
                                                                java.lang.String clockNetName,
                                                                NetManager netManager)

insertOBUF

public PortConnection insertOBUF(EdifNameable name,
                                 PortConnection input,
                                 NetManager netManager)

insertFD

public PortConnection insertFD(EdifNameable name,
                               PortConnection input,
                               java.lang.String clockNetName,
                               NetManager netManager)

getOBUFCell

protected EdifCell getOBUFCell(EdifCell parent)

getFDCell

protected EdifCell getFDCell(EdifCell parent)