Ignore:
Timestamp:
Jan 21, 2009, 10:53:13 PM (15 years ago)
Author:
rosiere
Message:

Fix Bug :
1) Load Store Unit : check big endian
2) Commit unit & RAT : add retire_event interface

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_allocation.cpp

    r101 r104  
    378378
    379379        // ~~~~~[ Interface : "rename_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    380         std::vector<uint32_t>::iterator it = _param->_link_front_end_with_rename_unit[i].begin();
    381         uint32_t x = 0;
    382         for (uint32_t j=0; j<_param->_nb_front_end; j++)
    383           {
     380        {
     381          std::vector<uint32_t>::iterator it = _param->_link_front_end_with_rename_unit[i].begin();
     382          uint32_t x = 0;
     383          for (uint32_t j=0; j<_param->_nb_front_end; j++)
    384384            if (i == *it)
    385385              {
     
    459459                it++;
    460460              }
    461           }
    462 
     461        }
     462       
    463463        // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    464464        for (uint32_t j=0; j<_param->_nb_inst_insert[i]; j++)
     
    551551          }
    552552
     553        // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    553554        for (uint32_t j=0; j<_param->_nb_inst_retire[i]; j++)
    554555          {
     
    581582            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_NUM_REG_RE_PHY_NEW",
    582583                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_NUM_REG_RE_PHY_NEW");
    583             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_EVENT_STATE"       ,
    584                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_EVENT_STATE"       );
    585 
    586584            if (_param->_have_port_context_id)
    587585            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_CONTEXT_ID"           ,
     
    616614            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_NUM_REG_RE_LOG"       ,
    617615                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_NUM_REG_RE_LOG"       );
    618 
    619 //             dest = _name+"_glue";
    620            
    621 // #ifdef POSITION
    622 //             _component->interface_map (src ,"retire_"+toString(j),
    623 //                                        dest,"retire_"+toString(i)+"_"+toString(j));
    624 // #endif
    625            
    626 //             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                            "_VAL"               ,
    627 //                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_VAL"               );
    628 //             COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(j)+                            "_ACK"               ,
    629 //                                      dest, "in_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_ACK"               );
    630 //             if (_param->_have_port_front_end_id)
    631 //             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                            "_FRONT_END_ID"      ,
    632 //                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_FRONT_END_ID"      );
    633 //             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                            "_WRITE_RD"          ,
    634 //                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_WRITE_RD"          );
    635 //             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                            "_NUM_REG_RD_PHY_OLD",
    636 //                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_NUM_REG_RD_PHY_OLD");
    637 //             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                            "_NUM_REG_RD_PHY_NEW",
    638 //                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_NUM_REG_RD_PHY_NEW");
    639 //             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                            "_WRITE_RE"          ,
    640 //                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_WRITE_RE"          );
    641 //             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                            "_NUM_REG_RE_PHY_OLD",
    642 //                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_NUM_REG_RE_PHY_OLD");
    643 //             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                            "_NUM_REG_RE_PHY_NEW",
    644 //                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_NUM_REG_RE_PHY_NEW");
    645 //             COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                            "_EVENT_STATE"       ,
    646 //                                      dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RENAME_UNIT_EVENT_STATE"       );
    647616          }
    648617
    649618        // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    650         for (uint32_t i=0; i<_param->_nb_front_end; i++)
    651           for (uint32_t j=0; j<_param->_nb_context[i]; j++)
    652             {
    653               dest = _name+"_glue";
    654            
    655 #ifdef POSITION
    656               _component->interface_map (src ,"spr_read_"+toString(i)+"_"+toString(j),
    657                                          dest,"spr_"     +toString(i)+"_"+toString(j));
    658 #endif
    659 
    660               COMPONENT_MAP(_component,src , "in_SPR_READ_"+toString(i)+"_"+toString(j)+            "_SR",
    661                                        dest,"out_SPR_"     +toString(i)+"_"+toString(j)+"_RENAME_UNIT_SR");
    662             }
    663     }
     619        {
     620          std::vector<uint32_t>::iterator it = _param->_link_front_end_with_rename_unit[i].begin();
     621          uint32_t x = 0;
     622          for (uint32_t j=0; j<_param->_nb_front_end; j++)
     623            if (i == (*it))
     624              {
     625                for (uint32_t k=0; k<_param->_nb_context[i]; k++)
     626                  {
     627                    dest = _name+"_commit_unit";
     628                   
     629#ifdef POSITION
     630                    _component->interface_map (src ,"retire_event_"+toString(x)+"_"+toString(k),
     631                                               dest,"retire_event_"+toString(j)+"_"+toString(k));
     632#endif
     633                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_VAL",
     634                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_VAL");
     635                    COMPONENT_MAP(_component,src ,"out_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_ACK",
     636                                             dest, "in_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_ACK");
     637                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_STATE",
     638                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_STATE");
     639                    x++;
     640                    ++it;
     641                  }
     642              }
     643        }
     644
     645        // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     646        {
     647          std::vector<uint32_t>::iterator it = _param->_link_front_end_with_rename_unit[i].begin();
     648          uint32_t x = 0;
     649          for (uint32_t j=0; j<_param->_nb_front_end; j++)
     650            if (i == *it)
     651              {
     652                for (uint32_t k=0; k<_param->_nb_context[j]; k++)
     653                  {
     654                    dest = _name+"_glue";
     655                   
     656#ifdef POSITION
     657                    _component->interface_map (src ,"spr_read_"+toString(x)+"_"+toString(k),
     658                                               dest,"spr_"     +toString(j)+"_"+toString(k));
     659#endif
     660
     661                    COMPONENT_MAP(_component,src , "in_SPR_READ_"+toString(x)+"_"+toString(k)+            "_SR",
     662                                             dest,"out_SPR_"     +toString(j)+"_"+toString(k)+"_RENAME_UNIT_SR");
     663                  }
     664                x++;
     665                ++it;
     666              }
     667        }
     668      }
    664669
    665670    // ===================================================================
     
    821826          }
    822827     
     828      // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
     829        // out_RETIRE_VAL         - rename_unit.out_RETIRE_VAL       
     830        //  in_RETIRE_ACK         - rename_unit. in_RETIRE_ACK       
     831        // out_RETIRE_EVENT_STATE - rename_unit.out_RETIRE_EVENT_STATE
     832 
     833
    823834      // ~~~~~[ Interface : "commit" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       
    824835      for (uint32_t i=0; i<_param->_nb_inst_commit; i++)
     
    10431054                                     dest, "in_SPR_COMMIT_"+toString(i)+"_"+toString(j)+"_SR_OV"    );
    10441055          }
    1045      
    10461056    }
    10471057
Note: See TracChangeset for help on using the changeset viewer.