|
|||||||||||
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.Synchronous
Base class for defining a synchronous circuit element. The behavior method is called on each appropriate clock edge to update outputs as defined by the user in the derived class.
Field Summary |
Constructor Summary | |
protected |
Synchronous(Node parent)
Base constructor. |
protected |
Synchronous(Node parent,
java.lang.String name)
Base constructor. |
Method Summary | |
boolean |
behavioralModelIsAvailable()
Used to tell if a cell has a behavioral model associated with it. |
protected boolean |
defaultSimulationModelIsBehavioral()
Whether a cell should be simulated behaviorally |
boolean |
explicitControlOnPropagateList()
Whether the explicit control is scheduled |
boolean |
hasBehaviorInClockMethod()
A Synchronous cell is always behaviorally clocked |
boolean |
hasBehaviorInPropagateMethod()
A Synchronous cell is never behaviorally propagated |
boolean |
isFallingEdgeTriggered()
The default behavior assumes that a synchronous element is rising-edge triggered on a schedule of "01". |
boolean |
isReadyToBeAsynchronouslyScheduled()
Whether the cell is ready to be scheduled |
boolean |
isRisingEdgeTriggered()
The default behavior assumes that a synchronous element is rising-edge triggered on a schedule of "01". |
boolean |
needsToBeAsynchronouslyScheduled()
Synchronous nodes only need to be propagated if they are not using the global clock line. |
boolean |
needsToBeClocked()
Synchronous elements need to be clocked only if they are being behaviorally modeled and they are not going to be HWUpdated. |
void |
setExplicitClock(Wire clock)
If the user is using an explicit clock, must call this. |
void |
setExplicitReset(Wire reset)
If the user is using an explicit reset, must call this. |
void |
setExplicitSet(Wire set)
If the user is using an explicit set, must call this. |
boolean |
usesExplicitControl()
Whether the cell uses explicit control |
boolean |
willUseHWUpdate()
Returns the hardware status of the cell |
boolean |
willUseHWUpdate(boolean flag)
Used to indicate the cell will not be clocked in the simulator but will be updated externally using readback. |
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 |
Methods inherited from interface byucc.jhdl.base.Clockable |
clock, reset |
Constructor Detail |
protected Synchronous(Node parent, java.lang.String name)
parent
- your parent.name
- user-specified name.protected Synchronous(Node parent)
parent
- your parent.Method Detail |
public void setExplicitClock(Wire clock)
clock
- the wire providing the explicit clock signal.public void setExplicitReset(Wire reset)
reset
- the wire providing the explicit reset signal.public void setExplicitSet(Wire set)
public boolean needsToBeClocked()
needsToBeClocked
in interface Clockable
public boolean isReadyToBeAsynchronouslyScheduled()
public boolean usesExplicitControl()
public boolean explicitControlOnPropagateList()
public boolean behavioralModelIsAvailable()
behavioralModelIsAvailable
in class Cell
protected boolean defaultSimulationModelIsBehavioral()
defaultSimulationModelIsBehavioral
in class Cell
public final boolean hasBehaviorInClockMethod()
hasBehaviorInClockMethod
in class Cell
public final boolean hasBehaviorInPropagateMethod()
hasBehaviorInPropagateMethod
in class Cell
public boolean needsToBeAsynchronouslyScheduled()
needsToBeAsynchronouslyScheduled
in class Cell
public final boolean willUseHWUpdate(boolean flag)
willUseHWUpdate
in interface Clockable
flag
- true to use hardware, false to use software update
public final boolean willUseHWUpdate()
willUseHWUpdate
in interface Clockable
public boolean isRisingEdgeTriggered()
isRisingEdgeTriggered
in interface Clockable
public boolean isFallingEdgeTriggered()
isFallingEdgeTriggered
in interface Clockable
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |