ptolemy.actor.lib.vhdl
Class IntegerCounter
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.vhdl.FixTransformer
ptolemy.actor.lib.vhdl.SynchronousFixTransformer
ptolemy.actor.lib.vhdl.IntegerCounter
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class IntegerCounter
- extends SynchronousFixTransformer
A class for a integer counter.
- Since:
- Ptolemy II 6.0
- Version:
- $Id: IntegerCounter.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Man-Kit Leung
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Method Summary |
void |
attributeChanged(Attribute attribute)
Override the base class to determine which function is being
specified. |
void |
fire()
Consume at most one token from each input and update the
counter appropriately. |
void |
initialize()
Reset the count of inputs to zero. |
boolean |
postfire()
Record the most recent output count as the actual count. |
void |
preinitialize()
Override the base class to declare that the enable and
reset ports do not depend on the output in a firing. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, iterate, newReceiver, outputPortList, prefire, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup |
Methods inherited from class ptolemy.kernel.ComponentEntity |
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
enable
public TypedIOPort enable
- The enable port. If this input port
receives a true token, then the counter is incremented.
reset
public TypedIOPort reset
- The reset port. If this port receive a true token,
the counter is reset.
width
public Parameter width
- The bit width for this counter.
hasEnable
public Parameter hasEnable
- Specify whether this counter has a enable port.
_previousCount
private int _previousCount
- The internal state of the previous count.
_currentCount
private int _currentCount
- The internal state of the current count.
IntegerCounter
public IntegerCounter(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- Construct an actor with the given container and name.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.
attributeChanged
public void attributeChanged(Attribute attribute)
throws IllegalActionException
- Override the base class to determine which function is being
specified.
- Overrides:
attributeChanged
in class SynchronousFixTransformer
- Parameters:
attribute
- The attribute that changed.
- Throws:
IllegalActionException
IllegalActionException
- If the function is not recognized.
NameDuplicationException
fire
public void fire()
throws IllegalActionException
- Consume at most one token from each input and update the
counter appropriately. Send the current value of the counter
to the output. If there are no input tokens available, no
output will be produced. If a token is consumed from only the
increment port the output value will be one more than
the previous output value. If a token consumed from only the
decrement port the output value will be one less than
the previous output value. If a token is consumed from both
input ports, then the output value will be the same as the
previous output value. If the fire method is invoked multiple
times in one iteration, then only the input read on the last
invocation in the iteration will affect future outputs of the
counter.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- If there is no director.
initialize
public void initialize()
throws IllegalActionException
- Reset the count of inputs to zero.
- Specified by:
initialize
in interface Initializable
- Overrides:
initialize
in class SynchronousFixTransformer
- Throws:
IllegalActionException
- If the parent class throws it.
postfire
public boolean postfire()
throws IllegalActionException
- Record the most recent output count as the actual count.
- Specified by:
postfire
in interface Executable
- Overrides:
postfire
in class AtomicActor
- Returns:
- True if execution can continue into the next iteration.
- Throws:
IllegalActionException
- If the base class throws it.
preinitialize
public void preinitialize()
throws IllegalActionException
- Override the base class to declare that the enable and
reset ports do not depend on the output in a firing.
- Specified by:
preinitialize
in interface Initializable
- Overrides:
preinitialize
in class SynchronousFixTransformer
- Throws:
IllegalActionException
- Not thrown in this base class.