|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectbyucc.jhdl.base.Nameable
byucc.jhdl.base.Node
byucc.jhdl.base.Cell
byucc.jhdl.base.Structural
If the node only contains instantiations of other kinds
of nodes, this is the container class to use. It supports
hierarchy and also allows the designer to provide a behavioral
model for higher simulation performance. In addition, the Structural
class provides blank methods to satisfy both Clockable and Propagateable,
then uses reflection to see if the user actually implements either. In
this way, a Cell can be just combinational or synchronous; making
Structural the ideal superclass for Logic
.
Field Summary |
Constructor Summary | |
protected |
Structural(Node parent)
Checks to see if the Structural cell is being behaviorally modeled and has a behavior method implemented by the user. |
protected |
Structural(Node parent,
java.lang.String name)
Checks to see if the Structual class is being behaviorally modeled. |
Method Summary | |
boolean |
behavioralModelIsAvailable()
Convenience method to check whether the behavioral model has been implemented by the user. |
void |
clock()
Users define synchronous behavior in this method using standard JHDL constructs. |
boolean |
clockMethodIsDisabled()
Use this to check the status of the behavior method (enabled or disabled). |
boolean |
clockMethodIsDisabled(boolean flag)
Use this to disable the behavior method. |
boolean |
clockMethodIsEnabled()
Use this to check the status of the behavior method (enabled or disabled). |
boolean |
clockMethodIsEnabled(boolean flag)
Short for !clockMethodIsDisabled(!flag) . |
protected boolean |
defaultSimulationModelIsBehavioral()
The default simulation model is structural for Structural cells. |
boolean |
hasBeenTraced()
Used to mark if something has been traced, to avoid infinite tracing loops. |
boolean |
hasBeenTraced(boolean flag)
Used to set whether something has been traced, to avoid infinite tracing loops. |
boolean |
hasBehaviorInClockMethod()
A Structural cell is behaviorally modelled in methods if the method is implemented by the user, and the cell currently has behavior modelling enabled. |
boolean |
hasBehaviorInPropagateMethod()
A Structural cell is behaviorally modelled in methods if the method is implemented by the user, and the cell currently has behavior modelling enabled. |
boolean |
isAsynchronouslyScheduled()
The levelized simulator uses this to keep track of what has been levelized (put on the propagate list thus far. |
boolean |
isAsynchronouslyScheduled(boolean is_scheduled)
Used to mark something as put on the propagate list. |
boolean |
isFallingEdgeTriggered()
The default behavior assumes a clock of schedule "01", and that this is rising-edge triggered. |
boolean |
isReadyToBeAsynchronouslyScheduled()
A Propagatable node is ready to put on the list when all of its source wires are marked (on the Propagate list). |
boolean |
isRisingEdgeTriggered()
The default behavior assumes a clock of schedule "01", and that this is rising-edge triggered. |
boolean |
needsToBeAsynchronouslyScheduled()
Unless it is being behaviorally modelled, it does not need to be propagated. |
boolean |
needsToBeClocked()
Structural cells need to be clocked if they are being behaviorally modelled, the user has implemented a clock method, and finally, if they will not be HWUpdated. |
void |
propagate()
Users defined propagatable behavior using standard JHDL constructs. |
boolean |
propagateMethodIsDisabled()
Use this to check the status of the propagate method (enabled or disabled). |
boolean |
propagateMethodIsDisabled(boolean flag)
Use this to disable the propagate method. |
boolean |
propagateMethodIsEnabled()
Use this to check the status of the propagate method (enabled or disabled). |
boolean |
propagateMethodIsEnabled(boolean flag)
Short for !propagateMethodIsDisabled(!flag) . |
void |
reset()
If you define a behavior, you must also define a reset method for resetting the synchonous part of your model. |
boolean |
willUseHWUpdate()
Simple flag tells the cell that it is being behaviorally modeled. |
boolean |
willUseHWUpdate(boolean flag)
Used to set or clear the HWUpdate flag, which controls whether the simulation model or hardware is used to update the cell. |
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 |
Constructor Detail |
protected Structural(Node parent, java.lang.String name)
parent
- your parent.name
- user-specified name.protected Structural(Node parent)
parent
- your parent.Method Detail |
public final boolean propagateMethodIsDisabled(boolean flag)
flag
- this should be true if you want to disable the propagate method, false otherwise.
BuildException
- if this cannot be disabled because it would leave the cell with
no simulation model
UnimplementedException
- if this cannot be enabled because there is no modelpublic final boolean propagateMethodIsEnabled(boolean flag)
!propagateMethodIsDisabled(!flag)
.
flag
- this should be true to enable the propagate method, false otherwise.
BuildException
- if this cannot be disabled because it would leave the cell with
no simulation model
UnimplementedException
- if this cannot be enabled because there is no modelpublic final boolean propagateMethodIsDisabled()
public final boolean propagateMethodIsEnabled()
public final boolean clockMethodIsDisabled(boolean flag)
flag
- this should be true if you want to disable the behavior method, false otherwise.
BuildException
- if this cannot be disabled because it would leave the cell with
no simulation model
UnimplementedException
- if this cannot be enabled because there is no modelpublic final boolean clockMethodIsEnabled(boolean flag)
!clockMethodIsDisabled(!flag)
.
flag
- this should be true if you want to enable the behavioral method
BuildException
- if this cannot be disabled because it would leave the cell with
no simulation model
UnimplementedException
- if this cannot be enabled because there is no modelpublic final boolean clockMethodIsDisabled()
public final boolean clockMethodIsEnabled()
protected boolean defaultSimulationModelIsBehavioral()
defaultSimulationModelIsBehavioral
in class Cell
public boolean behavioralModelIsAvailable()
behavioralModelIsAvailable
in class Cell
public void clock()
clock
in interface Clockable
UnimplementedException
- Unless the user overrides thispublic void propagate()
propagate
in interface byucc.jhdl.base.Propagateable
UnimplementedException
- Unless the user overrides thispublic final boolean hasBehaviorInClockMethod()
hasBehaviorInClockMethod
in class Cell
public final boolean hasBehaviorInPropagateMethod()
hasBehaviorInPropagateMethod
in class Cell
public void reset()
reset
in interface Clockable
UnimplementedException
- Unless the user overrides thispublic boolean isReadyToBeAsynchronouslyScheduled()
isReadyToBeAsynchronouslyScheduled
in interface byucc.jhdl.base.Propagateable
public boolean needsToBeAsynchronouslyScheduled()
needsToBeAsynchronouslyScheduled
in interface byucc.jhdl.base.Propagateable
needsToBeAsynchronouslyScheduled
in class Cell
public boolean needsToBeClocked()
needsToBeClocked
in interface Clockable
public final boolean willUseHWUpdate(boolean flag)
willUseHWUpdate
in interface Clockable
flag
- the new value of the flag
public final boolean willUseHWUpdate()
willUseHWUpdate
in interface Clockable
public boolean isRisingEdgeTriggered()
isRisingEdgeTriggered
in interface Clockable
public boolean isFallingEdgeTriggered()
isFallingEdgeTriggered
in interface Clockable
public boolean isAsynchronouslyScheduled()
public boolean isAsynchronouslyScheduled(boolean is_scheduled)
public boolean hasBeenTraced()
public boolean hasBeenTraced(boolean flag)
flag
- value to set flag to
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |