source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/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: 54.3 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/Commit_unit/SelfTest/include/test.h"
10#include "Behavioural/include/Allocation.h"
11#include "Common/include/Max.h"
12
13class rob_entry_t
14{
15public:  bool       val;
16public : Taddress_t address;
17};
18
19
20
21void test (string name,
22           morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Parameters * _param)
23{
24  msg(_("<%s> : Simulation SystemC.\n"),name.c_str());
25
26#ifdef STATISTICS
27  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
28#endif
29
30  Tusage_t _usage = USE_ALL;
31
32//   _usage = usage_unset(_usage,USE_SYSTEMC              );
33//   _usage = usage_unset(_usage,USE_VHDL                 );
34//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
35//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
36//   _usage = usage_unset(_usage,USE_POSITION             );
37//   _usage = usage_unset(_usage,USE_STATISTICS           );
38//   _usage = usage_unset(_usage,USE_INFORMATION          );
39
40  Commit_unit * _Commit_unit = new Commit_unit
41    (name.c_str(),
42#ifdef STATISTICS
43     _parameters_statistics,
44#endif
45     _param,
46     _usage);
47 
48#ifdef SYSTEMC
49  if (usage_is_set(_usage,USE_SYSTEMC))
50    {
51  /*********************************************************************
52   * Déclarations des signaux
53   *********************************************************************/
54  string rename;
55
56  sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);         
57  sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
58
59  ALLOC2_SC_SIGNAL( in_INSERT_VAL                     ," in_INSERT_VAL                     ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
60  ALLOC2_SC_SIGNAL(out_INSERT_ACK                     ,"out_INSERT_ACK                     ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
61  ALLOC2_SC_SIGNAL( in_INSERT_FRONT_END_ID            ," in_INSERT_FRONT_END_ID            ",Tcontext_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
62  ALLOC2_SC_SIGNAL( in_INSERT_CONTEXT_ID              ," in_INSERT_CONTEXT_ID              ",Tcontext_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
63  ALLOC2_SC_SIGNAL(out_INSERT_PACKET_ID               ,"out_INSERT_PACKET_ID               ",Tpacket_t         ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
64//ALLOC2_SC_SIGNAL( in_INSERT_RENAME_UNIT_ID          ," in_INSERT_RENAME_UNIT_ID          ",Tcontext_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
65  ALLOC2_SC_SIGNAL( in_INSERT_DEPTH                   ," in_INSERT_DEPTH                   ",Tdepth_t          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
66  ALLOC2_SC_SIGNAL( in_INSERT_TYPE                    ," in_INSERT_TYPE                    ",Ttype_t           ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
67  ALLOC2_SC_SIGNAL( in_INSERT_OPERATION               ," in_INSERT_OPERATION               ",Toperation_t      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
68  ALLOC2_SC_SIGNAL( in_INSERT_NO_EXECUTE              ," in_INSERT_NO_EXECUTE              ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
69  ALLOC2_SC_SIGNAL( in_INSERT_IS_DELAY_SLOT           ," in_INSERT_IS_DELAY_SLOT           ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
70  ALLOC2_SC_SIGNAL( in_INSERT_ADDRESS_NEXT            ," in_INSERT_ADDRESS_NEXT            ",Taddress_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
71  ALLOC2_SC_SIGNAL( in_INSERT_EXCEPTION               ," in_INSERT_EXCEPTION               ",Texception_t      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
72  ALLOC2_SC_SIGNAL( in_INSERT_EXCEPTION_USE           ," in_INSERT_EXCEPTION_USE           ",Texception_t      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
73  ALLOC2_SC_SIGNAL( in_INSERT_STORE_QUEUE_PTR_WRITE   ," in_INSERT_STORE_QUEUE_PTR_WRITE   ",Tlsq_ptr_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
74  ALLOC2_SC_SIGNAL( in_INSERT_LOAD_QUEUE_PTR_WRITE    ," in_INSERT_LOAD_QUEUE_PTR_WRITE    ",Tlsq_ptr_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
75  ALLOC2_SC_SIGNAL( in_INSERT_READ_RA                 ," in_INSERT_READ_RA                 ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
76  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RA_LOG          ," in_INSERT_NUM_REG_RA_LOG          ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
77  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RA_PHY          ," in_INSERT_NUM_REG_RA_PHY          ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
78  ALLOC2_SC_SIGNAL( in_INSERT_READ_RB                 ," in_INSERT_READ_RB                 ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
79  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RB_LOG          ," in_INSERT_NUM_REG_RB_LOG          ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
80  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RB_PHY          ," in_INSERT_NUM_REG_RB_PHY          ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
81  ALLOC2_SC_SIGNAL( in_INSERT_READ_RC                 ," in_INSERT_READ_RC                 ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
82  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RC_LOG          ," in_INSERT_NUM_REG_RC_LOG          ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
83  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RC_PHY          ," in_INSERT_NUM_REG_RC_PHY          ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
84  ALLOC2_SC_SIGNAL( in_INSERT_WRITE_RD                ," in_INSERT_WRITE_RD                ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
85  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RD_LOG          ," in_INSERT_NUM_REG_RD_LOG          ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
86  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RD_PHY_OLD      ," in_INSERT_NUM_REG_RD_PHY_OLD      ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
87  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RD_PHY_NEW      ," in_INSERT_NUM_REG_RD_PHY_NEW      ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
88  ALLOC2_SC_SIGNAL( in_INSERT_WRITE_RE                ," in_INSERT_WRITE_RE                ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
89  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RE_LOG          ," in_INSERT_NUM_REG_RE_LOG          ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
90  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RE_PHY_OLD      ," in_INSERT_NUM_REG_RE_PHY_OLD      ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
91  ALLOC2_SC_SIGNAL( in_INSERT_NUM_REG_RE_PHY_NEW      ," in_INSERT_NUM_REG_RE_PHY_NEW      ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
92  ALLOC2_SC_SIGNAL(out_RETIRE_VAL                     ,"out_RETIRE_VAL                     ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
93  ALLOC2_SC_SIGNAL( in_RETIRE_ACK                     ," in_RETIRE_ACK                     ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
94  ALLOC2_SC_SIGNAL(out_RETIRE_FRONT_END_ID            ,"out_RETIRE_FRONT_END_ID            ",Tcontext_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
95  ALLOC2_SC_SIGNAL(out_RETIRE_CONTEXT_ID              ,"out_RETIRE_CONTEXT_ID              ",Tcontext_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
96//ALLOC2_SC_SIGNAL(out_RETIRE_RENAME_UNIT_ID          ,"out_RETIRE_RENAME_UNIT_ID          ",Tcontext_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
97  ALLOC2_SC_SIGNAL(out_RETIRE_USE_STORE_QUEUE         ,"out_RETIRE_USE_STORE_QUEUE         ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
98  ALLOC2_SC_SIGNAL(out_RETIRE_USE_LOAD_QUEUE          ,"out_RETIRE_USE_LOAD_QUEUE          ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
99  ALLOC2_SC_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_WRITE   ,"out_RETIRE_STORE_QUEUE_PTR_WRITE   ",Tlsq_ptr_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
100  ALLOC2_SC_SIGNAL(out_RETIRE_LOAD_QUEUE_PTR_WRITE    ,"out_RETIRE_LOAD_QUEUE_PTR_WRITE    ",Tlsq_ptr_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
101  ALLOC2_SC_SIGNAL(out_RETIRE_READ_RA                 ,"out_RETIRE_READ_RA                 ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
102  ALLOC2_SC_SIGNAL(out_RETIRE_NUM_REG_RA_PHY          ,"out_RETIRE_NUM_REG_RA_PHY          ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
103  ALLOC2_SC_SIGNAL(out_RETIRE_READ_RB                 ,"out_RETIRE_READ_RB                 ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
104  ALLOC2_SC_SIGNAL(out_RETIRE_NUM_REG_RB_PHY          ,"out_RETIRE_NUM_REG_RB_PHY          ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
105  ALLOC2_SC_SIGNAL(out_RETIRE_READ_RC                 ,"out_RETIRE_READ_RC                 ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
106  ALLOC2_SC_SIGNAL(out_RETIRE_NUM_REG_RC_PHY          ,"out_RETIRE_NUM_REG_RC_PHY          ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
107  ALLOC2_SC_SIGNAL(out_RETIRE_WRITE_RD                ,"out_RETIRE_WRITE_RD                ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
108  ALLOC2_SC_SIGNAL(out_RETIRE_NUM_REG_RD_LOG          ,"out_RETIRE_NUM_REG_RD_LOG          ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
109  ALLOC2_SC_SIGNAL(out_RETIRE_NUM_REG_RD_PHY_OLD      ,"out_RETIRE_NUM_REG_RD_PHY_OLD      ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
110  ALLOC2_SC_SIGNAL(out_RETIRE_NUM_REG_RD_PHY_NEW      ,"out_RETIRE_NUM_REG_RD_PHY_NEW      ",Tgeneral_address_t,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
111  ALLOC2_SC_SIGNAL(out_RETIRE_WRITE_RE                ,"out_RETIRE_WRITE_RE                ",Tcontrol_t        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
112  ALLOC2_SC_SIGNAL(out_RETIRE_NUM_REG_RE_LOG          ,"out_RETIRE_NUM_REG_RE_LOG          ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
113  ALLOC2_SC_SIGNAL(out_RETIRE_NUM_REG_RE_PHY_OLD      ,"out_RETIRE_NUM_REG_RE_PHY_OLD      ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
114  ALLOC2_SC_SIGNAL(out_RETIRE_NUM_REG_RE_PHY_NEW      ,"out_RETIRE_NUM_REG_RE_PHY_NEW      ",Tspecial_address_t,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
115
116  ALLOC2_SC_SIGNAL(out_RETIRE_EVENT_VAL               ,"out_RETIRE_EVENT_VAL               ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
117  ALLOC2_SC_SIGNAL( in_RETIRE_EVENT_ACK               ," in_RETIRE_EVENT_ACK               ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
118  ALLOC2_SC_SIGNAL(out_RETIRE_EVENT_STATE             ,"out_RETIRE_EVENT_STATE             ",Tevent_state_t    ,_param->_nb_front_end,_param->_nb_context[it1]);
119
120  ALLOC1_SC_SIGNAL( in_COMMIT_VAL                     ," in_COMMIT_VAL               ",Tcontrol_t        ,_param->_nb_inst_commit);
121  ALLOC1_SC_SIGNAL(out_COMMIT_ACK                     ,"out_COMMIT_ACK               ",Tcontrol_t        ,_param->_nb_inst_commit);
122  ALLOC1_SC_SIGNAL( in_COMMIT_WEN                     ," in_COMMIT_WEN               ",Tcontrol_t        ,_param->_nb_inst_commit);
123  ALLOC1_SC_SIGNAL( in_COMMIT_PACKET_ID               ," in_COMMIT_PACKET_ID         ",Tpacket_t         ,_param->_nb_inst_commit);
124//ALLOC1_SC_SIGNAL( in_COMMIT_OPERATION               ," in_COMMIT_OPERATION         ",Toperation_t      ,_param->_nb_inst_commit);
125//ALLOC1_SC_SIGNAL( in_COMMIT_TYPE                    ," in_COMMIT_TYPE              ",Ttype_t           ,_param->_nb_inst_commit);
126  ALLOC1_SC_SIGNAL( in_COMMIT_FLAGS                   ," in_COMMIT_FLAGS             ",Tspecial_data_t   ,_param->_nb_inst_commit);
127  ALLOC1_SC_SIGNAL( in_COMMIT_EXCEPTION               ," in_COMMIT_EXCEPTION         ",Texception_t      ,_param->_nb_inst_commit);
128  ALLOC1_SC_SIGNAL( in_COMMIT_NO_SEQUENCE             ," in_COMMIT_NO_SEQUENCE       ",Tcontrol_t        ,_param->_nb_inst_commit);
129  ALLOC1_SC_SIGNAL( in_COMMIT_ADDRESS                 ," in_COMMIT_ADDRESS           ",Taddress_t        ,_param->_nb_inst_commit);
130  ALLOC1_SC_SIGNAL(out_COMMIT_NUM_REG_RD              ,"out_COMMIT_NUM_REG_RD        ",Tgeneral_address_t,_param->_nb_inst_commit);
131  ALLOC1_SC_SIGNAL(out_REEXECUTE_VAL                  ,"out_REEXECUTE_VAL                  ",Tcontrol_t        ,_param->_nb_inst_reexecute);
132  ALLOC1_SC_SIGNAL( in_REEXECUTE_ACK                  ," in_REEXECUTE_ACK                  ",Tcontrol_t        ,_param->_nb_inst_reexecute);
133  ALLOC1_SC_SIGNAL(out_REEXECUTE_CONTEXT_ID           ,"out_REEXECUTE_CONTEXT_ID           ",Tcontext_t        ,_param->_nb_inst_reexecute);
134  ALLOC1_SC_SIGNAL(out_REEXECUTE_FRONT_END_ID         ,"out_REEXECUTE_FRONT_END_ID         ",Tcontext_t        ,_param->_nb_inst_reexecute);
135  ALLOC1_SC_SIGNAL(out_REEXECUTE_PACKET_ID            ,"out_REEXECUTE_PACKET_ID            ",Tpacket_t         ,_param->_nb_inst_reexecute);
136  ALLOC1_SC_SIGNAL(out_REEXECUTE_OPERATION            ,"out_REEXECUTE_OPERATION            ",Toperation_t      ,_param->_nb_inst_reexecute);
137  ALLOC1_SC_SIGNAL(out_REEXECUTE_TYPE                 ,"out_REEXECUTE_TYPE                 ",Ttype_t           ,_param->_nb_inst_reexecute);
138  ALLOC1_SC_SIGNAL(out_REEXECUTE_STORE_QUEUE_PTR_WRITE,"out_REEXECUTE_STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_nb_inst_reexecute);
139  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_VAL            ,"out_BRANCH_COMPLETE_VAL            ",Tcontrol_t        ,_param->_nb_inst_branch_complete);
140  ALLOC1_SC_SIGNAL( in_BRANCH_COMPLETE_ACK            ," in_BRANCH_COMPLETE_ACK            ",Tcontrol_t        ,_param->_nb_inst_branch_complete);
141  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_CONTEXT_ID     ,"out_BRANCH_COMPLETE_CONTEXT_ID     ",Tcontext_t        ,_param->_nb_inst_branch_complete);
142  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_ID   ,"out_BRANCH_COMPLETE_FRONT_END_ID   ",Tcontext_t        ,_param->_nb_inst_branch_complete);
143  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_DEPTH          ,"out_BRANCH_COMPLETE_DEPTH          ",Tdepth_t          ,_param->_nb_inst_branch_complete);
144  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_ADDRESS        ,"out_BRANCH_COMPLETE_ADDRESS        ",Taddress_t        ,_param->_nb_inst_branch_complete);
145  ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_NO_SEQUENCE    ,"out_BRANCH_COMPLETE_NO_SEQUENCE    ",Tcontrol_t        ,_param->_nb_inst_branch_complete);
146  ALLOC1_SC_SIGNAL( in_BRANCH_COMPLETE_MISS_PREDICTION," in_BRANCH_COMPLETE_MISS_PREDICTION",Tcontrol_t        ,_param->_nb_inst_branch_complete);
147  ALLOC_SC_SIGNAL (out_UPDATE_VAL                      ,"out_UPDATE_VAL                      ",Tcontrol_t        );
148  ALLOC_SC_SIGNAL ( in_UPDATE_ACK                      ," in_UPDATE_ACK                      ",Tcontrol_t        );
149  ALLOC_SC_SIGNAL (out_UPDATE_CONTEXT_ID               ,"out_UPDATE_CONTEXT_ID               ",Tcontext_t        );
150  ALLOC_SC_SIGNAL (out_UPDATE_FRONT_END_ID             ,"out_UPDATE_FRONT_END_ID             ",Tcontext_t        );
151  ALLOC_SC_SIGNAL (out_UPDATE_DEPTH                    ,"out_UPDATE_DEPTH                    ",Tdepth_t          );
152  ALLOC_SC_SIGNAL (out_UPDATE_TYPE                     ,"out_UPDATE_TYPE                     ",Tevent_type_t     );
153  ALLOC_SC_SIGNAL (out_UPDATE_IS_DELAY_SLOT            ,"out_UPDATE_IS_DELAY_SLOT            ",Tcontrol_t        );
154  ALLOC_SC_SIGNAL (out_UPDATE_ADDRESS                  ,"out_UPDATE_ADDRESS                  ",Taddress_t        );
155  ALLOC_SC_SIGNAL (out_UPDATE_ADDRESS_EPCR_VAL         ,"out_UPDATE_ADDRESS_EPCR_VAL         ",Tcontrol_t        );
156  ALLOC_SC_SIGNAL (out_UPDATE_ADDRESS_EPCR             ,"out_UPDATE_ADDRESS_EPCR             ",Taddress_t        );
157  ALLOC_SC_SIGNAL (out_UPDATE_ADDRESS_EEAR_VAL         ,"out_UPDATE_ADDRESS_EEAR_VAL         ",Tcontrol_t        );
158  ALLOC_SC_SIGNAL (out_UPDATE_ADDRESS_EEAR             ,"out_UPDATE_ADDRESS_EEAR             ",Tgeneral_data_t   );
159
160  ALLOC2_SC_SIGNAL( in_EVENT_VAL             ," in_EVENT_VAL             ",Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]);
161  ALLOC2_SC_SIGNAL(out_EVENT_ACK             ,"out_EVENT_ACK             ",Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]);
162  ALLOC2_SC_SIGNAL( in_EVENT_ADDRESS         ," in_EVENT_ADDRESS         ",Taddress_t,_param->_nb_front_end,_param->_nb_context[it1]);
163  ALLOC2_SC_SIGNAL( in_EVENT_ADDRESS_NEXT    ," in_EVENT_ADDRESS_NEXT    ",Taddress_t,_param->_nb_front_end,_param->_nb_context[it1]); 
164  ALLOC2_SC_SIGNAL( in_EVENT_ADDRESS_NEXT_VAL," in_EVENT_ADDRESS_NEXT_VAL",Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]);
165  ALLOC2_SC_SIGNAL( in_EVENT_IS_DS_TAKE      ," in_EVENT_IS_DS_TAKE      ",Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]);
166
167  ALLOC2_SC_SIGNAL(out_NB_INST_COMMIT_ALL             ,"out_NB_INST_COMMIT_ALL             ",Tcounter_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
168  ALLOC2_SC_SIGNAL(out_NB_INST_COMMIT_MEM             ,"out_NB_INST_COMMIT_MEM             ",Tcounter_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
169  ALLOC2_SC_SIGNAL( in_DEPTH_MIN                      ," in_DEPTH_MIN                      ",Tdepth_t          ,_param->_nb_front_end,_param->_nb_context[it1]);
170  ALLOC2_SC_SIGNAL( in_DEPTH_MAX                      ," in_DEPTH_MAX                      ",Tdepth_t          ,_param->_nb_front_end,_param->_nb_context[it1]);
171  ALLOC2_SC_SIGNAL( in_DEPTH_FULL                     ," in_DEPTH_FULL                     ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
172
173  ALLOC2_SC_SIGNAL( in_SPR_READ_SR_OVE                ," in_SPR_READ_SR_OVE                ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
174
175  ALLOC2_SC_SIGNAL(out_SPR_WRITE_VAL                  ,"out_SPR_WRITE_VAL                  ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
176  ALLOC2_SC_SIGNAL( in_SPR_WRITE_ACK                  ," in_SPR_WRITE_ACK                  ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
177  ALLOC2_SC_SIGNAL(out_SPR_WRITE_SR_F_VAL             ,"out_SPR_WRITE_SR_F_VAL             ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
178  ALLOC2_SC_SIGNAL(out_SPR_WRITE_SR_F                 ,"out_SPR_WRITE_SR_F                 ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
179  ALLOC2_SC_SIGNAL(out_SPR_WRITE_SR_CY_VAL            ,"out_SPR_WRITE_SR_CY_VAL            ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
180  ALLOC2_SC_SIGNAL(out_SPR_WRITE_SR_CY                ,"out_SPR_WRITE_SR_CY                ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
181  ALLOC2_SC_SIGNAL(out_SPR_WRITE_SR_OV_VAL            ,"out_SPR_WRITE_SR_OV_VAL            ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
182  ALLOC2_SC_SIGNAL(out_SPR_WRITE_SR_OV                ,"out_SPR_WRITE_SR_OV                ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_context[it1]);
183
184  /********************************************************
185   * Instanciation
186   ********************************************************/
187 
188  msg(_("<%s> : Instanciation of _Commit_unit.\n"),name.c_str());
189
190  (*(_Commit_unit->in_CLOCK))        (*(in_CLOCK));
191  (*(_Commit_unit->in_NRESET))       (*(in_NRESET));
192
193  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_VAL                     ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
194  INSTANCE2_SC_SIGNAL(_Commit_unit,out_INSERT_ACK                     ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
195  if (_param->_have_port_front_end_id)
196  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_FRONT_END_ID            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
197  if (_param->_have_port_context_id)
198  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_CONTEXT_ID              ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
199  if (_param->_have_port_rob_ptr  )
200  INSTANCE2_SC_SIGNAL(_Commit_unit,out_INSERT_PACKET_ID               ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
201//INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_RENAME_UNIT_ID          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
202  if (_param->_have_port_depth)
203  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_DEPTH                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
204  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_TYPE                    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
205  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_OPERATION               ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
206  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_IS_DELAY_SLOT           ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
207  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NO_EXECUTE              ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
208  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_ADDRESS_NEXT            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
209  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_EXCEPTION               ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
210  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_EXCEPTION_USE           ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
211  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_STORE_QUEUE_PTR_WRITE   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
212  if (_param->_have_port_load_queue_ptr)
213  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_LOAD_QUEUE_PTR_WRITE    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
214  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_READ_RA                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
215  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RA_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
216  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RA_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
217  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_READ_RB                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
218  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RB_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
219  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RB_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
220  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_READ_RC                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
221  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RC_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
222  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RC_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
223  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_WRITE_RD                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
224  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RD_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
225  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RD_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
226  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RD_PHY_NEW      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
227  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_WRITE_RE                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
228  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RE_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
229  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RE_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
230  INSTANCE2_SC_SIGNAL(_Commit_unit, in_INSERT_NUM_REG_RE_PHY_NEW      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
231  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_VAL                     ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
232  INSTANCE2_SC_SIGNAL(_Commit_unit, in_RETIRE_ACK                     ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
233  if (_param->_have_port_front_end_id)
234  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_FRONT_END_ID            ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
235  if (_param->_have_port_context_id)
236  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_CONTEXT_ID              ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
237//INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_RENAME_UNIT_ID          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
238  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_USE_STORE_QUEUE         ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
239  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_USE_LOAD_QUEUE          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
240  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_STORE_QUEUE_PTR_WRITE   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
241  if (_param->_have_port_load_queue_ptr)
242  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_LOAD_QUEUE_PTR_WRITE    ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
243  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_READ_RA                 ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
244  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_NUM_REG_RA_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
245  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_READ_RB                 ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
246  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_NUM_REG_RB_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
247  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_READ_RC                 ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
248  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_NUM_REG_RC_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
249  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_WRITE_RD                ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
250  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_NUM_REG_RD_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
251  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_NUM_REG_RD_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
252  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_NUM_REG_RD_PHY_NEW      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
253  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_WRITE_RE                ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
254  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_NUM_REG_RE_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
255  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_NUM_REG_RE_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
256  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_NUM_REG_RE_PHY_NEW      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
257  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_EVENT_VAL               ,_param->_nb_front_end,_param->_nb_context[it1]);
258  INSTANCE2_SC_SIGNAL(_Commit_unit, in_RETIRE_EVENT_ACK               ,_param->_nb_front_end,_param->_nb_context[it1]);
259  INSTANCE2_SC_SIGNAL(_Commit_unit,out_RETIRE_EVENT_STATE             ,_param->_nb_front_end,_param->_nb_context[it1]);
260  INSTANCE1_SC_SIGNAL(_Commit_unit, in_COMMIT_VAL                     ,_param->_nb_inst_commit);
261  INSTANCE1_SC_SIGNAL(_Commit_unit,out_COMMIT_ACK                     ,_param->_nb_inst_commit);
262  INSTANCE1_SC_SIGNAL(_Commit_unit, in_COMMIT_WEN                     ,_param->_nb_inst_commit);
263  if (_param->_have_port_rob_ptr  )                                   
264  INSTANCE1_SC_SIGNAL(_Commit_unit, in_COMMIT_PACKET_ID               ,_param->_nb_inst_commit);
265//INSTANCE1_SC_SIGNAL(_Commit_unit, in_COMMIT_OPERATION               ,_param->_nb_inst_commit);
266//INSTANCE1_SC_SIGNAL(_Commit_unit, in_COMMIT_TYPE                    ,_param->_nb_inst_commit);
267  INSTANCE1_SC_SIGNAL(_Commit_unit, in_COMMIT_FLAGS                   ,_param->_nb_inst_commit);
268  INSTANCE1_SC_SIGNAL(_Commit_unit, in_COMMIT_EXCEPTION               ,_param->_nb_inst_commit);
269  INSTANCE1_SC_SIGNAL(_Commit_unit, in_COMMIT_NO_SEQUENCE             ,_param->_nb_inst_commit);
270  INSTANCE1_SC_SIGNAL(_Commit_unit, in_COMMIT_ADDRESS                 ,_param->_nb_inst_commit);
271  INSTANCE1_SC_SIGNAL(_Commit_unit,out_COMMIT_NUM_REG_RD              ,_param->_nb_inst_commit);
272  INSTANCE1_SC_SIGNAL(_Commit_unit,out_REEXECUTE_VAL                  ,_param->_nb_inst_reexecute);
273  INSTANCE1_SC_SIGNAL(_Commit_unit, in_REEXECUTE_ACK                  ,_param->_nb_inst_reexecute);
274  if (_param->_have_port_context_id)
275  INSTANCE1_SC_SIGNAL(_Commit_unit,out_REEXECUTE_CONTEXT_ID           ,_param->_nb_inst_reexecute);
276  if (_param->_have_port_front_end_id)
277  INSTANCE1_SC_SIGNAL(_Commit_unit,out_REEXECUTE_FRONT_END_ID         ,_param->_nb_inst_reexecute);
278  if (_param->_have_port_rob_ptr  )
279  INSTANCE1_SC_SIGNAL(_Commit_unit,out_REEXECUTE_PACKET_ID            ,_param->_nb_inst_reexecute);
280  INSTANCE1_SC_SIGNAL(_Commit_unit,out_REEXECUTE_OPERATION            ,_param->_nb_inst_reexecute);
281  INSTANCE1_SC_SIGNAL(_Commit_unit,out_REEXECUTE_TYPE                 ,_param->_nb_inst_reexecute);
282  INSTANCE1_SC_SIGNAL(_Commit_unit,out_REEXECUTE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_reexecute);
283  INSTANCE1_SC_SIGNAL(_Commit_unit,out_BRANCH_COMPLETE_VAL            ,_param->_nb_inst_branch_complete);
284  INSTANCE1_SC_SIGNAL(_Commit_unit, in_BRANCH_COMPLETE_ACK            ,_param->_nb_inst_branch_complete);
285  if (_param->_have_port_context_id)
286  INSTANCE1_SC_SIGNAL(_Commit_unit,out_BRANCH_COMPLETE_CONTEXT_ID     ,_param->_nb_inst_branch_complete);
287  if (_param->_have_port_front_end_id)
288  INSTANCE1_SC_SIGNAL(_Commit_unit,out_BRANCH_COMPLETE_FRONT_END_ID   ,_param->_nb_inst_branch_complete);
289  if (_param->_have_port_depth)
290  INSTANCE1_SC_SIGNAL(_Commit_unit,out_BRANCH_COMPLETE_DEPTH          ,_param->_nb_inst_branch_complete);
291  INSTANCE1_SC_SIGNAL(_Commit_unit,out_BRANCH_COMPLETE_ADDRESS        ,_param->_nb_inst_branch_complete);
292  INSTANCE1_SC_SIGNAL(_Commit_unit,out_BRANCH_COMPLETE_NO_SEQUENCE    ,_param->_nb_inst_branch_complete);
293  INSTANCE1_SC_SIGNAL(_Commit_unit, in_BRANCH_COMPLETE_MISS_PREDICTION,_param->_nb_inst_branch_complete);
294  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_VAL                      );
295  INSTANCE_SC_SIGNAL (_Commit_unit, in_UPDATE_ACK                      );
296  if (_param->_have_port_context_id)
297  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_CONTEXT_ID               );
298  if (_param->_have_port_front_end_id)
299  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_FRONT_END_ID             );
300  if (_param->_have_port_depth)
301  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_DEPTH                    );
302  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_TYPE                     );
303  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_IS_DELAY_SLOT            );
304  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_ADDRESS                  );
305  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_ADDRESS_EPCR_VAL         );
306  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_ADDRESS_EPCR             );
307  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_ADDRESS_EEAR_VAL         );
308  INSTANCE_SC_SIGNAL (_Commit_unit,out_UPDATE_ADDRESS_EEAR             );
309
310  INSTANCE2_SC_SIGNAL(_Commit_unit, in_EVENT_VAL                       ,_param->_nb_front_end, _param->_nb_context[it1]);
311  INSTANCE2_SC_SIGNAL(_Commit_unit,out_EVENT_ACK                       ,_param->_nb_front_end, _param->_nb_context[it1]);
312  INSTANCE2_SC_SIGNAL(_Commit_unit, in_EVENT_ADDRESS                   ,_param->_nb_front_end, _param->_nb_context[it1]);
313  INSTANCE2_SC_SIGNAL(_Commit_unit, in_EVENT_ADDRESS_NEXT              ,_param->_nb_front_end, _param->_nb_context[it1]); 
314  INSTANCE2_SC_SIGNAL(_Commit_unit, in_EVENT_ADDRESS_NEXT_VAL          ,_param->_nb_front_end, _param->_nb_context[it1]);
315  INSTANCE2_SC_SIGNAL(_Commit_unit, in_EVENT_IS_DS_TAKE                ,_param->_nb_front_end, _param->_nb_context[it1]);
316
317  INSTANCE2_SC_SIGNAL(_Commit_unit,out_NB_INST_COMMIT_ALL             ,_param->_nb_front_end,_param->_nb_context[it1]);
318  INSTANCE2_SC_SIGNAL(_Commit_unit,out_NB_INST_COMMIT_MEM             ,_param->_nb_front_end,_param->_nb_context[it1]);
319 
320  if (_param->_have_port_depth)
321    {
322  INSTANCE2_SC_SIGNAL(_Commit_unit, in_DEPTH_MIN                      ,_param->_nb_front_end,_param->_nb_context[it1]);
323  INSTANCE2_SC_SIGNAL(_Commit_unit, in_DEPTH_MAX                      ,_param->_nb_front_end,_param->_nb_context[it1]);
324    }
325  INSTANCE2_SC_SIGNAL(_Commit_unit, in_DEPTH_FULL                     ,_param->_nb_front_end,_param->_nb_context[it1]);
326
327  INSTANCE2_SC_SIGNAL(_Commit_unit, in_SPR_READ_SR_OVE                ,_param->_nb_front_end,_param->_nb_context[it1]);
328
329  INSTANCE2_SC_SIGNAL(_Commit_unit,out_SPR_WRITE_VAL                  ,_param->_nb_front_end,_param->_nb_context[it1]);
330  INSTANCE2_SC_SIGNAL(_Commit_unit, in_SPR_WRITE_ACK                  ,_param->_nb_front_end,_param->_nb_context[it1]);
331  INSTANCE2_SC_SIGNAL(_Commit_unit,out_SPR_WRITE_SR_F_VAL             ,_param->_nb_front_end,_param->_nb_context[it1]);
332  INSTANCE2_SC_SIGNAL(_Commit_unit,out_SPR_WRITE_SR_F                 ,_param->_nb_front_end,_param->_nb_context[it1]);
333  INSTANCE2_SC_SIGNAL(_Commit_unit,out_SPR_WRITE_SR_CY_VAL            ,_param->_nb_front_end,_param->_nb_context[it1]);
334  INSTANCE2_SC_SIGNAL(_Commit_unit,out_SPR_WRITE_SR_CY                ,_param->_nb_front_end,_param->_nb_context[it1]);
335  INSTANCE2_SC_SIGNAL(_Commit_unit,out_SPR_WRITE_SR_OV_VAL            ,_param->_nb_front_end,_param->_nb_context[it1]);
336  INSTANCE2_SC_SIGNAL(_Commit_unit,out_SPR_WRITE_SR_OV                ,_param->_nb_front_end,_param->_nb_context[it1]);
337
338  msg(_("<%s> : Start Simulation ............\n"),name.c_str());
339   
340  Time * _time = new Time();
341
342  /********************************************************
343   * Simulation - Begin
344   ********************************************************/
345
346  // Initialisation
347
348  const uint32_t seed = 0;
349//const uint32_t seed = static_cast<uint32_t>(time(NULL));
350
351  srand(seed);
352
353  SC_START(0);
354  LABEL("Initialisation");
355
356  const  int32_t percent_transaction_insert = 75;
357  const  int32_t percent_transaction_retire = 75;
358  const  int32_t percent_transaction_commit = 75;
359
360  LABEL("Reset");
361  in_NRESET->write(0);
362  SC_START(5);
363  in_NRESET->write(1); 
364
365  LABEL("Loop of Test");
366  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
367    {
368      LABEL("Iteration %d",iteration);
369      uint32_t        nb_transaction      = 512;
370      uint32_t        address_insert_min  = 0xa000;
371      uint32_t        address_insert_max  = address_insert_min + nb_transaction;
372      uint32_t        address_insert_next = address_insert_min;
373      Taddress_t      tab_address_insert     [_param->_nb_rename_unit][max<uint32_t>(_param->_nb_inst_insert,_param->_nb_rename_unit)];
374      list<Tpacket_t> tab_address_commit;
375
376      uint32_t        nb_transaction_insert      = 0;
377      uint32_t        nb_transaction_retire      = 0;
378      uint32_t        nb_transaction_commit      = 0;
379
380
381      uint32_t        packet_id_head_grp  = 0;
382      uint32_t        packet_id_head_elt  = 0;
383
384      uint32_t        packet_id_tail_grp  = 0;
385      uint32_t        packet_id_tail_elt  = 0;
386
387      rob_entry_t      rob [_param->_nb_bank*_param->_size_bank];
388
389      for (uint32_t i=0; i<_param->_nb_bank*_param->_size_bank; i++)
390        rob[i].val = false;
391
392      for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
393        for (uint32_t j=0; j<_param->_nb_inst_insert[i]; j++)
394          tab_address_insert [i][j] = address_insert_next ++;
395
396//       while ((address_insert_next < address_insert_max) or
397//           (not tab_address_commit.empty()) or
398//           (nb_transaction_retire < (address_insert_max-address_insert_min)))
399      while (nb_transaction_retire < nb_transaction)
400        {
401          LABEL("Condition d'arrêt :");
402          LABEL(" * total of transaction      : %d",nb_transaction);
403          LABEL(" * nb_transaction_insert     : %d",nb_transaction_insert);
404          LABEL(" * nb_transaction_commit     : %d",nb_transaction_commit);
405          LABEL(" * nb_transaction_retire     : %d",nb_transaction_retire);
406
407          for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
408            {
409              bool     val    = ((rand()%100)<percent_transaction_insert);
410              uint32_t nb_val = (rand()%_param->_nb_inst_insert[i]);
411              for (uint32_t j=0; j<_param->_nb_inst_insert[i]; j++)
412                {
413                  Taddress_t addr = tab_address_insert [i][j];
414                  in_INSERT_VAL                     [i][j]->write(val and (i <= nb_val) and ((nb_transaction_insert+i*_param->_nb_rename_unit+j)<nb_transaction));
415                  in_INSERT_FRONT_END_ID            [i][j]->write(0);
416                  in_INSERT_CONTEXT_ID              [i][j]->write(0);
417                  in_INSERT_DEPTH                   [i][j]->write(0);
418                  in_INSERT_TYPE                    [i][j]->write(0);
419                  in_INSERT_OPERATION               [i][j]->write(0);
420                  in_INSERT_IS_DELAY_SLOT           [i][j]->write(0);
421                  in_INSERT_NO_EXECUTE              [i][j]->write(0);
422                  in_INSERT_ADDRESS_NEXT            [i][j]->write(addr);
423                  in_INSERT_EXCEPTION               [i][j]->write(0);
424                  in_INSERT_EXCEPTION_USE           [i][j]->write(0);
425                  in_INSERT_STORE_QUEUE_PTR_WRITE   [i][j]->write(0);
426                  in_INSERT_LOAD_QUEUE_PTR_WRITE    [i][j]->write(0);
427                  in_INSERT_READ_RA                 [i][j]->write(0);
428                  in_INSERT_NUM_REG_RA_LOG          [i][j]->write(0);
429                  in_INSERT_NUM_REG_RA_PHY          [i][j]->write(0);
430                  in_INSERT_READ_RB                 [i][j]->write(0);
431                  in_INSERT_NUM_REG_RB_LOG          [i][j]->write(0);
432                  in_INSERT_NUM_REG_RB_PHY          [i][j]->write(0);
433                  in_INSERT_READ_RC                 [i][j]->write(0);
434                  in_INSERT_NUM_REG_RC_LOG          [i][j]->write(0);
435                  in_INSERT_NUM_REG_RC_PHY          [i][j]->write(0);
436                  in_INSERT_WRITE_RD                [i][j]->write(0);
437                  in_INSERT_NUM_REG_RD_LOG          [i][j]->write(0);
438                  in_INSERT_NUM_REG_RD_PHY_OLD      [i][j]->write(0);
439                  in_INSERT_NUM_REG_RD_PHY_NEW      [i][j]->write(0);
440                  in_INSERT_WRITE_RE                [i][j]->write(0);
441                  in_INSERT_NUM_REG_RE_LOG          [i][j]->write(0);
442                  in_INSERT_NUM_REG_RE_PHY_OLD      [i][j]->write(0);
443                  in_INSERT_NUM_REG_RE_PHY_NEW      [i][j]->write(0);
444                }
445            }
446
447          for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
448            {
449              bool     ack    = ((rand()%100)<percent_transaction_retire);
450              uint32_t nb_ack = rand()%_param->_nb_inst_retire[i];
451              for (uint32_t j=0; j<_param->_nb_inst_retire[i]; j++)
452                {
453                  in_RETIRE_ACK [i][j]->write(ack and (i <= nb_ack));
454                 
455                }
456            }
457
458          {
459            list<Tpacket_t>::iterator it=tab_address_commit.begin();
460
461            for (uint32_t j=0; j<_param->_nb_inst_commit; j++)
462              {
463                Tcontrol_t val = ((rand()%100)<percent_transaction_commit) and (it!=tab_address_commit.end());
464               
465                in_COMMIT_VAL [j]->write(val);
466               
467                if (val)
468                  {
469                    Tpacket_t packet = *(it);
470                   
471                    in_COMMIT_WEN         [j]->write(1);
472                    in_COMMIT_PACKET_ID   [j]->write(packet);
473                    //in_COMMIT_OPERATION   [j]->write(0);
474                    //in_COMMIT_TYPE        [j]->write(0);
475                    in_COMMIT_FLAGS       [j]->write(0);
476                    in_COMMIT_EXCEPTION   [j]->write(0);
477                    in_COMMIT_NO_SEQUENCE [j]->write(0);
478                    in_COMMIT_ADDRESS     [j]->write(0);
479                  }
480               
481                if (it != tab_address_commit.end())
482                  it++;
483              }
484          }
485
486          SC_START(0);
487
488          for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
489            for (uint32_t j=0; j<_param->_nb_inst_insert[i]; j++)
490              {
491                LABEL("INSERT            [%d][%d] - %d %d",i,j,in_INSERT_VAL [i][j]->read(),out_INSERT_ACK [i][j]->read());
492                if ( in_INSERT_VAL [i][j]->read() and
493                    out_INSERT_ACK [i][j]->read())
494                  {
495                    LABEL("INSERT            [%d][%d] Transaction Accepted",i,j);
496                    LABEL("  * packet_id_tail_grp (old) : %d",packet_id_tail_grp);
497                    LABEL("  * packet_id_tail_elt (old) : %d",packet_id_tail_elt);
498
499                    Tpacket_t packet = (_param->_have_port_rob_ptr  )?out_INSERT_PACKET_ID [i][j]->read():0;
500
501                    TEST(Tpacket_t, packet, (packet_id_tail_grp << _param->_shift_num_bank) + packet_id_tail_elt);
502
503                    TEST(bool, rob[packet].val, false);
504
505                    rob[packet].val     = true;
506                    rob[packet].address = tab_address_insert [i][j];
507
508                    tab_address_commit.push_back(packet);
509                    tab_address_insert [i][j] = address_insert_next ++;
510
511                    packet_id_tail_grp ++;
512
513                    if (packet_id_tail_grp >= _param->_nb_bank)
514                      {
515                        packet_id_tail_grp = 0;
516                        packet_id_tail_elt = (packet_id_tail_elt+1)%_param->_size_bank;
517                      }
518
519                    LABEL("  * packet_id_tail_grp (new) : %d",packet_id_tail_grp);
520                    LABEL("  * packet_id_tail_elt (new) : %d",packet_id_tail_elt);
521
522                    nb_transaction_insert ++;
523                  }
524              }
525         
526          for (uint32_t i=0; i<_param->_nb_rename_unit; i++)
527            for (uint32_t j=0; j<_param->_nb_inst_retire[i]; j++)
528              {
529                LABEL("RETIRE            [%d][%d] - %d %d",i,j,out_RETIRE_VAL [i][j]->read(),in_RETIRE_ACK [i][j]->read());
530                if (out_RETIRE_VAL [i][j]->read() and
531                     in_RETIRE_ACK [i][j]->read())
532                  {
533                    LABEL("RETIRE            [%d][%d] Transaction Accepted",i,j);
534                    LABEL("  * packet_id_head_grp (old) : %d",packet_id_head_grp);
535                    LABEL("  * packet_id_head_elt (old) : %d",packet_id_head_elt);
536
537                    Tpacket_t packet = ((packet_id_head_grp << _param->_shift_num_bank) + packet_id_head_elt);
538
539                    TEST(bool, rob[packet].val, true);
540
541                    rob[packet].val     = false;
542
543                    packet_id_head_grp ++;
544                   
545                    if (packet_id_head_grp >= _param->_nb_bank)
546                      {
547                        packet_id_head_grp = 0;
548                        packet_id_head_elt = (packet_id_head_elt+1)%_param->_size_bank;
549                      }
550
551                    LABEL("  * packet_id_head_grp (new) : %d",packet_id_head_grp);
552                    LABEL("  * packet_id_head_elt (new) : %d",packet_id_head_elt);
553
554                    nb_transaction_retire ++;
555                  }
556              }
557
558          LABEL("Dump tab_address_commit (before)");
559          for (list<Tpacket_t>::iterator it=tab_address_commit.begin();
560               it!=tab_address_commit.end();
561               ++it)
562            LABEL(" * %d",*it);
563
564          {
565            list<Tpacket_t>::iterator it=tab_address_commit.begin();
566           
567            for (uint32_t j=0; j<_param->_nb_inst_commit; j++)
568              {
569                if ( in_COMMIT_VAL [j]->read() and
570                     out_COMMIT_ACK [j]->read())
571                  {
572                    LABEL("COMMIT      [%d] Transaction Accepted",j);
573                   
574                    it = tab_address_commit.erase(it);
575                   
576                    nb_transaction_commit ++;
577                  }
578                else
579                  if (it != tab_address_commit.end())
580                    it++;
581              }
582          }
583
584          LABEL("Dump tab_address_commit (after )");
585          for (list<Tpacket_t>::iterator it=tab_address_commit.begin();
586               it!=tab_address_commit.end();
587               ++it)
588            LABEL(" * %d",*it);
589
590
591          SC_START(1);
592        }
593
594    }
595
596  /********************************************************
597   * Simulation - End
598   ********************************************************/
599
600  TEST_OK ("End of Simulation");
601  delete _time;
602
603  msg(_("<%s> : ............ Stop Simulation\n"),name.c_str());
604
605  delete in_CLOCK;
606  delete in_NRESET;
607
608  DELETE2_SC_SIGNAL( in_INSERT_VAL                     ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
609  DELETE2_SC_SIGNAL(out_INSERT_ACK                     ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
610  DELETE2_SC_SIGNAL( in_INSERT_FRONT_END_ID            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
611  DELETE2_SC_SIGNAL( in_INSERT_CONTEXT_ID              ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
612  DELETE2_SC_SIGNAL(out_INSERT_PACKET_ID               ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
613//DELETE2_SC_SIGNAL( in_INSERT_RENAME_UNIT_ID          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
614  DELETE2_SC_SIGNAL( in_INSERT_DEPTH                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
615  DELETE2_SC_SIGNAL( in_INSERT_TYPE                    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
616  DELETE2_SC_SIGNAL( in_INSERT_OPERATION               ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
617  DELETE2_SC_SIGNAL( in_INSERT_NO_EXECUTE              ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
618  DELETE2_SC_SIGNAL( in_INSERT_IS_DELAY_SLOT           ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
619  DELETE2_SC_SIGNAL( in_INSERT_ADDRESS_NEXT            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
620  DELETE2_SC_SIGNAL( in_INSERT_EXCEPTION               ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
621  DELETE2_SC_SIGNAL( in_INSERT_EXCEPTION_USE           ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
622  DELETE2_SC_SIGNAL( in_INSERT_STORE_QUEUE_PTR_WRITE   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
623  DELETE2_SC_SIGNAL( in_INSERT_LOAD_QUEUE_PTR_WRITE    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
624  DELETE2_SC_SIGNAL( in_INSERT_READ_RA                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
625  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RA_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
626  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RA_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
627  DELETE2_SC_SIGNAL( in_INSERT_READ_RB                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
628  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RB_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
629  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RB_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
630  DELETE2_SC_SIGNAL( in_INSERT_READ_RC                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
631  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RC_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
632  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RC_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
633  DELETE2_SC_SIGNAL( in_INSERT_WRITE_RD                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
634  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RD_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
635  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RD_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
636  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RD_PHY_NEW      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
637  DELETE2_SC_SIGNAL( in_INSERT_WRITE_RE                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
638  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RE_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
639  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RE_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
640  DELETE2_SC_SIGNAL( in_INSERT_NUM_REG_RE_PHY_NEW      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
641  DELETE2_SC_SIGNAL(out_RETIRE_VAL                     ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
642  DELETE2_SC_SIGNAL( in_RETIRE_ACK                     ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
643  DELETE2_SC_SIGNAL(out_RETIRE_FRONT_END_ID            ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
644  DELETE2_SC_SIGNAL(out_RETIRE_CONTEXT_ID              ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
645//DELETE2_SC_SIGNAL(out_RETIRE_RENAME_UNIT_ID          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
646  DELETE2_SC_SIGNAL(out_RETIRE_USE_STORE_QUEUE         ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
647  DELETE2_SC_SIGNAL(out_RETIRE_USE_LOAD_QUEUE          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
648  DELETE2_SC_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_WRITE   ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
649  DELETE2_SC_SIGNAL(out_RETIRE_LOAD_QUEUE_PTR_WRITE    ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
650  DELETE2_SC_SIGNAL(out_RETIRE_READ_RA                 ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
651  DELETE2_SC_SIGNAL(out_RETIRE_NUM_REG_RA_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
652  DELETE2_SC_SIGNAL(out_RETIRE_READ_RB                 ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
653  DELETE2_SC_SIGNAL(out_RETIRE_NUM_REG_RB_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
654  DELETE2_SC_SIGNAL(out_RETIRE_READ_RC                 ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
655  DELETE2_SC_SIGNAL(out_RETIRE_NUM_REG_RC_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
656  DELETE2_SC_SIGNAL(out_RETIRE_WRITE_RD                ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
657  DELETE2_SC_SIGNAL(out_RETIRE_NUM_REG_RD_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
658  DELETE2_SC_SIGNAL(out_RETIRE_NUM_REG_RD_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
659  DELETE2_SC_SIGNAL(out_RETIRE_NUM_REG_RD_PHY_NEW      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
660  DELETE2_SC_SIGNAL(out_RETIRE_WRITE_RE                ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
661  DELETE2_SC_SIGNAL(out_RETIRE_NUM_REG_RE_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
662  DELETE2_SC_SIGNAL(out_RETIRE_NUM_REG_RE_PHY_OLD      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
663  DELETE2_SC_SIGNAL(out_RETIRE_NUM_REG_RE_PHY_NEW      ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
664  DELETE2_SC_SIGNAL(out_RETIRE_EVENT_VAL               ,_param->_nb_front_end,_param->_nb_context[it1]);
665  DELETE2_SC_SIGNAL( in_RETIRE_EVENT_ACK               ,_param->_nb_front_end,_param->_nb_context[it1]);
666  DELETE2_SC_SIGNAL(out_RETIRE_EVENT_STATE             ,_param->_nb_front_end,_param->_nb_context[it1]);
667  DELETE1_SC_SIGNAL( in_COMMIT_VAL               ,_param->_nb_inst_commit);
668  DELETE1_SC_SIGNAL(out_COMMIT_ACK               ,_param->_nb_inst_commit);
669  DELETE1_SC_SIGNAL( in_COMMIT_WEN               ,_param->_nb_inst_commit);
670  DELETE1_SC_SIGNAL( in_COMMIT_PACKET_ID         ,_param->_nb_inst_commit);
671//DELETE1_SC_SIGNAL( in_COMMIT_OPERATION         ,_param->_nb_inst_commit);
672//DELETE1_SC_SIGNAL( in_COMMIT_TYPE              ,_param->_nb_inst_commit);
673  DELETE1_SC_SIGNAL( in_COMMIT_FLAGS             ,_param->_nb_inst_commit);
674  DELETE1_SC_SIGNAL( in_COMMIT_EXCEPTION         ,_param->_nb_inst_commit);
675  DELETE1_SC_SIGNAL( in_COMMIT_NO_SEQUENCE       ,_param->_nb_inst_commit);
676  DELETE1_SC_SIGNAL( in_COMMIT_ADDRESS           ,_param->_nb_inst_commit);
677  DELETE1_SC_SIGNAL(out_COMMIT_NUM_REG_RD        ,_param->_nb_inst_commit);
678  DELETE1_SC_SIGNAL(out_REEXECUTE_VAL                  ,_param->_nb_inst_reexecute);
679  DELETE1_SC_SIGNAL( in_REEXECUTE_ACK                  ,_param->_nb_inst_reexecute);
680  DELETE1_SC_SIGNAL(out_REEXECUTE_CONTEXT_ID           ,_param->_nb_inst_reexecute);
681  DELETE1_SC_SIGNAL(out_REEXECUTE_FRONT_END_ID         ,_param->_nb_inst_reexecute);
682  DELETE1_SC_SIGNAL(out_REEXECUTE_PACKET_ID            ,_param->_nb_inst_reexecute);
683  DELETE1_SC_SIGNAL(out_REEXECUTE_OPERATION            ,_param->_nb_inst_reexecute);
684  DELETE1_SC_SIGNAL(out_REEXECUTE_TYPE                 ,_param->_nb_inst_reexecute);
685  DELETE1_SC_SIGNAL(out_REEXECUTE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_reexecute);
686  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_VAL            ,_param->_nb_inst_branch_complete);
687  DELETE1_SC_SIGNAL( in_BRANCH_COMPLETE_ACK            ,_param->_nb_inst_branch_complete);
688  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_CONTEXT_ID     ,_param->_nb_inst_branch_complete);
689  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_ID   ,_param->_nb_inst_branch_complete);
690  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_DEPTH          ,_param->_nb_inst_branch_complete);
691  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_ADDRESS        ,_param->_nb_inst_branch_complete);
692  DELETE1_SC_SIGNAL(out_BRANCH_COMPLETE_NO_SEQUENCE    ,_param->_nb_inst_branch_complete);
693  DELETE1_SC_SIGNAL( in_BRANCH_COMPLETE_MISS_PREDICTION,_param->_nb_inst_branch_complete);
694  DELETE_SC_SIGNAL (out_UPDATE_VAL                      );
695  DELETE_SC_SIGNAL ( in_UPDATE_ACK                      );
696  DELETE_SC_SIGNAL (out_UPDATE_CONTEXT_ID               );
697  DELETE_SC_SIGNAL (out_UPDATE_FRONT_END_ID             );
698  DELETE_SC_SIGNAL (out_UPDATE_DEPTH                    );
699  DELETE_SC_SIGNAL (out_UPDATE_TYPE                     );
700  DELETE_SC_SIGNAL (out_UPDATE_IS_DELAY_SLOT            );
701  DELETE_SC_SIGNAL (out_UPDATE_ADDRESS                  );
702  DELETE_SC_SIGNAL (out_UPDATE_ADDRESS_EPCR_VAL         );
703  DELETE_SC_SIGNAL (out_UPDATE_ADDRESS_EPCR             );
704  DELETE_SC_SIGNAL (out_UPDATE_ADDRESS_EEAR_VAL         );
705  DELETE_SC_SIGNAL (out_UPDATE_ADDRESS_EEAR             );
706
707  DELETE2_SC_SIGNAL( in_EVENT_VAL                       ,_param->_nb_front_end, _param->_nb_context[it1]);
708  DELETE2_SC_SIGNAL(out_EVENT_ACK                       ,_param->_nb_front_end, _param->_nb_context[it1]);
709  DELETE2_SC_SIGNAL( in_EVENT_ADDRESS                   ,_param->_nb_front_end, _param->_nb_context[it1]);
710  DELETE2_SC_SIGNAL( in_EVENT_ADDRESS_NEXT              ,_param->_nb_front_end, _param->_nb_context[it1]); 
711  DELETE2_SC_SIGNAL( in_EVENT_ADDRESS_NEXT_VAL          ,_param->_nb_front_end, _param->_nb_context[it1]);
712  DELETE2_SC_SIGNAL( in_EVENT_IS_DS_TAKE                ,_param->_nb_front_end, _param->_nb_context[it1]);
713
714  DELETE2_SC_SIGNAL(out_NB_INST_COMMIT_ALL             ,_param->_nb_front_end,_param->_nb_context[it1]);
715  DELETE2_SC_SIGNAL(out_NB_INST_COMMIT_MEM             ,_param->_nb_front_end,_param->_nb_context[it1]);
716  DELETE2_SC_SIGNAL( in_DEPTH_MIN                      ,_param->_nb_front_end,_param->_nb_context[it1]);
717  DELETE2_SC_SIGNAL( in_DEPTH_MAX                      ,_param->_nb_front_end,_param->_nb_context[it1]);
718  DELETE2_SC_SIGNAL( in_DEPTH_FULL                     ,_param->_nb_front_end,_param->_nb_context[it1]);
719
720  DELETE2_SC_SIGNAL( in_SPR_READ_SR_OVE                ,_param->_nb_front_end,_param->_nb_context[it1]);
721 
722  DELETE2_SC_SIGNAL(out_SPR_WRITE_VAL                  ,_param->_nb_front_end,_param->_nb_context[it1]);
723  DELETE2_SC_SIGNAL( in_SPR_WRITE_ACK                  ,_param->_nb_front_end,_param->_nb_context[it1]);
724  DELETE2_SC_SIGNAL(out_SPR_WRITE_SR_F_VAL             ,_param->_nb_front_end,_param->_nb_context[it1]);
725  DELETE2_SC_SIGNAL(out_SPR_WRITE_SR_F                 ,_param->_nb_front_end,_param->_nb_context[it1]);
726  DELETE2_SC_SIGNAL(out_SPR_WRITE_SR_CY_VAL            ,_param->_nb_front_end,_param->_nb_context[it1]);
727  DELETE2_SC_SIGNAL(out_SPR_WRITE_SR_CY                ,_param->_nb_front_end,_param->_nb_context[it1]);
728  DELETE2_SC_SIGNAL(out_SPR_WRITE_SR_OV_VAL            ,_param->_nb_front_end,_param->_nb_context[it1]);
729  DELETE2_SC_SIGNAL(out_SPR_WRITE_SR_OV                ,_param->_nb_front_end,_param->_nb_context[it1]);
730    }
731#endif
732
733  delete _Commit_unit;
734#ifdef STATISTICS
735  delete _parameters_statistics;
736#endif
737}
Note: See TracBrowser for help on using the repository browser.