24#ifndef __YASIMAVR_LOOP_H__
25#define __YASIMAVR_LOOP_H__
27#include "../core/sim_types.h"
28#include "../core/sim_device.h"
31#include <condition_variable>
59 const Device& device()
const;
121 void set_fast_mode(
bool fast);
154 void set_fast_mode(
bool fast);
158 bool start_transaction();
159 void end_transaction();
161 void loop_continue();
168 std::mutex m_cycle_mutex;
169 std::condition_variable m_cycle_cv;
170 std::condition_variable m_sync_cv;
171 bool m_cycling_enabled;
Common base class for simulation loops.
Definition sim_loop.h:41
State m_state
Definition sim_loop.h:65
CycleManager m_cycle_manager
Definition sim_loop.h:66
AbstractSimLoop::State state() const
Definition sim_loop.h:74
void set_state(AbstractSimLoop::State state)
Definition sim_loop.h:79
cycle_count_t cycle() const
Definition sim_loop.h:84
virtual ~AbstractSimLoop()=default
const Device & device() const
Definition sim_loop.h:94
Logger m_logger
Definition sim_loop.h:67
Logger & logger()
Definition sim_loop.h:99
Device & m_device
Definition sim_loop.h:64
State
Definition sim_loop.h:45
@ State_Step
Definition sim_loop.h:47
@ State_Running
Definition sim_loop.h:46
@ State_Stopped
Definition sim_loop.h:49
@ State_Standby
Definition sim_loop.h:48
CycleManager & cycle_manager()
Definition sim_loop.h:89
Asynchronous simulation loop It is designed when simulation need to interact with code running in ano...
Definition sim_loop.h:149
Definition sim_cycle_timer.h:134
cycle_count_t cycle() const
Returns the current cycle.
Definition sim_cycle_timer.h:184
Basic AVR device model.
Definition sim_device.h:61
Definition sim_logger.h:91
Synchronous simulation loop Basic synchronous simulation loop. It is designed for "fast" simulations ...
Definition sim_loop.h:115
void set_fast_mode(bool fast)
Set the simulation running mode: false=real-time, true=fast.
Definition sim_loop.h:132
#define YASIMAVR_BEGIN_NAMESPACE
Definition sim_globals.h:58
#define AVR_CORE_PUBLIC_API
Definition sim_globals.h:46
#define YASIMAVR_END_NAMESPACE
Definition sim_globals.h:59
YASIMAVR_BEGIN_NAMESPACE typedef long long cycle_count_t
Definition sim_types.h:40