edu.byu.ece.edif.tools.sterilize.fmap
Class FmapRemover

java.lang.Object
  extended by edu.byu.ece.edif.tools.sterilize.fmap.FmapRemover

public abstract class FmapRemover
extends java.lang.Object

Remove fmap EDIF directives.

An fmap is not a actual EdifCell nor EdifCellInstance. Rather, it is a directive in the EDIF language that specifies that a small group of logic gates must be placed in the same LUT. In previous years, fmaps were more common in EDIF designs; but as mapping programs have become more sophisticated, the need for fmaps has gone. In the BYU EDIF tools, an fmap is represented with an EdifCell object. For this reason, fmaps can cause problems in circuits; for example, when a design is partially triplicated (see edu.byu.ece.edif.tools.replicate.nmr.tmr), and the fmap is marked to be triplicated, but not all of its contents are triplicated, the result is an error being thrown by the triplication tool. Thus, fmaps are completely removed from designs before performing triplication.

The following might help to clarify the definition of an fmap. It comes from the JHDL javadocs:

The FMAP symbol is used to control logic partitioning into XC4000 family 4-input function generators. The place and route software chooses an F or a G function generator as a default, unless specified in the RLOC property. The FMAP sits 'around' a set of existing gates, indicating the boundary of partitioning for a given function. (Source: XACT Libraries Guide, pg. 3-280, Xilinx Corporation, 1994.)

fmap (JHDL API)

Author:
James Carroll

Constructor Summary
FmapRemover()
           
 
Method Summary
static int removeFmaps(EdifEnvironment environment)
          Remove fmaps from the given EdifEnvironment.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FmapRemover

public FmapRemover()
Method Detail

removeFmaps

public static int removeFmaps(EdifEnvironment environment)
Remove fmaps from the given EdifEnvironment. Note that the EdifEnvironment passed to this method is modified; no copy is made.

Parameters:
environment - The EdifEnvironment object
Returns:
true if the EdifEnvironment was modified.