Changeset 55 for sources/test_regression/15062006/system.cpp
- Timestamp:
- May 28, 2013, 11:17:14 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sources/test_regression/15062006/system.cpp
r1 r55 1 // QM : je ne sais ce que cherche à tester ce test 2 // Dans le doute j'applique un traitement par défaut (diff sc) avec un cout "OK" 3 1 4 #include <systemc.h> 2 5 3 #define ASSERT(x) \ 4 { errnum++; \ 5 if (!(x)) \ 6 { \ 7 cerr << "ASSERT : " #x "\n"; \ 8 exit (errnum); \ 9 } \ 10 } 6 #include "test.h" 7 11 8 12 9 using namespace std; … … 14 11 template<typename datatype> 15 12 class module_base : public sc_module { 16 public:17 sc_in_clk clk;18 sc_in<datatype> i1;19 sc_out<datatype> o1;20 sc_signal<datatype> reg1;21 13 22 private: 23 void trans_module_base () 24 { 25 } 26 void gen_module_base () 27 { 28 this->kikoo (); 29 } 30 virtual void kikoo () = 0; 14 public: 15 sc_in_clk clk; 16 sc_in<datatype> i1; 17 sc_out<datatype> o1; 18 sc_signal<datatype> reg1; 31 19 32 public: 33 SC_HAS_PROCESS(module_base); 34 module_base (sc_module_name n) : sc_module (n), 35 clk("clk"), 36 i1("i1"), 37 o1("o1"), 38 reg1("reg1") 39 { 40 SC_METHOD(trans_module_base); 41 sensitive << clk.pos(); 42 dont_initialize(); 43 SC_METHOD(gen_module_base); 44 sensitive << clk.neg(); 45 dont_initialize(); 46 } 20 private: 21 void trans_module_base() {} 22 void gen_module_base() { 23 this->kikoo (); 24 } 25 virtual void kikoo() = 0; 26 27 28 public: 29 SC_HAS_PROCESS(module_base); 30 module_base (sc_module_name n) : sc_module (n), 31 clk("clk"), i1("i1"), o1("o1"), reg1("reg1") { 32 SC_METHOD(trans_module_base); 33 sensitive << clk.pos(); 34 dont_initialize(); 35 36 SC_METHOD(gen_module_base); 37 sensitive << clk.neg(); 38 dont_initialize(); 39 } 47 40 }; 41 48 42 49 43 template<typename datatype> 50 44 class test : public module_base<datatype> { 51 public:52 sc_in<datatype> i2;53 sc_out<datatype> o2;54 sc_signal<datatype> reg2;55 45 56 private:57 void trans ()58 {59 }46 public: 47 sc_in<datatype> i2; 48 sc_out<datatype> o2; 49 sc_signal<datatype> reg2; 60 50 61 void gen () 62 { 63 } 64 virtual void kikoo () 65 { } 51 private: 52 void trans() {} 66 53 67 public: 68 SC_HAS_PROCESS(test); 69 test (sc_module_name n) : module_base<datatype> (n), 54 void gen() {} 55 56 virtual void kikoo() {} 57 58 public: 59 SC_HAS_PROCESS(test); 60 test(sc_module_name n) : module_base<datatype> (n), 70 61 i2("i2"), 71 62 o2("o2"), 72 reg2("reg2") 73 {74 SC_METHOD(trans);75 this->sensitive << this->clk.pos();76 this->dont_initialize(); 77 78 79 this->dont_initialize();80 63 reg2("reg2") { 64 SC_METHOD(trans); 65 this->sensitive << this->clk.pos(); 66 this->dont_initialize(); 67 68 SC_METHOD(gen); 69 this->sensitive << this->clk.neg(); 70 this->dont_initialize(); 71 } 81 72 }; 82 73 83 int sc_main (int argc, char *argv[])84 {85 int errnum = 0;86 sc_clock signal_clk("my_clock",1, 0.5);87 sc_signal<int> s01("s01"),88 s02("s02"),89 s03("s03"),90 s04("s04");91 74 92 test<int> test1("test1"); 93 test1.clk (signal_clk); 94 test1.i1 (s01); 95 test1.i2 (s02); 96 test1.o1 (s03); 97 test1.o2 (s04); 75 int sc_main(int argc, char * argv[]) { 76 sc_clock signal_clk("my_clock"); 77 sc_signal<int> s01("s01"), s02("s02"), s03("s03"), s04("s04"); 98 78 99 // Init & run 100 sc_start (0); 79 test<int> test1("test1"); 80 test1.clk(signal_clk); 81 test1.i1(s01); 82 test1.i2(s02); 83 test1.o1(s03); 84 test1.o2(s04); 101 85 102 return EXIT_SUCCESS; 86 // Init & run 87 sc_start(sc_time(0, sc_core::SC_NS)); 88 89 cout << "OK" << endl; 90 return EXIT_SUCCESS; 103 91 } 104 92 93 94 /* 95 # Local Variables: 96 # tab-width: 4; 97 # c-basic-offset: 4; 98 # c-file-offsets:((innamespace . 0)(inline-open . 0)); 99 # indent-tabs-mode: nil; 100 # End: 101 # 102 # vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4 103 */ 104
Note: See TracChangeset
for help on using the changeset viewer.