byucc.jhdl.Xilinx.XC4000
Class hmap

java.lang.Object
  extended bybyucc.jhdl.base.Nameable
      extended bybyucc.jhdl.base.Node
          extended bybyucc.jhdl.base.Cell
              extended bybyucc.jhdl.base.Annotation
                  extended bybyucc.jhdl.Xilinx.XilinxAnn
                      extended bybyucc.jhdl.Xilinx.XC4000.hmap
All Implemented Interfaces:
BooleanFlags, PreDefinedSchematic, TreeListable, UndrivenInputsAllowable

public final class hmap
extends XilinxAnn
implements UndrivenInputsAllowable, PreDefinedSchematic

The HMAP symbol is used to control logic partitioning into XC4000 family 3-input H funciton generators. It is usually used with FMAP, which partitions logic into F and G function generators. The FMAP sits 'around' a set of existing gates, indicating the boundary of partitioning for a given function. (Source: XACT Libraries Guide, pg. 3-304, Xilinx Corporation, 1994.)


Field Summary
static CellInterface[] cell_interface
          The port interface for: hmap i1 : in (1) i2 : in (1) i3 : in (1) o : out (1)
static java.lang.String cellname
          The static cellname (netlist reference name) for hmap
 
Fields inherited from class byucc.jhdl.base.Cell
BOOLEAN, CELL_NAME_DECLARATION, CellInterfaceDeterminesUniqueNetlistStructure, DETERMINE_FROM_STRING, GENERICS_DECLARATION, implicit_interface, IMPLICIT_INTERFACE_DECLARATION, INTEGER, INTERFACE_DECLARATION, LONG, PORT_IOS_DECLARATION, PORT_NAMES_DECLARATION, PORT_NET_NAMES_DECLARATION, PORT_PROPERTIES, PORT_WIDTHS_DECLARATION, SIGN_EXT, STRING, ZERO_PAD
 
Fields inherited from interface byucc.jhdl.apps.Viewers.Schematic.PreDefinedSchematic
PreDefinedSchematic_ADD, PreDefinedSchematic_ADDSUB, PreDefinedSchematic_AND, PreDefinedSchematic_BUF, PreDefinedSchematic_CONST, PreDefinedSchematic_GEN, PreDefinedSchematic_GND, PreDefinedSchematic_INC, PreDefinedSchematic_INV, PreDefinedSchematic_MUX, PreDefinedSchematic_NAND, PreDefinedSchematic_NOR, PreDefinedSchematic_OR, PreDefinedSchematic_PULLDOWN, PreDefinedSchematic_PULLUP, PreDefinedSchematic_REG, PreDefinedSchematic_SHL, PreDefinedSchematic_SHR, PreDefinedSchematic_TBUF, PreDefinedSchematic_VCC, PreDefinedSchematic_XNOR, PreDefinedSchematic_XOR
 
Fields inherited from interface byucc.jhdl.base.BooleanFlags
ANTECEDANT_IS_BEHAVIORALLY_MODELED, ASYNC_PORT, ASYNCHRONOUS_RESOLVED, ATOMICALLY_PLACEABLE, ATOMICALLY_UNMAPPABLE, BEHAVIORALLY_MODELED_BRANCH, CLK_PORT, CLOCK_METHOD_IMPLEMENTED_BY_USER, CLOCK_METHOD_IS_DISABLED, CLOCKABLE_IS_SCHEDULED, DANGLING_IS_OK, DELETE_MARK, FATAL_BUILD_ERROR_OCCURED, HAS_BEEN_TRACED, HAS_USER_SPECIFIED_NAME, HWUPDATE, IMPLICIT_PORT, IN_CLK_PORT, IN_PORT, INOUT_PORT, IO_TYPE_FLAGS, IS_BEHAVIORALLY_MODELED, IS_ON_BUILD_STACK, IS_ON_PROP_LIST, IS_PLACED, METHODS_IMPLEMENTED_BY_USER, NETLISTABLE, ORIG_WIRE_IS_ATOMIC, OUT_PORT, PLACEMENT_IS_LOCKED, PROPAGATE_METHOD_IMPLEMENTED_BY_USER, PROPAGATE_METHOD_IS_DISABLED, RECURSION_FLAG, RESET_METHOD_IMPLEMENTED_BY_USER, SIMULATEABLE, SOURCELESS_IS_OK, SYNC_PORT, VISIBLE
 
