source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/src/test.cpp @ 101

Last change on this file since 101 was 101, checked in by rosiere, 15 years ago

1) Add soc test
2) fix bug (Pc management, Decod and execute, Update prediction ...)

  • Property svn:keywords set to Id
File size: 19.5 KB
Line 
1/*
2 * $Id: test.cpp 101 2009-01-15 17:19:08Z rosiere $
3 *
4 * [ Description ]
5 *
6 * Test
7 */
8
9#define NB_ITERATION  128
10#define CYCLE_MAX     (128*NB_ITERATION)
11
12#include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/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::decod_unit::decod_queue::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  Tusage_t _usage = USE_ALL;
26
27//   _usage = usage_unset(_usage,USE_SYSTEMC              );
28//   _usage = usage_unset(_usage,USE_VHDL                 );
29//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
30//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
31//   _usage = usage_unset(_usage,USE_POSITION             );
32//   _usage = usage_unset(_usage,USE_STATISTICS           );
33//   _usage = usage_unset(_usage,USE_INFORMATION          );
34
35  Decod_queue * _Decod_queue = new Decod_queue
36    (name.c_str(),
37#ifdef STATISTICS
38     _parameters_statistics,
39#endif
40     _param,
41     _usage);
42 
43#ifdef SYSTEMC
44  if (usage_is_set(_usage,USE_SYSTEMC))
45    {
46  /*********************************************************************
47   * Déclarations des signaux
48   *********************************************************************/
49  string rename;
50
51  sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);         
52  sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
53
54  ALLOC1_SC_SIGNAL( in_DECOD_IN_VAL            ," in_DECOD_IN_VAL           ",Tcontrol_t         ,_param->_nb_inst_decod);
55  ALLOC1_SC_SIGNAL(out_DECOD_IN_ACK            ,"out_DECOD_IN_ACK           ",Tcontrol_t         ,_param->_nb_inst_decod);
56  ALLOC1_SC_SIGNAL( in_DECOD_IN_CONTEXT_ID     ," in_DECOD_IN_CONTEXT_ID    ",Tcontext_t         ,_param->_nb_inst_decod);
57  ALLOC1_SC_SIGNAL( in_DECOD_IN_DEPTH          ," in_DECOD_IN_DEPTH         ",Tdepth_t           ,_param->_nb_inst_decod);
58  ALLOC1_SC_SIGNAL( in_DECOD_IN_TYPE           ," in_DECOD_IN_TYPE          ",Ttype_t            ,_param->_nb_inst_decod);
59  ALLOC1_SC_SIGNAL( in_DECOD_IN_OPERATION      ," in_DECOD_IN_OPERATION     ",Toperation_t       ,_param->_nb_inst_decod);
60  ALLOC1_SC_SIGNAL( in_DECOD_IN_NO_EXECUTE     ," in_DECOD_IN_NO_EXECUTE    ",Tcontrol_t         ,_param->_nb_inst_decod);
61  ALLOC1_SC_SIGNAL( in_DECOD_IN_IS_DELAY_SLOT  ," in_DECOD_IN_IS_DELAY_SLOT ",Tcontrol_t         ,_param->_nb_inst_decod);
62  ALLOC1_SC_SIGNAL( in_DECOD_IN_ADDRESS        ," in_DECOD_IN_ADDRESS       ",Tgeneral_data_t    ,_param->_nb_inst_decod);
63  ALLOC1_SC_SIGNAL( in_DECOD_IN_HAS_IMMEDIAT   ," in_DECOD_IN_HAS_IMMEDIAT  ",Tcontrol_t         ,_param->_nb_inst_decod);
64  ALLOC1_SC_SIGNAL( in_DECOD_IN_IMMEDIAT       ," in_DECOD_IN_IMMEDIAT      ",Tgeneral_data_t    ,_param->_nb_inst_decod);
65  ALLOC1_SC_SIGNAL( in_DECOD_IN_READ_RA        ," in_DECOD_IN_READ_RA       ",Tcontrol_t         ,_param->_nb_inst_decod);
66  ALLOC1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RA     ," in_DECOD_IN_NUM_REG_RA    ",Tgeneral_address_t ,_param->_nb_inst_decod);
67  ALLOC1_SC_SIGNAL( in_DECOD_IN_READ_RB        ," in_DECOD_IN_READ_RB       ",Tcontrol_t         ,_param->_nb_inst_decod);
68  ALLOC1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RB     ," in_DECOD_IN_NUM_REG_RB    ",Tgeneral_address_t ,_param->_nb_inst_decod);
69  ALLOC1_SC_SIGNAL( in_DECOD_IN_READ_RC        ," in_DECOD_IN_READ_RC       ",Tcontrol_t         ,_param->_nb_inst_decod);
70  ALLOC1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RC     ," in_DECOD_IN_NUM_REG_RC    ",Tspecial_address_t ,_param->_nb_inst_decod);
71  ALLOC1_SC_SIGNAL( in_DECOD_IN_WRITE_RD       ," in_DECOD_IN_WRITE_RD      ",Tcontrol_t         ,_param->_nb_inst_decod);
72  ALLOC1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RD     ," in_DECOD_IN_NUM_REG_RD    ",Tgeneral_address_t ,_param->_nb_inst_decod);
73  ALLOC1_SC_SIGNAL( in_DECOD_IN_WRITE_RE       ," in_DECOD_IN_WRITE_RE      ",Tcontrol_t         ,_param->_nb_inst_decod);
74  ALLOC1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RE     ," in_DECOD_IN_NUM_REG_RE    ",Tspecial_address_t ,_param->_nb_inst_decod);
75  ALLOC1_SC_SIGNAL( in_DECOD_IN_EXCEPTION_USE  ," in_DECOD_IN_EXCEPTION_USE ",Texception_t       ,_param->_nb_inst_decod);
76  ALLOC1_SC_SIGNAL( in_DECOD_IN_EXCEPTION      ," in_DECOD_IN_EXCEPTION     ",Texception_t       ,_param->_nb_inst_decod);
77                                                                                                 
78  ALLOC1_SC_SIGNAL(out_DECOD_OUT_VAL           ,"out_DECOD_OUT_VAL          ",Tcontrol_t         ,_param->_nb_inst_decod);
79  ALLOC1_SC_SIGNAL( in_DECOD_OUT_ACK           ," in_DECOD_OUT_ACK          ",Tcontrol_t         ,_param->_nb_inst_decod);
80  ALLOC1_SC_SIGNAL(out_DECOD_OUT_CONTEXT_ID    ,"out_DECOD_OUT_CONTEXT_ID   ",Tcontext_t         ,_param->_nb_inst_decod);
81  ALLOC1_SC_SIGNAL(out_DECOD_OUT_DEPTH         ,"out_DECOD_OUT_DEPTH        ",Tdepth_t           ,_param->_nb_inst_decod);
82  ALLOC1_SC_SIGNAL(out_DECOD_OUT_TYPE          ,"out_DECOD_OUT_TYPE         ",Ttype_t            ,_param->_nb_inst_decod);
83  ALLOC1_SC_SIGNAL(out_DECOD_OUT_OPERATION     ,"out_DECOD_OUT_OPERATION    ",Toperation_t       ,_param->_nb_inst_decod);
84  ALLOC1_SC_SIGNAL(out_DECOD_OUT_NO_EXECUTE    ,"out_DECOD_OUT_NO_EXECUTE   ",Tcontrol_t         ,_param->_nb_inst_decod);
85  ALLOC1_SC_SIGNAL(out_DECOD_OUT_IS_DELAY_SLOT ,"out_DECOD_OUT_IS_DELAY_SLOT",Tcontrol_t         ,_param->_nb_inst_decod);
86  ALLOC1_SC_SIGNAL(out_DECOD_OUT_ADDRESS       ,"out_DECOD_OUT_ADDRESS      ",Tgeneral_data_t    ,_param->_nb_inst_decod);
87  ALLOC1_SC_SIGNAL(out_DECOD_OUT_HAS_IMMEDIAT  ,"out_DECOD_OUT_HAS_IMMEDIAT ",Tcontrol_t         ,_param->_nb_inst_decod);
88  ALLOC1_SC_SIGNAL(out_DECOD_OUT_IMMEDIAT      ,"out_DECOD_OUT_IMMEDIAT     ",Tgeneral_data_t    ,_param->_nb_inst_decod);
89  ALLOC1_SC_SIGNAL(out_DECOD_OUT_READ_RA       ,"out_DECOD_OUT_READ_RA      ",Tcontrol_t         ,_param->_nb_inst_decod);
90  ALLOC1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RA    ,"out_DECOD_OUT_NUM_REG_RA   ",Tgeneral_address_t ,_param->_nb_inst_decod);
91  ALLOC1_SC_SIGNAL(out_DECOD_OUT_READ_RB       ,"out_DECOD_OUT_READ_RB      ",Tcontrol_t         ,_param->_nb_inst_decod);
92  ALLOC1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RB    ,"out_DECOD_OUT_NUM_REG_RB   ",Tgeneral_address_t ,_param->_nb_inst_decod);
93  ALLOC1_SC_SIGNAL(out_DECOD_OUT_READ_RC       ,"out_DECOD_OUT_READ_RC      ",Tcontrol_t         ,_param->_nb_inst_decod);
94  ALLOC1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RC    ,"out_DECOD_OUT_NUM_REG_RC   ",Tspecial_address_t ,_param->_nb_inst_decod);
95  ALLOC1_SC_SIGNAL(out_DECOD_OUT_WRITE_RD      ,"out_DECOD_OUT_WRITE_RD     ",Tcontrol_t         ,_param->_nb_inst_decod);
96  ALLOC1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RD    ,"out_DECOD_OUT_NUM_REG_RD   ",Tgeneral_address_t ,_param->_nb_inst_decod);
97  ALLOC1_SC_SIGNAL(out_DECOD_OUT_WRITE_RE      ,"out_DECOD_OUT_WRITE_RE     ",Tcontrol_t         ,_param->_nb_inst_decod);
98  ALLOC1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RE    ,"out_DECOD_OUT_NUM_REG_RE   ",Tspecial_address_t ,_param->_nb_inst_decod);
99  ALLOC1_SC_SIGNAL(out_DECOD_OUT_EXCEPTION_USE ,"out_DECOD_OUT_EXCEPTION_USE",Texception_t       ,_param->_nb_inst_decod);
100  ALLOC1_SC_SIGNAL(out_DECOD_OUT_EXCEPTION     ,"out_DECOD_OUT_EXCEPTION    ",Texception_t       ,_param->_nb_inst_decod);
101                                                                                                 
102  ALLOC1_SC_SIGNAL( in_DEPTH_MIN               ," in_DEPTH_MIN              ",Tdepth_t           ,_param->_nb_context);
103  ALLOC1_SC_SIGNAL( in_DEPTH_MAX               ," in_DEPTH_MAX              ",Tdepth_t           ,_param->_nb_context);
104  ALLOC1_SC_SIGNAL( in_DEPTH_FULL              ," in_DEPTH_FULL             ",Tcontrol_t         ,_param->_nb_context);
105
106  ALLOC1_SC_SIGNAL(out_NB_INST_ALL             ,"out_NB_INST_ALL            ",Tcounter_t         ,_param->_nb_context);
107 
108  /********************************************************
109   * Instanciation
110   ********************************************************/
111 
112  msg(_("<%s> : Instanciation of _Decod_queue.\n"),name.c_str());
113
114  (*(_Decod_queue->in_CLOCK))        (*(in_CLOCK));
115  (*(_Decod_queue->in_NRESET))       (*(in_NRESET));
116
117  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_VAL            ,_param->_nb_inst_decod);
118  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_IN_ACK            ,_param->_nb_inst_decod);
119  if (_param->_have_port_context_id)
120  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_CONTEXT_ID     ,_param->_nb_inst_decod);
121  if (_param->_have_port_depth)
122  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_DEPTH          ,_param->_nb_inst_decod);
123  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_TYPE           ,_param->_nb_inst_decod);
124  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_OPERATION      ,_param->_nb_inst_decod);
125  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_NO_EXECUTE     ,_param->_nb_inst_decod);
126  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_IS_DELAY_SLOT  ,_param->_nb_inst_decod);
127  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_ADDRESS        ,_param->_nb_inst_decod);
128  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_HAS_IMMEDIAT   ,_param->_nb_inst_decod);
129  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_IMMEDIAT       ,_param->_nb_inst_decod);
130  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_READ_RA        ,_param->_nb_inst_decod);
131  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_NUM_REG_RA     ,_param->_nb_inst_decod);
132  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_READ_RB        ,_param->_nb_inst_decod);
133  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_NUM_REG_RB     ,_param->_nb_inst_decod);
134  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_READ_RC        ,_param->_nb_inst_decod);
135  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_NUM_REG_RC     ,_param->_nb_inst_decod);
136  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_WRITE_RD       ,_param->_nb_inst_decod);
137  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_NUM_REG_RD     ,_param->_nb_inst_decod);
138  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_WRITE_RE       ,_param->_nb_inst_decod);
139  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_NUM_REG_RE     ,_param->_nb_inst_decod);
140  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_EXCEPTION_USE  ,_param->_nb_inst_decod);
141  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_IN_EXCEPTION      ,_param->_nb_inst_decod);
142
143  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_VAL           ,_param->_nb_inst_decod);
144  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DECOD_OUT_ACK           ,_param->_nb_inst_decod);
145  if (_param->_have_port_context_id)
146  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_CONTEXT_ID    ,_param->_nb_inst_decod);
147  if (_param->_have_port_depth)
148  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_DEPTH         ,_param->_nb_inst_decod);
149  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_TYPE          ,_param->_nb_inst_decod);
150  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_OPERATION     ,_param->_nb_inst_decod);
151  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_NO_EXECUTE    ,_param->_nb_inst_decod);
152  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_IS_DELAY_SLOT ,_param->_nb_inst_decod);
153  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_ADDRESS       ,_param->_nb_inst_decod);
154  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_HAS_IMMEDIAT  ,_param->_nb_inst_decod);
155  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_IMMEDIAT      ,_param->_nb_inst_decod);
156  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_READ_RA       ,_param->_nb_inst_decod);
157  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_NUM_REG_RA    ,_param->_nb_inst_decod);
158  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_READ_RB       ,_param->_nb_inst_decod);
159  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_NUM_REG_RB    ,_param->_nb_inst_decod);
160  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_READ_RC       ,_param->_nb_inst_decod);
161  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_NUM_REG_RC    ,_param->_nb_inst_decod);
162  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_WRITE_RD      ,_param->_nb_inst_decod);
163  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_NUM_REG_RD    ,_param->_nb_inst_decod);
164  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_WRITE_RE      ,_param->_nb_inst_decod);
165  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_NUM_REG_RE    ,_param->_nb_inst_decod);
166  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_EXCEPTION_USE ,_param->_nb_inst_decod);
167  INSTANCE1_SC_SIGNAL(_Decod_queue,out_DECOD_OUT_EXCEPTION     ,_param->_nb_inst_decod);
168
169  if (_param->_have_port_depth)
170    {
171  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DEPTH_MIN               ,_param->_nb_context);
172  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DEPTH_MAX               ,_param->_nb_context);
173    }
174  INSTANCE1_SC_SIGNAL(_Decod_queue, in_DEPTH_FULL              ,_param->_nb_context);
175  INSTANCE1_SC_SIGNAL(_Decod_queue,out_NB_INST_ALL             ,_param->_nb_context);
176  msg(_("<%s> : Start Simulation ............\n"),name.c_str());
177   
178  Time * _time = new Time();
179
180  /********************************************************
181   * Simulation - Begin
182   ********************************************************/
183
184  // Initialisation
185
186  const uint32_t seed = 0;
187//const uint32_t seed = static_cast<uint32_t>(time(NULL));
188
189  srand(seed);
190
191  SC_START(0);
192  LABEL("Initialisation");
193
194  LABEL("Reset");
195  in_NRESET->write(0);
196  SC_START(5);
197  in_NRESET->write(1); 
198
199  LABEL("Loop of Test");
200
201  Tcounter_t nb_inst      [_param->_nb_context];
202  Tdepth_t   depth        [_param->_nb_context];
203  Taddress_t address_src  [_param->_nb_context];
204  Taddress_t address_dest [_param->_nb_context];
205
206  for (uint32_t i=0; i<_param->_nb_context; i++)
207    {
208      nb_inst      [i] = 0;
209      depth        [i] = 0;
210      address_src  [i] = 0;
211      address_dest [i] = 0;
212    }
213
214  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
215    {
216      LABEL("Iteration %d",iteration);
217
218      {
219        Taddress_t address_tmp [_param->_nb_context];
220       
221        for (uint32_t i=0; i<_param->_nb_context; i++)
222          address_tmp [i] = address_src [i];
223
224        uint32_t x = rand()%_param->_nb_inst_decod;
225        for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
226          {
227            Tcontext_t context = rand()%_param->_nb_context;
228
229            in_DECOD_IN_VAL        [i]->write(i<=x);
230            in_DECOD_IN_CONTEXT_ID [i]->write(context);
231            in_DECOD_IN_DEPTH      [i]->write(depth [context]);
232            in_DECOD_IN_ADDRESS    [i]->write(address_tmp [context]);
233
234            address_tmp [context] ++;
235          }
236      }
237
238      {
239        uint32_t x = rand()%_param->_nb_inst_decod;
240        for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
241          {
242            in_DECOD_OUT_ACK       [i]->write(i<=x);
243          }
244      }
245     
246      SC_START(0);
247
248      for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
249        {
250          LABEL("DECOD_IN  [%d] - %d %d",i,in_DECOD_IN_VAL [i]->read(),out_DECOD_IN_ACK [i]->read());
251
252          if (in_DECOD_IN_VAL [i]->read() and out_DECOD_IN_ACK [i]->read())
253            {
254              LABEL("DECOD_IN  [%d] - Transaction Accepted",i);
255              Tcontext_t context = in_DECOD_IN_CONTEXT_ID [i]->read();
256              LABEL("  * context  : %d",context);
257             
258              nb_inst      [context] ++;
259              address_src  [context] ++;
260            }
261        }
262
263      for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
264        {
265          LABEL("DECOD_OUT [%d] - %d %d",i,out_DECOD_OUT_VAL [i]->read(),in_DECOD_OUT_ACK [i]->read());
266          if (out_DECOD_OUT_VAL [i]->read() and in_DECOD_OUT_ACK [i]->read())
267            {
268              LABEL("DECOD_OUT [%d] - Transaction Accepted",i);
269              Tcontext_t context = out_DECOD_OUT_CONTEXT_ID [i]->read();
270              LABEL("  * context  : %d",context);
271             
272              TEST(Tdepth_t  ,out_DECOD_OUT_DEPTH   [i]->read(),depth        [context]);
273              TEST(Taddress_t,out_DECOD_OUT_ADDRESS [i]->read(),address_dest [context]);
274             
275              nb_inst      [context] --;
276              address_dest [context] ++;
277            }
278        }
279
280      SC_START(1);
281
282      for (uint32_t i=0; i<_param->_nb_context; i++)
283        TEST(Tcounter_t,out_NB_INST_ALL[i]->read(), nb_inst[i]);
284    }
285
286  /********************************************************
287   * Simulation - End
288   ********************************************************/
289
290  TEST_OK ("End of Simulation");
291  delete _time;
292
293  msg(_("<%s> : ............ Stop Simulation\n"),name.c_str());
294
295  delete in_CLOCK;
296  delete in_NRESET;
297
298  DELETE1_SC_SIGNAL( in_DECOD_IN_VAL            ,_param->_nb_inst_decod);
299  DELETE1_SC_SIGNAL(out_DECOD_IN_ACK            ,_param->_nb_inst_decod);
300  DELETE1_SC_SIGNAL( in_DECOD_IN_CONTEXT_ID     ,_param->_nb_inst_decod);
301  DELETE1_SC_SIGNAL( in_DECOD_IN_DEPTH          ,_param->_nb_inst_decod);
302  DELETE1_SC_SIGNAL( in_DECOD_IN_TYPE           ,_param->_nb_inst_decod);
303  DELETE1_SC_SIGNAL( in_DECOD_IN_OPERATION      ,_param->_nb_inst_decod);
304  DELETE1_SC_SIGNAL( in_DECOD_IN_NO_EXECUTE     ,_param->_nb_inst_decod);
305  DELETE1_SC_SIGNAL( in_DECOD_IN_IS_DELAY_SLOT  ,_param->_nb_inst_decod);
306  DELETE1_SC_SIGNAL( in_DECOD_IN_ADDRESS        ,_param->_nb_inst_decod);
307  DELETE1_SC_SIGNAL( in_DECOD_IN_HAS_IMMEDIAT   ,_param->_nb_inst_decod);
308  DELETE1_SC_SIGNAL( in_DECOD_IN_IMMEDIAT       ,_param->_nb_inst_decod);
309  DELETE1_SC_SIGNAL( in_DECOD_IN_READ_RA        ,_param->_nb_inst_decod);
310  DELETE1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RA     ,_param->_nb_inst_decod);
311  DELETE1_SC_SIGNAL( in_DECOD_IN_READ_RB        ,_param->_nb_inst_decod);
312  DELETE1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RB     ,_param->_nb_inst_decod);
313  DELETE1_SC_SIGNAL( in_DECOD_IN_READ_RC        ,_param->_nb_inst_decod);
314  DELETE1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RC     ,_param->_nb_inst_decod);
315  DELETE1_SC_SIGNAL( in_DECOD_IN_WRITE_RD       ,_param->_nb_inst_decod);
316  DELETE1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RD     ,_param->_nb_inst_decod);
317  DELETE1_SC_SIGNAL( in_DECOD_IN_WRITE_RE       ,_param->_nb_inst_decod);
318  DELETE1_SC_SIGNAL( in_DECOD_IN_NUM_REG_RE     ,_param->_nb_inst_decod);
319  DELETE1_SC_SIGNAL( in_DECOD_IN_EXCEPTION_USE  ,_param->_nb_inst_decod);
320  DELETE1_SC_SIGNAL( in_DECOD_IN_EXCEPTION      ,_param->_nb_inst_decod);
321
322  DELETE1_SC_SIGNAL(out_DECOD_OUT_VAL           ,_param->_nb_inst_decod);
323  DELETE1_SC_SIGNAL( in_DECOD_OUT_ACK           ,_param->_nb_inst_decod);
324  DELETE1_SC_SIGNAL(out_DECOD_OUT_CONTEXT_ID    ,_param->_nb_inst_decod);
325  DELETE1_SC_SIGNAL(out_DECOD_OUT_DEPTH         ,_param->_nb_inst_decod);
326  DELETE1_SC_SIGNAL(out_DECOD_OUT_TYPE          ,_param->_nb_inst_decod);
327  DELETE1_SC_SIGNAL(out_DECOD_OUT_OPERATION     ,_param->_nb_inst_decod);
328  DELETE1_SC_SIGNAL(out_DECOD_OUT_NO_EXECUTE    ,_param->_nb_inst_decod);
329  DELETE1_SC_SIGNAL(out_DECOD_OUT_IS_DELAY_SLOT ,_param->_nb_inst_decod);
330  DELETE1_SC_SIGNAL(out_DECOD_OUT_ADDRESS       ,_param->_nb_inst_decod);
331  DELETE1_SC_SIGNAL(out_DECOD_OUT_HAS_IMMEDIAT  ,_param->_nb_inst_decod);
332  DELETE1_SC_SIGNAL(out_DECOD_OUT_IMMEDIAT      ,_param->_nb_inst_decod);
333  DELETE1_SC_SIGNAL(out_DECOD_OUT_READ_RA       ,_param->_nb_inst_decod);
334  DELETE1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RA    ,_param->_nb_inst_decod);
335  DELETE1_SC_SIGNAL(out_DECOD_OUT_READ_RB       ,_param->_nb_inst_decod);
336  DELETE1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RB    ,_param->_nb_inst_decod);
337  DELETE1_SC_SIGNAL(out_DECOD_OUT_READ_RC       ,_param->_nb_inst_decod);
338  DELETE1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RC    ,_param->_nb_inst_decod);
339  DELETE1_SC_SIGNAL(out_DECOD_OUT_WRITE_RD      ,_param->_nb_inst_decod);
340  DELETE1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RD    ,_param->_nb_inst_decod);
341  DELETE1_SC_SIGNAL(out_DECOD_OUT_WRITE_RE      ,_param->_nb_inst_decod);
342  DELETE1_SC_SIGNAL(out_DECOD_OUT_NUM_REG_RE    ,_param->_nb_inst_decod);
343  DELETE1_SC_SIGNAL(out_DECOD_OUT_EXCEPTION_USE ,_param->_nb_inst_decod);
344  DELETE1_SC_SIGNAL(out_DECOD_OUT_EXCEPTION     ,_param->_nb_inst_decod);
345
346  DELETE1_SC_SIGNAL( in_DEPTH_MIN               ,_param->_nb_context);
347  DELETE1_SC_SIGNAL( in_DEPTH_MAX               ,_param->_nb_context);
348  DELETE1_SC_SIGNAL( in_DEPTH_FULL              ,_param->_nb_context);
349
350  DELETE1_SC_SIGNAL(out_NB_INST_ALL             ,_param->_nb_context);
351    }
352#endif
353
354  delete _Decod_queue;
355#ifdef STATISTICS
356  delete _parameters_statistics;
357#endif
358}
Note: See TracBrowser for help on using the repository browser.