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/Core_Glue/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue.cpp

    r132 r136  
    174174                        << (*(in_ISSUE_OOO_ENGINE_TYPE                  [i][j]))
    175175                        << (*(in_ISSUE_OOO_ENGINE_OPERATION             [i][j]))
     176                        << (*(in_ISSUE_OOO_ENGINE_CANCEL                [i][j]))
    176177                        << (*(in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE [i][j]))
    177178                        << (*(in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ  [i][j]))
     
    224225//                      << (*(in_EXECUTE_EXECUTE_LOOP_OPERATION     [i][j]))
    225226//                      << (*(in_EXECUTE_EXECUTE_LOOP_TYPE          [i][j]))
     227                        << (*(in_EXECUTE_EXECUTE_LOOP_CANCEL        [i][j]))
    226228                        << (*(in_EXECUTE_EXECUTE_LOOP_FLAGS         [i][j]))
    227229                        << (*(in_EXECUTE_EXECUTE_LOOP_EXCEPTION     [i][j]))
     
    243245# endif   
    244246
    245         log_printf(INFO,Core_Glue,FUNCTION,_("<%s> : Method - genMealy_insert"),_name.c_str());
    246         SC_METHOD (genMealy_insert);
    247         dont_initialize ();
    248 //      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
    249         sensitive << (*(in_NRESET));
    250 
    251         for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
    252           for (uint32_t j=0; j<_param->_nb_inst_insert[i]; ++j)
    253             sensitive << (*(in_INSERT_OOO_ENGINE_VAL        [i][j]))
    254                       << (*(in_INSERT_OOO_ENGINE_RD_USE     [i][j]))
    255                       << (*(in_INSERT_OOO_ENGINE_RD_NUM_REG [i][j]))
    256                       << (*(in_INSERT_OOO_ENGINE_RE_USE     [i][j]))
    257                       << (*(in_INSERT_OOO_ENGINE_RE_NUM_REG [i][j]));
    258         for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
    259           for (uint32_t j=0; j<_param->_execute_loop_nb_ooo_engine[i]; ++j)
    260             for (uint32_t k=0; k<_param->_execute_loop_nb_inst_insert[i][j]; ++k)
    261               sensitive << (*(in_INSERT_EXECUTE_LOOP_ACK [i][j][k]));
    262 
    263 # ifdef SYSTEMCASS_SPECIFIC
    264         // List dependency information
    265 # endif   
     247//      log_printf(INFO,Core_Glue,FUNCTION,_("<%s> : Method - genMealy_insert"),_name.c_str());
     248//      SC_METHOD (genMealy_insert);
     249//      dont_initialize ();
     250// //   sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     251//      sensitive << (*(in_NRESET));
     252
     253//         for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
     254//           for (uint32_t j=0; j<_param->_nb_inst_insert[i]; ++j)
     255//             sensitive << (*(in_INSERT_OOO_ENGINE_VAL        [i][j]))
     256//                       << (*(in_INSERT_OOO_ENGINE_RD_USE     [i][j]))
     257//                       << (*(in_INSERT_OOO_ENGINE_RD_NUM_REG [i][j]))
     258//                       << (*(in_INSERT_OOO_ENGINE_RE_USE     [i][j]))
     259//                       << (*(in_INSERT_OOO_ENGINE_RE_NUM_REG [i][j]));
     260//         for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
     261//           for (uint32_t j=0; j<_param->_execute_loop_nb_ooo_engine[i]; ++j)
     262//             for (uint32_t k=0; k<_param->_execute_loop_nb_inst_insert[i][j]; ++k)
     263//               sensitive << (*(in_INSERT_EXECUTE_LOOP_ACK [i][j][k]));
     264
     265// # ifdef SYSTEMCASS_SPECIFIC
     266//      // List dependency information
     267// # endif   
    266268       
    267269#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_allocation.cpp

    r128 r136  
    140140      _ALLOC2_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_TYPE                     ,"TYPE"                 ,Ttype_t           ,_param->_size_type            ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
    141141      _ALLOC2_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_OPERATION                ,"OPERATION"            ,Toperation_t      ,_param->_size_operation       ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
     142      _ALLOC2_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_CANCEL                   ,"CANCEL"               ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
    142143      _ALLOC2_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE    ,"STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_size_store_queue_ptr ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
    143144      _ALLOC2_SIGNAL_IN ( in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ     ,"STORE_QUEUE_PTR_READ" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr ,_param->_nb_ooo_engine,_param->_nb_inst_issue_queue[it1]);
     
    171172      _ALLOC2_SIGNAL_OUT(out_ISSUE_EXECUTE_LOOP_OPERATION              ,"OPERATION"            ,Toperation_t      ,_param->_size_operation       ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
    172173      _ALLOC2_SIGNAL_OUT(out_ISSUE_EXECUTE_LOOP_TYPE                   ,"TYPE"                 ,Ttype_t           ,_param->_size_type            ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
     174      _ALLOC2_SIGNAL_OUT(out_ISSUE_EXECUTE_LOOP_CANCEL                 ,"CANCEL"               ,Tcontrol_t        ,1                             ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
    173175      _ALLOC2_SIGNAL_OUT(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE  ,"STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_size_store_queue_ptr ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
    174176      _ALLOC2_SIGNAL_OUT(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_READ   ,"STORE_QUEUE_PTR_READ" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr ,_param->_nb_execute_loop,_param->_nb_read_unit[it1]);
     
    202204//    _ALLOC3_SIGNAL_OUT(out_EXECUTE_OOO_ENGINE_TYPE                   ,"TYPE"                 ,Ttype_t           ,_param->_size_type        ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
    203205//    _ALLOC3_SIGNAL_OUT(out_EXECUTE_OOO_ENGINE_OPERATION              ,"OPERATION"            ,Toperation_t      ,_param->_size_operation   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
     206      _ALLOC3_SIGNAL_OUT(out_EXECUTE_OOO_ENGINE_CANCEL                 ,"CANCEL"               ,Tcontrol_t        ,1                         ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
    204207      _ALLOC3_SIGNAL_OUT(out_EXECUTE_OOO_ENGINE_FLAGS                  ,"FLAGS"                ,Tspecial_data_t   ,_param->_size_special_data,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
    205208      _ALLOC3_SIGNAL_OUT(out_EXECUTE_OOO_ENGINE_EXCEPTION              ,"EXCEPTION"            ,Texception_t      ,_param->_size_exception   ,_param->_nb_ooo_engine,_param->_ooo_engine_nb_execute_loop[it1],_param->_nb_inst_execute[it1][it2]);
     
    222225//    _ALLOC2_SIGNAL_IN ( in_EXECUTE_EXECUTE_LOOP_TYPE                 ,"TYPE"                 ,Ttype_t           ,_param->_size_type         ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
    223226//    _ALLOC2_SIGNAL_IN ( in_EXECUTE_EXECUTE_LOOP_OPERATION            ,"OPERATION"            ,Toperation_t      ,_param->_size_operation    ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
     227      _ALLOC2_SIGNAL_IN ( in_EXECUTE_EXECUTE_LOOP_CANCEL               ,"CANCEL"               ,Tcontrol_t        ,1                          ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
    224228      _ALLOC2_SIGNAL_IN ( in_EXECUTE_EXECUTE_LOOP_FLAGS                ,"FLAGS"                ,Tspecial_data_t   ,_param->_size_special_data ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
    225229      _ALLOC2_SIGNAL_IN ( in_EXECUTE_EXECUTE_LOOP_EXCEPTION            ,"EXCEPTION"            ,Texception_t      ,_param->_size_exception    ,_param->_nb_execute_loop,_param->_nb_write_unit[it1]);
     
    231235    }
    232236
    233     // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    234     {
    235       ALLOC2_INTERFACE_BEGIN("insert_ooo_engine",SOUTH,IN ,_("Insert"),_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
     237//     // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     238//     {
     239//       ALLOC2_INTERFACE_BEGIN("insert_ooo_engine",SOUTH,IN ,_("Insert"),_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
    236240     
    237       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_VAL       ,"VAL"       ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
    238       _ALLOC2_SIGNAL_OUT(out_INSERT_OOO_ENGINE_ACK       ,"ACK"       ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
    239       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_RD_USE    ,"RD_USE"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
    240       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_RD_NUM_REG,"RD_NUM_REG",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
    241       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_RE_USE    ,"RE_USE"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
    242       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_RE_NUM_REG,"RE_NUM_REG",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
    243 
    244       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
    245     }
    246    
    247     {
    248       ALLOC3_INTERFACE_BEGIN("insert_execute_loop",SOUTH,IN ,_("Insert"),_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
     241//       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_VAL       ,"VAL"       ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
     242//       _ALLOC2_SIGNAL_OUT(out_INSERT_OOO_ENGINE_ACK       ,"ACK"       ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
     243//       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_RD_USE    ,"RD_USE"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
     244//       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_RD_NUM_REG,"RD_NUM_REG",Tgeneral_address_t,_param->_size_general_register,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
     245//       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_RE_USE    ,"RE_USE"    ,Tcontrol_t        ,1                             ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
     246//       _ALLOC2_SIGNAL_IN ( in_INSERT_OOO_ENGINE_RE_NUM_REG,"RE_NUM_REG",Tspecial_address_t,_param->_size_special_register,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
     247
     248//       ALLOC2_INTERFACE_END(_param->_nb_ooo_engine,_param->_nb_inst_insert[it1]);
     249//     }
     250   
     251//     {
     252//       ALLOC3_INTERFACE_BEGIN("insert_execute_loop",SOUTH,IN ,_("Insert"),_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
    249253     
    250       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_VAL       ,"VAL"       ,Tcontrol_t        ,1                             ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
    251       _ALLOC3_SIGNAL_IN ( in_INSERT_EXECUTE_LOOP_ACK       ,"ACK"       ,Tcontrol_t        ,1                             ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
    252       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_RD_USE    ,"RD_USE"    ,Tcontrol_t        ,1                             ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
    253       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_RD_NUM_REG,"RD_NUM_REG",Tgeneral_address_t,_param->_size_general_register,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
    254       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_RE_USE    ,"RE_USE"    ,Tcontrol_t        ,1                             ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
    255       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_RE_NUM_REG,"RE_NUM_REG",Tspecial_address_t,_param->_size_special_register,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
    256 
    257       ALLOC3_INTERFACE_END(_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
    258     }
     254//       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_VAL       ,"VAL"       ,Tcontrol_t        ,1                             ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
     255//       _ALLOC3_SIGNAL_IN ( in_INSERT_EXECUTE_LOOP_ACK       ,"ACK"       ,Tcontrol_t        ,1                             ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
     256//       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_RD_USE    ,"RD_USE"    ,Tcontrol_t        ,1                             ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
     257//       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_RD_NUM_REG,"RD_NUM_REG",Tgeneral_address_t,_param->_size_general_register,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
     258//       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_RE_USE    ,"RE_USE"    ,Tcontrol_t        ,1                             ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
     259//       _ALLOC3_SIGNAL_OUT(out_INSERT_EXECUTE_LOOP_RE_NUM_REG,"RE_NUM_REG",Tspecial_address_t,_param->_size_special_register,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
     260
     261//       ALLOC3_INTERFACE_END(_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2]);
     262//     }
    259263
    260264    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_deallocation.cpp

    r122 r136  
    146146        DELETE2_SIGNAL( in_EXECUTE_EXECUTE_LOOP_DATA                 ,_param->_nb_execute_loop,_param->_nb_write_unit[it1],_param->_size_general_data);
    147147
    148         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],1                             );
    149         DELETE2_SIGNAL(out_INSERT_OOO_ENGINE_ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],1                             );
    150         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_RD_USE                  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],1                             );
    151         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_RD_NUM_REG              ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],_param->_size_general_register);
    152         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_RE_USE                  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],1                             );
    153         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_RE_NUM_REG              ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],_param->_size_special_register);
     148//         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],1                             );
     149//         DELETE2_SIGNAL(out_INSERT_OOO_ENGINE_ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],1                             );
     150//         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_RD_USE                  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],1                             );
     151//         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_RD_NUM_REG              ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],_param->_size_general_register);
     152//         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_RE_USE                  ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],1                             );
     153//         DELETE2_SIGNAL( in_INSERT_OOO_ENGINE_RE_NUM_REG              ,_param->_nb_ooo_engine,_param->_nb_inst_insert[it1],_param->_size_special_register);
    154154
    155         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_VAL                   ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],1                             );
    156         DELETE3_SIGNAL( in_INSERT_EXECUTE_LOOP_ACK                   ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],1                             );
    157         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_RD_USE                ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],1                             );
    158         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_RD_NUM_REG            ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],_param->_size_general_register);
    159         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_RE_USE                ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],1                             );
    160         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_RE_NUM_REG            ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],_param->_size_special_register);
     155//         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_VAL                   ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],1                             );
     156//         DELETE3_SIGNAL( in_INSERT_EXECUTE_LOOP_ACK                   ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],1                             );
     157//         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_RD_USE                ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],1                             );
     158//         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_RD_NUM_REG            ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],_param->_size_general_register);
     159//         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_RE_USE                ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],1                             );
     160//         DELETE3_SIGNAL(out_INSERT_EXECUTE_LOOP_RE_NUM_REG            ,_param->_nb_execute_loop,_param->_execute_loop_nb_ooo_engine[it1],_param->_execute_loop_nb_inst_insert[it1][it2],_param->_size_special_register);
    161161      }
    162162
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_genMealy_execute.cpp

    r123 r136  
    5656//        PORT_WRITE(out_EXECUTE_OOO_ENGINE_TYPE         [num_ooo_engine][num_execute_loop][j], PORT_READ(in_EXECUTE_EXECUTE_LOOP_TYPE         [i][j]));
    5757//        PORT_WRITE(out_EXECUTE_OOO_ENGINE_OPERATION    [num_ooo_engine][num_execute_loop][j], PORT_READ(in_EXECUTE_EXECUTE_LOOP_OPERATION    [i][j]));
     58          PORT_WRITE(out_EXECUTE_OOO_ENGINE_CANCEL       [num_ooo_engine][num_execute_loop][j], PORT_READ(in_EXECUTE_EXECUTE_LOOP_CANCEL       [i][j]));
    5859          PORT_WRITE(out_EXECUTE_OOO_ENGINE_FLAGS        [num_ooo_engine][num_execute_loop][j], PORT_READ(in_EXECUTE_EXECUTE_LOOP_FLAGS        [i][j]));
    5960          PORT_WRITE(out_EXECUTE_OOO_ENGINE_EXCEPTION    [num_ooo_engine][num_execute_loop][j], PORT_READ(in_EXECUTE_EXECUTE_LOOP_EXCEPTION    [i][j]));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_genMealy_insert.cpp

    r123 r136  
    1 #ifdef SYSTEMC
    2 /*
    3  * $Id$
    4  *
    5  * [ Description ]
    6  *
    7  */
     1// #ifdef SYSTEMC
     2// /*
     3// * $Id$
     4// *
     5// * [ Description ]
     6// *
     7// */
    88
    9 #include "Behavioural/Core/Core_Glue/include/Core_Glue.h"
     9// #include "Behavioural/Core/Core_Glue/include/Core_Glue.h"
    1010
    11 namespace morpheo                    {
    12 namespace behavioural {
    13 namespace core {
    14 namespace core_glue {
     11// namespace morpheo                    {
     12// namespace behavioural {
     13// namespace core {
     14// namespace core_glue {
    1515
    1616
    17 #undef  FUNCTION
    18 #define FUNCTION "Core_Glue::genMealy_insert"
    19   void Core_Glue::genMealy_insert (void)
    20   {
    21     log_begin(Core_Glue,FUNCTION);
    22     log_function(Core_Glue,FUNCTION,_name.c_str());
     17// #undef  FUNCTION
     18// #define FUNCTION "Core_Glue::genMealy_insert"
     19//   void Core_Glue::genMealy_insert (void)
     20//   {
     21//     log_begin(Core_Glue,FUNCTION);
     22//     log_function(Core_Glue,FUNCTION,_name.c_str());
    2323
    24     if (PORT_READ(in_NRESET))
    25       {
    26     for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
    27       for (uint32_t j=0; j<_param->_execute_loop_nb_ooo_engine[i]; ++j)
    28         {
    29           Tcontext_t num_ooo_engine   = _param->_translate_execute_loop_num_ooo_engine [i][j];
     24//     if (PORT_READ(in_NRESET))
     25//       {
     26//     for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
     27//       for (uint32_t j=0; j<_param->_execute_loop_nb_ooo_engine[i]; ++j)
     28//         {
     29//           Tcontext_t num_ooo_engine   = _param->_translate_execute_loop_num_ooo_engine [i][j];
    3030
    31           for (uint32_t k=0; k<_param->_execute_loop_nb_inst_insert[i][j]; ++k)
    32             {
    33               log_printf(TRACE,Core_Glue,FUNCTION,"  * INSERT_OOO_ENGINE [%d][%d] <-> INSERT_EXECUTE_LOOP [%d][%d][%d]",num_ooo_engine,k,i,j,k);
     31//           for (uint32_t k=0; k<_param->_execute_loop_nb_inst_insert[i][j]; ++k)
     32//             {
     33//               log_printf(TRACE,Core_Glue,FUNCTION,"  * INSERT_OOO_ENGINE [%d][%d] <-> INSERT_EXECUTE_LOOP [%d][%d][%d]",num_ooo_engine,k,i,j,k);
    3434         
    35               Tcontrol_t ooo_engine_val   = PORT_READ(in_INSERT_OOO_ENGINE_VAL   [num_ooo_engine][k]);
    36               Tcontrol_t execute_loop_ack = PORT_READ(in_INSERT_EXECUTE_LOOP_ACK [i][j][k]);
     35//               Tcontrol_t ooo_engine_val   = PORT_READ(in_INSERT_OOO_ENGINE_VAL   [num_ooo_engine][k]);
     36//               Tcontrol_t execute_loop_ack = PORT_READ(in_INSERT_EXECUTE_LOOP_ACK [i][j][k]);
    3737             
    38               Tcontrol_t execute_loop_val = ooo_engine_val  ;
    39               Tcontrol_t ooo_engine_ack   = execute_loop_ack;
     38//               Tcontrol_t execute_loop_val = ooo_engine_val  ;
     39//               Tcontrol_t ooo_engine_ack   = execute_loop_ack;
    4040
    41               log_printf(TRACE,Core_Glue,FUNCTION,"    * ooo_engine_val   (r) : %d",ooo_engine_val  );
    42               log_printf(TRACE,Core_Glue,FUNCTION,"    * ooo_engine_ack   (w) : %d",ooo_engine_ack  );
    43               log_printf(TRACE,Core_Glue,FUNCTION,"    * execute_loop_val (w) : %d",execute_loop_val);
    44               log_printf(TRACE,Core_Glue,FUNCTION,"    * execute_loop_ack (r) : %d",execute_loop_ack);
     41//               log_printf(TRACE,Core_Glue,FUNCTION,"    * ooo_engine_val   (r) : %d",ooo_engine_val  );
     42//               log_printf(TRACE,Core_Glue,FUNCTION,"    * ooo_engine_ack   (w) : %d",ooo_engine_ack  );
     43//               log_printf(TRACE,Core_Glue,FUNCTION,"    * execute_loop_val (w) : %d",execute_loop_val);
     44//               log_printf(TRACE,Core_Glue,FUNCTION,"    * execute_loop_ack (r) : %d",execute_loop_ack);
    4545   
    46               PORT_WRITE(out_INSERT_OOO_ENGINE_ACK          [num_ooo_engine][k],ooo_engine_ack  );
    47               PORT_WRITE(out_INSERT_EXECUTE_LOOP_VAL        [i][j][k],execute_loop_val);
    48               PORT_WRITE(out_INSERT_EXECUTE_LOOP_RD_USE     [i][j][k],PORT_READ(in_INSERT_OOO_ENGINE_RD_USE     [num_ooo_engine][k]));
    49               PORT_WRITE(out_INSERT_EXECUTE_LOOP_RD_NUM_REG [i][j][k],PORT_READ(in_INSERT_OOO_ENGINE_RD_NUM_REG [num_ooo_engine][k]));
    50               PORT_WRITE(out_INSERT_EXECUTE_LOOP_RE_USE     [i][j][k],PORT_READ(in_INSERT_OOO_ENGINE_RE_USE     [num_ooo_engine][k]));
    51               PORT_WRITE(out_INSERT_EXECUTE_LOOP_RE_NUM_REG [i][j][k],PORT_READ(in_INSERT_OOO_ENGINE_RE_NUM_REG [num_ooo_engine][k]));
    52             }
    53         }
    54       }
    55     else
    56       {
    57         for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
    58           for (uint32_t j=0; j<_param->_execute_loop_nb_ooo_engine[i]; ++j)
    59             {
    60               Tcontext_t num_ooo_engine   = _param->_translate_execute_loop_num_ooo_engine [i][j];
     46//               PORT_WRITE(out_INSERT_OOO_ENGINE_ACK          [num_ooo_engine][k],ooo_engine_ack  );
     47//               PORT_WRITE(out_INSERT_EXECUTE_LOOP_VAL        [i][j][k],execute_loop_val);
     48//               PORT_WRITE(out_INSERT_EXECUTE_LOOP_RD_USE     [i][j][k],PORT_READ(in_INSERT_OOO_ENGINE_RD_USE     [num_ooo_engine][k]));
     49//               PORT_WRITE(out_INSERT_EXECUTE_LOOP_RD_NUM_REG [i][j][k],PORT_READ(in_INSERT_OOO_ENGINE_RD_NUM_REG [num_ooo_engine][k]));
     50//               PORT_WRITE(out_INSERT_EXECUTE_LOOP_RE_USE     [i][j][k],PORT_READ(in_INSERT_OOO_ENGINE_RE_USE     [num_ooo_engine][k]));
     51//               PORT_WRITE(out_INSERT_EXECUTE_LOOP_RE_NUM_REG [i][j][k],PORT_READ(in_INSERT_OOO_ENGINE_RE_NUM_REG [num_ooo_engine][k]));
     52//             }
     53//         }
     54//       }
     55//     else
     56//       {
     57//         for (uint32_t i=0; i<_param->_nb_execute_loop; ++i)
     58//           for (uint32_t j=0; j<_param->_execute_loop_nb_ooo_engine[i]; ++j)
     59//             {
     60//               Tcontext_t num_ooo_engine   = _param->_translate_execute_loop_num_ooo_engine [i][j];
    6161             
    62               for (uint32_t k=0; k<_param->_execute_loop_nb_inst_insert[i][j]; ++k)
    63                 {
    64                   PORT_WRITE(out_INSERT_OOO_ENGINE_ACK  [num_ooo_engine][k],0);
    65                  PORT_WRITE(out_INSERT_EXECUTE_LOOP_VAL [i][j][k],0);
    66                 }
    67             }
    68       }
     62//               for (uint32_t k=0; k<_param->_execute_loop_nb_inst_insert[i][j]; ++k)
     63//                 {
     64//                   PORT_WRITE(out_INSERT_OOO_ENGINE_ACK  [num_ooo_engine][k],0);
     65//                  PORT_WRITE(out_INSERT_EXECUTE_LOOP_VAL [i][j][k],0);
     66//                 }
     67//             }
     68//       }
    6969
    70     log_end(Core_Glue,FUNCTION);
    71   };
     70//     log_end(Core_Glue,FUNCTION);
     71//   };
    7272
    73 }; // end namespace core_glue
    74 }; // end namespace core
     73// }; // end namespace core_glue
     74// }; // end namespace core
    7575
    76 }; // end namespace behavioural
    77 }; // end namespace morpheo             
    78 #endif
     76// }; // end namespace behavioural
     77// }; // end namespace morpheo             
     78// #endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue_genMealy_issue.cpp

    r123 r136  
    197197                                PORT_WRITE(out_ISSUE_EXECUTE_LOOP_OPERATION             [num_execute_loop][num_read_unit],PORT_READ(in_ISSUE_OOO_ENGINE_OPERATION             [num_ooo_engine][num_inst_issue_queue]));
    198198                                PORT_WRITE(out_ISSUE_EXECUTE_LOOP_TYPE                  [num_execute_loop][num_read_unit],type);
     199                                PORT_WRITE(out_ISSUE_EXECUTE_LOOP_CANCEL                [num_execute_loop][num_read_unit],PORT_READ(in_ISSUE_OOO_ENGINE_CANCEL                [num_ooo_engine][num_inst_issue_queue]));
    199200                                PORT_WRITE(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_WRITE [num_execute_loop][num_read_unit],PORT_READ(in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_WRITE [num_ooo_engine][num_inst_issue_queue]));
    200201                                PORT_WRITE(out_ISSUE_EXECUTE_LOOP_STORE_QUEUE_PTR_READ  [num_execute_loop][num_read_unit],PORT_READ(in_ISSUE_OOO_ENGINE_STORE_QUEUE_PTR_READ  [num_ooo_engine][num_inst_issue_queue]));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Parameters.cpp

    r120 r136  
    2929   uint32_t              * front_end_nb_inst_branch_complete    ,//[nb_front_end]
    3030   uint32_t              * ooo_engine_nb_inst_branch_complete   ,//[nb_ooo_engine]
    31   uint32_t              * nb_inst_insert                       ,//[nb_ooo_engine]
     31// uint32_t              * nb_inst_insert                       ,//[nb_ooo_engine]
    3232   uint32_t              * nb_inst_reexecute                    ,//[nb_ooo_engine]
    3333   uint32_t              * nb_inst_issue_queue                  ,//[nb_ooo_engine]
     
    6666    _front_end_nb_inst_branch_complete     = front_end_nb_inst_branch_complete    ;
    6767    _ooo_engine_nb_inst_branch_complete    = ooo_engine_nb_inst_branch_complete   ;
    68     _nb_inst_insert                        = nb_inst_insert                       ;
     68//  _nb_inst_insert                        = nb_inst_insert                       ;
    6969    _nb_inst_reexecute                     = nb_inst_reexecute                    ;
    7070    _nb_inst_issue_queue                   = nb_inst_issue_queue                  ;
     
    117117        }
    118118
    119     ALLOC2(_execute_loop_nb_inst_insert,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
     119//  ALLOC2(_execute_loop_nb_inst_insert,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    120120    ALLOC2(_execute_loop_nb_inst_issue_slot ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    121121
     
    125125          uint32_t num_ooo_engine = _translate_execute_loop_num_ooo_engine [i][j];
    126126          _execute_loop_nb_inst_issue_slot [i][j] = _nb_inst_issue_slot [num_ooo_engine];
    127           _execute_loop_nb_inst_insert     [i][j] = _nb_inst_insert     [num_ooo_engine];
     127//        _execute_loop_nb_inst_insert     [i][j] = _nb_inst_insert     [num_ooo_engine];
    128128        }
    129129
     
    133133    _max_nb_inst_execute                    = max<uint32_t>(_nb_inst_execute           ,_nb_ooo_engine, _ooo_engine_nb_execute_loop);
    134134    _max_nb_write_unit                      = max<uint32_t>(_nb_write_unit             ,_nb_execute_loop);
    135     _max_nb_inst_insert                     = max<uint32_t>(_nb_inst_insert            ,_nb_ooo_engine);
     135//  _max_nb_inst_insert                     = max<uint32_t>(_nb_inst_insert            ,_nb_ooo_engine);
    136136    _max_nb_inst_issue_queue                = max<uint32_t>(_nb_inst_issue_queue       ,_nb_ooo_engine);
    137137    _max_nb_inst_issue_slot                 = max<uint32_t>(_nb_inst_issue_slot        ,_nb_ooo_engine);
     
    189189
    190190    DELETE2(_execute_loop_nb_inst_issue_slot                         ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    191     DELETE2(_execute_loop_nb_inst_insert                             ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
     191//  DELETE2(_execute_loop_nb_inst_insert                             ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    192192    DELETE2(_translate_num_ooo_engine_to_execute_loop_ooo_engine_id  ,_nb_ooo_engine,_nb_execute_loop);
    193193    DELETE2(_translate_num_execute_loop_to_ooo_engine_execute_loop_id,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
Note: See TracChangeset for help on using the changeset viewer.