Last change
on this file was
60,
checked in by meunier, 8 years ago
|
- Intégration des modifications de Clément,
qui a intégré la version parallélisée de systemcass
faite par Manuel.
|
File size:
1.4 KB
|
Line | |
---|
1 | |
---|
2 | #include <signal.h> |
---|
3 | |
---|
4 | #include "systemc.h" |
---|
5 | #include "test.h" |
---|
6 | |
---|
7 | using namespace std; |
---|
8 | |
---|
9 | struct A : sc_module { |
---|
10 | sc_in_clk clk; |
---|
11 | sc_in <int> i1; |
---|
12 | sc_signal <int> r1; |
---|
13 | sc_out <int> o1; |
---|
14 | |
---|
15 | void transition() { |
---|
16 | int i; |
---|
17 | for (i = 0; i < 1000; ++i); |
---|
18 | r1 = i1; |
---|
19 | } |
---|
20 | |
---|
21 | void gen_moore() { |
---|
22 | int i; |
---|
23 | for (i = 0; i < 1000; ++i); |
---|
24 | o1 = r1; |
---|
25 | } |
---|
26 | |
---|
27 | SC_CTOR (A) : clk("clk"), o1("o1") { |
---|
28 | SC_METHOD(transition); |
---|
29 | sensitive << clk.pos(); |
---|
30 | dont_initialize(); |
---|
31 | |
---|
32 | SC_METHOD(gen_moore); |
---|
33 | sensitive << clk.neg(); |
---|
34 | dont_initialize(); |
---|
35 | } |
---|
36 | |
---|
37 | }; |
---|
38 | |
---|
39 | |
---|
40 | int sc_main (int argc, char * argv[]) { |
---|
41 | sc_clock signal_clk("my_clock"); |
---|
42 | sc_signal<int> s1("s1"), s2("s2"), s3("s3"), s4("s4"); |
---|
43 | |
---|
44 | // Setup number of threads open-mp to 1 with the macro threads_omp() |
---|
45 | threads_omp(); |
---|
46 | |
---|
47 | A a("a"); |
---|
48 | A b("b"); |
---|
49 | |
---|
50 | a.clk(signal_clk); |
---|
51 | b.clk(signal_clk); |
---|
52 | |
---|
53 | a.i1(s1); |
---|
54 | a.o1(s2); |
---|
55 | |
---|
56 | b.i1(s3); |
---|
57 | b.o1(s4); |
---|
58 | |
---|
59 | // Init & run |
---|
60 | sc_start(sc_time(0, sc_core::SC_NS)); |
---|
61 | |
---|
62 | s1.write(1); |
---|
63 | |
---|
64 | sc_start(sc_time(100000, sc_core::SC_NS)); |
---|
65 | |
---|
66 | cout << s1.read() << endl; |
---|
67 | cout << s2.read() << endl; |
---|
68 | |
---|
69 | return EXIT_SUCCESS; |
---|
70 | } |
---|
71 | |
---|
72 | |
---|
73 | /* |
---|
74 | # Local Variables: |
---|
75 | # tab-width: 4; |
---|
76 | # c-basic-offset: 4; |
---|
77 | # c-file-offsets:((innamespace . 0)(inline-open . 0)); |
---|
78 | # indent-tabs-mode: nil; |
---|
79 | # End: |
---|
80 | # |
---|
81 | # vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4 |
---|
82 | */ |
---|
83 | |
---|
Note: See
TracBrowser
for help on using the repository browser.