Ignore:
Timestamp:
Feb 16, 2010, 1:35:48 PM (14 years ago)
Author:
rosiere
Message:

Various modif (add test, and vhdl)

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core
Files:
58 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_vhdl_body.cpp

    r116 r137  
    370370    vhdl->set_body (1,std_logic_cst(1,0)+"when others;");
    371371
    372 #ifdef SYSTEMC_VHDL_COMPATIBILITY
    373372    vhdl->set_body (0,"with reg_EXECUTE_IN_TYPE select");
    374373    vhdl->set_body (0,"sig_EXECUTE_OUT_ADDRESS <=");
    375374    vhdl->set_body (1,"sig_ADDR_BRANCH when "+std_logic_cst(_param->_size_type,TYPE_BRANCH)+",");
     375#ifdef SYSTEMC_VHDL_COMPATIBILITY
    376376    vhdl->set_body (1,"sig_A_OR_B("+toString(_param->_size_instruction_address-1)+" downto 0) when "+std_logic_cst(_param->_size_type,TYPE_SPECIAL)+",");
    377377    vhdl->set_body (1,std_logic_cst(_param->_size_instruction_address,0)+" when others;");
    378378#else
    379     vhdl->set_body (0,"with reg_EXECUTE_IN_TYPE select");
    380     vhdl->set_body (0,"sig_EXECUTE_OUT_ADDRESS <=");
    381     vhdl->set_body (1,"sig_ADDR_BRANCH when "+std_logic_cst(_param->_size_type,TYPE_BRANCH)+",");
    382     vhdl->set_body (1,"sig_A_OR_B when others;");
     379    vhdl->set_body (1,"sig_A_OR_B ("+toString(_param->_size_instruction_address-1)+" downto 0) when others;");
    383380//    vhdl->set_body (0,"sig_EXECUTE_OUT_ADDRESS <= sig_ADDR_BRANCH;");
    384381#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl_body.cpp

    r113 r137  
    140140    vhdl->set_body   (0,"out_EXECUTE_QUEUE_OUT_DATA          "+std_logic_range(_param->_size_general_data       )+" <= internal_EXECUTE_QUEUE_OUT_DATA         ;");
    141141
    142     vhdl->set_debug  ("in_CLOCK = 'U'","GLOP1: Clock = 'U'");
    143     vhdl->set_debug  ("in_CLOCK = 'X'","GLOP2: Clock = 'X'");
    144     vhdl->set_debug  ("in_CLOCK = 'Z'","GLOP3: Clock = 'Z'");
    145     vhdl->set_debug  ("in_CLOCK = 'W'","GLOP4: Clock = 'W'");
    146     vhdl->set_debug  ("in_CLOCK = '1'","KANE : Clock = '1'");
    147     vhdl->set_debug  ("in_CLOCK = '0'","SETH : Clock = '0'");
     142//     vhdl->set_debug  ("in_CLOCK = 'U'","GLOP1: Clock = 'U'");
     143//     vhdl->set_debug  ("in_CLOCK = 'X'","GLOP2: Clock = 'X'");
     144//     vhdl->set_debug  ("in_CLOCK = 'Z'","GLOP3: Clock = 'Z'");
     145//     vhdl->set_debug  ("in_CLOCK = 'W'","GLOP4: Clock = 'W'");
     146//     vhdl->set_debug  ("in_CLOCK = '1'","KANE : Clock = '1'");
     147//     vhdl->set_debug  ("in_CLOCK = '0'","SETH : Clock = '0'");
    148148
    149149    log_printf(FUNC,Execute_queue,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_vhdl_body.cpp

    r136 r137  
    2424    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
    2525
    26     vhdl->set_body("out_CONST_0 <= '0';");
    27     vhdl->set_body("out_CONST_1 <= '1';");
     26    // vhdl->set_body("out_CONST_0 <= '0';");
     27    // vhdl->set_body("out_CONST_1 <= '1';");
    2828
    2929    //-----------------------------------
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/include/Types.h

    r134 r137  
    3636//  Tdepth_t            _depth             ;
    3737                                           
    38     // set by decod                       
     38    // set by decod             
     39#ifdef STATISTICS
     40    uint32_t            _opcod             ;
     41#endif
    3942    Ttype_t             _type              ;
    4043    Toperation_t        _operation         ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/src/Instruction.cpp

    r117 r137  
    215215    switch (opcod)
    216216      {
    217       case OPCOD_L_CUST1 : {inst->_type = instruction_information(INSTRUCTION_L_CUST1)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST1)._operation; break;}
    218       case OPCOD_L_CUST2 : {inst->_type = instruction_information(INSTRUCTION_L_CUST2)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST2)._operation; break;}
    219       case OPCOD_L_CUST3 : {inst->_type = instruction_information(INSTRUCTION_L_CUST3)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST3)._operation; break;}
    220       case OPCOD_L_CUST4 : {inst->_type = instruction_information(INSTRUCTION_L_CUST4)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST4)._operation; break;}
    221       case OPCOD_L_CUST5 : {inst->_type = instruction_information(INSTRUCTION_L_CUST5)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST5)._operation; break;}
    222       case OPCOD_L_CUST6 : {inst->_type = instruction_information(INSTRUCTION_L_CUST6)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST6)._operation; break;}
    223       case OPCOD_L_CUST7 : {inst->_type = instruction_information(INSTRUCTION_L_CUST7)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST7)._operation; break;}
    224       case OPCOD_L_CUST8 : {inst->_type = instruction_information(INSTRUCTION_L_CUST8)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST8)._operation; break;}
     217      case OPCOD_L_CUST1 :
     218        {
     219#ifdef STATISTICS
     220          inst->_opcod     =                         INSTRUCTION_L_CUST1;
     221#endif
     222          inst->_type      = instruction_information(INSTRUCTION_L_CUST1)._type;
     223          inst->_operation = instruction_information(INSTRUCTION_L_CUST1)._operation;
     224          break;
     225        }
     226      case OPCOD_L_CUST2 :
     227        {
     228#ifdef STATISTICS
     229          inst->_opcod     =                         INSTRUCTION_L_CUST2;
     230#endif
     231          inst->_type      = instruction_information(INSTRUCTION_L_CUST2)._type;
     232          inst->_operation = instruction_information(INSTRUCTION_L_CUST2)._operation;
     233          break;
     234        }
     235      case OPCOD_L_CUST3 :
     236        {
     237#ifdef STATISTICS
     238          inst->_opcod     =                         INSTRUCTION_L_CUST3;
     239#endif
     240          inst->_type      = instruction_information(INSTRUCTION_L_CUST3)._type;
     241          inst->_operation = instruction_information(INSTRUCTION_L_CUST3)._operation;
     242          break;
     243        }
     244      case OPCOD_L_CUST4 :
     245        {
     246#ifdef STATISTICS
     247          inst->_opcod     =                         INSTRUCTION_L_CUST4;
     248#endif
     249          inst->_type      = instruction_information(INSTRUCTION_L_CUST4)._type;
     250          inst->_operation = instruction_information(INSTRUCTION_L_CUST4)._operation;
     251          break;
     252        }
     253      case OPCOD_L_CUST5 :
     254        {
     255#ifdef STATISTICS
     256          inst->_opcod     =                         INSTRUCTION_L_CUST5;
     257#endif
     258          inst->_type      = instruction_information(INSTRUCTION_L_CUST5)._type;
     259          inst->_operation = instruction_information(INSTRUCTION_L_CUST5)._operation;
     260          break;
     261        }
     262      case OPCOD_L_CUST6 :
     263        {
     264#ifdef STATISTICS
     265          inst->_opcod     =                         INSTRUCTION_L_CUST6;
     266#endif
     267          inst->_type      = instruction_information(INSTRUCTION_L_CUST6)._type;
     268          inst->_operation = instruction_information(INSTRUCTION_L_CUST6)._operation;
     269          break;
     270        }
     271      case OPCOD_L_CUST7 :
     272        {
     273#ifdef STATISTICS
     274          inst->_opcod     =                         INSTRUCTION_L_CUST7;
     275#endif
     276          inst->_type      = instruction_information(INSTRUCTION_L_CUST7)._type;
     277          inst->_operation = instruction_information(INSTRUCTION_L_CUST7)._operation;
     278          break;
     279        }
     280      case OPCOD_L_CUST8 :
     281        {
     282#ifdef STATISTICS
     283          inst->_opcod     =                         INSTRUCTION_L_CUST8;
     284#endif
     285          inst->_type      = instruction_information(INSTRUCTION_L_CUST8)._type;
     286          inst->_operation = instruction_information(INSTRUCTION_L_CUST8)._operation;
     287          break;
     288        }
    225289
    226290      default            : {throw ERRORMORPHEO("instruction_l_custom",_("Invalid Custom Opcod."));}
     
    240304    switch (opcod)
    241305      {
    242 //       case OPCOD_LF_CUST1_D : {inst->_type = instruction_information(INSTRUCTION_LF_CUST1_D)._type; inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_D)._operation; break;}
    243 //       case OPCOD_LF_CUST1_S : {inst->_type = instruction_information(INSTRUCTION_LF_CUST1_S)._type; inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_S)._operation; break;}
     306//       case OPCOD_LF_CUST1_D :
     307//      {
     308// #ifdef STATISTICS
     309//        inst->_opcod     =                         INSTRUCTION_LF_CUST1_D;
     310// #endif
     311//        inst->_type      = instruction_information(INSTRUCTION_LF_CUST1_D)._type;
     312//        inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_D)._operation;
     313//        break;
     314//      }
     315//       case OPCOD_LF_CUST1_S :
     316//      {
     317// #ifdef STATISTICS
     318//        inst->_opcod     =                         INSTRUCTION_LF_CUST1_S;
     319// #endif
     320//        inst->_type      = instruction_information(INSTRUCTION_LF_CUST1_S)._type;
     321//        inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_S)._operation;
     322//        break;
     323//      }
    244324      default               : {throw ERRORMORPHEO("instruction_lf_custom",_("Invalid Custom Opcod."));}
    245325      }
     
    258338    switch (opcod)
    259339      {
    260 //       case OPCOD_LV_CUST1 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST1)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST1)._operation; break;}
    261 //       case OPCOD_LV_CUST2 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST2)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST2)._operation; break;}
    262 //       case OPCOD_LV_CUST3 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST3)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST3)._operation; break;}
    263 //       case OPCOD_LV_CUST4 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST4)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST4)._operation; break;}
     340//       case OPCOD_LV_CUST1 :
     341//      {
     342// #ifdef STATISTICS
     343//        inst->_opcod     =                         INSTRUCTION_LV_CUST1;
     344// #endif
     345//        inst->_type      = instruction_information(INSTRUCTION_LV_CUST1)._type;
     346//        inst->_operation = instruction_information(INSTRUCTION_LV_CUST1)._operation;
     347//        break;
     348//      }
     349//       case OPCOD_LV_CUST2 :
     350//      {
     351// #ifdef STATISTICS
     352//        inst->_opcod     =                         INSTRUCTION_LV_CUST2;
     353// #endif
     354//        inst->_type      = instruction_information(INSTRUCTION_LV_CUST2)._type;
     355//        inst->_operation = instruction_information(INSTRUCTION_LV_CUST2)._operation;
     356//        break;
     357//      }
     358//       case OPCOD_LV_CUST3 :
     359//      {
     360// #ifdef STATISTICS
     361//        inst->_opcod     =                         INSTRUCTION_LV_CUST3;
     362// #endif
     363//        inst->_type      = instruction_information(INSTRUCTION_LV_CUST3)._type;
     364//        inst->_operation = instruction_information(INSTRUCTION_LV_CUST3)._operation;
     365//        break;
     366//      }
     367//       case OPCOD_LV_CUST4 :
     368//      {
     369// #ifdef STATISTICS
     370//        inst->_opcod     =                         INSTRUCTION_LV_CUST4;
     371// #endif
     372//        inst->_type      = instruction_information(INSTRUCTION_LV_CUST4)._type;
     373//        inst->_operation = instruction_information(INSTRUCTION_LV_CUST4)._operation;
     374//        break;
     375//      }
    264376      default             : {throw ERRORMORPHEO("instruction_lv_custom",_("Invalid Custom Opcod."));}
    265377      }
     
    324436  {
    325437    log_printf(TRACE,Decod,"instruction_l_add","  * instruction   : l.add");
     438#ifdef STATISTICS
     439    inst->_opcod              =                         INSTRUCTION_L_ADD;
     440#endif
    326441    inst->_type               = instruction_information(INSTRUCTION_L_ADD)._type     ; //TYPE_ALU;
    327442    inst->_operation          = instruction_information(INSTRUCTION_L_ADD)._operation; //OPERATION_ALU_L_ADD;
     
    352467    log_printf(TRACE,Decod,"instruction_l_addc","  * instruction   : l.addc");
    353468
     469#ifdef STATISTICS
     470    inst->_opcod              =                         INSTRUCTION_L_ADDC;
     471#endif
    354472    inst->_type               = instruction_information(INSTRUCTION_L_ADDC)._type     ; //TYPE_ALU;
    355473    inst->_operation          = instruction_information(INSTRUCTION_L_ADDC)._operation; //OPERATION_ALU_L_ADD;
     
    380498    log_printf(TRACE,Decod,"instruction_l_addi","  * instruction   : l.addi");
    381499
     500#ifdef STATISTICS
     501    inst->_opcod              =                         INSTRUCTION_L_ADDI;
     502#endif
    382503    inst->_type               = instruction_information(INSTRUCTION_L_ADDI)._type     ; //TYPE_ALU;
    383504    inst->_operation          = instruction_information(INSTRUCTION_L_ADDI)._operation; //OPERATION_ALU_L_ADD;
     
    408529    log_printf(TRACE,Decod,"instruction_l_addic","  * instruction   : l.addic");
    409530
     531#ifdef STATISTICS
     532    inst->_opcod              =                         INSTRUCTION_L_ADDIC;
     533#endif
    410534    inst->_type               = instruction_information(INSTRUCTION_L_ADDIC)._type     ; //TYPE_ALU;
    411535    inst->_operation          = instruction_information(INSTRUCTION_L_ADDIC)._operation; //OPERATION_ALU_L_ADD;
     
    436560    log_printf(TRACE,Decod,"instruction_l_and","  * instruction   : l.and");
    437561
     562#ifdef STATISTICS
     563    inst->_opcod              =                         INSTRUCTION_L_AND;
     564#endif
    438565    inst->_type               = instruction_information(INSTRUCTION_L_AND)._type     ; //TYPE_ALU;
    439566    inst->_operation          = instruction_information(INSTRUCTION_L_AND)._operation; //OPERATION_ALU_L_AND;
     
    464591    log_printf(TRACE,Decod,"instruction_l_andi","  * instruction   : l.andi");
    465592
     593#ifdef STATISTICS
     594    inst->_opcod              =                         INSTRUCTION_L_ANDI;
     595#endif
    466596    inst->_type               = instruction_information(INSTRUCTION_L_ANDI)._type     ; //TYPE_ALU;
    467597    inst->_operation          = instruction_information(INSTRUCTION_L_ANDI)._operation; //OPERATION_ALU_L_AND;
     
    495625                                                   );
    496626
     627#ifdef STATISTICS
     628    inst->_opcod              =                         INSTRUCTION_L_BF;
     629#endif
    497630    inst->_type               = instruction_information(INSTRUCTION_L_BF)._type     ; //TYPE_BRANCH;
    498631    inst->_operation          = instruction_information(INSTRUCTION_L_BF)._operation; //OPERATION_BRANCH_L_TEST_F;
     
    527660                                                   );
    528661
     662#ifdef STATISTICS
     663    inst->_opcod              =                         INSTRUCTION_L_BNF;
     664#endif
    529665    inst->_type               = instruction_information(INSTRUCTION_L_BNF)._type     ; //TYPE_BRANCH;
    530666    inst->_operation          = instruction_information(INSTRUCTION_L_BNF)._operation; //OPERATION_BRANCH_L_TEST_NF;
     
    555691    log_printf(TRACE,Decod,"instruction_l_cmov","  * instruction   : l.cmov");
    556692
     693#ifdef STATISTICS
     694    inst->_opcod              =                         INSTRUCTION_L_CMOV;
     695#endif
    557696    inst->_type               = instruction_information(INSTRUCTION_L_CMOV)._type     ; //TYPE_MOVE;
    558697    inst->_operation          = instruction_information(INSTRUCTION_L_CMOV)._operation; //OPERATION_MOVE_L_CMOV;
     
    589728    else
    590729      {
     730#ifdef STATISTICS
     731    inst->_opcod              =                         INSTRUCTION_L_CSYNC;
     732#endif
    591733    inst->_type               = instruction_information(INSTRUCTION_L_CSYNC)._type     ; //TYPE_SPECIAL;
    592734    inst->_operation          = instruction_information(INSTRUCTION_L_CSYNC)._operation; //OPERATION_SPECIAL_L_CSYNC;
     
    627769    log_printf(TRACE,Decod,"instruction_l_div","  * instruction   : l.div");
    628770
     771#ifdef STATISTICS
     772    inst->_opcod              =                         INSTRUCTION_L_DIV;
     773#endif
    629774    inst->_type               = instruction_information(INSTRUCTION_L_DIV)._type     ; //TYPE_DIV;
    630775    inst->_operation          = instruction_information(INSTRUCTION_L_DIV)._operation; //OPERATION_DIV_L_DIV;
     
    655800    log_printf(TRACE,Decod,"instruction_l_divu","  * instruction   : l.divu");
    656801
     802#ifdef STATISTICS
     803    inst->_opcod              =                         INSTRUCTION_L_DIVU;
     804#endif
    657805    inst->_type               = instruction_information(INSTRUCTION_L_DIVU)._type     ; //TYPE_DIV;
    658806    inst->_operation          = instruction_information(INSTRUCTION_L_DIVU)._operation; //OPERATION_DIV_L_DIVU;
     
    683831    log_printf(TRACE,Decod,"instruction_l_extbs","  * instruction   : l.extbs");
    684832
     833#ifdef STATISTICS
     834    inst->_opcod              =                         INSTRUCTION_L_EXTBS;
     835#endif
    685836    inst->_type               = instruction_information(INSTRUCTION_L_EXTBS)._type     ; //TYPE_EXTEND;
    686837    inst->_operation          = instruction_information(INSTRUCTION_L_EXTBS)._operation; //OPERATION_EXTEND_L_EXTEND_S;
     
    711862    log_printf(TRACE,Decod,"instruction_l_extbz","  * instruction   : l.extbz");
    712863
     864#ifdef STATISTICS
     865    inst->_opcod              =                         INSTRUCTION_L_EXTBZ;
     866#endif
    713867    inst->_type               = instruction_information(INSTRUCTION_L_EXTBZ)._type     ; //TYPE_EXTEND;
    714868    inst->_operation          = instruction_information(INSTRUCTION_L_EXTBZ)._operation; //OPERATION_EXTEND_L_EXTEND_Z;
     
    739893    log_printf(TRACE,Decod,"instruction_l_exths","  * instruction   : l.exths");
    740894
     895#ifdef STATISTICS
     896    inst->_opcod              =                         INSTRUCTION_L_EXTHS;
     897#endif
    741898    inst->_type               = instruction_information(INSTRUCTION_L_EXTHS)._type     ; //TYPE_EXTEND;
    742899    inst->_operation          = instruction_information(INSTRUCTION_L_EXTHS)._operation; //OPERATION_EXTEND_L_EXTEND_S;
     
    767924    log_printf(TRACE,Decod,"instruction_l_exthz","  * instruction   : l.exthz");
    768925
     926#ifdef STATISTICS
     927    inst->_opcod              =                         INSTRUCTION_L_EXTHZ;
     928#endif
    769929    inst->_type               = instruction_information(INSTRUCTION_L_EXTHZ)._type     ; //TYPE_EXTEND;
    770930    inst->_operation          = instruction_information(INSTRUCTION_L_EXTHZ)._operation; //OPERATION_EXTEND_L_EXTEND_Z;
     
    795955    log_printf(TRACE,Decod,"instruction_l_extws","  * instruction   : l.extws");
    796956
     957#ifdef STATISTICS
     958    inst->_opcod              =                         INSTRUCTION_L_EXTWS;
     959#endif
    797960    inst->_type               = instruction_information(INSTRUCTION_L_EXTWS)._type     ; //TYPE_EXTEND;
    798961    inst->_operation          = instruction_information(INSTRUCTION_L_EXTWS)._operation; //OPERATION_EXTEND_L_EXTEND_S;
     
    823986    log_printf(TRACE,Decod,"instruction_l_extwz","  * instruction   : l.extwz");
    824987
     988#ifdef STATISTICS
     989    inst->_opcod              =                         INSTRUCTION_L_EXTWZ;
     990#endif
    825991    inst->_type               = instruction_information(INSTRUCTION_L_EXTWZ)._type     ; //TYPE_EXTEND;
    826992    inst->_operation          = instruction_information(INSTRUCTION_L_EXTWZ)._operation; //OPERATION_EXTEND_L_EXTEND_Z;
     
    8511017    log_printf(TRACE,Decod,"instruction_l_ff1","  * instruction   : l.ff1");
    8521018
     1019#ifdef STATISTICS
     1020    inst->_opcod              =                         INSTRUCTION_L_FF1;
     1021#endif
    8531022    inst->_type               = instruction_information(INSTRUCTION_L_FF1)._type     ; //TYPE_FIND;
    8541023    inst->_operation          = instruction_information(INSTRUCTION_L_FF1)._operation; //OPERATION_FIND_L_FF1;
     
    8791048    log_printf(TRACE,Decod,"instruction_l_fl1","  * instruction   : l.fl1");
    8801049
     1050#ifdef STATISTICS
     1051    inst->_opcod              =                         INSTRUCTION_L_FL1;
     1052#endif
    8811053    inst->_type               = instruction_information(INSTRUCTION_L_FL1)._type     ; //TYPE_FIND;
    8821054    inst->_operation          = instruction_information(INSTRUCTION_L_FL1)._operation; //OPERATION_FIND_L_FL1;
     
    9071079    log_printf(TRACE,Decod,"instruction_l_j","  * instruction   : l.j");
    9081080
     1081#ifdef STATISTICS
     1082    inst->_opcod              =                         INSTRUCTION_L_J;
     1083#endif
    9091084    inst->_type               = instruction_information(INSTRUCTION_L_J)._type     ; //TYPE_BRANCH;
    9101085    inst->_operation          = instruction_information(INSTRUCTION_L_J)._operation; //OPERATION_BRANCH_NONE;
     
    9361111    log_printf(TRACE,Decod,"instruction_l_jal","  * instruction   : l.jal");
    9371112
     1113#ifdef STATISTICS
     1114    inst->_opcod              =                         INSTRUCTION_L_JAL;
     1115#endif
    9381116    inst->_type               = instruction_information(INSTRUCTION_L_JAL)._type     ; //TYPE_BRANCH;
    9391117    inst->_operation          = instruction_information(INSTRUCTION_L_JAL)._operation; //OPERATION_BRANCH_L_JALR;
     
    9731151    else
    9741152      {
     1153#ifdef STATISTICS
     1154    inst->_opcod              =                         INSTRUCTION_L_JALR;
     1155#endif
    9751156    inst->_type               = instruction_information(INSTRUCTION_L_JALR)._type     ; //TYPE_BRANCH;
    9761157    inst->_operation          = instruction_information(INSTRUCTION_L_JALR)._operation; //OPERATION_BRANCH_L_JALR;
     
    10031184    log_printf(TRACE,Decod,"instruction_l_jr","  * instruction   : l.jr");
    10041185
     1186#ifdef STATISTICS
     1187    inst->_opcod              =                         INSTRUCTION_L_JR;
     1188#endif
    10051189    inst->_type               = instruction_information(INSTRUCTION_L_JR)._type     ; //TYPE_BRANCH;
    10061190    inst->_operation          = instruction_information(INSTRUCTION_L_JR)._operation; //OPERATION_BRANCH_L_JALR;
     
    10311215    log_printf(TRACE,Decod,"instruction_l_lbs","  * instruction   : l.lbs");
    10321216
     1217#ifdef STATISTICS
     1218    inst->_opcod              =                         INSTRUCTION_L_LBS;
     1219#endif
    10331220    inst->_type               = instruction_information(INSTRUCTION_L_LBS)._type     ; //TYPE_MEMORY;
    10341221    inst->_operation          = instruction_information(INSTRUCTION_L_LBS)._operation; //OPERATION_MEMORY_LOAD_8_S;
     
    10591246    log_printf(TRACE,Decod,"instruction_l_lbz","  * instruction   : l.lbz");
    10601247
     1248#ifdef STATISTICS
     1249    inst->_opcod              =                         INSTRUCTION_L_LBZ;
     1250#endif
    10611251    inst->_type               = instruction_information(INSTRUCTION_L_LBZ)._type     ; //TYPE_MEMORY;
    10621252    inst->_operation          = instruction_information(INSTRUCTION_L_LBZ)._operation; //OPERATION_MEMORY_LOAD_8_Z;
     
    10871277    log_printf(TRACE,Decod,"instruction_l_ld","  * instruction   : l.ld");
    10881278
     1279#ifdef STATISTICS
     1280    inst->_opcod              =                         INSTRUCTION_L_LD;
     1281#endif
    10891282    inst->_type               = instruction_information(INSTRUCTION_L_LD)._type     ; //TYPE_MEMORY;
    10901283    inst->_operation          = instruction_information(INSTRUCTION_L_LD)._operation; //OPERATION_MEMORY_LOAD_64_S;
     
    11151308    log_printf(TRACE,Decod,"instruction_l_lhs","  * instruction   : l.lhs");
    11161309
     1310#ifdef STATISTICS
     1311    inst->_opcod              =                         INSTRUCTION_L_LHS;
     1312#endif
    11171313    inst->_type               = instruction_information(INSTRUCTION_L_LHS)._type     ; //TYPE_MEMORY;
    11181314    inst->_operation          = instruction_information(INSTRUCTION_L_LHS)._operation; //OPERATION_MEMORY_LOAD_16_S;
     
    11431339    log_printf(TRACE,Decod,"instruction_l_lhz","  * instruction   : l.lhz");
    11441340
     1341#ifdef STATISTICS
     1342    inst->_opcod              =                         INSTRUCTION_L_LHZ;
     1343#endif
    11451344    inst->_type               = instruction_information(INSTRUCTION_L_LHZ)._type     ; //TYPE_MEMORY;
    11461345    inst->_operation          = instruction_information(INSTRUCTION_L_LHZ)._operation; //OPERATION_MEMORY_LOAD_16_Z;
     
    11711370    log_printf(TRACE,Decod,"instruction_l_lws","  * instruction   : l.lws");
    11721371
     1372#ifdef STATISTICS
     1373    inst->_opcod              =                         INSTRUCTION_L_LWS;
     1374#endif
    11731375    inst->_type               = instruction_information(INSTRUCTION_L_LWS)._type     ; //TYPE_MEMORY;
    11741376    inst->_operation          = instruction_information(INSTRUCTION_L_LWS)._operation; //OPERATION_MEMORY_LOAD_32_S;
     
    11991401    log_printf(TRACE,Decod,"instruction_l_lwz","  * instruction   : l.lwz");
    12001402
     1403#ifdef STATISTICS
     1404    inst->_opcod              =                         INSTRUCTION_L_LWZ;
     1405#endif
    12011406    inst->_type               = instruction_information(INSTRUCTION_L_LWZ)._type     ; //TYPE_MEMORY;
    12021407    inst->_operation          = instruction_information(INSTRUCTION_L_LWZ)._operation; //OPERATION_MEMORY_LOAD_32_Z;
     
    12271432    log_printf(TRACE,Decod,"instruction_l_mac","  * instruction   : l.mac");
    12281433
     1434#ifdef STATISTICS
     1435    inst->_opcod              =                         INSTRUCTION_L_MAC;
     1436#endif
    12291437    inst->_type               = instruction_information(INSTRUCTION_L_MAC)._type     ; //TYPE_SPECIAL;
    12301438    inst->_operation          = instruction_information(INSTRUCTION_L_MAC)._operation; //OPERATION_SPECIAL_L_MAC;
     
    12551463    log_printf(TRACE,Decod,"instruction_l_maci","  * instruction   : l.maci");
    12561464
     1465#ifdef STATISTICS
     1466    inst->_opcod              =                         INSTRUCTION_L_MACI;
     1467#endif
    12571468    inst->_type               = instruction_information(INSTRUCTION_L_MACI)._type     ; //TYPE_SPECIAL;
    12581469    inst->_operation          = instruction_information(INSTRUCTION_L_MACI)._operation; //OPERATION_SPECIAL_L_MAC;
     
    12901501    else
    12911502      {
     1503#ifdef STATISTICS
     1504    inst->_opcod              =                         INSTRUCTION_L_MACRC;
     1505#endif
    12921506    inst->_type               = instruction_information(INSTRUCTION_L_MACRC)._type     ; //TYPE_SPECIAL;
    12931507    inst->_operation          = instruction_information(INSTRUCTION_L_MACRC)._operation; //OPERATION_SPECIAL_L_MACRC;
     
    13191533    log_printf(TRACE,Decod,"instruction_l_mfspr","  * instruction   : l.mfspr");
    13201534
     1535#ifdef STATISTICS
     1536    inst->_opcod              =                         INSTRUCTION_L_MFSPR;
     1537#endif
    13211538    inst->_type               = instruction_information(INSTRUCTION_L_MFSPR)._type     ; //TYPE_SPECIAL;
    13221539    inst->_operation          = instruction_information(INSTRUCTION_L_MFSPR)._operation; //OPERATION_SPECIAL_L_MFSPR;
     
    13471564    log_printf(TRACE,Decod,"instruction_l_movhi","  * instruction   : l.movhi");
    13481565
     1566#ifdef STATISTICS
     1567    inst->_opcod              =                         INSTRUCTION_L_MOVHI;
     1568#endif
    13491569    inst->_type               = instruction_information(INSTRUCTION_L_MOVHI)._type     ; //TYPE_MOVE;
    13501570    inst->_operation          = instruction_information(INSTRUCTION_L_MOVHI)._operation; //OPERATION_MOVE_L_MOVHI;
     
    13751595    log_printf(TRACE,Decod,"instruction_l_msb","  * instruction   : l.msb");
    13761596
     1597#ifdef STATISTICS
     1598    inst->_opcod              =                         INSTRUCTION_L_MSB;
     1599#endif
    13771600    inst->_type               = instruction_information(INSTRUCTION_L_MSB)._type     ; //TYPE_SPECIAL;
    13781601    inst->_operation          = instruction_information(INSTRUCTION_L_MSB)._operation; //OPERATION_SPECIAL_L_MSB;
     
    14091632    else
    14101633      {
     1634#ifdef STATISTICS
     1635    inst->_opcod              =                         INSTRUCTION_L_MSYNC;
     1636#endif
    14111637    inst->_type               = instruction_information(INSTRUCTION_L_MSYNC)._type     ; //TYPE_SPECIAL;
    14121638    inst->_operation          = instruction_information(INSTRUCTION_L_MSYNC)._operation; //OPERATION_SPECIAL_L_MSYNC;
     
    14381664    log_printf(TRACE,Decod,"instruction_l_mtspr","  * instruction   : l.mtspr");
    14391665
     1666#ifdef STATISTICS
     1667    inst->_opcod              =                         INSTRUCTION_L_MTSPR;
     1668#endif
    14401669    inst->_type               = instruction_information(INSTRUCTION_L_MTSPR)._type     ; //TYPE_SPECIAL;
    14411670    inst->_operation          = instruction_information(INSTRUCTION_L_MTSPR)._operation; //OPERATION_SPECIAL_L_MTSPR;
     
    14671696    log_printf(TRACE,Decod,"instruction_l_mul","  * instruction   : l.mul");
    14681697
     1698#ifdef STATISTICS
     1699    inst->_opcod              =                         INSTRUCTION_L_MUL;
     1700#endif
    14691701    inst->_type               = instruction_information(INSTRUCTION_L_MUL)._type     ; //TYPE_MUL;
    14701702    inst->_operation          = instruction_information(INSTRUCTION_L_MUL)._operation; //OPERATION_MUL_L_MUL;
     
    14951727    log_printf(TRACE,Decod,"instruction_l_muli","  * instruction   : l.muli");
    14961728
     1729#ifdef STATISTICS
     1730    inst->_opcod              =                         INSTRUCTION_L_MULI;
     1731#endif
    14971732    inst->_type               = instruction_information(INSTRUCTION_L_MULI)._type     ; //TYPE_MUL;
    14981733    inst->_operation          = instruction_information(INSTRUCTION_L_MULI)._operation; //OPERATION_MUL_L_MUL;
     
    15231758    log_printf(TRACE,Decod,"instruction_l_mulu","  * instruction   : l.mulu");
    15241759
     1760#ifdef STATISTICS
     1761    inst->_opcod              =                         INSTRUCTION_L_MULU;
     1762#endif
    15251763    inst->_type               = instruction_information(INSTRUCTION_L_MULU)._type     ; //TYPE_MUL;
    15261764    inst->_operation          = instruction_information(INSTRUCTION_L_MULU)._operation; //OPERATION_MUL_L_MULU;
     
    15511789    log_printf(TRACE,Decod,"instruction_l_nop","  * instruction   : l.nop");
    15521790
     1791#ifdef STATISTICS
     1792    inst->_opcod              =                         INSTRUCTION_L_NOP;
     1793#endif
    15531794    inst->_type               = instruction_information(INSTRUCTION_L_NOP)._type     ; //TYPE_SPECIAL;
    15541795    inst->_operation          = instruction_information(INSTRUCTION_L_NOP)._operation; //OPERATION_SPECIAL_L_NOP;
     
    15811822    log_printf(TRACE,Decod,"instruction_l_or","  * instruction   : l.or");
    15821823
     1824#ifdef STATISTICS
     1825    inst->_opcod              =                         INSTRUCTION_L_OR;
     1826#endif
    15831827    inst->_type               = instruction_information(INSTRUCTION_L_OR)._type     ; //TYPE_ALU;
    15841828    inst->_operation          = instruction_information(INSTRUCTION_L_OR)._operation; //OPERATION_ALU_L_OR;
     
    16091853    log_printf(TRACE,Decod,"instruction_l_ori","  * instruction   : l.ori");
    16101854
     1855#ifdef STATISTICS
     1856    inst->_opcod              =                         INSTRUCTION_L_ORI;
     1857#endif
    16111858    inst->_type               = instruction_information(INSTRUCTION_L_ORI)._type     ; //TYPE_ALU;
    16121859    inst->_operation          = instruction_information(INSTRUCTION_L_ORI)._operation; //OPERATION_ALU_L_OR;
     
    16431890    else
    16441891      {
     1892#ifdef STATISTICS
     1893    inst->_opcod              =                         INSTRUCTION_L_PSYNC;
     1894#endif
    16451895    inst->_type               = instruction_information(INSTRUCTION_L_PSYNC)._type     ; //TYPE_SPECIAL;
    16461896    inst->_operation          = instruction_information(INSTRUCTION_L_PSYNC)._operation; //OPERATION_SPECIAL_L_PSYNC;
     
    16721922    log_printf(TRACE,Decod,"instruction_l_rfe","  * instruction   : l.rfe");
    16731923
     1924#ifdef STATISTICS
     1925    inst->_opcod              =                         INSTRUCTION_L_RFE;
     1926#endif
    16741927    inst->_type               = instruction_information(INSTRUCTION_L_RFE)._type     ; //TYPE_SPECIAL;
    16751928    inst->_operation          = instruction_information(INSTRUCTION_L_RFE)._operation; //OPERATION_SPECIAL_L_RFE;
     
    17001953    log_printf(TRACE,Decod,"instruction_l_ror","  * instruction   : l.ror");
    17011954
     1955#ifdef STATISTICS
     1956    inst->_opcod              =                         INSTRUCTION_L_ROR;
     1957#endif
    17021958    inst->_type               = instruction_information(INSTRUCTION_L_ROR)._type     ; //TYPE_SHIFT;
    17031959    inst->_operation          = instruction_information(INSTRUCTION_L_ROR)._operation; //OPERATION_SHIFT_L_ROR;
     
    17281984    log_printf(TRACE,Decod,"instruction_l_rori","  * instruction   : l.rori");
    17291985
     1986#ifdef STATISTICS
     1987    inst->_opcod              =                         INSTRUCTION_L_RORI;
     1988#endif
    17301989    inst->_type               = instruction_information(INSTRUCTION_L_RORI)._type     ; //TYPE_SHIFT;
    17311990    inst->_operation          = instruction_information(INSTRUCTION_L_RORI)._operation; //OPERATION_SHIFT_L_ROR;
     
    17562015    log_printf(TRACE,Decod,"instruction_l_sb","  * instruction   : l.sb");
    17572016
     2017#ifdef STATISTICS
     2018    inst->_opcod              =                         INSTRUCTION_L_SB;
     2019#endif
    17582020    inst->_type               = instruction_information(INSTRUCTION_L_SB)._type     ; //TYPE_MEMORY;
    17592021    inst->_operation          = instruction_information(INSTRUCTION_L_SB)._operation; //OPERATION_MEMORY_STORE_8;
     
    17852047    log_printf(TRACE,Decod,"instruction_l_sb","  * instruction   : l.sb");
    17862048
     2049#ifdef STATISTICS
     2050    inst->_opcod              =                         INSTRUCTION_L_SD;
     2051#endif
    17872052    inst->_type               = instruction_information(INSTRUCTION_L_SD)._type     ; //TYPE_MEMORY;
    17882053    inst->_operation          = instruction_information(INSTRUCTION_L_SD)._operation; //OPERATION_MEMORY_STORE_64;
     
    18142079    log_printf(TRACE,Decod,"instruction_l_sfeq","  * instruction   : l.sfeq");
    18152080
     2081#ifdef STATISTICS
     2082    inst->_opcod              =                         INSTRUCTION_L_SFEQ;
     2083#endif
    18162084    inst->_type               = instruction_information(INSTRUCTION_L_SFEQ)._type     ; //TYPE_TEST;
    18172085    inst->_operation          = instruction_information(INSTRUCTION_L_SFEQ)._operation; //OPERATION_TEST_L_SFEQ;
     
    18422110    log_printf(TRACE,Decod,"instruction_l_sfeqi","  * instruction   : l.sfeqi");
    18432111
     2112#ifdef STATISTICS
     2113    inst->_opcod              =                         INSTRUCTION_L_SFEQI;
     2114#endif
    18442115    inst->_type               = instruction_information(INSTRUCTION_L_SFEQI)._type     ; //TYPE_TEST;
    18452116    inst->_operation          = instruction_information(INSTRUCTION_L_SFEQI)._operation; //OPERATION_TEST_L_SFEQ;
     
    18702141    log_printf(TRACE,Decod,"instruction_l_sfges","  * instruction   : l.sfges");
    18712142
     2143#ifdef STATISTICS
     2144    inst->_opcod              =                         INSTRUCTION_L_SFGES;
     2145#endif
    18722146    inst->_type               = instruction_information(INSTRUCTION_L_SFGES)._type     ; //TYPE_TEST;
    18732147    inst->_operation          = instruction_information(INSTRUCTION_L_SFGES)._operation; //OPERATION_TEST_L_SFGES;
     
    18982172    log_printf(TRACE,Decod,"instruction_l_sfgesi","  * instruction   : l.sfgesi");
    18992173
     2174#ifdef STATISTICS
     2175    inst->_opcod              =                         INSTRUCTION_L_SFGESI;
     2176#endif
    19002177    inst->_type               = instruction_information(INSTRUCTION_L_SFGESI)._type     ; //TYPE_TEST;
    19012178    inst->_operation          = instruction_information(INSTRUCTION_L_SFGESI)._operation; //OPERATION_TEST_L_SFGES;
     
    19262203    log_printf(TRACE,Decod,"instruction_l_sfgeu","  * instruction   : l.sfgeu");
    19272204
     2205#ifdef STATISTICS
     2206    inst->_opcod              =                         INSTRUCTION_L_SFGEU;
     2207#endif
    19282208    inst->_type               = instruction_information(INSTRUCTION_L_SFGEU)._type     ; //TYPE_TEST;
    19292209    inst->_operation          = instruction_information(INSTRUCTION_L_SFGEU)._operation; //OPERATION_TEST_L_SFGEU;
     
    19542234    log_printf(TRACE,Decod,"instruction_l_sfgeui","  * instruction   : l.sfgeui");
    19552235
     2236#ifdef STATISTICS
     2237    inst->_opcod              =                         INSTRUCTION_L_SFGEUI;
     2238#endif
    19562239    inst->_type               = instruction_information(INSTRUCTION_L_SFGEUI)._type     ; //TYPE_TEST;
    19572240    inst->_operation          = instruction_information(INSTRUCTION_L_SFGEUI)._operation; //OPERATION_TEST_L_SFGEU;
     
    19822265    log_printf(TRACE,Decod,"instruction_l_sfgts","  * instruction   : l.sfgts");
    19832266
     2267#ifdef STATISTICS
     2268    inst->_opcod              =                         INSTRUCTION_L_SFGTS;
     2269#endif
    19842270    inst->_type               = instruction_information(INSTRUCTION_L_SFGTS)._type     ; //TYPE_TEST;
    19852271    inst->_operation          = instruction_information(INSTRUCTION_L_SFGTS)._operation; //OPERATION_TEST_L_SFGTS;
     
    20102296    log_printf(TRACE,Decod,"instruction_l_sfgtsi","  * instruction   : l.sfgtsi");
    20112297
     2298#ifdef STATISTICS
     2299    inst->_opcod              =                         INSTRUCTION_L_SFGTSI;
     2300#endif
    20122301    inst->_type               = instruction_information(INSTRUCTION_L_SFGTSI)._type     ; //TYPE_TEST;
    20132302    inst->_operation          = instruction_information(INSTRUCTION_L_SFGTSI)._operation; //OPERATION_TEST_L_SFGTS;
     
    20382327    log_printf(TRACE,Decod,"instruction_l_sfgtu","  * instruction   : l.sfgtu");
    20392328
     2329#ifdef STATISTICS
     2330    inst->_opcod              =                         INSTRUCTION_L_SFGTU;
     2331#endif
    20402332    inst->_type               = instruction_information(INSTRUCTION_L_SFGTU)._type     ; //TYPE_TEST;
    20412333    inst->_operation          = instruction_information(INSTRUCTION_L_SFGTU)._operation; //OPERATION_TEST_L_SFGTU;
     
    20662358    log_printf(TRACE,Decod,"instruction_l_sfgtui","  * instruction   : l.sfgtui");
    20672359
     2360#ifdef STATISTICS
     2361    inst->_opcod              =                         INSTRUCTION_L_SFGTUI;
     2362#endif
    20682363    inst->_type               = instruction_information(INSTRUCTION_L_SFGTUI)._type     ; //TYPE_TEST;
    20692364    inst->_operation          = instruction_information(INSTRUCTION_L_SFGTUI)._operation; //OPERATION_TEST_L_SFGTU;
     
    20942389    log_printf(TRACE,Decod,"instruction_l_sfles","  * instruction   : l.sfles");
    20952390
     2391#ifdef STATISTICS
     2392    inst->_opcod              =                         INSTRUCTION_L_SFLES;
     2393#endif
    20962394    inst->_type               = instruction_information(INSTRUCTION_L_SFLES)._type     ; //TYPE_TEST;
    20972395    inst->_operation          = instruction_information(INSTRUCTION_L_SFLES)._operation; //OPERATION_TEST_L_SFLES;
     
    21222420    log_printf(TRACE,Decod,"instruction_l_sflesi","  * instruction   : l.sflesi");
    21232421
     2422#ifdef STATISTICS
     2423    inst->_opcod              =                         INSTRUCTION_L_SFLESI;
     2424#endif
    21242425    inst->_type               = instruction_information(INSTRUCTION_L_SFLESI)._type     ; //TYPE_TEST;
    21252426    inst->_operation          = instruction_information(INSTRUCTION_L_SFLESI)._operation; //OPERATION_TEST_L_SFLES;
     
    21502451    log_printf(TRACE,Decod,"instruction_l_sfleu","  * instruction   : l.sfleu");
    21512452
     2453#ifdef STATISTICS
     2454    inst->_opcod              =                         INSTRUCTION_L_SFLEU;
     2455#endif
    21522456    inst->_type               = instruction_information(INSTRUCTION_L_SFLEU)._type     ; //TYPE_TEST;
    21532457    inst->_operation          = instruction_information(INSTRUCTION_L_SFLEU)._operation; //OPERATION_TEST_L_SFLEU;
     
    21782482    log_printf(TRACE,Decod,"instruction_l_sfleui","  * instruction   : l.sfleui");
    21792483
     2484#ifdef STATISTICS
     2485    inst->_opcod              =                         INSTRUCTION_L_SFLEUI;
     2486#endif
    21802487    inst->_type               = instruction_information(INSTRUCTION_L_SFLEUI)._type     ; //TYPE_TEST;
    21812488    inst->_operation          = instruction_information(INSTRUCTION_L_SFLEUI)._operation; //OPERATION_TEST_L_SFLEU;
     
    22062513    log_printf(TRACE,Decod,"instruction_l_sflts","  * instruction   : l.sflts");
    22072514
     2515#ifdef STATISTICS
     2516    inst->_opcod              =                         INSTRUCTION_L_SFLTS;
     2517#endif
    22082518    inst->_type               = instruction_information(INSTRUCTION_L_SFLTS)._type     ; //TYPE_TEST;
    22092519    inst->_operation          = instruction_information(INSTRUCTION_L_SFLTS)._operation; //OPERATION_TEST_L_SFLTS;
     
    22342544    log_printf(TRACE,Decod,"instruction_l_sfltsi","  * instruction   : l.sfltsi");
    22352545
     2546#ifdef STATISTICS
     2547    inst->_opcod              =                         INSTRUCTION_L_SFLTSI;
     2548#endif
    22362549    inst->_type               = instruction_information(INSTRUCTION_L_SFLTSI)._type     ; //TYPE_TEST;
    22372550    inst->_operation          = instruction_information(INSTRUCTION_L_SFLTSI)._operation; //OPERATION_TEST_L_SFLTS;
     
    22622575    log_printf(TRACE,Decod,"instruction_l_sfltu","  * instruction   : l.sfltu");
    22632576
     2577#ifdef STATISTICS
     2578    inst->_opcod              =                         INSTRUCTION_L_SFLTU;
     2579#endif
    22642580    inst->_type               = instruction_information(INSTRUCTION_L_SFLTU)._type     ; //TYPE_TEST;
    22652581    inst->_operation          = instruction_information(INSTRUCTION_L_SFLTU)._operation; //OPERATION_TEST_L_SFLTU;
     
    22902606    log_printf(TRACE,Decod,"instruction_l_sfltui","  * instruction   : l.sfltui");
    22912607
     2608#ifdef STATISTICS
     2609    inst->_opcod              =                         INSTRUCTION_L_SFLTUI;
     2610#endif
    22922611    inst->_type               = instruction_information(INSTRUCTION_L_SFLTUI)._type     ; //TYPE_TEST;
    22932612    inst->_operation          = instruction_information(INSTRUCTION_L_SFLTUI)._operation; //OPERATION_TEST_L_SFLTU;
     
    23182637    log_printf(TRACE,Decod,"instruction_l_sfne","  * instruction   : l.sfne");
    23192638
     2639#ifdef STATISTICS
     2640    inst->_opcod              =                         INSTRUCTION_L_SFNE;
     2641#endif
    23202642    inst->_type               = instruction_information(INSTRUCTION_L_SFNE)._type     ; //TYPE_TEST;
    23212643    inst->_operation          = instruction_information(INSTRUCTION_L_SFNE)._operation; //OPERATION_TEST_L_SFNE;
     
    23462668    log_printf(TRACE,Decod,"instruction_l_sfnei","  * instruction   : l.sfnei");
    23472669
     2670#ifdef STATISTICS
     2671    inst->_opcod              =                         INSTRUCTION_L_SFNEI;
     2672#endif
    23482673    inst->_type               = instruction_information(INSTRUCTION_L_SFNEI)._type     ; //TYPE_TEST;
    23492674    inst->_operation          = instruction_information(INSTRUCTION_L_SFNEI)._operation; //OPERATION_TEST_L_SFNE;
     
    23742699    log_printf(TRACE,Decod,"instruction_l_sh","  * instruction   : l.sh");
    23752700
     2701#ifdef STATISTICS
     2702    inst->_opcod              =                         INSTRUCTION_L_SH;
     2703#endif
    23762704    inst->_type               = instruction_information(INSTRUCTION_L_SH)._type     ; //TYPE_MEMORY;
    23772705    inst->_operation          = instruction_information(INSTRUCTION_L_SH)._operation; //OPERATION_MEMORY_STORE_16;
     
    24032731    log_printf(TRACE,Decod,"instruction_l_sll","  * instruction   : l.sll");
    24042732
     2733#ifdef STATISTICS
     2734    inst->_opcod              =                         INSTRUCTION_L_SLL;
     2735#endif
    24052736    inst->_type               = instruction_information(INSTRUCTION_L_SLL)._type     ; //TYPE_SHIFT;
    24062737    inst->_operation          = instruction_information(INSTRUCTION_L_SLL)._operation; //OPERATION_SHIFT_L_SLL;
     
    24312762    log_printf(TRACE,Decod,"instruction_l_slli","  * instruction   : l.slli");
    24322763
     2764#ifdef STATISTICS
     2765    inst->_opcod              =                         INSTRUCTION_L_SLLI;
     2766#endif
    24332767    inst->_type               = instruction_information(INSTRUCTION_L_SLLI)._type     ; //TYPE_SHIFT;
    24342768    inst->_operation          = instruction_information(INSTRUCTION_L_SLLI)._operation; //OPERATION_SHIFT_L_SLL;
     
    24592793    log_printf(TRACE,Decod,"instruction_l_sra","  * instruction   : l.sra");
    24602794
     2795#ifdef STATISTICS
     2796    inst->_opcod              =                         INSTRUCTION_L_SRA;
     2797#endif
    24612798    inst->_type               = instruction_information(INSTRUCTION_L_SRA)._type     ; //TYPE_SHIFT;
    24622799    inst->_operation          = instruction_information(INSTRUCTION_L_SRA)._operation; //OPERATION_SHIFT_L_SRA;
     
    24872824    log_printf(TRACE,Decod,"instruction_l_srai","  * instruction   : l.srai");
    24882825
     2826#ifdef STATISTICS
     2827    inst->_opcod              =                         INSTRUCTION_L_SRAI;
     2828#endif
    24892829    inst->_type               = instruction_information(INSTRUCTION_L_SRAI)._type     ; //TYPE_SHIFT;
    24902830    inst->_operation          = instruction_information(INSTRUCTION_L_SRAI)._operation; //OPERATION_SHIFT_L_SRA;
     
    25152855    log_printf(TRACE,Decod,"instruction_l_srl","  * instruction   : l.srl");
    25162856
     2857#ifdef STATISTICS
     2858    inst->_opcod              =                         INSTRUCTION_L_SRL;
     2859#endif
    25172860    inst->_type               = instruction_information(INSTRUCTION_L_SRL)._type     ; //TYPE_SHIFT;
    25182861    inst->_operation          = instruction_information(INSTRUCTION_L_SRL)._operation; //OPERATION_SHIFT_L_SRL;
     
    25432886    log_printf(TRACE,Decod,"instruction_l_srli","  * instruction   : l.srli");
    25442887
     2888#ifdef STATISTICS
     2889    inst->_opcod              =                         INSTRUCTION_L_SRLI;
     2890#endif
    25452891    inst->_type               = instruction_information(INSTRUCTION_L_SRLI)._type     ; //TYPE_SHIFT;
    25462892    inst->_operation          = instruction_information(INSTRUCTION_L_SRLI)._operation; //OPERATION_SHIFT_L_SRL;
     
    25712917    log_printf(TRACE,Decod,"instruction_l_sub","  * instruction   : l.sub");
    25722918
     2919#ifdef STATISTICS
     2920    inst->_opcod              =                         INSTRUCTION_L_SUB;
     2921#endif
    25732922    inst->_type               = instruction_information(INSTRUCTION_L_SUB)._type     ; //TYPE_ALU;
    25742923    inst->_operation          = instruction_information(INSTRUCTION_L_SUB)._operation; //OPERATION_ALU_L_SUB;
     
    25992948    log_printf(TRACE,Decod,"instruction_l_sw","  * instruction   : l.sw");
    26002949
     2950#ifdef STATISTICS
     2951    inst->_opcod              =                         INSTRUCTION_L_SW;
     2952#endif
    26012953    inst->_type               = instruction_information(INSTRUCTION_L_SW)._type     ; //TYPE_MEMORY;
    26022954    inst->_operation          = instruction_information(INSTRUCTION_L_SW)._operation; //OPERATION_MEMORY_STORE_32;
     
    26342986    else
    26352987      {
     2988#ifdef STATISTICS
     2989    inst->_opcod              =                         INSTRUCTION_L_SYS;
     2990#endif
    26362991    inst->_type               = instruction_information(INSTRUCTION_L_SYS)._type     ; //TYPE_SPECIAL;
    26372992    inst->_operation          = instruction_information(INSTRUCTION_L_SYS)._operation; //OPERATION_SPECIAL_L_SYS;
     
    26783033    else
    26793034      {
     3035#ifdef STATISTICS
     3036    inst->_opcod              =                         INSTRUCTION_L_TRAP;
     3037#endif
    26803038    inst->_type               = instruction_information(INSTRUCTION_L_TRAP)._type     ; //TYPE_SPECIAL;
    26813039    inst->_operation          = instruction_information(INSTRUCTION_L_TRAP)._operation; //OPERATION_SPECIAL_L_TRAP;
     
    27073065    log_printf(TRACE,Decod,"instruction_l_xor","  * instruction   : l.xor");
    27083066
     3067#ifdef STATISTICS
     3068    inst->_opcod              =                         INSTRUCTION_L_XOR;
     3069#endif
    27093070    inst->_type               = instruction_information(INSTRUCTION_L_XOR)._type     ; //TYPE_ALU;
    27103071    inst->_operation          = instruction_information(INSTRUCTION_L_XOR)._operation; //OPERATION_ALU_L_XOR;
     
    27353096    log_printf(TRACE,Decod,"instruction_l_xori","  * instruction   : l.xori");
    27363097
     3098#ifdef STATISTICS
     3099    inst->_opcod              =                         INSTRUCTION_L_XORI;
     3100#endif
    27373101    inst->_type               = instruction_information(INSTRUCTION_L_XORI)._type     ; //TYPE_ALU;
    27383102    inst->_operation          = instruction_information(INSTRUCTION_L_XORI)._operation; //OPERATION_ALU_L_XOR;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Decod.h

    r136 r137  
    8484  public    : SC_OUT(Tcontext_t         )  ** out_DECOD_CONTEXT_ID                   ;//[nb_inst_decod]
    8585  public    : SC_OUT(Tdepth_t           )  ** out_DECOD_DEPTH                        ;//[nb_inst_decod]
     86#ifdef STATISTICS
     87  public    : SC_OUT(uint32_t           )  ** out_DECOD_INSTRUCTION                  ;//[nb_inst_decod]
     88#endif
    8689  public    : SC_OUT(Ttype_t            )  ** out_DECOD_TYPE                         ;//[nb_inst_decod]
    8790  public    : SC_OUT(Toperation_t       )  ** out_DECOD_OPERATION                    ;//[nb_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp

    r136 r137  
    8383      ALLOC1_SIGNAL_OUT(out_DECOD_CONTEXT_ID   ,"context_id"   ,Tcontext_t        ,_param->_size_context_id            );
    8484      ALLOC1_SIGNAL_OUT(out_DECOD_DEPTH        ,"depth"        ,Tdepth_t          ,_param->_size_depth                 );
     85#ifdef STATISTICS
     86      ALLOC1_SIGNAL_OUT(out_DECOD_INSTRUCTION  ,"instruction"  ,uint32_t          ,32                                  );
     87#endif
    8588      ALLOC1_SIGNAL_OUT(out_DECOD_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type                  );
    8689      ALLOC1_SIGNAL_OUT(out_DECOD_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp

    r136 r137  
    4444        DELETE1_SIGNAL(out_DECOD_CONTEXT_ID   ,_param->_nb_inst_decod,_param->_size_context_id            );
    4545        DELETE1_SIGNAL(out_DECOD_DEPTH        ,_param->_nb_inst_decod,_param->_size_depth                 );
     46#ifdef STATISTICS
     47        DELETE1_SIGNAL(out_DECOD_INSTRUCTION  ,_param->_nb_inst_decod,32                                  );
     48#endif
    4649        DELETE1_SIGNAL(out_DECOD_TYPE         ,_param->_nb_inst_decod,_param->_size_type                  );
    4750        DELETE1_SIGNAL(out_DECOD_OPERATION    ,_param->_nb_inst_decod,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp

    r136 r137  
    107107                _decod_instruction->_address_next       = addr+1;
    108108                _decod_instruction->_is_delay_slot      = internal_CONTEXT_IS_DELAY_SLOT [x];
     109#ifdef STATISTICS
     110                _decod_instruction->_opcod              = -1; // not necessary
     111#endif
    109112                _decod_instruction->_type               = 0; // not necessary
    110113                _decod_instruction->_operation          = 0; // not necessary
     
    174177                if (_param->_have_port_depth)
    175178                PORT_WRITE(out_DECOD_DEPTH         [i], depth);
     179#ifdef STATISTICS
     180                PORT_WRITE(out_DECOD_INSTRUCTION   [i], _decod_instruction->_opcod         );
     181#endif
    176182                PORT_WRITE(out_DECOD_TYPE          [i], type);
    177183                PORT_WRITE(out_DECOD_OPERATION     [i], _decod_instruction->_operation     );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_vhdl_body.cpp

    r135 r137  
    3636
    3737    for(uint32_t i = 0;i < _param->_nb_inst_decod;i++){
    38       vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+" <= in_IFETCH_0_"+toString(i)+"_INSTRUCTION WHEN in_IFETCH_0_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(6,OPCOD_10)+" & "+std_logic_cst(2,OPCOD_L_NOP)+" & X\"000000\" ;");
     38      vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+" <= in_IFETCH_0_"+toString(i)+"_INSTRUCTION WHEN in_IFETCH_0_"+toString(i)+"_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(6,OPCOD_10)+" & "+std_logic_cst(2,OPCOD_L_NOP)+" & X\"000000\" ;");
    3939      vhdl->set_body(0,"out_DECOD_"+toString(i)+"_VAL <= internal_DECOD_"+toString(i)+"_VAL; ");
    4040      vhdl->set_body(0,"out_DECOD_"+toString(i)+"_TYPE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_TYPE; ");
     
    5353      vhdl->set_body(0,"out_DECOD_"+toString(i)+"_NUM_REG_RE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_NUM_REG_RE; ");
    5454      vhdl->set_body(0,"out_DECOD_"+toString(i)+"_EXCEPTION_USE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_EXCEPTION_USE; ");
    55       vhdl->set_body(0,"out_DECOD_"+toString(i)+"_EXCEPTION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_EXCEPTION WHEN in_IFETCH_0_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_exception_decod,EXCEPTION_DECOD_NONE)+"; ");
     55      vhdl->set_body(0,"out_DECOD_"+toString(i)+"_EXCEPTION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_EXCEPTION WHEN in_IFETCH_0_"+toString(i)+"_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_exception_decod,EXCEPTION_DECOD_NONE)+"; ");
    5656      vhdl->set_body(0,"out_DECOD_"+toString(i)+"_NO_EXECUTE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_NO_EXECUTE; ");
    5757      vhdl->set_body(0,"out_DECOD_"+toString(i)+"_IS_DELAY_SLOT <= internal_DECOD_INSTRUCTION_"+toString(i)+"_IS_DELAY_SLOT; ");
     
    5959      vhdl->set_body(0,"out_DECOD_"+toString(i)+"_ADDRESS <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS; ");
    6060#endif
    61       vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS <= in_IFETCH_0_ADDRESS + "+std_logic_cst(_param->_size_instruction_address,i)+" ;");
     61      vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS <= in_IFETCH_0_"+toString(i)+"_ADDRESS + "+std_logic_cst(_param->_size_instruction_address,i)+" ;");
    6262      vhdl->set_body(0,"out_DECOD_"+toString(i)+"_ADDRESS_NEXT <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT; ");
    63       vhdl->set_body(0,"internal_DECOD_IN_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_"+toString(i)+"_ADDRESS + '1'; ");
     63      vhdl->set_body(0,"internal_DECOD_IN_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + '1'; ");
    6464      vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_CONDITION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_BRANCH_CONDITION; ");
    6565      vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_DIRECTION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_BRANCH_DIRECTION; ");
    6666      vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_ADDRESS_SRC <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS; ");
    6767      vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_ADDRESS_DEST <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT; ");
    68       vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_STATE <= in_IFETCH_0_BRANCH_STATE; ");
     68      vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_STATE <= in_IFETCH_0_"+toString(i)+"_BRANCH_STATE; ");
    6969      vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_VAL <= internal_PREDICT_"+toString(i)+"_VAL; ");
    7070
    71       if(_param->_have_port_depth) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID <= in_IFETCH_0_BRANCH_UPDATE_PREDICTION_ID; ");
    72       if(_param->_have_port_inst_ifetch_ptr) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_MATCH_INST_IFETCH_PTR <= '1' WHEN in_IFETCH_0_INST_IFETCH_PTR = "+std_logic_cst(_param->_size_inst_ifetch_ptr,i)+" ELSE '0'; ");
     71      if(_param->_have_port_depth) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID <= in_IFETCH_0_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID; ");
     72      if(_param->_have_port_inst_ifetch_ptr) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_MATCH_INST_IFETCH_PTR <= '1' WHEN in_IFETCH_0_"+toString(i)+"_INST_IFETCH_PTR = "+std_logic_cst(_param->_size_inst_ifetch_ptr,i)+" ELSE '0'; ");
    7373      else vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_MATCH_INST_IFETCH_PTR <= '1' WHEN internal_DECOD_INSTRUCTION_0_TYPE = "+std_logic_cst(_param->_size_type,TYPE_BRANCH)+" ELSE '0' ; ");
    7474    }
     
    8888     
    8989      vhdl->set_body(0,"out_CONTEXT_EVENT_VAL <= internal_CONTEXT_EVENT_VAL; ");
    90       vhdl->set_body(0,"out_CONTEXT_EVENT_TYPE <= internal_DECOD_INSTRUCTION_0_EVENT_TYPE WHEN in_IFETCH_0_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_EXCEPTION)+"; ");
     90      vhdl->set_body(0,"out_CONTEXT_EVENT_TYPE <= internal_DECOD_INSTRUCTION_0_EVENT_TYPE WHEN in_IFETCH_0_0_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_EXCEPTION)+"; ");
    9191      vhdl->set_body(0,"out_CONTEXT_EVENT_ADDRESS <= internal_DECOD_INSTRUCTION_0_ADDRESS; ");
    9292      vhdl->set_body(0,"out_CONTEXT_EVENT_ADDRESS_EPCR <= internal_DECOD_INSTRUCTION_0_ADDRESS_NEXT; ");
     
    226226      extend_signal = "";
    227227      for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & ";
    228       vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
     228      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
    229229      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; ");
    230230     
     
    252252      extend_signal = "";
    253253      for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & ";
    254       vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
     254      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
    255255      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; ");
    256256     
     
    266266      extend_signal = "";
    267267      for(uint32_t cp = 0;cp < _param->_size_general_data - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & ";
    268       vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
     268      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
    269269      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RA <= '0'; ");
    270270      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RB <= '0'; ");
     
    280280      extend_signal = "";
    281281      for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & ";
    282       vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
     282      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
    283283      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; ");
    284284     
     
    294294      extend_signal = "";
    295295      for(uint32_t cp = 0;cp < _param->_size_general_data - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & ";
    296       vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
     296      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
    297297      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RA <= '0'; ");
    298298      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RB <= '0'; ");
     
    308308      extend_signal = "";
    309309      for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & ";
    310       vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
     310      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");
    311311      vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; ");
    312312     
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_vhdl_declaration.cpp

    r135 r137  
    4747      vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_NO_EXECUTE    ",1);
    4848      vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_IS_DELAY_SLOT    ",1);
    49 #ifdef DEBUG
    5049      vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS    ",_param->_size_instruction_address);
    51 #endif
    5250      vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT    ",_param->_size_instruction_address);
    5351      vhdl->set_signal ("internal_DECOD_IN_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT    ",_param->_size_instruction_address);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h

    r136 r137  
    7575  public    : SC_IN (Tcontext_t         )  **  in_DECOD_IN_CONTEXT_ID     ;//[nb_inst_decod]
    7676  public    : SC_IN (Tdepth_t           )  **  in_DECOD_IN_DEPTH          ;//[nb_inst_decod]
     77#ifdef STATISTICS
     78  public    : SC_IN (uint32_t           )  **  in_DECOD_IN_INSTRUCTION    ;//[nb_inst_decod]
     79#endif
    7780  public    : SC_IN (Ttype_t            )  **  in_DECOD_IN_TYPE           ;//[nb_inst_decod]
    7881  public    : SC_IN (Toperation_t       )  **  in_DECOD_IN_OPERATION      ;//[nb_inst_decod]
     
    103106  public    : SC_OUT(Tcontext_t         )  ** out_DECOD_OUT_CONTEXT_ID    ;//[nb_inst_decod]
    104107  public    : SC_OUT(Tdepth_t           )  ** out_DECOD_OUT_DEPTH         ;//[nb_inst_decod]
     108#ifdef STATISTICS
     109  public    : SC_OUT(uint32_t           )  ** out_DECOD_OUT_INSTRUCTION   ;//[nb_inst_decod]
     110#endif
    105111  public    : SC_OUT(Ttype_t            )  ** out_DECOD_OUT_TYPE          ;//[nb_inst_decod]
    106112  public    : SC_OUT(Toperation_t       )  ** out_DECOD_OUT_OPERATION     ;//[nb_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h

    r112 r137  
    3333  public : Tcontext_t         * _context_id     ;
    3434  public : Tdepth_t           * _depth          ;
     35#ifdef STATISTICS
     36  public : uint32_t           * _instruction    ;
     37#endif
    3538  public : Ttype_t            * _type           ;
    3639  public : Toperation_t       * _operation      ;
     
    6265      ALLOC1(_context_id     ,Tcontext_t         ,_nb_inst);
    6366      ALLOC1(_depth          ,Tdepth_t           ,_nb_inst);
     67#ifdef STATISTICS
     68      ALLOC1(_instruction    ,uint32_t           ,_nb_inst);
     69#endif
    6470      ALLOC1(_type           ,Ttype_t            ,_nb_inst);
    6571      ALLOC1(_operation      ,Toperation_t       ,_nb_inst);
     
    94100      DELETE1(_context_id     ,_nb_inst);
    95101      DELETE1(_depth          ,_nb_inst);
     102#ifdef STATISTICS
     103      DELETE1(_instruction    ,_nb_inst);
     104#endif
    96105      DELETE1(_type           ,_nb_inst);
    97106      DELETE1(_operation      ,_nb_inst);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp

    r123 r137  
    6363      ALLOC1_SIGNAL_IN ( in_DECOD_IN_CONTEXT_ID     ,"context_id"   ,Tcontext_t         ,_param->_size_context_id            );
    6464      ALLOC1_SIGNAL_IN ( in_DECOD_IN_DEPTH          ,"depth"        ,Tdepth_t           ,_param->_size_depth                 );
     65#ifdef STATISTICS
     66      ALLOC1_SIGNAL_IN ( in_DECOD_IN_INSTRUCTION    ,"instruction"  ,uint32_t           ,32                                  );
     67#endif
    6568      ALLOC1_SIGNAL_IN ( in_DECOD_IN_TYPE           ,"type"         ,Ttype_t            ,_param->_size_type                  );
    6669      ALLOC1_SIGNAL_IN ( in_DECOD_IN_OPERATION      ,"operation"    ,Toperation_t       ,_param->_size_operation             );
     
    97100      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_CONTEXT_ID     ,"context_id"   ,Tcontext_t         ,_param->_size_context_id            );
    98101      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_DEPTH          ,"depth"        ,Tdepth_t           ,_param->_size_depth                 );
     102#ifdef STATISTICS
     103      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_INSTRUCTION    ,"instruction"  ,uint32_t           ,32                                  );
     104#endif
    99105      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_TYPE           ,"type"         ,Ttype_t            ,_param->_size_type                  );
    100106      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_OPERATION      ,"operation"    ,Toperation_t       ,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp

    r123 r137  
    3333        DELETE1_SIGNAL( in_DECOD_IN_CONTEXT_ID     ,_param->_nb_inst_decod,_param->_size_context_id            );
    3434        DELETE1_SIGNAL( in_DECOD_IN_DEPTH          ,_param->_nb_inst_decod,_param->_size_depth                 );
     35#ifdef STATISTICS
     36        DELETE1_SIGNAL( in_DECOD_IN_INSTRUCTION    ,_param->_nb_inst_decod,32);
     37#endif
    3538        DELETE1_SIGNAL( in_DECOD_IN_TYPE           ,_param->_nb_inst_decod,_param->_size_type                  );
    3639        DELETE1_SIGNAL( in_DECOD_IN_OPERATION      ,_param->_nb_inst_decod,_param->_size_operation             );
     
    6063        DELETE1_SIGNAL(out_DECOD_OUT_CONTEXT_ID    ,_param->_nb_inst_decod,_param->_size_context_id            );
    6164        DELETE1_SIGNAL(out_DECOD_OUT_DEPTH         ,_param->_nb_inst_decod,_param->_size_depth                 );
     65#ifdef STATISTICS
     66        DELETE1_SIGNAL(out_DECOD_OUT_INSTRUCTION   ,_param->_nb_inst_decod,32);
     67#endif
    6268        DELETE1_SIGNAL(out_DECOD_OUT_TYPE          ,_param->_nb_inst_decod,_param->_size_type                  );
    6369        DELETE1_SIGNAL(out_DECOD_OUT_OPERATION     ,_param->_nb_inst_decod,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_genMoore.cpp

    r123 r137  
    5555                if (_param->_have_port_depth)
    5656                PORT_WRITE(out_DECOD_OUT_DEPTH         [i],reg_QUEUE[num_bank].front()->_depth         [0]);
     57#ifdef STATISTICS
     58                PORT_WRITE(out_DECOD_OUT_INSTRUCTION   [i],reg_QUEUE[num_bank].front()->_instruction   [0]);
     59#endif
    5760                PORT_WRITE(out_DECOD_OUT_TYPE          [i],reg_QUEUE[num_bank].front()->_type          [0]);
    5861                PORT_WRITE(out_DECOD_OUT_OPERATION     [i],reg_QUEUE[num_bank].front()->_operation     [0]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp

    r136 r137  
    7474                entry->_context_id    [0] = context;
    7575                entry->_depth         [0] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0;
     76#ifdef STATISTICS
     77                entry->_instruction   [0] = PORT_READ(in_DECOD_IN_INSTRUCTION   [i]);
     78#endif
    7679                entry->_type          [0] = PORT_READ(in_DECOD_IN_TYPE          [i]);
    7780                entry->_operation     [0] = PORT_READ(in_DECOD_IN_OPERATION     [i]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_genMoore.cpp

    r123 r137  
    5555          if (_param->_have_port_depth)
    5656          PORT_WRITE(out_DECOD_OUT_DEPTH         [i],reg_QUEUE->front()->_depth         [index]);
     57#ifdef STATISTICS
     58          PORT_WRITE(out_DECOD_OUT_INSTRUCTION   [i],reg_QUEUE->front()->_instruction   [index]);
     59#endif
    5760          PORT_WRITE(out_DECOD_OUT_TYPE          [i],reg_QUEUE->front()->_type          [index]);
    5861          PORT_WRITE(out_DECOD_OUT_OPERATION     [i],reg_QUEUE->front()->_operation     [index]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp

    r136 r137  
    7777                entry->_context_id    [i] = context;
    7878                entry->_depth         [i] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0;
     79#ifdef STATISTICS
     80                entry->_instruction   [i] = PORT_READ(in_DECOD_IN_INSTRUCTION   [i]);
     81#endif
    7982                entry->_type          [i] = PORT_READ(in_DECOD_IN_TYPE          [i]);
    8083                entry->_operation     [i] = PORT_READ(in_DECOD_IN_OPERATION     [i]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp

    r135 r137  
    4242    test();
    4343
    44     _size_internal_queue =
    45       (1                            + // _val
    46        _size_context_id             + // _context_id
    47        _size_depth                  + // _depth
    48        _size_type                   + // _type   
    49        _size_operation              + // _operation
    50        1                            + // _no_execute
    51        1                            + // _is_delay_slot
    52 #ifdef DEBUG
    53        _size_instruction_address    + // _address
    54 #endif
    55        _size_instruction_address    + // _address_next
    56        1                            + // _has_immediat
    57        _size_general_data           + // _immediat
    58        1                            + // _read_ra
    59        _size_general_register_logic + // _num_reg_ra
    60        1                            + // _read_rb
    61        _size_general_register_logic + // _num_reg_rb
    62        1                            + // _read_rc
    63        _size_special_register_logic + // _num_reg_rc
    64        1                            + // _write_rd
    65        _size_general_register_logic + // _num_reg_rd
    66        1                            + // _write_re
    67        _size_special_register_logic + // _num_reg_re
    68        _size_exception_use          + // _exception_use
    69        _size_exception_decod          // _exception
    70        ) * _nb_inst_decod;
    71 
    7244    if (is_toplevel)
    7345      {
     
    11183    log_begin(Decod_queue,FUNCTION);
    11284
     85    _size_internal_queue =
     86      (1                            + // _val
     87       _size_context_id             + // _context_id
     88       _size_depth                  + // _depth
     89       _size_type                   + // _type   
     90       _size_operation              + // _operation
     91       1                            + // _no_execute
     92       1                            + // _is_delay_slot
     93#ifdef DEBUG
     94       _size_instruction_address    + // _address
     95#endif
     96       _size_instruction_address    + // _address_next
     97       1                            + // _has_immediat
     98       _size_general_data           + // _immediat
     99       1                            + // _read_ra
     100       _size_general_register_logic + // _num_reg_ra
     101       1                            + // _read_rb
     102       _size_general_register_logic + // _num_reg_rb
     103       1                            + // _read_rc
     104       _size_special_register_logic + // _num_reg_rc
     105       1                            + // _write_rd
     106       _size_general_register_logic + // _num_reg_rd
     107       1                            + // _write_re
     108       _size_special_register_logic + // _num_reg_re
     109       _size_exception_use          + // _exception_use
     110       _size_exception_decod          // _exception
     111       ) * _nb_inst_decod;
     112
    113113    log_end(Decod_queue,FUNCTION);
    114114  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/include/Decod_unit.h

    r136 r137  
    8383  public    : SC_OUT(Tcontext_t         )  ** out_DECOD_CONTEXT_ID                   ;//[nb_inst_decod]
    8484  public    : SC_OUT(Tdepth_t           )  ** out_DECOD_DEPTH                        ;//[nb_inst_decod]
     85#ifdef STATISTICS
     86  public    : SC_OUT(uint32_t           )  ** out_DECOD_INSTRUCTION                  ;//[nb_inst_decod]
     87#endif
    8588  public    : SC_OUT(Ttype_t            )  ** out_DECOD_TYPE                         ;//[nb_inst_decod]
    8689  public    : SC_OUT(Toperation_t       )  ** out_DECOD_OPERATION                    ;//[nb_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_allocation.cpp

    r136 r137  
    8080      ALLOC1_SIGNAL_OUT(out_DECOD_CONTEXT_ID   ,"context_id"   ,Tcontext_t        ,_param->_size_context_id            );
    8181      ALLOC1_SIGNAL_OUT(out_DECOD_DEPTH        ,"depth"        ,Tdepth_t          ,_param->_size_depth                 );
     82#ifdef STATISTICS
     83      ALLOC1_SIGNAL_OUT(out_DECOD_INSTRUCTION  ,"instruction"  ,uint32_t          ,32);
     84#endif
    8285      ALLOC1_SIGNAL_OUT(out_DECOD_TYPE         ,"type"         ,Ttype_t           ,_param->_size_type                  );
    8386      ALLOC1_SIGNAL_OUT(out_DECOD_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation             );
     
    293296          COMPONENT_MAP(_component,src ,"out_DECOD_"   +toString(i)+"_DEPTH"        ,
    294297                                   dest, "in_DECOD_IN_"+toString(i)+"_DEPTH"        );
     298#ifdef STATISTICS
     299          COMPONENT_MAP(_component,src ,"out_DECOD_"   +toString(i)+"_INSTRUCTION"  ,
     300                                   dest, "in_DECOD_IN_"+toString(i)+"_INSTRUCTION"  );
     301#endif
    295302          COMPONENT_MAP(_component,src ,"out_DECOD_"   +toString(i)+"_TYPE"         ,
    296303                                   dest, "in_DECOD_IN_"+toString(i)+"_TYPE"         );
     
    483490          PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_DEPTH"        ,
    484491                              dest,"out_DECOD_"    +toString(i)+"_DEPTH"        );
     492#ifdef STATISTICS
     493          PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_INSTRUCTION"  ,
     494                              dest,"out_DECOD_"    +toString(i)+"_INSTRUCTION"  );
     495#endif
    485496          PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_TYPE"         ,
    486497                              dest,"out_DECOD_"    +toString(i)+"_TYPE"         );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_deallocation.cpp

    r136 r137  
    4343        DELETE1_SIGNAL(out_DECOD_CONTEXT_ID                   ,_param->_nb_inst_decod,_param->_size_context_id            );
    4444        DELETE1_SIGNAL(out_DECOD_DEPTH                        ,_param->_nb_inst_decod,_param->_size_depth                 );
     45#ifdef STATISTICS
     46        DELETE1_SIGNAL(out_DECOD_INSTRUCTION                  ,_param->_nb_inst_decod,32);
     47#endif
    4548        DELETE1_SIGNAL(out_DECOD_TYPE                         ,_param->_nb_inst_decod,_param->_size_type                  );
    4649        DELETE1_SIGNAL(out_DECOD_OPERATION                    ,_param->_nb_inst_decod,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_vhdl_body.cpp

    r135 r137  
    243243    vhdl->set_body (3,"reg_ADDRESS                                                 <= var_ADDRESS;");
    244244    if(_param->_have_port_inst_ifetch_ptr)
    245       //    vhdl->set_body (3,"reg_INST_IFETCH_PTR   ("+reg_ptr_write+")                   <= var_INST_IFETCH_PTR;");
     245  //vhdl->set_body (3,"reg_INST_IFETCH_PTR   ("+reg_ptr_write+")                   <= var_INST_IFETCH_PTR;");
    246246    vhdl->set_body (3,"reg_INST_IFETCH_PTR                                         <= var_INST_IFETCH_PTR;");
    247247    //    vhdl->set_body (3,"reg_BRANCH_STATE      ("+reg_ptr_write+")                   <= var_BRANCH_STATE;");
     
    288288       vhdl->set_body (1,"out_ADDRESS_ACK               <= internal_ADDRESS_ACK;");
    289289       if (_param->_have_port_ifetch_queue_ptr) {
    290          vhdl->set_body (1,"out_ADDRESS_IFETCH_QUEUE_ID <= reg_PTR_WRITE;");
     290         uint32_t    diff_size = _param->_size_ifetch_queue_ptr - log2(_param->_size_queue);
     291         std::string complete_size = "";
     292
     293         if (diff_size > 0)
     294           complete_size = std_logic_cst(diff_size,0)+" &";
     295
     296         vhdl->set_body (1,"out_ADDRESS_IFETCH_QUEUE_ID <= "+complete_size+" reg_PTR_WRITE;");
    291297       }
    292298     }
     
    303309           vhdl->set_body(0,"out_DECOD_"+toString(j)+"_VAL                   <= internal_DECOD_"+toString(j)+"_VAL;");
    304310           vhdl->set_body(0,"out_DECOD_"+toString(j)+"_INSTRUCTION           <= reg_DATA("+reg_ptr_read+")("+toString(j)+") ;");
     311           vhdl->set_body(0,"out_DECOD_"+toString(j)+"_ADDRESS               <= reg_ADDRESS("+reg_ptr_read+")+"+std_logic_cst(_param->_size_instruction,j)+";");
     312           if (_param->_have_port_inst_ifetch_ptr)
     313           vhdl->set_body(0,"out_DECOD_"+toString(j)+"_BRANCH_STATE          <= reg_BRANCH_STATE("+reg_ptr_read+") when reg_INST_IFETCH_PTR("+reg_ptr_read+") = "+std_logic_cst(_param->_size_inst_ifetch_ptr,j)+" else "+std_logic_cst(_param->_size_branch_state,BRANCH_STATE_NONE)+";");
     314           else
     315           vhdl->set_body(0,"out_DECOD_"+toString(j)+"_BRANCH_STATE          <= reg_BRANCH_STATE("+reg_ptr_read+");");
     316
     317           if (_param->_have_port_depth)
     318           vhdl->set_body(0,"out_DECOD_"+toString(j)+"_BRANCH_UPDATE_PREDICTION_ID <= reg_BRANCH_UPDATE_PREDICTION_ID("+reg_ptr_read+");");
     319           vhdl->set_body(0,"out_DECOD_"+toString(j)+"_EXCEPTION                   <= reg_EXCEPTION("+reg_ptr_read+");");
     320
    305321         }
    306        vhdl->set_body(0,"out_DECOD_ADDRESS                                   <= reg_ADDRESS("+reg_ptr_read+");");
    307        if (_param->_have_port_inst_ifetch_ptr)
    308          vhdl->set_body(0,"out_DECOD_INST_IFETCH_PTR                         <= reg_INST_IFETCH_PTR("+reg_ptr_read+");");
    309        vhdl->set_body(0,"out_DECOD_BRANCH_STATE                              <= reg_BRANCH_STATE("+reg_ptr_read+");");
    310        if (_param->_have_port_depth)
    311          vhdl->set_body(0,"out_DECOD_BRANCH_UPDATE_PREDICTION_ID             <= reg_BRANCH_UPDATE_PREDICTION_ID("+reg_ptr_read+");");
    312        vhdl->set_body(0,"out_DECOD_EXCEPTION                                 <= reg_EXCEPTION("+reg_ptr_read+");");
    313322     }
    314323     vhdl->set_body(0,"");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_vhdl_declaration.cpp

    r135 r137  
    6262    vhdl->set_type    ("Tenable                              ","array ("+toString(_param->_size_queue-1)+" downto 0) of Tcase_enable");
    6363    vhdl->set_signal  ("reg_INSTRUCTION_ENABLE               ", "Tenable");
    64     vhdl->set_type    ("Tadress                              ","array ("+toString(_param->_size_queue-1)+" downto 0) of "+std_logic(_param->_size_instruction));
     64    vhdl->set_type    ("Tadress                              ","array ("+toString(_param->_size_queue-1)+" downto 0) of "+std_logic(_param->_size_instruction_address));
    6565    vhdl->set_signal  ("reg_ADDRESS                          ", "Tadress");
    6666
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/include/Front_end.h

    r123 r137  
    9090  public    : SC_OUT(Tcontext_t           ) ** out_DECOD_CONTEXT_ID                ;//[sum_inst_decod]
    9191  public    : SC_OUT(Tdepth_t             ) ** out_DECOD_DEPTH                     ;//[sum_inst_decod]
     92#ifdef STATISTICS
     93  public    : SC_OUT(uint32_t             ) ** out_DECOD_INSTRUCTION               ;//[sum_inst_decod]
     94#endif
    9295  public    : SC_OUT(Ttype_t              ) ** out_DECOD_TYPE                      ;//[sum_inst_decod]
    9396  public    : SC_OUT(Toperation_t         ) ** out_DECOD_OPERATION                 ;//[sum_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/src/Front_end_allocation.cpp

    r136 r137  
    9898      ALLOC1_SIGNAL_OUT (out_DECOD_CONTEXT_ID                 ,"CONTEXT_ID"       ,Tcontext_t           ,_param->_size_context_id            );
    9999      ALLOC1_SIGNAL_OUT (out_DECOD_DEPTH                      ,"DEPTH"            ,Tdepth_t             ,_param->_size_depth                 );
     100#ifdef STATISTICS
     101      ALLOC1_SIGNAL_OUT (out_DECOD_INSTRUCTION                ,"INSTRUCTION"      ,uint32_t             ,32);
     102#endif
    100103      ALLOC1_SIGNAL_OUT (out_DECOD_TYPE                       ,"TYPE"             ,Ttype_t              ,_param->_size_type                  );
    101104      ALLOC1_SIGNAL_OUT (out_DECOD_OPERATION                  ,"OPERATION"        ,Toperation_t         ,_param->_size_operation             );
     
    700703
    701704      for (uint32_t j=0; j<_param->_decod_unit_nb_context[i]; ++j)
    702         {
    703           dest = _name+"_glue";
    704 #ifdef POSITION
    705           _component->interface_map (src ,"ifetch_"+toString(j),
    706                                      dest,"ifetch_"+toString(i)+"_"+toString(j));
    707 #endif
    708      
    709           if (_param->_have_port_context_id)
    710           COMPONENT_MAP(_component,src , "in_IFETCH_"+toString(j)                           +"_CONTEXT_ID",
    711                                    dest,"out_IFETCH_"+toString(i)+"_"+toString(j)+"_DECOD_UNIT_CONTEXT_ID");
    712         }
     705        for (uint32_t k=0; k<_param->_nb_inst_fetch [j];++k)
     706          {
     707            dest = _name+"_glue";
     708#ifdef POSITION
     709            _component->interface_map (src ,"ifetch_"+toString(j)+"_"+toString(k),
     710                                       dest,"ifetch_"+toString(i)+"_"+toString(j));
     711#endif
     712           
     713            if (_param->_have_port_context_id)
     714            COMPONENT_MAP(_component,src , "in_IFETCH_"+toString(j)+"_"+toString(k)+"_CONTEXT_ID",
     715                                     dest,"out_IFETCH_"+toString(i)+"_"+toString(j)+"_DECOD_UNIT_CONTEXT_ID");
     716          }
    713717
    714718      // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    729733          PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_DEPTH"        ,
    730734                              dest,"out_DECOD_"+toString(x)+"_DEPTH"        );
     735#ifdef STATISTICS
     736          PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_INSTRUCTION"  ,
     737                              dest,"out_DECOD_"+toString(x)+"_INSTRUCTION"  );
     738#endif
    731739          PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_TYPE"         ,
    732740                              dest,"out_DECOD_"+toString(x)+"_TYPE"         );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/src/Front_end_deallocation.cpp

    r128 r137  
    4545        DELETE1_SIGNAL(out_DECOD_CONTEXT_ID                 ,_param->_sum_inst_decod,_param->_size_context_id            );
    4646        DELETE1_SIGNAL(out_DECOD_DEPTH                      ,_param->_sum_inst_decod,_param->_size_depth                 );
     47#ifdef STATISTICS
     48        DELETE1_SIGNAL(out_DECOD_INSTRUCTION                ,_param->_sum_inst_decod,32);
     49#endif
    4750        DELETE1_SIGNAL(out_DECOD_TYPE                       ,_param->_sum_inst_decod,_param->_size_type                  );
    4851        DELETE1_SIGNAL(out_DECOD_OPERATION                  ,_param->_sum_inst_decod,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h

    r136 r137  
    6161  public    : counter_t                     ** _stat_nb_inst_retire_ok            ;//[nb_thread]
    6262  public    : counter_t                     ** _stat_nb_inst_retire_ko            ;//[nb_thread]
     63  public    : counter_t                     ** _stat_nb_inst_instruction          ;//[nb_instruction]
    6364  public    : counter_t                     ** _stat_nb_inst_type                 ;//[nb_type]
    6465  public    : counter_t                     ** _stat_bank_nb_inst                 ;//[nb_bank]
     
    8788//public    : SC_IN (Tcontext_t         ) ***  in_INSERT_RENAME_UNIT_ID            ;//[nb_rename_unit][nb_inst_insert]
    8889  public    : SC_IN (Tdepth_t           ) ***  in_INSERT_DEPTH                     ;//[nb_rename_unit][nb_inst_insert]
     90#ifdef STATISTICS
     91  public    : SC_IN (uint32_t           ) ***  in_INSERT_INSTRUCTION               ;//[nb_rename_unit][nb_inst_insert]
     92#endif
    8993  public    : SC_IN (Ttype_t            ) ***  in_INSERT_TYPE                      ;//[nb_rename_unit][nb_inst_insert]
    9094  public    : SC_IN (Toperation_t       ) ***  in_INSERT_OPERATION                 ;//[nb_rename_unit][nb_inst_insert]
     
    104108  public    : SC_IN (Tgeneral_address_t ) ***  in_INSERT_NUM_REG_RA_LOG            ;//[nb_rename_unit][nb_inst_insert]
    105109  public    : SC_IN (Tgeneral_address_t ) ***  in_INSERT_NUM_REG_RA_PHY            ;//[nb_rename_unit][nb_inst_insert]
     110#endif
    106111  public    : SC_IN (Tcontrol_t         ) ***  in_INSERT_READ_RB                   ;//[nb_rename_unit][nb_inst_insert]
     112#ifdef DEBUG
    107113  public    : SC_IN (Tgeneral_address_t ) ***  in_INSERT_NUM_REG_RB_LOG            ;//[nb_rename_unit][nb_inst_insert]
    108114  public    : SC_IN (Tgeneral_address_t ) ***  in_INSERT_NUM_REG_RB_PHY            ;//[nb_rename_unit][nb_inst_insert]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Types.h

    r124 r137  
    8585  public  : uint32_t           rename_unit_id          ;
    8686  public  : Tdepth_t           depth                   ;
     87#ifdef STATISTICS
     88  public  : uint32_t           instruction             ;
     89#endif
    8790  public  : Ttype_t            type                    ;
    8891  public  : Toperation_t       operation               ;
     
    97100  public  : Tgeneral_address_t num_reg_ra_log          ;
    98101  public  : Tgeneral_address_t num_reg_ra_phy          ;
     102#endif
    99103  public  : Tcontrol_t         read_rb                 ;
     104#ifdef DEBUG
    100105  public  : Tgeneral_address_t num_reg_rb_log          ;
    101106  public  : Tgeneral_address_t num_reg_rb_phy          ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_allocation.cpp

    r136 r137  
    6666//    _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_ID          ,"rename_unit_id"       ,Tcontext_t        ,_param->_size_rename_unit_id        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    6767      _ALLOC2_SIGNAL_IN ( in_INSERT_DEPTH                   ,"depth"                ,Tdepth_t          ,_param->_size_depth                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
     68#ifdef STATISTICS
     69      _ALLOC2_SIGNAL_IN ( in_INSERT_INSTRUCTION             ,"instruction"          ,uint32_t          ,32                                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
     70#endif
    6871      _ALLOC2_SIGNAL_IN ( in_INSERT_TYPE                    ,"type"                 ,Ttype_t           ,_param->_size_type                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    6972      _ALLOC2_SIGNAL_IN ( in_INSERT_OPERATION               ,"operation"            ,Toperation_t      ,_param->_size_operation             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
     
    7679      _ALLOC2_SIGNAL_IN ( in_INSERT_ADDRESS_NEXT            ,"address_next"         ,Taddress_t        ,_param->_size_instruction_address   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    7780      _ALLOC2_SIGNAL_IN ( in_INSERT_EXCEPTION               ,"exception"            ,Texception_t      ,_param->_size_exception             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    78       _ALLOC2_SIGNAL_IN ( in_INSERT_EXCEPTION_USE           ,"exception_use"        ,Texception_t      ,_param->_size_exception             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
     81      _ALLOC2_SIGNAL_IN ( in_INSERT_EXCEPTION_USE           ,"exception_use"        ,Texception_t      ,_param->_size_exception_use         ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    7982      _ALLOC2_SIGNAL_IN ( in_INSERT_STORE_QUEUE_PTR_WRITE   ,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    8083      _ALLOC2_SIGNAL_IN ( in_INSERT_LOAD_QUEUE_PTR_WRITE    ,"load_queue_ptr_write" ,Tlsq_ptr_t        ,_param->_size_load_queue_ptr        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
     
    8386      _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RA_LOG          ,"num_reg_ra_log"       ,Tgeneral_address_t,_param->_size_general_register_logic,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    8487      _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RA_PHY          ,"num_reg_ra_phy"       ,Tgeneral_address_t,_param->_size_general_register      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
     88#endif
    8589      _ALLOC2_SIGNAL_IN ( in_INSERT_READ_RB                 ,"read_rb"              ,Tcontrol_t        ,1                                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
     90#ifdef DEBUG
    8691      _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RB_LOG          ,"num_reg_rb_log"       ,Tgeneral_address_t,_param->_size_general_register_logic,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    8792      _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RB_PHY          ,"num_reg_rb_phy"       ,Tgeneral_address_t,_param->_size_general_register      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_deallocation.cpp

    r136 r137  
    3535//      DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_ID          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_rename_unit_id        );
    3636        DELETE2_SIGNAL( in_INSERT_DEPTH                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_depth                 );
     37#ifdef STATISTICS
     38        DELETE2_SIGNAL( in_INSERT_INSTRUCTION             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],32);
     39#endif
    3740        DELETE2_SIGNAL( in_INSERT_TYPE                    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_type                  );
    3841        DELETE2_SIGNAL( in_INSERT_OPERATION               ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_operation             );
     
    5255        DELETE2_SIGNAL( in_INSERT_NUM_REG_RA_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register_logic);
    5356        DELETE2_SIGNAL( in_INSERT_NUM_REG_RA_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register      );
     57#endif
    5458        DELETE2_SIGNAL( in_INSERT_READ_RB                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                                   );
     59#ifdef DEBUG
    5560        DELETE2_SIGNAL( in_INSERT_NUM_REG_RB_LOG          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register_logic);
    5661        DELETE2_SIGNAL( in_INSERT_NUM_REG_RB_PHY          ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register      );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_statistics_allocation.cpp

    r124 r137  
    5252    _stat_nb_inst_retire_ok      = new counter_t * [_param->_nb_thread];
    5353    _stat_nb_inst_retire_ko      = new counter_t * [_param->_nb_thread];
     54    _stat_nb_inst_instruction    = new counter_t * [NB_INSTRUCTION];
    5455    _stat_nb_inst_type           = new counter_t * [_param->_nb_type];
    5556    _stat_bank_nb_inst           = new counter_t * [_param->_nb_bank];
    56    
     57
    5758    {
    5859      std::string sum_nb_inst_insert    = "0";
     
    129130
    130131      for (uint32_t i=0; i<_param->_nb_type; i++)
    131         if (is_type_valid(i))
     132        if (is_type_valid(i))
    132133          {
    133134            _stat_nb_inst_type [i] = _stat->create_variable("nb_inst_type_"+toString(i));
     
    139140        if (is_type_valid(i))
    140141          {
    141             std::string name = toString(static_cast<type_t>(i)).c_str();
    142 //          _stat->create_expr_average_by_cycle("average_inst_type_"+toString(name), "nb_inst_type_"+toString(i), "", toString(_("Average instruction retire ok by cycle (type %s)"),name.c_str()));
    143             _stat->create_expr_percent         ("percent_inst_type_"+toString(name), "nb_inst_type_"+toString(i), sum_nb_inst_type, toString(_("Percent instruction retire ok by cycle (type %s)"),name.c_str()));
    144           }
     142            std::string name = toString(static_cast<type_t>(i));
     143
     144            _stat->create_expr_percent         ("percent_type_"+toString(name), "nb_inst_type_"+toString(i), sum_nb_inst_type, toString(_("Percent instruction retire ok by cycle (type %s)"),name.c_str()));
     145          }
     146    }
     147
     148    {
     149      std::string sum_nb_inst_instruction = "0";
     150
     151      for (uint32_t i=0; i<NB_INSTRUCTION; i++)
     152        {
     153          _stat_nb_inst_instruction [i] = _stat->create_variable("nb_inst_instruction_"+toString(i));
     154         
     155          sum_nb_inst_instruction = "+ nb_inst_instruction_"+toString(i) + " " +sum_nb_inst_instruction;
     156        }
     157 
     158      for (uint32_t i=0; i<NB_INSTRUCTION; i++)
     159        {
     160          std::string name = toString_instruction(i).c_str();
     161
     162          _stat->create_expr_percent         ("percent_instruction_"+toString(name), "nb_inst_instruction_"+toString(i), sum_nb_inst_instruction, toString(_("Percent instruction retire ok by cycle (instruction %s)"),name.c_str()));
     163        }
    145164    }
    146165
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_statistics_deallocation.cpp

    r124 r137  
    3131    delete [] _stat_nb_inst_retire_ok;
    3232    delete [] _stat_nb_inst_retire_ko;
     33    delete [] _stat_nb_inst_instruction;
    3334    delete [] _stat_nb_inst_type;
    3435    delete [] _stat_bank_nb_inst;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp

    r136 r137  
    252252                      entry->rename_unit_id          = x;
    253253                      entry->depth                   = (_param->_have_port_depth)?PORT_READ(in_INSERT_DEPTH [x][y]):0;
     254#ifdef STATISTICS
     255                      entry->instruction             = PORT_READ(in_INSERT_INSTRUCTION           [x][y]);
     256#endif
    254257                      entry->type                    = type;
    255258                      entry->operation               = operation;
     
    266269                      entry->num_reg_ra_log          = PORT_READ(in_INSERT_NUM_REG_RA_LOG        [x][y]);
    267270                      entry->num_reg_ra_phy          = PORT_READ(in_INSERT_NUM_REG_RA_PHY        [x][y]);
     271#endif
    268272                      entry->read_rb                 = PORT_READ(in_INSERT_READ_RB               [x][y]);
     273#ifdef DEBUG
    269274                      entry->num_reg_rb_log          = PORT_READ(in_INSERT_NUM_REG_RB_LOG        [x][y]);
    270275                      entry->num_reg_rb_phy          = PORT_READ(in_INSERT_NUM_REG_RB_PHY        [x][y]);
     
    287292#ifdef DEBUG       
    288293                      entry->address                 = PORT_READ(in_INSERT_ADDRESS               [x][y]);
    289 #else
    290                       entry->address                 = 0; // not necessary
    291294#endif               
    292295                      entry->address_next            = PORT_READ(in_INSERT_ADDRESS_NEXT          [x][y]);
     
    823826                        if (retire_ok)
    824827                          {
    825                             (*_stat_nb_inst_retire_ok [num_thread]) ++;
    826                             (*_stat_nb_inst_type      [type]      ) ++;
     828                            uint32_t instruction = entry->instruction;
     829
     830                            (*_stat_nb_inst_retire_ok   [num_thread] ) ++;
     831                            (*_stat_nb_inst_instruction [instruction]) ++;
     832                            (*_stat_nb_inst_type        [type]       ) ++;
    827833                          }
    828834                        else
     
    10481054                      // Read information
    10491055                      rob_state_t  state        = entry->state;
    1050                       Tdepth_t     depth        = entry->depth;
    1051                      
    1052                       Tdepth_t     depth_min    = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MIN[front_end_id][context_id]):0;
    1053                       Tdepth_t     depth_max    = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MAX[front_end_id][context_id]):0;
    1054                       Tcontrol_t   depth_full   = PORT_READ(in_DEPTH_FULL [front_end_id][context_id]);
     1056//                       Tdepth_t     depth        = entry->depth;
     1057                     
     1058//                       Tdepth_t     depth_min    = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MIN[front_end_id][context_id]):0;
     1059//                       Tdepth_t     depth_max    = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MAX[front_end_id][context_id]):0;
     1060//                       Tcontrol_t   depth_full   = PORT_READ(in_DEPTH_FULL [front_end_id][context_id]);
    10551061                     
    10561062                      // is a valid instruction ?
     
    10881094                     
    10891095                      log_printf(TRACE,Commit_unit,FUNCTION,"    * is_valid        : %d ((depth == depth_min) and not flush)",is_valid);
    1090                       log_printf(TRACE,Commit_unit,FUNCTION,"    * depth           : %d",depth    );
    1091                       log_printf(TRACE,Commit_unit,FUNCTION,"    * depth_min       : %d",depth_min);
    1092                       log_printf(TRACE,Commit_unit,FUNCTION,"    * depth_max       : %d",depth_max);
    1093                       log_printf(TRACE,Commit_unit,FUNCTION,"    * depth_full      : %d",depth_full);
     1096//                       log_printf(TRACE,Commit_unit,FUNCTION,"    * depth           : %d",depth    );
     1097//                       log_printf(TRACE,Commit_unit,FUNCTION,"    * depth_min       : %d",depth_min);
     1098//                       log_printf(TRACE,Commit_unit,FUNCTION,"    * depth_max       : %d",depth_max);
     1099//                       log_printf(TRACE,Commit_unit,FUNCTION,"    * depth_full      : %d",depth_full);
    10941100                      log_printf(TRACE,Commit_unit,FUNCTION,"    * speculative     : %d",speculative);
    10951101                      log_printf(TRACE,Commit_unit,FUNCTION,"    * flush           : %d",flush);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/include/OOO_Engine_Glue.h

    r136 r137  
    119119  public    : SC_OUT(Tcontrol_t         ) *** out_INSERT_COMMIT_UNIT_READ_RA                   ;//[nb_rename_unit][nb_inst_insert]
    120120  public    : SC_OUT(Tgeneral_address_t ) *** out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY            ;//[nb_rename_unit][nb_inst_insert]
     121#endif
    121122  public    : SC_OUT(Tcontrol_t         ) *** out_INSERT_COMMIT_UNIT_READ_RB                   ;//[nb_rename_unit][nb_inst_insert]
     123#ifdef DEBUG
    122124  public    : SC_OUT(Tgeneral_address_t ) *** out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY            ;//[nb_rename_unit][nb_inst_insert]
    123125  public    : SC_OUT(Tcontrol_t         ) *** out_INSERT_COMMIT_UNIT_READ_RC                   ;//[nb_rename_unit][nb_inst_insert]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/src/OOO_Engine_Glue_allocation.cpp

    r136 r137  
    122122      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_READ_RA                   ,"COMMIT_UNIT_READ_RA"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    123123      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY            ,"COMMIT_UNIT_NUM_REG_RA_PHY"            ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
     124#endif
    124125      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_READ_RB                   ,"COMMIT_UNIT_READ_RB"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
     126#ifdef DEBUG
    125127      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY            ,"COMMIT_UNIT_NUM_REG_RB_PHY"            ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
    126128      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_READ_RC                   ,"COMMIT_UNIT_READ_RC"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/src/OOO_Engine_Glue_deallocation.cpp

    r136 r137  
    7777        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_READ_RA                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
    7878        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
     79#endif
    7980        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_READ_RB                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
     81#ifdef DEBUG
    8082        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
    8183        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_READ_RC                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/src/OOO_Engine_Glue_genMealy_insert.cpp

    r136 r137  
    7676          PORT_WRITE(out_INSERT_COMMIT_UNIT_READ_RA               [i][j],READ_RA              );
    7777          PORT_WRITE(out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY        [i][j],NUM_REG_RA_PHY       );
     78#endif
    7879          PORT_WRITE(out_INSERT_COMMIT_UNIT_READ_RB               [i][j],READ_RB              );
     80#ifdef DEBUG
    7981          PORT_WRITE(out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY        [i][j],NUM_REG_RB_PHY       );
    8082          PORT_WRITE(out_INSERT_COMMIT_UNIT_READ_RC               [i][j],READ_RC              );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/include/Dependency_checking_unit.h

    r121 r137  
    8787
    8888    // ~~~~~[ Interface "rename_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    89 //   public    : SC_OUT(Tcontrol_t        )   ** out_RENAME_OUT_VAL               ;//[nb_inst_insert]
    90 //   public    : SC_IN (Tcontrol_t        )   **  in_RENAME_OUT_ACK               ;//[nb_inst_insert]
    91   public    : SC_OUT(Tcontext_t        )   ** out_RENAME_OUT_FRONT_END_ID      ;//[nb_inst_insert]
    92   public    : SC_OUT(Tcontext_t        )   ** out_RENAME_OUT_CONTEXT_ID        ;//[nb_inst_insert]
     89//public    : SC_OUT(Tcontrol_t        )   ** out_RENAME_OUT_VAL               ;//[nb_inst_insert]
     90//public    : SC_IN (Tcontrol_t        )   **  in_RENAME_OUT_ACK               ;//[nb_inst_insert]
     91//public    : SC_OUT(Tcontext_t        )   ** out_RENAME_OUT_FRONT_END_ID      ;//[nb_inst_insert]
     92//public    : SC_OUT(Tcontext_t        )   ** out_RENAME_OUT_CONTEXT_ID        ;//[nb_inst_insert]
    9393  public    : SC_OUT(Tcontrol_t        )   ** out_RENAME_OUT_READ_RA           ;//[nb_inst_insert]
    9494#ifdef DEBUG
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_allocation.cpp

    r121 r137  
    9191//     ALLOC1_VALACK_OUT(out_RENAME_OUT_VAL               ,VAL);
    9292//     ALLOC1_VALACK_IN ( in_RENAME_OUT_ACK               ,ACK);
    93        ALLOC1_SIGNAL_OUT(out_RENAME_OUT_FRONT_END_ID      ,"front_end_id"      ,Tcontext_t        ,_param->_size_front_end_id          );
    94        ALLOC1_SIGNAL_OUT(out_RENAME_OUT_CONTEXT_ID        ,"context_id"        ,Tcontext_t        ,_param->_size_context_id            );
     93//     ALLOC1_SIGNAL_OUT(out_RENAME_OUT_FRONT_END_ID      ,"front_end_id"      ,Tcontext_t        ,_param->_size_front_end_id          );
     94//     ALLOC1_SIGNAL_OUT(out_RENAME_OUT_CONTEXT_ID        ,"context_id"        ,Tcontext_t        ,_param->_size_context_id            );
    9595       ALLOC1_SIGNAL_OUT(out_RENAME_OUT_READ_RA           ,"read_ra"           ,Tcontrol_t        ,1                                   );
    9696#ifdef DEBUG
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_deallocation.cpp

    r121 r137  
    5454//      DELETE1_SIGNAL(out_RENAME_OUT_VAL               ,_param->_nb_inst_insert,1);
    5555//      DELETE1_SIGNAL( in_RENAME_OUT_ACK               ,_param->_nb_inst_insert,1);
    56         DELETE1_SIGNAL(out_RENAME_OUT_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id          );
    57         DELETE1_SIGNAL(out_RENAME_OUT_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id            );
     56//      DELETE1_SIGNAL(out_RENAME_OUT_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id          );
     57//      DELETE1_SIGNAL(out_RENAME_OUT_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id            );
    5858        DELETE1_SIGNAL(out_RENAME_OUT_READ_RA           ,_param->_nb_inst_insert,1                                   );
    5959#ifdef DEBUG
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_genMealy.cpp

    r123 r137  
    197197//      PORT_WRITE(out_RENAME_OUT_VAL                [i], val                [i]);
    198198//      PORT_WRITE(out_RENAME_IN_ACK                 [i], ack                [i]);
    199         if (_param->_have_port_front_end_id)
    200         PORT_WRITE(out_RENAME_OUT_FRONT_END_ID       [i], front_end_id       [i]);
    201         if (_param->_have_port_context_id)
    202         PORT_WRITE(out_RENAME_OUT_CONTEXT_ID         [i], context_id         [i]);
     199//      if (_param->_have_port_front_end_id)
     200//      PORT_WRITE(out_RENAME_OUT_FRONT_END_ID       [i], front_end_id       [i]);
     201//      if (_param->_have_port_context_id)
     202//      PORT_WRITE(out_RENAME_OUT_CONTEXT_ID         [i], context_id         [i]);
    203203        PORT_WRITE(out_RENAME_OUT_READ_RA            [i], read_ra            [i]);
    204204#ifdef DEBUG
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_transition.cpp

    r112 r137  
    120120
    121121#if (DEBUG >= DEBUG_TRACE) and (DEBUG_Free_List_unit == true)
     122        if (0)
    122123        {
    123124          uint32_t limit = 4;
     
    175176
    176177#ifdef DEBUG_TEST
    177         if (1)
     178        if (0)
    178179          for (uint32_t i=0; i<_param->_nb_bank; ++i)
    179180            {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/include/Register_translation_unit.h

    r123 r137  
    8686  public    : SC_OUT(Tcontrol_t        )   ** out_INSERT_VAL               ;//[nb_inst_insert]
    8787  public    : SC_IN (Tcontrol_t        )   **  in_INSERT_ACK               ;//[nb_inst_insert]
    88   public    : SC_OUT(Tcontext_t        )   ** out_INSERT_FRONT_END_ID      ;//[nb_inst_insert]
    89   public    : SC_OUT(Tcontext_t        )   ** out_INSERT_CONTEXT_ID        ;//[nb_inst_insert]
     88//public    : SC_OUT(Tcontext_t        )   ** out_INSERT_FRONT_END_ID      ;//[nb_inst_insert]
     89//public    : SC_OUT(Tcontext_t        )   ** out_INSERT_CONTEXT_ID        ;//[nb_inst_insert]
    9090  public    : SC_OUT(Tcontrol_t        )   ** out_INSERT_READ_RA           ;//[nb_inst_insert]
    9191#ifdef DEBUG
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_allocation.cpp

    r123 r137  
    8484      ALLOC1_VALACK_OUT(out_INSERT_VAL               ,VAL);
    8585      ALLOC1_VALACK_IN ( in_INSERT_ACK               ,ACK);
    86       ALLOC1_SIGNAL_OUT(out_INSERT_FRONT_END_ID      ,"front_end_id"      ,Tcontext_t        ,_param->_size_front_end_id          );
    87       ALLOC1_SIGNAL_OUT(out_INSERT_CONTEXT_ID        ,"context_id"        ,Tcontext_t        ,_param->_size_context_id            );
     86//    ALLOC1_SIGNAL_OUT(out_INSERT_FRONT_END_ID      ,"front_end_id"      ,Tcontext_t        ,_param->_size_front_end_id          );
     87//    ALLOC1_SIGNAL_OUT(out_INSERT_CONTEXT_ID        ,"context_id"        ,Tcontext_t        ,_param->_size_context_id            );
    8888      ALLOC1_SIGNAL_OUT(out_INSERT_READ_RA           ,"read_ra"           ,Tcontrol_t        ,1                                   );
    8989#ifdef DEBUG
     
    575575#endif
    576576
    577           if (_param->_have_port_front_end_id)
    578           PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_FRONT_END_ID"      ,
    579                               dest,"out_INSERT_"+toString(i)+"_FRONT_END_ID"      );
    580           if (_param->_have_port_context_id)
    581           PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_CONTEXT_ID"        ,
    582                               dest,"out_INSERT_"+toString(i)+"_CONTEXT_ID"        );
     577//        if (_param->_have_port_front_end_id)
     578//        PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_FRONT_END_ID"      ,
     579//                            dest,"out_INSERT_"+toString(i)+"_FRONT_END_ID"      );
     580//        if (_param->_have_port_context_id)
     581//        PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_CONTEXT_ID"        ,
     582//                            dest,"out_INSERT_"+toString(i)+"_CONTEXT_ID"        );
    583583#ifdef DEBUG
    584584          PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_NUM_REG_RA_LOG"    ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_deallocation.cpp

    r123 r137  
    4646        DELETE1_SIGNAL(out_INSERT_VAL               ,_param->_nb_inst_insert,1);
    4747        DELETE1_SIGNAL( in_INSERT_ACK               ,_param->_nb_inst_insert,1);
    48         DELETE1_SIGNAL(out_INSERT_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id          );
    49         DELETE1_SIGNAL(out_INSERT_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id            );
     48//      DELETE1_SIGNAL(out_INSERT_FRONT_END_ID      ,_param->_nb_inst_insert,_param->_size_front_end_id          );
     49//      DELETE1_SIGNAL(out_INSERT_CONTEXT_ID        ,_param->_nb_inst_insert,_param->_size_context_id            );
    5050        DELETE1_SIGNAL(out_INSERT_READ_RA           ,_param->_nb_inst_insert,1                                   );
    5151#ifdef DEBUG
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/include/Rename_select.h

    r123 r137  
    7272  public    : SC_IN (Tcontext_t        )  ***  in_RENAME_IN_CONTEXT_ID    ;//[nb_front_end][nb_inst_decod]
    7373  public    : SC_IN (Tdepth_t          )  ***  in_RENAME_IN_DEPTH         ;//[nb_front_end][nb_inst_decod]
     74#ifdef STATISTICS
     75  public    : SC_IN (uint32_t          )  ***  in_RENAME_IN_INSTRUCTION   ;//[nb_front_end][nb_inst_decod]
     76#endif
    7477  public    : SC_IN (Ttype_t           )  ***  in_RENAME_IN_TYPE          ;//[nb_front_end][nb_inst_decod]
    7578  public    : SC_IN (Toperation_t      )  ***  in_RENAME_IN_OPERATION     ;//[nb_front_end][nb_inst_decod]
     
    103106  public    : SC_OUT(Tcontext_t        )   ** out_RENAME_OUT_CONTEXT_ID   ;//[nb_inst_rename]
    104107  public    : SC_OUT(Tdepth_t          )   ** out_RENAME_OUT_DEPTH        ;//[nb_inst_rename]
     108#ifdef STATISTICS
     109  public    : SC_OUT(uint32_t          )   ** out_RENAME_OUT_INSTRUCTION  ;//[nb_inst_rename]
     110#endif
    105111  public    : SC_OUT(Ttype_t           )   ** out_RENAME_OUT_TYPE         ;//[nb_inst_rename]
    106112  public    : SC_OUT(Toperation_t      )   ** out_RENAME_OUT_OPERATION    ;//[nb_inst_rename]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_allocation.cpp

    r123 r137  
    6565      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_CONTEXT_ID    ,"context_id"   ,Tcontext_t        ,_param->_size_context_id            , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    6666      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_DEPTH         ,"depth"        ,Tdepth_t          ,_param->_size_depth                 , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     67#ifdef STATISTICS
     68      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_INSTRUCTION   ,"instruction"  ,uint32_t          ,32                                  , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     69#endif
    6770      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_TYPE          ,"type"         ,Ttype_t           ,_param->_size_type                  , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    6871      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_OPERATION     ,"operation"    ,Toperation_t      ,_param->_size_operation             , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     
    102105      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_CONTEXT_ID    ,"context_id"   ,Tcontext_t        ,_param->_size_context_id            );
    103106      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_DEPTH         ,"depth"        ,Tdepth_t          ,_param->_size_depth                 );
     107#ifdef STATISTICS
     108      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_INSTRUCTION   ,"instruction"  ,uint32_t          ,32);
     109#endif
    104110      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_TYPE          ,"type"         ,Ttype_t           ,_param->_size_type                  );
    105111      ALLOC1_SIGNAL_OUT(out_RENAME_OUT_OPERATION     ,"operation"    ,Toperation_t      ,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_deallocation.cpp

    r123 r137  
    3434        DELETE2_SIGNAL( in_RENAME_IN_CONTEXT_ID    ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_context_id            );
    3535        DELETE2_SIGNAL( in_RENAME_IN_DEPTH         ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_depth                 );
     36#ifdef STATISTICS
     37        DELETE2_SIGNAL( in_RENAME_IN_INSTRUCTION   ,_param->_nb_front_end, _param->_nb_inst_decod[it1],32);
     38#endif
    3639        DELETE2_SIGNAL( in_RENAME_IN_TYPE          ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_type                  );
    3740        DELETE2_SIGNAL( in_RENAME_IN_OPERATION     ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_operation             );
     
    6467        DELETE1_SIGNAL(out_RENAME_OUT_CONTEXT_ID    ,_param->_nb_inst_rename,_param->_size_context_id            );
    6568        DELETE1_SIGNAL(out_RENAME_OUT_DEPTH         ,_param->_nb_inst_rename,_param->_size_depth                 );
    66         DELETE1_SIGNAL(out_RENAME_OUT_TYPE          ,_param->_nb_inst_rename,_param->_size_type                  );
    67         DELETE1_SIGNAL(out_RENAME_OUT_OPERATION     ,_param->_nb_inst_rename,_param->_size_operation             );
     69#ifdef STATISTICS
     70        DELETE1_SIGNAL(out_RENAME_OUT_INSTRUCTION   ,_param->_nb_inst_rename,32);
     71#endif
     72        DELETE1_SIGNAL(out_RENAME_OUT_TYPE          ,_param->_nb_inst_rename,_param->_size_type                  );
     73        DELETE1_SIGNAL(out_RENAME_OUT_OPERATION     ,_param->_nb_inst_rename,_param->_size_operation             );
    6874        DELETE1_SIGNAL(out_RENAME_OUT_NO_EXECUTE    ,_param->_nb_inst_rename,1                                   );
    6975        DELETE1_SIGNAL(out_RENAME_OUT_LAST_EVENT    ,_param->_nb_inst_rename,1                                   );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_genMealy.cpp

    r123 r137  
    103103                    if (_param->_have_port_depth)
    104104                    PORT_WRITE(out_RENAME_OUT_DEPTH        [i],PORT_READ(in_RENAME_IN_DEPTH         [x][y]));
     105#ifdef STATISTICS
     106                    PORT_WRITE(out_RENAME_OUT_INSTRUCTION  [i],PORT_READ(in_RENAME_IN_INSTRUCTION   [x][y]));
     107#endif
    105108                    PORT_WRITE(out_RENAME_OUT_TYPE         [i],PORT_READ(in_RENAME_IN_TYPE          [x][y]));
    106109                    PORT_WRITE(out_RENAME_OUT_OPERATION    [i],PORT_READ(in_RENAME_IN_OPERATION     [x][y]));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/include/Rename_unit.h

    r123 r137  
    7474  public    : SC_IN (Tcontext_t        )  ***  in_RENAME_IN_CONTEXT_ID        ;//[nb_front_end][nb_inst_decod]
    7575  public    : SC_IN (Tdepth_t          )  ***  in_RENAME_IN_DEPTH             ;//[nb_front_end][nb_inst_decod]
     76#ifdef STATISTICS
     77  public    : SC_IN (uint32_t          )  ***  in_RENAME_IN_INSTRUCTION       ;//[nb_front_end][nb_inst_decod]
     78#endif
    7679  public    : SC_IN (Ttype_t           )  ***  in_RENAME_IN_TYPE              ;//[nb_front_end][nb_inst_decod]
    7780  public    : SC_IN (Toperation_t      )  ***  in_RENAME_IN_OPERATION         ;//[nb_front_end][nb_inst_decod]
     
    105108  public    : SC_OUT(Tcontext_t        )   ** out_INSERT_CONTEXT_ID           ;//[nb_inst_insert]
    106109  public    : SC_OUT(Tdepth_t          )   ** out_INSERT_DEPTH                ;//[nb_inst_insert]
     110#ifdef STATISTICS
     111  public    : SC_OUT(uint32_t          )   ** out_INSERT_INSTRUCTION          ;//[nb_inst_insert]
     112#endif
    107113  public    : SC_OUT(Ttype_t           )   ** out_INSERT_TYPE                 ;//[nb_inst_insert]
    108114  public    : SC_OUT(Toperation_t      )   ** out_INSERT_OPERATION            ;//[nb_inst_insert]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_allocation.cpp

    r123 r137  
    6565      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_CONTEXT_ID    ,"context_id"   ,Tcontext_t        ,_param->_size_context_id            , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    6666      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_DEPTH         ,"depth"        ,Tdepth_t          ,_param->_size_depth                 , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     67#ifdef STATISTICS
     68      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_INSTRUCTION   ,"instruction"  ,uint32_t          ,32                                  , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     69#endif
    6770      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_TYPE          ,"type"         ,Ttype_t           ,_param->_size_type                  , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
    6871      _ALLOC2_SIGNAL_IN ( in_RENAME_IN_OPERATION     ,"operation"    ,Toperation_t      ,_param->_size_operation             , _param->_nb_front_end, _param->_nb_inst_decod[it1]);
     
    102105      ALLOC1_SIGNAL_OUT(out_INSERT_CONTEXT_ID           ,"context_id"           ,Tcontext_t        ,_param->_size_context_id            );
    103106      ALLOC1_SIGNAL_OUT(out_INSERT_DEPTH                ,"depth"                ,Tdepth_t          ,_param->_size_depth                 );
     107#ifdef STATISTICS
     108      ALLOC1_SIGNAL_OUT(out_INSERT_INSTRUCTION          ,"instruction"          ,uint32_t          ,32);
     109#endif
    104110      ALLOC1_SIGNAL_OUT(out_INSERT_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type                  );
    105111      ALLOC1_SIGNAL_OUT(out_INSERT_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation             );
     
    333339            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_DEPTH"        ,
    334340                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_DEPTH"        );
     341#ifdef STATISTICS
     342            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_INSTRUCTION"  ,
     343                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_INSTRUCTION"  );
     344#endif
    335345            PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_TYPE"         ,
    336346                                dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_TYPE"         );
     
    395405          PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_DEPTH"       ,
    396406                              dest,"out_INSERT_"    +toString(i)+"_DEPTH"       );
     407#ifdef STATISTICS
     408          PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_INSTRUCTION" ,
     409                              dest,"out_INSERT_"    +toString(i)+"_INSTRUCTION" );
     410#endif
    397411#ifdef DEBUG
    398412          PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_ADDRESS"     ,
     
    552566          PORT_MAP(_component,src , "in_INSERT_"+toString(i)+"_ACK"               ,
    553567                              dest, "in_INSERT_"+toString(i)+"_ACK"               );
    554           if (_param->_have_port_front_end_id)
    555           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_FRONT_END_ID"      ,
    556                               dest,"out_INSERT_"+toString(i)+"_FRONT_END_ID"      );
    557           if (_param->_have_port_context_id)
    558           PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_CONTEXT_ID"        ,
    559                               dest,"out_INSERT_"+toString(i)+"_CONTEXT_ID"        );
     568//        if (_param->_have_port_front_end_id)
     569//        PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_FRONT_END_ID"      ,
     570//                            dest,"out_INSERT_"+toString(i)+"_FRONT_END_ID"      );
     571//        if (_param->_have_port_context_id)
     572//        PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_CONTEXT_ID"        ,
     573//                            dest,"out_INSERT_"+toString(i)+"_CONTEXT_ID"        );
    560574          PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_READ_RA"           ,
    561575                              dest,"out_INSERT_"+toString(i)+"_READ_RA"           );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_deallocation.cpp

    r123 r137  
    3333        DELETE2_SIGNAL( in_RENAME_IN_CONTEXT_ID        ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_context_id            );
    3434        DELETE2_SIGNAL( in_RENAME_IN_DEPTH             ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_depth                 );
     35#ifdef STATISTICS
     36        DELETE2_SIGNAL( in_RENAME_IN_INSTRUCTION       ,_param->_nb_front_end, _param->_nb_inst_decod[it1],32);
     37#endif
    3538        DELETE2_SIGNAL( in_RENAME_IN_TYPE              ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_type                  );
    3639        DELETE2_SIGNAL( in_RENAME_IN_OPERATION         ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_operation             );
     
    6366        DELETE1_SIGNAL(out_INSERT_CONTEXT_ID           ,_param->_nb_inst_insert,_param->_size_context_id            );
    6467        DELETE1_SIGNAL(out_INSERT_DEPTH                ,_param->_nb_inst_insert,_param->_size_depth                 );
     68#ifdef STATISTICS
     69        DELETE1_SIGNAL(out_INSERT_INSTRUCTION          ,_param->_nb_inst_insert,32);
     70#endif
    6571        DELETE1_SIGNAL(out_INSERT_TYPE                 ,_param->_nb_inst_insert,_param->_size_type                  );
    6672        DELETE1_SIGNAL(out_INSERT_OPERATION            ,_param->_nb_inst_insert,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/OOO_Engine.h

    r136 r137  
    7373  public    : SC_IN (Tcontext_t        )  ***  in_RENAME_CONTEXT_ID                ;//[nb_front_end][nb_inst_decod]
    7474  public    : SC_IN (Tdepth_t          )  ***  in_RENAME_DEPTH                     ;//[nb_front_end][nb_inst_decod]
     75#ifdef STATISTICS
     76  public    : SC_IN (uint32_t          )  ***  in_RENAME_INSTRUCTION               ;//[nb_front_end][nb_inst_decod]
     77#endif
    7578  public    : SC_IN (Ttype_t           )  ***  in_RENAME_TYPE                      ;//[nb_front_end][nb_inst_decod]
    7679  public    : SC_IN (Toperation_t      )  ***  in_RENAME_OPERATION                 ;//[nb_front_end][nb_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_allocation.cpp

    r136 r137  
    6262      _ALLOC2_SIGNAL_IN ( in_RENAME_CONTEXT_ID                ,"CONTEXT_ID"                ,Tcontext_t        ,_param->_size_context_id             ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    6363      _ALLOC2_SIGNAL_IN ( in_RENAME_DEPTH                     ,"DEPTH"                     ,Tdepth_t          ,_param->_size_depth                  ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     64#ifdef STATISTICS
     65      _ALLOC2_SIGNAL_IN ( in_RENAME_INSTRUCTION               ,"INSTRUCTION"               ,uint32_t          ,32                                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     66#endif
    6467      _ALLOC2_SIGNAL_IN ( in_RENAME_TYPE                      ,"TYPE"                      ,Ttype_t           ,_param->_size_type                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    6568      _ALLOC2_SIGNAL_IN ( in_RENAME_OPERATION                 ,"OPERATION"                 ,Toperation_t      ,_param->_size_operation              ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     
    441444                    PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_TYPE"         ,
    442445                                        dest, "in_RENAME_"   +toString(j)+"_"+toString(k)+"_TYPE"         );
     446#ifdef STATISTICS
     447                    PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_INSTRUCTION"  ,
     448                                        dest, "in_RENAME_"   +toString(j)+"_"+toString(k)+"_INSTRUCTION"  );
     449#endif
    443450                    PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_OPERATION"    ,
    444451                                        dest, "in_RENAME_"   +toString(j)+"_"+toString(k)+"_OPERATION"    );
     
    514521#endif
    515522
     523#ifdef STATISTICS
     524            COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_INSTRUCTION"   ,
     525                                     dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_INSTRUCTION"   );
     526#endif
    516527            if (_param->_have_port_depth)
    517528            COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_DEPTH"         ,
     
    798809            COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_"+toString(j)+            "_NUM_REG_RA_PHY"       ,
    799810                                     dest,"out_INSERT_"+toString(i)+"_"+toString(j)+"_COMMIT_UNIT_NUM_REG_RA_PHY"       );
     811#endif
    800812            COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_"+toString(j)+            "_READ_RB"              ,
    801813                                     dest,"out_INSERT_"+toString(i)+"_"+toString(j)+"_COMMIT_UNIT_READ_RB"              );
     814#ifdef DEBUG
    802815            COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_"+toString(j)+            "_NUM_REG_RB_PHY"       ,
    803816                                     dest,"out_INSERT_"+toString(i)+"_"+toString(j)+"_COMMIT_UNIT_NUM_REG_RB_PHY"       );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_deallocation.cpp

    r136 r137  
    3232        DELETE2_SIGNAL( in_RENAME_CONTEXT_ID                ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_context_id             );
    3333        DELETE2_SIGNAL( in_RENAME_DEPTH                     ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_depth                  );
     34#ifdef STATISTICS
     35        DELETE2_SIGNAL( in_RENAME_INSTRUCTION               ,_param->_nb_front_end,_param->_nb_inst_decod[it1],32);
     36#endif
    3437        DELETE2_SIGNAL( in_RENAME_TYPE                      ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_type                   );
    3538        DELETE2_SIGNAL( in_RENAME_OPERATION                 ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_operation              );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Core_allocation.cpp

    r136 r137  
    462462              COMPONENT_MAP(_component,src , "in_RENAME_"+toString(j)+"_"+toString(k)+"_DEPTH"        ,
    463463                                       dest,"out_DECOD_"                 +toString(k)+"_DEPTH"        );
     464#ifdef STATISTICS
     465              COMPONENT_MAP(_component,src , "in_RENAME_"+toString(j)+"_"+toString(k)+"_INSTRUCTION"  ,
     466                                       dest,"out_DECOD_"                 +toString(k)+"_INSTRUCTION"  );
     467#endif
    464468              COMPONENT_MAP(_component,src , "in_RENAME_"+toString(j)+"_"+toString(k)+"_TYPE"         ,
    465469                                       dest,"out_DECOD_"                 +toString(k)+"_TYPE"         );
Note: See TracChangeset for help on using the changeset viewer.