source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp

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

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

  • Property svn:keywords set to Id
File size: 40.6 KB
Line 
1/*
2 * $Id: Register_unit_allocation.cpp 136 2009-10-20 18:52:15Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h"
9#include "Behavioural/include/Allocation.h"
10
11namespace morpheo {
12namespace behavioural {
13namespace core {
14namespace multi_execute_loop {
15namespace execute_loop {
16namespace register_unit {
17
18#undef  FUNCTION
19#define FUNCTION "Register_unit::allocation"
20  void Register_unit::allocation (
21#ifdef STATISTICS
22                                  morpheo::behavioural::Parameters_Statistics * param_statistics
23#else
24                                  void
25#endif
26                                  )
27  {
28    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
29
30    _component   = new Component (_usage);
31
32    Entity * entity = _component->set_entity (_name       
33                                              ,"Register_unit"
34#ifdef POSITION
35                                              ,COMBINATORY
36#endif
37                                              );
38
39    _interfaces = entity->set_interfaces();
40
41    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42
43    Interface * interface = _interfaces->set_interface(""
44#ifdef POSITION
45                                                       ,IN
46                                                       ,SOUTH,
47                                                       "Generalist interface"
48#endif
49                                                       );
50
51    in_CLOCK        = interface->set_signal_clk              ("clock" ,1, CLOCK_VHDL_YES);
52    in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_YES);
53
54    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55    {
56      ALLOC1_INTERFACE_BEGIN("gpr_read",IN,NORTH,_("Interface to read the register file"),_param->_nb_gpr_read);
57     
58      ALLOC1_VALACK_IN ( in_GPR_READ_VAL          ,VAL);
59      ALLOC1_VALACK_OUT(out_GPR_READ_ACK          ,ACK);
60      ALLOC1_SIGNAL_IN ( in_GPR_READ_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id);
61      ALLOC1_SIGNAL_IN ( in_GPR_READ_NUM_REG      ,"num_reg"      ,Tgeneral_address_t,_param->_size_gpr_address);
62      ALLOC1_SIGNAL_OUT(out_GPR_READ_DATA         ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data);
63      ALLOC1_SIGNAL_OUT(out_GPR_READ_DATA_VAL     ,"data_val"     ,Tcontrol_t        ,1);
64
65      ALLOC1_INTERFACE_END(_param->_nb_gpr_read);
66    }
67
68    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69    {
70      ALLOC1_INTERFACE_BEGIN("gpr_write",IN,NORTH,_("Interface to write the register file"),_param->_nb_gpr_write);
71
72      ALLOC1_VALACK_IN ( in_GPR_WRITE_VAL          ,VAL);
73      ALLOC1_VALACK_OUT(out_GPR_WRITE_ACK          ,ACK);
74      ALLOC1_SIGNAL_IN ( in_GPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id);
75      ALLOC1_SIGNAL_IN ( in_GPR_WRITE_NUM_REG      ,"num_reg"      ,Tgeneral_address_t,_param->_size_gpr_address);
76      ALLOC1_SIGNAL_IN ( in_GPR_WRITE_DATA         ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data);
77
78      ALLOC1_INTERFACE_END(_param->_nb_gpr_write);
79    }
80
81    // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
82    {
83      ALLOC1_INTERFACE_BEGIN("spr_read",IN,NORTH,_("Interface to read the register file"),_param->_nb_spr_read);
84     
85      ALLOC1_VALACK_IN ( in_SPR_READ_VAL          ,VAL);
86      ALLOC1_VALACK_OUT(out_SPR_READ_ACK          ,ACK);
87      ALLOC1_SIGNAL_IN ( in_SPR_READ_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id);
88      ALLOC1_SIGNAL_IN ( in_SPR_READ_NUM_REG      ,"num_reg"      ,Tspecial_address_t,_param->_size_spr_address);
89      ALLOC1_SIGNAL_OUT(out_SPR_READ_DATA         ,"data"         ,Tspecial_data_t   ,_param->_size_special_data);
90      ALLOC1_SIGNAL_OUT(out_SPR_READ_DATA_VAL     ,"data_val"     ,Tcontrol_t        ,1);
91
92      ALLOC1_INTERFACE_END(_param->_nb_spr_read);
93    }
94
95    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96    {
97      ALLOC1_INTERFACE_BEGIN("spr_write",IN,NORTH,_("Interface to write the register file"),_param->_nb_spr_write);
98
99      ALLOC1_VALACK_IN ( in_SPR_WRITE_VAL          ,VAL);
100      ALLOC1_VALACK_OUT(out_SPR_WRITE_ACK          ,ACK);
101      ALLOC1_SIGNAL_IN ( in_SPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id);
102      ALLOC1_SIGNAL_IN ( in_SPR_WRITE_NUM_REG      ,"num_reg"      ,Tspecial_address_t,_param->_size_spr_address);
103      ALLOC1_SIGNAL_IN ( in_SPR_WRITE_DATA         ,"data"         ,Tspecial_data_t   ,_param->_size_special_data);
104
105      ALLOC1_INTERFACE_END(_param->_nb_spr_write);
106    }
107
108    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
109    {
110      ALLOC1_INTERFACE_BEGIN("issue",IN,WEST,_("Interface to update status (issue)"),_param->_nb_inst_issue);
111     
112      ALLOC1_VALACK_IN ( in_ISSUE_VAL          ,VAL);
113      ALLOC1_VALACK_OUT(out_ISSUE_ACK          ,ACK);
114      ALLOC1_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id);
115      ALLOC1_SIGNAL_IN ( in_ISSUE_RD_USE       ,"rd_use"       ,Tcontrol_t        ,1                          );
116      ALLOC1_SIGNAL_IN ( in_ISSUE_RD_NUM_REG   ,"rd_num_reg"   ,Tgeneral_address_t,_param->_size_gpr_address  );
117      ALLOC1_SIGNAL_IN ( in_ISSUE_RE_USE       ,"re_use"       ,Tcontrol_t        ,1                          );
118      ALLOC1_SIGNAL_IN ( in_ISSUE_RE_NUM_REG   ,"re_num_reg"   ,Tspecial_address_t,_param->_size_spr_address  );
119     
120      ALLOC1_INTERFACE_END(_param->_nb_inst_issue);
121    }
122
123//     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
124//     {
125//       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
126     
127//       _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL       ,VAL                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
128//       _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK       ,ACK                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
129//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
130//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_NUM_REG,"rd_num_reg",Tgeneral_address_t,_param->_size_gpr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
131//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
132//       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_NUM_REG,"re_num_reg",Tspecial_address_t,_param->_size_spr_address,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
133     
134//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
135//     }
136
137//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138//     in_RETIRE_ROB_VAL            = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
139//     out_RETIRE_ROB_ACK            = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
140//     in_RETIRE_ROB_RD_OLD_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
141//     in_RETIRE_ROB_RD_OLD_NUM_REG = new SC_IN (Tgeneral_address_t)  ** [_param->_nb_ooo_engine];
142//     in_RETIRE_ROB_RE_OLD_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
143//     in_RETIRE_ROB_RE_OLD_NUM_REG = new SC_IN (Tspecial_address_t)  ** [_param->_nb_ooo_engine];
144//     in_RETIRE_ROB_RD_NEW_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
145//     in_RETIRE_ROB_RD_NEW_NUM_REG = new SC_IN (Tgeneral_address_t)  ** [_param->_nb_ooo_engine];
146//     in_RETIRE_ROB_RE_NEW_USE     = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
147//     in_RETIRE_ROB_RE_NEW_NUM_REG = new SC_IN (Tspecial_address_t)  ** [_param->_nb_ooo_engine];
148
149//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
150//       {
151//      uint32_t x=_param->_nb_inst_retire_rob [i];
152
153//      in_RETIRE_ROB_VAL            [i] = new SC_IN (Tcontrol_t        )  * [x];
154//      out_RETIRE_ROB_ACK            [i] = new SC_OUT(Tcontrol_t        )  * [x];
155//      in_RETIRE_ROB_RD_OLD_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
156//      in_RETIRE_ROB_RD_OLD_NUM_REG [i] = new SC_IN (Tgeneral_address_t)  * [x];
157//      in_RETIRE_ROB_RE_OLD_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
158//      in_RETIRE_ROB_RE_OLD_NUM_REG [i] = new SC_IN (Tspecial_address_t)  * [x];
159//      in_RETIRE_ROB_RD_NEW_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
160//      in_RETIRE_ROB_RD_NEW_NUM_REG [i] = new SC_IN (Tgeneral_address_t)  * [x];
161//      in_RETIRE_ROB_RE_NEW_USE     [i] = new SC_IN (Tcontrol_t        )  * [x];
162//      in_RETIRE_ROB_RE_NEW_NUM_REG [i] = new SC_IN (Tspecial_address_t)  * [x];
163
164//      for (uint32_t j=0; j<x; j++)
165//        {
166//          Interface_fifo * interface = _interfaces->set_interface("retire_rob_"+toString(i)+"_"+toString(j)
167// #ifdef POSITION
168//                                                                  ,IN
169//                                                                  ,WEST
170//                                                                  ,"Interface to update status (retire)"
171// #endif
172//                                                                  );
173
174
175//          in_RETIRE_ROB_VAL            [i][j] = interface->set_signal_valack_in  (VAL);
176//         out_RETIRE_ROB_ACK            [i][j] = interface->set_signal_valack_out (ACK);
177//          in_RETIRE_ROB_RD_OLD_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("rd_old_use"    , 1);
178//          in_RETIRE_ROB_RD_OLD_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_old_num_reg", _param->_size_gpr_address);
179//          in_RETIRE_ROB_RE_OLD_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("re_old_use"    , 1);
180//          in_RETIRE_ROB_RE_OLD_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_old_num_reg", _param->_size_spr_address);
181//          in_RETIRE_ROB_RD_NEW_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("rd_new_use"    , 1);
182//          in_RETIRE_ROB_RD_NEW_NUM_REG [i][j] = interface->set_signal_in <Tgeneral_address_t> ("rd_new_num_reg", _param->_size_gpr_address);
183//          in_RETIRE_ROB_RE_NEW_USE     [i][j] = interface->set_signal_in <Tcontrol_t        > ("re_new_use"    , 1);
184//          in_RETIRE_ROB_RE_NEW_NUM_REG [i][j] = interface->set_signal_in <Tspecial_address_t> ("re_new_num_reg", _param->_size_spr_address);
185//        }
186//       }
187
188    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
189
190    std::string name;
191     
192    component_gpr        = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine];
193    component_gpr_status = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine];
194    component_spr        = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine];
195    component_spr_status = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine];
196
197//     component_gpr        = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked * [_param->_nb_ooo_engine];
198//     component_gpr_status = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   * [_param->_nb_ooo_engine];
199//     component_spr        = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked * [_param->_nb_ooo_engine];
200//     component_spr_status = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   * [_param->_nb_ooo_engine];
201     
202    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
203      {
204        name = _name+"_gpr_"+toString(i);
205        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
206
207        component_gpr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
208//      component_gpr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked
209          (name.c_str()
210#ifdef STATISTICS
211           ,param_statistics
212#endif
213           ,_param->_param_gpr [i]//->_param_registerfile_multi_banked
214           ,_usage
215           );
216         
217        _component->set_component (component_gpr[i]->_component
218#ifdef POSITION
219                                   , 50
220                                   , 50
221                                   , 10
222                                   , 10
223#endif
224                                   );
225
226
227        name = _name+"_gpr_status_"+toString(i);
228        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
229
230        component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
231//      component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic
232          (name.c_str()
233#ifdef STATISTICS
234           ,param_statistics
235#endif
236           ,_param->_param_gpr_status [i]//->_param_registerfile_monolithic
237           ,_usage
238           );
239
240        _component->set_component (component_gpr_status[i]->_component
241#ifdef POSITION
242                                   , 50
243                                   , 50
244                                   , 10
245                                   , 10
246#endif
247                                   );
248
249
250        name = _name+"_spr_"+toString(i);
251        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
252         
253        component_spr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
254//      component_spr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked
255          (name.c_str()
256#ifdef STATISTICS
257           ,param_statistics
258#endif
259           ,_param->_param_spr [i]//->_param_registerfile_multi_banked
260           ,_usage
261           );
262
263        _component->set_component (component_spr[i]->_component
264#ifdef POSITION
265                                   , 50
266                                   , 50
267                                   , 10
268                                   , 10
269#endif
270                                   );
271
272        name = _name+"_spr_status_"+toString(i);
273        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
274
275        component_spr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
276//      component_spr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic::RegisterFile_Monolithic
277          (name.c_str()
278#ifdef STATISTICS
279           ,param_statistics
280#endif
281           ,_param->_param_spr_status [i]//->_param_registerfile_monolithic
282           ,_usage
283           );
284
285        _component->set_component (component_spr_status[i]->_component
286#ifdef POSITION
287                                   , 50
288                                   , 50
289                                   , 10
290                                   , 10
291#endif
292                                   );
293      }
294
295    {
296      name = _name+"_glue";
297      log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
298     
299      component_glue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue     
300        (name.c_str()
301#ifdef STATISTICS
302         ,param_statistics
303#endif
304         ,_param->_param_glue
305         ,_usage
306         );
307     
308      _component->set_component (component_glue->_component
309#ifdef POSITION
310                                 , 50
311                                 , 50
312                                 , 10
313                                 , 10
314#endif
315                                 );
316    }
317     
318    // ~~~~~[ Instanciation ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
319    std::string src,dest;
320
321    // -------------------------------------------------------------------   
322    // -----[ gpr ]-------------------------------------------------------   
323    // -------------------------------------------------------------------   
324    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
325      {
326        src = _name+"_gpr_"+toString(i);
327       
328        log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),src.c_str());
329       
330        // -----[ instance "" ]-----------------------------------------------   
331        {
332          dest = _name;
333#ifdef POSITION
334          _component->interface_map (src ,"",
335                                     dest,"");
336#endif
337          PORT_MAP(_component,src , "in_CLOCK" ,dest, "in_CLOCK");
338          PORT_MAP(_component,src , "in_NRESET",dest, "in_NRESET");
339        }
340
341        // -----[ instance "read" ]-------------------------------------------   
342        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
343          {
344            dest = _name+"_glue";
345           
346#ifdef POSITION
347            _component->interface_map (src ,    "read_"+toString(j),
348                                       dest,"gpr_read_registerfile_"+toString(i)+"_"+toString(j));
349#endif
350
351            COMPONENT_MAP(_component,src , "in_READ_"                                 +toString(j)+"_VAL",
352                                     dest,"out_GPR_READ_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_VAL");
353            COMPONENT_MAP(_component,src ,"out_READ_"                                 +toString(j)+"_ACK",
354                                     dest, "in_GPR_READ_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_ACK");
355            COMPONENT_MAP(_component,src ,"out_READ_"                                 +toString(j)+"_DATA",
356                                     dest, "in_GPR_READ_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_DATA");
357
358            dest = _name;
359
360            PORT_MAP     (_component,src , "in_READ_"    +toString(j)+"_ADDRESS",
361                                     dest, "in_GPR_READ_"+toString(j)+"_NUM_REG");
362          }
363
364        // -----[ instance "write" ]------------------------------------------   
365        for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
366          {
367            dest = _name+"_glue";
368           
369#ifdef POSITION
370            _component->interface_map (src ,    "write_"+toString(j),
371                                       dest,"gpr_write_registerfile_"+toString(i)+"_"+toString(j));
372#endif
373
374            COMPONENT_MAP(_component,src , "in_WRITE_"                                 +toString(j)+"_VAL",
375                                     dest,"out_GPR_WRITE_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_VAL");
376            COMPONENT_MAP(_component,src ,"out_WRITE_"                                 +toString(j)+"_ACK",
377                                     dest, "in_GPR_WRITE_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_ACK");
378
379            dest = _name;
380
381            PORT_MAP     (_component,src , "in_WRITE_"    +toString(j)+"_ADDRESS",
382                                     dest, "in_GPR_WRITE_"+toString(j)+"_NUM_REG");
383            PORT_MAP     (_component,src , "in_WRITE_"    +toString(j)+"_DATA",
384                                     dest, "in_GPR_WRITE_"+toString(j)+"_DATA");
385          }
386      }// gpr
387   
388    // -------------------------------------------------------------------   
389    // -----[ gpr_status ]------------------------------------------------
390    // -------------------------------------------------------------------   
391    {
392      uint32_t x=0;
393
394      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
395        {
396          src = _name+"_gpr_status_"+toString(i);
397         
398          log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),src.c_str());
399
400          {
401            dest = _name;
402#ifdef POSITION
403            _component->interface_map (src ,"",
404                                       dest,"");
405#endif
406            PORT_MAP(_component,src , "in_CLOCK" ,dest, "in_CLOCK");
407            PORT_MAP(_component,src , "in_NRESET",dest, "in_NRESET");
408          }
409         
410          for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
411            {
412              dest = _name+"_glue";
413             
414#ifdef POSITION
415              _component->interface_map (src ,    "read_"+toString(j),
416                                         dest,"gpr_read_status_"+toString(i)+"_"+toString(j));
417#endif
418
419              COMPONENT_MAP(_component,src , "in_READ_"                           +toString(j)+"_VAL",
420                                       dest,"out_GPR_READ_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
421              COMPONENT_MAP(_component,src ,"out_READ_"                           +toString(j)+"_ACK",
422                                       dest, "in_GPR_READ_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
423              COMPONENT_MAP(_component,src ,"out_READ_"                           +toString(j)+"_DATA",
424                                       dest, "in_GPR_READ_STATUS_"+toString(i)+"_"+toString(j)+"_DATA_VAL");
425
426              dest = _name;
427             
428              PORT_MAP     (_component,src , "in_READ_"    +toString(j)+"_ADDRESS",
429                                       dest, "in_GPR_READ_"+toString(j)+"_NUM_REG");
430            }
431
432          for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
433            {
434              dest = _name+"_glue";
435             
436#ifdef POSITION
437              _component->interface_map (src ,    "write_"+toString(x),
438                                         dest,"gpr_write_status_"+toString(i)+"_"+toString(j));
439#endif
440
441              COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_VAL",
442                                       dest,"out_GPR_WRITE_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
443              COMPONENT_MAP(_component,src ,"out_WRITE_"                           +toString(x)+"_ACK",
444                                       dest, "in_GPR_WRITE_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
445              COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_DATA",
446                                       dest,"out_GPR_WRITE_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
447//                                     dest,"out_CONST_1");
448             
449              dest = _name;
450             
451              PORT_MAP     (_component,src , "in_WRITE_"    +toString(x)+"_ADDRESS",
452                                       dest, "in_GPR_WRITE_"+toString(j)+"_NUM_REG");
453
454              x++;
455            }
456         
457//        for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
458//          {
459//               dest = _name+"_glue";
460             
461// #ifdef POSITION
462//               _component->interface_map (src ,    "write_"+toString(j),
463//                                          dest,"insert_rob_gpr_status_"+toString(i)+"_"+toString(j));
464// #endif
465
466//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
467//                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
468//               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
469//                                        dest, "in_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
470//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
471//                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
472// //                                     dest,"out_CONST_0");
473             
474//               dest = _name;
475             
476//               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
477//                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
478
479//               x++;
480//          }
481
482      for (uint32_t j=0; j<_param->_nb_inst_issue; j++)
483        {
484          dest = _name+"_glue";
485         
486#ifdef POSITION
487          _component->interface_map (src ,"write_"+toString(j),
488                                     dest,"issue_gpr_status_"+toString(i)+"_"+toString(j));
489#endif
490
491          COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_VAL",
492                                   dest,"out_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
493          COMPONENT_MAP(_component,src ,"out_WRITE_"                           +toString(x)+"_ACK",
494                                   dest, "in_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
495          COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_DATA",
496                                   dest,"out_ISSUE_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
497//                                 dest,"out_CONST_0");
498             
499          dest = _name;
500             
501          PORT_MAP     (_component,src , "in_WRITE_"+toString(x)+"_ADDRESS",
502                                   dest, "in_ISSUE_"+toString(j)+"_RD_NUM_REG");
503
504          x++;
505        }
506        }
507    }// gpr_status
508
509    // -------------------------------------------------------------------   
510    // -----[ spr ]-------------------------------------------------------
511    // -------------------------------------------------------------------   
512    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
513      {
514        src = _name+"_spr_"+toString(i);
515       
516        log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),src.c_str());
517       
518        {
519          dest = _name;
520#ifdef POSITION
521          _component->interface_map (src ,"",
522                                     dest,"");
523#endif
524          PORT_MAP(_component,src , "in_CLOCK" ,dest, "in_CLOCK");
525          PORT_MAP(_component,src , "in_NRESET",dest, "in_NRESET");
526        }
527
528        for (uint32_t j=0; j<_param->_nb_spr_read; j++)
529          {
530            dest = _name+"_glue";
531           
532#ifdef POSITION
533            _component->interface_map (src ,    "read_"+toString(j),
534                                       dest,"spr_read_registerfile_"+toString(i)+"_"+toString(j));
535#endif
536
537            COMPONENT_MAP(_component,src , "in_READ_"                                 +toString(j)+"_VAL",
538                                     dest,"out_SPR_READ_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_VAL");
539            COMPONENT_MAP(_component,src ,"out_READ_"                                 +toString(j)+"_ACK",
540                                     dest, "in_SPR_READ_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_ACK");
541            COMPONENT_MAP(_component,src ,"out_READ_"                                 +toString(j)+"_DATA",
542                                     dest, "in_SPR_READ_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_DATA");
543
544            dest = _name;
545
546            PORT_MAP     (_component,src , "in_READ_"    +toString(j)+"_ADDRESS",
547                                     dest, "in_SPR_READ_"+toString(j)+"_NUM_REG");
548          }
549
550        for (uint32_t j=0; j<_param->_nb_spr_write; j++)
551          {
552            dest = _name+"_glue";
553           
554#ifdef POSITION
555            _component->interface_map (src ,    "write_"+toString(j),
556                                       dest,"spr_write_registerfile_"+toString(i)+"_"+toString(j));
557#endif
558
559            COMPONENT_MAP(_component,src , "in_WRITE_"                                 +toString(j)+"_VAL",
560                                     dest,"out_SPR_WRITE_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_VAL");
561            COMPONENT_MAP(_component,src ,"out_WRITE_"                                 +toString(j)+"_ACK",
562                                     dest, "in_SPR_WRITE_REGISTERFILE_"+toString(i)+"_"+toString(j)+"_ACK");
563
564            dest = _name;
565
566            PORT_MAP     (_component,src , "in_WRITE_"    +toString(j)+"_ADDRESS",
567                                     dest, "in_SPR_WRITE_"+toString(j)+"_NUM_REG");
568            PORT_MAP     (_component,src , "in_WRITE_"    +toString(j)+"_DATA",
569                                     dest, "in_SPR_WRITE_"+toString(j)+"_DATA");
570          }
571      }// spr
572   
573    // -------------------------------------------------------------------   
574    // -----[ spr_status ]------------------------------------------------
575    // -------------------------------------------------------------------   
576    {
577      uint32_t x=0;
578      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
579        {
580          src = _name+"_spr_status_"+toString(i);
581         
582          log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),src.c_str());       
583 
584          {
585            dest = _name;
586#ifdef POSITION
587            _component->interface_map (src ,"",
588                                       dest,"");
589#endif
590            PORT_MAP(_component,src , "in_CLOCK" ,dest, "in_CLOCK");
591            PORT_MAP(_component,src , "in_NRESET",dest, "in_NRESET");
592          }
593
594          for (uint32_t j=0; j<_param->_nb_spr_read; j++)
595            {
596              dest = _name+"_glue";
597             
598#ifdef POSITION
599              _component->interface_map (src ,    "read_"+toString(j),
600                                         dest,"spr_read_status_"+toString(i)+"_"+toString(j));
601#endif
602
603              COMPONENT_MAP(_component,src , "in_READ_"                           +toString(j)+"_VAL",
604                                       dest,"out_SPR_READ_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
605              COMPONENT_MAP(_component,src ,"out_READ_"                           +toString(j)+"_ACK",
606                                       dest, "in_SPR_READ_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
607              COMPONENT_MAP(_component,src ,"out_READ_"                           +toString(j)+"_DATA",
608                                       dest, "in_SPR_READ_STATUS_"+toString(i)+"_"+toString(j)+"_DATA_VAL");
609
610              dest = _name;
611             
612              PORT_MAP     (_component,src , "in_READ_"    +toString(j)+"_ADDRESS",
613                                       dest, "in_SPR_READ_"+toString(j)+"_NUM_REG");
614            }
615
616          for (uint32_t j=0; j<_param->_nb_spr_write; j++)
617            {
618              dest = _name+"_glue";
619             
620#ifdef POSITION
621              _component->interface_map (src ,    "write_"+toString(x),
622                                         dest,"spr_write_status_"+toString(i)+"_"+toString(j));
623#endif
624
625              COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_VAL",
626                                       dest,"out_SPR_WRITE_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
627              COMPONENT_MAP(_component,src ,"out_WRITE_"                           +toString(x)+"_ACK",
628                                       dest, "in_SPR_WRITE_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
629              COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_DATA",
630                                       dest,"out_SPR_WRITE_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
631//                                     dest,"out_CONST_1");
632             
633              dest = _name;
634             
635              PORT_MAP     (_component,src , "in_WRITE_"    +toString(x)+"_ADDRESS",
636                                       dest, "in_SPR_WRITE_"+toString(j)+"_NUM_REG");
637
638              x++;
639            }
640
641//        for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
642//          {
643//               dest = _name+"_glue";
644             
645// #ifdef POSITION
646//               _component->interface_map (src ,    "write_"+toString(x),
647//                                          dest,"insert_rob_spr_status_"+toString(i)+"_"+toString(j));
648// #endif
649
650//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
651//                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
652//               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
653//                                        dest, "in_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
654//               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
655//                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
656// //                                     dest,"out_CONST_0");
657
658//               dest = _name;
659             
660//               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
661//                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
662
663//               x++;
664//          }
665         
666      for (uint32_t j=0; j<_param->_nb_inst_issue; j++)
667        {
668          dest = _name+"_glue";
669         
670#ifdef POSITION
671          _component->interface_map (src ,    "write_"+toString(x),
672                                     dest,"issue_spr_status_"+toString(i)+"_"+toString(j));
673#endif
674         
675          COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_VAL",
676                                   dest,"out_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
677          COMPONENT_MAP(_component,src ,"out_WRITE_"                           +toString(x)+"_ACK",
678                                   dest, "in_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
679          COMPONENT_MAP(_component,src , "in_WRITE_"                           +toString(x)+"_DATA",
680                                   dest,"out_ISSUE_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
681//                                 dest,"out_CONST_0");
682
683          dest = _name;
684             
685          PORT_MAP     (_component,src , "in_WRITE_"+toString(x)+"_ADDRESS",
686                                   dest, "in_ISSUE_"+toString(j)+"_RE_NUM_REG");
687         
688          x++;
689        }
690
691        }
692    }// spr_status
693
694    // -------------------------------------------------------------------   
695    // -----[ glue ]------------------------------------------------------
696    // -------------------------------------------------------------------   
697    {
698      src = _name+"_glue";
699     
700      log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),src.c_str()); 
701   
702        {
703          dest = _name;
704#ifdef POSITION
705          _component->interface_map (src ,"",
706                                     dest,"");
707#endif
708          PORT_MAP(_component,src , "in_CLOCK" ,dest, "in_CLOCK");
709          PORT_MAP(_component,src , "in_NRESET",dest, "in_NRESET");
710        }
711
712      for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
713        {
714          dest = _name;
715             
716#ifdef POSITION
717          _component->interface_map (src ,"gpr_read_"+toString(j),
718                                     dest,"gpr_read_"+toString(j));
719#endif
720
721          PORT_MAP(_component,src , "in_GPR_READ_"+toString(j)+"_VAL",
722                              dest, "in_GPR_READ_"+toString(j)+"_VAL");
723          PORT_MAP(_component,src ,"out_GPR_READ_"+toString(j)+"_ACK",
724                              dest,"out_GPR_READ_"+toString(j)+"_ACK");
725          if (_param->_have_port_ooo_engine_id == true)
726          PORT_MAP(_component,src , "in_GPR_READ_"+toString(j)+"_OOO_ENGINE_ID",
727                              dest, "in_GPR_READ_"+toString(j)+"_OOO_ENGINE_ID");
728          PORT_MAP(_component,src ,"out_GPR_READ_"+toString(j)+"_DATA",
729                              dest,"out_GPR_READ_"+toString(j)+"_DATA");
730          PORT_MAP(_component,src ,"out_GPR_READ_"+toString(j)+"_DATA_VAL",
731                              dest,"out_GPR_READ_"+toString(j)+"_DATA_VAL");
732
733          // out_GPR_READ_REGISTERFILE_VAL   - gpr. in_READ_VAL
734          //  in_GPR_READ_REGISTERFILE_ACK   - gpr.out_READ_ACK
735          //  in_GPR_READ_REGISTERFILE_DATA  - gpr.out_READ_DATA
736         
737          // out_GPR_READ_STATUS_VAL         - gpr. in_READ_VAL
738          //  in_GPR_READ_STATUS_ACK         - gpr.out_READ_ACK
739          //  in_GPR_READ_STATUS_DATA_VAL    - gpr.out_READ_DATA
740        }
741
742      for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
743        {
744          dest = _name;
745
746#ifdef POSITION
747          _component->interface_map (src ,"gpr_write_"+toString(j),
748                                     dest,"gpr_write_"+toString(j));
749#endif
750
751          PORT_MAP(_component,src , "in_GPR_WRITE_"+toString(j)+"_VAL",
752                              dest, "in_GPR_WRITE_"+toString(j)+"_VAL");
753          PORT_MAP(_component,src ,"out_GPR_WRITE_"+toString(j)+"_ACK",
754                              dest,"out_GPR_WRITE_"+toString(j)+"_ACK");
755          if (_param->_have_port_ooo_engine_id == true)
756          PORT_MAP(_component,src , "in_GPR_WRITE_"+toString(j)+"_OOO_ENGINE_ID",
757                              dest, "in_GPR_WRITE_"+toString(j)+"_OOO_ENGINE_ID");
758
759          // out_GPR_WRITE_REGISTERFILE_VAL - gpr. in_WRITE_VAL
760          //  in_GPR_WRITE_REGISTERFILE_ACK - gpr.out_WRITE_ACK
761          // out_GPR_WRITE_STATUS_VAL       - gpr. in_WRITE_VAL
762          //  in_GPR_WRITE_STATUS_ACK       - gpr.out_WRITE_ACK
763          // out_GPR_WRITE_STATUS_DATA      - gpr. in_WRITE_DATA
764        }
765
766      for (uint32_t j=0; j<_param->_nb_spr_read; j++)
767        {
768          dest = _name;
769             
770#ifdef POSITION
771          _component->interface_map (src ,"spr_read_"+toString(j),
772                                     dest,"spr_read_"+toString(j));
773#endif
774
775          PORT_MAP(_component,src , "in_SPR_READ_"+toString(j)+"_VAL",
776                              dest, "in_SPR_READ_"+toString(j)+"_VAL");
777          PORT_MAP(_component,src ,"out_SPR_READ_"+toString(j)+"_ACK",
778                              dest,"out_SPR_READ_"+toString(j)+"_ACK");
779          if (_param->_have_port_ooo_engine_id == true)
780          PORT_MAP(_component,src , "in_SPR_READ_"+toString(j)+"_OOO_ENGINE_ID",
781                              dest, "in_SPR_READ_"+toString(j)+"_OOO_ENGINE_ID");
782          PORT_MAP(_component,src ,"out_SPR_READ_"+toString(j)+"_DATA",
783                              dest,"out_SPR_READ_"+toString(j)+"_DATA");
784          PORT_MAP(_component,src ,"out_SPR_READ_"+toString(j)+"_DATA_VAL",
785                              dest,"out_SPR_READ_"+toString(j)+"_DATA_VAL");
786
787          // out_SPR_READ_REGISTERFILE_VAL   - spr. in_READ_VAL
788          //  in_SPR_READ_REGISTERFILE_ACK   - spr.out_READ_ACK
789          //  in_SPR_READ_REGISTERFILE_DATA  - spr.out_READ_DATA
790         
791          // out_SPR_READ_STATUS_VAL         - spr. in_READ_VAL
792          //  in_SPR_READ_STATUS_ACK         - spr.out_READ_ACK
793          //  in_SPR_READ_STATUS_DATA_VAL    - spr.out_READ_DATA
794        }
795
796      for (uint32_t j=0; j<_param->_nb_spr_write; j++)
797        {
798          dest = _name;
799
800#ifdef POSITION
801          _component->interface_map (src ,"spr_write_"+toString(j),
802                                     dest,"spr_write_"+toString(j));
803#endif
804
805          PORT_MAP(_component,src , "in_SPR_WRITE_"+toString(j)+"_VAL",
806                              dest, "in_SPR_WRITE_"+toString(j)+"_VAL");
807          PORT_MAP(_component,src ,"out_SPR_WRITE_"+toString(j)+"_ACK",
808                              dest,"out_SPR_WRITE_"+toString(j)+"_ACK");
809          if (_param->_have_port_ooo_engine_id == true)
810          PORT_MAP(_component,src , "in_SPR_WRITE_"+toString(j)+"_OOO_ENGINE_ID",
811                              dest, "in_SPR_WRITE_"+toString(j)+"_OOO_ENGINE_ID");
812
813          // out_SPR_WRITE_REGISTERFILE_VAL - spr. in_WRITE_VAL
814          //  in_SPR_WRITE_REGISTERFILE_ACK - spr.out_WRITE_ACK
815          // out_SPR_WRITE_STATUS_VAL       - spr. in_WRITE_VAL
816          //  in_SPR_WRITE_STATUS_ACK       - spr.out_WRITE_ACK
817          // out_SPR_WRITE_STATUS_DATA      - spr. in_WRITE_DATA
818        }
819
820//       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
821//      {
822//        uint32_t x = _param->_nb_inst_insert_rob [i];
823
824//        for (uint32_t j=0; j<x; j++)
825//          {
826//               dest = _name;
827
828// #ifdef POSITION
829//               _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
830//                                          dest,"insert_rob_"+toString(i)+"_"+toString(j));
831// #endif
832
833//            PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL",
834//                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL");
835//            PORT_MAP(_component,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK",
836//                                   dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK");
837//            PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE",
838//                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE");
839//            PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE",
840//                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE");
841             
842//               // out_INSERT_ROB_GPR_STATUS_VAL - gpr_status.  in_WRITE_VAL
843//               //  in_INSERT_ROB_GPR_STATUS_ACK - gpr_status. out_WRITE_ACK
844//               // out_INSERT_ROB_GPR_STATUS_DATA- gpr_status.  in_WRITE_DATA
845//               // out_INSERT_ROB_SPR_STATUS_VAL - spr_status.  in_WRITE_VAL
846//               //  in_INSERT_ROB_SPR_STATUS_ACK - spr_status. out_WRITE_ACK
847//               //  in_INSERT_ROB_SPR_STATUS_DATA- spr_status. out_WRITE_DATA
848//          }
849//      }
850
851      for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
852        {
853          dest = _name;
854         
855#ifdef POSITION
856          _component->interface_map (src ,"issue_"+toString(i),
857                                     dest,"issue_"+toString(i));
858#endif
859
860          PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_VAL",
861                              dest, "in_ISSUE_"+toString(i)+"_VAL");
862          PORT_MAP(_component,src ,"out_ISSUE_"+toString(i)+"_ACK",
863                              dest,"out_ISSUE_"+toString(i)+"_ACK");
864          if (_param->_have_port_ooo_engine_id == true)
865          PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_OOO_ENGINE_ID",
866                              dest, "in_ISSUE_"+toString(i)+"_OOO_ENGINE_ID");
867          PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_RD_USE",
868                              dest, "in_ISSUE_"+toString(i)+"_RD_USE");
869          PORT_MAP(_component,src , "in_ISSUE_"+toString(i)+"_RE_USE",
870                              dest, "in_ISSUE_"+toString(i)+"_RE_USE");
871             
872          // out_ISSUE_GPR_STATUS_VAL - gpr_status. in_WRITE_VAL
873          //  in_ISSUE_GPR_STATUS_ACK - gpr_status.out_WRITE_ACK
874          // out_ISSUE_GPR_STATUS_DATA- gpr_status. in_WRITE_DATA
875          // out_ISSUE_SPR_STATUS_VAL - spr_status. in_WRITE_VAL
876          //  in_ISSUE_SPR_STATUS_ACK - spr_status.out_WRITE_ACK
877          //  in_ISSUE_SPR_STATUS_DATA- spr_status.out_WRITE_DATA
878        }
879
880    }// glue
881
882#if DEBUG_Register_unit == true
883    _component->test_map ();
884#endif
885
886#ifdef POSITION
887    if (usage_is_set(_usage,USE_POSITION))
888      _component->generate_file();
889#endif
890
891//     std::cout << *_component << std::endl;
892
893    log_printf(FUNC,Register_unit,FUNCTION,"End");
894  };
895
896}; // end namespace register_unit
897}; // end namespace execute_loop
898}; // end namespace multi_execute_loop
899}; // end namespace core
900
901}; // end namespace behavioural
902}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.