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

Code cleanup.

Add --dynamiclink option to systemcass executable.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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}
Note: See TracChangeset for help on using the changeset viewer.