Constructor Summary
protected hmap(Node parent)
          Used only by child classes to pass up the parent cell.
  hmap(Node parent, ArgBlockList abl)
          Constructs a new hmap, connecting its ports as given by the String-Wire pairs in the ArgBlockList.
protected hmap(Node parent, java.lang.String name)
          Used only by child classes to pass up the parent cell and instance name.
  hmap(Node parent, java.lang.String instanceName, ArgBlockList abl)
          Constructs a new hmap, connecting its ports as given by the String-Wire pairs in the ArgBlockList.
  hmap(Node parent, java.lang.String name, java.lang.String s0, Wire w0, java.lang.String s1, Wire w1, java.lang.String s2, Wire w2)
           
  hmap(Node parent, java.lang.String instanceName, java.lang.String s0, Wire w0, java.lang.String s1, Wire w1, java.lang.String s2, Wire w2, java.lang.String s3, Wire w3)
          Constructs a new hmap, connecting each Wire to the port whose name is given by the accompanying String parameter The initial String parameter specifies the instance name.
  hmap(Node parent, java.lang.String s0, Wire w0, java.lang.String s1, Wire w1, java.lang.String s2, Wire w2)
           
  hmap(Node parent, java.lang.String s0, Wire w0, java.lang.String s1, Wire w1, java.lang.String s2, Wire w2, java.lang.String s3, Wire w3)
          Constructs a new hmap, connecting each Wire to the port whose name is given by the accompanying String parameter
  hmap(Node parent, java.lang.String instanceName, Wire i1, Wire i2, Wire i3, Wire o)
          Constructs a new hmap.
  hmap(Node parent, Wire i1, Wire i2, Wire i3, Wire o)
          Constructs a new hmap.
 
Method Summary
 boolean cellInterfaceDeterminesUniqueNetlistStructure()
          When false, the default behavior of this method, each cell will list itself separately in a netlist, guaranteeing that the netlist will not have invalid data at the expense of a larger file-size.
 java.lang.String getCellName()
          Access the cell name associated with a derived class.
static void main(java.lang.String[] argv)
           
 boolean portMayBeUndriven(java.lang.String portname)
          This method will be called when JHDL detects an undriven input port.
static void test()
           
 int type()
          This method returns one of the predefined schematic constants to identify the type of this cell.
 
Methods inherited from class byucc.jhdl.base.Annotation
hasBehaviorInClockMethod, hasBehaviorInPropagateMethod, needsToBeAsynchronouslyScheduled
 
Methods inherited from class byucc.jhdl.base.Cell
addPort, addPorts, addProperties, addProperties, addProperty, addProperty, addProperty, addProperty, antecedantIsBehaviorallyModeled, antecedantIsBehaviorallyModeled, behavioralModelIsAvailable, bind, bind, bind, bind, clk, connect, connectAllWires, connectOptional, constructSubCell, constructSubCellNoImplicitPorts, defaultSimulationModelIsBehavioral, disableAllBehavioralModels, disableBehavioralModel, enableBehavioralModel, getArgument, getAttachedPort, getAttachedWire, getAttachedWireNoException, getCellNetlist, getCellNetList, getCellNetlist, getCellNetlist, getDescendents, getFlatNetlist, getFlatNetlistableChildren, getGeneric, getHeight, getNetlistableChildren, getPlacementInfo, getPortProperties, getPortRecord, getPortRecords, getProperties, getProperty, getPropertyValue, getSinkWires, getSourceWires, getSubCellClass, getUniqueCellName, getWidth, getX, getY, hasBeenTraced, hasBeenTraced, hasPort, hasPorts, in, in, inout, inout, isAsynchronouslyScheduled, isAsynchronouslyScheduled, isAsynchronousSourceSinkResolved, isBehaviorallyModeled, isBehaviorallyModeledBranch, isInput, isLeafCell, isNetlistable, isNetlistable, isNetlistablePort, isNetlistLeaf, isNotNetlistable, isNotNetlistablePort, isNotVisible, isOutput, isPlaceable, isPlaceable, isPlaced, isPlaced, isPlacementLocked, isRoot, isSimulateable, isSimulateable, isSink, isSource, isVisible, isVisible, join, lockPlacement, nc, out, out, param, popHierarchy, port, port, port, postorderCheck, preorderCheck, pushHierarchy, pushHierarchy, pushHierarchy, pushHierarchy, pushHierarchyNoImplicitPorts, pushHierarchyNoImplicitPorts, removeAllUnconnectedPorts, removePort, removeProperty, replaceProperty, replaceProperty, resetBehavioralModelsToDefaults, setAsynchronousSourceSinkResolved, setGeneric, setHeight, setNotNetlistable, setNotNetlistable, setNotVisible, setNotVisible, setPlacementInfo, setPortNotNetlistable, setPortNotNetlistable, setProperty, setWidth, subClassDelete, toString, uniquifyCell, userDefinedClockCount, verifyAndCleanup
 
