source: sources/test_regression/14092005/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.9 KB
Line 
1// Le test échoue
2// Par ailleurs, la référence est la trace de systemcass ; je pense qu'il faudrait changer ça
3
4#include "systemc.h"
5
6#include "test.h"
7
8
9using namespace std;
10
11struct hard : sc_module {
12    sc_in_clk       clk;
13    sc_in<bool>     resetn;
14    sc_in <int>     i1;
15    sc_out<int>     o1;
16    sc_signal <int> r1;
17
18    void fg() {
19        o1 = r1;
20    }
21
22    void ft() {
23        if (resetn.read()) {
24            r1 = i1;
25        }
26        else {
27            r1 = 0x0;
28        }
29    }
30
31    SC_HAS_PROCESS(hard);
32
33    hard(sc_module_name) {
34        SC_METHOD(ft);
35        sensitive << clk.pos();
36        dont_initialize();
37
38        SC_METHOD(fg);
39        sensitive << clk.neg();
40        dont_initialize();
41    }
42};
43
44
45int sc_main (int argc, char ** argv) {
46    sc_clock clk1("clk1", 1, 0.5, 0, true);
47    sc_signal<bool> resetn;
48    sc_signal<int> s[10];
49    hard a("a");
50
51    a.clk   (clk1);
52    a.resetn(resetn);
53
54    a.i1(s[0]);
55    a.o1(s[1]);
56
57    /* Open trace file */
58    sc_trace_file *system_trace_file;
59    system_trace_file = sc_create_vcd_trace_file ("trace_file");
60
61    /* clks waveforms are always useful */
62    sc_trace(system_trace_file, resetn, "resetn");
63    sc_trace(system_trace_file, s[0], "i1");
64    sc_trace(system_trace_file, s[1], "o1");
65    sc_trace(system_trace_file, clk1, "clk1");
66
67    /* initilization */
68    sc_start(sc_time(0, sc_core::SC_NS));
69
70    s[0] = 0;
71    resetn = 0;
72
73    sc_start(sc_time(5, sc_core::SC_NS));
74
75    s[0] = 0x7B;
76    resetn = 1;
77
78    sc_start(sc_time(1, sc_core::SC_NS));
79
80    for (int i = 0; i < 10; i++) {
81        s[0] = i;
82        sc_start(sc_time(1, sc_core::SC_NS));
83        ASSERT(s[1].read() == i);
84    }
85
86    return 0;
87}
88
89
90/*
91# Local Variables:
92# tab-width: 4;
93# c-basic-offset: 4;
94# c-file-offsets:((innamespace . 0)(inline-open . 0));
95# indent-tabs-mode: nil;
96# End:
97#
98# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
99*/
100
Note: See TracBrowser for help on using the repository browser.