source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/SelfTest/src/test.cpp @ 117

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

1) Platforms : add new organization for test
2) Load_Store_Unit : add array to count nb_check in store_queue
3) Issue_queue and Core_Glue : rewrite the issue network
4) Special_Register_Unit : add reset value to register CID
5) Softwares : add multicontext test
6) Softwares : add SPECINT
7) Softwares : add MiBench?
7) Read_queue : inhib access for r0
8) Change Core_Glue (network) - dont yet support priority and load balancing scheme

  • Property svn:keywords set to Id
File size: 32.6 KB
Line 
1/*
2 * $Id: test.cpp 117 2009-05-16 14:42:39Z rosiere $
3 *
4 * [ Description ]
5 *
6 * Test
7 */
8
9#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/SelfTest/include/test.h"
10#include "Behavioural/include/Allocation.h"
11#include <set>
12
13void test (string name,
14           morpheo::behavioural::core::multi_ooo_engine::ooo_engine::issue_queue::Parameters * _param)
15{
16  msg(_("<%s> : Simulation SystemC.\n"),name.c_str());
17
18#ifdef STATISTICS
19  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
20#endif
21
22  Tusage_t _usage = USE_ALL;
23
24//   _usage = usage_unset(_usage,USE_SYSTEMC              );
25//   _usage = usage_unset(_usage,USE_VHDL                 );
26//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
27//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
28//   _usage = usage_unset(_usage,USE_POSITION             );
29//   _usage = usage_unset(_usage,USE_STATISTICS           );
30//   _usage = usage_unset(_usage,USE_INFORMATION          );
31
32  Issue_queue * _Issue_queue = new Issue_queue
33    (name.c_str(),
34#ifdef STATISTICS
35     _parameters_statistics,
36#endif
37     _param,
38     _usage);
39 
40#ifdef SYSTEMC
41  if (usage_is_set(_usage,USE_SYSTEMC))
42    {
43  /*********************************************************************
44   * Déclarations des signaux
45   *********************************************************************/
46  string rename;
47
48  sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);         
49  sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
50
51  sc_signal<Tcontrol_t        > ***  in_ISSUE_IN_VAL                   ;
52  sc_signal<Tcontrol_t        > *** out_ISSUE_IN_ACK                   ;
53  sc_signal<Tcontext_t        > ***  in_ISSUE_IN_CONTEXT_ID            ;
54  sc_signal<Tcontext_t        > ***  in_ISSUE_IN_FRONT_END_ID          ;
55  sc_signal<Tpacket_t         > ***  in_ISSUE_IN_PACKET_ID             ;
56  sc_signal<Toperation_t      > ***  in_ISSUE_IN_OPERATION             ;
57  sc_signal<Ttype_t           > ***  in_ISSUE_IN_TYPE                  ;
58  sc_signal<Tlsq_ptr_t        > ***  in_ISSUE_IN_STORE_QUEUE_PTR_WRITE ;
59  sc_signal<Tlsq_ptr_t        > ***  in_ISSUE_IN_LOAD_QUEUE_PTR_WRITE  ;
60  sc_signal<Tcontrol_t        > ***  in_ISSUE_IN_HAS_IMMEDIAT          ;
61  sc_signal<Tgeneral_data_t   > ***  in_ISSUE_IN_IMMEDIAT              ;
62  sc_signal<Tcontrol_t        > ***  in_ISSUE_IN_READ_RA               ;
63  sc_signal<Tgeneral_address_t> ***  in_ISSUE_IN_NUM_REG_RA            ;
64  sc_signal<Tcontrol_t        > ***  in_ISSUE_IN_READ_RB               ;
65  sc_signal<Tgeneral_address_t> ***  in_ISSUE_IN_NUM_REG_RB            ;
66  sc_signal<Tcontrol_t        > ***  in_ISSUE_IN_READ_RC               ;
67  sc_signal<Tspecial_address_t> ***  in_ISSUE_IN_NUM_REG_RC            ;
68  sc_signal<Tcontrol_t        > ***  in_ISSUE_IN_WRITE_RD              ;
69  sc_signal<Tgeneral_address_t> ***  in_ISSUE_IN_NUM_REG_RD            ;
70  sc_signal<Tcontrol_t        > ***  in_ISSUE_IN_WRITE_RE              ;
71  sc_signal<Tspecial_address_t> ***  in_ISSUE_IN_NUM_REG_RE            ;
72  sc_signal<Tcontrol_t        >  **  in_REEXECUTE_VAL                  ;
73  sc_signal<Tcontrol_t        >  ** out_REEXECUTE_ACK                  ;
74  sc_signal<Tcontext_t        >  **  in_REEXECUTE_CONTEXT_ID           ;
75  sc_signal<Tcontext_t        >  **  in_REEXECUTE_FRONT_END_ID         ;
76  sc_signal<Tpacket_t         >  **  in_REEXECUTE_PACKET_ID            ;
77  sc_signal<Toperation_t      >  **  in_REEXECUTE_OPERATION            ;
78  sc_signal<Ttype_t           >  **  in_REEXECUTE_TYPE                 ;
79  sc_signal<Tlsq_ptr_t        >  **  in_REEXECUTE_STORE_QUEUE_PTR_WRITE;
80  sc_signal<Tlsq_ptr_t        >  **  in_REEXECUTE_LOAD_QUEUE_PTR_WRITE ;
81  sc_signal<Tcontrol_t        >  **  in_REEXECUTE_HAS_IMMEDIAT         ;
82  sc_signal<Tgeneral_data_t   >  **  in_REEXECUTE_IMMEDIAT             ;
83  sc_signal<Tcontrol_t        >  **  in_REEXECUTE_READ_RA              ;
84  sc_signal<Tgeneral_address_t>  **  in_REEXECUTE_NUM_REG_RA           ;
85  sc_signal<Tcontrol_t        >  **  in_REEXECUTE_READ_RB              ;
86  sc_signal<Tgeneral_address_t>  **  in_REEXECUTE_NUM_REG_RB           ;
87  sc_signal<Tcontrol_t        >  **  in_REEXECUTE_READ_RC              ;
88  sc_signal<Tspecial_address_t>  **  in_REEXECUTE_NUM_REG_RC           ;
89  sc_signal<Tcontrol_t        >  **  in_REEXECUTE_WRITE_RD             ;
90  sc_signal<Tgeneral_address_t>  **  in_REEXECUTE_NUM_REG_RD           ;
91  sc_signal<Tcontrol_t        >  **  in_REEXECUTE_WRITE_RE             ;
92  sc_signal<Tspecial_address_t>  **  in_REEXECUTE_NUM_REG_RE           ;
93  sc_signal<Tcontrol_t        >  ** out_ISSUE_OUT_VAL                  ;
94  sc_signal<Tcontrol_t        >  **  in_ISSUE_OUT_ACK                  ;
95  sc_signal<Tcontext_t        >  ** out_ISSUE_OUT_CONTEXT_ID           ;
96  sc_signal<Tcontext_t        >  ** out_ISSUE_OUT_FRONT_END_ID         ;
97  sc_signal<Tpacket_t         >  ** out_ISSUE_OUT_PACKET_ID            ;
98  sc_signal<Toperation_t      >  ** out_ISSUE_OUT_OPERATION            ;
99  sc_signal<Ttype_t           >  ** out_ISSUE_OUT_TYPE                 ;
100  sc_signal<Tlsq_ptr_t        >  ** out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE;
101  sc_signal<Tlsq_ptr_t        >  ** out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE ;
102  sc_signal<Tcontrol_t        >  ** out_ISSUE_OUT_HAS_IMMEDIAT         ;
103  sc_signal<Tgeneral_data_t   >  ** out_ISSUE_OUT_IMMEDIAT             ;
104  sc_signal<Tcontrol_t        >  ** out_ISSUE_OUT_READ_RA              ;
105  sc_signal<Tgeneral_address_t>  ** out_ISSUE_OUT_NUM_REG_RA           ;
106  sc_signal<Tcontrol_t        >  ** out_ISSUE_OUT_READ_RB              ;
107  sc_signal<Tgeneral_address_t>  ** out_ISSUE_OUT_NUM_REG_RB           ;
108  sc_signal<Tcontrol_t        >  ** out_ISSUE_OUT_READ_RC              ;
109  sc_signal<Tspecial_address_t>  ** out_ISSUE_OUT_NUM_REG_RC           ;
110  sc_signal<Tcontrol_t        >  ** out_ISSUE_OUT_WRITE_RD             ;
111  sc_signal<Tgeneral_address_t>  ** out_ISSUE_OUT_NUM_REG_RD           ;
112  sc_signal<Tcontrol_t        >  ** out_ISSUE_OUT_WRITE_RE             ;
113  sc_signal<Tspecial_address_t>  ** out_ISSUE_OUT_NUM_REG_RE           ;
114
115  ALLOC2_SC_SIGNAL( in_ISSUE_IN_VAL                   ," in_ISSUE_IN_VAL                   ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
116  ALLOC2_SC_SIGNAL(out_ISSUE_IN_ACK                   ,"out_ISSUE_IN_ACK                   ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
117  ALLOC2_SC_SIGNAL( in_ISSUE_IN_CONTEXT_ID            ," in_ISSUE_IN_CONTEXT_ID            ",Tcontext_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
118  ALLOC2_SC_SIGNAL( in_ISSUE_IN_FRONT_END_ID          ," in_ISSUE_IN_FRONT_END_ID          ",Tcontext_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
119  ALLOC2_SC_SIGNAL( in_ISSUE_IN_PACKET_ID             ," in_ISSUE_IN_PACKET_ID             ",Tpacket_t         ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
120  ALLOC2_SC_SIGNAL( in_ISSUE_IN_OPERATION             ," in_ISSUE_IN_OPERATION             ",Toperation_t      ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
121  ALLOC2_SC_SIGNAL( in_ISSUE_IN_TYPE                  ," in_ISSUE_IN_TYPE                  ",Ttype_t           ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
122  ALLOC2_SC_SIGNAL( in_ISSUE_IN_STORE_QUEUE_PTR_WRITE ," in_ISSUE_IN_STORE_QUEUE_PTR_WRITE ",Tlsq_ptr_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
123  ALLOC2_SC_SIGNAL( in_ISSUE_IN_LOAD_QUEUE_PTR_WRITE  ," in_ISSUE_IN_LOAD_QUEUE_PTR_WRITE  ",Tlsq_ptr_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
124  ALLOC2_SC_SIGNAL( in_ISSUE_IN_HAS_IMMEDIAT          ," in_ISSUE_IN_HAS_IMMEDIAT          ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
125  ALLOC2_SC_SIGNAL( in_ISSUE_IN_IMMEDIAT              ," in_ISSUE_IN_IMMEDIAT              ",Tgeneral_data_t   ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
126  ALLOC2_SC_SIGNAL( in_ISSUE_IN_READ_RA               ," in_ISSUE_IN_READ_RA               ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
127  ALLOC2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RA            ," in_ISSUE_IN_NUM_REG_RA            ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
128  ALLOC2_SC_SIGNAL( in_ISSUE_IN_READ_RB               ," in_ISSUE_IN_READ_RB               ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
129  ALLOC2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RB            ," in_ISSUE_IN_NUM_REG_RB            ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
130  ALLOC2_SC_SIGNAL( in_ISSUE_IN_READ_RC               ," in_ISSUE_IN_READ_RC               ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
131  ALLOC2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RC            ," in_ISSUE_IN_NUM_REG_RC            ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
132  ALLOC2_SC_SIGNAL( in_ISSUE_IN_WRITE_RD              ," in_ISSUE_IN_WRITE_RD              ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
133  ALLOC2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RD            ," in_ISSUE_IN_NUM_REG_RD            ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
134  ALLOC2_SC_SIGNAL( in_ISSUE_IN_WRITE_RE              ," in_ISSUE_IN_WRITE_RE              ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
135  ALLOC2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RE            ," in_ISSUE_IN_NUM_REG_RE            ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]);
136  ALLOC1_SC_SIGNAL( in_REEXECUTE_VAL                  ," in_REEXECUTE_VAL                  ",Tcontrol_t        ,_param->_nb_inst_reexecute);
137  ALLOC1_SC_SIGNAL(out_REEXECUTE_ACK                  ,"out_REEXECUTE_ACK                  ",Tcontrol_t        ,_param->_nb_inst_reexecute);
138  ALLOC1_SC_SIGNAL( in_REEXECUTE_CONTEXT_ID           ," in_REEXECUTE_CONTEXT_ID           ",Tcontext_t        ,_param->_nb_inst_reexecute);
139  ALLOC1_SC_SIGNAL( in_REEXECUTE_FRONT_END_ID         ," in_REEXECUTE_FRONT_END_ID         ",Tcontext_t        ,_param->_nb_inst_reexecute);
140  ALLOC1_SC_SIGNAL( in_REEXECUTE_PACKET_ID            ," in_REEXECUTE_PACKET_ID            ",Tpacket_t         ,_param->_nb_inst_reexecute);
141  ALLOC1_SC_SIGNAL( in_REEXECUTE_OPERATION            ," in_REEXECUTE_OPERATION            ",Toperation_t      ,_param->_nb_inst_reexecute);
142  ALLOC1_SC_SIGNAL( in_REEXECUTE_TYPE                 ," in_REEXECUTE_TYPE                 ",Ttype_t           ,_param->_nb_inst_reexecute);
143  ALLOC1_SC_SIGNAL( in_REEXECUTE_STORE_QUEUE_PTR_WRITE," in_REEXECUTE_STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_nb_inst_reexecute);
144  ALLOC1_SC_SIGNAL( in_REEXECUTE_LOAD_QUEUE_PTR_WRITE ," in_REEXECUTE_LOAD_QUEUE_PTR_WRITE ",Tlsq_ptr_t        ,_param->_nb_inst_reexecute);
145  ALLOC1_SC_SIGNAL( in_REEXECUTE_HAS_IMMEDIAT         ," in_REEXECUTE_HAS_IMMEDIAT         ",Tcontrol_t        ,_param->_nb_inst_reexecute);
146  ALLOC1_SC_SIGNAL( in_REEXECUTE_IMMEDIAT             ," in_REEXECUTE_IMMEDIAT             ",Tgeneral_data_t   ,_param->_nb_inst_reexecute);
147  ALLOC1_SC_SIGNAL( in_REEXECUTE_READ_RA              ," in_REEXECUTE_READ_RA              ",Tcontrol_t        ,_param->_nb_inst_reexecute);
148  ALLOC1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RA           ," in_REEXECUTE_NUM_REG_RA           ",Tgeneral_address_t,_param->_nb_inst_reexecute);
149  ALLOC1_SC_SIGNAL( in_REEXECUTE_READ_RB              ," in_REEXECUTE_READ_RB              ",Tcontrol_t        ,_param->_nb_inst_reexecute);
150  ALLOC1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RB           ," in_REEXECUTE_NUM_REG_RB           ",Tgeneral_address_t,_param->_nb_inst_reexecute);
151  ALLOC1_SC_SIGNAL( in_REEXECUTE_READ_RC              ," in_REEXECUTE_READ_RC              ",Tcontrol_t        ,_param->_nb_inst_reexecute);
152  ALLOC1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RC           ," in_REEXECUTE_NUM_REG_RC           ",Tspecial_address_t,_param->_nb_inst_reexecute);
153  ALLOC1_SC_SIGNAL( in_REEXECUTE_WRITE_RD             ," in_REEXECUTE_WRITE_RD             ",Tcontrol_t        ,_param->_nb_inst_reexecute);
154  ALLOC1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RD           ," in_REEXECUTE_NUM_REG_RD           ",Tgeneral_address_t,_param->_nb_inst_reexecute);
155  ALLOC1_SC_SIGNAL( in_REEXECUTE_WRITE_RE             ," in_REEXECUTE_WRITE_RE             ",Tcontrol_t        ,_param->_nb_inst_reexecute);
156  ALLOC1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RE           ," in_REEXECUTE_NUM_REG_RE           ",Tspecial_address_t,_param->_nb_inst_reexecute);
157  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_VAL                  ,"out_ISSUE_OUT_VAL                  ",Tcontrol_t        ,_param->_nb_inst_issue);
158  ALLOC1_SC_SIGNAL( in_ISSUE_OUT_ACK                  ," in_ISSUE_OUT_ACK                  ",Tcontrol_t        ,_param->_nb_inst_issue);
159  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_CONTEXT_ID           ,"out_ISSUE_OUT_CONTEXT_ID           ",Tcontext_t        ,_param->_nb_inst_issue);
160  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_FRONT_END_ID         ,"out_ISSUE_OUT_FRONT_END_ID         ",Tcontext_t        ,_param->_nb_inst_issue);
161  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_PACKET_ID            ,"out_ISSUE_OUT_PACKET_ID            ",Tpacket_t         ,_param->_nb_inst_issue);
162  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_OPERATION            ,"out_ISSUE_OUT_OPERATION            ",Toperation_t      ,_param->_nb_inst_issue);
163  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_TYPE                 ,"out_ISSUE_OUT_TYPE                 ",Ttype_t           ,_param->_nb_inst_issue);
164  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE,"out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_nb_inst_issue);
165  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE ,"out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE ",Tlsq_ptr_t        ,_param->_nb_inst_issue);
166  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_HAS_IMMEDIAT         ,"out_ISSUE_OUT_HAS_IMMEDIAT         ",Tcontrol_t        ,_param->_nb_inst_issue);
167  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_IMMEDIAT             ,"out_ISSUE_OUT_IMMEDIAT             ",Tgeneral_data_t   ,_param->_nb_inst_issue);
168  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_READ_RA              ,"out_ISSUE_OUT_READ_RA              ",Tcontrol_t        ,_param->_nb_inst_issue);
169  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RA           ,"out_ISSUE_OUT_NUM_REG_RA           ",Tgeneral_address_t,_param->_nb_inst_issue);
170  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_READ_RB              ,"out_ISSUE_OUT_READ_RB              ",Tcontrol_t        ,_param->_nb_inst_issue);
171  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RB           ,"out_ISSUE_OUT_NUM_REG_RB           ",Tgeneral_address_t,_param->_nb_inst_issue);
172  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_READ_RC              ,"out_ISSUE_OUT_READ_RC              ",Tcontrol_t        ,_param->_nb_inst_issue);
173  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RC           ,"out_ISSUE_OUT_NUM_REG_RC           ",Tspecial_address_t,_param->_nb_inst_issue);
174  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_WRITE_RD             ,"out_ISSUE_OUT_WRITE_RD             ",Tcontrol_t        ,_param->_nb_inst_issue);
175  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RD           ,"out_ISSUE_OUT_NUM_REG_RD           ",Tgeneral_address_t,_param->_nb_inst_issue);
176  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_WRITE_RE             ,"out_ISSUE_OUT_WRITE_RE             ",Tcontrol_t        ,_param->_nb_inst_issue);
177  ALLOC1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RE           ,"out_ISSUE_OUT_NUM_REG_RE           ",Tspecial_address_t,_param->_nb_inst_issue);
178 
179  /********************************************************
180   * Instanciation
181   ********************************************************/
182 
183  msg(_("<%s> : Instanciation of _Issue_queue.\n"),name.c_str());
184
185  (*(_Issue_queue->in_CLOCK))        (*(in_CLOCK));
186  (*(_Issue_queue->in_NRESET))       (*(in_NRESET));
187
188  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_VAL                   ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
189  INSTANCE2_SC_SIGNAL(_Issue_queue,out_ISSUE_IN_ACK                   ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
190  if (_param->_have_port_context_id)
191  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_CONTEXT_ID            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
192  if (_param->_have_port_front_end_id)
193  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_FRONT_END_ID          ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
194  if (_param->_have_port_rob_ptr  )
195  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_PACKET_ID             ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
196  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_OPERATION             ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
197  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_TYPE                  ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
198  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_STORE_QUEUE_PTR_WRITE ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
199  if (_param->_have_port_load_queue_ptr)
200  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_LOAD_QUEUE_PTR_WRITE  ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
201  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_HAS_IMMEDIAT          ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
202  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_IMMEDIAT              ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
203  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_READ_RA               ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
204  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_NUM_REG_RA            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
205  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_READ_RB               ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
206  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_NUM_REG_RB            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
207  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_READ_RC               ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
208  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_NUM_REG_RC            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
209  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_WRITE_RD              ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
210  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_NUM_REG_RD            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
211  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_WRITE_RE              ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
212  INSTANCE2_SC_SIGNAL(_Issue_queue, in_ISSUE_IN_NUM_REG_RE            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
213
214  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_VAL                  ,_param->_nb_inst_reexecute);
215  INSTANCE1_SC_SIGNAL(_Issue_queue,out_REEXECUTE_ACK                  ,_param->_nb_inst_reexecute);
216  if (_param->_have_port_context_id)
217  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_CONTEXT_ID           ,_param->_nb_inst_reexecute);
218  if (_param->_have_port_front_end_id)
219  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_FRONT_END_ID         ,_param->_nb_inst_reexecute);
220  if (_param->_have_port_rob_ptr  )
221  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_PACKET_ID            ,_param->_nb_inst_reexecute);
222  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_OPERATION            ,_param->_nb_inst_reexecute);
223  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_TYPE                 ,_param->_nb_inst_reexecute);
224  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_reexecute);
225  if (_param->_have_port_load_queue_ptr)
226  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_reexecute);
227  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_HAS_IMMEDIAT         ,_param->_nb_inst_reexecute);
228  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_IMMEDIAT             ,_param->_nb_inst_reexecute);
229  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_READ_RA              ,_param->_nb_inst_reexecute);
230  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_NUM_REG_RA           ,_param->_nb_inst_reexecute);
231  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_READ_RB              ,_param->_nb_inst_reexecute);
232  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_NUM_REG_RB           ,_param->_nb_inst_reexecute);
233  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_READ_RC              ,_param->_nb_inst_reexecute);
234  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_NUM_REG_RC           ,_param->_nb_inst_reexecute);
235  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_WRITE_RD             ,_param->_nb_inst_reexecute);
236  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_NUM_REG_RD           ,_param->_nb_inst_reexecute);
237  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_WRITE_RE             ,_param->_nb_inst_reexecute);
238  INSTANCE1_SC_SIGNAL(_Issue_queue, in_REEXECUTE_NUM_REG_RE           ,_param->_nb_inst_reexecute);
239
240  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_VAL                  ,_param->_nb_inst_issue);
241  INSTANCE1_SC_SIGNAL(_Issue_queue, in_ISSUE_OUT_ACK                  ,_param->_nb_inst_issue);
242  if (_param->_have_port_context_id)
243  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_CONTEXT_ID           ,_param->_nb_inst_issue);
244  if (_param->_have_port_front_end_id)
245  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_FRONT_END_ID         ,_param->_nb_inst_issue);
246  if (_param->_have_port_rob_ptr  )
247  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_PACKET_ID            ,_param->_nb_inst_issue);
248  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_OPERATION            ,_param->_nb_inst_issue);
249  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_TYPE                 ,_param->_nb_inst_issue);
250  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_issue);
251  if (_param->_have_port_load_queue_ptr)
252  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_issue);
253  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_HAS_IMMEDIAT         ,_param->_nb_inst_issue);
254  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_IMMEDIAT             ,_param->_nb_inst_issue);
255  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_READ_RA              ,_param->_nb_inst_issue);
256  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_NUM_REG_RA           ,_param->_nb_inst_issue);
257  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_READ_RB              ,_param->_nb_inst_issue);
258  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_NUM_REG_RB           ,_param->_nb_inst_issue);
259  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_READ_RC              ,_param->_nb_inst_issue);
260  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_NUM_REG_RC           ,_param->_nb_inst_issue);
261  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_WRITE_RD             ,_param->_nb_inst_issue);
262  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_NUM_REG_RD           ,_param->_nb_inst_issue);
263  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_WRITE_RE             ,_param->_nb_inst_issue);
264  INSTANCE1_SC_SIGNAL(_Issue_queue,out_ISSUE_OUT_NUM_REG_RE           ,_param->_nb_inst_issue);
265
266  msg(_("<%s> : Start Simulation ............\n"),name.c_str());
267   
268  // Initialisation
269  const uint32_t seed = 0;
270//const uint32_t seed = static_cast<uint32_t>(time(NULL));
271
272  srand(seed);
273
274  SC_START(0);
275
276  Time * _time = new Time();
277
278  /********************************************************
279   * Simulation - Begin
280   ********************************************************/
281
282  LABEL("Initialisation");
283
284  const  int32_t percent_transaction_reexecute = 35;
285  const  int32_t percent_transaction_issue_in  = 65;
286  const  int32_t percent_transaction_issue_out = 87;
287
288  #define NB_TYPE 12
289
290  Ttype_t tab_type [] = {TYPE_ALU    ,
291                         TYPE_SHIFT  ,
292                         TYPE_MOVE   ,
293                         TYPE_TEST   ,
294                         TYPE_MUL    ,
295                         TYPE_DIV    ,
296                         TYPE_EXTEND ,
297                         TYPE_FIND   ,
298                         TYPE_SPECIAL,
299                         TYPE_CUSTOM ,
300                         TYPE_BRANCH ,
301                         TYPE_MEMORY };
302
303  set<Tgeneral_data_t> issue_queue;
304
305  Tgeneral_data_t reexecute_immediat = 0xbeef;
306  Tgeneral_data_t reexecute_tab_immediat [_param->_nb_inst_reexecute];
307  for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
308    reexecute_tab_immediat [i] = reexecute_immediat++;
309
310  Tgeneral_data_t   issue_in_immediat = 0x1981;
311  Tgeneral_data_t   issue_in_tab_immediat  [_param->_nb_rename_unit][_param->_max_nb_inst_rename];
312  for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
313    for (uint32_t j=0; j<_param->_nb_inst_rename[i]; j++)
314      issue_in_tab_immediat [i][j] = issue_in_immediat ++;
315
316  LABEL("Reset");
317  in_NRESET->write(0);
318  SC_START(5);
319  in_NRESET->write(1); 
320
321  LABEL("Loop of Test");
322
323  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
324    {
325      LABEL("Iteration %d",iteration);
326
327      for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
328        {
329          in_REEXECUTE_VAL      [i]->write((rand()%100)<percent_transaction_reexecute);
330          Tgeneral_data_t imm = reexecute_tab_immediat [i];
331          in_REEXECUTE_IMMEDIAT [i]->write((imm<<1)|1);
332          in_REEXECUTE_TYPE     [i]->write(tab_type[imm%NB_TYPE]);
333        }
334
335      for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
336        for (uint32_t j=0; j<_param->_nb_inst_rename[i]; j++)
337          {
338            in_ISSUE_IN_VAL      [i][j]->write((rand()%100)<percent_transaction_issue_in);
339            Tgeneral_data_t imm = issue_in_tab_immediat [i][j];
340            in_ISSUE_IN_IMMEDIAT [i][j]->write((imm<<1)|1);
341            in_ISSUE_IN_TYPE     [i][j]->write(tab_type[imm%NB_TYPE]);
342          }
343
344      for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
345        {
346          in_ISSUE_OUT_ACK      [i]->write((rand()%100)<percent_transaction_issue_out);
347        }
348
349      SC_START(0);
350
351      for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
352        if (out_ISSUE_OUT_VAL [i]->read() and in_ISSUE_OUT_ACK [i]->read())
353          {
354            LABEL("ISSUE_OUT [%d] - Transaction Accepted.",i);
355
356            Tgeneral_data_t imm = out_ISSUE_OUT_IMMEDIAT[i]->read();
357
358            bool find = issue_queue.find(imm) != issue_queue.end();
359            TEST(Tgeneral_data_t,imm, *issue_queue.find(imm));
360            TEST(bool, find, true);
361            issue_queue.erase(imm);
362
363            if (imm&1)
364              {
365                LABEL(" * REEXECUTE");
366              }
367            else
368              {
369                LABEL(" * ISSUE_IN");
370              }
371           
372            imm = imm>>1;
373            Ttype_t type = out_ISSUE_OUT_TYPE[i]->read();
374            TEST(Ttype_t,type, tab_type[imm%NB_TYPE]);
375//          TEST(bool   ,_param->_table_issue_type[i][type],true);
376          }
377
378      for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
379        if (in_REEXECUTE_VAL [i]->read() and out_REEXECUTE_ACK [i]->read())
380          {
381            LABEL("REEXECUTE [%d] - Transaction Accepted.",i);
382            reexecute_tab_immediat [i] = reexecute_immediat;
383            reexecute_immediat ++;
384
385            issue_queue.insert(in_REEXECUTE_IMMEDIAT [i]->read());
386          }
387
388      for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
389        for (uint32_t j=0; j<_param->_nb_inst_rename[i]; j++)
390        if (in_ISSUE_IN_VAL [i][j]->read() and out_ISSUE_IN_ACK [i][j]->read())
391          {
392            LABEL("ISSUE_IN  [%d][%d] - Transaction Accepted.",i,j);
393            issue_in_tab_immediat [i][j] = issue_in_immediat;
394            issue_in_immediat ++;
395
396            issue_queue.insert(in_ISSUE_IN_IMMEDIAT [i][j]->read());
397          }
398
399      bool test_size = issue_queue.size() <= (_param->_size_queue+_param->_size_reexecute_queue);
400      TEST(bool,test_size,true);
401
402      SC_START(1);
403    }
404
405  /********************************************************
406   * Simulation - End
407   ********************************************************/
408
409  TEST_OK ("End of Simulation");
410  delete _time;
411
412  msg(_("<%s> : ............ Stop Simulation\n"),name.c_str());
413
414  delete in_CLOCK;
415  delete in_NRESET;
416
417  DELETE2_SC_SIGNAL( in_ISSUE_IN_VAL                   ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
418  DELETE2_SC_SIGNAL(out_ISSUE_IN_ACK                   ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
419  DELETE2_SC_SIGNAL( in_ISSUE_IN_CONTEXT_ID            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
420  DELETE2_SC_SIGNAL( in_ISSUE_IN_FRONT_END_ID          ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
421  DELETE2_SC_SIGNAL( in_ISSUE_IN_PACKET_ID             ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
422  DELETE2_SC_SIGNAL( in_ISSUE_IN_OPERATION             ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
423  DELETE2_SC_SIGNAL( in_ISSUE_IN_TYPE                  ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
424  DELETE2_SC_SIGNAL( in_ISSUE_IN_STORE_QUEUE_PTR_WRITE ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
425  DELETE2_SC_SIGNAL( in_ISSUE_IN_LOAD_QUEUE_PTR_WRITE  ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
426  DELETE2_SC_SIGNAL( in_ISSUE_IN_HAS_IMMEDIAT          ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
427  DELETE2_SC_SIGNAL( in_ISSUE_IN_IMMEDIAT              ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
428  DELETE2_SC_SIGNAL( in_ISSUE_IN_READ_RA               ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
429  DELETE2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RA            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
430  DELETE2_SC_SIGNAL( in_ISSUE_IN_READ_RB               ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
431  DELETE2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RB            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
432  DELETE2_SC_SIGNAL( in_ISSUE_IN_READ_RC               ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
433  DELETE2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RC            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
434  DELETE2_SC_SIGNAL( in_ISSUE_IN_WRITE_RD              ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
435  DELETE2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RD            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
436  DELETE2_SC_SIGNAL( in_ISSUE_IN_WRITE_RE              ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
437  DELETE2_SC_SIGNAL( in_ISSUE_IN_NUM_REG_RE            ,_param->_nb_rename_unit, _param->_nb_inst_rename[it1]);
438
439  DELETE1_SC_SIGNAL( in_REEXECUTE_VAL                  ,_param->_nb_inst_reexecute);
440  DELETE1_SC_SIGNAL(out_REEXECUTE_ACK                  ,_param->_nb_inst_reexecute);
441  DELETE1_SC_SIGNAL( in_REEXECUTE_CONTEXT_ID           ,_param->_nb_inst_reexecute);
442  DELETE1_SC_SIGNAL( in_REEXECUTE_FRONT_END_ID         ,_param->_nb_inst_reexecute);
443  DELETE1_SC_SIGNAL( in_REEXECUTE_PACKET_ID            ,_param->_nb_inst_reexecute);
444  DELETE1_SC_SIGNAL( in_REEXECUTE_OPERATION            ,_param->_nb_inst_reexecute);
445  DELETE1_SC_SIGNAL( in_REEXECUTE_TYPE                 ,_param->_nb_inst_reexecute);
446  DELETE1_SC_SIGNAL( in_REEXECUTE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_reexecute);
447  DELETE1_SC_SIGNAL( in_REEXECUTE_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_reexecute);
448  DELETE1_SC_SIGNAL( in_REEXECUTE_HAS_IMMEDIAT         ,_param->_nb_inst_reexecute);
449  DELETE1_SC_SIGNAL( in_REEXECUTE_IMMEDIAT             ,_param->_nb_inst_reexecute);
450  DELETE1_SC_SIGNAL( in_REEXECUTE_READ_RA              ,_param->_nb_inst_reexecute);
451  DELETE1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RA           ,_param->_nb_inst_reexecute);
452  DELETE1_SC_SIGNAL( in_REEXECUTE_READ_RB              ,_param->_nb_inst_reexecute);
453  DELETE1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RB           ,_param->_nb_inst_reexecute);
454  DELETE1_SC_SIGNAL( in_REEXECUTE_READ_RC              ,_param->_nb_inst_reexecute);
455  DELETE1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RC           ,_param->_nb_inst_reexecute);
456  DELETE1_SC_SIGNAL( in_REEXECUTE_WRITE_RD             ,_param->_nb_inst_reexecute);
457  DELETE1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RD           ,_param->_nb_inst_reexecute);
458  DELETE1_SC_SIGNAL( in_REEXECUTE_WRITE_RE             ,_param->_nb_inst_reexecute);
459  DELETE1_SC_SIGNAL( in_REEXECUTE_NUM_REG_RE           ,_param->_nb_inst_reexecute);
460
461  DELETE1_SC_SIGNAL(out_ISSUE_OUT_VAL                  ,_param->_nb_inst_issue);
462  DELETE1_SC_SIGNAL( in_ISSUE_OUT_ACK                  ,_param->_nb_inst_issue);
463  DELETE1_SC_SIGNAL(out_ISSUE_OUT_CONTEXT_ID           ,_param->_nb_inst_issue);
464  DELETE1_SC_SIGNAL(out_ISSUE_OUT_FRONT_END_ID         ,_param->_nb_inst_issue);
465  DELETE1_SC_SIGNAL(out_ISSUE_OUT_PACKET_ID            ,_param->_nb_inst_issue);
466  DELETE1_SC_SIGNAL(out_ISSUE_OUT_OPERATION            ,_param->_nb_inst_issue);
467  DELETE1_SC_SIGNAL(out_ISSUE_OUT_TYPE                 ,_param->_nb_inst_issue);
468  DELETE1_SC_SIGNAL(out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_issue);
469  DELETE1_SC_SIGNAL(out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_issue);
470  DELETE1_SC_SIGNAL(out_ISSUE_OUT_HAS_IMMEDIAT         ,_param->_nb_inst_issue);
471  DELETE1_SC_SIGNAL(out_ISSUE_OUT_IMMEDIAT             ,_param->_nb_inst_issue);
472  DELETE1_SC_SIGNAL(out_ISSUE_OUT_READ_RA              ,_param->_nb_inst_issue);
473  DELETE1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RA           ,_param->_nb_inst_issue);
474  DELETE1_SC_SIGNAL(out_ISSUE_OUT_READ_RB              ,_param->_nb_inst_issue);
475  DELETE1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RB           ,_param->_nb_inst_issue);
476  DELETE1_SC_SIGNAL(out_ISSUE_OUT_READ_RC              ,_param->_nb_inst_issue);
477  DELETE1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RC           ,_param->_nb_inst_issue);
478  DELETE1_SC_SIGNAL(out_ISSUE_OUT_WRITE_RD             ,_param->_nb_inst_issue);
479  DELETE1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RD           ,_param->_nb_inst_issue);
480  DELETE1_SC_SIGNAL(out_ISSUE_OUT_WRITE_RE             ,_param->_nb_inst_issue);
481  DELETE1_SC_SIGNAL(out_ISSUE_OUT_NUM_REG_RE           ,_param->_nb_inst_issue);
482    }
483#endif
484
485  delete _Issue_queue;
486#ifdef STATISTICS
487  delete _parameters_statistics;
488#endif
489}
Note: See TracBrowser for help on using the repository browser.