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

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

1) Bug fix : Load Miss Speculation (in Commit_unit, Update Prediction Table and Context State)
2) Change address, in rob write address_next.
3) Move Meta_Predictor in save directory

  • Property svn:keywords set to Id
File size: 42.9 KB
Line 
1/*
2 * $Id: test.cpp 105 2009-02-05 11:18:31Z rosiere $
3 *
4 * [ Description ]
5 *
6 * Test
7 */
8
9#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/SelfTest/include/test.h"
10#include "Behavioural/include/Allocation.h"
11
12void test (string name,
13           morpheo::behavioural::core::multi_ooo_engine::ooo_engine::Parameters * _param)
14{
15  msg(_("<%s> : Simulation SystemC.\n"),name.c_str());
16
17#ifdef STATISTICS
18  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
19#endif
20
21  Tusage_t _usage = USE_ALL;
22
23//   _usage = usage_unset(_usage,USE_SYSTEMC              );
24//   _usage = usage_unset(_usage,USE_VHDL                 );
25//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
26//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
27//   _usage = usage_unset(_usage,USE_POSITION             );
28//   _usage = usage_unset(_usage,USE_STATISTICS           );
29//   _usage = usage_unset(_usage,USE_INFORMATION          );
30
31  OOO_Engine * _OOO_Engine = new OOO_Engine
32    (name.c_str(),
33#ifdef STATISTICS
34     _parameters_statistics,
35#endif
36     _param,
37     _usage);
38 
39#ifdef SYSTEMC
40  if (usage_is_set(_usage,USE_SYSTEMC))
41    {
42  /*********************************************************************
43   * Déclarations des signaux
44   *********************************************************************/
45  string rename;
46
47  sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);         
48  sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
49
50  ALLOC2_SC_SIGNAL( in_RENAME_VAL                       ," in_RENAME_VAL                       ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
51  ALLOC2_SC_SIGNAL(out_RENAME_ACK                       ,"out_RENAME_ACK                       ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
52  ALLOC2_SC_SIGNAL( in_RENAME_FRONT_END_ID              ," in_RENAME_FRONT_END_ID              ",Tcontext_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
53  ALLOC2_SC_SIGNAL( in_RENAME_CONTEXT_ID                ," in_RENAME_CONTEXT_ID                ",Tcontext_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
54  ALLOC2_SC_SIGNAL( in_RENAME_DEPTH                     ," in_RENAME_DEPTH                     ",Tdepth_t          ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
55  ALLOC2_SC_SIGNAL( in_RENAME_TYPE                      ," in_RENAME_TYPE                      ",Ttype_t           ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
56  ALLOC2_SC_SIGNAL( in_RENAME_OPERATION                 ," in_RENAME_OPERATION                 ",Toperation_t      ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
57  ALLOC2_SC_SIGNAL( in_RENAME_NO_EXECUTE                ," in_RENAME_NO_EXECUTE                ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
58  ALLOC2_SC_SIGNAL( in_RENAME_IS_DELAY_SLOT             ," in_RENAME_IS_DELAY_SLOT             ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
59  ALLOC2_SC_SIGNAL( in_RENAME_ADDRESS_NEXT              ," in_RENAME_ADDRESS_NEXT              ",Taddress_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
60  ALLOC2_SC_SIGNAL( in_RENAME_HAS_IMMEDIAT              ," in_RENAME_HAS_IMMEDIAT              ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
61  ALLOC2_SC_SIGNAL( in_RENAME_IMMEDIAT                  ," in_RENAME_IMMEDIAT                  ",Tgeneral_data_t   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
62  ALLOC2_SC_SIGNAL( in_RENAME_READ_RA                   ," in_RENAME_READ_RA                   ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
63  ALLOC2_SC_SIGNAL( in_RENAME_NUM_REG_RA                ," in_RENAME_NUM_REG_RA                ",Tgeneral_address_t,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
64  ALLOC2_SC_SIGNAL( in_RENAME_READ_RB                   ," in_RENAME_READ_RB                   ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
65  ALLOC2_SC_SIGNAL( in_RENAME_NUM_REG_RB                ," in_RENAME_NUM_REG_RB                ",Tgeneral_address_t,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
66  ALLOC2_SC_SIGNAL( in_RENAME_READ_RC                   ," in_RENAME_READ_RC                   ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
67  ALLOC2_SC_SIGNAL( in_RENAME_NUM_REG_RC                ," in_RENAME_NUM_REG_RC                ",Tspecial_address_t,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
68  ALLOC2_SC_SIGNAL( in_RENAME_WRITE_RD                  ," in_RENAME_WRITE_RD                  ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
69  ALLOC2_SC_SIGNAL( in_RENAME_NUM_REG_RD                ," in_RENAME_NUM_REG_RD                ",Tgeneral_address_t,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
70  ALLOC2_SC_SIGNAL( in_RENAME_WRITE_RE                  ," in_RENAME_WRITE_RE                  ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
71  ALLOC2_SC_SIGNAL( in_RENAME_NUM_REG_RE                ," in_RENAME_NUM_REG_RE                ",Tspecial_address_t,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
72  ALLOC2_SC_SIGNAL( in_RENAME_EXCEPTION_USE             ," in_RENAME_EXCEPTION_USE             ",Texception_t      ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
73  ALLOC2_SC_SIGNAL( in_RENAME_EXCEPTION                 ," in_RENAME_EXCEPTION                 ",Texception_t      ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
74
75  ALLOC1_SC_SIGNAL(out_ISSUE_VAL                        ,"out_ISSUE_VAL                        ",Tcontrol_t        ,_param->_nb_inst_issue);
76  ALLOC1_SC_SIGNAL( in_ISSUE_ACK                        ," in_ISSUE_ACK                        ",Tcontrol_t        ,_param->_nb_inst_issue);
77  ALLOC1_SC_SIGNAL(out_ISSUE_FRONT_END_ID               ,"out_ISSUE_FRONT_END_ID               ",Tcontext_t        ,_param->_nb_inst_issue);
78  ALLOC1_SC_SIGNAL(out_ISSUE_CONTEXT_ID                 ,"out_ISSUE_CONTEXT_ID                 ",Tcontext_t        ,_param->_nb_inst_issue);
79  ALLOC1_SC_SIGNAL(out_ISSUE_PACKET_ID                  ,"out_ISSUE_PACKET_ID                  ",Tpacket_t         ,_param->_nb_inst_issue);
80  ALLOC1_SC_SIGNAL(out_ISSUE_TYPE                       ,"out_ISSUE_TYPE                       ",Ttype_t           ,_param->_nb_inst_issue);
81  ALLOC1_SC_SIGNAL(out_ISSUE_OPERATION                  ,"out_ISSUE_OPERATION                  ",Toperation_t      ,_param->_nb_inst_issue);
82  ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_WRITE      ,"out_ISSUE_STORE_QUEUE_PTR_WRITE      ",Tlsq_ptr_t        ,_param->_nb_inst_issue);
83  ALLOC1_SC_SIGNAL(out_ISSUE_LOAD_QUEUE_PTR_WRITE       ,"out_ISSUE_LOAD_QUEUE_PTR_WRITE       ",Tlsq_ptr_t        ,_param->_nb_inst_issue);
84  ALLOC1_SC_SIGNAL(out_ISSUE_HAS_IMMEDIAT               ,"out_ISSUE_HAS_IMMEDIAT               ",Tcontrol_t        ,_param->_nb_inst_issue);
85  ALLOC1_SC_SIGNAL(out_ISSUE_IMMEDIAT                   ,"out_ISSUE_IMMEDIAT                   ",Tgeneral_data_t   ,_param->_nb_inst_issue);
86  ALLOC1_SC_SIGNAL(out_ISSUE_READ_RA                    ,"out_ISSUE_READ_RA                    ",Tcontrol_t        ,_param->_nb_inst_issue);
87  ALLOC1_SC_SIGNAL(out_ISSUE_NUM_REG_RA                 ,"out_ISSUE_NUM_REG_RA                 ",Tgeneral_address_t,_param->_nb_inst_issue);
88  ALLOC1_SC_SIGNAL(out_ISSUE_READ_RB                    ,"out_ISSUE_READ_RB                    ",Tcontrol_t        ,_param->_nb_inst_issue);
89  ALLOC1_SC_SIGNAL(out_ISSUE_NUM_REG_RB                 ,"out_ISSUE_NUM_REG_RB                 ",Tgeneral_address_t,_param->_nb_inst_issue);
90  ALLOC1_SC_SIGNAL(out_ISSUE_READ_RC                    ,"out_ISSUE_READ_RC                    ",Tcontrol_t        ,_param->_nb_inst_issue);
91  ALLOC1_SC_SIGNAL(out_ISSUE_NUM_REG_RC                 ,"out_ISSUE_NUM_REG_RC                 ",Tspecial_address_t,_param->_nb_inst_issue);
92  ALLOC1_SC_SIGNAL(out_ISSUE_WRITE_RD                   ,"out_ISSUE_WRITE_RD                   ",Tcontrol_t        ,_param->_nb_inst_issue);
93  ALLOC1_SC_SIGNAL(out_ISSUE_NUM_REG_RD                 ,"out_ISSUE_NUM_REG_RD                 ",Tgeneral_address_t,_param->_nb_inst_issue);
94  ALLOC1_SC_SIGNAL(out_ISSUE_WRITE_RE                   ,"out_ISSUE_WRITE_RE                   ",Tcontrol_t        ,_param->_nb_inst_issue);
95  ALLOC1_SC_SIGNAL(out_ISSUE_NUM_REG_RE                 ,"out_ISSUE_NUM_REG_RE                 ",Tspecial_address_t,_param->_nb_inst_issue);
96
97  ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_VAL                 ," in_EXECUTE_LOOP_VAL                 ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
98  ALLOC2_SC_SIGNAL(out_EXECUTE_LOOP_ACK                 ,"out_EXECUTE_LOOP_ACK                 ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
99  ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_FRONT_END_ID        ," in_EXECUTE_LOOP_FRONT_END_ID        ",Tcontext_t        ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
100  ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_CONTEXT_ID          ," in_EXECUTE_LOOP_CONTEXT_ID          ",Tcontext_t        ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
101  ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_PACKET_ID           ," in_EXECUTE_LOOP_PACKET_ID           ",Tpacket_t         ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
102//ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_TYPE                ," in_EXECUTE_LOOP_TYPE                ",Ttype_t           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
103//ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_OPERATION           ," in_EXECUTE_LOOP_OPERATION           ",Toperation_t      ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
104  ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_FLAGS               ," in_EXECUTE_LOOP_FLAGS               ",Tspecial_data_t   ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
105  ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_EXCEPTION           ," in_EXECUTE_LOOP_EXCEPTION           ",Texception_t      ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
106  ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_NO_SEQUENCE         ," in_EXECUTE_LOOP_NO_SEQUENCE         ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
107  ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_ADDRESS             ," in_EXECUTE_LOOP_ADDRESS             ",Taddress_t        ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
108  ALLOC2_SC_SIGNAL( in_EXECUTE_LOOP_DATA                ," in_EXECUTE_LOOP_DATA                ",Tgeneral_data_t   ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
109
110  ALLOC1_SC_SIGNAL(out_INSERT_VAL                       ,"out_INSERT_VAL                       ",Tcontrol_t        ,_param->_sum_inst_insert);
111  ALLOC1_SC_SIGNAL( in_INSERT_ACK                       ," in_INSERT_ACK                       ",Tcontrol_t        ,_param->_sum_inst_insert);
112  ALLOC1_SC_SIGNAL(out_INSERT_RD_USE                    ,"out_INSERT_RD_USE                    ",Tcontrol_t        ,_param->_sum_inst_insert);
113  ALLOC1_SC_SIGNAL(out_INSERT_RD_NUM_REG                ,"out_INSERT_RD_NUM_REG                ",Tgeneral_address_t,_param->_sum_inst_insert);
114  ALLOC1_SC_SIGNAL(out_INSERT_RE_USE                    ,"out_INSERT_RE_USE                    ",Tcontrol_t        ,_param->_sum_inst_insert);
115  ALLOC1_SC_SIGNAL(out_INSERT_RE_NUM_REG                ,"out_INSERT_RE_NUM_REG                ",Tspecial_address_t,_param->_sum_inst_insert);
116
117//   ALLOC1_SC_SIGNAL(out_RETIRE_VAL                       ,"out_RETIRE_VAL                       ",Tcontrol_t        ,_param->_sum_inst_retire);
118//   ALLOC1_SC_SIGNAL( in_RETIRE_ACK                       ," in_RETIRE_ACK                       ",Tcontrol_t        ,_param->_sum_inst_retire);
119//   ALLOC1_SC_SIGNAL(out_RETIRE_RD_OLD_USE                ,"out_RETIRE_RD_OLD_USE                ",Tcontrol_t        ,_param->_sum_inst_retire);
120//   ALLOC1_SC_SIGNAL(out_RETIRE_RD_OLD_NUM_REG            ,"out_RETIRE_RD_OLD_NUM_REG            ",Tgeneral_address_t,_param->_sum_inst_retire);
121//   ALLOC1_SC_SIGNAL(out_RETIRE_RD_NEW_USE                ,"out_RETIRE_RD_NEW_USE                ",Tcontrol_t        ,_param->_sum_inst_retire);
122//   ALLOC1_SC_SIGNAL(out_RETIRE_RD_NEW_NUM_REG            ,"out_RETIRE_RD_NEW_NUM_REG            ",Tgeneral_address_t,_param->_sum_inst_retire);
123//   ALLOC1_SC_SIGNAL(out_RETIRE_RE_OLD_USE                ,"out_RETIRE_RE_OLD_USE                ",Tcontrol_t        ,_param->_sum_inst_retire);
124//   ALLOC1_SC_SIGNAL(out_RETIRE_RE_OLD_NUM_REG            ,"out_RETIRE_RE_OLD_NUM_REG            ",Tspecial_address_t,_param->_sum_inst_retire);
125//   ALLOC1_SC_SIGNAL(out_RETIRE_RE_NEW_USE                ,"out_RETIRE_RE_NEW_USE                ",Tcontrol_t        ,_param->_sum_inst_retire);
126//   ALLOC1_SC_SIGNAL(out_RETIRE_RE_NEW_NUM_REG            ,"out_RETIRE_RE_NEW_NUM_REG            ",Tspecial_address_t,_param->_sum_inst_retire);
127
128  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_VAL              ,"out_BRANCH_COMPLETE_VAL              ",Tcontrol_t        ,_param->_nb_inst_branch_complete);
129  ALLOC1_SC_SIGNAL( in_BRANCH_COMPLETE_ACK              ," in_BRANCH_COMPLETE_ACK              ",Tcontrol_t        ,_param->_nb_inst_branch_complete);
130  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_ID     ,"out_BRANCH_COMPLETE_FRONT_END_ID     ",Tcontext_t        ,_param->_nb_inst_branch_complete);
131  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_CONTEXT_ID       ,"out_BRANCH_COMPLETE_CONTEXT_ID       ",Tcontext_t        ,_param->_nb_inst_branch_complete);
132  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_DEPTH            ,"out_BRANCH_COMPLETE_DEPTH            ",Tdepth_t          ,_param->_nb_inst_branch_complete);
133  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_ADDRESS          ,"out_BRANCH_COMPLETE_ADDRESS          ",Taddress_t        ,_param->_nb_inst_branch_complete);
134  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_NO_SEQUENCE      ,"out_BRANCH_COMPLETE_NO_SEQUENCE      ",Tcontrol_t        ,_param->_nb_inst_branch_complete);
135  ALLOC1_SC_SIGNAL( in_BRANCH_COMPLETE_MISS_PREDICTION  ," in_BRANCH_COMPLETE_MISS_PREDICTION  ",Tcontrol_t        ,_param->_nb_inst_branch_complete);
136
137  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_VAL                 ,"out_COMMIT_EVENT_VAL                 ",Tcontrol_t        );
138  ALLOC_SC_SIGNAL ( in_COMMIT_EVENT_ACK                 ," in_COMMIT_EVENT_ACK                 ",Tcontrol_t        );
139  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_FRONT_END_ID        ,"out_COMMIT_EVENT_FRONT_END_ID        ",Tcontext_t        );
140  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_CONTEXT_ID          ,"out_COMMIT_EVENT_CONTEXT_ID          ",Tcontext_t        );
141  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_DEPTH               ,"out_COMMIT_EVENT_DEPTH               ",Tdepth_t          );
142  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_TYPE                ,"out_COMMIT_EVENT_TYPE                ",Tevent_type_t     );
143  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_IS_DELAY_SLOT       ,"out_COMMIT_EVENT_IS_DELAY_SLOT       ",Tcontrol_t        );
144  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_ADDRESS             ,"out_COMMIT_EVENT_ADDRESS             ",Taddress_t        );
145  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_ADDRESS_EPCR_VAL    ,"out_COMMIT_EVENT_ADDRESS_EPCR_VAL    ",Tcontrol_t        );
146  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_ADDRESS_EPCR        ,"out_COMMIT_EVENT_ADDRESS_EPCR        ",Taddress_t        );
147  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_ADDRESS_EEAR_VAL    ,"out_COMMIT_EVENT_ADDRESS_EEAR_VAL    ",Tcontrol_t        );
148  ALLOC_SC_SIGNAL (out_COMMIT_EVENT_ADDRESS_EEAR        ,"out_COMMIT_EVENT_ADDRESS_EEAR        ",Tgeneral_data_t   );
149
150  ALLOC2_SC_SIGNAL( in_EVENT_VAL                        ," in_EVENT_VAL                        ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
151  ALLOC2_SC_SIGNAL(out_EVENT_ACK                        ,"out_EVENT_ACK                        ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
152  ALLOC2_SC_SIGNAL( in_EVENT_ADDRESS                    ," in_EVENT_ADDRESS                    ",Taddress_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
153  ALLOC2_SC_SIGNAL( in_EVENT_ADDRESS_NEXT               ," in_EVENT_ADDRESS_NEXT               ",Taddress_t        ,_param->_nb_front_end,_param->_nb_context[it1]); 
154  ALLOC2_SC_SIGNAL( in_EVENT_ADDRESS_NEXT_VAL           ," in_EVENT_ADDRESS_NEXT_VAL           ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
155  ALLOC2_SC_SIGNAL( in_EVENT_IS_DS_TAKE                 ," in_EVENT_IS_DS_TAKE                 ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
156
157  ALLOC2_SC_SIGNAL( in_SPR_EVENT_VAL                    ," in_SPR_EVENT_VAL                    ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
158  ALLOC2_SC_SIGNAL(out_SPR_EVENT_ACK                    ,"out_SPR_EVENT_ACK                    ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
159  ALLOC2_SC_SIGNAL( in_SPR_EVENT_EPCR                   ," in_SPR_EVENT_EPCR                   ",Tspr_t            ,_param->_nb_front_end,_param->_nb_context[it1]);
160  ALLOC2_SC_SIGNAL( in_SPR_EVENT_EEAR_WEN               ," in_SPR_EVENT_EEAR_WEN               ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
161  ALLOC2_SC_SIGNAL( in_SPR_EVENT_EEAR                   ," in_SPR_EVENT_EEAR                   ",Tspr_t            ,_param->_nb_front_end,_param->_nb_context[it1]);
162  ALLOC2_SC_SIGNAL( in_SPR_EVENT_SR_DSX                 ," in_SPR_EVENT_SR_DSX                 ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
163  ALLOC2_SC_SIGNAL( in_SPR_EVENT_SR_TO_ESR              ," in_SPR_EVENT_SR_TO_ESR              ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
164
165  ALLOC2_SC_SIGNAL(out_NB_INST_COMMIT_ALL               ,"out_NB_INST_COMMIT_ALL               ",Tcounter_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
166  ALLOC2_SC_SIGNAL(out_NB_INST_COMMIT_MEM               ,"out_NB_INST_COMMIT_MEM               ",Tcounter_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
167
168  ALLOC2_SC_SIGNAL( in_DEPTH_MIN                        ," in_DEPTH_MIN                        ",Tdepth_t          ,_param->_nb_front_end,_param->_nb_context[it1]);
169  ALLOC2_SC_SIGNAL( in_DEPTH_MAX                        ," in_DEPTH_MAX                        ",Tdepth_t          ,_param->_nb_front_end,_param->_nb_context[it1]);
170  ALLOC2_SC_SIGNAL( in_DEPTH_FULL                       ," in_DEPTH_FULL                       ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
171
172  ALLOC2_SC_SIGNAL(out_SPR_SR_IEE                       ,"out_SPR_SR_IEE                       ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
173  ALLOC2_SC_SIGNAL(out_SPR_SR_EPH                       ,"out_SPR_SR_EPH                       ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
174 
175  /********************************************************
176   * Instanciation
177   ********************************************************/
178 
179  msg(_("<%s> : Instanciation of _OOO_Engine.\n"),name.c_str());
180
181  (*(_OOO_Engine->in_CLOCK))        (*(in_CLOCK));
182  (*(_OOO_Engine->in_NRESET))       (*(in_NRESET));
183
184  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_VAL                       ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
185  INSTANCE2_SC_SIGNAL(_OOO_Engine,out_RENAME_ACK                       ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
186  if (_param->_have_port_front_end_id)
187  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_FRONT_END_ID              ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
188  if (_param->_have_port_context_id)
189  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_CONTEXT_ID                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
190  if (_param->_have_port_depth)
191  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_DEPTH                     ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
192  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_TYPE                      ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
193  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_OPERATION                 ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
194  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_NO_EXECUTE                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
195  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_IS_DELAY_SLOT             ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
196  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_ADDRESS_NEXT              ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
197  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_HAS_IMMEDIAT              ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
198  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_IMMEDIAT                  ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
199  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_READ_RA                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
200  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_NUM_REG_RA                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
201  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_READ_RB                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
202  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_NUM_REG_RB                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
203  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_READ_RC                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
204  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_NUM_REG_RC                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
205  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_WRITE_RD                  ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
206  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_NUM_REG_RD                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
207  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_WRITE_RE                  ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
208  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_NUM_REG_RE                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
209  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_EXCEPTION_USE             ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
210  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_EXCEPTION                 ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
211
212  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_VAL                        ,_param->_nb_inst_issue);
213  INSTANCE1_SC_SIGNAL(_OOO_Engine, in_ISSUE_ACK                        ,_param->_nb_inst_issue);
214  if (_param->_have_port_front_end_id)
215  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_FRONT_END_ID               ,_param->_nb_inst_issue);
216  if (_param->_have_port_context_id)
217  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_CONTEXT_ID                 ,_param->_nb_inst_issue);
218  if (_param->_have_port_rob_ptr)
219  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_PACKET_ID                  ,_param->_nb_inst_issue);
220  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_TYPE                       ,_param->_nb_inst_issue);
221  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_OPERATION                  ,_param->_nb_inst_issue);
222  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_PTR_WRITE      ,_param->_nb_inst_issue);
223  if (_param->_have_port_load_queue_ptr)
224  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_LOAD_QUEUE_PTR_WRITE       ,_param->_nb_inst_issue);
225  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_HAS_IMMEDIAT               ,_param->_nb_inst_issue);
226  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_IMMEDIAT                   ,_param->_nb_inst_issue);
227  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_READ_RA                    ,_param->_nb_inst_issue);
228  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_NUM_REG_RA                 ,_param->_nb_inst_issue);
229  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_READ_RB                    ,_param->_nb_inst_issue);
230  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_NUM_REG_RB                 ,_param->_nb_inst_issue);
231  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_READ_RC                    ,_param->_nb_inst_issue);
232  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_NUM_REG_RC                 ,_param->_nb_inst_issue);
233  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_WRITE_RD                   ,_param->_nb_inst_issue);
234  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_NUM_REG_RD                 ,_param->_nb_inst_issue);
235  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_WRITE_RE                   ,_param->_nb_inst_issue);
236  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_NUM_REG_RE                 ,_param->_nb_inst_issue);
237
238  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_VAL                 ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
239  INSTANCE2_SC_SIGNAL(_OOO_Engine,out_EXECUTE_LOOP_ACK                 ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
240  if (_param->_have_port_front_end_id)
241  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_FRONT_END_ID        ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
242  if (_param->_have_port_context_id)
243  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_CONTEXT_ID          ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
244  if (_param->_have_port_rob_ptr)
245  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_PACKET_ID           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
246//INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_TYPE                ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
247//INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_OPERATION           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
248  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_FLAGS               ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
249  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_EXCEPTION           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
250  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_NO_SEQUENCE         ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
251  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_ADDRESS             ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
252  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EXECUTE_LOOP_DATA                ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
253
254  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_INSERT_VAL                       ,_param->_sum_inst_insert);
255  INSTANCE1_SC_SIGNAL(_OOO_Engine, in_INSERT_ACK                       ,_param->_sum_inst_insert);
256  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_INSERT_RD_USE                    ,_param->_sum_inst_insert);
257  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_INSERT_RD_NUM_REG                ,_param->_sum_inst_insert);
258  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_INSERT_RE_USE                    ,_param->_sum_inst_insert);
259  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_INSERT_RE_NUM_REG                ,_param->_sum_inst_insert);
260
261//   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_RETIRE_VAL                       ,_param->_sum_inst_retire);
262//   INSTANCE1_SC_SIGNAL(_OOO_Engine, in_RETIRE_ACK                       ,_param->_sum_inst_retire);
263//   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_RETIRE_RD_OLD_USE                ,_param->_sum_inst_retire);
264//   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_RETIRE_RD_OLD_NUM_REG            ,_param->_sum_inst_retire);
265//   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_RETIRE_RD_NEW_USE                ,_param->_sum_inst_retire);
266//   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_RETIRE_RD_NEW_NUM_REG            ,_param->_sum_inst_retire);
267//   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_RETIRE_RE_OLD_USE                ,_param->_sum_inst_retire);
268//   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_RETIRE_RE_OLD_NUM_REG            ,_param->_sum_inst_retire);
269//   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_RETIRE_RE_NEW_USE                ,_param->_sum_inst_retire);
270//   INSTANCE1_SC_SIGNAL(_OOO_Engine,out_RETIRE_RE_NEW_NUM_REG            ,_param->_sum_inst_retire);
271
272  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_BRANCH_COMPLETE_VAL              ,_param->_nb_inst_branch_complete);
273  INSTANCE1_SC_SIGNAL(_OOO_Engine, in_BRANCH_COMPLETE_ACK              ,_param->_nb_inst_branch_complete);
274  if (_param->_have_port_front_end_id)
275  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_BRANCH_COMPLETE_FRONT_END_ID     ,_param->_nb_inst_branch_complete);
276  if (_param->_have_port_context_id)
277  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_BRANCH_COMPLETE_CONTEXT_ID       ,_param->_nb_inst_branch_complete);
278  if (_param->_have_port_depth)
279  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_BRANCH_COMPLETE_DEPTH            ,_param->_nb_inst_branch_complete);
280  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_BRANCH_COMPLETE_ADDRESS          ,_param->_nb_inst_branch_complete);
281  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_BRANCH_COMPLETE_NO_SEQUENCE      ,_param->_nb_inst_branch_complete);
282  INSTANCE1_SC_SIGNAL(_OOO_Engine, in_BRANCH_COMPLETE_MISS_PREDICTION  ,_param->_nb_inst_branch_complete);
283
284  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_VAL                 );
285  INSTANCE_SC_SIGNAL (_OOO_Engine, in_COMMIT_EVENT_ACK                 );
286  if (_param->_have_port_front_end_id)
287  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_FRONT_END_ID        );
288  if (_param->_have_port_context_id)
289  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_CONTEXT_ID          );
290  if (_param->_have_port_depth)
291  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_DEPTH               );
292  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_TYPE                );
293  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_IS_DELAY_SLOT       );
294  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_ADDRESS             );
295  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_ADDRESS_EPCR_VAL    );
296  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_ADDRESS_EPCR        );
297  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_ADDRESS_EEAR_VAL    );
298  INSTANCE_SC_SIGNAL (_OOO_Engine,out_COMMIT_EVENT_ADDRESS_EEAR        );
299
300  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EVENT_VAL                        ,_param->_nb_front_end,_param->_nb_context[it1]);
301  INSTANCE2_SC_SIGNAL(_OOO_Engine,out_EVENT_ACK                        ,_param->_nb_front_end,_param->_nb_context[it1]);
302  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EVENT_ADDRESS                    ,_param->_nb_front_end,_param->_nb_context[it1]);
303  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EVENT_ADDRESS_NEXT               ,_param->_nb_front_end,_param->_nb_context[it1]); 
304  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EVENT_ADDRESS_NEXT_VAL           ,_param->_nb_front_end,_param->_nb_context[it1]);
305  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_EVENT_IS_DS_TAKE                 ,_param->_nb_front_end,_param->_nb_context[it1]);
306
307  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_SPR_EVENT_VAL                    ,_param->_nb_front_end,_param->_nb_context[it1]);
308  INSTANCE2_SC_SIGNAL(_OOO_Engine,out_SPR_EVENT_ACK                    ,_param->_nb_front_end,_param->_nb_context[it1]);
309  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_SPR_EVENT_EPCR                   ,_param->_nb_front_end,_param->_nb_context[it1]);
310  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_SPR_EVENT_EEAR_WEN               ,_param->_nb_front_end,_param->_nb_context[it1]);
311  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_SPR_EVENT_EEAR                   ,_param->_nb_front_end,_param->_nb_context[it1]);
312  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_SPR_EVENT_SR_DSX                 ,_param->_nb_front_end,_param->_nb_context[it1]);
313  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_SPR_EVENT_SR_TO_ESR              ,_param->_nb_front_end,_param->_nb_context[it1]);
314
315  INSTANCE2_SC_SIGNAL(_OOO_Engine,out_NB_INST_COMMIT_ALL               ,_param->_nb_front_end,_param->_nb_context[it1]);
316  INSTANCE2_SC_SIGNAL(_OOO_Engine,out_NB_INST_COMMIT_MEM               ,_param->_nb_front_end,_param->_nb_context[it1]);
317 
318  if (_param->_have_port_depth)
319    {
320  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_DEPTH_MIN                        ,_param->_nb_front_end,_param->_nb_context[it1]);
321  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_DEPTH_MAX                        ,_param->_nb_front_end,_param->_nb_context[it1]);
322    }
323  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_DEPTH_FULL                       ,_param->_nb_front_end,_param->_nb_context[it1]);
324  INSTANCE2_SC_SIGNAL(_OOO_Engine,out_SPR_SR_IEE                       ,_param->_nb_front_end,_param->_nb_context[it1]);
325  INSTANCE2_SC_SIGNAL(_OOO_Engine,out_SPR_SR_EPH                       ,_param->_nb_front_end,_param->_nb_context[it1]);
326
327  msg(_("<%s> : Start Simulation ............\n"),name.c_str());
328   
329  Time * _time = new Time();
330
331  /********************************************************
332   * Simulation - Begin
333   ********************************************************/
334
335  // Initialisation
336
337  const uint32_t seed = 0;
338//const uint32_t seed = static_cast<uint32_t>(time(NULL));
339
340  srand(seed);
341
342  SC_START(0);
343  LABEL("Initialisation");
344
345  LABEL("Reset");
346  in_NRESET->write(0);
347  SC_START(5);
348  in_NRESET->write(1); 
349
350  LABEL("Loop of Test");
351
352  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
353    {
354      LABEL("Iteration %d",iteration);
355
356      SC_START(1);
357    }
358
359  /********************************************************
360   * Simulation - End
361   ********************************************************/
362
363  TEST_OK ("End of Simulation");
364  delete _time;
365
366  msg(_("<%s> : ............ Stop Simulation\n"),name.c_str());
367
368  delete in_CLOCK;
369  delete in_NRESET;
370
371  DELETE2_SC_SIGNAL( in_RENAME_VAL                       ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
372  DELETE2_SC_SIGNAL(out_RENAME_ACK                       ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
373  DELETE2_SC_SIGNAL( in_RENAME_FRONT_END_ID              ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
374  DELETE2_SC_SIGNAL( in_RENAME_CONTEXT_ID                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
375  DELETE2_SC_SIGNAL( in_RENAME_DEPTH                     ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
376  DELETE2_SC_SIGNAL( in_RENAME_TYPE                      ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
377  DELETE2_SC_SIGNAL( in_RENAME_OPERATION                 ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
378  DELETE2_SC_SIGNAL( in_RENAME_NO_EXECUTE                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
379  DELETE2_SC_SIGNAL( in_RENAME_IS_DELAY_SLOT             ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
380  DELETE2_SC_SIGNAL( in_RENAME_ADDRESS_NEXT              ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
381  DELETE2_SC_SIGNAL( in_RENAME_HAS_IMMEDIAT              ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
382  DELETE2_SC_SIGNAL( in_RENAME_IMMEDIAT                  ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
383  DELETE2_SC_SIGNAL( in_RENAME_READ_RA                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
384  DELETE2_SC_SIGNAL( in_RENAME_NUM_REG_RA                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
385  DELETE2_SC_SIGNAL( in_RENAME_READ_RB                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
386  DELETE2_SC_SIGNAL( in_RENAME_NUM_REG_RB                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
387  DELETE2_SC_SIGNAL( in_RENAME_READ_RC                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
388  DELETE2_SC_SIGNAL( in_RENAME_NUM_REG_RC                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
389  DELETE2_SC_SIGNAL( in_RENAME_WRITE_RD                  ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
390  DELETE2_SC_SIGNAL( in_RENAME_NUM_REG_RD                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
391  DELETE2_SC_SIGNAL( in_RENAME_WRITE_RE                  ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
392  DELETE2_SC_SIGNAL( in_RENAME_NUM_REG_RE                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
393  DELETE2_SC_SIGNAL( in_RENAME_EXCEPTION_USE             ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
394  DELETE2_SC_SIGNAL( in_RENAME_EXCEPTION                 ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
395 
396  DELETE1_SC_SIGNAL(out_ISSUE_VAL                        ,_param->_nb_inst_issue);
397  DELETE1_SC_SIGNAL( in_ISSUE_ACK                        ,_param->_nb_inst_issue);
398  DELETE1_SC_SIGNAL(out_ISSUE_FRONT_END_ID               ,_param->_nb_inst_issue);
399  DELETE1_SC_SIGNAL(out_ISSUE_CONTEXT_ID                 ,_param->_nb_inst_issue);
400  DELETE1_SC_SIGNAL(out_ISSUE_PACKET_ID                  ,_param->_nb_inst_issue);
401  DELETE1_SC_SIGNAL(out_ISSUE_TYPE                       ,_param->_nb_inst_issue);
402  DELETE1_SC_SIGNAL(out_ISSUE_OPERATION                  ,_param->_nb_inst_issue);
403  DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_WRITE      ,_param->_nb_inst_issue);
404  DELETE1_SC_SIGNAL(out_ISSUE_LOAD_QUEUE_PTR_WRITE       ,_param->_nb_inst_issue);
405  DELETE1_SC_SIGNAL(out_ISSUE_HAS_IMMEDIAT               ,_param->_nb_inst_issue);
406  DELETE1_SC_SIGNAL(out_ISSUE_IMMEDIAT                   ,_param->_nb_inst_issue);
407  DELETE1_SC_SIGNAL(out_ISSUE_READ_RA                    ,_param->_nb_inst_issue);
408  DELETE1_SC_SIGNAL(out_ISSUE_NUM_REG_RA                 ,_param->_nb_inst_issue);
409  DELETE1_SC_SIGNAL(out_ISSUE_READ_RB                    ,_param->_nb_inst_issue);
410  DELETE1_SC_SIGNAL(out_ISSUE_NUM_REG_RB                 ,_param->_nb_inst_issue);
411  DELETE1_SC_SIGNAL(out_ISSUE_READ_RC                    ,_param->_nb_inst_issue);
412  DELETE1_SC_SIGNAL(out_ISSUE_NUM_REG_RC                 ,_param->_nb_inst_issue);
413  DELETE1_SC_SIGNAL(out_ISSUE_WRITE_RD                   ,_param->_nb_inst_issue);
414  DELETE1_SC_SIGNAL(out_ISSUE_NUM_REG_RD                 ,_param->_nb_inst_issue);
415  DELETE1_SC_SIGNAL(out_ISSUE_WRITE_RE                   ,_param->_nb_inst_issue);
416  DELETE1_SC_SIGNAL(out_ISSUE_NUM_REG_RE                 ,_param->_nb_inst_issue);
417 
418  DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_VAL                 ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
419  DELETE2_SC_SIGNAL(out_EXECUTE_LOOP_ACK                 ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
420  DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_FRONT_END_ID        ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
421  DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_CONTEXT_ID          ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
422  DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_PACKET_ID           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
423//DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_TYPE                ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
424//DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_OPERATION           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
425  DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_FLAGS               ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
426  DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_EXCEPTION           ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
427  DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_NO_SEQUENCE         ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
428  DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_ADDRESS             ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
429  DELETE2_SC_SIGNAL( in_EXECUTE_LOOP_DATA                ,_param->_nb_execute_loop,_param->_nb_inst_execute[it1]);
430 
431  DELETE1_SC_SIGNAL(out_INSERT_VAL                       ,_param->_sum_inst_insert);
432  DELETE1_SC_SIGNAL( in_INSERT_ACK                       ,_param->_sum_inst_insert);
433  DELETE1_SC_SIGNAL(out_INSERT_RD_USE                    ,_param->_sum_inst_insert);
434  DELETE1_SC_SIGNAL(out_INSERT_RD_NUM_REG                ,_param->_sum_inst_insert);
435  DELETE1_SC_SIGNAL(out_INSERT_RE_USE                    ,_param->_sum_inst_insert);
436  DELETE1_SC_SIGNAL(out_INSERT_RE_NUM_REG                ,_param->_sum_inst_insert);
437 
438//DELETE1_SC_SIGNAL(out_RETIRE_VAL                       ,_param->_sum_inst_retire);
439//DELETE1_SC_SIGNAL( in_RETIRE_ACK                       ,_param->_sum_inst_retire);
440//DELETE1_SC_SIGNAL(out_RETIRE_RD_OLD_USE                ,_param->_sum_inst_retire);
441//DELETE1_SC_SIGNAL(out_RETIRE_RD_OLD_NUM_REG            ,_param->_sum_inst_retire);
442//DELETE1_SC_SIGNAL(out_RETIRE_RD_NEW_USE                ,_param->_sum_inst_retire);
443//DELETE1_SC_SIGNAL(out_RETIRE_RD_NEW_NUM_REG            ,_param->_sum_inst_retire);
444//DELETE1_SC_SIGNAL(out_RETIRE_RE_OLD_USE                ,_param->_sum_inst_retire);
445//DELETE1_SC_SIGNAL(out_RETIRE_RE_OLD_NUM_REG            ,_param->_sum_inst_retire);
446//DELETE1_SC_SIGNAL(out_RETIRE_RE_NEW_USE                ,_param->_sum_inst_retire);
447//DELETE1_SC_SIGNAL(out_RETIRE_RE_NEW_NUM_REG            ,_param->_sum_inst_retire);
448 
449  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_VAL              ,_param->_nb_inst_branch_complete);
450  DELETE1_SC_SIGNAL( in_BRANCH_COMPLETE_ACK              ,_param->_nb_inst_branch_complete);
451  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_ID     ,_param->_nb_inst_branch_complete);
452  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_CONTEXT_ID       ,_param->_nb_inst_branch_complete);
453  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_DEPTH            ,_param->_nb_inst_branch_complete);
454  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_ADDRESS          ,_param->_nb_inst_branch_complete);
455  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_NO_SEQUENCE      ,_param->_nb_inst_branch_complete);
456  DELETE1_SC_SIGNAL( in_BRANCH_COMPLETE_MISS_PREDICTION  ,_param->_nb_inst_branch_complete);
457 
458  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_VAL                 );
459  DELETE_SC_SIGNAL  ( in_COMMIT_EVENT_ACK                 );
460  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_FRONT_END_ID        );
461  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_CONTEXT_ID          );
462  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_DEPTH               );
463  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_TYPE                );
464  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_IS_DELAY_SLOT       );
465  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_ADDRESS             );
466  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_ADDRESS_EPCR_VAL    );
467  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_ADDRESS_EPCR        );
468  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_ADDRESS_EEAR_VAL    );
469  DELETE_SC_SIGNAL  (out_COMMIT_EVENT_ADDRESS_EEAR        );
470 
471  DELETE2_SC_SIGNAL( in_EVENT_VAL                        ,_param->_nb_front_end,_param->_nb_context[it1]);
472  DELETE2_SC_SIGNAL(out_EVENT_ACK                        ,_param->_nb_front_end,_param->_nb_context[it1]);
473  DELETE2_SC_SIGNAL( in_EVENT_ADDRESS                    ,_param->_nb_front_end,_param->_nb_context[it1]);
474  DELETE2_SC_SIGNAL( in_EVENT_ADDRESS_NEXT               ,_param->_nb_front_end,_param->_nb_context[it1]); 
475  DELETE2_SC_SIGNAL( in_EVENT_ADDRESS_NEXT_VAL           ,_param->_nb_front_end,_param->_nb_context[it1]);
476  DELETE2_SC_SIGNAL( in_EVENT_IS_DS_TAKE                 ,_param->_nb_front_end,_param->_nb_context[it1]);
477  DELETE2_SC_SIGNAL( in_SPR_EVENT_VAL                    ,_param->_nb_front_end,_param->_nb_context[it1]);
478  DELETE2_SC_SIGNAL(out_SPR_EVENT_ACK                    ,_param->_nb_front_end,_param->_nb_context[it1]);
479  DELETE2_SC_SIGNAL( in_SPR_EVENT_EPCR                   ,_param->_nb_front_end,_param->_nb_context[it1]);
480  DELETE2_SC_SIGNAL( in_SPR_EVENT_EEAR_WEN               ,_param->_nb_front_end,_param->_nb_context[it1]);
481  DELETE2_SC_SIGNAL( in_SPR_EVENT_EEAR                   ,_param->_nb_front_end,_param->_nb_context[it1]);
482  DELETE2_SC_SIGNAL( in_SPR_EVENT_SR_DSX                 ,_param->_nb_front_end,_param->_nb_context[it1]);
483  DELETE2_SC_SIGNAL( in_SPR_EVENT_SR_TO_ESR              ,_param->_nb_front_end,_param->_nb_context[it1]);
484  DELETE2_SC_SIGNAL(out_NB_INST_COMMIT_ALL               ,_param->_nb_front_end,_param->_nb_context[it1]);
485  DELETE2_SC_SIGNAL(out_NB_INST_COMMIT_MEM               ,_param->_nb_front_end,_param->_nb_context[it1]);
486  DELETE2_SC_SIGNAL( in_DEPTH_MIN                        ,_param->_nb_front_end,_param->_nb_context[it1]);
487  DELETE2_SC_SIGNAL( in_DEPTH_MAX                        ,_param->_nb_front_end,_param->_nb_context[it1]);
488  DELETE2_SC_SIGNAL( in_DEPTH_FULL                       ,_param->_nb_front_end,_param->_nb_context[it1]);
489  DELETE2_SC_SIGNAL(out_SPR_SR_IEE                       ,_param->_nb_front_end,_param->_nb_context[it1]);
490  DELETE2_SC_SIGNAL(out_SPR_SR_EPH                       ,_param->_nb_front_end,_param->_nb_context[it1]);
491    }
492#endif
493
494  delete _OOO_Engine;
495#ifdef STATISTICS
496  delete _parameters_statistics;
497#endif
498}
Note: See TracBrowser for help on using the repository browser.