Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (16 years ago)
Author:
rosiere
Message:

Almost complete design
with Test and test platform

File:
1 edited

Legend:

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

    r81 r88  
    3838    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
    3939
     40#if DEBUG_Register_unit_Glue == true
     41    log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
     42
     43    std::cout << *param << std::endl;
     44#endif   
     45
    4046    log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation");
    4147    allocation ();
    4248
    4349#ifdef STATISTICS
    44     log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation of statistics");
    45 
    46     // Allocation of statistics
    47     statistics_declaration(param_statistics);
     50    if (usage_is_set(_usage,USE_STATISTICS))
     51      {
     52        log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation of statistics");
     53       
     54        // Allocation of statistics
     55        statistics_declaration(param_statistics);
     56      }
    4857#endif
    4958
    5059#ifdef VHDL
    51     // generate the vhdl
    52     log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate the vhdl");
    53 
    54     vhdl();
     60    if (usage_is_set(_usage,USE_VHDL))
     61      {
     62        // generate the vhdl
     63        log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate the vhdl");
     64       
     65        vhdl();
     66      }
    5567#endif
    5668
    5769#ifdef SYSTEMC
     70    if (usage_is_set(_usage,USE_SYSTEMC))
     71      {
    5872    // Constant
    5973
     
    473487#endif   
    474488
    475     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_retire");
    476 
    477     SC_METHOD (genMealy_retire);
    478     dont_initialize ();
    479 //     sensitive_neg << *(in_CLOCK);
    480     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    481       {
    482         uint32_t x=_param->_nb_inst_retire_rob [i];
    483         for (uint32_t j=0; j<x; j++)
    484           sensitive << *( in_RETIRE_ROB_VAL                [i][j])
    485                     << *( in_RETIRE_ROB_RD_OLD_USE         [i][j])
    486                     << *( in_RETIRE_ROB_RD_NEW_USE         [i][j])
    487                     << *( in_RETIRE_ROB_RE_OLD_USE         [i][j])
    488                     << *( in_RETIRE_ROB_RE_NEW_USE         [i][j])
    489                     << *( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j])
    490                     << *( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j])
    491                     << *( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j])
    492                     << *( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]);
    493       }
    494 #ifdef SYSTEMCASS_SPECIFIC
    495     // List dependency information
    496     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    497       {
    498         uint32_t x=_param->_nb_inst_retire_rob [i];
    499         for (uint32_t j=0; j<x; j++)
    500           {
    501             (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
    502             (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
    503             (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
    504             (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
    505 
    506             (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
    507             (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RD_OLD_USE         [i][j]));
    508             (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
    509             (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
    510             (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
    511 
    512             (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
    513             (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RD_NEW_USE         [i][j]));
    514             (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
    515             (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
    516             (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
    517 
    518             (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
    519             (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RE_OLD_USE         [i][j]));
    520             (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
    521             (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
    522             (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
    523 
    524             (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
    525             (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RE_NEW_USE         [i][j]));
    526             (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
    527             (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
    528             (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
    529           }
    530       }
    531 #endif   
    532 
     489//     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_retire");
     490
     491//     SC_METHOD (genMealy_retire);
     492//     dont_initialize ();
     493// //     sensitive_neg << *(in_CLOCK);
     494//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     495//       {
     496//      uint32_t x=_param->_nb_inst_retire_rob [i];
     497//      for (uint32_t j=0; j<x; j++)
     498//        sensitive << *( in_RETIRE_ROB_VAL                [i][j])
     499//                  << *( in_RETIRE_ROB_RD_OLD_USE         [i][j])
     500//                  << *( in_RETIRE_ROB_RD_NEW_USE         [i][j])
     501//                  << *( in_RETIRE_ROB_RE_OLD_USE         [i][j])
     502//                  << *( in_RETIRE_ROB_RE_NEW_USE         [i][j])
     503//                  << *( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j])
     504//                  << *( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j])
     505//                  << *( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j])
     506//                  << *( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]);
     507//       }
     508// #ifdef SYSTEMCASS_SPECIFIC
     509//     // List dependency information
     510//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     511//       {
     512//      uint32_t x=_param->_nb_inst_retire_rob [i];
     513//      for (uint32_t j=0; j<x; j++)
     514//        {
     515//          (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
     516//          (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
     517//          (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
     518//          (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
     519
     520//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
     521//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RD_OLD_USE         [i][j]));
     522//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
     523//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
     524//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
     525
     526//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
     527//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RD_NEW_USE         [i][j]));
     528//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
     529//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
     530//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
     531
     532//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
     533//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RE_OLD_USE         [i][j]));
     534//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
     535//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
     536//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
     537
     538//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
     539//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RE_NEW_USE         [i][j]));
     540//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
     541//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
     542//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
     543//        }
     544//       }
     545// #endif   
     546      }
    533547#endif
    534548    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
     
    542556
    543557#ifdef STATISTICS
    544     log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate Statistics file");
    545 
    546     delete _stat;
     558    if (usage_is_set(_usage,USE_STATISTICS))
     559      {
     560        log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate Statistics file");
     561       
     562        delete _stat;
     563      }
    547564#endif
    548565
Note: See TracChangeset for help on using the changeset viewer.