Ignore:
Timestamp:
Oct 20, 2009, 8:52:15 PM (15 years ago)
Author:
rosiere
Message:

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

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters.cpp

    r124 r136  
    3333                          uint32_t  * nb_general_register      ,
    3434                          uint32_t  * nb_special_register      ,
    35                           uint32_t  * nb_inst_insert_rob       ,
    36                           uint32_t  * nb_inst_retire_rob       ,
     35                          uint32_t    nb_inst_issue            ,
     36//                        uint32_t  * nb_inst_insert_rob       ,
     37//                        uint32_t  * nb_inst_retire_rob       ,
    3738                          bool        is_toplevel              )
    3839  {
     
    5354    _nb_general_register       = nb_general_register      ;
    5455    _nb_special_register       = nb_special_register      ;
    55     _nb_inst_insert_rob        = nb_inst_insert_rob       ;
    56     _nb_inst_retire_rob        = nb_inst_retire_rob       ;
     56    _nb_inst_issue             = nb_inst_issue            ;
     57//     _nb_inst_insert_rob        = nb_inst_insert_rob       ;
     58//     _nb_inst_retire_rob        = nb_inst_retire_rob       ;
    5759
    5860    _size_gpr_address = log2(nb_general_register [0]);
     
    101103          (_nb_gpr_read ,
    102104//         _nb_gpr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i],
    103            _nb_gpr_write+_nb_inst_insert_rob[i],
     105//            _nb_gpr_write+_nb_inst_insert_rob[i],
     106           _nb_gpr_write+_nb_inst_issue,
    104107           0,
    105108           nb_general_register[i],
     
    122125          (_nb_spr_read ,
    123126//         _nb_spr_write+_nb_inst_insert_rob[i]+2*_nb_inst_retire_rob[i],
    124            _nb_spr_write+_nb_inst_insert_rob[i],
     127//         _nb_spr_write+_nb_inst_insert_rob[i],
     128           _nb_spr_write+_nb_inst_issue,
    125129           0,
    126130           nb_special_register[i],
     
    134138      }
    135139   
    136     _param_glue       = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters  (_nb_ooo_engine        ,
    137                                                                                                                                            size_general_data    ,
    138                                                                                                                                            size_special_data    ,
    139                                                                                                                                           _nb_gpr_read          ,
    140                                                                                                                                           _nb_spr_read          ,   
    141                                                                                                                                           _nb_gpr_write         ,
    142                                                                                                                                           _nb_spr_write         ,
    143                                                                                                                                           _nb_inst_insert_rob   ,
    144                                                                                                                                           _nb_inst_retire_rob   );
     140    _param_glue       = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters 
     141      (_nb_ooo_engine        ,
     142        size_general_data    ,
     143        size_special_data    ,
     144       _nb_gpr_read          ,
     145       _nb_spr_read          ,   
     146       _nb_gpr_write         ,
     147       _nb_spr_write         ,
     148       _nb_inst_issue
     149//        _nb_inst_insert_rob   ,
     150//        _nb_inst_retire_rob   
     151       );
    145152   
    146153    test();
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Parameters_print.cpp

    r81 r136  
    3939    xml. singleton_begin("nb_spr_port_read_by_bank "); xml.attribut("value",toString(_nb_spr_port_read_by_bank )); xml.singleton_end();
    4040    xml. singleton_begin("nb_spr_port_write_by_bank"); xml.attribut("value",toString(_nb_spr_port_write_by_bank)); xml.singleton_end();
     41    xml. singleton_begin("nb_inst_issue            "); xml.attribut("value",toString(_nb_inst_issue            )); xml.singleton_end();
    4142   
    42     xml. balise_open("multi_ooo_engine");
    43     for (uint32_t i=0; i<_nb_ooo_engine; i++)
    44       {
    45         xml.  balise_open_begin("ooo_engine");
    46         xml.   attribut("id", toString(i));
    47         xml.  balise_open_end();
    48         xml.   singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register [i])); xml.singleton_end();
    49         xml.   singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register [i])); xml.singleton_end();
    50         xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
    51         xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
    52         xml.  balise_close();
    53       }
    54     xml. balise_close();
     43//     xml. balise_open("multi_ooo_engine");
     44//     for (uint32_t i=0; i<_nb_ooo_engine; i++)
     45//       {
     46//      xml.  balise_open_begin("ooo_engine");
     47//      xml.   attribut("id", toString(i));
     48//      xml.  balise_open_end();
     49//      xml.   singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register [i])); xml.singleton_end();
     50//      xml.   singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register [i])); xml.singleton_end();
     51//      xml.   singleton_begin("nb_inst_insert_rob "); xml.attribut("value",toString(_nb_inst_insert_rob  [i])); xml.singleton_end();
     52//      xml.   singleton_begin("nb_inst_retire_rob "); xml.attribut("value",toString(_nb_inst_retire_rob  [i])); xml.singleton_end();
     53//      xml.  balise_close();
     54//       }
     55//     xml. balise_close();
    5556
    5657//     xml. text (_param_glue->print(depth+1));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp

    r131 r136  
    3535    ,_usage            (usage)
    3636  {
    37     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
     37    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    3838
    3939// #if DEBUG_Register_unit == true
     
    4343// #endif   
    4444
    45     log_printf(INFO,Register_unit,FUNCTION,"Allocation");
     45    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4646    allocation (
    4747#ifdef STATISTICS
     
    6363      {
    6464        // generate the vhdl
    65         log_printf(INFO,Register_unit,FUNCTION,"Generate the vhdl");
     65        log_printf(INFO,Register_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6666       
    6767        vhdl();
     
    7373      {
    7474//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    75     log_printf(INFO,Register_unit,FUNCTION,"Method - transition");
     75    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    7676
    7777    SC_METHOD (transition);
     
    8585      }
    8686#endif
    87     log_printf(FUNC,Register_unit,FUNCTION,"End");
     87    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> End"),_name.c_str());
    8888  };
    8989 
     
    9292  Register_unit::~Register_unit (void)
    9393  {
    94     log_printf(FUNC,Register_unit,FUNCTION,"Begin");
     94    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> Begin"),_name.c_str());
    9595
    9696#ifdef STATISTICS
    9797    if (usage_is_set(_usage,USE_STATISTICS))
    9898      {
    99         log_printf(INFO,Register_unit,FUNCTION,"Generate Statistics file");
     99        log_printf(INFO,Register_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    100100        delete _stat;
    101101      }
    102102#endif
    103103
    104     log_printf(INFO,Register_unit,FUNCTION,"Deallocation");
     104    log_printf(INFO,Register_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    105105    deallocation ();
    106106
    107     log_printf(FUNC,Register_unit,FUNCTION,"End");
     107    log_printf(FUNC,Register_unit,FUNCTION,_("<%s> End"),_name.c_str());
    108108  };
    109109
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp

    r131 r136  
    106106    }
    107107
    108     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     108    // ~~~~~[ Interface "issue" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    109109    {
    110       ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     110      ALLOC1_INTERFACE_BEGIN("issue",IN,WEST,_("Interface to update status (issue)"),_param->_nb_inst_issue);
    111111     
    112       _ALLOC2_VALACK_IN ( in_INSERT_ROB_VAL       ,VAL                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    113       _ALLOC2_VALACK_OUT(out_INSERT_ROB_ACK       ,ACK                                                      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    114       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RD_USE    ,"rd_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    115       _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]);
    116       _ALLOC2_SIGNAL_IN ( in_INSERT_ROB_RE_USE    ,"re_use"    ,Tcontrol_t        ,1                        ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    117       _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]);
     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  );
    118119     
    119       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     120      ALLOC1_INTERFACE_END(_param->_nb_inst_issue);
    120121    }
     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//     }
    121136
    122137//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    375390    // -------------------------------------------------------------------   
    376391    {
     392      uint32_t x=0;
     393
    377394      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    378395        {
     
    413430            }
    414431
    415           uint32_t x=0;
    416432          for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
    417433            {
     
    439455            }
    440456         
    441           for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
    442             {
    443               dest = _name+"_glue";
    444              
    445 #ifdef POSITION
    446               _component->interface_map (src ,    "write_"+toString(j),
    447                                          dest,"insert_rob_gpr_status_"+toString(i)+"_"+toString(j));
    448 #endif
    449 
    450               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
    451                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
    452               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
    453                                        dest, "in_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
    454               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
    455                                        dest,"out_INSERT_ROB_GPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
    456 //                                     dest,"out_CONST_0");
    457              
    458               dest = _name;
    459              
    460               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
    461                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_NUM_REG");
    462 
    463               x++;
    464             }
     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        }
    465506        }
    466507    }// gpr_status
     
    534575    // -------------------------------------------------------------------   
    535576    {
     577      uint32_t x=0;
    536578      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    537579        {
     
    572614            }
    573615
    574           uint32_t x=0;
    575616          for (uint32_t j=0; j<_param->_nb_spr_write; j++)
    576617            {
     
    597638              x++;
    598639            }
     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//          }
    599665         
    600           for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
    601             {
    602               dest = _name+"_glue";
    603              
    604 #ifdef POSITION
    605               _component->interface_map (src ,    "write_"+toString(x),
    606                                          dest,"insert_rob_spr_status_"+toString(i)+"_"+toString(j));
    607 #endif
    608 
    609               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_VAL",
    610                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_VAL");
    611               COMPONENT_MAP(_component,src ,"out_WRITE_"                                +toString(x)+"_ACK",
    612                                        dest, "in_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_ACK");
    613               COMPONENT_MAP(_component,src , "in_WRITE_"                                +toString(x)+"_DATA",
    614                                        dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
    615 //                                     dest,"out_CONST_0");
    616 
    617               dest = _name;
    618              
    619               PORT_MAP     (_component,src , "in_WRITE_"                     +toString(x)+"_ADDRESS",
    620                                        dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_NUM_REG");
    621 
    622               x++;
    623             }
     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
    624691        }
    625692    }// spr_status
     
    751818        }
    752819
    753       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     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++)
    754852        {
    755           uint32_t x = _param->_nb_inst_insert_rob [i];
    756 
    757           for (uint32_t j=0; j<x; j++)
    758             {
    759               dest = _name;
    760 
    761 #ifdef POSITION
    762               _component->interface_map (src ,"insert_rob_"+toString(i)+"_"+toString(j),
    763                                          dest,"insert_rob_"+toString(i)+"_"+toString(j));
    764 #endif
    765 
    766               PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL",
    767                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_VAL");
    768               PORT_MAP(_component,src ,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK",
    769                                   dest,"out_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_ACK");
    770               PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE",
    771                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RD_USE");
    772               PORT_MAP(_component,src , "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE",
    773                                   dest, "in_INSERT_ROB_"+toString(i)+"_"+toString(j)+"_RE_USE");
    774              
    775               // out_INSERT_ROB_GPR_STATUS_VAL - gpr_status.  in_WRITE_VAL
    776               //  in_INSERT_ROB_GPR_STATUS_ACK - gpr_status. out_WRITE_ACK
    777               // out_INSERT_ROB_GPR_STATUS_DATA- gpr_status.  in_WRITE_DATA
    778               // out_INSERT_ROB_SPR_STATUS_VAL - spr_status.  in_WRITE_VAL
    779               //  in_INSERT_ROB_SPR_STATUS_ACK - spr_status. out_WRITE_ACK
    780               //  in_INSERT_ROB_SPR_STATUS_DATA- spr_status. out_WRITE_DATA
    781             }
     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
    782878        }
     879
    783880    }// glue
    784881
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_deallocation.cpp

    r128 r136  
    5454        DELETE1_SIGNAL( in_SPR_WRITE_DATA         ,_param->_nb_spr_write,_param->_size_special_data);
    5555               
    56         DELETE2_SIGNAL( in_INSERT_ROB_VAL         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    57         DELETE2_SIGNAL(out_INSERT_ROB_ACK         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    58         DELETE2_SIGNAL( in_INSERT_ROB_RD_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    59         DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_gpr_address);
    60         DELETE2_SIGNAL( in_INSERT_ROB_RE_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
    61         DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_spr_address);
     56        DELETE1_SIGNAL( in_ISSUE_VAL          ,_param->_nb_inst_issue,1);
     57        DELETE1_SIGNAL(out_ISSUE_ACK          ,_param->_nb_inst_issue,1);
     58        DELETE1_SIGNAL( in_ISSUE_OOO_ENGINE_ID,_param->_nb_inst_issue,_param->_size_ooo_engine_id);
     59        DELETE1_SIGNAL( in_ISSUE_RD_USE       ,_param->_nb_inst_issue,1);
     60        DELETE1_SIGNAL( in_ISSUE_RD_NUM_REG   ,_param->_nb_inst_issue,_param->_size_gpr_address);
     61        DELETE1_SIGNAL( in_ISSUE_RE_USE       ,_param->_nb_inst_issue,1);
     62        DELETE1_SIGNAL( in_ISSUE_RE_NUM_REG   ,_param->_nb_inst_issue,_param->_size_spr_address);
     63
     64//         DELETE2_SIGNAL( in_INSERT_ROB_VAL         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     65//         DELETE2_SIGNAL(out_INSERT_ROB_ACK         ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     66//         DELETE2_SIGNAL( in_INSERT_ROB_RD_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     67//         DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_gpr_address);
     68//         DELETE2_SIGNAL( in_INSERT_ROB_RE_USE      ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],1);
     69//         DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG  ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1],_param->_size_spr_address);
    6270
    6371//     delete []  in_RETIRE_ROB_VAL               ;
Note: See TracChangeset for help on using the changeset viewer.