edu.byu.ece.edif.tools.sterilize.halflatch
Class HalfLatchRemove

java.lang.Object
  extended by edu.byu.ece.edif.tools.sterilize.halflatch.HalfLatchRemove

public class HalfLatchRemove
extends java.lang.Object

Removes half latches in a Xilinx design. The following primitives are replaced:

Author:
Yubo Li

Nested Class Summary
static class HalfLatchRemove.FFType
          An enumerated type that represent each individual primitive.
 
Field Summary
static java.lang.String FD_1_STRING
           
static java.lang.String FD_STRING
          Enumerations of all primitives.
static java.lang.String FDC_1_STRING
           
static java.lang.String FDC_STRING
           
static java.lang.String FDCE_1_STRING
           
static java.lang.String FDCE_STRING
           
static java.lang.String FDCP_1_STRING
           
static java.lang.String FDCP_STRING
           
static java.lang.String FDE_1_STRING
           
static java.lang.String FDE_STRING
           
static java.lang.String FDP_1_STRING
           
static java.lang.String FDP_STRING
           
static java.lang.String FDPE_1_STRING
           
static java.lang.String FDPE_STRING
           
 
Constructor Summary
HalfLatchRemove()
           
 
Method Summary
static void CreateConstantOneNet(EdifCell parent)
          Create net for CE (constant value '1')
static void CreateConstantOnePort(EdifCell parent)
          Create port for CE (constant value '1')
static void CreateConstantZeroNet(EdifCell parent)
          Create net for PRESET and CLR (constant value '0')
static void CreateConstantZeroPort(EdifCell parent)
          Create port for PRESET and CLR (constant value '0')
static void Remove(EdifLibraryManager libManager, HalfLatchRemove.FFType ffType, EdifCell parent, boolean lut, java.lang.String namePrefix, java.lang.String INIT, EdifNet c, EdifNet d, EdifNet q, EdifNet pre, EdifNet ce, EdifNet clr)
          Performs the half latch removal algorithm.
static void Remove(EdifLibraryManager libManager, java.lang.String ffType, EdifCell parent, boolean lut, java.lang.String namePrefix, java.lang.String INIT, EdifNet c, EdifNet d, EdifNet q, EdifNet pre, EdifNet ce, EdifNet clr)
           
static HalfLatchRemove.FFType StringToFFType(java.lang.String str)
          Compares a string against all the primitive strings while ignoring case.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FD_STRING

public static final java.lang.String FD_STRING
Enumerations of all primitives. These strings are used for matching the strings in the original EDIF.

See Also:
StringToSRLType, Constant Field Values

FD_1_STRING

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

FDC_STRING

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

FDC_1_STRING

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

FDCE_STRING

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

FDCE_1_STRING

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

FDCP_STRING

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

FDCP_1_STRING

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

FDE_STRING

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

FDE_1_STRING

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

FDP_STRING

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

FDP_1_STRING

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

FDPE_STRING

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

FDPE_1_STRING

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

HalfLatchRemove

public HalfLatchRemove()
Method Detail

StringToFFType

public static HalfLatchRemove.FFType StringToFFType(java.lang.String str)
Compares a string against all the primitive strings while ignoring case.

Returns:
An FFType object representing the primitive that was matched. Returns a null if no match occurs.

Remove

public static void Remove(EdifLibraryManager libManager,
                          java.lang.String ffType,
                          EdifCell parent,
                          boolean lut,
                          java.lang.String namePrefix,
                          java.lang.String INIT,
                          EdifNet c,
                          EdifNet d,
                          EdifNet q,
                          EdifNet pre,
                          EdifNet ce,
                          EdifNet clr)

Remove

public static void Remove(EdifLibraryManager libManager,
                          HalfLatchRemove.FFType ffType,
                          EdifCell parent,
                          boolean lut,
                          java.lang.String namePrefix,
                          java.lang.String INIT,
                          EdifNet c,
                          EdifNet d,
                          EdifNet q,
                          EdifNet pre,
                          EdifNet ce,
                          EdifNet clr)
Performs the half latch removal algorithm. This method only operates on a single EdifCell object. This method assumes that a new EdifCell has been created and there is a "hole" where a previously used FF primitive was used. It is also assumed that the design is already flattened before half latch removal begins. All the surrounding logic and nets are created and passed to this method so the new FDCPE instance can be hooked up. It is called by the edu.byu.ece.edif.tools.sterilize.halflatch.HalfLatchRemoval class.

Parameters:
libManager - The library manager of this new environment
ffType - The FF type to replace.
parent - The parent EdifCell that contains the replaced cell
lut - A flag to indicate which constant value mode is chosen. Set to be true by default.
namePrefix - This is the String prefix used to create a new name for all of the replacement cells.
INIT - Init value used when determining which cells to create for initialization.
c -
d -
q -
pre -
ce -
clr -

CreateConstantZeroPort

public static void CreateConstantZeroPort(EdifCell parent)
Create port for PRESET and CLR (constant value '0')


CreateConstantZeroNet

public static void CreateConstantZeroNet(EdifCell parent)
Create net for PRESET and CLR (constant value '0')


CreateConstantOnePort

public static void CreateConstantOnePort(EdifCell parent)
Create port for CE (constant value '1')


CreateConstantOneNet

public static void CreateConstantOneNet(EdifCell parent)
Create net for CE (constant value '1')