Methods inherited from class byucc.jhdl.base.Node
addObservable, addSimulatorCallback, checkAll, delete, getBuildingFlag, getChildren, getChildrenEnumeration, getDefaultClock, getInstanceName, getParent, getParentCell, getRelatives, getSystem, getWires, optimize, orphanAllowed, printAllChildren, printTree, removeSimulatorCallback, setDefaultClock
 
Methods inherited from class byucc.jhdl.base.Nameable
caseSensitivity, caseSensitivity, disableNameClashChecking, getFullName, getFullNameNoTestBench, getHierNameNoTestBench, getInstanceNo, getInstanceNumber, getLeafName, getLeafName, getRelativeName, getUserName, getUserName, hasUserSpecifiedName, isDescendantOf, setInstanceNumber
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cellname

public static final java.lang.String cellname
The static cellname (netlist reference name) for hmap

See Also:
Constant Field Values

cell_interface

public static CellInterface[] cell_interface
The port interface for: hmap i1 : in (1) i2 : in (1) i3 : in (1) o : out (1)

Constructor Detail

hmap

public hmap(Node parent,
            java.lang.String s0,
            Wire w0,
            java.lang.String s1,
            Wire w1,
            java.lang.String s2,
            Wire w2)

hmap

public hmap(Node parent,
            java.lang.String name,
            java.lang.String s0,
            Wire w0,
            java.lang.String s1,
            Wire w1,
            java.lang.String s2,
            Wire w2)

hmap

protected hmap(Node parent)
Used only by child classes to pass up the parent cell.

Parameters:
parent - Parent cell

hmap

protected hmap(Node parent,
               java.lang.String name)
Used only by child classes to pass up the parent cell and instance name.

Parameters:
parent - Parent cell
name - Instance name of the cell

hmap

public hmap(Node parent,
            Wire i1,
            Wire i2,
            Wire i3,
            Wire o)
Constructs a new hmap.

Parameters:
parent - The parent Cell to the hmap
i1 - The Wire to be connected to input port i1
i2 - The Wire to be connected to input port i2
i3 - The Wire to be connected to input port i3
o - The Wire to be connected to output port o

hmap

public hmap(Node parent,
            java.lang.String instanceName,
            Wire i1,
            Wire i2,
            Wire i3,
            Wire o)
Constructs a new hmap. The initial String parameter specifies the instance name.

Parameters:
parent - The parent Cell to the hmap
instanceName - The instance name of the hmap
i1 - The Wire to be connected to input port i1
i2 - The Wire to be connected to input port i2
i3 - The Wire to be connected to input port i3
o - The Wire to be connected to output port o

hmap

public hmap(Node parent,
            java.lang.String s0,
            Wire w0,
            java.lang.String s1,
            Wire w1,
            java.lang.String s2,
            Wire w2,
            java.lang.String s3,
            Wire w3)
Constructs a new hmap, connecting each Wire to the port whose name is given by the accompanying String parameter

