source: sources/test_regression/24082009/system.cpp

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
7using namespace std;
8
9struct 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
40int 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.