test01.cpp revision 12855:588919e0e4aa
1#include "systemc.h"
2#include "sc_barrier.h"
3using sc_dp::sc_barrier;
4
5SC_MODULE(X)
6{
7	SC_CTOR(X)
8	{
9		sc_thread_handle last_thread;
10
11		SC_THREAD(a);
12		SC_THREAD(b);
13		SC_THREAD(c);
14
15		m_barrier.initialize(3);
16	}
17	void a()
18	{
19		wait(5.0, SC_NS);
20		m_barrier.wait();
21		cout << sc_time_stamp() << " - a" << endl;
22	}
23	void b()
24	{
25		wait(11.0, SC_NS);
26		m_barrier.wait();
27		cout << sc_time_stamp() << " - b" << endl;
28	}
29	void c()
30	{
31		m_barrier.wait();
32		cout << sc_time_stamp() << " - c" << endl;
33	}
34	sc_barrier   m_barrier;
35};
36
37int sc_main( int argc, char* argv[] )
38{
39	sc_clock clock;
40	X x("x");
41
42	sc_start(1000, SC_NS);
43
44	cerr << "Program completed" << endl;
45	return 0;
46}
47
48