Parameters:
parent - The parent Cell to the hmap
s0 - The name of the port to which w0 will be connected
w0 - The Wire to be connected to the port specified by s0
s1 - The name of the port to which w1 will be connected
w1 - The Wire to be connected to the port specified by s1
s2 - The name of the port to which w2 will be connected
w2 - The Wire to be connected to the port specified by s2
s3 - The name of the port to which w3 will be connected
w3 - The Wire to be connected to the port specified by s3

hmap

public hmap(Node parent,
            java.lang.String instanceName,
            java.lang.String s0,
            Wire w0,
            java.lang.String s1,
            Wire w1,
            java.lang.String s2,
            Wire w2,
            java.lang.String s3,
            Wire w3)
Constructs a new hmap, connecting each Wire to the port whose name is given by the accompanying String parameter The initial String parameter specifies the instance name.

Parameters:
parent - The parent Cell to the hmap
instanceName - The instance name of the hmap
s0 - The name of the port to which w0 will be connected
w0 - The Wire to be connected to the port specified by s0
s1 - The name of the port to which w1 will be connected
w1 - The Wire to be connected to the port specified by s1
s2 - The name of the port to which w2 will be connected
w2 - The Wire to be connected to the port specified by s2
s3 - The name of the port to which w3 will be connected
w3 - The Wire to be connected to the port specified by s3

hmap

public hmap(Node parent,
            ArgBlockList abl)
Constructs a new hmap, connecting its ports as given by the String-Wire pairs in the ArgBlockList. Any generic assignments are made through String-String pairs in the ArgBlockList.

Parameters:
parent - The parent Cell to the hmap
abl - The list of String-Wire pairs for port assignments, and String-String pairs for generic assignments.

hmap

public hmap(Node parent,
            java.lang.String instanceName,
            ArgBlockList abl)
Constructs a new hmap, connecting its ports as given by the String-Wire pairs in the ArgBlockList. Any generic assignments are made through String-String pairs in the ArgBlockList. The initial String parameter is the instance name.

Parameters:
parent - The parent Cell to the hmap
instanceName - The instance name of the hmap
abl - The list of String-Wire pairs for port assignments, and String-String pairs for generic assignments.
Method Detail

getCellName

public java.lang.String getCellName()
Description copied from class: Cell
Access the cell name associated with a derived class. The cellname field is lazily evaluated on the first call of this method. Can be overriden to make cellname different by instance. If the field does not exist, this defaults to the classname.

Overrides:
getCellName in class Cell
Returns:
the cell name associated with a derived class, null if not declared.

portMayBeUndriven

public boolean portMayBeUndriven(java.lang.String portname)
Description copied from interface: UndrivenInputsAllowable
This method will be called when JHDL detects an undriven input port. If the return value is true, the typical error will be avoided. If the return value is false, JHDL will treat the port like any other, and throw an exception that an undriven input was detected.

Specified by:
portMayBeUndriven in interface UndrivenInputsAllowable
Parameters:
portname - the name of the port, from the cell_interface
Returns:
true if this port may be undriven based on the primitive's mode of operation.

cellInterfaceDeterminesUniqueNetlistStructure

public final boolean cellInterfaceDeterminesUniqueNetlistStructure()
Description copied from class: Cell
When false, the default behavior of this method, each cell will list itself separately in a netlist, guaranteeing that the netlist will not have invalid data at the expense of a larger file-size. Overriding this method to return true allows JHDL to save memory and netlists to be smaller by sharing the netlist structures that are guaranteed to be identical. NOTE: Do not override this unless every possible condition responsible for structural differences in a class (types and amount of children cells created, and arrangements of wires connected to ports) is included in the cellInterface[] of that class.

Overrides:
cellInterfaceDeterminesUniqueNetlistStructure in class Cell
Returns:
false if not overridden, preventing all memory sharing

type

public int type()
Description copied from interface: PreDefinedSchematic
This method returns one of the predefined schematic constants to identify the type of this cell.

Specified by:
type in interface PreDefinedSchematic
Returns:
A predefined schematic constant

main

public static void main(java.lang.String[] argv)

test

public static void test()


Copyright ? 2006 Brigham Young University, Configurable Computing Laboratory. All Rights Reserved.