source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/SelfTest/src/test.cpp @ 85

Last change on this file since 85 was 85, checked in by rosiere, 16 years ago
  • Ifetch_unit : systemC test ok
  • modif shell script and makefile.tools : SHELL=/bin/bash
  • Property svn:keywords set to Id
File size: 5.6 KB
Line 
1/*
2 * $Id: test.cpp 85 2008-05-14 13:09:48Z rosiere $
3 *
4 * [ Description ]
5 *
6 * Test
7 */
8
9#define NB_ITERATION  1
10#define CYCLE_MAX     (128*NB_ITERATION)
11
12#include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/SelfTest/include/test.h"
13#include "Common/include/Test.h"
14#include "Behavioural/include/Allocation.h"
15
16void test (string name,
17           morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::ifetch_unit_glue::Parameters * _param)
18{
19  msg(_("<%s> : Simulation SystemC.\n"),name.c_str());
20
21#ifdef STATISTICS
22  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,50);
23#endif
24
25  Ifetch_unit_Glue * _Ifetch_unit_Glue = new Ifetch_unit_Glue
26    (name.c_str(),
27#ifdef STATISTICS
28     _parameters_statistics,
29#endif
30     _param,
31     USE_ALL);
32 
33#ifdef SYSTEMC
34  /*********************************************************************
35   * Déclarations des signaux
36   *********************************************************************/
37  string rename;
38
39  sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);         
40  sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
41
42  ALLOC_SC_SIGNAL(out_ICACHE_REQ_VAL        ,"out_ICACHE_REQ_VAL        ",Tcontrol_t);
43  ALLOC_SC_SIGNAL( in_ICACHE_REQ_ADDRESS_VAL," in_ICACHE_REQ_ADDRESS_VAL",Tcontrol_t);
44  ALLOC_SC_SIGNAL(out_ICACHE_REQ_QUEUE_VAL  ,"out_ICACHE_REQ_QUEUE_VAL  ",Tcontrol_t);
45  ALLOC_SC_SIGNAL( in_ICACHE_REQ_ACK        ," in_ICACHE_REQ_ACK        ",Tcontrol_t);
46  ALLOC_SC_SIGNAL(out_ICACHE_REQ_ADDRESS_ACK,"out_ICACHE_REQ_ADDRESS_ACK",Tcontrol_t);
47  ALLOC_SC_SIGNAL( in_ICACHE_REQ_QUEUE_ACK  ," in_ICACHE_REQ_QUEUE_ACK  ",Tcontrol_t);
48  ALLOC_SC_SIGNAL(out_ICACHE_REQ_TYPE       ,"out_ICACHE_REQ_TYPE       ",Ticache_type_t);
49  ALLOC_SC_SIGNAL(out_ICACHE_REQ_ADDRESS        ,"out_ICACHE_REQ_ADDRESS        ",Taddress_t);
50  ALLOC_SC_SIGNAL( in_ICACHE_REQ_ADDRESS_ADDRESS," in_ICACHE_REQ_ADDRESS_ADDRESS",Taddress_t);
51  ALLOC_SC_SIGNAL(out_ICACHE_REQ_QUEUE_ADDRESS  ,"out_ICACHE_REQ_QUEUE_ADDRESS  ",Taddress_t);
52  ALLOC_SC_SIGNAL( in_EVENT_VAL             ," in_EVENT_VAL             ",Tcontrol_t);
53  ALLOC_SC_SIGNAL(out_EVENT_ADDRESS_VAL     ,"out_EVENT_ADDRESS_VAL     ",Tcontrol_t);
54  ALLOC_SC_SIGNAL(out_EVENT_QUEUE_VAL       ,"out_EVENT_QUEUE_VAL       ",Tcontrol_t);
55  ALLOC_SC_SIGNAL(out_EVENT_ACK             ,"out_EVENT_ACK             ",Tcontrol_t);
56  ALLOC_SC_SIGNAL( in_EVENT_ADDRESS_ACK     ," in_EVENT_ADDRESS_ACK     ",Tcontrol_t);
57  ALLOC_SC_SIGNAL( in_EVENT_QUEUE_ACK       ," in_EVENT_QUEUE_ACK       ",Tcontrol_t);
58 
59  /********************************************************
60   * Instanciation
61   ********************************************************/
62 
63  msg(_("<%s> : Instanciation of _Ifetch_unit_Glue.\n"),name.c_str());
64
65  (*(_Ifetch_unit_Glue->in_CLOCK))        (*(in_CLOCK));
66  (*(_Ifetch_unit_Glue->in_NRESET))       (*(in_NRESET));
67
68  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue,out_ICACHE_REQ_VAL        );
69  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue, in_ICACHE_REQ_ADDRESS_VAL);
70  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue,out_ICACHE_REQ_QUEUE_VAL  );
71  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue, in_ICACHE_REQ_ACK        );
72  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue,out_ICACHE_REQ_ADDRESS_ACK);
73  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue, in_ICACHE_REQ_QUEUE_ACK  );
74  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue,out_ICACHE_REQ_ADDRESS        );
75  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue, in_ICACHE_REQ_ADDRESS_ADDRESS);
76  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue,out_ICACHE_REQ_QUEUE_ADDRESS  );
77  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue,out_ICACHE_REQ_TYPE       );
78  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue, in_EVENT_VAL             );
79  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue,out_EVENT_ADDRESS_VAL     );
80  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue,out_EVENT_QUEUE_VAL       );
81  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue,out_EVENT_ACK             );
82  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue, in_EVENT_ADDRESS_ACK     );
83  INSTANCE_SC_SIGNAL(_Ifetch_unit_Glue, in_EVENT_QUEUE_ACK       );
84
85  msg(_("<%s> : Start Simulation ............\n"),name.c_str());
86   
87  Time * _time = new Time();
88
89  /********************************************************
90   * Simulation - Begin
91   ********************************************************/
92
93  // Initialisation
94
95  const uint32_t seed = 0;
96//const uint32_t seed = static_cast<uint32_t>(time(NULL));
97
98  srand(seed);
99
100  SC_START(0);
101  LABEL("Initialisation");
102
103  LABEL("Reset");
104  in_NRESET->write(0);
105  SC_START(5);
106  in_NRESET->write(1); 
107
108  LABEL("Loop of Test");
109
110  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
111    {
112      LABEL("Iteration %d",iteration);
113
114      SC_START(1);
115    }
116
117  /********************************************************
118   * Simulation - End
119   ********************************************************/
120
121  TEST_OK ("End of Simulation");
122  delete _time;
123
124  msg(_("<%s> : ............ Stop Simulation\n"),name.c_str());
125
126  delete in_CLOCK;
127  delete in_NRESET;
128
129  delete out_ICACHE_REQ_VAL        ;
130  delete  in_ICACHE_REQ_ADDRESS_VAL;
131  delete out_ICACHE_REQ_QUEUE_VAL  ;
132  delete  in_ICACHE_REQ_ACK        ;
133  delete out_ICACHE_REQ_ADDRESS_ACK;
134  delete  in_ICACHE_REQ_QUEUE_ACK  ;
135  delete out_ICACHE_REQ_ADDRESS        ;
136  delete  in_ICACHE_REQ_ADDRESS_ADDRESS;
137  delete out_ICACHE_REQ_QUEUE_ADDRESS  ;
138  delete out_ICACHE_REQ_TYPE       ;
139  delete  in_EVENT_VAL             ;
140  delete out_EVENT_ADDRESS_VAL     ;
141  delete out_EVENT_QUEUE_VAL       ;
142  delete out_EVENT_ACK             ;
143  delete  in_EVENT_ADDRESS_ACK     ;
144  delete  in_EVENT_QUEUE_ACK       ;
145#endif
146
147  delete _Ifetch_unit_Glue;
148#ifdef STATISTICS
149  delete _parameters_statistics;
150#endif
151}
Note: See TracBrowser for help on using the repository browser.