orca-sim
|
This class implements an event queue to schedule and execute hardware modules. More...
#include <Engine.hpp>
Public Member Functions | |
Engine () | |
Default constructor, takes no parameters. More... | |
SimulationTime | Run (SimulationTime time=100000) |
Executes the simulator until the internal clock reaches <time> cycles. More... | |
SimulationTime | GetGlobalTime () |
Gets the current global time. More... | |
SimulationTime | GetEpochs () |
Gets the number of cycles to simulate before reseting the simulation clock. More... | |
SimulationTime | NextEpoch () |
Resets the simulation clock and advance simulation to the next epoch. More... | |
void | Schedule (const Event &e) |
Adds an event to the simulation queue. More... | |
~Engine () | |
Destructor. More... | |
Private Member Functions | |
void | executeNext () |
execute event at top of event queue More... | |
Private Attributes | |
SimulationTime | _epochs |
number of cycles to simulate before reseting the queue More... | |
std::priority_queue< Event > | _queue |
queue that stores all events More... | |
SimulationTime | _globalTime |
The global clock, stores current simulation time. More... | |
SimulationTime | _timeout |
max time the simulation can reach More... | |
This class implements an event queue to schedule and execute hardware modules.
The <priority_queue> from the std lib is used to sort elements by time.
Definition at line 46 of file Engine.hpp.
Engine::Engine | ( | ) |
Default constructor, takes no parameters.
Defaul constructor.
Definition at line 34 of file Engine.cpp.
Engine::~Engine | ( | ) |
|
private |
execute event at top of event queue
SimulationTime Engine::GetEpochs | ( | ) |
Gets the number of cycles to simulate before reseting the simulation clock.
Definition at line 115 of file Engine.cpp.
SimulationTime Engine::GetGlobalTime | ( | ) |
Gets the current global time.
Definition at line 110 of file Engine.cpp.
SimulationTime Engine::NextEpoch | ( | ) |
Resets the simulation clock and advance simulation to the next epoch.
Generate the next epoch for a simulation session.
Definition at line 81 of file Engine.cpp.
SimulationTime Engine::Run | ( | SimulationTime | time = 100000 | ) |
Executes the simulator until the internal clock reaches <time> cycles.
Runs an epoch of simulation.
time | Maximum cycles to simulate |
time | Number of cycles to run |
Definition at line 46 of file Engine.cpp.
void Engine::Schedule | ( | const Event & | e | ) |
Adds an event to the simulation queue.
Schedule an event to run in a certain period of time.
Definition at line 122 of file Engine.cpp.
|
private |
number of cycles to simulate before reseting the queue
Definition at line 49 of file Engine.hpp.
|
private |
The global clock, stores current simulation time.
Definition at line 55 of file Engine.hpp.
|
private |
queue that stores all events
Definition at line 52 of file Engine.hpp.
|
private |
max time the simulation can reach
Definition at line 58 of file Engine.hpp.