void target1() { sc_assert(count == 0); ch2 = sc_spawn(sc_bind(&Top::child2, this)); ch3 = sc_spawn(sc_bind(&Top::child3, this)); wait(ch2.terminated_event() & ch3.terminated_event()); f5 = 1; }
void child9() { gch12 = sc_spawn(sc_bind(&Top::grandchild12, this)); gch13 = sc_spawn(sc_bind(&Top::grandchild13, this)); try { wait(20, SC_NS); } catch (std::exception e) { f14 = 1; sc_assert( sc_time_stamp() == sc_time(210, SC_NS) ); } wait(gch12.terminated_event() & gch13.terminated_event()); }
void child8() { gch10 = sc_spawn(sc_bind(&Top::grandchild10, this)); gch11 = sc_spawn(sc_bind(&Top::grandchild11, this)); try { wait(20, SC_NS); } catch (std::exception e) { f13 = 1; sc_assert( sc_time_stamp() == sc_time(210, SC_NS) ); } wait(gch10.terminated_event() & gch11.terminated_event()); }
void target7() { wait(200, SC_NS); count = 11; ch8 = sc_spawn(sc_bind(&Top::child8, this)); ch9 = sc_spawn(sc_bind(&Top::child9, this)); try { wait(20, SC_NS); } catch (std::exception e) { sc_assert( sc_time_stamp() == sc_time(210, SC_NS) ); } wait(ch8.terminated_event() & ch9.terminated_event()); sc_assert( sc_time_stamp() == sc_time(214, SC_NS) ); f12 = 1; }
void target4() { if (count == 0) { wait(100, SC_NS); count = 9; ch5 = sc_spawn(sc_bind(&Top::child5, this)); ch6 = sc_spawn(sc_bind(&Top::child6, this)); } else // Hard reset { sc_assert( sc_time_stamp() == sc_time(110, SC_NS) ); f11 = 1; } wait(ch5.terminated_event() & ch6.terminated_event()); f6 = 1; }
void T1() { wait(1, SC_NS); t2a = sc_spawn(sc_bind(&Top::T2, this)); t2b = sc_spawn(sc_bind(&Top::T2, this)); wait(1, SC_NS); sc_assert( t2a.valid() ); sc_assert( t2b.valid() ); std::vector<sc_object*> children = t1.get_child_objects(); sc_assert( children.size() == 2); sc_event_and_list and_list = t2a.terminated_event() & t2b.terminated_event(); wait( and_list ); sc_assert( t2a.valid() ); sc_assert( t2a.terminated() ); sc_assert( t2b.valid() ); sc_assert( t2b.terminated() ); sc_assert( sc_time_stamp() == sc_time(3, SC_NS) ); }