28 sc_core::sc_time m_next_time;
31 sc_core::sc_time get_next_time()
33 if (status != RUNNING)
return sc_core::SC_ZERO_TIME;
35 sc_core::sc_time
quantum = tlm_utils::tlm_quantumkeeper::get_global_quantum();
36 sc_core::sc_time
next_event = sc_core::sc_time_to_pending_activity();
38 if (sc_core::sc_pending_activity_at_current_time()) {
39 SCP_INFO(
"Libgssync") <<
"Pending activity now returning SC_ZERO_TIME";
41 return sc_core::SC_ZERO_TIME;
42 }
else if (sc_core::sc_pending_activity_at_future_time()) {
44 SCP_INFO(
"Libgssync") <<
"Pending activity returning " <<
ret.to_string();
52 void get_time_from_systemc()
54 m_next_time = get_next_time();
58 virtual sc_core::sc_time time_to_sync()
override
61 return get_next_time();
72 sc_core::sc_spawn_options
opt;
74 opt.set_sensitivity(&m_time_ev);
75 opt.dont_initialize();
76 sc_core::sc_spawn(
sc_bind(&tlm_quantumkeeper_multi_rolling::get_time_from_systemc,
this),
"get_time_from_sysc",