hades.simulator
Class VhdlBatchSimKernel

java.lang.Object
  extended byhades.simulator.SimKernel
      extended byhades.simulator.VhdlSimKernel
          extended byhades.simulator.VhdlBatchSimKernel
All Implemented Interfaces:
ContextToolTip, java.lang.Runnable, Simulatable

public class VhdlBatchSimKernel
extends VhdlSimKernel
implements java.lang.Runnable

A simulation engine with VHDL-like semantics. VhdlBatchSimKernel implements a discrete-event 2-list delta-delay simulation engine that supports VHDL-like semantics: during simulation, the simulator collects all events scheduled at the same simulation time, then executes all pending signal assignments, before continuing with the next simulation cycle.

Similar to RealTimeSimKernel, the simulation will not run faster than (approximately) real time, to allow for visualization and animation.


Nested Class Summary
 
Nested classes inherited from class hades.simulator.VhdlSimKernel
VhdlSimKernel.DeleteAllEventsFromSourceCommand, VhdlSimKernel.NOP
 
Field Summary
(package private) static java.lang.String versionString
           
 
Fields inherited from class hades.simulator.VhdlSimKernel
COLLECT_CYCLE, delta_resync_iterations, eventTime, EXECUTE_CYCLE, global_errors, IDLE_CYCLE, lastSyncTime, macroState, microState, n_max_pending, n_resync_iterations, PENDING_ARRAY_SIZE, pendingArrayIndex, pendingEventArray, pendingEventTargetArray, realTime, RECYCLE_ARRAY_SIZE, recycleEventArray, recycleIndex, t_sleep, t0, t1
 
Fields inherited from class hades.simulator.SimKernel
commandQueue, console, controlPanel, debug, design, ELABORATE, endTime, eventList, n_interactive, n_interactive_transferred, n_iterations, n_processed, n_scheduled, n_simulators, name, painter, PAUSED, RESET, runner, RUNNING, shouldStop, simTime, simulatorID, SINGLESTEP, state, STOPPED
 
Constructor Summary
VhdlBatchSimKernel()
          constructor for an so far idle simulation engine
 
Method Summary
(package private)  void checkInteractiveEvents()
           
(package private)  void checkResync()
          check whether we need to re-synchronize simulation time and real time.
(package private)  void collectEvents()
           
(package private)  void simulation()
          simulation: for each iteration, we first check and handle interactive events.
 java.lang.String toString()
          standard identification method
 
Methods inherited from class hades.simulator.VhdlSimKernel
addPendingEvent, addRecycleableEvent, deleteAllEventsFromSource, executeAllPendingEvents, executePendingEvent, initializeSimulator, printStatus, reallocatePendingEventArrays, reallocateRecycleEventArrays, recycleEvents, resync, run, runForever, scheduleInteractiveEvent, sleep
 
Methods inherited from class hades.simulator.SimKernel
checkClearWaveforms, continueSimulation, dbg, elaborate, elaborateComponents, evaluate, executeSingleStep, getDebug, getEventList, getNumberOfProcessedEvents, getNumberOfScheduledEvents, getSimTime, getState, getSyncPainter, getToolTip, hasEvents, isPaused, isReset, isRunning, isSingleStep, main, message, pauseSimulation_NEW, pauseSimulation, printNextPendingEvent, processPendingRepaints, run_debug, runFor, scheduleEvent, scheduleWakeup, setConsole, setControlPanel, setDebug, setDesign, setName, setSyncPainter, singleStep, stopSimulation_NEW, stopSimulation, usage
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.lang.Runnable
run
 

Field Detail

versionString

static java.lang.String versionString
Constructor Detail

VhdlBatchSimKernel

public VhdlBatchSimKernel()
constructor for an so far idle simulation engine

Method Detail

simulation

void simulation()
simulation: for each iteration, we first check and handle interactive events. Next, we check simulation and real-time and re-synchronize, if necessary.

Finally, we collect and execute the events.

Overrides:
simulation in class VhdlSimKernel

checkInteractiveEvents

void checkInteractiveEvents()
Overrides:
checkInteractiveEvents in class VhdlSimKernel

checkResync

void checkResync()
check whether we need to re-synchronize simulation time and real time. Currently, this is done after every n_resync_iterations cycles, or every 0.5 seconds of real time.

Overrides:
checkResync in class VhdlSimKernel

collectEvents

void collectEvents()
Overrides:
collectEvents in class VhdlSimKernel

toString

public java.lang.String toString()
standard identification method

Overrides:
toString in class VhdlSimKernel