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

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

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

  • Property svn:keywords set to Id
File size: 89.0 KB
Line 
1/*
2 * $Id: test.cpp 117 2009-05-16 14:42:39Z rosiere $
3 *
4 * [ Description ]
5 *
6 * Test
7 */
8
9#include "Behavioural/Core/Core_Glue/SelfTest/include/test.h"
10#include "Behavioural/include/Allocation.h"
11#include "Common/include/BitManipulation.h"
12
13void test (string name,
14           morpheo::behavioural::core::core_glue::Parameters * _param)
15{
16  msg(_("<%s> : Simulation SystemC.\n"),name.c_str());
17
18#ifdef STATISTICS
19  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
20#endif
21
22  Tusage_t _usage = USE_ALL;
23
24//   _usage = usage_unset(_usage,USE_SYSTEMC              );
25//   _usage = usage_unset(_usage,USE_VHDL                 );
26//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
27//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
28//   _usage = usage_unset(_usage,USE_POSITION             );
29//   _usage = usage_unset(_usage,USE_STATISTICS           );
30//   _usage = usage_unset(_usage,USE_INFORMATION          );
31
32  Core_Glue * _Core_Glue = new Core_Glue
33    (name.c_str(),
34#ifdef STATISTICS
35     _parameters_statistics,
36#endif
37     _param,
38     _usage);
39 
40#ifdef SYSTEMC
41  if (usage_is_set(_usage,USE_SYSTEMC))
42    {
43  /*********************************************************************
44   * Déclarations des signaux
45   *********************************************************************/
46  string rename;
47
48  sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);         
49  sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
50
51  sc_signal<Tcontext_t        >  *** out_RENAME_FRONT_END_ID                       ;
52  sc_signal<Tcontrol_t        >  *** out_BRANCH_COMPLETE_FRONT_END_VAL             ;
53  sc_signal<Tcontrol_t        >  ***  in_BRANCH_COMPLETE_FRONT_END_ACK             ;
54  sc_signal<Tcontext_t        >  *** out_BRANCH_COMPLETE_FRONT_END_CONTEXT_ID      ;
55  sc_signal<Tdepth_t          >  *** out_BRANCH_COMPLETE_FRONT_END_DEPTH           ;
56  sc_signal<Taddress_t        >  *** out_BRANCH_COMPLETE_FRONT_END_ADDRESS         ;
57  sc_signal<Tcontrol_t        >  *** out_BRANCH_COMPLETE_FRONT_END_NO_SEQUENCE     ;
58  sc_signal<Tcontrol_t        >  ***  in_BRANCH_COMPLETE_FRONT_END_MISS_PREDICTION ;
59  sc_signal<Tcontrol_t        >  ***  in_BRANCH_COMPLETE_OOO_ENGINE_VAL            ;
60  sc_signal<Tcontrol_t        >  *** out_BRANCH_COMPLETE_OOO_ENGINE_ACK            ;
61  sc_signal<Tcontext_t        >  ***  in_BRANCH_COMPLETE_OOO_ENGINE_FRONT_END_ID   ;
62  sc_signal<Tcontext_t        >  ***  in_BRANCH_COMPLETE_OOO_ENGINE_CONTEXT_ID     ;
63  sc_signal<Tdepth_t          >  ***  in_BRANCH_COMPLETE_OOO_ENGINE_DEPTH          ;
64  sc_signal<Taddress_t        >  ***  in_BRANCH_COMPLETE_OOO_ENGINE_ADDRESS        ;
65  sc_signal<Tcontrol_t        >  ***  in_BRANCH_COMPLETE_OOO_ENGINE_NO_SEQUENCE    ;
66  sc_signal<Tcontrol_t        >  *** out_BRANCH_COMPLETE_OOO_ENGINE_MISS_PREDICTION;
67  sc_signal<Tcontrol_t        >   ** out_COMMIT_EVENT_FRONT_END_VAL                ;
68  sc_signal<Tcontrol_t        >   **  in_COMMIT_EVENT_FRONT_END_ACK                ;
69  sc_signal<Tcontext_t        >   ** out_COMMIT_EVENT_FRONT_END_CONTEXT_ID         ;
70  sc_signal<Tdepth_t          >   ** out_COMMIT_EVENT_FRONT_END_DEPTH              ;
71  sc_signal<Tevent_type_t     >   ** out_COMMIT_EVENT_FRONT_END_TYPE               ;
72  sc_signal<Tcontrol_t        >   ** out_COMMIT_EVENT_FRONT_END_IS_DELAY_SLOT      ;
73  sc_signal<Taddress_t        >   ** out_COMMIT_EVENT_FRONT_END_ADDRESS            ;
74  sc_signal<Tcontrol_t        >   ** out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR_VAL   ;
75  sc_signal<Taddress_t        >   ** out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR       ;
76  sc_signal<Tcontrol_t        >   ** out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR_VAL   ;
77  sc_signal<Tgeneral_data_t   >   ** out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR       ;
78  sc_signal<Tcontrol_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_VAL               ;
79  sc_signal<Tcontrol_t        >   ** out_COMMIT_EVENT_OOO_ENGINE_ACK               ;
80  sc_signal<Tcontext_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_FRONT_END_ID      ;
81  sc_signal<Tcontext_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_CONTEXT_ID        ;
82  sc_signal<Tdepth_t          >   **  in_COMMIT_EVENT_OOO_ENGINE_DEPTH             ;
83  sc_signal<Tevent_type_t     >   **  in_COMMIT_EVENT_OOO_ENGINE_TYPE              ;
84  sc_signal<Tcontrol_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_IS_DELAY_SLOT     ;
85  sc_signal<Taddress_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_ADDRESS           ;
86  sc_signal<Tcontrol_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR_VAL  ;
87  sc_signal<Taddress_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR      ;
88  sc_signal<Tcontrol_t        >   **  in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR_VAL  ;
89  sc_signal<Tgeneral_data_t   >   **  in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR      ;
90  sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_VAL                      ;
91  sc_signal<Tcontrol_t        >  *** out_ISSUE_OOO_ENGINE_ACK                      ;
92  sc_signal<Tcontext_t        >  ***  in_ISSUE_OOO_ENGINE_FRONT_END_ID             ;
93  sc_signal<Tcontext_t        >  ***  in_ISSUE_OOO_ENGINE_CONTEXT_ID               ;
94  sc_signal<Tpacket_t         >  ***  in_ISSUE_OOO_ENGINE_PACKET_ID                ;
95  sc_signal<Ttype_t           >  ***  in_ISSUE_OOO_ENGINE_TYPE                     ;
96  sc_signal<Toperation_t      >  ***  in_ISSUE_OOO_ENGINE_OPERATION                ;
97  sc_signal<Tlsq_ptr_t        >  ***  in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ;
98  sc_signal<Tlsq_ptr_t        >  ***  in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ;
99  sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             ;
100  sc_signal<Tgeneral_data_t   >  ***  in_ISSUE_OOO_ENGINE_IMMEDIAT                 ;
101  sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_READ_RA                  ;
102  sc_signal<Tgeneral_address_t>  ***  in_ISSUE_OOO_ENGINE_NUM_REG_RA               ;
103  sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_READ_RB                  ;
104  sc_signal<Tgeneral_address_t>  ***  in_ISSUE_OOO_ENGINE_NUM_REG_RB               ;
105  sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_READ_RC                  ;
106  sc_signal<Tspecial_address_t>  ***  in_ISSUE_OOO_ENGINE_NUM_REG_RC               ;
107  sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_WRITE_RD                 ;
108  sc_signal<Tgeneral_address_t>  ***  in_ISSUE_OOO_ENGINE_NUM_REG_RD               ;
109  sc_signal<Tcontrol_t        >  ***  in_ISSUE_OOO_ENGINE_WRITE_RE                 ;
110  sc_signal<Tspecial_address_t>  ***  in_ISSUE_OOO_ENGINE_NUM_REG_RE               ;
111  sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_VAL                    ;
112  sc_signal<Tcontrol_t        >  ***  in_ISSUE_EXECUTE_LOOP_ACK                    ;
113  sc_signal<Tcontext_t        >  *** out_ISSUE_EXECUTE_LOOP_CONTEXT_ID             ;
114  sc_signal<Tcontext_t        >  *** out_ISSUE_EXECUTE_LOOP_FRONT_END_ID           ;
115  sc_signal<Tcontext_t        >  *** out_ISSUE_EXECUTE_LOOP_OOO_ENGINE_ID          ;
116  sc_signal<Tpacket_t         >  *** out_ISSUE_EXECUTE_LOOP_PACKET_ID              ;
117  sc_signal<Toperation_t      >  *** out_ISSUE_EXECUTE_LOOP_OPERATION              ;
118  sc_signal<Ttype_t           >  *** out_ISSUE_EXECUTE_LOOP_TYPE                   ;
119  sc_signal<Tlsq_ptr_t        >  *** out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ;
120  sc_signal<Tlsq_ptr_t        >  *** out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ;
121  sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           ;
122  sc_signal<Tgeneral_data_t   >  *** out_ISSUE_EXECUTE_LOOP_IMMEDIAT               ;
123  sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_READ_RA                ;
124  sc_signal<Tgeneral_address_t>  *** out_ISSUE_EXECUTE_LOOP_NUM_REG_RA             ;
125  sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_READ_RB                ;
126  sc_signal<Tgeneral_address_t>  *** out_ISSUE_EXECUTE_LOOP_NUM_REG_RB             ;
127  sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_READ_RC                ;
128  sc_signal<Tspecial_address_t>  *** out_ISSUE_EXECUTE_LOOP_NUM_REG_RC             ;
129  sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_WRITE_RD               ;
130  sc_signal<Tgeneral_address_t>  *** out_ISSUE_EXECUTE_LOOP_NUM_REG_RD             ;
131  sc_signal<Tcontrol_t        >  *** out_ISSUE_EXECUTE_LOOP_WRITE_RE               ;
132  sc_signal<Tspecial_address_t>  *** out_ISSUE_EXECUTE_LOOP_NUM_REG_RE             ;
133  sc_signal<Tcontrol_t        > **** out_EXECUTE_OOO_ENGINE_VAL                    ;
134  sc_signal<Tcontrol_t        > ****  in_EXECUTE_OOO_ENGINE_ACK                    ;
135  sc_signal<Tcontext_t        > **** out_EXECUTE_OOO_ENGINE_FRONT_END_ID           ;
136  sc_signal<Tcontext_t        > **** out_EXECUTE_OOO_ENGINE_CONTEXT_ID             ;
137  sc_signal<Tpacket_t         > **** out_EXECUTE_OOO_ENGINE_PACKET_ID              ;
138//sc_signal<Ttype_t           > **** out_EXECUTE_OOO_ENGINE_TYPE                   ;
139//sc_signal<Toperation_t      > **** out_EXECUTE_OOO_ENGINE_OPERATION              ;
140  sc_signal<Tspecial_data_t   > **** out_EXECUTE_OOO_ENGINE_FLAGS                  ;
141  sc_signal<Texception_t      > **** out_EXECUTE_OOO_ENGINE_EXCEPTION              ;
142  sc_signal<Tcontrol_t        > **** out_EXECUTE_OOO_ENGINE_NO_SEQUENCE            ;
143  sc_signal<Taddress_t        > **** out_EXECUTE_OOO_ENGINE_ADDRESS                ;
144  sc_signal<Tgeneral_data_t   > **** out_EXECUTE_OOO_ENGINE_DATA                   ;
145  sc_signal<Tcontrol_t        >  ***  in_EXECUTE_EXECUTE_LOOP_VAL                  ;
146  sc_signal<Tcontrol_t        >  *** out_EXECUTE_EXECUTE_LOOP_ACK                  ;
147  sc_signal<Tcontext_t        >  ***  in_EXECUTE_EXECUTE_LOOP_CONTEXT_ID           ;
148  sc_signal<Tcontext_t        >  ***  in_EXECUTE_EXECUTE_LOOP_FRONT_END_ID         ;
149  sc_signal<Tcontext_t        >  ***  in_EXECUTE_EXECUTE_LOOP_OOO_ENGINE_ID        ;
150  sc_signal<Tpacket_t         >  ***  in_EXECUTE_EXECUTE_LOOP_PACKET_ID            ;
151//sc_signal<Toperation_t      >  ***  in_EXECUTE_EXECUTE_LOOP_OPERATION            ;
152//sc_signal<Ttype_t           >  ***  in_EXECUTE_EXECUTE_LOOP_TYPE                 ;
153  sc_signal<Tspecial_data_t   >  ***  in_EXECUTE_EXECUTE_LOOP_FLAGS                ;
154  sc_signal<Texception_t      >  ***  in_EXECUTE_EXECUTE_LOOP_EXCEPTION            ;
155  sc_signal<Tcontrol_t        >  ***  in_EXECUTE_EXECUTE_LOOP_NO_SEQUENCE          ;
156  sc_signal<Taddress_t        >  ***  in_EXECUTE_EXECUTE_LOOP_ADDRESS              ;
157  sc_signal<Tgeneral_data_t   >  ***  in_EXECUTE_EXECUTE_LOOP_DATA                 ;
158  sc_signal<Tcontrol_t        >  ***  in_INSERT_OOO_ENGINE_VAL                     ;
159  sc_signal<Tcontrol_t        >  *** out_INSERT_OOO_ENGINE_ACK                     ;
160  sc_signal<Tcontrol_t        >  ***  in_INSERT_OOO_ENGINE_RD_USE                  ;
161  sc_signal<Tgeneral_address_t>  ***  in_INSERT_OOO_ENGINE_RD_NUM_REG              ;
162  sc_signal<Tcontrol_t        >  ***  in_INSERT_OOO_ENGINE_RE_USE                  ;
163  sc_signal<Tspecial_address_t>  ***  in_INSERT_OOO_ENGINE_RE_NUM_REG              ;
164  sc_signal<Tcontrol_t        > **** out_INSERT_EXECUTE_LOOP_VAL                   ;
165  sc_signal<Tcontrol_t        > ****  in_INSERT_EXECUTE_LOOP_ACK                   ;
166  sc_signal<Tcontrol_t        > **** out_INSERT_EXECUTE_LOOP_RD_USE                ;
167  sc_signal<Tgeneral_address_t> **** out_INSERT_EXECUTE_LOOP_RD_NUM_REG            ;
168  sc_signal<Tcontrol_t        > **** out_INSERT_EXECUTE_LOOP_RE_USE                ;
169  sc_signal<Tspecial_address_t> **** out_INSERT_EXECUTE_LOOP_RE_NUM_REG            ;
170
171  ALLOC2_SC_SIGNAL(out_RENAME_FRONT_END_ID                       ,"out_RENAME_FRONT_END_ID                       ",Tcontext_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
172  ALLOC2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_VAL             ,"out_BRANCH_COMPLETE_FRONT_END_VAL             ",Tcontrol_t        ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
173  ALLOC2_SC_SIGNAL( in_BRANCH_COMPLETE_FRONT_END_ACK             ," in_BRANCH_COMPLETE_FRONT_END_ACK             ",Tcontrol_t        ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
174  ALLOC2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_CONTEXT_ID      ,"out_BRANCH_COMPLETE_FRONT_END_CONTEXT_ID      ",Tcontext_t        ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
175  ALLOC2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_DEPTH           ,"out_BRANCH_COMPLETE_FRONT_END_DEPTH           ",Tdepth_t          ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
176  ALLOC2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_ADDRESS         ,"out_BRANCH_COMPLETE_FRONT_END_ADDRESS         ",Taddress_t        ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
177  ALLOC2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_NO_SEQUENCE     ,"out_BRANCH_COMPLETE_FRONT_END_NO_SEQUENCE     ",Tcontrol_t        ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
178  ALLOC2_SC_SIGNAL( in_BRANCH_COMPLETE_FRONT_END_MISS_PREDICTION ," in_BRANCH_COMPLETE_FRONT_END_MISS_PREDICTION ",Tcontrol_t        ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
179  ALLOC2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_VAL            ," in_BRANCH_COMPLETE_OOO_ENGINE_VAL            ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
180  ALLOC2_SC_SIGNAL(out_BRANCH_COMPLETE_OOO_ENGINE_ACK            ,"out_BRANCH_COMPLETE_OOO_ENGINE_ACK            ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
181  ALLOC2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_FRONT_END_ID   ," in_BRANCH_COMPLETE_OOO_ENGINE_FRONT_END_ID   ",Tcontext_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
182  ALLOC2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_CONTEXT_ID     ," in_BRANCH_COMPLETE_OOO_ENGINE_CONTEXT_ID     ",Tcontext_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
183  ALLOC2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_DEPTH          ," in_BRANCH_COMPLETE_OOO_ENGINE_DEPTH          ",Tdepth_t          ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
184  ALLOC2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_ADDRESS        ," in_BRANCH_COMPLETE_OOO_ENGINE_ADDRESS        ",Taddress_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
185  ALLOC2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_NO_SEQUENCE    ," in_BRANCH_COMPLETE_OOO_ENGINE_NO_SEQUENCE    ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
186  ALLOC2_SC_SIGNAL(out_BRANCH_COMPLETE_OOO_ENGINE_MISS_PREDICTION,"out_BRANCH_COMPLETE_OOO_ENGINE_MISS_PREDICTION",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
187  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_VAL                ,"out_COMMIT_EVENT_FRONT_END_VAL                ",Tcontrol_t        ,_param->_nb_front_end);
188  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_FRONT_END_ACK                ," in_COMMIT_EVENT_FRONT_END_ACK                ",Tcontrol_t        ,_param->_nb_front_end);
189  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_CONTEXT_ID         ,"out_COMMIT_EVENT_FRONT_END_CONTEXT_ID         ",Tcontext_t        ,_param->_nb_front_end);
190  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_DEPTH              ,"out_COMMIT_EVENT_FRONT_END_DEPTH              ",Tdepth_t          ,_param->_nb_front_end);
191  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_TYPE               ,"out_COMMIT_EVENT_FRONT_END_TYPE               ",Tevent_type_t     ,_param->_nb_front_end);
192  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_IS_DELAY_SLOT      ,"out_COMMIT_EVENT_FRONT_END_IS_DELAY_SLOT      ",Tcontrol_t        ,_param->_nb_front_end);
193  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS            ,"out_COMMIT_EVENT_FRONT_END_ADDRESS            ",Taddress_t        ,_param->_nb_front_end);
194  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR_VAL   ,"out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR_VAL   ",Tcontrol_t        ,_param->_nb_front_end);
195  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR       ,"out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR       ",Taddress_t        ,_param->_nb_front_end);
196  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR_VAL   ,"out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR_VAL   ",Tcontrol_t        ,_param->_nb_front_end);
197  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR       ,"out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR       ",Tgeneral_data_t   ,_param->_nb_front_end);
198  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_VAL               ," in_COMMIT_EVENT_OOO_ENGINE_VAL               ",Tcontrol_t        ,_param->_nb_ooo_engine);
199  ALLOC1_SC_SIGNAL(out_COMMIT_EVENT_OOO_ENGINE_ACK               ,"out_COMMIT_EVENT_OOO_ENGINE_ACK               ",Tcontrol_t        ,_param->_nb_ooo_engine);
200  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_FRONT_END_ID      ," in_COMMIT_EVENT_OOO_ENGINE_FRONT_END_ID      ",Tcontext_t        ,_param->_nb_ooo_engine);
201  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_CONTEXT_ID        ," in_COMMIT_EVENT_OOO_ENGINE_CONTEXT_ID        ",Tcontext_t        ,_param->_nb_ooo_engine);
202  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_DEPTH             ," in_COMMIT_EVENT_OOO_ENGINE_DEPTH             ",Tdepth_t          ,_param->_nb_ooo_engine);
203  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_TYPE              ," in_COMMIT_EVENT_OOO_ENGINE_TYPE              ",Tevent_type_t     ,_param->_nb_ooo_engine);
204  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_IS_DELAY_SLOT     ," in_COMMIT_EVENT_OOO_ENGINE_IS_DELAY_SLOT     ",Tcontrol_t        ,_param->_nb_ooo_engine);
205  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS           ," in_COMMIT_EVENT_OOO_ENGINE_ADDRESS           ",Taddress_t        ,_param->_nb_ooo_engine);
206  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR_VAL  ," in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR_VAL  ",Tcontrol_t        ,_param->_nb_ooo_engine);
207  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR      ," in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR      ",Taddress_t        ,_param->_nb_ooo_engine);
208  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR_VAL  ," in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR_VAL  ",Tcontrol_t        ,_param->_nb_ooo_engine);
209  ALLOC1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR      ," in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR      ",Tgeneral_data_t   ,_param->_nb_ooo_engine);
210  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_VAL                      ," in_ISSUE_OOO_ENGINE_VAL                      ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
211  ALLOC2_SC_SIGNAL(out_ISSUE_OOO_ENGINE_ACK                      ,"out_ISSUE_OOO_ENGINE_ACK                      ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
212  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_FRONT_END_ID             ," in_ISSUE_OOO_ENGINE_FRONT_END_ID             ",Tcontext_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
213  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_CONTEXT_ID               ," in_ISSUE_OOO_ENGINE_CONTEXT_ID               ",Tcontext_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
214  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_PACKET_ID                ," in_ISSUE_OOO_ENGINE_PACKET_ID                ",Tpacket_t         ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
215  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_TYPE                     ," in_ISSUE_OOO_ENGINE_TYPE                     ",Ttype_t           ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
216  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_OPERATION                ," in_ISSUE_OOO_ENGINE_OPERATION                ",Toperation_t      ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
217  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ," in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ",Tlsq_ptr_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
218  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ," in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ",Tlsq_ptr_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
219  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             ," in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
220  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_IMMEDIAT                 ," in_ISSUE_OOO_ENGINE_IMMEDIAT                 ",Tgeneral_data_t   ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
221  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_READ_RA                  ," in_ISSUE_OOO_ENGINE_READ_RA                  ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
222  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RA               ," in_ISSUE_OOO_ENGINE_NUM_REG_RA               ",Tgeneral_address_t,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
223  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_READ_RB                  ," in_ISSUE_OOO_ENGINE_READ_RB                  ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
224  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RB               ," in_ISSUE_OOO_ENGINE_NUM_REG_RB               ",Tgeneral_address_t,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
225  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_READ_RC                  ," in_ISSUE_OOO_ENGINE_READ_RC                  ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
226  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RC               ," in_ISSUE_OOO_ENGINE_NUM_REG_RC               ",Tspecial_address_t,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
227  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_WRITE_RD                 ," in_ISSUE_OOO_ENGINE_WRITE_RD                 ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
228  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RD               ," in_ISSUE_OOO_ENGINE_NUM_REG_RD               ",Tgeneral_address_t,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
229  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_WRITE_RE                 ," in_ISSUE_OOO_ENGINE_WRITE_RE                 ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
230  ALLOC2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RE               ," in_ISSUE_OOO_ENGINE_NUM_REG_RE               ",Tspecial_address_t,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
231  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_VAL                    ,"out_ISSUE_EXECUTE_LOOP_VAL                    ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
232  ALLOC2_SC_SIGNAL( in_ISSUE_EXECUTE_LOOP_ACK                    ," in_ISSUE_EXECUTE_LOOP_ACK                    ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
233  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_CONTEXT_ID             ,"out_ISSUE_EXECUTE_LOOP_CONTEXT_ID             ",Tcontext_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
234  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_FRONT_END_ID           ,"out_ISSUE_EXECUTE_LOOP_FRONT_END_ID           ",Tcontext_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
235  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_OOO_ENGINE_ID          ,"out_ISSUE_EXECUTE_LOOP_OOO_ENGINE_ID          ",Tcontext_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
236  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_PACKET_ID              ,"out_ISSUE_EXECUTE_LOOP_PACKET_ID              ",Tpacket_t         ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
237  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_OPERATION              ,"out_ISSUE_EXECUTE_LOOP_OPERATION              ",Toperation_t      ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
238  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_TYPE                   ,"out_ISSUE_EXECUTE_LOOP_TYPE                   ",Ttype_t           ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
239  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ,"out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ",Tlsq_ptr_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
240  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ,"out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ",Tlsq_ptr_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
241  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           ,"out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
242  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_IMMEDIAT               ,"out_ISSUE_EXECUTE_LOOP_IMMEDIAT               ",Tgeneral_data_t   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
243  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_READ_RA                ,"out_ISSUE_EXECUTE_LOOP_READ_RA                ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
244  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RA             ,"out_ISSUE_EXECUTE_LOOP_NUM_REG_RA             ",Tgeneral_address_t,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
245  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_READ_RB                ,"out_ISSUE_EXECUTE_LOOP_READ_RB                ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
246  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RB             ,"out_ISSUE_EXECUTE_LOOP_NUM_REG_RB             ",Tgeneral_address_t,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
247  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_READ_RC                ,"out_ISSUE_EXECUTE_LOOP_READ_RC                ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
248  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RC             ,"out_ISSUE_EXECUTE_LOOP_NUM_REG_RC             ",Tspecial_address_t,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
249  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_WRITE_RD               ,"out_ISSUE_EXECUTE_LOOP_WRITE_RD               ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
250  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RD             ,"out_ISSUE_EXECUTE_LOOP_NUM_REG_RD             ",Tgeneral_address_t,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
251  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_WRITE_RE               ,"out_ISSUE_EXECUTE_LOOP_WRITE_RE               ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
252  ALLOC2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RE             ,"out_ISSUE_EXECUTE_LOOP_NUM_REG_RE             ",Tspecial_address_t,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
253  ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_VAL                    ,"out_EXECUTE_OOO_ENGINE_VAL                    ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
254  ALLOC3_SC_SIGNAL( in_EXECUTE_OOO_ENGINE_ACK                    ," in_EXECUTE_OOO_ENGINE_ACK                    ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
255  ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_FRONT_END_ID           ,"out_EXECUTE_OOO_ENGINE_FRONT_END_ID           ",Tcontext_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
256  ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_CONTEXT_ID             ,"out_EXECUTE_OOO_ENGINE_CONTEXT_ID             ",Tcontext_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
257  ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_PACKET_ID              ,"out_EXECUTE_OOO_ENGINE_PACKET_ID              ",Tpacket_t         ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
258//ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_TYPE                   ,"out_EXECUTE_OOO_ENGINE_TYPE                   ",Ttype_t           ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
259//ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_OPERATION              ,"out_EXECUTE_OOO_ENGINE_OPERATION              ",Toperation_t      ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
260  ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_FLAGS                  ,"out_EXECUTE_OOO_ENGINE_FLAGS                  ",Tspecial_data_t   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
261  ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_EXCEPTION              ,"out_EXECUTE_OOO_ENGINE_EXCEPTION              ",Texception_t      ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
262  ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_NO_SEQUENCE            ,"out_EXECUTE_OOO_ENGINE_NO_SEQUENCE            ",Tcontrol_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
263  ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_ADDRESS                ,"out_EXECUTE_OOO_ENGINE_ADDRESS                ",Taddress_t        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
264  ALLOC3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_DATA                   ,"out_EXECUTE_OOO_ENGINE_DATA                   ",Tgeneral_data_t   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
265  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_VAL                  ," in_EXECUTE_EXECUTE_LOOP_VAL                  ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
266  ALLOC2_SC_SIGNAL(out_EXECUTE_EXECUTE_LOOP_ACK                  ,"out_EXECUTE_EXECUTE_LOOP_ACK                  ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
267  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_CONTEXT_ID           ," in_EXECUTE_EXECUTE_LOOP_CONTEXT_ID           ",Tcontext_t        ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
268  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_FRONT_END_ID         ," in_EXECUTE_EXECUTE_LOOP_FRONT_END_ID         ",Tcontext_t        ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
269  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_OOO_ENGINE_ID        ," in_EXECUTE_EXECUTE_LOOP_OOO_ENGINE_ID        ",Tcontext_t        ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
270  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_PACKET_ID            ," in_EXECUTE_EXECUTE_LOOP_PACKET_ID            ",Tpacket_t         ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
271//ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_OPERATION            ," in_EXECUTE_EXECUTE_LOOP_OPERATION            ",Toperation_t      ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
272//ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_TYPE                 ," in_EXECUTE_EXECUTE_LOOP_TYPE                 ",Ttype_t           ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
273  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_FLAGS                ," in_EXECUTE_EXECUTE_LOOP_FLAGS                ",Tspecial_data_t   ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
274  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_EXCEPTION            ," in_EXECUTE_EXECUTE_LOOP_EXCEPTION            ",Texception_t      ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
275  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_NO_SEQUENCE          ," in_EXECUTE_EXECUTE_LOOP_NO_SEQUENCE          ",Tcontrol_t        ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
276  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_ADDRESS              ," in_EXECUTE_EXECUTE_LOOP_ADDRESS              ",Taddress_t        ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
277  ALLOC2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_DATA                 ," in_EXECUTE_EXECUTE_LOOP_DATA                 ",Tgeneral_data_t   ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
278  ALLOC2_SC_SIGNAL( in_INSERT_OOO_ENGINE_VAL                     ," in_INSERT_OOO_ENGINE_VAL                     ",Tcontrol_t          ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
279  ALLOC2_SC_SIGNAL(out_INSERT_OOO_ENGINE_ACK                     ,"out_INSERT_OOO_ENGINE_ACK                     ",Tcontrol_t          ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
280  ALLOC2_SC_SIGNAL( in_INSERT_OOO_ENGINE_RD_USE                  ," in_INSERT_OOO_ENGINE_RD_USE                  ",Tcontrol_t          ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
281  ALLOC2_SC_SIGNAL( in_INSERT_OOO_ENGINE_RD_NUM_REG              ," in_INSERT_OOO_ENGINE_RD_NUM_REG              ",Tgeneral_address_t  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
282  ALLOC2_SC_SIGNAL( in_INSERT_OOO_ENGINE_RE_USE                  ," in_INSERT_OOO_ENGINE_RE_USE                  ",Tcontrol_t          ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
283  ALLOC2_SC_SIGNAL( in_INSERT_OOO_ENGINE_RE_NUM_REG              ," in_INSERT_OOO_ENGINE_RE_NUM_REG              ",Tspecial_address_t  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
284  ALLOC3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_VAL                   ,"out_INSERT_EXECUTE_LOOP_VAL                   ",Tcontrol_t          ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
285  ALLOC3_SC_SIGNAL( in_INSERT_EXECUTE_LOOP_ACK                   ," in_INSERT_EXECUTE_LOOP_ACK                   ",Tcontrol_t          ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
286  ALLOC3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_RD_USE                ,"out_INSERT_EXECUTE_LOOP_RD_USE                ",Tcontrol_t          ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
287  ALLOC3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_RD_NUM_REG            ,"out_INSERT_EXECUTE_LOOP_RD_NUM_REG            ",Tgeneral_address_t  ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
288  ALLOC3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_RE_USE                ,"out_INSERT_EXECUTE_LOOP_RE_USE                ",Tcontrol_t          ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
289  ALLOC3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_RE_NUM_REG            ,"out_INSERT_EXECUTE_LOOP_RE_NUM_REG            ",Tspecial_address_t  ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
290 
291  /********************************************************
292   * Instanciation
293   ********************************************************/
294 
295  msg(_("<%s> : Instanciation of _Core_Glue.\n"),name.c_str());
296
297  (*(_Core_Glue->in_CLOCK))        (*(in_CLOCK));
298  (*(_Core_Glue->in_NRESET))       (*(in_NRESET));
299
300  if (_param->_have_port_front_end_id)
301  INSTANCE2_SC_SIGNAL(_Core_Glue,out_RENAME_FRONT_END_ID                       ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
302  INSTANCE2_SC_SIGNAL(_Core_Glue,out_BRANCH_COMPLETE_FRONT_END_VAL             ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
303  INSTANCE2_SC_SIGNAL(_Core_Glue, in_BRANCH_COMPLETE_FRONT_END_ACK             ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
304  if (_param->_have_port_context_id)
305  INSTANCE2_SC_SIGNAL(_Core_Glue,out_BRANCH_COMPLETE_FRONT_END_CONTEXT_ID      ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
306  if (_param->_have_port_depth)
307  INSTANCE2_SC_SIGNAL(_Core_Glue,out_BRANCH_COMPLETE_FRONT_END_DEPTH           ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
308  INSTANCE2_SC_SIGNAL(_Core_Glue,out_BRANCH_COMPLETE_FRONT_END_ADDRESS         ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
309  INSTANCE2_SC_SIGNAL(_Core_Glue,out_BRANCH_COMPLETE_FRONT_END_NO_SEQUENCE     ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
310  INSTANCE2_SC_SIGNAL(_Core_Glue, in_BRANCH_COMPLETE_FRONT_END_MISS_PREDICTION ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
311  INSTANCE2_SC_SIGNAL(_Core_Glue, in_BRANCH_COMPLETE_OOO_ENGINE_VAL            ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
312  INSTANCE2_SC_SIGNAL(_Core_Glue,out_BRANCH_COMPLETE_OOO_ENGINE_ACK            ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
313  if (_param->_have_port_front_end_id)
314  INSTANCE2_SC_SIGNAL(_Core_Glue, in_BRANCH_COMPLETE_OOO_ENGINE_FRONT_END_ID   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
315  if (_param->_have_port_context_id)
316  INSTANCE2_SC_SIGNAL(_Core_Glue, in_BRANCH_COMPLETE_OOO_ENGINE_CONTEXT_ID     ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
317  if (_param->_have_port_depth)
318  INSTANCE2_SC_SIGNAL(_Core_Glue, in_BRANCH_COMPLETE_OOO_ENGINE_DEPTH          ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
319  INSTANCE2_SC_SIGNAL(_Core_Glue, in_BRANCH_COMPLETE_OOO_ENGINE_ADDRESS        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
320  INSTANCE2_SC_SIGNAL(_Core_Glue, in_BRANCH_COMPLETE_OOO_ENGINE_NO_SEQUENCE    ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
321  INSTANCE2_SC_SIGNAL(_Core_Glue,out_BRANCH_COMPLETE_OOO_ENGINE_MISS_PREDICTION,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
322  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_VAL                ,_param->_nb_front_end);
323  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_FRONT_END_ACK                ,_param->_nb_front_end);
324  if (_param->_have_port_context_id)
325  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_CONTEXT_ID         ,_param->_nb_front_end);
326  if (_param->_have_port_depth)
327  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_DEPTH              ,_param->_nb_front_end);
328  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_TYPE               ,_param->_nb_front_end);
329  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_IS_DELAY_SLOT      ,_param->_nb_front_end);
330  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_ADDRESS            ,_param->_nb_front_end);
331  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR_VAL   ,_param->_nb_front_end);
332  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR       ,_param->_nb_front_end);
333  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR_VAL   ,_param->_nb_front_end);
334  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR       ,_param->_nb_front_end);
335  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_VAL               ,_param->_nb_ooo_engine);
336  INSTANCE1_SC_SIGNAL(_Core_Glue,out_COMMIT_EVENT_OOO_ENGINE_ACK               ,_param->_nb_ooo_engine);
337  if (_param->_have_port_front_end_id)
338  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_FRONT_END_ID      ,_param->_nb_ooo_engine);
339  if (_param->_have_port_context_id)
340  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_CONTEXT_ID        ,_param->_nb_ooo_engine);
341  if (_param->_have_port_depth)
342  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_DEPTH             ,_param->_nb_ooo_engine);
343  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_TYPE              ,_param->_nb_ooo_engine);
344  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_IS_DELAY_SLOT     ,_param->_nb_ooo_engine);
345  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_ADDRESS           ,_param->_nb_ooo_engine);
346  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR_VAL  ,_param->_nb_ooo_engine);
347  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR      ,_param->_nb_ooo_engine);
348  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR_VAL  ,_param->_nb_ooo_engine);
349  INSTANCE1_SC_SIGNAL(_Core_Glue, in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR      ,_param->_nb_ooo_engine);
350  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_VAL                      ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
351  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_OOO_ENGINE_ACK                      ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
352  if (_param->_have_port_front_end_id)
353  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_FRONT_END_ID             ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
354  if (_param->_have_port_context_id)
355  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_CONTEXT_ID               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
356  if (_param->_have_port_rob_ptr)
357  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_PACKET_ID                ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
358  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_TYPE                     ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
359  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_OPERATION                ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
360  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]); 
361  if (_param->_have_port_load_queue_ptr)
362  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
363  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
364  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_IMMEDIAT                 ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
365  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_READ_RA                  ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
366  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_NUM_REG_RA               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
367  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_READ_RB                  ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
368  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_NUM_REG_RB               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
369  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_READ_RC                  ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
370  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_NUM_REG_RC               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
371  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_WRITE_RD                 ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
372  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_NUM_REG_RD               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
373  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_WRITE_RE                 ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
374  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_OOO_ENGINE_NUM_REG_RE               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
375  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_VAL                    ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
376  INSTANCE2_SC_SIGNAL(_Core_Glue, in_ISSUE_EXECUTE_LOOP_ACK                    ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
377  if (_param->_have_port_context_id)
378  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_CONTEXT_ID             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
379  if (_param->_have_port_front_end_id)
380  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_FRONT_END_ID           ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
381  if (_param->_have_port_ooo_engine_id)
382  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_OOO_ENGINE_ID          ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
383  if (_param->_have_port_rob_ptr)
384  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_PACKET_ID              ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
385  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_OPERATION              ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
386  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_TYPE                   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
387  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
388  if (_param->_have_port_load_queue_ptr)
389  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
390  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
391  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_IMMEDIAT               ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
392  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_READ_RA                ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
393  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_NUM_REG_RA             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
394  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_READ_RB                ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
395  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_NUM_REG_RB             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
396  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_READ_RC                ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
397  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_NUM_REG_RC             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
398  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_WRITE_RD               ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
399  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_NUM_REG_RD             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
400  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_WRITE_RE               ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
401  INSTANCE2_SC_SIGNAL(_Core_Glue,out_ISSUE_EXECUTE_LOOP_NUM_REG_RE             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
402  INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_VAL                    ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
403  INSTANCE3_SC_SIGNAL(_Core_Glue, in_EXECUTE_OOO_ENGINE_ACK                    ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
404  if (_param->_have_port_front_end_id)
405  INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_FRONT_END_ID           ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
406  if (_param->_have_port_context_id)
407  INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_CONTEXT_ID             ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
408  if (_param->_have_port_rob_ptr)
409  INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_PACKET_ID              ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
410//INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_TYPE                   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
411//INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_OPERATION              ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
412  INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_FLAGS                  ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
413  INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_EXCEPTION              ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
414  INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_NO_SEQUENCE            ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
415  INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_ADDRESS                ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
416  INSTANCE3_SC_SIGNAL(_Core_Glue,out_EXECUTE_OOO_ENGINE_DATA                   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
417  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_VAL                  ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
418  INSTANCE2_SC_SIGNAL(_Core_Glue,out_EXECUTE_EXECUTE_LOOP_ACK                  ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
419  if (_param->_have_port_context_id)
420  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_CONTEXT_ID           ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
421  if (_param->_have_port_front_end_id)
422  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_FRONT_END_ID         ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
423  if (_param->_have_port_ooo_engine_id)
424  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_OOO_ENGINE_ID        ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
425  if (_param->_have_port_rob_ptr)
426  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_PACKET_ID            ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
427//INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_OPERATION            ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
428//INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_TYPE                 ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
429  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_FLAGS                ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
430  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_EXCEPTION            ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
431  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_NO_SEQUENCE          ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
432  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_ADDRESS              ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
433  INSTANCE2_SC_SIGNAL(_Core_Glue, in_EXECUTE_EXECUTE_LOOP_DATA                 ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
434  INSTANCE2_SC_SIGNAL(_Core_Glue, in_INSERT_OOO_ENGINE_VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
435  INSTANCE2_SC_SIGNAL(_Core_Glue,out_INSERT_OOO_ENGINE_ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
436  INSTANCE2_SC_SIGNAL(_Core_Glue, in_INSERT_OOO_ENGINE_RD_USE                  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
437  INSTANCE2_SC_SIGNAL(_Core_Glue, in_INSERT_OOO_ENGINE_RD_NUM_REG              ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
438  INSTANCE2_SC_SIGNAL(_Core_Glue, in_INSERT_OOO_ENGINE_RE_USE                  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
439  INSTANCE2_SC_SIGNAL(_Core_Glue, in_INSERT_OOO_ENGINE_RE_NUM_REG              ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
440  INSTANCE3_SC_SIGNAL(_Core_Glue,out_INSERT_EXECUTE_LOOP_VAL                   ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
441  INSTANCE3_SC_SIGNAL(_Core_Glue, in_INSERT_EXECUTE_LOOP_ACK                   ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
442  INSTANCE3_SC_SIGNAL(_Core_Glue,out_INSERT_EXECUTE_LOOP_RD_USE                ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
443  INSTANCE3_SC_SIGNAL(_Core_Glue,out_INSERT_EXECUTE_LOOP_RD_NUM_REG            ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
444  INSTANCE3_SC_SIGNAL(_Core_Glue,out_INSERT_EXECUTE_LOOP_RE_USE                ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
445  INSTANCE3_SC_SIGNAL(_Core_Glue,out_INSERT_EXECUTE_LOOP_RE_NUM_REG            ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
446 
447
448  msg(_("<%s> : Start Simulation ............\n"),name.c_str());
449   
450  Time * _time = new Time();
451
452  /********************************************************
453   * Simulation - Begin
454   ********************************************************/
455
456  // Initialisation
457
458  const uint32_t seed = 0;
459//const uint32_t seed = static_cast<uint32_t>(time(NULL));
460
461  srand(seed);
462
463  SC_START(0);
464  LABEL("Initialisation");
465
466  LABEL("Reset");
467  in_NRESET->write(0);
468  SC_START(5);
469  in_NRESET->write(1); 
470
471  LABEL("Test RENAME_FRONT_END_ID");
472  if (_param->_have_port_front_end_id)
473    for (uint32_t i=0; i<_param->_nb_front_end; ++i)
474      for (uint32_t j=0; j<_param->_nb_inst_decod [i]; ++j)
475        {
476          Tcontext_t id = out_RENAME_FRONT_END_ID [i][j]->read();
477          bool       find = false;
478
479          for (uint32_t x=0; x<_param->_nb_ooo_engine; ++x)
480            if ((id < _param->_ooo_engine_nb_front_end [x]) and    // Valid value
481                (_param->_translate_ooo_engine_num_front_end [x][id] == i)) // Correctness of translation
482              find = true;
483          TEST(bool,find,true);
484        }
485
486  LABEL("Loop of Test");
487
488  for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
489    {
490      LABEL("Iteration %d",iteration);
491
492      //---------------------------------------------------------------------------------
493      // BRANCH_COMPLETE : random input
494      //---------------------------------------------------------------------------------
495      for (uint32_t i=0; i<_param->_nb_front_end; ++i)
496        for (uint32_t j=0; j<_param->_front_end_nb_inst_branch_complete[i]; ++j)
497          {
498            in_BRANCH_COMPLETE_FRONT_END_ACK             [i][j]->write(rand()%2);
499            in_BRANCH_COMPLETE_FRONT_END_MISS_PREDICTION [i][j]->write(rand()%2);
500          }
501
502      for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
503        for (uint32_t j=0; j<_param->_ooo_engine_nb_inst_branch_complete[i]; ++j)
504          {
505            Tcontext_t front_end_id   = rand() % _param->_ooo_engine_nb_front_end [i];
506            Tcontext_t num_front_end  = _param->_translate_ooo_engine_num_front_end[i][front_end_id];
507            Tcontext_t context_id     = rand() % _param->_nb_context[num_front_end];
508
509            LABEL("BRANCH_COMPLETE_OOO_ENGINE [%d][%d]",i,j);
510            LABEL("  * front_end    : id %d, num %d",front_end_id,num_front_end);
511            LABEL("  * context      : id %d"        ,context_id);
512
513            in_BRANCH_COMPLETE_OOO_ENGINE_VAL          [i][j]->write(rand()%2);
514            in_BRANCH_COMPLETE_OOO_ENGINE_FRONT_END_ID [i][j]->write(range<Tcontext_t>(front_end_id,_param->_size_front_end_id));
515            in_BRANCH_COMPLETE_OOO_ENGINE_CONTEXT_ID   [i][j]->write(range<Tcontext_t>(context_id  ,_param->_size_context_id  ));
516            in_BRANCH_COMPLETE_OOO_ENGINE_DEPTH        [i][j]->write(range<Tdepth_t  >(rand(),_param->_size_depth              ));
517            in_BRANCH_COMPLETE_OOO_ENGINE_ADDRESS      [i][j]->write(range<Taddress_t>(rand(),_param->_size_instruction_address));
518            in_BRANCH_COMPLETE_OOO_ENGINE_NO_SEQUENCE  [i][j]->write(rand()%2);
519          }
520
521      //---------------------------------------------------------------------------------
522      // COMMIT_EVENT : random input
523      //---------------------------------------------------------------------------------
524      for (uint32_t i=0; i<_param->_nb_front_end; ++i)
525        {
526          in_COMMIT_EVENT_FRONT_END_ACK             [i]->write(rand()%2);
527        }
528     
529      for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
530        {
531          Tcontext_t front_end_id   = rand() % _param->_ooo_engine_nb_front_end [i];
532          Tcontext_t num_front_end  = _param->_translate_ooo_engine_num_front_end[i][front_end_id];
533          Tcontext_t context_id     = rand() % _param->_nb_context[num_front_end];
534
535          LABEL("COMMIT_EVENT_OOO_ENGINE [%d]",i);
536          LABEL("  * front_end    : id %d, num %d",front_end_id,num_front_end);
537          LABEL("  * context      : id %d"        ,context_id);
538
539          in_COMMIT_EVENT_OOO_ENGINE_VAL             [i]->write(rand()%2);
540          in_COMMIT_EVENT_OOO_ENGINE_FRONT_END_ID    [i]->write(range<Tcontext_t>(front_end_id,_param->_size_front_end_id));
541          in_COMMIT_EVENT_OOO_ENGINE_CONTEXT_ID      [i]->write(range<Tcontext_t>(context_id  ,_param->_size_context_id  ));
542          in_COMMIT_EVENT_OOO_ENGINE_DEPTH           [i]->write(range<Tdepth_t  >(rand(),_param->_size_depth              ));
543          in_COMMIT_EVENT_OOO_ENGINE_TYPE            [i]->write(range<Tevent_type_t>(rand(),_param->_size_event_type));
544          in_COMMIT_EVENT_OOO_ENGINE_IS_DELAY_SLOT   [i]->write(rand()%2);
545          in_COMMIT_EVENT_OOO_ENGINE_ADDRESS         [i]->write(range<Taddress_t>(rand(),_param->_size_instruction_address));
546          in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR_VAL[i]->write(rand()%2);
547          in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR    [i]->write(range<Taddress_t>(rand(),_param->_size_instruction_address));
548          in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR_VAL[i]->write(rand()%2);
549          in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR    [i]->write(range<Taddress_t>(rand(),_param->_size_instruction_address));
550        }
551
552      //---------------------------------------------------------------------------------
553      // EXECUTE : random input
554      //---------------------------------------------------------------------------------
555      for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
556        for (uint32_t j=0; j<_param->_ooo_engine_nb_execute_loop[i]; ++j)
557          for (uint32_t k=0; k<_param->_nb_inst_execute [i][j]; ++j)
558            in_EXECUTE_OOO_ENGINE_ACK [i][j][k]->write(rand()%2);
559
560      for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
561        for (uint32_t j=0; j<_param->_nb_write_unit[i]; ++j)
562          {
563            in_EXECUTE_EXECUTE_LOOP_VAL           [i][j]->write(rand()%2);
564
565            Tcontext_t ooo_engine_id  = rand() % _param->_execute_loop_nb_ooo_engine [i];
566            Tcontext_t num_ooo_engine = _param->_translate_execute_loop_num_ooo_engine[i][ooo_engine_id];
567            Tcontext_t front_end_id   = rand() % _param->_ooo_engine_nb_front_end [num_ooo_engine];
568            Tcontext_t num_front_end  = _param->_translate_ooo_engine_num_front_end[num_ooo_engine][front_end_id];
569            Tcontext_t context_id     = rand() % _param->_nb_context[num_front_end];
570           
571            LABEL("EXECUTE_EXECUTE_LOOP [%d][%d]",i,j);
572            LABEL("  * ooo_engine   : id %d, num %d",ooo_engine_id,num_ooo_engine);
573            LABEL("  * front_end    : id %d, num %d",front_end_id,num_front_end);
574            LABEL("  * context      : id %d"        ,context_id);
575
576            in_EXECUTE_EXECUTE_LOOP_FRONT_END_ID  [i][j]->write(range<Tcontext_t     >(front_end_id ,_param->_size_front_end_id       ));
577            in_EXECUTE_EXECUTE_LOOP_CONTEXT_ID    [i][j]->write(range<Tcontext_t     >(context_id   ,_param->_size_context_id         ));
578            in_EXECUTE_EXECUTE_LOOP_OOO_ENGINE_ID [i][j]->write(range<Tcontext_t     >(ooo_engine_id,_param->_size_ooo_engine_id      ));
579            in_EXECUTE_EXECUTE_LOOP_PACKET_ID     [i][j]->write(range<Tpacket_t      >(rand(),_param->_size_rob_ptr            ));
580//          in_EXECUTE_EXECUTE_LOOP_OPERATION     [i][j]->write(range<Toperation_t   >(rand(),_param->_size_operation          ));
581//          in_EXECUTE_EXECUTE_LOOP_TYPE          [i][j]->write(range<Ttype_t        >(rand(),_param->_size_type               ));
582            in_EXECUTE_EXECUTE_LOOP_FLAGS         [i][j]->write(range<Tspecial_data_t>(rand(),_param->_size_special_data       ));
583            in_EXECUTE_EXECUTE_LOOP_EXCEPTION     [i][j]->write(range<Texception_t   >(rand(),_param->_size_exception          ));
584            in_EXECUTE_EXECUTE_LOOP_NO_SEQUENCE   [i][j]->write(rand()%2);
585            in_EXECUTE_EXECUTE_LOOP_ADDRESS       [i][j]->write(range<Tgeneral_data_t>(rand(),_param->_size_general_data       ));
586            in_EXECUTE_EXECUTE_LOOP_DATA          [i][j]->write(range<Tgeneral_data_t>(rand(),_param->_size_general_data       ));
587          }
588
589      //---------------------------------------------------------------------------------
590      // ISSUE : random input
591      //---------------------------------------------------------------------------------
592      for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
593        for (uint32_t j=0; j<_param->_nb_read_unit[i]; ++j)
594          in_ISSUE_EXECUTE_LOOP_ACK [i][j]->write(rand()%2);
595
596      for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
597        for (uint32_t j=0; j<_param->_nb_inst_issue_queue[i]; ++j)
598          {
599            Tcontext_t front_end_id   = rand() % _param->_ooo_engine_nb_front_end [i];
600            Tcontext_t num_front_end  = _param->_translate_ooo_engine_num_front_end[i][front_end_id];
601            Tcontext_t context_id     = rand() % _param->_nb_context[num_front_end];
602           
603            LABEL("ISSUE_OOO_ENGINE [%d][%d]",i,j);
604            LABEL("  * front_end    : id %d, num %d",front_end_id,num_front_end);
605            LABEL("  * context      : id %d"        ,context_id);
606
607            in_ISSUE_OOO_ENGINE_VAL                   [i][j]->write(rand()%2);
608            in_ISSUE_OOO_ENGINE_FRONT_END_ID          [i][j]->write(range<Tcontext_t     >(front_end_id ,_param->_size_front_end_id       ));
609            in_ISSUE_OOO_ENGINE_CONTEXT_ID            [i][j]->write(range<Tcontext_t     >(context_id   ,_param->_size_context_id         ));
610            in_ISSUE_OOO_ENGINE_PACKET_ID             [i][j]->write(range<Tpacket_t      >(rand(),_param->_size_rob_ptr            ));
611            in_ISSUE_OOO_ENGINE_TYPE                  [i][j]->write(range<Toperation_t   >(rand(),_param->_size_operation          ));
612            in_ISSUE_OOO_ENGINE_OPERATION             [i][j]->write(range<Ttype_t        >(rand(),_param->_size_type               ));
613            in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE [i][j]->write(range<Tlsq_ptr_t     >(rand(),_param->_size_store_queue_ptr    ));
614            in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE  [i][j]->write(range<Tlsq_ptr_t     >(rand(),_param->_size_load_queue_ptr     ));
615            in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT          [i][j]->write(rand()%2);
616            in_ISSUE_OOO_ENGINE_IMMEDIAT              [i][j]->write(i|(j<<_param->_size_ooo_engine_id));
617            in_ISSUE_OOO_ENGINE_READ_RA               [i][j]->write(rand()%2);
618            in_ISSUE_OOO_ENGINE_NUM_REG_RA            [i][j]->write(range<Tgeneral_address_t>(rand(),_param->_size_general_register));
619            in_ISSUE_OOO_ENGINE_READ_RB               [i][j]->write(rand()%2);
620            in_ISSUE_OOO_ENGINE_NUM_REG_RB            [i][j]->write(range<Tgeneral_address_t>(rand(),_param->_size_general_register));
621            in_ISSUE_OOO_ENGINE_READ_RC               [i][j]->write(rand()%2);
622            in_ISSUE_OOO_ENGINE_NUM_REG_RC            [i][j]->write(range<Tspecial_address_t>(rand(),_param->_size_special_register));
623            in_ISSUE_OOO_ENGINE_WRITE_RD              [i][j]->write(rand()%2);
624            in_ISSUE_OOO_ENGINE_NUM_REG_RD            [i][j]->write(range<Tgeneral_address_t>(rand(),_param->_size_general_register));
625            in_ISSUE_OOO_ENGINE_WRITE_RE              [i][j]->write(rand()%2);
626            in_ISSUE_OOO_ENGINE_NUM_REG_RE            [i][j]->write(range<Tspecial_address_t>(rand(),_param->_size_special_register));
627          }
628
629      //=================================================================================
630      // TEST
631      //=================================================================================
632      for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
633        for (uint32_t j=0; j<_param->_ooo_engine_nb_inst_branch_complete[i]; ++j)
634          {
635            uint32_t id= in_BRANCH_COMPLETE_OOO_ENGINE_FRONT_END_ID [i][j]->read();
636            uint32_t x = _param->_translate_ooo_engine_num_front_end[i][id];
637
638            TEST(Tcontrol_t,out_BRANCH_COMPLETE_FRONT_END_VAL              [x][j]->read(),
639                             in_BRANCH_COMPLETE_OOO_ENGINE_VAL             [i][j]->read());
640            TEST(Tcontext_t,out_BRANCH_COMPLETE_FRONT_END_CONTEXT_ID       [x][j]->read(),
641                             in_BRANCH_COMPLETE_OOO_ENGINE_CONTEXT_ID      [i][j]->read());
642            TEST(Tdepth_t  ,out_BRANCH_COMPLETE_FRONT_END_DEPTH            [x][j]->read(),
643                             in_BRANCH_COMPLETE_OOO_ENGINE_DEPTH           [i][j]->read());
644            TEST(Taddress_t,out_BRANCH_COMPLETE_FRONT_END_ADDRESS          [x][j]->read(),
645                             in_BRANCH_COMPLETE_OOO_ENGINE_ADDRESS         [i][j]->read());
646            TEST(Tcontrol_t,out_BRANCH_COMPLETE_FRONT_END_NO_SEQUENCE      [x][j]->read(),
647                             in_BRANCH_COMPLETE_OOO_ENGINE_NO_SEQUENCE     [i][j]->read());
648            TEST(Tcontrol_t,out_BRANCH_COMPLETE_OOO_ENGINE_ACK             [i][j]->read(),
649                             in_BRANCH_COMPLETE_FRONT_END_ACK              [x][j]->read());
650            TEST(Tcontrol_t,out_BRANCH_COMPLETE_OOO_ENGINE_MISS_PREDICTION [i][j]->read(),
651                             in_BRANCH_COMPLETE_FRONT_END_MISS_PREDICTION  [x][j]->read());
652          }
653
654      for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
655        {
656            uint32_t id= in_COMMIT_EVENT_OOO_ENGINE_FRONT_END_ID [i]->read();
657            uint32_t x = _param->_translate_ooo_engine_num_front_end[i][id];
658
659
660            TEST(Tcontrol_t,out_COMMIT_EVENT_FRONT_END_VAL                 [x]->read(),
661                             in_COMMIT_EVENT_OOO_ENGINE_VAL                [i]->read());
662            TEST(Tcontext_t,out_COMMIT_EVENT_FRONT_END_CONTEXT_ID          [x]->read(),
663                             in_COMMIT_EVENT_OOO_ENGINE_CONTEXT_ID         [i]->read());
664            TEST(Tdepth_t  ,out_COMMIT_EVENT_FRONT_END_DEPTH               [x]->read(),
665                             in_COMMIT_EVENT_OOO_ENGINE_DEPTH              [i]->read());
666            TEST(Tcontrol_t,out_COMMIT_EVENT_OOO_ENGINE_ACK                [i]->read(),
667                             in_COMMIT_EVENT_FRONT_END_ACK                 [x]->read());
668
669            TEST(Tevent_type_t,out_COMMIT_EVENT_FRONT_END_TYPE             [x]->read(),
670                                in_COMMIT_EVENT_OOO_ENGINE_TYPE            [i]->read());
671            TEST(Tcontrol_t   ,out_COMMIT_EVENT_FRONT_END_IS_DELAY_SLOT    [x]->read(),
672                                in_COMMIT_EVENT_OOO_ENGINE_IS_DELAY_SLOT   [i]->read());
673            TEST(Taddress_t   ,out_COMMIT_EVENT_FRONT_END_ADDRESS          [x]->read(),
674                                in_COMMIT_EVENT_OOO_ENGINE_ADDRESS         [i]->read());
675            TEST(Tcontrol_t   ,out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR_VAL [x]->read(),
676                                in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR_VAL[i]->read());
677            TEST(Taddress_t   ,out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR     [x]->read(),
678                                in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR    [i]->read());
679            TEST(Tcontrol_t   ,out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR_VAL [x]->read(),
680                                in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR_VAL[i]->read());
681            TEST(Taddress_t   ,out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR     [x]->read(),
682                                in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR    [i]->read());
683        }
684
685      for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
686        for (uint32_t j=0; j<_param->_nb_write_unit[i]; ++j)
687          {
688            Tcontext_t id = in_EXECUTE_EXECUTE_LOOP_OOO_ENGINE_ID [i][j]->read();
689            Tcontext_t x  = _param->_translate_execute_loop_num_ooo_engine[i][id];
690            Tcontext_t y  = _param->_translate_num_execute_loop_to_ooo_engine_execute_loop_id[i][id];
691
692            TEST(Tcontrol_t     ,out_EXECUTE_OOO_ENGINE_VAL          [x][y][j]->read(),
693                                  in_EXECUTE_EXECUTE_LOOP_VAL           [i][j]->read());
694            TEST(Tcontext_t     ,out_EXECUTE_OOO_ENGINE_FRONT_END_ID [x][y][j]->read(),
695                                  in_EXECUTE_EXECUTE_LOOP_FRONT_END_ID  [i][j]->read());
696            TEST(Tcontext_t     ,out_EXECUTE_OOO_ENGINE_CONTEXT_ID   [x][y][j]->read(),
697                                  in_EXECUTE_EXECUTE_LOOP_CONTEXT_ID    [i][j]->read());
698            TEST(Tpacket_t      ,out_EXECUTE_OOO_ENGINE_PACKET_ID    [x][y][j]->read(),
699                                  in_EXECUTE_EXECUTE_LOOP_PACKET_ID     [i][j]->read());
700//          TEST(Ttype_t        ,out_EXECUTE_OOO_ENGINE_TYPE         [x][y][j]->read(),
701//                                in_EXECUTE_EXECUTE_LOOP_TYPE          [i][j]->read());
702//          TEST(Toperation_t   ,out_EXECUTE_OOO_ENGINE_OPERATION    [x][y][j]->read(),
703//                                in_EXECUTE_EXECUTE_LOOP_OPERATION     [i][j]->read());
704            TEST(Tspecial_data_t,out_EXECUTE_OOO_ENGINE_FLAGS        [x][y][j]->read(),
705                                  in_EXECUTE_EXECUTE_LOOP_FLAGS         [i][j]->read());
706            TEST(Texception_t   ,out_EXECUTE_OOO_ENGINE_EXCEPTION    [x][y][j]->read(),
707                                  in_EXECUTE_EXECUTE_LOOP_EXCEPTION     [i][j]->read());
708            TEST(Tcontrol_t     ,out_EXECUTE_OOO_ENGINE_NO_SEQUENCE  [x][y][j]->read(),
709                                  in_EXECUTE_EXECUTE_LOOP_NO_SEQUENCE   [i][j]->read());
710            TEST(Tgeneral_data_t,out_EXECUTE_OOO_ENGINE_ADDRESS      [x][y][j]->read(),
711                                  in_EXECUTE_EXECUTE_LOOP_ADDRESS       [i][j]->read());
712            TEST(Tgeneral_data_t,out_EXECUTE_OOO_ENGINE_DATA         [x][y][j]->read(),
713                                  in_EXECUTE_EXECUTE_LOOP_DATA          [i][j]->read());
714            TEST(Tcontrol_t     ,out_EXECUTE_EXECUTE_LOOP_ACK           [i][j]->read()   ,
715                                  in_EXECUTE_OOO_ENGINE_ACK          [x][y][j]->read());
716          }
717
718      for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
719        for (uint32_t j=0; j<_param->_nb_read_unit[i]; ++j)
720          // Test transaction
721          if (out_ISSUE_EXECUTE_LOOP_VAL [i][j]->read() and
722               in_ISSUE_EXECUTE_LOOP_ACK [i][j]->read())
723            {
724              Tgeneral_data_t imm = out_ISSUE_EXECUTE_LOOP_IMMEDIAT [i][j]->read();
725              Tcontext_t      x   = range<Tcontext_t>(imm,_param->_size_ooo_engine_id);
726              Tcontext_t      y   = imm>>_param->_size_ooo_engine_id; // port_issue
727
728              LABEL("ISSUE - transaction");
729              LABEL("  * execute_loop : %d",i);
730              LABEL("  * read_unit    : %d",j);
731              LABEL("  * ooo_engine   : %d",x);
732              LABEL("  * port_issue   : %d",y);
733             
734              TEST(Tcontext_t,x,_param->_translate_execute_loop_num_ooo_engine[i][out_ISSUE_EXECUTE_LOOP_OOO_ENGINE_ID [i][j]->read()]);
735             
736              TEST(bool,_param->_table_dispatch [x][y][i][j],true);
737
738              TEST(Tcontrol_t        , in_ISSUE_OOO_ENGINE_VAL                      [x][y]->read(),1);
739              TEST(Tcontrol_t        ,out_ISSUE_OOO_ENGINE_ACK                      [x][y]->read(),1);
740
741              TEST(Tcontext_t        ,out_ISSUE_EXECUTE_LOOP_FRONT_END_ID           [i][j]->read(), 
742                                       in_ISSUE_OOO_ENGINE_FRONT_END_ID             [x][y]->read());
743              TEST(Tcontext_t        ,out_ISSUE_EXECUTE_LOOP_CONTEXT_ID             [i][j]->read(), 
744                                       in_ISSUE_OOO_ENGINE_CONTEXT_ID               [x][y]->read());
745              TEST(Tpacket_t         ,out_ISSUE_EXECUTE_LOOP_PACKET_ID              [i][j]->read(), 
746                                       in_ISSUE_OOO_ENGINE_PACKET_ID                [x][y]->read());
747              TEST(Ttype_t           ,out_ISSUE_EXECUTE_LOOP_TYPE                   [i][j]->read(), 
748                                       in_ISSUE_OOO_ENGINE_TYPE                     [x][y]->read());
749              TEST(Toperation_t      ,out_ISSUE_EXECUTE_LOOP_OPERATION              [i][j]->read(), 
750                                       in_ISSUE_OOO_ENGINE_OPERATION                [x][y]->read());
751              TEST(Tlsq_ptr_t        ,out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  [i][j]->read(), 
752                                       in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    [x][y]->read());
753              TEST(Tlsq_ptr_t        ,out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   [i][j]->read(), 
754                                       in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     [x][y]->read());
755              TEST(Tcontrol_t        ,out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           [i][j]->read(), 
756                                       in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             [x][y]->read());
757              TEST(Tgeneral_data_t   ,out_ISSUE_EXECUTE_LOOP_IMMEDIAT               [i][j]->read(), 
758                                       in_ISSUE_OOO_ENGINE_IMMEDIAT                 [x][y]->read());
759              TEST(Tcontrol_t        ,out_ISSUE_EXECUTE_LOOP_READ_RA                [i][j]->read(), 
760                                       in_ISSUE_OOO_ENGINE_READ_RA                  [x][y]->read());
761              TEST(Tgeneral_address_t,out_ISSUE_EXECUTE_LOOP_NUM_REG_RA             [i][j]->read(), 
762                                       in_ISSUE_OOO_ENGINE_NUM_REG_RA               [x][y]->read());
763              TEST(Tcontrol_t        ,out_ISSUE_EXECUTE_LOOP_READ_RB                [i][j]->read(), 
764                                       in_ISSUE_OOO_ENGINE_READ_RB                  [x][y]->read());
765              TEST(Tgeneral_address_t,out_ISSUE_EXECUTE_LOOP_NUM_REG_RB             [i][j]->read(), 
766                                       in_ISSUE_OOO_ENGINE_NUM_REG_RB               [x][y]->read());
767              TEST(Tcontrol_t        ,out_ISSUE_EXECUTE_LOOP_READ_RC                [i][j]->read(), 
768                                       in_ISSUE_OOO_ENGINE_READ_RC                  [x][y]->read());
769              TEST(Tspecial_address_t,out_ISSUE_EXECUTE_LOOP_NUM_REG_RC             [i][j]->read(), 
770                                       in_ISSUE_OOO_ENGINE_NUM_REG_RC               [x][y]->read());
771              TEST(Tcontrol_t        ,out_ISSUE_EXECUTE_LOOP_WRITE_RD               [i][j]->read(), 
772                                       in_ISSUE_OOO_ENGINE_WRITE_RD                 [x][y]->read());
773              TEST(Tgeneral_address_t,out_ISSUE_EXECUTE_LOOP_NUM_REG_RD             [i][j]->read(), 
774                                       in_ISSUE_OOO_ENGINE_NUM_REG_RD               [x][y]->read());
775              TEST(Tcontrol_t        ,out_ISSUE_EXECUTE_LOOP_WRITE_RE               [i][j]->read(), 
776                                       in_ISSUE_OOO_ENGINE_WRITE_RE                 [x][y]->read());
777              TEST(Tspecial_address_t,out_ISSUE_EXECUTE_LOOP_NUM_REG_RE             [i][j]->read(), 
778                                       in_ISSUE_OOO_ENGINE_NUM_REG_RE               [x][y]->read());
779            }
780
781      SC_START(1);
782    }
783
784  /********************************************************
785   * Simulation - End
786   ********************************************************/
787
788  TEST_OK ("End of Simulation");
789  delete _time;
790
791  msg(_("<%s> : ............ Stop Simulation\n"),name.c_str());
792
793  delete in_CLOCK;
794  delete in_NRESET;
795
796  DELETE2_SC_SIGNAL(out_RENAME_FRONT_END_ID                       ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
797  DELETE2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_VAL             ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
798  DELETE2_SC_SIGNAL( in_BRANCH_COMPLETE_FRONT_END_ACK             ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
799  DELETE2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_CONTEXT_ID      ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
800  DELETE2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_DEPTH           ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
801  DELETE2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_ADDRESS         ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
802  DELETE2_SC_SIGNAL(out_BRANCH_COMPLETE_FRONT_END_NO_SEQUENCE     ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
803  DELETE2_SC_SIGNAL( in_BRANCH_COMPLETE_FRONT_END_MISS_PREDICTION ,_param->_nb_front_end,_param->_front_end_nb_inst_branch_complete[it1]);
804  DELETE2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_VAL            ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
805  DELETE2_SC_SIGNAL(out_BRANCH_COMPLETE_OOO_ENGINE_ACK            ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
806  DELETE2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_FRONT_END_ID   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
807  DELETE2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_CONTEXT_ID     ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
808  DELETE2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_DEPTH          ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
809  DELETE2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_ADDRESS        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
810  DELETE2_SC_SIGNAL( in_BRANCH_COMPLETE_OOO_ENGINE_NO_SEQUENCE    ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
811  DELETE2_SC_SIGNAL(out_BRANCH_COMPLETE_OOO_ENGINE_MISS_PREDICTION,_param->_nb_ooo_engine,_param->_ooo_engine_nb_inst_branch_complete[it1]);
812  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_VAL                ,_param->_nb_front_end);
813  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_FRONT_END_ACK                ,_param->_nb_front_end);
814  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_CONTEXT_ID         ,_param->_nb_front_end);
815  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_DEPTH              ,_param->_nb_front_end);
816  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_TYPE               ,_param->_nb_front_end);
817  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_IS_DELAY_SLOT      ,_param->_nb_front_end);
818  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS            ,_param->_nb_front_end);
819  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR_VAL   ,_param->_nb_front_end);
820  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS_EPCR       ,_param->_nb_front_end);
821  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR_VAL   ,_param->_nb_front_end);
822  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_FRONT_END_ADDRESS_EEAR       ,_param->_nb_front_end);
823  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_VAL               ,_param->_nb_ooo_engine);
824  DELETE1_SC_SIGNAL(out_COMMIT_EVENT_OOO_ENGINE_ACK               ,_param->_nb_ooo_engine);
825  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_FRONT_END_ID      ,_param->_nb_ooo_engine);
826  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_CONTEXT_ID        ,_param->_nb_ooo_engine);
827  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_DEPTH             ,_param->_nb_ooo_engine);
828  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_TYPE              ,_param->_nb_ooo_engine);
829  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_IS_DELAY_SLOT     ,_param->_nb_ooo_engine);
830  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS           ,_param->_nb_ooo_engine);
831  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR_VAL  ,_param->_nb_ooo_engine);
832  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EPCR      ,_param->_nb_ooo_engine);
833  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR_VAL  ,_param->_nb_ooo_engine);
834  DELETE1_SC_SIGNAL( in_COMMIT_EVENT_OOO_ENGINE_ADDRESS_EEAR      ,_param->_nb_ooo_engine);
835  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_VAL                      ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
836  DELETE2_SC_SIGNAL(out_ISSUE_OOO_ENGINE_ACK                      ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
837  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_FRONT_END_ID             ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
838  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_CONTEXT_ID               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
839  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_PACKET_ID                ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
840  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_TYPE                     ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
841  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_OPERATION                ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
842  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
843  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_LOAD_QUEUE_PTR_WRITE     ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
844  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_HAS_IMMEDIAT             ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
845  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_IMMEDIAT                 ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
846  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_READ_RA                  ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
847  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RA               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
848  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_READ_RB                  ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
849  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RB               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
850  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_READ_RC                  ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
851  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RC               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
852  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_WRITE_RD                 ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
853  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RD               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
854  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_WRITE_RE                 ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
855  DELETE2_SC_SIGNAL( in_ISSUE_OOO_ENGINE_NUM_REG_RE               ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
856  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_VAL                    ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
857  DELETE2_SC_SIGNAL( in_ISSUE_EXECUTE_LOOP_ACK                    ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
858  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_CONTEXT_ID             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
859  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_FRONT_END_ID           ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
860  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_OOO_ENGINE_ID          ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
861  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_PACKET_ID              ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
862  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_OPERATION              ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
863  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_TYPE                   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
864  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
865  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_LOAD_QUEUE_PTR_WRITE   ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
866  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_HAS_IMMEDIAT           ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
867  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_IMMEDIAT               ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
868  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_READ_RA                ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
869  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RA             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
870  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_READ_RB                ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
871  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RB             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
872  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_READ_RC                ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
873  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RC             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
874  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_WRITE_RD               ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
875  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RD             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
876  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_WRITE_RE               ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
877  DELETE2_SC_SIGNAL(out_ISSUE_EXECUTE_LOOP_NUM_REG_RE             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
878  DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_VAL                    ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
879  DELETE3_SC_SIGNAL( in_EXECUTE_OOO_ENGINE_ACK                    ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
880  DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_FRONT_END_ID           ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
881  DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_CONTEXT_ID             ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
882  DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_PACKET_ID              ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
883//DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_TYPE                   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
884//DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_OPERATION              ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
885  DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_FLAGS                  ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
886  DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_EXCEPTION              ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
887  DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_NO_SEQUENCE            ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
888  DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_ADDRESS                ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
889  DELETE3_SC_SIGNAL(out_EXECUTE_OOO_ENGINE_DATA                   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
890  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_VAL                  ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
891  DELETE2_SC_SIGNAL(out_EXECUTE_EXECUTE_LOOP_ACK                  ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
892  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_CONTEXT_ID           ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
893  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_FRONT_END_ID         ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
894  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_OOO_ENGINE_ID        ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
895  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_PACKET_ID            ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
896//DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_OPERATION            ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
897//DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_TYPE                 ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
898  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_FLAGS                ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
899  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_EXCEPTION            ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
900  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_NO_SEQUENCE          ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
901  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_ADDRESS              ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
902  DELETE2_SC_SIGNAL( in_EXECUTE_EXECUTE_LOOP_DATA                 ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
903  DELETE2_SC_SIGNAL( in_INSERT_OOO_ENGINE_VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
904  DELETE2_SC_SIGNAL(out_INSERT_OOO_ENGINE_ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
905  DELETE2_SC_SIGNAL( in_INSERT_OOO_ENGINE_RD_USE                  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
906  DELETE2_SC_SIGNAL( in_INSERT_OOO_ENGINE_RD_NUM_REG              ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
907  DELETE2_SC_SIGNAL( in_INSERT_OOO_ENGINE_RE_USE                  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
908  DELETE2_SC_SIGNAL( in_INSERT_OOO_ENGINE_RE_NUM_REG              ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
909  DELETE3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_VAL                   ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
910  DELETE3_SC_SIGNAL( in_INSERT_EXECUTE_LOOP_ACK                   ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
911  DELETE3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_RD_USE                ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
912  DELETE3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_RD_NUM_REG            ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
913  DELETE3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_RE_USE                ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
914  DELETE3_SC_SIGNAL(out_INSERT_EXECUTE_LOOP_RE_NUM_REG            ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
915    }
916#endif
917
918  delete _Core_Glue;
919#ifdef STATISTICS
920  delete _parameters_statistics;
921#endif
922}
Note: See TracBrowser for help on using the repository browser.