edu.byu.ece.edif.tools.replicate.nmr
Class DeviceParser

java.lang.Object
  extended by edu.byu.ece.edif.tools.replicate.nmr.DeviceParser

public class DeviceParser
extends java.lang.Object

Since:
Created on Feb 10, 2006
Version:
$Id: DeviceParser.java 121 2008-09-02 16:00:34Z derrickgw $
Author:
Keith Morgan

Field Summary
static java.lang.String VIRTEX
           
static java.lang.String VIRTEX2
           
static java.lang.String VIRTEX2PRO
           
static java.lang.String VIRTEX4
           
static java.lang.String XILINX
           
 
Constructor Summary
DeviceParser()
           
 
Method Summary
static XilinxDeviceUtilizationTracker createXilinxDeviceUtilizationTracker(EdifCell cell, java.lang.String part, double mergeFactor, double optimizationFactor, double desiredUtilizationFactor)
           
static XilinxDeviceUtilizationTracker createXilinxDeviceUtilizationTracker(EdifCell cell, java.lang.String part, double mergeFactor, double optimizationFactor, double factorValue, boolean ignore_hard_limits, boolean ignore_soft_limits, NMRUtilities.UtilizationFactor type)
          Create (and return) a XilinxDeviceUtilizationTracker for the given cell, device part & family, using the given merge factor, optimization factor, and utilization factor.
static XilinxDeviceUtilizationTracker createXilinxDeviceUtilizationTracker(EdifCell cell, java.lang.String part, double mergeFactor, double optimizationFactor, double factorValue, NMRUtilities.UtilizationFactor type)
           
static XilinxDeviceUtilizationTracker createXilinxDeviceUtilizationTracker(EdifCell cell, java.lang.String family, java.lang.String part)
           
static java.lang.String parseFamily(java.lang.String vendor, java.lang.String family)
           
static java.lang.String parseVendor(java.lang.String vendor)
           
private static java.lang.String parseXilinxFamily(java.lang.String family)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XILINX

public static final java.lang.String XILINX
See Also:
Constant Field Values

VIRTEX

public static final java.lang.String VIRTEX
See Also:
Constant Field Values

VIRTEX2

public static final java.lang.String VIRTEX2
See Also:
Constant Field Values

VIRTEX2PRO

public static final java.lang.String VIRTEX2PRO
See Also:
Constant Field Values

VIRTEX4

public static final java.lang.String VIRTEX4
See Also:
Constant Field Values
Constructor Detail

DeviceParser

public DeviceParser()
Method Detail

createXilinxDeviceUtilizationTracker

public static XilinxDeviceUtilizationTracker createXilinxDeviceUtilizationTracker(EdifCell cell,
                                                                                  java.lang.String family,
                                                                                  java.lang.String part)
                                                                           throws OverutilizationException,
                                                                                  OverutilizationEstimatedStopException,
                                                                                  OverutilizationHardStopException
Parameters:
cell -
family -
part -
Returns:
XilinxDeviceUtilizationTracker
Throws:
OverutilizationException
OverutilizationEstimatedStopException
OverutilizationHardStopException

createXilinxDeviceUtilizationTracker

public static XilinxDeviceUtilizationTracker createXilinxDeviceUtilizationTracker(EdifCell cell,
                                                                                  java.lang.String part,
                                                                                  double mergeFactor,
                                                                                  double optimizationFactor,
                                                                                  double desiredUtilizationFactor)
                                                                           throws OverutilizationException,
                                                                                  OverutilizationEstimatedStopException,
                                                                                  OverutilizationHardStopException
Parameters:
cell -
family -
part -
mergeFactor -
optimizationFactor -
desiredUtilizationFactor -
Returns:
XilinxDeviceUtilizationTracker
Throws:
OverutilizationException
OverutilizationEstimatedStopException
OverutilizationHardStopException

createXilinxDeviceUtilizationTracker

public static XilinxDeviceUtilizationTracker createXilinxDeviceUtilizationTracker(EdifCell cell,
                                                                                  java.lang.String part,
                                                                                  double mergeFactor,
                                                                                  double optimizationFactor,
                                                                                  double factorValue,
                                                                                  NMRUtilities.UtilizationFactor type)
                                                                           throws OverutilizationException,
                                                                                  OverutilizationEstimatedStopException,
                                                                                  OverutilizationHardStopException
Throws:
OverutilizationException
OverutilizationEstimatedStopException
OverutilizationHardStopException

createXilinxDeviceUtilizationTracker

public static XilinxDeviceUtilizationTracker createXilinxDeviceUtilizationTracker(EdifCell cell,
                                                                                  java.lang.String part,
                                                                                  double mergeFactor,
                                                                                  double optimizationFactor,
                                                                                  double factorValue,
                                                                                  boolean ignore_hard_limits,
                                                                                  boolean ignore_soft_limits,
                                                                                  NMRUtilities.UtilizationFactor type)
                                                                           throws OverutilizationException,
                                                                                  OverutilizationEstimatedStopException,
                                                                                  OverutilizationHardStopException
Create (and return) a XilinxDeviceUtilizationTracker for the given cell, device part & family, using the given merge factor, optimization factor, and utilization factor.

This method was created as a wrapper for #createXilinxDeviceUtilizationTracker(EdifCell, String, String, double, double, double) such that the caller need not recalculate the utilization factor for different utilization factor types. That is, FlattenTMR need not know about the internal working of DeviceParser nor XilinxDeviceUtilizationTracker. Rather, FlattenTMR should be able to get a utilization tracker by requesting one with the utilization factor type and value.

Parameters:
cell - The EdifCell object
part - The target part name (String object)
mergeFactor - The merge factor
optimizationFactor - The optimization factor
factorValue - The utilization factor
type - The utilization factor type
Returns:
a XilinxDeviceUtilizationTracker
Throws:
OverutilizationException - if the specified utilization factor is smaller than the utilization of the design with no TMR.
OverutilizationEstimatedStopException - if the specified utilization factor is smaller than the estimated utilization of the design with no TMR.
OverutilizationHardStopException - if the design cannot fit on the part due to hard constraints (e.g. too few RAMs, too few global buffers, etc.).

parseFamily

public static java.lang.String parseFamily(java.lang.String vendor,
                                           java.lang.String family)
Parameters:
vendor -
family -
Returns:
String

parseVendor

public static java.lang.String parseVendor(java.lang.String vendor)
Parameters:
vendor -
Returns:
String

parseXilinxFamily

private static java.lang.String parseXilinxFamily(java.lang.String family)
Parameters:
family -
Returns:
String