source: sources/test_regression/24082009/system.cpp @ 55

Last change on this file since 55 was 55, checked in by meunier, 11 years ago

Tried to clean the test_regression directory:

  • Code formatting
  • Supressed warnings
  • Made comprehensible outputs
  • Factorized Makefiles

There's still a lot to do (many tests don't pass for either good or bad reasons)

File size: 1.3 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    A a("a");
45    A b("b");
46
47    a.clk(signal_clk);
48    b.clk(signal_clk);
49
50    a.i1(s1);
51    a.o1(s2);
52
53    b.i1(s3);
54    b.o1(s4);
55
56    // Init & run
57    sc_start(sc_time(0, sc_core::SC_NS));
58
59    s1.write(1);
60
61    sc_start(sc_time(100000, sc_core::SC_NS));
62
63    cout << s1.read() << endl;
64    cout << s2.read() << endl;
65
66    return EXIT_SUCCESS;
67}
68
69
70/*
71# Local Variables:
72# tab-width: 4;
73# c-basic-offset: 4;
74# c-file-offsets:((innamespace . 0)(inline-open . 0));
75# indent-tabs-mode: nil;
76# End:
77#
78# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
79*/
80
Note: See TracBrowser for help on using the repository browser.