Changeset 35 for sources/test_regression


Ignore:
Timestamp:
Jun 29, 2009, 6:03:59 PM (15 years ago)
Author:
buchmann
Message:

Code cleanup.

Add --dynamiclink option to systemcass executable.

Location:
sources/test_regression
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • sources/test_regression/05042006/system.cpp

    r1 r35  
    11#include <systemc.h>
    2 
    3 #define ASSERT(x) \
    4   { errnum++; \
    5     if (!(x)) \
    6     { \
    7     cerr << "ASSERT : " #x "\n"; \
    8     exit (errnum); \
    9     } \
    10   }
    112
    123using namespace std;
    134
    145struct test : sc_module {
    15         sc_in_clk                       clk;
     6  sc_in_clk                       clk;
    167  sc_in<int>                      i1;
    178  sc_out<int>                     o1;
     
    3627
    3728  SC_HAS_PROCESS(test);
    38         test (sc_module_name n) : sc_module (n),
     29  test (sc_module_name n) : sc_module (n),
    3930    clk("clk"),
    4031    i1("i1"),
     
    4435    reg2("reg2")
    4536  {
    46                 SC_METHOD(trans);
    47                 sensitive << clk.pos();
     37    SC_METHOD(trans);
     38    sensitive << clk.pos();
    4839    dont_initialize();
    49                 SC_METHOD(gen);
    50                 sensitive << clk.neg();
     40    SC_METHOD(gen);
     41    sensitive << clk.neg();
    5142    dont_initialize();
    52         };
     43  };
    5344};
    5445
    5546int sc_main (int argc, char *argv[])
    5647{
    57   int errnum = 0;
    58         sc_clock        signal_clk("my_clock",1, 0.5);
     48  sc_clock        signal_clk("my_clock",1, 0.5);
    5949  sc_signal<int>     s01("s01");
    6050  sc_signal<int>     s02("s02");
     
    6757  test1.o2 (s03);
    6858
    69         // Init & run
    70         sc_start (0);
     59  // Init & run
     60  sc_start (0);
    7161
    7262  sc_start (10);
    7363
    74         return EXIT_SUCCESS;
     64  return EXIT_SUCCESS;
    7565}
    7666
  • sources/test_regression/07122006/system2.cpp

    r34 r35  
    3434  sc_signal<int>  reg;
    3535
    36   void transition ();
     36  virtual void transition ();
    3737  void gen_moore  ();
    3838  void gen_mealy  ();
     
    8989
    9090  cout << "Test OK.\n";
    91         return EXIT_SUCCESS;
     91  return EXIT_SUCCESS;
    9292}
  • sources/test_regression/16112005/system.cpp

    r1 r35  
    1 #include "systemc.h"
     1#include <systemc.h>
    22#include <iostream>
    33#include <string>
     
    2020  sc_in<int>     i;
    2121  sc_out<int>    o;
    22         internal_model (sc_module_name n) : sc_module (n),
     22  internal_model (sc_module_name n) : sc_module (n),
    2323    i("i"),
    24                 o("o")
     24    o("o")
    2525  {
    2626  }
     
    3131  sc_in<int>     i1, i2, i3;
    3232  sc_out<int>    o1, o2, o3;
    33         sc_signal<int> r1, r2;
     33  sc_signal<int> r1, r2;
    3434  internal_model internal;
    35         model (sc_module_name n) : sc_module (n),
     35
     36  model (sc_module_name n) : sc_module (n),
    3637    i1("i1"), i2("i2"), i3("i3"),
    37                 o1("o1"), o2("o2"), o3("o3"),
    38                 r1("r1"), r2("r2"),
     38    o1("o1"), o2("o2"), o3("o3"),
     39    r1("r1"), r2("r2"),
    3940    internal ("internal")
    4041  {
  • sources/test_regression/16122005/system.cpp

    r18 r35  
    1 #include "systemc.h"
     1#include <systemc.h>
    22#include <iostream>
    33#include <fstream>
  • sources/test_regression/17032005/Makefile

    r15 r35  
    1414
    1515system-23.vcd : system_systemcass.x
    16         ./system_systemcass.x system 23
     16        ./system_systemcass.x --nodynamiclink system 23
    1717        tail -n +8 system.vcd > system-23.vcd
    1818        rm system.vcd
  • sources/test_regression/17032005/system.cpp

    r18 r35  
    2020  sc_in<bool>     clk;
    2121  sc_in<bool>     resetn;
    22         sc_signal<sc_uint<6>     > ui6;
    23         sc_signal<sc_uint<16>    > ui16;
    24         sc_signal<sc_uint<31>    > ui31;
    25         sc_signal<sc_uint<32>    > ui32;
     22  sc_signal<sc_uint<6>     > ui6;
     23  sc_signal<sc_uint<16>    > ui16;
     24  sc_signal<sc_uint<31>    > ui31;
     25  sc_signal<sc_uint<32>    > ui32;
    2626  sc_signal<sc_uint<64>    > ui64;
    2727  sc_signal<sc_int<6>      > i6;
     
    4545      ui31  = 0x100;
    4646      ui32  = 0x211;
    47       ui64  = 0xABCF1234;
     47      ui64  = 0xABCF1234ULL;
    4848      i6    = 0xF;
    4949      i16   = 0x3F;
    5050      i31   = 0x11112222;
    5151      i32   = 0x43214321;
    52       i64   = 0x4444abcd;
     52      i64   = 0x4444abcdULL;
    5353//      bui64 = 0xFFFFFFFF;
    5454//      bui64b= 0xFFFFFFFF;
     
    9191int sc_main (int argc, char *argv[])
    9292{
    93         int errnum = 1;
    94         cout << "Tests ok\n";
     93  int errnum = 1;
     94  cout << "Tests ok\n";
    9595  sc_clock        clk("clk");
    9696  sc_signal<bool> resetn("resetn");
     
    100100  test.resetn (resetn);
    101101 
    102         sc_trace_file *tf;
     102  sc_trace_file *tf;
    103103
    104104  if (argc != 3)
     
    109109
    110110  string trace_filename = argv[1];
    111         tf = sc_create_vcd_trace_file (trace_filename.c_str());
     111  tf = sc_create_vcd_trace_file (trace_filename.c_str());
    112112  sc_trace (tf, test.ui6  , "ui6"  );
    113113  sc_trace (tf, test.ui16 , "ui16" );
     
    139139  sc_start (20);
    140140
    141   sc_close_vcd_trace_file (tf);
    142 
    143141#if 1
    144142  cout << "0x3f"            << " 0x" << hex << (unsigned int) (sc_uint<6> )test.ui6   << endl;
     
    148146#endif
    149147  cerr << test.ui6.read() << endl;
     148
    150149  union t {
    151150    int v1:3;
    152151    int v2;
    153152  };
     153
    154154  t t1,t2;
    155155  t1.v1 = 7;
     
    161161  ASSERT(test.ui31.read() == 0x100fffff);
    162162  ASSERT(test.ui32.read() == 0x211fffff);
    163   long long unsigned int ui64_reference = 0xabcf1234;
     163
     164  long long unsigned int ui64_reference = 0xabcf1234ULL;
    164165  ui64_reference <<= 20;
    165   ui64_reference += 0xfffff;
     166  ui64_reference += 0xfffffULL;
    166167#if 0
    167168  cout << "0xffffffff"      << " 0x" << hex << (int) (sc_int<6>)test.i6    << endl;
     
    170171  cout << "0x4444abcdfffff" << " 0x" << hex << (long long signed int) (sc_int<64>)test.i64   << endl;   
    171172#endif
     173
    172174  ASSERT(test.ui64.read() == ui64_reference);
    173175  ASSERT(test.i6.read() == (sc_int<6>)~0);
    174176  ASSERT(test.i31.read() == 0x222fffff);
    175177  ASSERT(test.i32.read() == 0x321fffff)
    176   long long signed int i64_reference = 0x4444abcd;
     178
     179  long long signed int i64_reference = 0x4444abcdULL;
    177180  i64_reference <<= 20;
    178   i64_reference += 0xfffff;
     181  i64_reference += 0xfffffULL;
    179182  ASSERT(test.i64.read() == i64_reference);
     183
    180184//  cout << "0x4294967315" << " 0x" << hex << test.bui64 << endl;   
    181185  cout << "Test OK.\n";
    182         return EXIT_SUCCESS;
     186
     187  sc_close_vcd_trace_file (tf);
     188
     189  return EXIT_SUCCESS;
    183190}
  • sources/test_regression/25032005/system.cpp

    r1 r35  
    44
    55using namespace std;
    6        
     6 
    77struct A : sc_module {
    8         sc_in_clk                       clk;
    9         sc_out<bool>                    o1;
     8  sc_in_clk                       clk;
     9  sc_out<bool>                    o1;
    1010
    11         void eval () {
     11  void eval () {
    1212    o1 = (rand()%2) == 0;
    13         }
     13  }
    1414
    15         SC_CTOR (A) : clk ("clk"), o1("o1") {
    16                 SC_METHOD(eval);
    17                 sensitive << clk.neg();
     15  SC_CTOR (A) : clk ("clk"), o1("o1") {
     16    SC_METHOD(eval);
     17    sensitive << clk.neg();
    1818#ifdef SYSTEMCASS_SPECIFIC
    19 //              s1();
     19//    s1();
    2020#endif
    21         };
     21  };
    2222};
    2323
    2424struct B : sc_module {
    25         sc_in_clk                       clk;
    26         sc_in<bool>                     i1;
    27         sc_in<bool>                     i2;
    28         sc_out<bool>                    o1;
    29         sc_out<bool>                    o2;
     25  sc_in_clk                       clk;
     26  sc_in<bool>                     i1;
     27  sc_in<bool>                     i2;
     28  sc_out<bool>                    o1;
     29  sc_out<bool>                    o2;
    3030
    31         void eval1 () {
     31  void eval1 () {
    3232    o1 = ~i1;
    33         }
    34         void eval2 () {
     33  }
     34  void eval2 () {
    3535    o2 = ~i2;
    36         }
     36  }
    3737
    38         SC_CTOR (B) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2") {
    39                 SC_METHOD(eval1);
    40                 sensitive << clk.neg();
    41                 sensitive << i1;
     38  SC_CTOR (B) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2") {
     39    SC_METHOD(eval1);
     40    sensitive << clk.neg();
     41    sensitive << i1;
    4242#ifdef SYSTEMCASS_SPECIFIC
    43                 o1(i1);
     43    o1(i1);
    4444#endif
    45                 SC_METHOD(eval2);
    46                 sensitive << clk.neg();
    47                 sensitive << i2;
     45    SC_METHOD(eval2);
     46    sensitive << clk.neg();
     47    sensitive << i2;
    4848#ifdef SYSTEMCASS_SPECIFIC
    49                 o2(i2);
     49    o2(i2);
    5050#endif
    51         };
     51  };
    5252};
    5353
    5454struct C : sc_module {
    55         sc_in_clk                       clk;
    56         sc_in<bool>                     i1;
    57         sc_in<bool>                     i2;
    58         sc_out<bool>                    o1;
     55  sc_in_clk                       clk;
     56  sc_in<bool>                     i1;
     57  sc_in<bool>                     i2;
     58  sc_out<bool>                    o1;
    5959
    60         void eval1 () {
     60  void eval1 () {
    6161    o1 = i1 ^ i2;
    62         }
     62  }
    6363
    64         SC_CTOR (C) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2") {
    65                 SC_METHOD(eval1);
    66                 sensitive << clk.neg();
    67                 sensitive << i1 << i2;
     64  SC_CTOR (C) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2") {
     65    SC_METHOD(eval1);
     66    sensitive << clk.neg();
     67    sensitive << i1 << i2;
    6868#ifdef SYSTEMCASS_SPECIFIC
    69                 o1(i1);
    70                 o1(i2);
     69    o1(i1);
     70    o1(i2);
    7171#endif
    72         };
     72  };
    7373};
    7474
    7575struct D : sc_module {
    76         sc_in_clk                       clk;
    77         sc_out<bool>                    o1;
     76  sc_in_clk                       clk;
     77  sc_out<bool>                    o1;
    7878
    79         void eval () {
     79  void eval () {
    8080    o1 = (rand()%2) == 0;
    81         }
     81  }
    8282
    83         SC_CTOR (D) : clk ("clk"), o1("o1") {
    84                 SC_METHOD(eval);
    85                 sensitive << clk.neg();
     83  SC_CTOR (D) : clk ("clk"), o1("o1") {
     84    SC_METHOD(eval);
     85    sensitive << clk.neg();
    8686#ifdef SYSTEMCASS_SPECIFIC
    87 //              s1();
     87//    s1();
    8888#endif
    89         };
     89  };
    9090};
    9191
    9292int sc_main (int argc, char *argv[])
    9393{
    94         sc_clock                     signal_clk("my_clock",1, 0.5);
    95         sc_signal<bool>              s1("s1"),s2("s2"),s3("s3"),s4("s4"),s5("s5");
     94  sc_clock                     signal_clk("my_clock",1, 0.5);
     95  sc_signal<bool>              s1("s1"),s2("s2"),s3("s3"),s4("s4"),s5("s5");
    9696
    97         A      a("a");
    98         B      b("b");
    99         C      c("c");
    100         D      d("d");
    101        
    102         a.clk         (signal_clk);
    103         b.clk         (signal_clk);
    104         c.clk         (signal_clk);
    105         d.clk         (signal_clk);
    106        
    107         a.o1          (s1);
    108         b.i1          (s1);
    109                
    110         d.o1          (s2);
    111         c.i2          (s2);
     97  A      a("a");
     98  B      b("b");
     99  C      c("c");
     100  D      d("d");
     101 
     102  a.clk         (signal_clk);
     103  b.clk         (signal_clk);
     104  c.clk         (signal_clk);
     105  d.clk         (signal_clk);
     106 
     107  a.o1          (s1);
     108  b.i1          (s1);
     109   
     110  d.o1          (s2);
     111  c.i2          (s2);
    112112
    113         b.o1          (s3);
    114         c.i1          (s3);
    115        
    116         c.o1          (s4);
    117         b.i2          (s4);
    118        
    119         b.o2          (s5);
    120        
    121         // Init & run
    122         sc_initialize ();
     113  b.o1          (s3);
     114  c.i1          (s3);
     115 
     116  c.o1          (s4);
     117  b.i2          (s4);
     118 
     119  b.o2          (s5);
     120 
     121  // Init & run
     122  sc_initialize ();
    123123
    124124  if (argc == 1)
     
    128128  }
    129129
    130         chrono_t chrono;
    131         chrono.start ();
     130  chrono_t chrono;
     131  chrono.start ();
    132132
    133133  sc_start (atoi(argv[1]));
    134134
    135         chrono.stop ();
    136         unsigned int t = chrono;
    137         cout << "Time elapsed (sec) : " << t << endl;
    138         cout << "Cycles done        : " << sc_simulation_time () << endl;
    139         cout << "Performance        : " << sc_simulation_time () / t << endl;
    140         printf("\nPress <RETURN> to exit simulation.");
    141         char buf_ret[2];
    142         cin.getline(buf_ret,1);
    143         return EXIT_SUCCESS;
     135  chrono.stop ();
     136  unsigned int t = chrono;
     137  cout << "Time elapsed (sec) : " << t << endl;
     138  cout << "Cycles done        : " << sc_simulation_time () << endl;
     139  cout << "Performance        : " << sc_simulation_time () / t << endl;
     140  printf("\nPress <RETURN> to exit simulation.");
     141  char buf_ret[2];
     142  cin.getline(buf_ret,1);
     143  return EXIT_SUCCESS;
    144144}
  • sources/test_regression/28102005/system.cpp

    r23 r35  
    1 #include "systemc.h"
     1#include <systemc.h>
    22#include <iostream>
    33#include <cstring>
  • sources/test_regression/Makefile

    r18 r35  
    3030# 05042006  : check number of writings into each out port
    3131#             check reading from an sc_out port
     32#             (test check_multiwriting2port option)
    3233# 02052006  : check sc_uint, sc_int, sc_signal<X> when X is double, char,
    3334#             signed int, unsigned int and so on. (little/big endianness test)
     
    3839# 07122006  : check if we can declare an undefined external function as
    3940#             a sc_method.
    40 #             check a virtual method as a sc_method => segmentation fault
     41#             check a virtual method as a sc_method
    4142#             (Unable to check if sc_method is a virtual one)
    4243# 20122006  : check Petrot's scheduling (CASS, quasi static)
     
    4647# 23032007  : check multiple execution on the same computer
    4748# 15042009  : check sc_uint operators (==, =, <<=, +=)
     49#             in some cases, such as a compairison, the developper has to use
     50#             sc_signal<T>::read() method to explicitly read a sc_signal.
    4851
    4952## Uncomment the following variable if you want to compile and run the
Note: See TracChangeset for help on using the changeset viewer.