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

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

1) OOO_egine : add stat to depiste low perf source
2) Commit : add stat
3) LSU_Pointer : retire - always ack (else combinatory loop). insert - max nb_inst_memory
4) TopLevel? : add debug_idle_time to stop combinatory loop.
5) Issue_queue : add reexecute_queue, new implementation (routage after issue_queue)
6) Decod / Predictor : add "can_continue"

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