Ignore:
Timestamp:
Feb 2, 2008, 12:39:01 PM (17 years ago)
Author:
rosiere
Message:

Add new component : Read_unit (no tested)
Change functionnal_unit : now use type and operation to execute the good function
Change New_Component's script

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural
Files:
85 added
10 deleted
51 edited
21 copied
1 moved

Legend:

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

    r72 r76  
    5151  const uint32_t nb_type             = atoi(argv[x++]);
    5252
    53   execute_timing_t * timing = new execute_timing_t [MAX_OPERATION];
     53  execute_timing_t ** timing = new execute_timing_t * [MAX_TYPE];
    5454
    55   for (uint32_t i=0; i< MAX_OPERATION; i++)
    56     timing[i]._delay = timing[i]._latence = 1;
     55  for (uint32_t i=0; i< MAX_TYPE; i++)
     56    {
     57      timing [i]= new execute_timing_t [MAX_OPERATION];
     58     
     59      for (uint32_t j=0; j< MAX_OPERATION; j++)
     60        timing[i][j]._delay = timing[i][j]._latence = 1;
     61    }
    5762
    5863  try
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest/src/test.cpp

    r72 r76  
    280280  transaction_in.push_back(execute_transaction(_param,0,0,0, 23,OPERATION_ALU_L_XOR     ,TYPE_ALU,0,0xdeadbeef,0x0000ffff,0x00ff00ff,0              ,1,63,0x00ffff00,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    281281                                                                                       
    282   transaction_in.push_back(execute_transaction(_param,0,0,0, 24,OPERATION_ALU_L_CMOV    ,TYPE_ALU,0,0x0       ,0xdeadbeef,0x12345678,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    283   transaction_in.push_back(execute_transaction(_param,0,0,0, 25,OPERATION_ALU_L_CMOV    ,TYPE_ALU,0,0x0       ,0xdeadbeef,0x12345678,FLAG_F         ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    284                                                                                        
    285   transaction_in.push_back(execute_transaction(_param,0,0,0, 26,OPERATION_ALU_L_MOVHI   ,TYPE_ALU,1,0xdeadbeef,0x0       ,0x0       ,FLAG_F         ,1,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     282  transaction_in.push_back(execute_transaction(_param,0,0,0, 24,OPERATION_MOVE_L_CMOV    ,TYPE_MOVE,0,0x0       ,0xdeadbeef,0x12345678,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     283  transaction_in.push_back(execute_transaction(_param,0,0,0, 25,OPERATION_MOVE_L_CMOV    ,TYPE_MOVE,0,0x0       ,0xdeadbeef,0x12345678,FLAG_F         ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     284  transaction_in.push_back(execute_transaction(_param,0,0,0, 26,OPERATION_MOVE_L_MOVHI   ,TYPE_MOVE,1,0xdeadbeef,0x0       ,0x0       ,FLAG_F         ,1,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    286285                                                                                       
    287286                                                                                       
    288   transaction_in.push_back(execute_transaction(_param,0,0,0, 27,OPERATION_ALU_L_TEST_F  ,TYPE_ALU,1,0xdeadbeef,0x0       ,0x0       ,0              ,0,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0,0x00000000));
    289   transaction_in.push_back(execute_transaction(_param,0,0,0, 28,OPERATION_ALU_L_TEST_F  ,TYPE_ALU,1,0xdeadbeef,0x0       ,0x0       ,FLAG_F         ,0,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0xdeadbeef));
    290   transaction_in.push_back(execute_transaction(_param,0,0,0, 29,OPERATION_ALU_L_TEST_NF ,TYPE_ALU,1,0xdeadbeef,0x0       ,0x0       ,FLAG_F         ,0,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0,0x00000000));
    291   transaction_in.push_back(execute_transaction(_param,0,0,0, 30,OPERATION_ALU_L_TEST_NF ,TYPE_ALU,1,0xdeadbeef,0x0       ,0x0       ,0              ,0,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0xdeadbeef));
     287  transaction_in.push_back(execute_transaction(_param,0,0,0, 27,OPERATION_BRANCH_L_TEST_F  ,TYPE_BRANCH,1,0xdeadbeef,0x0       ,0x0       ,0              ,0,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0,0x00000000));
     288  transaction_in.push_back(execute_transaction(_param,0,0,0, 28,OPERATION_BRANCH_L_TEST_F  ,TYPE_BRANCH,1,0xdeadbeef,0x0       ,0x0       ,FLAG_F         ,0,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0xdeadbeef));
     289  transaction_in.push_back(execute_transaction(_param,0,0,0, 29,OPERATION_BRANCH_L_TEST_NF ,TYPE_BRANCH,1,0xdeadbeef,0x0       ,0x0       ,FLAG_F         ,0,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0,0x00000000));
     290  transaction_in.push_back(execute_transaction(_param,0,0,0, 30,OPERATION_BRANCH_L_TEST_NF ,TYPE_BRANCH,1,0xdeadbeef,0x0       ,0x0       ,0              ,0,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0xdeadbeef));
    292291                                                                                       
    293292                                                                                       
    294   transaction_in.push_back(execute_transaction(_param,0,0,0, 31,OPERATION_ALU_L_JALR    ,TYPE_ALU,0,0xdeadbeef,0x0       ,0x12345678,0              ,0,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0x12345678)); // jr
    295   transaction_in.push_back(execute_transaction(_param,0,0,0, 32,OPERATION_ALU_L_JALR    ,TYPE_ALU,1,0xdeadbeef,0x0       ,0x12345678,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0x12345678)); // jal
    296   transaction_in.push_back(execute_transaction(_param,0,0,0, 33,OPERATION_ALU_L_JALR    ,TYPE_ALU,1,0xdeadbeef,0x0       ,0x12345678,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0x12345678)); // jalr
     293  transaction_in.push_back(execute_transaction(_param,0,0,0, 31,OPERATION_BRANCH_L_JALR    ,TYPE_BRANCH,0,0xdeadbeef,0x0       ,0x12345678,0              ,0,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0x12345678)); // jr
     294  transaction_in.push_back(execute_transaction(_param,0,0,0, 32,OPERATION_BRANCH_L_JALR    ,TYPE_BRANCH,1,0xdeadbeef,0x0       ,0x12345678,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0x12345678)); // jal
     295  transaction_in.push_back(execute_transaction(_param,0,0,0, 33,OPERATION_BRANCH_L_JALR    ,TYPE_BRANCH,1,0xdeadbeef,0x0       ,0x12345678,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,1,0x12345678)); // jalr
    297296                                                             
    298   transaction_in.push_back(execute_transaction(_param,0,0,0, 34,OPERATION_ALU_L_EXTEND_S,TYPE_ALU,1,8         ,0x12345678,0x0       ,0              ,1,63,0x00000078,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    299   transaction_in.push_back(execute_transaction(_param,0,0,0, 35,OPERATION_ALU_L_EXTEND_S,TYPE_ALU,1,16        ,0x12345678,0x0       ,0              ,1,63,0x00005678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    300   transaction_in.push_back(execute_transaction(_param,0,0,0, 36,OPERATION_ALU_L_EXTEND_S,TYPE_ALU,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    301   transaction_in.push_back(execute_transaction(_param,0,0,0, 34,OPERATION_ALU_L_EXTEND_S,TYPE_ALU,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xffffffef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    302   transaction_in.push_back(execute_transaction(_param,0,0,0, 35,OPERATION_ALU_L_EXTEND_S,TYPE_ALU,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xffffbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    303   transaction_in.push_back(execute_transaction(_param,0,0,0, 36,OPERATION_ALU_L_EXTEND_S,TYPE_ALU,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     297  transaction_in.push_back(execute_transaction(_param,0,0,0, 34,OPERATION_EXTEND_L_EXTEND_S,TYPE_EXTEND,1,8         ,0x12345678,0x0       ,0              ,1,63,0x00000078,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     298  transaction_in.push_back(execute_transaction(_param,0,0,0, 35,OPERATION_EXTEND_L_EXTEND_S,TYPE_EXTEND,1,16        ,0x12345678,0x0       ,0              ,1,63,0x00005678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     299  transaction_in.push_back(execute_transaction(_param,0,0,0, 36,OPERATION_EXTEND_L_EXTEND_S,TYPE_EXTEND,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     300  transaction_in.push_back(execute_transaction(_param,0,0,0, 34,OPERATION_EXTEND_L_EXTEND_S,TYPE_EXTEND,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xffffffef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     301  transaction_in.push_back(execute_transaction(_param,0,0,0, 35,OPERATION_EXTEND_L_EXTEND_S,TYPE_EXTEND,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xffffbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     302  transaction_in.push_back(execute_transaction(_param,0,0,0, 36,OPERATION_EXTEND_L_EXTEND_S,TYPE_EXTEND,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    304303                                                             
    305   transaction_in.push_back(execute_transaction(_param,0,0,0, 37,OPERATION_ALU_L_EXTEND_Z,TYPE_ALU,1,8         ,0x12345678,0x0       ,0              ,1,63,0x00000078,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    306   transaction_in.push_back(execute_transaction(_param,0,0,0, 38,OPERATION_ALU_L_EXTEND_Z,TYPE_ALU,1,16        ,0x12345678,0x0       ,0              ,1,63,0x00005678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    307   transaction_in.push_back(execute_transaction(_param,0,0,0, 39,OPERATION_ALU_L_EXTEND_Z,TYPE_ALU,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    308   transaction_in.push_back(execute_transaction(_param,0,0,0, 40,OPERATION_ALU_L_EXTEND_Z,TYPE_ALU,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0x000000ef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    309   transaction_in.push_back(execute_transaction(_param,0,0,0, 41,OPERATION_ALU_L_EXTEND_Z,TYPE_ALU,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0x0000beef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    310   transaction_in.push_back(execute_transaction(_param,0,0,0, 42,OPERATION_ALU_L_EXTEND_Z,TYPE_ALU,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     304  transaction_in.push_back(execute_transaction(_param,0,0,0, 37,OPERATION_EXTEND_L_EXTEND_Z,TYPE_EXTEND,1,8         ,0x12345678,0x0       ,0              ,1,63,0x00000078,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     305  transaction_in.push_back(execute_transaction(_param,0,0,0, 38,OPERATION_EXTEND_L_EXTEND_Z,TYPE_EXTEND,1,16        ,0x12345678,0x0       ,0              ,1,63,0x00005678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     306  transaction_in.push_back(execute_transaction(_param,0,0,0, 39,OPERATION_EXTEND_L_EXTEND_Z,TYPE_EXTEND,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     307  transaction_in.push_back(execute_transaction(_param,0,0,0, 40,OPERATION_EXTEND_L_EXTEND_Z,TYPE_EXTEND,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0x000000ef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     308  transaction_in.push_back(execute_transaction(_param,0,0,0, 41,OPERATION_EXTEND_L_EXTEND_Z,TYPE_EXTEND,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0x0000beef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     309  transaction_in.push_back(execute_transaction(_param,0,0,0, 42,OPERATION_EXTEND_L_EXTEND_Z,TYPE_EXTEND,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    311310                                                             
    312   transaction_in.push_back(execute_transaction(_param,0,0,0, 43,OPERATION_ALU_L_SLL     ,TYPE_ALU,1,0         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    313   transaction_in.push_back(execute_transaction(_param,0,0,0, 44,OPERATION_ALU_L_SLL     ,TYPE_ALU,1,4         ,0xdeadbeef,0x0       ,0              ,1,63,0xeadbeef0,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    314   transaction_in.push_back(execute_transaction(_param,0,0,0, 45,OPERATION_ALU_L_SLL     ,TYPE_ALU,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xadbeef00,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    315   transaction_in.push_back(execute_transaction(_param,0,0,0, 46,OPERATION_ALU_L_SLL     ,TYPE_ALU,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    316   transaction_in.push_back(execute_transaction(_param,0,0,0, 47,OPERATION_ALU_L_SLL     ,TYPE_ALU,1,24        ,0xdeadbeef,0x0       ,0              ,1,63,0xef000000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    317   transaction_in.push_back(execute_transaction(_param,0,0,0, 48,OPERATION_ALU_L_SLL     ,TYPE_ALU,1,31        ,0xdeadbeef,0x0       ,0              ,1,63,0x80000000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    318   transaction_in.push_back(execute_transaction(_param,0,0,0, 49,OPERATION_ALU_L_SLL     ,TYPE_ALU,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     311  transaction_in.push_back(execute_transaction(_param,0,0,0, 43,OPERATION_SHIFT_L_SLL     ,TYPE_SHIFT,1,0         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     312  transaction_in.push_back(execute_transaction(_param,0,0,0, 44,OPERATION_SHIFT_L_SLL     ,TYPE_SHIFT,1,4         ,0xdeadbeef,0x0       ,0              ,1,63,0xeadbeef0,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     313  transaction_in.push_back(execute_transaction(_param,0,0,0, 45,OPERATION_SHIFT_L_SLL     ,TYPE_SHIFT,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xadbeef00,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     314  transaction_in.push_back(execute_transaction(_param,0,0,0, 46,OPERATION_SHIFT_L_SLL     ,TYPE_SHIFT,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xbeef0000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     315  transaction_in.push_back(execute_transaction(_param,0,0,0, 47,OPERATION_SHIFT_L_SLL     ,TYPE_SHIFT,1,24        ,0xdeadbeef,0x0       ,0              ,1,63,0xef000000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     316  transaction_in.push_back(execute_transaction(_param,0,0,0, 48,OPERATION_SHIFT_L_SLL     ,TYPE_SHIFT,1,31        ,0xdeadbeef,0x0       ,0              ,1,63,0x80000000,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     317  transaction_in.push_back(execute_transaction(_param,0,0,0, 49,OPERATION_SHIFT_L_SLL     ,TYPE_SHIFT,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     318  transaction_in.push_back(execute_transaction(_param,0,0,0, 50,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,0         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     319  transaction_in.push_back(execute_transaction(_param,0,0,0, 51,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,4         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbee ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     320  transaction_in.push_back(execute_transaction(_param,0,0,0, 52,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbe  ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     321  transaction_in.push_back(execute_transaction(_param,0,0,0, 53,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xdead    ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     322  transaction_in.push_back(execute_transaction(_param,0,0,0, 54,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,24        ,0xdeadbeef,0x0       ,0              ,1,63,0xde      ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     323  transaction_in.push_back(execute_transaction(_param,0,0,0, 55,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,31        ,0xdeadbeef,0x0       ,0              ,1,63,0x1       ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     324  transaction_in.push_back(execute_transaction(_param,0,0,0, 56,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     325  transaction_in.push_back(execute_transaction(_param,0,0,0, 57,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,0         ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     326  transaction_in.push_back(execute_transaction(_param,0,0,0, 58,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,4         ,0x12345678,0x0       ,0              ,1,63,0x1234567 ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     327  transaction_in.push_back(execute_transaction(_param,0,0,0, 59,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,8         ,0x12345678,0x0       ,0              ,1,63,0x123456  ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     328  transaction_in.push_back(execute_transaction(_param,0,0,0, 60,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,16        ,0x12345678,0x0       ,0              ,1,63,0x1234    ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     329  transaction_in.push_back(execute_transaction(_param,0,0,0, 61,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,24        ,0x12345678,0x0       ,0              ,1,63,0x12      ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     330  transaction_in.push_back(execute_transaction(_param,0,0,0, 62,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,31        ,0x12345678,0x0       ,0              ,1,63,0x0       ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     331  transaction_in.push_back(execute_transaction(_param,0,0,0, 63,OPERATION_SHIFT_L_SRL     ,TYPE_SHIFT,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     332  transaction_in.push_back(execute_transaction(_param,0,0,0, 64,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,0         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     333  transaction_in.push_back(execute_transaction(_param,0,0,0, 65,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,4         ,0xdeadbeef,0x0       ,0              ,1,63,0xfdeadbee,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     334  transaction_in.push_back(execute_transaction(_param,0,0,0, 66,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xffdeadbe,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     335  transaction_in.push_back(execute_transaction(_param,0,0,0, 67,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xffffdead,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     336  transaction_in.push_back(execute_transaction(_param,0,0,0, 68,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,24        ,0xdeadbeef,0x0       ,0              ,1,63,0xffffffde,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     337  transaction_in.push_back(execute_transaction(_param,0,0,0, 69,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,31        ,0xdeadbeef,0x0       ,0              ,1,63,0xffffffff,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     338  transaction_in.push_back(execute_transaction(_param,0,0,0, 70,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     339  transaction_in.push_back(execute_transaction(_param,0,0,0, 71,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,0         ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     340  transaction_in.push_back(execute_transaction(_param,0,0,0, 72,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,4         ,0x12345678,0x0       ,0              ,1,63,0x1234567 ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     341  transaction_in.push_back(execute_transaction(_param,0,0,0, 73,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,8         ,0x12345678,0x0       ,0              ,1,63,0x123456  ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     342  transaction_in.push_back(execute_transaction(_param,0,0,0, 74,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,16        ,0x12345678,0x0       ,0              ,1,63,0x1234    ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     343  transaction_in.push_back(execute_transaction(_param,0,0,0, 75,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,24        ,0x12345678,0x0       ,0              ,1,63,0x12      ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     344  transaction_in.push_back(execute_transaction(_param,0,0,0, 76,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,31        ,0x12345678,0x0       ,0              ,1,63,0x0       ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     345  transaction_in.push_back(execute_transaction(_param,0,0,0, 77,OPERATION_SHIFT_L_SRA     ,TYPE_SHIFT,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     346  transaction_in.push_back(execute_transaction(_param,0,0,0, 78,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,0         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     347  transaction_in.push_back(execute_transaction(_param,0,0,0, 79,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,4         ,0xdeadbeef,0x0       ,0              ,1,63,0xfdeadbee,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     348  transaction_in.push_back(execute_transaction(_param,0,0,0, 80,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xefdeadbe,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     349  transaction_in.push_back(execute_transaction(_param,0,0,0, 81,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xbeefdead,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     350  transaction_in.push_back(execute_transaction(_param,0,0,0, 82,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,24        ,0xdeadbeef,0x0       ,0              ,1,63,0xadbeefde,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     351  transaction_in.push_back(execute_transaction(_param,0,0,0, 83,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     352  transaction_in.push_back(execute_transaction(_param,0,0,0, 84,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,0         ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     353  transaction_in.push_back(execute_transaction(_param,0,0,0, 85,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,4         ,0x12345678,0x0       ,0              ,1,63,0x81234567,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     354  transaction_in.push_back(execute_transaction(_param,0,0,0, 86,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,8         ,0x12345678,0x0       ,0              ,1,63,0x78123456,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     355  transaction_in.push_back(execute_transaction(_param,0,0,0, 87,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,16        ,0x12345678,0x0       ,0              ,1,63,0x56781234,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     356  transaction_in.push_back(execute_transaction(_param,0,0,0, 88,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,24        ,0x12345678,0x0       ,0              ,1,63,0x34567812,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     357  transaction_in.push_back(execute_transaction(_param,0,0,0, 89,OPERATION_SHIFT_L_ROR     ,TYPE_SHIFT,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    319358                                                             
    320   transaction_in.push_back(execute_transaction(_param,0,0,0, 50,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,0         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    321   transaction_in.push_back(execute_transaction(_param,0,0,0, 51,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,4         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbee ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    322   transaction_in.push_back(execute_transaction(_param,0,0,0, 52,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbe  ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    323   transaction_in.push_back(execute_transaction(_param,0,0,0, 53,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xdead    ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    324   transaction_in.push_back(execute_transaction(_param,0,0,0, 54,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,24        ,0xdeadbeef,0x0       ,0              ,1,63,0xde      ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    325   transaction_in.push_back(execute_transaction(_param,0,0,0, 55,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,31        ,0xdeadbeef,0x0       ,0              ,1,63,0x1       ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    326   transaction_in.push_back(execute_transaction(_param,0,0,0, 56,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    327                                                              
    328   transaction_in.push_back(execute_transaction(_param,0,0,0, 57,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,0         ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    329   transaction_in.push_back(execute_transaction(_param,0,0,0, 58,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,4         ,0x12345678,0x0       ,0              ,1,63,0x1234567 ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    330   transaction_in.push_back(execute_transaction(_param,0,0,0, 59,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,8         ,0x12345678,0x0       ,0              ,1,63,0x123456  ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    331   transaction_in.push_back(execute_transaction(_param,0,0,0, 60,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,16        ,0x12345678,0x0       ,0              ,1,63,0x1234    ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    332   transaction_in.push_back(execute_transaction(_param,0,0,0, 61,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,24        ,0x12345678,0x0       ,0              ,1,63,0x12      ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    333   transaction_in.push_back(execute_transaction(_param,0,0,0, 62,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,31        ,0x12345678,0x0       ,0              ,1,63,0x0       ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    334   transaction_in.push_back(execute_transaction(_param,0,0,0, 63,OPERATION_ALU_L_SRL     ,TYPE_ALU,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    335                                                              
    336   transaction_in.push_back(execute_transaction(_param,0,0,0, 64,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,0         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    337   transaction_in.push_back(execute_transaction(_param,0,0,0, 65,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,4         ,0xdeadbeef,0x0       ,0              ,1,63,0xfdeadbee,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    338   transaction_in.push_back(execute_transaction(_param,0,0,0, 66,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xffdeadbe,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    339   transaction_in.push_back(execute_transaction(_param,0,0,0, 67,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xffffdead,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    340   transaction_in.push_back(execute_transaction(_param,0,0,0, 68,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,24        ,0xdeadbeef,0x0       ,0              ,1,63,0xffffffde,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    341   transaction_in.push_back(execute_transaction(_param,0,0,0, 69,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,31        ,0xdeadbeef,0x0       ,0              ,1,63,0xffffffff,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    342   transaction_in.push_back(execute_transaction(_param,0,0,0, 70,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    343                                                              
    344   transaction_in.push_back(execute_transaction(_param,0,0,0, 71,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,0         ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    345   transaction_in.push_back(execute_transaction(_param,0,0,0, 72,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,4         ,0x12345678,0x0       ,0              ,1,63,0x1234567 ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    346   transaction_in.push_back(execute_transaction(_param,0,0,0, 73,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,8         ,0x12345678,0x0       ,0              ,1,63,0x123456  ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    347   transaction_in.push_back(execute_transaction(_param,0,0,0, 74,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,16        ,0x12345678,0x0       ,0              ,1,63,0x1234    ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    348   transaction_in.push_back(execute_transaction(_param,0,0,0, 75,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,24        ,0x12345678,0x0       ,0              ,1,63,0x12      ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    349   transaction_in.push_back(execute_transaction(_param,0,0,0, 76,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,31        ,0x12345678,0x0       ,0              ,1,63,0x0       ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    350   transaction_in.push_back(execute_transaction(_param,0,0,0, 77,OPERATION_ALU_L_SRA     ,TYPE_ALU,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    351                                                              
    352   transaction_in.push_back(execute_transaction(_param,0,0,0, 78,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,0         ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    353   transaction_in.push_back(execute_transaction(_param,0,0,0, 79,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,4         ,0xdeadbeef,0x0       ,0              ,1,63,0xfdeadbee,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    354   transaction_in.push_back(execute_transaction(_param,0,0,0, 80,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,8         ,0xdeadbeef,0x0       ,0              ,1,63,0xefdeadbe,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    355   transaction_in.push_back(execute_transaction(_param,0,0,0, 81,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,16        ,0xdeadbeef,0x0       ,0              ,1,63,0xbeefdead,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    356   transaction_in.push_back(execute_transaction(_param,0,0,0, 82,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,24        ,0xdeadbeef,0x0       ,0              ,1,63,0xadbeefde,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    357   transaction_in.push_back(execute_transaction(_param,0,0,0, 83,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,32        ,0xdeadbeef,0x0       ,0              ,1,63,0xdeadbeef,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    358                                                              
    359   transaction_in.push_back(execute_transaction(_param,0,0,0, 84,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,0         ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    360   transaction_in.push_back(execute_transaction(_param,0,0,0, 85,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,4         ,0x12345678,0x0       ,0              ,1,63,0x81234567,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    361   transaction_in.push_back(execute_transaction(_param,0,0,0, 86,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,8         ,0x12345678,0x0       ,0              ,1,63,0x78123456,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    362   transaction_in.push_back(execute_transaction(_param,0,0,0, 87,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,16        ,0x12345678,0x0       ,0              ,1,63,0x56781234,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    363   transaction_in.push_back(execute_transaction(_param,0,0,0, 88,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,24        ,0x12345678,0x0       ,0              ,1,63,0x34567812,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    364   transaction_in.push_back(execute_transaction(_param,0,0,0, 89,OPERATION_ALU_L_ROR     ,TYPE_ALU,1,32        ,0x12345678,0x0       ,0              ,1,63,0x12345678,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    365                                                              
    366   transaction_in.push_back(execute_transaction(_param,0,0,0, 90,OPERATION_ALU_L_FF1     ,TYPE_ALU,0,0         ,0x12345678,0x0       ,0              ,1,63,4         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    367   transaction_in.push_back(execute_transaction(_param,0,0,0, 91,OPERATION_ALU_L_FF1     ,TYPE_ALU,0,0         ,0x0       ,0x0       ,0              ,1,63,0          ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    368   transaction_in.push_back(execute_transaction(_param,0,0,0, 92,OPERATION_ALU_L_FF1     ,TYPE_ALU,0,0         ,0x43210000,0x0       ,0              ,1,63,17         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    369   transaction_in.push_back(execute_transaction(_param,0,0,0, 93,OPERATION_ALU_L_FF1     ,TYPE_ALU,0,0         ,0x80000000,0x0       ,0              ,1,63,32         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    370   transaction_in.push_back(execute_transaction(_param,0,0,0, 94,OPERATION_ALU_L_FF1     ,TYPE_ALU,0,0         ,0x1       ,0x0       ,0              ,1,63,1          ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    371                                                              
    372   transaction_in.push_back(execute_transaction(_param,0,0,0, 95,OPERATION_ALU_L_FL1     ,TYPE_ALU,0,0         ,0x12345678,0x0       ,0              ,1,63,29        ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    373   transaction_in.push_back(execute_transaction(_param,0,0,0, 96,OPERATION_ALU_L_FL1     ,TYPE_ALU,0,0         ,0x0       ,0x0       ,0              ,1,63,0          ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    374   transaction_in.push_back(execute_transaction(_param,0,0,0, 97,OPERATION_ALU_L_FL1     ,TYPE_ALU,0,0         ,0x00018765,0x0       ,0              ,1,63,17         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    375   transaction_in.push_back(execute_transaction(_param,0,0,0, 98,OPERATION_ALU_L_FL1     ,TYPE_ALU,0,0         ,0x1       ,0x0       ,0              ,1,63,1          ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    376   transaction_in.push_back(execute_transaction(_param,0,0,0, 99,OPERATION_ALU_L_FL1     ,TYPE_ALU,0,0         ,0x80000000,0x0       ,0              ,1,63,32         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     359  transaction_in.push_back(execute_transaction(_param,0,0,0, 90,OPERATION_FIND_L_FF1     ,TYPE_FIND,0,0         ,0x12345678,0x0       ,0              ,1,63,4         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     360  transaction_in.push_back(execute_transaction(_param,0,0,0, 91,OPERATION_FIND_L_FF1     ,TYPE_FIND,0,0         ,0x0       ,0x0       ,0              ,1,63,0          ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     361  transaction_in.push_back(execute_transaction(_param,0,0,0, 92,OPERATION_FIND_L_FF1     ,TYPE_FIND,0,0         ,0x43210000,0x0       ,0              ,1,63,17         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     362  transaction_in.push_back(execute_transaction(_param,0,0,0, 93,OPERATION_FIND_L_FF1     ,TYPE_FIND,0,0         ,0x80000000,0x0       ,0              ,1,63,32         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     363  transaction_in.push_back(execute_transaction(_param,0,0,0, 94,OPERATION_FIND_L_FF1     ,TYPE_FIND,0,0         ,0x1       ,0x0       ,0              ,1,63,1          ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     364  transaction_in.push_back(execute_transaction(_param,0,0,0, 95,OPERATION_FIND_L_FL1     ,TYPE_FIND,0,0         ,0x12345678,0x0       ,0              ,1,63,29        ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     365  transaction_in.push_back(execute_transaction(_param,0,0,0, 96,OPERATION_FIND_L_FL1     ,TYPE_FIND,0,0         ,0x0       ,0x0       ,0              ,1,63,0          ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     366  transaction_in.push_back(execute_transaction(_param,0,0,0, 97,OPERATION_FIND_L_FL1     ,TYPE_FIND,0,0         ,0x00018765,0x0       ,0              ,1,63,17         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     367  transaction_in.push_back(execute_transaction(_param,0,0,0, 98,OPERATION_FIND_L_FL1     ,TYPE_FIND,0,0         ,0x1       ,0x0       ,0              ,1,63,1          ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
     368  transaction_in.push_back(execute_transaction(_param,0,0,0, 99,OPERATION_FIND_L_FL1     ,TYPE_FIND,0,0         ,0x80000000,0x0       ,0              ,1,63,32         ,0,15,FLAG_CY        ,EXCEPTION_NONE     ,0));
    377369
    378370//   transaction_in.push_back(execute_transaction(_param,0,0,0,100,OPERATION_ALU_L_SUB     ,TYPE_ALU,0,0         ,0x12344321,0x1       ,0              ,1,63,0x12344320,1,15,0              ,EXCEPTION_NONE     ,0));
     
    384376//   transaction_in.push_back(execute_transaction(_param,0,0,0,106,OPERATION_ALU_L_SUB     ,TYPE_ALU,0,0         ,0x00000001,0x7fffffff,FLAG_CY|FLAG_OV,1,1 ,0x80000000,1,0 ,        FLAG_OV,EXCEPTION_ALU_RANGE,0));
    385377
    386   transaction_in.push_back(execute_transaction(_param,0,0,0,120,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
    387   transaction_in.push_back(execute_transaction(_param,0,0,0,121,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
    388   transaction_in.push_back(execute_transaction(_param,0,0,0,122,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
    389   transaction_in.push_back(execute_transaction(_param,0,0,0,123,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
    390   transaction_in.push_back(execute_transaction(_param,0,0,0,124,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
    391   transaction_in.push_back(execute_transaction(_param,0,0,0,125,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
    392   transaction_in.push_back(execute_transaction(_param,0,0,0,126,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    393   transaction_in.push_back(execute_transaction(_param,0,0,0,127,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    394   transaction_in.push_back(execute_transaction(_param,0,0,0,128,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    395   transaction_in.push_back(execute_transaction(_param,0,0,0,129,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    396   transaction_in.push_back(execute_transaction(_param,0,0,0,130,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    397   transaction_in.push_back(execute_transaction(_param,0,0,0,131,OPERATION_ALU_L_SFEQ    ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    398 
    399 
    400   transaction_in.push_back(execute_transaction(_param,0,0,0,140,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
    401   transaction_in.push_back(execute_transaction(_param,0,0,0,141,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
    402   transaction_in.push_back(execute_transaction(_param,0,0,0,142,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
    403   transaction_in.push_back(execute_transaction(_param,0,0,0,143,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
    404   transaction_in.push_back(execute_transaction(_param,0,0,0,144,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
    405   transaction_in.push_back(execute_transaction(_param,0,0,0,145,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
    406   transaction_in.push_back(execute_transaction(_param,0,0,0,146,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    407   transaction_in.push_back(execute_transaction(_param,0,0,0,147,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    408   transaction_in.push_back(execute_transaction(_param,0,0,0,148,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    409   transaction_in.push_back(execute_transaction(_param,0,0,0,149,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    410   transaction_in.push_back(execute_transaction(_param,0,0,0,150,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    411   transaction_in.push_back(execute_transaction(_param,0,0,0,151,OPERATION_ALU_L_SFNE    ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    412 
    413   transaction_in.push_back(execute_transaction(_param,0,0,0,150,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
    414   transaction_in.push_back(execute_transaction(_param,0,0,0,151,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
    415   transaction_in.push_back(execute_transaction(_param,0,0,0,152,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
    416   transaction_in.push_back(execute_transaction(_param,0,0,0,153,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
    417   transaction_in.push_back(execute_transaction(_param,0,0,0,154,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
    418   transaction_in.push_back(execute_transaction(_param,0,0,0,155,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
    419   transaction_in.push_back(execute_transaction(_param,0,0,0,156,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    420   transaction_in.push_back(execute_transaction(_param,0,0,0,157,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    421   transaction_in.push_back(execute_transaction(_param,0,0,0,158,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    422   transaction_in.push_back(execute_transaction(_param,0,0,0,159,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    423   transaction_in.push_back(execute_transaction(_param,0,0,0,160,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    424   transaction_in.push_back(execute_transaction(_param,0,0,0,161,OPERATION_ALU_L_SFGEU   ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    425 
    426   transaction_in.push_back(execute_transaction(_param,0,0,0,170,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
    427   transaction_in.push_back(execute_transaction(_param,0,0,0,171,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
    428   transaction_in.push_back(execute_transaction(_param,0,0,0,172,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
    429   transaction_in.push_back(execute_transaction(_param,0,0,0,173,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
    430   transaction_in.push_back(execute_transaction(_param,0,0,0,174,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
    431   transaction_in.push_back(execute_transaction(_param,0,0,0,175,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
    432   transaction_in.push_back(execute_transaction(_param,0,0,0,176,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    433   transaction_in.push_back(execute_transaction(_param,0,0,0,177,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    434   transaction_in.push_back(execute_transaction(_param,0,0,0,178,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    435   transaction_in.push_back(execute_transaction(_param,0,0,0,179,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    436   transaction_in.push_back(execute_transaction(_param,0,0,0,180,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    437   transaction_in.push_back(execute_transaction(_param,0,0,0,181,OPERATION_ALU_L_SFGTU   ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    438 
    439   transaction_in.push_back(execute_transaction(_param,0,0,0,190,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
    440   transaction_in.push_back(execute_transaction(_param,0,0,0,191,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
    441   transaction_in.push_back(execute_transaction(_param,0,0,0,192,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
    442   transaction_in.push_back(execute_transaction(_param,0,0,0,193,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
    443   transaction_in.push_back(execute_transaction(_param,0,0,0,194,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
    444   transaction_in.push_back(execute_transaction(_param,0,0,0,195,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
    445   transaction_in.push_back(execute_transaction(_param,0,0,0,196,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    446   transaction_in.push_back(execute_transaction(_param,0,0,0,197,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    447   transaction_in.push_back(execute_transaction(_param,0,0,0,198,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    448   transaction_in.push_back(execute_transaction(_param,0,0,0,199,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    449   transaction_in.push_back(execute_transaction(_param,0,0,0,200,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    450   transaction_in.push_back(execute_transaction(_param,0,0,0,201,OPERATION_ALU_L_SFLEU   ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    451 
    452   transaction_in.push_back(execute_transaction(_param,0,0,0,210,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
    453   transaction_in.push_back(execute_transaction(_param,0,0,0,211,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
    454   transaction_in.push_back(execute_transaction(_param,0,0,0,212,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
    455   transaction_in.push_back(execute_transaction(_param,0,0,0,213,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
    456   transaction_in.push_back(execute_transaction(_param,0,0,0,214,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
    457   transaction_in.push_back(execute_transaction(_param,0,0,0,215,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
    458   transaction_in.push_back(execute_transaction(_param,0,0,0,216,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    459   transaction_in.push_back(execute_transaction(_param,0,0,0,217,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    460   transaction_in.push_back(execute_transaction(_param,0,0,0,218,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    461   transaction_in.push_back(execute_transaction(_param,0,0,0,219,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    462   transaction_in.push_back(execute_transaction(_param,0,0,0,220,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    463   transaction_in.push_back(execute_transaction(_param,0,0,0,221,OPERATION_ALU_L_SFLTU   ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    464 
    465   transaction_in.push_back(execute_transaction(_param,0,0,0,230,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
    466   transaction_in.push_back(execute_transaction(_param,0,0,0,231,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
    467   transaction_in.push_back(execute_transaction(_param,0,0,0,232,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
    468   transaction_in.push_back(execute_transaction(_param,0,0,0,233,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
    469   transaction_in.push_back(execute_transaction(_param,0,0,0,234,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
    470   transaction_in.push_back(execute_transaction(_param,0,0,0,235,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
    471   transaction_in.push_back(execute_transaction(_param,0,0,0,236,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    472   transaction_in.push_back(execute_transaction(_param,0,0,0,237,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    473   transaction_in.push_back(execute_transaction(_param,0,0,0,238,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    474   transaction_in.push_back(execute_transaction(_param,0,0,0,239,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    475   transaction_in.push_back(execute_transaction(_param,0,0,0,240,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    476   transaction_in.push_back(execute_transaction(_param,0,0,0,241,OPERATION_ALU_L_SFGES   ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    477 
    478   transaction_in.push_back(execute_transaction(_param,0,0,0,250,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
    479   transaction_in.push_back(execute_transaction(_param,0,0,0,251,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
    480   transaction_in.push_back(execute_transaction(_param,0,0,0,252,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
    481   transaction_in.push_back(execute_transaction(_param,0,0,0,253,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
    482   transaction_in.push_back(execute_transaction(_param,0,0,0,254,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
    483   transaction_in.push_back(execute_transaction(_param,0,0,0,255,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
    484   transaction_in.push_back(execute_transaction(_param,0,0,0,256,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    485   transaction_in.push_back(execute_transaction(_param,0,0,0,257,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    486   transaction_in.push_back(execute_transaction(_param,0,0,0,258,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    487   transaction_in.push_back(execute_transaction(_param,0,0,0,259,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    488   transaction_in.push_back(execute_transaction(_param,0,0,0,260,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    489   transaction_in.push_back(execute_transaction(_param,0,0,0,261,OPERATION_ALU_L_SFGTS   ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    490 
    491   transaction_in.push_back(execute_transaction(_param,0,0,0,270,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
    492   transaction_in.push_back(execute_transaction(_param,0,0,0,271,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
    493   transaction_in.push_back(execute_transaction(_param,0,0,0,272,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
    494   transaction_in.push_back(execute_transaction(_param,0,0,0,273,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
    495   transaction_in.push_back(execute_transaction(_param,0,0,0,274,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
    496   transaction_in.push_back(execute_transaction(_param,0,0,0,275,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
    497   transaction_in.push_back(execute_transaction(_param,0,0,0,276,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    498   transaction_in.push_back(execute_transaction(_param,0,0,0,277,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    499   transaction_in.push_back(execute_transaction(_param,0,0,0,278,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    500   transaction_in.push_back(execute_transaction(_param,0,0,0,279,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    501   transaction_in.push_back(execute_transaction(_param,0,0,0,280,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    502   transaction_in.push_back(execute_transaction(_param,0,0,0,281,OPERATION_ALU_L_SFLES   ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    503 
    504   transaction_in.push_back(execute_transaction(_param,0,0,0,290,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
    505   transaction_in.push_back(execute_transaction(_param,0,0,0,291,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
    506   transaction_in.push_back(execute_transaction(_param,0,0,0,292,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
    507   transaction_in.push_back(execute_transaction(_param,0,0,0,293,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
    508   transaction_in.push_back(execute_transaction(_param,0,0,0,294,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
    509   transaction_in.push_back(execute_transaction(_param,0,0,0,295,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
    510   transaction_in.push_back(execute_transaction(_param,0,0,0,296,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
    511   transaction_in.push_back(execute_transaction(_param,0,0,0,297,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
    512   transaction_in.push_back(execute_transaction(_param,0,0,0,298,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
    513   transaction_in.push_back(execute_transaction(_param,0,0,0,299,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
    514   transaction_in.push_back(execute_transaction(_param,0,0,0,300,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
    515   transaction_in.push_back(execute_transaction(_param,0,0,0,301,OPERATION_ALU_L_SFLTS   ,TYPE_ALU,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
    516 
    517   transaction_in.push_back(execute_transaction(_param,0,0,0,400,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_ICACHE<<11,   3,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_NOT_COMPLETE,0,(GROUP_ICACHE<<11)|   3));
    518   transaction_in.push_back(execute_transaction(_param,0,0,0,401,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_ICACHE<<11,   5,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_NOT_COMPLETE,0,(GROUP_ICACHE<<11)|   5));
    519   transaction_in.push_back(execute_transaction(_param,0,0,0,402,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   0,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_INVALID     ,0,(GROUP_MAC   <<11)|   0));
    520   transaction_in.push_back(execute_transaction(_param,0,0,0,403,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    521   transaction_in.push_back(execute_transaction(_param,0,0,0,404,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   0,0x12345678,0              ,1,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_INVALID     ,0,(GROUP_MAC   <<11)|   0));
    522   transaction_in.push_back(execute_transaction(_param,0,0,0,405,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0x12345678,0              ,1,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     378  transaction_in.push_back(execute_transaction(_param,0,0,0,120,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
     379  transaction_in.push_back(execute_transaction(_param,0,0,0,121,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
     380  transaction_in.push_back(execute_transaction(_param,0,0,0,122,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
     381  transaction_in.push_back(execute_transaction(_param,0,0,0,123,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
     382  transaction_in.push_back(execute_transaction(_param,0,0,0,124,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
     383  transaction_in.push_back(execute_transaction(_param,0,0,0,125,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
     384  transaction_in.push_back(execute_transaction(_param,0,0,0,126,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     385  transaction_in.push_back(execute_transaction(_param,0,0,0,127,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     386  transaction_in.push_back(execute_transaction(_param,0,0,0,128,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     387  transaction_in.push_back(execute_transaction(_param,0,0,0,129,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     388  transaction_in.push_back(execute_transaction(_param,0,0,0,130,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     389  transaction_in.push_back(execute_transaction(_param,0,0,0,131,OPERATION_TEST_L_SFEQ    ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     390  transaction_in.push_back(execute_transaction(_param,0,0,0,140,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
     391  transaction_in.push_back(execute_transaction(_param,0,0,0,141,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
     392  transaction_in.push_back(execute_transaction(_param,0,0,0,142,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
     393  transaction_in.push_back(execute_transaction(_param,0,0,0,143,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
     394  transaction_in.push_back(execute_transaction(_param,0,0,0,144,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
     395  transaction_in.push_back(execute_transaction(_param,0,0,0,145,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
     396  transaction_in.push_back(execute_transaction(_param,0,0,0,146,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     397  transaction_in.push_back(execute_transaction(_param,0,0,0,147,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     398  transaction_in.push_back(execute_transaction(_param,0,0,0,148,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     399  transaction_in.push_back(execute_transaction(_param,0,0,0,149,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     400  transaction_in.push_back(execute_transaction(_param,0,0,0,150,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     401  transaction_in.push_back(execute_transaction(_param,0,0,0,151,OPERATION_TEST_L_SFNE    ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     402  transaction_in.push_back(execute_transaction(_param,0,0,0,150,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
     403  transaction_in.push_back(execute_transaction(_param,0,0,0,151,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
     404  transaction_in.push_back(execute_transaction(_param,0,0,0,152,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
     405  transaction_in.push_back(execute_transaction(_param,0,0,0,153,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
     406  transaction_in.push_back(execute_transaction(_param,0,0,0,154,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
     407  transaction_in.push_back(execute_transaction(_param,0,0,0,155,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
     408  transaction_in.push_back(execute_transaction(_param,0,0,0,156,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     409  transaction_in.push_back(execute_transaction(_param,0,0,0,157,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     410  transaction_in.push_back(execute_transaction(_param,0,0,0,158,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     411  transaction_in.push_back(execute_transaction(_param,0,0,0,159,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     412  transaction_in.push_back(execute_transaction(_param,0,0,0,160,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     413  transaction_in.push_back(execute_transaction(_param,0,0,0,161,OPERATION_TEST_L_SFGEU   ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     414  transaction_in.push_back(execute_transaction(_param,0,0,0,170,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
     415  transaction_in.push_back(execute_transaction(_param,0,0,0,171,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
     416  transaction_in.push_back(execute_transaction(_param,0,0,0,172,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
     417  transaction_in.push_back(execute_transaction(_param,0,0,0,173,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
     418  transaction_in.push_back(execute_transaction(_param,0,0,0,174,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
     419  transaction_in.push_back(execute_transaction(_param,0,0,0,175,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
     420  transaction_in.push_back(execute_transaction(_param,0,0,0,176,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     421  transaction_in.push_back(execute_transaction(_param,0,0,0,177,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     422  transaction_in.push_back(execute_transaction(_param,0,0,0,178,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     423  transaction_in.push_back(execute_transaction(_param,0,0,0,179,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     424  transaction_in.push_back(execute_transaction(_param,0,0,0,180,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     425  transaction_in.push_back(execute_transaction(_param,0,0,0,181,OPERATION_TEST_L_SFGTU   ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     426  transaction_in.push_back(execute_transaction(_param,0,0,0,190,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
     427  transaction_in.push_back(execute_transaction(_param,0,0,0,191,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
     428  transaction_in.push_back(execute_transaction(_param,0,0,0,192,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
     429  transaction_in.push_back(execute_transaction(_param,0,0,0,193,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
     430  transaction_in.push_back(execute_transaction(_param,0,0,0,194,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
     431  transaction_in.push_back(execute_transaction(_param,0,0,0,195,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
     432  transaction_in.push_back(execute_transaction(_param,0,0,0,196,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     433  transaction_in.push_back(execute_transaction(_param,0,0,0,197,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     434  transaction_in.push_back(execute_transaction(_param,0,0,0,198,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     435  transaction_in.push_back(execute_transaction(_param,0,0,0,199,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     436  transaction_in.push_back(execute_transaction(_param,0,0,0,200,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     437  transaction_in.push_back(execute_transaction(_param,0,0,0,201,OPERATION_TEST_L_SFLEU   ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     438  transaction_in.push_back(execute_transaction(_param,0,0,0,210,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
     439  transaction_in.push_back(execute_transaction(_param,0,0,0,211,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
     440  transaction_in.push_back(execute_transaction(_param,0,0,0,212,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
     441  transaction_in.push_back(execute_transaction(_param,0,0,0,213,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
     442  transaction_in.push_back(execute_transaction(_param,0,0,0,214,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
     443  transaction_in.push_back(execute_transaction(_param,0,0,0,215,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
     444  transaction_in.push_back(execute_transaction(_param,0,0,0,216,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     445  transaction_in.push_back(execute_transaction(_param,0,0,0,217,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     446  transaction_in.push_back(execute_transaction(_param,0,0,0,218,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     447  transaction_in.push_back(execute_transaction(_param,0,0,0,219,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     448  transaction_in.push_back(execute_transaction(_param,0,0,0,220,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     449  transaction_in.push_back(execute_transaction(_param,0,0,0,221,OPERATION_TEST_L_SFLTU   ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     450  transaction_in.push_back(execute_transaction(_param,0,0,0,230,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
     451  transaction_in.push_back(execute_transaction(_param,0,0,0,231,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
     452  transaction_in.push_back(execute_transaction(_param,0,0,0,232,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
     453  transaction_in.push_back(execute_transaction(_param,0,0,0,233,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
     454  transaction_in.push_back(execute_transaction(_param,0,0,0,234,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
     455  transaction_in.push_back(execute_transaction(_param,0,0,0,235,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
     456  transaction_in.push_back(execute_transaction(_param,0,0,0,236,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     457  transaction_in.push_back(execute_transaction(_param,0,0,0,237,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     458  transaction_in.push_back(execute_transaction(_param,0,0,0,238,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     459  transaction_in.push_back(execute_transaction(_param,0,0,0,239,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     460  transaction_in.push_back(execute_transaction(_param,0,0,0,240,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     461  transaction_in.push_back(execute_transaction(_param,0,0,0,241,OPERATION_TEST_L_SFGES   ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     462  transaction_in.push_back(execute_transaction(_param,0,0,0,250,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
     463  transaction_in.push_back(execute_transaction(_param,0,0,0,251,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  +
     464  transaction_in.push_back(execute_transaction(_param,0,0,0,252,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  +
     465  transaction_in.push_back(execute_transaction(_param,0,0,0,253,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
     466  transaction_in.push_back(execute_transaction(_param,0,0,0,254,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  -
     467  transaction_in.push_back(execute_transaction(_param,0,0,0,255,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  -
     468  transaction_in.push_back(execute_transaction(_param,0,0,0,256,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     469  transaction_in.push_back(execute_transaction(_param,0,0,0,257,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     470  transaction_in.push_back(execute_transaction(_param,0,0,0,258,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     471  transaction_in.push_back(execute_transaction(_param,0,0,0,259,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     472  transaction_in.push_back(execute_transaction(_param,0,0,0,260,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     473  transaction_in.push_back(execute_transaction(_param,0,0,0,261,OPERATION_TEST_L_SFGTS   ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     474  transaction_in.push_back(execute_transaction(_param,0,0,0,270,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + == +
     475  transaction_in.push_back(execute_transaction(_param,0,0,0,271,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
     476  transaction_in.push_back(execute_transaction(_param,0,0,0,272,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
     477  transaction_in.push_back(execute_transaction(_param,0,0,0,273,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == -
     478  transaction_in.push_back(execute_transaction(_param,0,0,0,274,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
     479  transaction_in.push_back(execute_transaction(_param,0,0,0,275,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
     480  transaction_in.push_back(execute_transaction(_param,0,0,0,276,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     481  transaction_in.push_back(execute_transaction(_param,0,0,0,277,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     482  transaction_in.push_back(execute_transaction(_param,0,0,0,278,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     483  transaction_in.push_back(execute_transaction(_param,0,0,0,279,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     484  transaction_in.push_back(execute_transaction(_param,0,0,0,280,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     485  transaction_in.push_back(execute_transaction(_param,0,0,0,281,OPERATION_TEST_L_SFLES   ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     486  transaction_in.push_back(execute_transaction(_param,0,0,0,290,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0xdead    ,0xdead    ,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == +
     487  transaction_in.push_back(execute_transaction(_param,0,0,0,291,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0x25071959,0x21071981,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  +
     488  transaction_in.push_back(execute_transaction(_param,0,0,0,292,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0x21071981,0x25071959,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // + <  +
     489  transaction_in.push_back(execute_transaction(_param,0,0,0,293,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - == -
     490  transaction_in.push_back(execute_transaction(_param,0,0,0,294,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0xdeadbabe,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // - >  -
     491  transaction_in.push_back(execute_transaction(_param,0,0,0,295,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0xdeadbabe,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  -
     492  transaction_in.push_back(execute_transaction(_param,0,0,0,296,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0x21524111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - == + (in unsigned)
     493  transaction_in.push_back(execute_transaction(_param,0,0,0,297,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0x11111111,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - >  + (in unsigned)
     494  transaction_in.push_back(execute_transaction(_param,0,0,0,298,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0xdeadbeef,0x33333333,0              ,0,63,0x0       ,1,15,FLAG_F         ,EXCEPTION_NONE     ,0)); // - <  + (in unsigned)
     495  transaction_in.push_back(execute_transaction(_param,0,0,0,299,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0x21524111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + == - (in unsigned)
     496  transaction_in.push_back(execute_transaction(_param,0,0,0,300,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0x33333333,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + >  - (in unsigned)
     497  transaction_in.push_back(execute_transaction(_param,0,0,0,301,OPERATION_TEST_L_SFLTS   ,TYPE_TEST,0,0         ,0x11111111,0xdeadbeef,0              ,0,63,0x0       ,1,15,0              ,EXCEPTION_NONE     ,0)); // + <  - (in unsigned)
     498
     499  transaction_in.push_back(execute_transaction(_param,0,0,0,400,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_ICACHE<<11,   3,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_NOT_COMPLETE,0,(GROUP_ICACHE<<11)|   3));
     500  transaction_in.push_back(execute_transaction(_param,0,0,0,401,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_ICACHE<<11,   5,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_NOT_COMPLETE,0,(GROUP_ICACHE<<11)|   5));
     501  transaction_in.push_back(execute_transaction(_param,0,0,0,402,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   0,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_INVALID     ,0,(GROUP_MAC   <<11)|   0));
     502  transaction_in.push_back(execute_transaction(_param,0,0,0,403,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     503  transaction_in.push_back(execute_transaction(_param,0,0,0,404,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   0,0x12345678,0              ,1,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_INVALID     ,0,(GROUP_MAC   <<11)|   0));
     504  transaction_in.push_back(execute_transaction(_param,0,0,0,405,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0x12345678,0              ,1,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    523505
    524506  if (_param->_nb_ooo_engine > 1)
    525507    {
    526   transaction_in.push_back(execute_transaction(_param,0,0,1,406,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0x12345678,0              ,0,63,0x12345678,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    527   transaction_in.push_back(execute_transaction(_param,0,0,0,407,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    528   transaction_in.push_back(execute_transaction(_param,0,0,1,408,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x12345678,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     508  transaction_in.push_back(execute_transaction(_param,0,0,1,406,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0x12345678,0              ,0,63,0x12345678,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     509  transaction_in.push_back(execute_transaction(_param,0,0,0,407,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     510  transaction_in.push_back(execute_transaction(_param,0,0,1,408,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x12345678,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    529511    }
    530512  // TEST MAC Unit
    531   transaction_in.push_back(execute_transaction(_param,0,0,0,409,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0xbebebeef,0              ,0,63,0xbebebeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    532   transaction_in.push_back(execute_transaction(_param,0,0,0,410,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   2,0x21071981,0              ,0,63,0x21071981,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
    533 
    534   transaction_in.push_back(execute_transaction(_param,0,0,0,411,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0xbebebeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    535   transaction_in.push_back(execute_transaction(_param,0,0,0,412,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x21071981,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
    536   transaction_in.push_back(execute_transaction(_param,0,0,0,413,OPERATION_ALU_L_MACRC   ,TYPE_ALU,0,0x0       , 0x0      ,0x0       ,0              ,1,63,0xbebebeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
    537 
    538   transaction_in.push_back(execute_transaction(_param,0,0,0,414,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    539   transaction_in.push_back(execute_transaction(_param,0,0,0,415,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
    540   transaction_in.push_back(execute_transaction(_param,0,0,0,416,OPERATION_ALU_L_MACRC   ,TYPE_ALU,0,0x0       , 0x0      ,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
    541 
    542 
    543   transaction_in.push_back(execute_transaction(_param,0,0,0,417,OPERATION_ALU_L_MAC     ,TYPE_ALU,0,0x0       ,0x22071981,0x1234567 ,0              ,0,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
    544 
    545   transaction_in.push_back(execute_transaction(_param,0,0,0,418,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x985e07e7,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    546   transaction_in.push_back(execute_transaction(_param,0,0,0,419,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
    547   transaction_in.push_back(execute_transaction(_param,0,0,0,420,OPERATION_ALU_L_MAC     ,TYPE_ALU,1,0x22071981,0x1234567 ,0x0       ,0              ,0,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
    548 
    549   transaction_in.push_back(execute_transaction(_param,0,0,0,421,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x30bc0fce,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    550   transaction_in.push_back(execute_transaction(_param,0,0,0,422,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x1       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
    551   transaction_in.push_back(execute_transaction(_param,0,0,0,423,OPERATION_ALU_L_MSB     ,TYPE_ALU,1,0xdeadbeef,0x1945    ,0x0       ,0              ,0,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
     513  transaction_in.push_back(execute_transaction(_param,0,0,0,409,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0xbebebeef,0              ,0,63,0xbebebeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     514  transaction_in.push_back(execute_transaction(_param,0,0,0,410,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   2,0x21071981,0              ,0,63,0x21071981,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
     515
     516  transaction_in.push_back(execute_transaction(_param,0,0,0,411,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0xbebebeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     517  transaction_in.push_back(execute_transaction(_param,0,0,0,412,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x21071981,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
     518  transaction_in.push_back(execute_transaction(_param,0,0,0,413,OPERATION_SPECIAL_L_MACRC   ,TYPE_SPECIAL,0,0x0       , 0x0      ,0x0       ,0              ,1,63,0xbebebeef,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
     519
     520  transaction_in.push_back(execute_transaction(_param,0,0,0,414,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     521  transaction_in.push_back(execute_transaction(_param,0,0,0,415,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
     522  transaction_in.push_back(execute_transaction(_param,0,0,0,416,OPERATION_SPECIAL_L_MACRC   ,TYPE_SPECIAL,0,0x0       , 0x0      ,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
     523
     524
     525  transaction_in.push_back(execute_transaction(_param,0,0,0,417,OPERATION_SPECIAL_L_MAC     ,TYPE_SPECIAL,0,0x0       ,0x22071981,0x1234567 ,0              ,0,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
     526
     527  transaction_in.push_back(execute_transaction(_param,0,0,0,418,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x985e07e7,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     528  transaction_in.push_back(execute_transaction(_param,0,0,0,419,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
     529  transaction_in.push_back(execute_transaction(_param,0,0,0,420,OPERATION_SPECIAL_L_MAC     ,TYPE_SPECIAL,1,0x22071981,0x1234567 ,0x0       ,0              ,0,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
     530
     531  transaction_in.push_back(execute_transaction(_param,0,0,0,421,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x30bc0fce,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     532  transaction_in.push_back(execute_transaction(_param,0,0,0,422,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x1       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
     533  transaction_in.push_back(execute_transaction(_param,0,0,0,423,OPERATION_SPECIAL_L_MSB     ,TYPE_SPECIAL,1,0xdeadbeef,0x1945    ,0x0       ,0              ,0,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
    552534 
    553   transaction_in.push_back(execute_transaction(_param,0,0,0,424,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x34424263,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
    554   transaction_in.push_back(execute_transaction(_param,0,0,0,425,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
    555 
    556   transaction_in.push_back(execute_transaction(_param,0,0,0,500,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_CUSTOM_3<<11, 0,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_INVALID,0,(GROUP_CUSTOM_3<<11)|0));
    557   transaction_in.push_back(execute_transaction(_param,0,0,0,500,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_CUSTOM_3<<11, 0,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|0));
    558 
    559   transaction_in.push_back(execute_transaction(_param,0,0,0,501,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_CUSTOM_3<<11, 1,0x3       ,0              ,0,63,0x3       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|1));
    560   transaction_in.push_back(execute_transaction(_param,0,0,0,502,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_CUSTOM_3<<11, 2,0x7       ,0              ,0,63,0x7       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|2));
    561   transaction_in.push_back(execute_transaction(_param,0,0,0,503,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_3<<11, 0,0x0       ,0              ,1,63,0xdeadbeef,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|0));
    562   transaction_in.push_back(execute_transaction(_param,0,0,0,504,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_3<<11, 1,0x0       ,0              ,1,63,0x3       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|1));
    563   transaction_in.push_back(execute_transaction(_param,0,0,0,505,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_3<<11, 2,0x0       ,0              ,1,63,0x7       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|2));
    564 
    565 
    566   transaction_in.push_back(execute_transaction(_param,0,0,0,506,OPERATION_CUSTOM_L_4    ,TYPE_ALU,0,0x0       ,0x21071981,0x0       ,0              ,1,63,0x9ae2802f,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
    567   transaction_in.push_back(execute_transaction(_param,0,0,0,507,OPERATION_CUSTOM_L_8    ,TYPE_ALU,0,0x0       ,0x9ae2802f,0x0       ,0              ,1,63,0x21071981,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
    568 
    569 
    570 
    571   transaction_in.push_back(execute_transaction(_param,0,0,0,600,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 1,0x0       ,0              ,1,63,0xdeadbeef,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|1));
    572   transaction_in.push_back(execute_transaction(_param,0,0,0,601,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 2,0x0       ,0              ,1,63,0x666     ,0, 2,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
    573   transaction_in.push_back(execute_transaction(_param,0,0,0,602,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 3,0x0       ,0              ,1,63,0xffffffff,0, 3,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|3));
    574   transaction_in.push_back(execute_transaction(_param,0,0,0,603,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 3,0x0       ,0              ,0,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_INVALID     ,0,(GROUP_CUSTOM_7<<11)|3));
    575   transaction_in.push_back(execute_transaction(_param,0,0,0,604,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 2,0x0       ,0              ,0,63,0x0       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
    576   transaction_in.push_back(execute_transaction(_param,0,0,0,605,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 2,0x0       ,0              ,1,63,0x666     ,0, 2,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
    577   transaction_in.push_back(execute_transaction(_param,0,0,0,606,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 2,0x12345678,0              ,0,63,0x12345678,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
    578   transaction_in.push_back(execute_transaction(_param,0,0,0,607,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 2,0x0       ,0              ,1,63,0x12345678,0, 2,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
    579 
    580   transaction_in.push_back(execute_transaction(_param,0,0,0,610,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xbebe    ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    581   transaction_in.push_back(execute_transaction(_param,0,0,0,611,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x4add6dda,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    582   transaction_in.push_back(execute_transaction(_param,0,0,0,612,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x96c7b0fe,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    583   transaction_in.push_back(execute_transaction(_param,0,0,0,613,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xeba5179a,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    584   transaction_in.push_back(execute_transaction(_param,0,0,0,614,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x17ebab3e,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    585   transaction_in.push_back(execute_transaction(_param,0,0,0,615,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xcd37395a,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    586   transaction_in.push_back(execute_transaction(_param,0,0,0,616,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x7325ad7e,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    587   transaction_in.push_back(execute_transaction(_param,0,0,0,617,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xb4ad31a ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    588   transaction_in.push_back(execute_transaction(_param,0,0,0,618,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x5a4eb7be,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    589   transaction_in.push_back(execute_transaction(_param,0,0,0,619,OPERATION_ALU_L_MTSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 3,0xf       ,0              ,0,63,0xf       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|3));
    590 
    591   transaction_in.push_back(execute_transaction(_param,0,0,0,620,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xbd76e4da,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    592   transaction_in.push_back(execute_transaction(_param,0,0,0,621,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xe       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    593   transaction_in.push_back(execute_transaction(_param,0,0,0,622,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xa       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    594   transaction_in.push_back(execute_transaction(_param,0,0,0,623,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x3       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    595   transaction_in.push_back(execute_transaction(_param,0,0,0,624,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x1       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    596   transaction_in.push_back(execute_transaction(_param,0,0,0,625,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x5       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    597   transaction_in.push_back(execute_transaction(_param,0,0,0,626,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xc       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    598   transaction_in.push_back(execute_transaction(_param,0,0,0,627,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xe       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    599   transaction_in.push_back(execute_transaction(_param,0,0,0,628,OPERATION_ALU_L_MFSPR   ,TYPE_ALU,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xa       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     535  transaction_in.push_back(execute_transaction(_param,0,0,0,424,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   1,0x0       ,0              ,1,63,0x34424263,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   1));
     536  transaction_in.push_back(execute_transaction(_param,0,0,0,425,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_MAC   <<11,   2,0x0       ,0              ,1,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_MAC   <<11)|   2));
     537
     538  transaction_in.push_back(execute_transaction(_param,0,0,0,500,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_3<<11, 0,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_INVALID,0,(GROUP_CUSTOM_3<<11)|0));
     539  transaction_in.push_back(execute_transaction(_param,0,0,0,500,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_3<<11, 0,0xdeadbeef,0              ,0,63,0xdeadbeef,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|0));
     540
     541  transaction_in.push_back(execute_transaction(_param,0,0,0,501,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_3<<11, 1,0x3       ,0              ,0,63,0x3       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|1));
     542  transaction_in.push_back(execute_transaction(_param,0,0,0,502,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_3<<11, 2,0x7       ,0              ,0,63,0x7       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|2));
     543  transaction_in.push_back(execute_transaction(_param,0,0,0,503,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_3<<11, 0,0x0       ,0              ,1,63,0xdeadbeef,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|0));
     544  transaction_in.push_back(execute_transaction(_param,0,0,0,504,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_3<<11, 1,0x0       ,0              ,1,63,0x3       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|1));
     545  transaction_in.push_back(execute_transaction(_param,0,0,0,505,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_3<<11, 2,0x0       ,0              ,1,63,0x7       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_3<<11)|2));
     546
     547
     548  transaction_in.push_back(execute_transaction(_param,0,0,0,506,OPERATION_CUSTOM_L_4    ,TYPE_CUSTOM,0,0x0       ,0x21071981,0x0       ,0              ,1,63,0x9ae2802f,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
     549  transaction_in.push_back(execute_transaction(_param,0,0,0,507,OPERATION_CUSTOM_L_8    ,TYPE_CUSTOM,0,0x0       ,0x9ae2802f,0x0       ,0              ,1,63,0x21071981,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0));
     550
     551
     552
     553  transaction_in.push_back(execute_transaction(_param,0,0,0,600,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 1,0x0       ,0              ,1,63,0xdeadbeef,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|1));
     554  transaction_in.push_back(execute_transaction(_param,0,0,0,601,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 2,0x0       ,0              ,1,63,0x666     ,0, 2,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
     555  transaction_in.push_back(execute_transaction(_param,0,0,0,602,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 3,0x0       ,0              ,1,63,0xffffffff,0, 3,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|3));
     556  transaction_in.push_back(execute_transaction(_param,0,0,0,603,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 3,0x0       ,0              ,0,63,0x0       ,0, 0,0              ,EXCEPTION_ALU_SPR_ACCESS_INVALID     ,0,(GROUP_CUSTOM_7<<11)|3));
     557  transaction_in.push_back(execute_transaction(_param,0,0,0,604,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 2,0x0       ,0              ,0,63,0x0       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
     558  transaction_in.push_back(execute_transaction(_param,0,0,0,605,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 2,0x0       ,0              ,1,63,0x666     ,0, 2,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
     559  transaction_in.push_back(execute_transaction(_param,0,0,0,606,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 2,0x12345678,0              ,0,63,0x12345678,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
     560  transaction_in.push_back(execute_transaction(_param,0,0,0,607,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 2,0x0       ,0              ,1,63,0x12345678,0, 2,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|2));
     561
     562  transaction_in.push_back(execute_transaction(_param,0,0,0,610,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xbebe    ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     563  transaction_in.push_back(execute_transaction(_param,0,0,0,611,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x4add6dda,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     564  transaction_in.push_back(execute_transaction(_param,0,0,0,612,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x96c7b0fe,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     565  transaction_in.push_back(execute_transaction(_param,0,0,0,613,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xeba5179a,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     566  transaction_in.push_back(execute_transaction(_param,0,0,0,614,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x17ebab3e,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     567  transaction_in.push_back(execute_transaction(_param,0,0,0,615,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xcd37395a,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     568  transaction_in.push_back(execute_transaction(_param,0,0,0,616,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x7325ad7e,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     569  transaction_in.push_back(execute_transaction(_param,0,0,0,617,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xb4ad31a ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     570  transaction_in.push_back(execute_transaction(_param,0,0,0,618,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x5a4eb7be,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     571  transaction_in.push_back(execute_transaction(_param,0,0,0,619,OPERATION_SPECIAL_L_MTSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 3,0xf       ,0              ,0,63,0xf       ,0, 1,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|3));
     572
     573  transaction_in.push_back(execute_transaction(_param,0,0,0,620,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xbd76e4da,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     574  transaction_in.push_back(execute_transaction(_param,0,0,0,621,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xe       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     575  transaction_in.push_back(execute_transaction(_param,0,0,0,622,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xa       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     576  transaction_in.push_back(execute_transaction(_param,0,0,0,623,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x3       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     577  transaction_in.push_back(execute_transaction(_param,0,0,0,624,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x1       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     578  transaction_in.push_back(execute_transaction(_param,0,0,0,625,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0x5       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     579  transaction_in.push_back(execute_transaction(_param,0,0,0,626,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xc       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     580  transaction_in.push_back(execute_transaction(_param,0,0,0,627,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xe       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
     581  transaction_in.push_back(execute_transaction(_param,0,0,0,628,OPERATION_SPECIAL_L_MFSPR   ,TYPE_SPECIAL,1,GROUP_CUSTOM_7<<11, 0,0x0       ,0              ,1,63,0xa       ,0, 0,0              ,EXCEPTION_ALU_NONE                   ,0,(GROUP_CUSTOM_7<<11)|0));
    600582
    601583  LABEL("Reset");
     
    666648              TEST(Tcontrol_t        , out_EXECUTE_OUT_NO_SEQUENCE  .read(), transaction_out.front()._no_sequence  );
    667649
    668               switch (transaction_out.front()._operation)
     650
     651              bool just_do_it = true;
     652              if ((transaction_out.front()._type      == TYPE_SPECIAL) and
     653                  (transaction_out.front()._operation == OPERATION_SPECIAL_L_MFSPR))
    669654                {
    670                 case OPERATION_ALU_L_MFSPR :
    671                   {
    672                     TEST(Tcontrol_t        , out_EXECUTE_OUT_WRITE_RD     .read(), out_EXECUTE_OUT_EXCEPTION.read() == EXCEPTION_ALU_NONE);
    673                     if (out_EXECUTE_OUT_WRITE_RD     .read())
     655                  just_do_it = false;
     656                  TEST(Tcontrol_t        , out_EXECUTE_OUT_WRITE_RD     .read(), out_EXECUTE_OUT_EXCEPTION.read() == EXCEPTION_ALU_NONE);
     657                  if (out_EXECUTE_OUT_WRITE_RD     .read())
     658                  TEST(Tgeneral_data_t   , out_EXECUTE_OUT_DATA_RD      .read(), transaction_out.front()._data_rd      );
     659                  TEST(Tgeneral_data_t   , out_EXECUTE_OUT_ADDRESS      .read(), transaction_out.front()._address      );
     660                  break;
     661                }
     662
     663              if ((transaction_out.front()._type      == TYPE_SPECIAL) and
     664                  (transaction_out.front()._operation == OPERATION_SPECIAL_L_MTSPR))
     665                {
     666                  just_do_it = false;
     667                  TEST(Tcontrol_t        , out_EXECUTE_OUT_WRITE_RD     .read(), transaction_out.front()._write_rd     );
     668                  TEST(Tgeneral_data_t   , out_EXECUTE_OUT_DATA_RD      .read(), transaction_out.front()._data_rd      );
     669                  TEST(Tgeneral_data_t   , out_EXECUTE_OUT_ADDRESS      .read(), transaction_out.front()._address      );
     670                  break;
     671                }
     672             
     673              if (just_do_it)
     674                {
     675                  TEST(Tcontrol_t        , out_EXECUTE_OUT_WRITE_RD     .read(), transaction_out.front()._write_rd     );
     676                  if (transaction_out.front()._write_rd)
    674677                    TEST(Tgeneral_data_t   , out_EXECUTE_OUT_DATA_RD      .read(), transaction_out.front()._data_rd      );
     678                  if (transaction_out.front()._write_re)
     679                    TEST(Tspecial_data_t   , out_EXECUTE_OUT_DATA_RE      .read(), transaction_out.front()._data_re      );
     680                  if (transaction_out.front()._no_sequence)
    675681                    TEST(Tgeneral_data_t   , out_EXECUTE_OUT_ADDRESS      .read(), transaction_out.front()._address      );
    676                     break;
    677                   }
    678                 case OPERATION_ALU_L_MTSPR :
    679                   {
    680                     TEST(Tcontrol_t        , out_EXECUTE_OUT_WRITE_RD     .read(), transaction_out.front()._write_rd     );
    681                     TEST(Tgeneral_data_t   , out_EXECUTE_OUT_DATA_RD      .read(), transaction_out.front()._data_rd      );
    682                     TEST(Tgeneral_data_t   , out_EXECUTE_OUT_ADDRESS      .read(), transaction_out.front()._address      );
    683                     break;
    684                   }
    685                 default :
    686                   {
    687                     TEST(Tcontrol_t        , out_EXECUTE_OUT_WRITE_RD     .read(), transaction_out.front()._write_rd     );
    688                     if (transaction_out.front()._write_rd)
    689                     TEST(Tgeneral_data_t   , out_EXECUTE_OUT_DATA_RD      .read(), transaction_out.front()._data_rd      );
    690                     if (transaction_out.front()._write_re)
    691                     TEST(Tspecial_data_t   , out_EXECUTE_OUT_DATA_RE      .read(), transaction_out.front()._data_re      );
    692                     if (transaction_out.front()._no_sequence)
    693                     TEST(Tgeneral_data_t   , out_EXECUTE_OUT_ADDRESS      .read(), transaction_out.front()._address      );
    694                   }
    695682                }
     683
    696684              transaction_out.pop_front();
    697685
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Functionnal_unit.h

    r75 r76  
    127127  private   : execute_register_t         **** _execute_register;
    128128  private   : execute_param_t               * _execute_param;
    129   private   : function_execute_t           ** _function_execute;
     129  private   : function_execute_t          *** _function_execute;
    130130#endif
    131131
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Parameters.h

    r72 r76  
    3838  public : const uint32_t            _nb_operation                 ;
    3939  public : const uint32_t            _nb_type                      ;
    40   public : const execute_timing_t  * _timing                       ;
     40  public :       execute_timing_t ** _timing                       ;
    4141  public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (uint32_t);
    4242
     
    6868                        uint32_t           nb_operation       ,
    6969                        uint32_t           nb_type            ,
    70                         execute_timing_t * timing             ,
     70                        execute_timing_t** timing             ,
    7171                        morpheo::behavioural::custom::custom_information_t (*get_custom_information) (uint32_t));
    7272  public : Parameters  (Parameters & param) ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/include/Types.h

    r72 r76  
    7575  public : const Tgeneral_data_t     _mask_data;
    7676  public : const Tgeneral_data_t     _mask_shift;
    77   public : const execute_timing_t  * _timing;
     77  public :       execute_timing_t ** _timing;
    7878
    79   public : execute_param_t (const uint32_t            size_data,
    80                             const execute_timing_t  * timing):
     79  public : execute_param_t (const uint32_t      size_data,
     80                            execute_timing_t ** timing):
    8181    _size_data (size_data),
    8282    _mask_data (gen_mask<Tgeneral_data_t> (size_data)),
    83     _mask_shift(gen_mask<Tgeneral_data_t> (log2(size_data))),
    84     _timing    (timing)
     83    _mask_shift(gen_mask<Tgeneral_data_t> (log2(size_data)))
    8584    {
     85      _timing = timing;
    8686    };
    8787  public : ~execute_param_t (void)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_allocation.cpp

    r75 r76  
    153153       }
    154154
    155      _function_execute = new function_execute_t * [MAX_OPERATION];
     155     _function_execute = new function_execute_t ** [MAX_TYPE];
    156156     
    157157     // Initialisation
    158      for (uint32_t i=0; i<MAX_OPERATION; i++)
    159        _function_execute [i] = &(operation_unimplemented);
    160 
    161      if (_param->_timing[OPERATION_ALU_L_ADD     ]._latence > 0) _function_execute[OPERATION_ALU_L_ADD     ] = &(operation_l_add     );
    162      if (_param->_timing[OPERATION_ALU_L_ADDC    ]._latence > 0) _function_execute[OPERATION_ALU_L_ADDC    ] = &(operation_l_addc    );
    163      if (_param->_timing[OPERATION_ALU_L_SUB     ]._latence > 0) _function_execute[OPERATION_ALU_L_SUB     ] = &(operation_l_sub     );
    164 //      if (_param->_timing[OPERATION_ALU_L_MUL     ]._latence > 0) _function_execute[OPERATION_ALU_L_MUL     ] = &(operation_l_mul     );
    165 //      if (_param->_timing[OPERATION_ALU_L_MULU    ]._latence > 0) _function_execute[OPERATION_ALU_L_MULU    ] = &(operation_l_mulu    );
    166 //      if (_param->_timing[OPERATION_ALU_L_DIV     ]._latence > 0) _function_execute[OPERATION_ALU_L_DIV     ] = &(operation_l_div     );
    167 //      if (_param->_timing[OPERATION_ALU_L_DIVU    ]._latence > 0) _function_execute[OPERATION_ALU_L_DIVU    ] = &(operation_l_divu    );
    168      if (_param->_timing[OPERATION_ALU_L_AND     ]._latence > 0) _function_execute[OPERATION_ALU_L_AND     ] = &(operation_l_and     );
    169      if (_param->_timing[OPERATION_ALU_L_OR      ]._latence > 0) _function_execute[OPERATION_ALU_L_OR      ] = &(operation_l_or      );
    170      if (_param->_timing[OPERATION_ALU_L_XOR     ]._latence > 0) _function_execute[OPERATION_ALU_L_XOR     ] = &(operation_l_xor     );
    171      if (_param->_timing[OPERATION_ALU_L_TEST_F  ]._latence > 0) _function_execute[OPERATION_ALU_L_TEST_F  ] = &(operation_l_test_f  );
    172      if (_param->_timing[OPERATION_ALU_L_TEST_NF ]._latence > 0) _function_execute[OPERATION_ALU_L_TEST_NF ] = &(operation_l_test_nf );
    173      if (_param->_timing[OPERATION_ALU_L_JALR    ]._latence > 0) _function_execute[OPERATION_ALU_L_JALR    ] = &(operation_l_jalr    );
    174      if (_param->_timing[OPERATION_ALU_L_SLL     ]._latence > 0) _function_execute[OPERATION_ALU_L_SLL     ] = &(operation_l_sll     );
    175      if (_param->_timing[OPERATION_ALU_L_SRA     ]._latence > 0) _function_execute[OPERATION_ALU_L_SRA     ] = &(operation_l_sra     );
    176      if (_param->_timing[OPERATION_ALU_L_SRL     ]._latence > 0) _function_execute[OPERATION_ALU_L_SRL     ] = &(operation_l_srl     );
    177      if (_param->_timing[OPERATION_ALU_L_ROR     ]._latence > 0) _function_execute[OPERATION_ALU_L_ROR     ] = &(operation_l_ror     );
    178      if (_param->_timing[OPERATION_ALU_L_MOVHI   ]._latence > 0) _function_execute[OPERATION_ALU_L_MOVHI   ] = &(operation_l_movhi   );
    179      if (_param->_timing[OPERATION_ALU_L_EXTEND_S]._latence > 0) _function_execute[OPERATION_ALU_L_EXTEND_S] = &(operation_l_extend_s);
    180      if (_param->_timing[OPERATION_ALU_L_EXTEND_Z]._latence > 0) _function_execute[OPERATION_ALU_L_EXTEND_Z] = &(operation_l_extend_z);
    181      if (_param->_timing[OPERATION_ALU_L_CMOV    ]._latence > 0) _function_execute[OPERATION_ALU_L_CMOV    ] = &(operation_l_cmov    );
    182      if (_param->_timing[OPERATION_ALU_L_FF1     ]._latence > 0) _function_execute[OPERATION_ALU_L_FF1     ] = &(operation_l_ff1     );
    183      if (_param->_timing[OPERATION_ALU_L_FL1     ]._latence > 0) _function_execute[OPERATION_ALU_L_FL1     ] = &(operation_l_fl1     );
    184      if (_param->_timing[OPERATION_ALU_L_MFSPR   ]._latence > 0) _function_execute[OPERATION_ALU_L_MFSPR   ] = &(operation_l_mfspr   );
    185      if (_param->_timing[OPERATION_ALU_L_MTSPR   ]._latence > 0) _function_execute[OPERATION_ALU_L_MTSPR   ] = &(operation_l_mtspr   );
    186      if (_param->_timing[OPERATION_ALU_L_SFEQ    ]._latence > 0) _function_execute[OPERATION_ALU_L_SFEQ    ] = &(operation_l_sfeq    );
    187      if (_param->_timing[OPERATION_ALU_L_SFNE    ]._latence > 0) _function_execute[OPERATION_ALU_L_SFNE    ] = &(operation_l_sfne    );
    188      if (_param->_timing[OPERATION_ALU_L_SFGEU   ]._latence > 0) _function_execute[OPERATION_ALU_L_SFGEU   ] = &(operation_l_sfgeu   );
    189      if (_param->_timing[OPERATION_ALU_L_SFGTU   ]._latence > 0) _function_execute[OPERATION_ALU_L_SFGTU   ] = &(operation_l_sfgtu   );
    190      if (_param->_timing[OPERATION_ALU_L_SFLEU   ]._latence > 0) _function_execute[OPERATION_ALU_L_SFLEU   ] = &(operation_l_sfleu   );
    191      if (_param->_timing[OPERATION_ALU_L_SFLTU   ]._latence > 0) _function_execute[OPERATION_ALU_L_SFLTU   ] = &(operation_l_sfltu   );
    192      if (_param->_timing[OPERATION_ALU_L_SFGES   ]._latence > 0) _function_execute[OPERATION_ALU_L_SFGES   ] = &(operation_l_sfges   );
    193      if (_param->_timing[OPERATION_ALU_L_SFGTS   ]._latence > 0) _function_execute[OPERATION_ALU_L_SFGTS   ] = &(operation_l_sfgts   );
    194      if (_param->_timing[OPERATION_ALU_L_SFLES   ]._latence > 0) _function_execute[OPERATION_ALU_L_SFLES   ] = &(operation_l_sfles   );
    195      if (_param->_timing[OPERATION_ALU_L_SFLTS   ]._latence > 0) _function_execute[OPERATION_ALU_L_SFLTS   ] = &(operation_l_sflts   );
    196      if (_param->_timing[OPERATION_ALU_L_MAC     ]._latence > 0) _function_execute[OPERATION_ALU_L_MAC     ] = &(operation_l_mac     );
    197      if (_param->_timing[OPERATION_ALU_L_MACRC   ]._latence > 0) _function_execute[OPERATION_ALU_L_MACRC   ] = &(operation_l_macrc   );
    198      if (_param->_timing[OPERATION_ALU_L_MSB     ]._latence > 0) _function_execute[OPERATION_ALU_L_MSB     ] = &(operation_l_msb     );
     158     for (uint32_t i=0; i<MAX_TYPE; i++)
     159       {
     160         _function_execute [i] = new function_execute_t * [MAX_OPERATION];
     161         
     162         for (uint32_t j=0; j<MAX_OPERATION; j++)
     163           _function_execute [i][j] = &(operation_unimplemented);
     164       }
     165
     166     if (_param->_timing[TYPE_ALU    ][OPERATION_ALU_L_ADD         ]._latence > 0)
     167       _function_execute[TYPE_ALU    ][OPERATION_ALU_L_ADD         ] = &(operation_l_add     );
     168     if (_param->_timing[TYPE_ALU    ][OPERATION_ALU_L_ADDC        ]._latence > 0)
     169       _function_execute[TYPE_ALU    ][OPERATION_ALU_L_ADDC        ] = &(operation_l_addc    );
     170//   if (_param->_timing[TYPE_ALU    ][OPERATION_ALU_L_SUB         ]._latence > 0)
     171//     _function_execute[TYPE_ALU    ][OPERATION_ALU_L_SUB         ] = &(operation_l_sub     );
     172     if (_param->_timing[TYPE_ALU    ][OPERATION_ALU_L_AND         ]._latence > 0)
     173       _function_execute[TYPE_ALU    ][OPERATION_ALU_L_AND         ] = &(operation_l_and     );
     174     if (_param->_timing[TYPE_ALU    ][OPERATION_ALU_L_OR          ]._latence > 0)
     175       _function_execute[TYPE_ALU    ][OPERATION_ALU_L_OR          ] = &(operation_l_or      );
     176     if (_param->_timing[TYPE_ALU    ][OPERATION_ALU_L_XOR         ]._latence > 0)
     177       _function_execute[TYPE_ALU    ][OPERATION_ALU_L_XOR         ] = &(operation_l_xor     );
     178     if (_param->_timing[TYPE_SHIFT  ][OPERATION_SHIFT_L_SLL       ]._latence > 0)
     179       _function_execute[TYPE_SHIFT  ][OPERATION_SHIFT_L_SLL       ] = &(operation_l_sll     );
     180     if (_param->_timing[TYPE_SHIFT  ][OPERATION_SHIFT_L_SRA       ]._latence > 0)
     181       _function_execute[TYPE_SHIFT  ][OPERATION_SHIFT_L_SRA       ] = &(operation_l_sra     );
     182     if (_param->_timing[TYPE_SHIFT  ][OPERATION_SHIFT_L_SRL       ]._latence > 0)
     183       _function_execute[TYPE_SHIFT  ][OPERATION_SHIFT_L_SRL       ] = &(operation_l_srl     );
     184     if (_param->_timing[TYPE_SHIFT  ][OPERATION_SHIFT_L_ROR       ]._latence > 0)
     185       _function_execute[TYPE_SHIFT  ][OPERATION_SHIFT_L_ROR       ] = &(operation_l_ror     );
     186     if (_param->_timing[TYPE_MOVE   ][OPERATION_MOVE_L_MOVHI      ]._latence > 0)
     187       _function_execute[TYPE_MOVE   ][OPERATION_MOVE_L_MOVHI      ] = &(operation_l_movhi   );
     188     if (_param->_timing[TYPE_MOVE   ][OPERATION_MOVE_L_CMOV       ]._latence > 0)
     189       _function_execute[TYPE_MOVE   ][OPERATION_MOVE_L_CMOV       ] = &(operation_l_cmov    );
     190     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFGEU      ]._latence > 0)
     191       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFGEU      ] = &(operation_l_sfgeu   );
     192     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFGTU      ]._latence > 0)
     193       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFGTU      ] = &(operation_l_sfgtu   );
     194     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFLEU      ]._latence > 0)
     195       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFLEU      ] = &(operation_l_sfleu   );
     196     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFLTU      ]._latence > 0)
     197       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFLTU      ] = &(operation_l_sfltu   );
     198     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFGES      ]._latence > 0)
     199       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFGES      ] = &(operation_l_sfges   );
     200     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFGTS      ]._latence > 0)
     201       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFGTS      ] = &(operation_l_sfgts   );
     202     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFLES      ]._latence > 0)
     203       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFLES      ] = &(operation_l_sfles   );
     204     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFLTS      ]._latence > 0)
     205       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFLTS      ] = &(operation_l_sflts   );
     206     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFEQ       ]._latence > 0)
     207       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFEQ       ] = &(operation_l_sfeq    );
     208     if (_param->_timing[TYPE_TEST   ][OPERATION_TEST_L_SFNE       ]._latence > 0)
     209       _function_execute[TYPE_TEST   ][OPERATION_TEST_L_SFNE       ] = &(operation_l_sfne    );
     210//   if (_param->_timing[TYPE_MUL_DIV][OPERATION_MUL_DIV_L_MUL     ]._latence > 0)
     211//     _function_execute[TYPE_MUL_DIV][OPERATION_MUL_DIV_L_MUL     ] = &(operation_l_mul     );
     212//   if (_param->_timing[TYPE_MUL_DIV][OPERATION_MUL_DIV_L_MULU    ]._latence > 0)
     213//     _function_execute[TYPE_MUL_DIV][OPERATION_MUL_DIV_L_MULU    ] = &(operation_l_mulu    );
     214//   if (_param->_timing[TYPE_MUL_DIV][OPERATION_MUL_DIV_L_DIV     ]._latence > 0)
     215//     _function_execute[TYPE_MUL_DIV][OPERATION_MUL_DIV_L_DIV     ] = &(operation_l_div     );
     216//   if (_param->_timing[TYPE_MUL_DIV][OPERATION_MUL_DIV_L_DIVU    ]._latence > 0)
     217//     _function_execute[TYPE_MUL_DIV][OPERATION_MUL_DIV_L_DIVU    ] = &(operation_l_divu    );
     218     if (_param->_timing[TYPE_EXTEND ][OPERATION_EXTEND_L_EXTEND_S ]._latence > 0)
     219       _function_execute[TYPE_EXTEND ][OPERATION_EXTEND_L_EXTEND_S ] = &(operation_l_extend_s);
     220     if (_param->_timing[TYPE_EXTEND ][OPERATION_EXTEND_L_EXTEND_Z ]._latence > 0)
     221       _function_execute[TYPE_EXTEND ][OPERATION_EXTEND_L_EXTEND_Z ] = &(operation_l_extend_z);
     222     if (_param->_timing[TYPE_FIND   ][OPERATION_FIND_L_FF1        ]._latence > 0)
     223       _function_execute[TYPE_FIND   ][OPERATION_FIND_L_FF1        ] = &(operation_l_ff1     );
     224     if (_param->_timing[TYPE_FIND   ][OPERATION_FIND_L_FL1        ]._latence > 0)
     225       _function_execute[TYPE_FIND   ][OPERATION_FIND_L_FL1        ] = &(operation_l_fl1     );
     226     if (_param->_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MFSPR   ]._latence > 0)
     227       _function_execute[TYPE_SPECIAL][OPERATION_SPECIAL_L_MFSPR   ] = &(operation_l_mfspr   );
     228     if (_param->_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MTSPR   ]._latence > 0)
     229       _function_execute[TYPE_SPECIAL][OPERATION_SPECIAL_L_MTSPR   ] = &(operation_l_mtspr   );
     230     if (_param->_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MAC     ]._latence > 0)
     231       _function_execute[TYPE_SPECIAL][OPERATION_SPECIAL_L_MAC     ] = &(operation_l_mac     );
     232     if (_param->_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MACRC   ]._latence > 0)
     233       _function_execute[TYPE_SPECIAL][OPERATION_SPECIAL_L_MACRC   ] = &(operation_l_macrc   );
     234     if (_param->_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MSB     ]._latence > 0)
     235       _function_execute[TYPE_SPECIAL][OPERATION_SPECIAL_L_MSB     ] = &(operation_l_msb     );
     236     if (_param->_timing[TYPE_BRANCH ][OPERATION_BRANCH_L_TEST_F   ]._latence > 0)
     237       _function_execute[TYPE_BRANCH ][OPERATION_BRANCH_L_TEST_F   ] = &(operation_l_test_f  );
     238     if (_param->_timing[TYPE_BRANCH ][OPERATION_BRANCH_L_TEST_NF  ]._latence > 0)
     239       _function_execute[TYPE_BRANCH ][OPERATION_BRANCH_L_TEST_NF  ] = &(operation_l_test_nf );
     240     if (_param->_timing[TYPE_BRANCH ][OPERATION_BRANCH_L_JALR     ]._latence > 0)
     241       _function_execute[TYPE_BRANCH ][OPERATION_BRANCH_L_JALR     ] = &(operation_l_jalr    );
     242
    199243
    200244
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_deallocation.cpp

    r72 r76  
    7878    delete    _execute_param;
    7979    delete    _execute_operation;
    80     delete   _function_execute;
     80    delete [] _function_execute;
    8181
    8282    delete    _component;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_transition.cpp

    r73 r76  
    6262            reg_BUSY = true;
    6363
    64             Tcontext_t context_id    = (_param->_have_port_context_id   )?PORT_READ(in_EXECUTE_IN_CONTEXT_ID   ):0;
    65             Tcontext_t front_end_id  = (_param->_have_port_front_end_id )?PORT_READ(in_EXECUTE_IN_FRONT_END_ID ):0;
    66             Tcontext_t ooo_engine_id = (_param->_have_port_ooo_engine_id)?PORT_READ(in_EXECUTE_IN_OOO_ENGINE_ID):0;
    67             Tcontext_t packet_id     = (_param->_have_port_packet_id    )?PORT_READ(in_EXECUTE_IN_PACKET_ID    ):0;
    68             Toperation_t operation = PORT_READ(in_EXECUTE_IN_OPERATION);
    69 
     64            Tcontext_t   context_id    = (_param->_have_port_context_id   )?PORT_READ(in_EXECUTE_IN_CONTEXT_ID   ):0;
     65            Tcontext_t   front_end_id  = (_param->_have_port_front_end_id )?PORT_READ(in_EXECUTE_IN_FRONT_END_ID ):0;
     66            Tcontext_t   ooo_engine_id = (_param->_have_port_ooo_engine_id)?PORT_READ(in_EXECUTE_IN_OOO_ENGINE_ID):0;
     67            Tcontext_t   packet_id     = (_param->_have_port_packet_id    )?PORT_READ(in_EXECUTE_IN_PACKET_ID    ):0;
     68            Toperation_t operation     = PORT_READ(in_EXECUTE_IN_OPERATION);
     69            Ttype_t      type          = PORT_READ(in_EXECUTE_IN_TYPE);
     70           
    7071            _execute_operation->_context_id    = context_id   ;
    7172            _execute_operation->_front_end_id  = front_end_id ;
     
    7374            _execute_operation->_packet_id     = packet_id    ;
    7475            _execute_operation->_operation     = operation    ;
    75             _execute_operation->_type          = PORT_READ(in_EXECUTE_IN_TYPE        );
     76            _execute_operation->_type          = type         ;
    7677            _execute_operation->_has_immediat  = PORT_READ(in_EXECUTE_IN_HAS_IMMEDIAT);
    7778            _execute_operation->_immediat      = PORT_READ(in_EXECUTE_IN_IMMEDIAT    );
     
    9394
    9495            // Test if operation is a custom
    95             if ((operation == OPERATION_CUSTOM_L_1) or
    96                 (operation == OPERATION_CUSTOM_L_2) or
    97                 (operation == OPERATION_CUSTOM_L_3) or
    98                 (operation == OPERATION_CUSTOM_L_4) or
    99                 (operation == OPERATION_CUSTOM_L_5) or
    100                 (operation == OPERATION_CUSTOM_L_6) or
    101                 (operation == OPERATION_CUSTOM_L_7) or
    102                 (operation == OPERATION_CUSTOM_L_8))
     96            if (type == TYPE_CUSTOM)
    10397              {
    10498                uint32_t num_thread = get_num_thread(context_id   ,_param->_size_context_id,
     
    109103              }
    110104            else
    111               (*(_function_execute[operation])) (_execute_operation, execute_register, _execute_param);
     105              (*(_function_execute[type][operation])) (_execute_operation, execute_register, _execute_param);
    112106
    113107
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Operation.cpp

    r72 r76  
    5252
    5353    // Result
    54     op->_timing       = param->_timing[op->_operation];
     54    op->_timing       = param->_timing[op->_type][op->_operation];
    5555    op->_data_rd      = gpr3;
    5656    op->_data_re      = 0;
     
    7878
    7979    // Result
    80     op->_timing       = param->_timing[op->_operation];
     80    op->_timing       = param->_timing[op->_type][op->_operation];
    8181    op->_data_rd      = gpr3;
    8282    op->_data_re      = 0;
     
    102102
    103103    // Result
    104     op->_timing       = param->_timing[op->_operation];
     104    op->_timing       = param->_timing[op->_type][op->_operation];
    105105    op->_data_rd      = gpr3;
    106106    op->_data_re      = 0;
     
    123123
    124124    // Result
    125     op->_timing       = param->_timing[op->_operation];
     125    op->_timing       = param->_timing[op->_type][op->_operation];
    126126    op->_data_rd      = gpr3;
    127127  //op->_data_re      = 0;
     
    142142
    143143    // Result
    144     op->_timing       = param->_timing[op->_operation];
     144    op->_timing       = param->_timing[op->_type][op->_operation];
    145145    op->_data_rd      = gpr3;
    146146  //op->_data_re      = 0;
     
    161161
    162162    // Result
    163     op->_timing       = param->_timing[op->_operation];
     163    op->_timing       = param->_timing[op->_type][op->_operation];
    164164    op->_data_rd      = gpr3;
    165165  //op->_data_re      = 0;
     
    179179
    180180    // Result
    181     op->_timing       = param->_timing[op->_operation];
     181    op->_timing       = param->_timing[op->_type][op->_operation];
    182182    op->_data_rd      = gpr2;
    183183  //op->_data_re      = 0;
     
    200200
    201201    // Result
    202     op->_timing       = param->_timing[op->_operation];
     202    op->_timing       = param->_timing[op->_type][op->_operation];
    203203    op->_data_rd      = gpr3;
    204204  //op->_data_re      = 0;
     
    218218
    219219    // Result
    220     op->_timing       = param->_timing[op->_operation];
     220    op->_timing       = param->_timing[op->_type][op->_operation];
    221221  //op->_data_rd      = 0;
    222222  //op->_data_re      = 0;
     
    236236
    237237    // Result
    238     op->_timing       = param->_timing[op->_operation];
     238    op->_timing       = param->_timing[op->_type][op->_operation];
    239239  //op->_data_rd      = 0;
    240240  //op->_data_re      = 0;
     
    258258
    259259    // Result
    260     op->_timing       = param->_timing[op->_operation];
     260    op->_timing       = param->_timing[op->_type][op->_operation];
    261261    op->_data_rd      = imm;
    262262  //op->_data_re      = 0;
     
    277277
    278278    // Result
    279     op->_timing       = param->_timing[op->_operation];
     279    op->_timing       = param->_timing[op->_type][op->_operation];
    280280    op->_data_rd      = gpr2;
    281281  //op->_data_re      = 0;
     
    296296
    297297    // Result
    298     op->_timing       = param->_timing[op->_operation];
     298    op->_timing       = param->_timing[op->_type][op->_operation];
    299299    op->_data_rd      = gpr2;
    300300  //op->_data_re      = 0;
     
    315315
    316316    // Result
    317     op->_timing       = param->_timing[op->_operation];
     317    op->_timing       = param->_timing[op->_type][op->_operation];
    318318    op->_data_rd      = gpr3;
    319319  //op->_data_re      = 0;
     
    334334
    335335    // Result
    336     op->_timing       = param->_timing[op->_operation];
     336    op->_timing       = param->_timing[op->_type][op->_operation];
    337337    op->_data_rd      = gpr3;
    338338  //op->_data_re      = 0;
     
    353353
    354354    // Result
    355     op->_timing       = param->_timing[op->_operation];
     355    op->_timing       = param->_timing[op->_type][op->_operation];
    356356    op->_data_rd      = gpr3;
    357357  //op->_data_re      = 0;
     
    372372
    373373    // Result
    374     op->_timing       = param->_timing[op->_operation];
     374    op->_timing       = param->_timing[op->_type][op->_operation];
    375375    op->_data_rd      = gpr3;
    376376  //op->_data_re      = 0;
     
    392392
    393393    // Result
    394     op->_timing       = param->_timing[op->_operation];
     394    op->_timing       = param->_timing[op->_type][op->_operation];
    395395    op->_data_rd      = (index==param->_size_data)?0:(index+1);
    396396  //op->_data_re      = 0;
     
    412412
    413413    // Result
    414     op->_timing       = param->_timing[op->_operation];
     414    op->_timing       = param->_timing[op->_type][op->_operation];
    415415    op->_data_rd      = index;
    416416  //op->_data_re      = 0;
     
    432432
    433433    // Result
    434     op->_timing       = param->_timing[op->_operation];
     434    op->_timing       = param->_timing[op->_type][op->_operation];
    435435  //op->_data_rd      = 0;
    436436    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    452452
    453453    // Result
    454     op->_timing       = param->_timing[op->_operation];
     454    op->_timing       = param->_timing[op->_type][op->_operation];
    455455  //op->_data_rd      = 0;
    456456    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    472472
    473473    // Result
    474     op->_timing       = param->_timing[op->_operation];
     474    op->_timing       = param->_timing[op->_type][op->_operation];
    475475  //op->_data_rd      = 0;
    476476    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    492492
    493493    // Result
    494     op->_timing       = param->_timing[op->_operation];
     494    op->_timing       = param->_timing[op->_type][op->_operation];
    495495  //op->_data_rd      = 0;
    496496    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    512512
    513513    // Result
    514     op->_timing       = param->_timing[op->_operation];
     514    op->_timing       = param->_timing[op->_type][op->_operation];
    515515  //op->_data_rd      = 0;
    516516    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    532532
    533533    // Result
    534     op->_timing       = param->_timing[op->_operation];
     534    op->_timing       = param->_timing[op->_type][op->_operation];
    535535  //op->_data_rd      = 0;
    536536    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    566566
    567567    // Result
    568     op->_timing       = param->_timing[op->_operation];
     568    op->_timing       = param->_timing[op->_type][op->_operation];
    569569  //op->_data_rd      = 0;
    570570    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    593593
    594594    // Result
    595     op->_timing       = param->_timing[op->_operation];
     595    op->_timing       = param->_timing[op->_type][op->_operation];
    596596  //op->_data_rd      = 0;
    597597    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    620620   
    621621    // Result
    622     op->_timing       = param->_timing[op->_operation];
     622    op->_timing       = param->_timing[op->_type][op->_operation];
    623623  //op->_data_rd      = 0;
    624624    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    647647
    648648    // Result
    649     op->_timing       = param->_timing[op->_operation];
     649    op->_timing       = param->_timing[op->_type][op->_operation];
    650650  //op->_data_rd      = 0;
    651651    op->_data_re      = set_flag(op->_data_re,FLAG_F,f_out);
     
    698698   
    699699    // Result
    700     op->_timing       = param->_timing[op->_operation];
     700    op->_timing       = param->_timing[op->_type][op->_operation];
    701701    op->_data_rd      = gpr2; // data_rb
    702702  //op->_data_re      = 0;
     
    749749
    750750    // Result
    751     op->_timing       = param->_timing[op->_operation];
     751    op->_timing       = param->_timing[op->_type][op->_operation];
    752752    op->_write_rd     = (exception == EXCEPTION_ALU_NONE);
    753753    op->_data_rd      = gpr2; // spr
     
    770770
    771771    // Result
    772     op->_timing       = param->_timing[op->_operation];
     772    op->_timing       = param->_timing[op->_type][op->_operation];
    773773    op->_data_rd      = gpr;
    774774  //op->_data_re      = 0;
     
    794794   
    795795    // Result
    796     op->_timing       = param->_timing[op->_operation];
     796    op->_timing       = param->_timing[op->_type][op->_operation];
    797797  //op->_data_rd      = 0;
    798798  //op->_data_re      = 0;
     
    818818   
    819819    // Result
    820     op->_timing       = param->_timing[op->_operation];
     820    op->_timing       = param->_timing[op->_type][op->_operation];
    821821  //op->_data_rd      = 0;
    822822  //op->_data_re      = 0;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Parameters.cpp

    r72 r76  
    3030                          uint32_t           nb_operation       ,
    3131                          uint32_t           nb_type            ,
    32                           execute_timing_t * timing             ,
     32                          execute_timing_t** timing             ,
    3333                          morpheo::behavioural::custom::custom_information_t (*get_custom_information) (uint32_t)) :
    3434    _nb_context              (nb_context            ),
     
    4242    _nb_operation            (nb_operation          ),
    4343    _nb_type                 (nb_type               ),
    44     _timing                  (timing                ),
    4544   
    4645    _size_context_id         (log2(nb_context      )),
     
    5857    _have_port_packet_id     (_size_packet_id     > 0),
    5958
    60     _have_groupe_MAC         ( (_timing[OPERATION_ALU_L_MAC  ]._latence > 0) or
    61                                (_timing[OPERATION_ALU_L_MACRC]._latence > 0) or
    62                                (_timing[OPERATION_ALU_L_MSB  ]._latence > 0))
     59    _have_groupe_MAC         ( (timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MAC  ]._latence > 0) or
     60                               (timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MACRC]._latence > 0) or
     61                               (timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MSB  ]._latence > 0))
    6362  {
    6463    log_printf(FUNC,Functionnal_unit,FUNCTION,"Begin");
    6564
     65    _timing                 = timing;
    6666    _get_custom_information = get_custom_information;
    6767
    6868    test();
     69
    6970    log_printf(FUNC,Functionnal_unit,FUNCTION,"End");
    7071  };
     
    8384    _nb_operation            (param._nb_operation           ),
    8485    _nb_type                 (param._nb_type                ),
    85     _timing                  (param._timing                 ),
    8686
    8787    _size_context_id         (param._size_context_id        ),
     
    103103    log_printf(FUNC,Functionnal_unit,FUNCTION,"Begin");
    104104
     105    _timing                 = param._timing;
    105106    _get_custom_information = param._get_custom_information;
    106107
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Parameters_msg_error.cpp

    r72 r76  
    2828    std::string msg = "";
    2929
    30     for (uint32_t i=0; i<MAX_OPERATION; i++)
    31       if (_timing->_delay != _timing->_latence)
    32         msg = "  - For the operation '"+toString(i)+"', the delay and the latence must be equal.";
     30    for (uint32_t i=0; i<MAX_TYPE; i++)
     31      for (uint32_t j=0; j<MAX_OPERATION; j++)
     32        if (_timing[i][j]._delay != _timing[i][j]._latence)
     33          msg = "  - For the type '"+toString(i)+"', and the operation '"+toString(j)+"', the delay and the latence must be equal.";
    3334
    34     if (_have_groupe_MAC and ((_timing[OPERATION_ALU_L_MAC  ]._latence == 0) or
    35                               (_timing[OPERATION_ALU_L_MACRC]._latence == 0) or
    36                               (_timing[OPERATION_ALU_L_MSB  ]._latence == 0)))
     35    if (_have_groupe_MAC and ((_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MAC  ]._latence == 0) or
     36                              (_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MACRC]._latence == 0) or
     37                              (_timing[TYPE_SPECIAL][OPERATION_SPECIAL_L_MSB  ]._latence == 0)))
    3738      msg = "  - The functionnal unit implement a MAC unit, the latence to operation OPERATION_ALU_L_MAC, OPERATION_ALU_L_MACRC and OPERATION_ALU_L_MSB must be higher than 0.";
    3839
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h

    r75 r76  
    9696  public    : SC_IN (Tpacket_t         )    *  in_MEMORY_IN_PACKET_ID   ;
    9797  public    : SC_IN (Toperation_t      )    *  in_MEMORY_IN_OPERATION   ;
     98//public    : SC_IN (Ttype_t           )    *  in_MEMORY_IN_TYPE        ;
    9899  public    : SC_IN (Tlsq_ptr_t        )    *  in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;
    99   public    : SC_IN (Tlsq_ptr_t        )    *  in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE;
     100  public    : SC_IN (Tlsq_ptr_t        )    *  in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;
    100101//public    : SC_IN (Tcontrol_t        )    *  in_MEMORY_IN_HAS_IMMEDIAT;
    101102  public    : SC_IN (Tgeneral_data_t   )    *  in_MEMORY_IN_IMMEDIAT    ; // memory address
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config0.cfg

    r66 r76  
    13134       4       *2      # nb_gpr_write
    14142       2       *2      # nb_spr_write
     154       4       *2      # size_store_queue
     164       4       *2      # size_load_queue   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config1.cfg

    r68 r76  
    13132       4       *2      # nb_gpr_write
    14142       4       *2      # nb_spr_write
     154       4       *2      # size_store_queue
     164       4       *2      # size_load_queue   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config2.cfg

    r68 r76  
    13131       1       *2      # nb_gpr_write
    14141       1       *2      # nb_spr_write
     154       4       *2      # size_store_queue
     164       4       *2      # size_load_queue   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config_min.cfg

    r68 r76  
    13131       1       *2      # nb_gpr_write
    14141       1       *2      # nb_spr_write
     154       4       *2      # size_store_queue
     164       4       *2      # size_load_queue   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/main.cpp

    r66 r76  
    88#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/include/test.h"
    99
    10 #define NB_PARAMS 13
     10#define NB_PARAMS 15
    1111
    1212void usage (int argc, char * argv[])
     
    2727       << " - nb_gpr_write        (unsigned int)" << endl
    2828       << " - nb_spr_write        (unsigned int)" << endl
     29       << " - size_store_queue    (unsigned int)" << endl
     30       << " - size_load_queue     (unsigned int)" << endl
    2931       << "" << endl;
    3032
     
    6062  const uint32_t nb_gpr_write        = atoi(argv[x++]);
    6163  const uint32_t nb_spr_write        = atoi(argv[x++]);
     64  const uint32_t size_store_queue    = atoi(argv[x++]);
     65  const uint32_t size_load_queue     = atoi(argv[x++]);
    6266
    6367  try
     
    7781         ,nb_gpr_write
    7882         ,nb_spr_write
     83         ,size_store_queue
     84         ,size_load_queue
    7985          );
    8086     
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp

    r68 r76  
    7575  sc_signal<Toperation_t       >         * READ_QUEUE_IN_OPERATION    = new sc_signal<Toperation_t       >         ("READ_QUEUE_IN_OPERATION   ");
    7676  sc_signal<Ttype_t            >         * READ_QUEUE_IN_TYPE         = new sc_signal<Ttype_t            >         ("READ_QUEUE_IN_TYPE        ");
     77  sc_signal<Tlsq_ptr_t         >         * READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t>         ("READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE");
     78  sc_signal<Tlsq_ptr_t         >         * READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE  = new sc_signal<Tlsq_ptr_t>         ("READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ");
    7779  sc_signal<Tcontrol_t         >         * READ_QUEUE_IN_HAS_IMMEDIAT = new sc_signal<Tcontrol_t         >         ("READ_QUEUE_IN_HAS_IMMEDIAT");
    7880  sc_signal<Tgeneral_data_t    >         * READ_QUEUE_IN_IMMEDIAT     = new sc_signal<Tgeneral_data_t    >         ("READ_QUEUE_IN_IMMEDIAT    ");
     
    98100  sc_signal<Toperation_t       >         * READ_QUEUE_OUT_OPERATION   = new sc_signal<Toperation_t       >         ("READ_QUEUE_OUT_OPERATION   ");
    99101  sc_signal<Ttype_t            >         * READ_QUEUE_OUT_TYPE        = new sc_signal<Ttype_t            >         ("READ_QUEUE_OUT_TYPE        ");
     102  sc_signal<Tlsq_ptr_t         >         * READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t>        ("READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE");
     103  sc_signal<Tlsq_ptr_t         >         * READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE  = new sc_signal<Tlsq_ptr_t>        ("READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ");
    100104  sc_signal<Tcontrol_t         >         * READ_QUEUE_OUT_HAS_IMMEDIAT= new sc_signal<Tcontrol_t         >         ("READ_QUEUE_OUT_HAS_IMMEDIAT");
    101105  sc_signal<Tgeneral_data_t    >         * READ_QUEUE_OUT_IMMEDIAT    = new sc_signal<Tgeneral_data_t    >         ("READ_QUEUE_OUT_IMMEDIAT    ");
     
    226230  (*(_Read_queue-> in_READ_QUEUE_IN_OPERATION      )) (*(READ_QUEUE_IN_OPERATION      ));
    227231  (*(_Read_queue-> in_READ_QUEUE_IN_TYPE           )) (*(READ_QUEUE_IN_TYPE           ));
     232  (*(_Read_queue-> in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE)) (*(READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE));
     233  (*(_Read_queue-> in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE )) (*(READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ));
    228234  (*(_Read_queue-> in_READ_QUEUE_IN_HAS_IMMEDIAT   )) (*(READ_QUEUE_IN_HAS_IMMEDIAT   ));
    229235  (*(_Read_queue-> in_READ_QUEUE_IN_IMMEDIAT       )) (*(READ_QUEUE_IN_IMMEDIAT       ));
     
    251257  (*(_Read_queue->out_READ_QUEUE_OUT_OPERATION     )) (*(READ_QUEUE_OUT_OPERATION     ));
    252258  (*(_Read_queue->out_READ_QUEUE_OUT_TYPE          )) (*(READ_QUEUE_OUT_TYPE          ));
     259  (*(_Read_queue->out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE)) (*(READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE));
     260  (*(_Read_queue->out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE )) (*(READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ));
    253261  (*(_Read_queue->out_READ_QUEUE_OUT_HAS_IMMEDIAT  )) (*(READ_QUEUE_OUT_HAS_IMMEDIAT  ));
    254262  (*(_Read_queue->out_READ_QUEUE_OUT_IMMEDIAT      )) (*(READ_QUEUE_OUT_IMMEDIAT      ));
    255   (*(_Read_queue->out_READ_QUEUE_OUT_READ_RA       )) (*(READ_QUEUE_OUT_READ_RA       ));
     263//   (*(_Read_queue->out_READ_QUEUE_OUT_READ_RA       )) (*(READ_QUEUE_OUT_READ_RA       ));
    256264  (*(_Read_queue->out_READ_QUEUE_OUT_NUM_REG_RA    )) (*(READ_QUEUE_OUT_NUM_REG_RA    ));
    257265  (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RA_VAL   )) (*(READ_QUEUE_OUT_DATA_RA_VAL   ));
    258266  (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RA       )) (*(READ_QUEUE_OUT_DATA_RA       ));
    259   (*(_Read_queue->out_READ_QUEUE_OUT_READ_RB       )) (*(READ_QUEUE_OUT_READ_RB       ));
     267//   (*(_Read_queue->out_READ_QUEUE_OUT_READ_RB       )) (*(READ_QUEUE_OUT_READ_RB       ));
    260268  (*(_Read_queue->out_READ_QUEUE_OUT_NUM_REG_RB    )) (*(READ_QUEUE_OUT_NUM_REG_RB    ));
    261269  (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RB_VAL   )) (*(READ_QUEUE_OUT_DATA_RB_VAL   ));
    262270  (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RB       )) (*(READ_QUEUE_OUT_DATA_RB       ));
    263   (*(_Read_queue->out_READ_QUEUE_OUT_READ_RC       )) (*(READ_QUEUE_OUT_READ_RC       ));
     271//   (*(_Read_queue->out_READ_QUEUE_OUT_READ_RC       )) (*(READ_QUEUE_OUT_READ_RC       ));
    264272  (*(_Read_queue->out_READ_QUEUE_OUT_NUM_REG_RC    )) (*(READ_QUEUE_OUT_NUM_REG_RC    ));
    265273  (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RC_VAL   )) (*(READ_QUEUE_OUT_DATA_RC_VAL   ));
     
    408416              READ_QUEUE_IN_OPERATION   ->write(0);
    409417              READ_QUEUE_IN_TYPE        ->write(0);
     418              READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE->write(0);
     419              READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ->write(0);
    410420              READ_QUEUE_IN_HAS_IMMEDIAT->write(0);
    411421              READ_QUEUE_IN_IMMEDIAT    ->write(0);
     
    535545                TEST(Tcontext_t        ,READ_QUEUE_OUT_FRONT_END_ID  ->read(),(3*ctxt)%_param->_nb_front_end);
    536546
    537               TEST(Tcontrol_t        ,READ_QUEUE_OUT_READ_RA    ->read(),_read_ra      [rob_id]);
     547//            TEST(Tcontrol_t        ,READ_QUEUE_OUT_READ_RA    ->read(),_read_ra      [rob_id]);
    538548              TEST(Tgeneral_address_t,READ_QUEUE_OUT_NUM_REG_RA ->read(),_num_reg_ra   [rob_id]);
    539               TEST(Tcontrol_t        ,READ_QUEUE_OUT_DATA_RA_VAL->read(),not READ_QUEUE_OUT_READ_RA->read() or _gpr_val [_num_reg_ra[rob_id]][ctxt]);
    540               if (READ_QUEUE_OUT_READ_RA    ->read() and
     549              TEST(Tcontrol_t        ,READ_QUEUE_OUT_DATA_RA_VAL->read(),not _read_ra [rob_id] or _gpr_val [_num_reg_ra[rob_id]][ctxt]);
     550              if (_read_ra [rob_id] and
    541551                  READ_QUEUE_OUT_DATA_RA_VAL->read())
    542552              TEST(Tgeneral_data_t   ,READ_QUEUE_OUT_DATA_RA    ->read(),_gpr          [_num_reg_ra[rob_id]][ctxt]);
    543               TEST(Tcontrol_t        ,READ_QUEUE_OUT_READ_RB    ->read(),_read_rb      [rob_id]);
     553//            TEST(Tcontrol_t        ,READ_QUEUE_OUT_READ_RB    ->read(),_read_rb      [rob_id]);
    544554              TEST(Tgeneral_address_t,READ_QUEUE_OUT_NUM_REG_RB ->read(),_num_reg_rb   [rob_id]);
    545               TEST(Tcontrol_t        ,READ_QUEUE_OUT_DATA_RB_VAL->read(),not READ_QUEUE_OUT_READ_RB->read() or _gpr_val [_num_reg_rb[rob_id]][ctxt]);
    546               if (READ_QUEUE_OUT_READ_RB    ->read() and
     555              TEST(Tcontrol_t        ,READ_QUEUE_OUT_DATA_RB_VAL->read(),not _read_rb [rob_id] or _gpr_val [_num_reg_rb[rob_id]][ctxt]);
     556              if (_read_rb [rob_id] and
    547557                  READ_QUEUE_OUT_DATA_RB_VAL->read())
    548558              TEST(Tgeneral_data_t   ,READ_QUEUE_OUT_DATA_RB    ->read(),_gpr          [_num_reg_rb[rob_id]][ctxt]);
    549               TEST(Tcontrol_t        ,READ_QUEUE_OUT_READ_RC    ->read(),_read_rc      [rob_id]);
     559//            TEST(Tcontrol_t        ,READ_QUEUE_OUT_READ_RC    ->read(),_read_rc      [rob_id]);
    550560              TEST(Tspecial_address_t,READ_QUEUE_OUT_NUM_REG_RC ->read(),_num_reg_rc   [rob_id]);
    551               TEST(Tcontrol_t        ,READ_QUEUE_OUT_DATA_RC_VAL->read(),not READ_QUEUE_OUT_READ_RC->read() or _spr_val [_num_reg_rc[rob_id]][ctxt]);
    552               if (READ_QUEUE_OUT_READ_RC    ->read() and
     561              TEST(Tcontrol_t        ,READ_QUEUE_OUT_DATA_RC_VAL->read(),not _read_rc [rob_id] or _spr_val [_num_reg_rc[rob_id]][ctxt]);
     562              if (_read_rc [rob_id] and
    553563                  READ_QUEUE_OUT_DATA_RC_VAL->read())
    554564              TEST(Tspecial_data_t   ,READ_QUEUE_OUT_DATA_RC    ->read(),_spr     [_num_reg_rc[rob_id]][ctxt]);
     
    581591   delete    READ_QUEUE_IN_OPERATION    ;
    582592   delete    READ_QUEUE_IN_TYPE         ;
     593   delete    READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE;
     594   delete    READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ;
    583595   delete    READ_QUEUE_IN_HAS_IMMEDIAT ;
    584596   delete    READ_QUEUE_IN_IMMEDIAT     ;
     
    606618   delete    READ_QUEUE_OUT_OPERATION   ;
    607619   delete    READ_QUEUE_OUT_TYPE        ;
     620   delete    READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE;
     621   delete    READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ;
    608622   delete    READ_QUEUE_OUT_HAS_IMMEDIAT;
    609623   delete    READ_QUEUE_OUT_IMMEDIAT    ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h

    r75 r76  
    4141  public : const uint32_t    _nb_gpr_write         ;
    4242  public : const uint32_t    _nb_spr_write         ;
     43  public : const uint32_t    _size_store_queue     ;
     44  public : const uint32_t    _size_load_queue      ;
    4345
    4446  public : const uint32_t    _nb_gpr_read          ;
     
    7375                        uint32_t nb_type            ,
    7476                        uint32_t nb_gpr_write       ,
    75                         uint32_t nb_spr_write       );
     77                        uint32_t nb_spr_write       ,
     78                        uint32_t size_store_queue   ,
     79                        uint32_t size_load_queue    );
     80
    7681  public : Parameters  (Parameters & param) ;
    7782  public : ~Parameters () ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h

    r75 r76  
    55 * $Id$
    66 *
    7  * [ Description ]
     7 * [ Description ]
    88 *
    99 */
     
    4545  public    : Toperation_t       _operation    ;
    4646  public    : Ttype_t            _type         ;
     47  public    : Tlsq_ptr_t         _store_queue_ptr_write;
     48  public    : Tlsq_ptr_t         _load_queue_ptr_write;
    4749  public    : Tcontrol_t         _has_immediat ;
    4850  public    : Tgeneral_data_t    _immediat     ;
     
    6163                                morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_entry_t & x)
    6264    {
    63       output_stream << " * _context_id    : " << toString(x._context_id   ) << std::endl
    64                     << " * _front_end_id  : " << toString(x._front_end_id ) << std::endl
    65                     << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << std::endl
    66                     << " * _rob_id        : " << toString(x._rob_id       ) << std::endl
    67                     << " * _operation     : " << toString(x._operation    ) << std::endl
    68                     << " * _type          : " << toString(x._type         ) << std::endl
    69                     << " * _has_immediat  : " << toString(x._has_immediat ) << std::endl
    70                     << " * _immediat      : " << toString(x._immediat     ) << std::endl
    71                     << " * _read_ra       : " << toString(x._read_ra      ) << std::endl
    72                     << " * _num_reg_ra    : " << toString(x._num_reg_ra   ) << std::endl
    73                     << " * _read_rb       : " << toString(x._read_rb      ) << std::endl
    74                     << " * _num_reg_rb    : " << toString(x._num_reg_rb   ) << std::endl
    75                     << " * _read_rc       : " << toString(x._read_rc      ) << std::endl
    76                     << " * _num_reg_rc    : " << toString(x._num_reg_rc   ) << std::endl
    77                     << " * _write_rd      : " << toString(x._write_rd     ) << std::endl
    78                     << " * _num_reg_rd    : " << toString(x._num_reg_rd   ) << std::endl
    79                     << " * _write_re      : " << toString(x._write_re     ) << std::endl
    80                     << " * _num_reg_re    : " << toString(x._num_reg_re   ) << std::endl;
     65      output_stream << " * _context_id            : " << toString(x._context_id   ) << std::endl
     66                    << " * _front_end_id          : " << toString(x._front_end_id ) << std::endl
     67                    << " * _ooo_engine_id         : " << toString(x._ooo_engine_id) << std::endl
     68                    << " * _rob_id                : " << toString(x._rob_id       ) << std::endl
     69                    << " * _operation             : " << toString(x._operation    ) << std::endl
     70                    << " * _type                  : " << toString(x._type         ) << std::endl
     71                    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
     72                    << " * _load_queue_ptr_write  : " << toString(x._load_queue_ptr_write ) << std::endl
     73                    << " * _has_immediat          : " << toString(x._has_immediat ) << std::endl
     74                    << " * _immediat              : " << toString(x._immediat     ) << std::endl
     75                    << " * _read_ra               : " << toString(x._read_ra      ) << std::endl
     76                    << " * _num_reg_ra            : " << toString(x._num_reg_ra   ) << std::endl
     77                    << " * _read_rb               : " << toString(x._read_rb      ) << std::endl
     78                    << " * _num_reg_rb            : " << toString(x._num_reg_rb   ) << std::endl
     79                    << " * _read_rc               : " << toString(x._read_rc      ) << std::endl
     80                    << " * _num_reg_rc            : " << toString(x._num_reg_rc   ) << std::endl
     81                    << " * _write_rd              : " << toString(x._write_rd     ) << std::endl
     82                    << " * _num_reg_rd            : " << toString(x._num_reg_rd   ) << std::endl
     83                    << " * _write_re              : " << toString(x._write_re     ) << std::endl
     84                    << " * _num_reg_re            : " << toString(x._num_reg_re   ) << std::endl;
    8185
    8286      return output_stream;
     
    9397  public    : Toperation_t       _operation    ;
    9498  public    : Ttype_t            _type         ;
     99  public    : Tlsq_ptr_t         _store_queue_ptr_write;
     100  public    : Tlsq_ptr_t         _load_queue_ptr_write;
    95101  public    : Tcontrol_t         _has_immediat ;
    96102  public    : Tgeneral_data_t    _immediat     ;
     
    127133      _operation    = x._operation    ;
    128134      _type         = x._type         ;
     135      _store_queue_ptr_write = x._store_queue_ptr_write;
     136      _load_queue_ptr_write  = x._load_queue_ptr_write ;
    129137      _has_immediat = x._has_immediat ;
    130138      _immediat     = x._immediat     ;
     
    157165                                morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_head_entry_t & x)
    158166    {
    159       output_stream << " * _context_id    : " << x._context_id   << std::endl
    160                     << " * _front_end_id  : " << x._front_end_id << std::endl
    161                     << " * _ooo_engine_id : " << x._ooo_engine_id<< std::endl
    162                     << " * _rob_id        : " << x._rob_id       << std::endl
    163                     << " * _operation     : " << x._operation    << std::endl
    164                     << " * _type          : " << x._type         << std::endl
    165                     << " * _has_immediat  : " << x._has_immediat << std::endl
    166                     << " * _immediat      : " << x._immediat     << std::endl
    167                     << " * _read_ra       : " << x._read_ra      << std::endl
    168                     << " * _read_ra_val   : " << x._read_ra_val  << std::endl
    169                     << " * _num_reg_ra    : " << x._num_reg_ra   << std::endl
    170                     << " * _data_ra_val   : " << x._data_ra_val  << std::endl
    171                     << " * _data_ra       : " << x._data_ra      << std::endl
    172                     << " * _read_rb       : " << x._read_rb      << std::endl
    173                     << " * _read_rb_val   : " << x._read_rb_val  << std::endl
    174                     << " * _num_reg_rb    : " << x._num_reg_rb   << std::endl
    175                     << " * _data_rb_val   : " << x._data_rb_val  << std::endl
    176                     << " * _data_rb       : " << x._data_rb      << std::endl
    177                     << " * _read_rc       : " << x._read_rc      << std::endl
    178                     << " * _read_rc_val   : " << x._read_rc_val  << std::endl
    179                     << " * _num_reg_rc    : " << x._num_reg_rc   << std::endl
    180                     << " * _data_rc_val   : " << x._data_rc_val  << std::endl
    181                     << " * _data_rc       : " << x._data_rc      << std::endl
    182                     << " * _write_rd      : " << x._write_rd     << std::endl
    183                     << " * _num_reg_rd    : " << x._num_reg_rd   << std::endl
    184                     << " * _write_re      : " << x._write_re     << std::endl
    185                     << " * _num_reg_re    : " << x._num_reg_re   << std::endl;
     167      output_stream << " * _context_id            : " << x._context_id   << std::endl
     168                    << " * _front_end_id          : " << x._front_end_id << std::endl
     169                    << " * _ooo_engine_id         : " << x._ooo_engine_id<< std::endl
     170                    << " * _rob_id                : " << x._rob_id       << std::endl
     171                    << " * _operation             : " << x._operation    << std::endl
     172                    << " * _type                  : " << x._type         << std::endl
     173                    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
     174                    << " * _load_queue_ptr_write  : " << toString(x._load_queue_ptr_write ) << std::endl
     175                    << " * _has_immediat          : " << x._has_immediat << std::endl
     176                    << " * _immediat              : " << x._immediat     << std::endl
     177                    << " * _read_ra               : " << x._read_ra      << std::endl
     178                    << " * _read_ra_val           : " << x._read_ra_val  << std::endl
     179                    << " * _num_reg_ra            : " << x._num_reg_ra   << std::endl
     180                    << " * _data_ra_val           : " << x._data_ra_val  << std::endl
     181                    << " * _data_ra               : " << x._data_ra      << std::endl
     182                    << " * _read_rb               : " << x._read_rb      << std::endl
     183                    << " * _read_rb_val           : " << x._read_rb_val  << std::endl
     184                    << " * _num_reg_rb            : " << x._num_reg_rb   << std::endl
     185                    << " * _data_rb_val           : " << x._data_rb_val  << std::endl
     186                    << " * _data_rb               : " << x._data_rb      << std::endl
     187                    << " * _read_rc               : " << x._read_rc      << std::endl
     188                    << " * _read_rc_val           : " << x._read_rc_val  << std::endl
     189                    << " * _num_reg_rc            : " << x._num_reg_rc   << std::endl
     190                    << " * _data_rc_val           : " << x._data_rc_val  << std::endl
     191                    << " * _data_rc               : " << x._data_rc      << std::endl
     192                    << " * _write_rd              : " << x._write_rd     << std::endl
     193                    << " * _num_reg_rd            : " << x._num_reg_rd   << std::endl
     194                    << " * _write_re              : " << x._write_re     << std::endl
     195                    << " * _num_reg_re            : " << x._num_reg_re   << std::endl;
    186196
    187197      return output_stream;
     
    194204#endif
    195205  {
    196     // -----[ fields ]----------------------------------------------------
     206    // -----[ fields ]----------------------------------------------------
    197207    // Parameters
    198208  protected : const std::string                _name;
     
    207217
    208218#ifdef SYSTEMC
    209     // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     219    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    210220    // Interface
    211221  public    : SC_CLOCK                      *  in_CLOCK               ;
    212222  public    : SC_IN (Tcontrol_t        )    *  in_NRESET              ;
    213223
    214     // ~~~~~[ Interface "read_queue_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    215 
    216   public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_VAL          ;
    217   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_IN_ACK          ;
    218   public    : SC_IN (Tcontext_t        )    *  in_READ_QUEUE_IN_CONTEXT_ID   ;
    219   public    : SC_IN (Tcontext_t        )    *  in_READ_QUEUE_IN_FRONT_END_ID ;
    220   public    : SC_IN (Tcontext_t        )    *  in_READ_QUEUE_IN_OOO_ENGINE_ID;
    221   public    : SC_IN (Tpacket_t         )    *  in_READ_QUEUE_IN_ROB_ID       ;
    222   public    : SC_IN (Toperation_t      )    *  in_READ_QUEUE_IN_OPERATION    ;
    223   public    : SC_IN (Ttype_t           )    *  in_READ_QUEUE_IN_TYPE         ;
    224   public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_HAS_IMMEDIAT ;
    225   public    : SC_IN (Tgeneral_data_t   )    *  in_READ_QUEUE_IN_IMMEDIAT     ;
    226   public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_READ_RA      ;
    227   public    : SC_IN (Tgeneral_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RA   ;
    228   public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_READ_RB      ;
    229   public    : SC_IN (Tgeneral_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RB   ;
    230   public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_READ_RC      ;
    231   public    : SC_IN (Tspecial_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RC   ;
    232   public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_WRITE_RD     ;
    233   public    : SC_IN (Tgeneral_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RD   ;
    234   public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_WRITE_RE     ;
    235   public    : SC_IN (Tspecial_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RE   ;
    236 
    237     // ~~~~~[ Interface "read_queue_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    238 
    239   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_VAL         ;
    240   public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_OUT_ACK         ;
    241   public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_CONTEXT_ID   ;
    242   public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_FRONT_END_ID ;
    243   public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_OOO_ENGINE_ID;
    244   public    : SC_OUT(Tpacket_t         )    * out_READ_QUEUE_OUT_ROB_ID       ;
    245   public    : SC_OUT(Toperation_t      )    * out_READ_QUEUE_OUT_OPERATION   ;
    246   public    : SC_OUT(Ttype_t           )    * out_READ_QUEUE_OUT_TYPE        ;
    247   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_HAS_IMMEDIAT;
    248   public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_IMMEDIAT    ;
    249   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RA     ;
    250   public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RA  ;
    251   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RA_VAL ;
    252   public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_DATA_RA     ;
    253   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RB     ;
    254   public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RB  ;
    255   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RB_VAL ;
    256   public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_DATA_RB     ;
    257   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RC     ;
    258   public    : SC_OUT(Tspecial_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RC  ;
    259   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RC_VAL ;
    260   public    : SC_OUT(Tspecial_data_t   )    * out_READ_QUEUE_OUT_DATA_RC     ;
    261   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_WRITE_RD    ;
    262   public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RD  ;
    263   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_WRITE_RE    ;
    264   public    : SC_OUT(Tspecial_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RE  ;
    265 
    266     // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     224    // ~~~~~[ Interface "read_queue_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     225
     226  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_VAL                  ;
     227  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_IN_ACK                  ;
     228  public    : SC_IN (Tcontext_t        )    *  in_READ_QUEUE_IN_CONTEXT_ID           ;
     229  public    : SC_IN (Tcontext_t        )    *  in_READ_QUEUE_IN_FRONT_END_ID         ;
     230  public    : SC_IN (Tcontext_t        )    *  in_READ_QUEUE_IN_OOO_ENGINE_ID        ;
     231  public    : SC_IN (Tpacket_t         )    *  in_READ_QUEUE_IN_ROB_ID               ;
     232  public    : SC_IN (Toperation_t      )    *  in_READ_QUEUE_IN_OPERATION            ;
     233  public    : SC_IN (Ttype_t           )    *  in_READ_QUEUE_IN_TYPE                 ;
     234  public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE;
     235  public    : SC_IN (Tlsq_ptr_t        )    *  in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ;
     236  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_HAS_IMMEDIAT         ;
     237  public    : SC_IN (Tgeneral_data_t   )    *  in_READ_QUEUE_IN_IMMEDIAT             ;
     238  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_READ_RA              ;
     239  public    : SC_IN (Tgeneral_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RA           ;
     240  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_READ_RB              ;
     241  public    : SC_IN (Tgeneral_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RB           ;
     242  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_READ_RC              ;
     243  public    : SC_IN (Tspecial_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RC           ;
     244  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_WRITE_RD             ;
     245  public    : SC_IN (Tgeneral_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RD           ;
     246  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_IN_WRITE_RE             ;
     247  public    : SC_IN (Tspecial_address_t)    *  in_READ_QUEUE_IN_NUM_REG_RE           ;
     248
     249    // ~~~~~[ Interface "read_queue_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     250
     251  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_VAL                  ;
     252  public    : SC_IN (Tcontrol_t        )    *  in_READ_QUEUE_OUT_ACK                  ;
     253  public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_CONTEXT_ID           ;
     254  public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_FRONT_END_ID         ;
     255  public    : SC_OUT(Tcontext_t        )    * out_READ_QUEUE_OUT_OOO_ENGINE_ID        ;
     256  public    : SC_OUT(Tpacket_t         )    * out_READ_QUEUE_OUT_ROB_ID               ;
     257  public    : SC_OUT(Toperation_t      )    * out_READ_QUEUE_OUT_OPERATION            ;
     258  public    : SC_OUT(Ttype_t           )    * out_READ_QUEUE_OUT_TYPE                 ;
     259  public    : SC_OUT(Tlsq_ptr_t        )    * out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE;
     260  public    : SC_OUT(Tlsq_ptr_t        )    * out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ;
     261  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_HAS_IMMEDIAT         ;
     262  public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_IMMEDIAT             ;
     263//   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RA              ;
     264  public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RA           ;
     265  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RA_VAL          ;
     266  public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_DATA_RA              ;
     267//   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RB              ;
     268  public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RB           ;
     269  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RB_VAL          ;
     270  public    : SC_OUT(Tgeneral_data_t   )    * out_READ_QUEUE_OUT_DATA_RB              ;
     271//   public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_READ_RC              ;
     272  public    : SC_OUT(Tspecial_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RC           ;
     273  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_DATA_RC_VAL          ;
     274  public    : SC_OUT(Tspecial_data_t   )    * out_READ_QUEUE_OUT_DATA_RC              ;
     275  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_WRITE_RD             ;
     276  public    : SC_OUT(Tgeneral_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RD           ;
     277  public    : SC_OUT(Tcontrol_t        )    * out_READ_QUEUE_OUT_WRITE_RE             ;
     278  public    : SC_OUT(Tspecial_address_t)    * out_READ_QUEUE_OUT_NUM_REG_RE           ;
     279
     280    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    267281
    268282  public    : SC_OUT(Tcontrol_t        )   ** out_GPR_READ_VAL          ;
     
    273287  public    : SC_IN (Tcontrol_t        )   **  in_GPR_READ_DATA_VAL     ;
    274288
    275     // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     289    // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    276290
    277291  public    : SC_OUT(Tcontrol_t        )   ** out_SPR_READ_VAL          ;
     
    282296  public    : SC_IN (Tcontrol_t        )   **  in_SPR_READ_DATA_VAL     ;
    283297
    284     // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     298    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    285299
    286300  public    : SC_IN (Tcontrol_t        )   **  in_GPR_WRITE_VAL          ;
     
    289303  public    : SC_IN (Tgeneral_data_t   )   **  in_GPR_WRITE_DATA         ;
    290304
    291     // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     305    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    292306
    293307  public    : SC_IN (Tcontrol_t        )   **  in_SPR_WRITE_VAL          ;
     
    296310  public    : SC_IN (Tspecial_data_t   )   **  in_SPR_WRITE_DATA         ;
    297311
    298     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    299 
    300     // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     312    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     313
     314    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    301315  protected : Tread_queue_head_entry_t       * _queue_head;
    302316  protected : std::queue<Tread_queue_entry_t *>   * _queue;
    303317
    304     // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     318    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    305319 
    306320  protected  :Tcontrol_t                       internal_READ_QUEUE_OUT_VAL         ;
     
    317331#endif
    318332
    319     // -----[ methods ]---------------------------------------------------
     333    // -----[ methods ]---------------------------------------------------
    320334
    321335#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters.cpp

    r68 r76  
    3030                          uint32_t nb_type            ,
    3131                          uint32_t nb_gpr_write       ,
    32                           uint32_t nb_spr_write       ):
     32                          uint32_t nb_spr_write       ,
     33                          uint32_t size_store_queue   ,
     34                          uint32_t size_load_queue    ):
    3335    _size_queue            (size_queue           ),
    3436    _nb_context            (nb_context           ),
     
    4446    _nb_gpr_write          (nb_gpr_write         ),
    4547    _nb_spr_write          (nb_spr_write         ),
     48    _size_store_queue      (size_store_queue     ),
     49    _size_load_queue       (size_load_queue      ),
    4650
    4751    _nb_gpr_read           (2                    ),
     
    6771                              + _size_operation        //_operation   
    6872                              + _size_type             //_type         
     73                              + log2(_size_store_queue)//_store_queue_ptr_write
     74                              + log2(_size_load_queue )//_load_queue_ptr_write
    6975                              + 1                      //_has_immediat
    7076                              + _size_general_data     //_immediat     
     
    102108    _nb_gpr_write          (param._nb_gpr_write          ),
    103109    _nb_spr_write          (param._nb_spr_write          ),
     110    _size_store_queue      (param._size_store_queue      ),
     111    _size_load_queue       (param._size_load_queue       ),
    104112
    105113    _nb_gpr_read           (param._nb_gpr_read           ),
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters_print.cpp

    r75 r76  
    3939    xml.singleton_begin("nb_gpr_write       "); xml.attribut("value",toString(_nb_gpr_write       )); xml.singleton_end();
    4040    xml.singleton_begin("nb_spr_write       "); xml.attribut("value",toString(_nb_spr_write       )); xml.singleton_end();
     41    xml.singleton_begin("size_store_queue   "); xml.attribut("value",toString(_size_store_queue   )); xml.singleton_end();
     42    xml.singleton_begin("size_load_queue    "); xml.attribut("value",toString(_size_load_queue    )); xml.singleton_end();
     43
    4144    xml.balise_close();
    4245
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp

    r75 r76  
    7070       in_READ_QUEUE_IN_OPERATION      = interface->set_signal_in  <Toperation_t      > ("operation"   ,_param->_size_operation        );
    7171       in_READ_QUEUE_IN_TYPE           = interface->set_signal_in  <Ttype_t           > ("type"        ,_param->_size_type             );
     72       in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE = interface->set_signal_in  <Tlsq_ptr_t> ("store_queue_ptr_write", log2(_param->_size_store_queue));
     73       in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE  = interface->set_signal_in  <Tlsq_ptr_t> ("load_queue_ptr_write" , log2(_param->_size_load_queue ));
    7274       in_READ_QUEUE_IN_HAS_IMMEDIAT   = interface->set_signal_in  <Tcontrol_t        > ("has_immediat",1                             );
    7375       in_READ_QUEUE_IN_IMMEDIAT       = interface->set_signal_in  <Tgeneral_data_t   > ("immediat"    ,_param->_size_general_data     );
     
    107109      out_READ_QUEUE_OUT_OPERATION      = interface->set_signal_out <Toperation_t      > ("operation"   ,_param->_size_operation        );
    108110      out_READ_QUEUE_OUT_TYPE           = interface->set_signal_out <Ttype_t           > ("type"        ,_param->_size_type             );
     111      out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE = interface->set_signal_out <Tlsq_ptr_t> ("store_queue_ptr_write", log2(_param->_size_store_queue));
     112      out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE  = interface->set_signal_out <Tlsq_ptr_t> ("load_queue_ptr_write" , log2(_param->_size_load_queue ));
    109113      out_READ_QUEUE_OUT_HAS_IMMEDIAT   = interface->set_signal_out <Tcontrol_t        > ("has_immediat",1                             );
    110114      out_READ_QUEUE_OUT_IMMEDIAT       = interface->set_signal_out <Tgeneral_data_t   > ("immediat"    ,_param->_size_general_data     );
    111       out_READ_QUEUE_OUT_READ_RA        = interface->set_signal_out <Tcontrol_t        > ("read_ra"     ,1                             );
     115//       out_READ_QUEUE_OUT_READ_RA        = interface->set_signal_out <Tcontrol_t        > ("read_ra"     ,1                             );
    112116      out_READ_QUEUE_OUT_NUM_REG_RA     = interface->set_signal_out <Tgeneral_address_t> ("num_reg_ra"  ,_param->_size_general_register );
    113117      out_READ_QUEUE_OUT_DATA_RA_VAL    = interface->set_signal_out <Tcontrol_t        > ("data_ra_val" ,1                             );
    114118      out_READ_QUEUE_OUT_DATA_RA        = interface->set_signal_out <Tgeneral_data_t   > ("data_ra"     ,_param->_size_general_data     );
    115       out_READ_QUEUE_OUT_READ_RB        = interface->set_signal_out <Tcontrol_t        > ("read_rb"     ,1                             );
     119//       out_READ_QUEUE_OUT_READ_RB        = interface->set_signal_out <Tcontrol_t        > ("read_rb"     ,1                             );
    116120      out_READ_QUEUE_OUT_NUM_REG_RB     = interface->set_signal_out <Tgeneral_address_t> ("num_reg_rb"  ,_param->_size_general_register );
    117121      out_READ_QUEUE_OUT_DATA_RB_VAL    = interface->set_signal_out <Tcontrol_t        > ("data_rb_val" ,1                             );
    118122      out_READ_QUEUE_OUT_DATA_RB        = interface->set_signal_out <Tgeneral_data_t   > ("data_rb"     ,_param->_size_general_data     );
    119       out_READ_QUEUE_OUT_READ_RC        = interface->set_signal_out <Tcontrol_t        > ("read_rc"     ,1                             );
     123//       out_READ_QUEUE_OUT_READ_RC        = interface->set_signal_out <Tcontrol_t        > ("read_rc"     ,1                             );
    120124      out_READ_QUEUE_OUT_NUM_REG_RC     = interface->set_signal_out <Tspecial_address_t> ("num_reg_rc"  ,_param->_size_special_register );
    121125      out_READ_QUEUE_OUT_DATA_RC_VAL    = interface->set_signal_out <Tcontrol_t        > ("data_rc_val" ,1                             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp

    r68 r76  
    4141    delete     in_READ_QUEUE_IN_OPERATION      ;
    4242    delete     in_READ_QUEUE_IN_TYPE           ;
     43    delete     in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE;
     44    delete     in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ;
    4345    delete     in_READ_QUEUE_IN_HAS_IMMEDIAT   ;
    4446    delete     in_READ_QUEUE_IN_IMMEDIAT       ;
     
    6870    delete    out_READ_QUEUE_OUT_OPERATION      ;
    6971    delete    out_READ_QUEUE_OUT_TYPE           ;
     72    delete    out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE;
     73    delete    out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ;
    7074    delete    out_READ_QUEUE_OUT_HAS_IMMEDIAT   ;
    7175    delete    out_READ_QUEUE_OUT_IMMEDIAT       ;
    72     delete    out_READ_QUEUE_OUT_READ_RA        ;
     76//     delete    out_READ_QUEUE_OUT_READ_RA        ;
    7377    delete    out_READ_QUEUE_OUT_NUM_REG_RA     ;
    7478    delete    out_READ_QUEUE_OUT_DATA_RA_VAL    ;
    7579    delete    out_READ_QUEUE_OUT_DATA_RA        ;
    76     delete    out_READ_QUEUE_OUT_READ_RB        ;
     80//     delete    out_READ_QUEUE_OUT_READ_RB        ;
    7781    delete    out_READ_QUEUE_OUT_NUM_REG_RB     ;
    7882    delete    out_READ_QUEUE_OUT_DATA_RB_VAL    ;
    7983    delete    out_READ_QUEUE_OUT_DATA_RB        ;
    80     delete    out_READ_QUEUE_OUT_READ_RC        ;
     84//     delete    out_READ_QUEUE_OUT_READ_RC        ;
    8185    delete    out_READ_QUEUE_OUT_NUM_REG_RC     ;
    8286    delete    out_READ_QUEUE_OUT_DATA_RC_VAL    ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp

    r68 r76  
    4343    PORT_WRITE (out_READ_QUEUE_OUT_OPERATION   , _queue_head->_operation   );
    4444    PORT_WRITE (out_READ_QUEUE_OUT_TYPE        , _queue_head->_type        );
     45    PORT_WRITE (out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE, _queue_head->_store_queue_ptr_write);
     46    PORT_WRITE (out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE , _queue_head->_load_queue_ptr_write );
    4547    PORT_WRITE (out_READ_QUEUE_OUT_HAS_IMMEDIAT, _queue_head->_has_immediat);
    4648    PORT_WRITE (out_READ_QUEUE_OUT_IMMEDIAT    , _queue_head->_immediat    );
    47     PORT_WRITE (out_READ_QUEUE_OUT_READ_RA     , _queue_head->_read_ra     );
     49//     PORT_WRITE (out_READ_QUEUE_OUT_READ_RA     , _queue_head->_read_ra     );
    4850    PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RA  , _queue_head->_num_reg_ra  );
    4951//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RA_VAL , _queue_head->_data_ra_val ); // in genMealy_gpr
    5052//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RA     , _queue_head->_data_ra     ); // in genMealy_gpr
    51     PORT_WRITE (out_READ_QUEUE_OUT_READ_RB     , _queue_head->_read_rb     );
     53//     PORT_WRITE (out_READ_QUEUE_OUT_READ_RB     , _queue_head->_read_rb     );
    5254    PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RB  , _queue_head->_num_reg_rb  );
    5355//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RB_VAL , _queue_head->_data_rb_val ); // in genMealy_gpr
    5456//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RB     , _queue_head->_data_rb     ); // in genMealy_gpr
    55     PORT_WRITE (out_READ_QUEUE_OUT_READ_RC     , _queue_head->_read_rc     );
     57//     PORT_WRITE (out_READ_QUEUE_OUT_READ_RC     , _queue_head->_read_rc     );
    5658    PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RC  , _queue_head->_num_reg_rc  );
    5759//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RC_VAL , _queue_head->_data_rc_val ); // in genMealy_spr
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp

    r75 r76  
    6666            entry->_operation    = PORT_READ(in_READ_QUEUE_IN_OPERATION   );
    6767            entry->_type         = PORT_READ(in_READ_QUEUE_IN_TYPE        );
     68            entry->_store_queue_ptr_write = PORT_READ(in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE);
     69            entry->_load_queue_ptr_write  = PORT_READ(in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE );
    6870            entry->_has_immediat = PORT_READ(in_READ_QUEUE_IN_HAS_IMMEDIAT);
    6971            entry->_immediat     = PORT_READ(in_READ_QUEUE_IN_IMMEDIAT    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_memory.cfg

    r75 r76  
    16160       0       *2      # nb_bypass_write
    17171       4       *2      # nb_bypass_memory
     184       4       *2      # size_store_queue
     194       4       *2      # size_load_queue
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_write.cfg

    r75 r76  
    16161       4       *2      # nb_bypass_write
    17170       0       *2      # nb_bypass_memory
     184       4       *2      # size_store_queue
     194       4       *2      # size_load_queue
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire2.cfg

    r75 r76  
    16160       0       *2      # nb_bypass_write
    17170       0       *2      # nb_bypass_memory
     184       4       *2      # size_store_queue
     194       4       *2      # size_load_queue
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire4.cfg

    r75 r76  
    16160       0       *2      # nb_bypass_write
    17170       0       *2      # nb_bypass_memory
     184       4       *2      # size_store_queue
     194       4       *2      # size_load_queue
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_write.cfg

    r75 r76  
    16160       0       *2      # nb_bypass_write
    17170       0       *2      # nb_bypass_memory
     184       4       *2      # size_store_queue
     194       4       *2      # size_load_queue
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/main.cpp

    r69 r76  
    88#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/include/test.h"
    99
    10 #define NB_PARAMS 16
     10#define NB_PARAMS 18
    1111
    1212void usage (int argc, char * argv[])
     
    3030       << " - nb_bypass_write     (unsigned int)" << endl
    3131       << " - nb_bypass_memory    (unsigned int)" << endl
     32       << " - size_store_queue    (unsigned int)" << endl
     33       << " - size_load_queue     (unsigned int)" << endl
    3234       << "" << endl;
    3335
     
    6668  const uint32_t nb_bypass_write     = atoi(argv[x++]);
    6769  const uint32_t nb_bypass_memory    = atoi(argv[x++]);
     70  const uint32_t size_store_queue    = atoi(argv[x++]);
     71  const uint32_t size_load_queue     = atoi(argv[x++]);
    6872 
    6973  try
     
    8690         ,nb_bypass_write
    8791         ,nb_bypass_memory
     92         ,size_store_queue
     93         ,size_load_queue
    8894         );
    8995     
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/test.cpp

    r75 r76  
    7373  sc_signal<Toperation_t      > *  in_INSERT_OPERATION      = new sc_signal<Toperation_t      >;
    7474  sc_signal<Ttype_t           > *  in_INSERT_TYPE           = new sc_signal<Ttype_t           >;
     75  sc_signal<Tlsq_ptr_t        > *  in_INSERT_STORE_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t>;
     76  sc_signal<Tlsq_ptr_t        > *  in_INSERT_LOAD_QUEUE_PTR_WRITE  = new sc_signal<Tlsq_ptr_t>;
    7577  sc_signal<Tcontrol_t        > *  in_INSERT_HAS_IMMEDIAT   = new sc_signal<Tcontrol_t        >;
    7678  sc_signal<Tgeneral_data_t   > *  in_INSERT_IMMEDIAT       = new sc_signal<Tgeneral_data_t   >;
     
    100102  sc_signal<Toperation_t      > ** out_RETIRE_OPERATION      = new sc_signal<Toperation_t      > * [_param->_nb_inst_retire];
    101103  sc_signal<Ttype_t           > ** out_RETIRE_TYPE           = new sc_signal<Ttype_t           > * [_param->_nb_inst_retire];
     104  sc_signal<Tlsq_ptr_t        > ** out_RETIRE_STORE_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t> * [_param->_nb_inst_retire];
     105  sc_signal<Tlsq_ptr_t        > ** out_RETIRE_LOAD_QUEUE_PTR_WRITE  = new sc_signal<Tlsq_ptr_t> * [_param->_nb_inst_retire];
    102106  sc_signal<Tcontrol_t        > ** out_RETIRE_HAS_IMMEDIAT   = new sc_signal<Tcontrol_t        > * [_param->_nb_inst_retire];
    103107  sc_signal<Tgeneral_data_t   > ** out_RETIRE_IMMEDIAT       = new sc_signal<Tgeneral_data_t   > * [_param->_nb_inst_retire];
     
    120124      out_RETIRE_OPERATION       [i] = new sc_signal<Toperation_t      > (rename.c_str());
    121125      out_RETIRE_TYPE            [i] = new sc_signal<Ttype_t           > (rename.c_str());
     126      out_RETIRE_STORE_QUEUE_PTR_WRITE [i] = new sc_signal<Tlsq_ptr_t> (rename.c_str());
     127      out_RETIRE_LOAD_QUEUE_PTR_WRITE  [i] = new sc_signal<Tlsq_ptr_t> (rename.c_str());
    122128      out_RETIRE_HAS_IMMEDIAT    [i] = new sc_signal<Tcontrol_t        > (rename.c_str());
    123129      out_RETIRE_IMMEDIAT        [i] = new sc_signal<Tgeneral_data_t   > (rename.c_str());
     
    209215  (*(_Reservation_station-> in_INSERT_OPERATION        )) (*( in_INSERT_OPERATION        ));
    210216  (*(_Reservation_station-> in_INSERT_TYPE             )) (*( in_INSERT_TYPE             ));
     217  (*(_Reservation_station-> in_INSERT_STORE_QUEUE_PTR_WRITE)) (*( in_INSERT_STORE_QUEUE_PTR_WRITE));
     218  (*(_Reservation_station-> in_INSERT_LOAD_QUEUE_PTR_WRITE )) (*( in_INSERT_LOAD_QUEUE_PTR_WRITE ));
    211219  (*(_Reservation_station-> in_INSERT_HAS_IMMEDIAT     )) (*( in_INSERT_HAS_IMMEDIAT     ));
    212220  (*(_Reservation_station-> in_INSERT_IMMEDIAT         )) (*( in_INSERT_IMMEDIAT         ));
     
    242250  (*(_Reservation_station->out_RETIRE_OPERATION      [i])) (*(out_RETIRE_OPERATION      [i]));
    243251  (*(_Reservation_station->out_RETIRE_TYPE           [i])) (*(out_RETIRE_TYPE           [i]));
     252  (*(_Reservation_station->out_RETIRE_STORE_QUEUE_PTR_WRITE [i])) (*(out_RETIRE_STORE_QUEUE_PTR_WRITE [i]));
     253  (*(_Reservation_station->out_RETIRE_LOAD_QUEUE_PTR_WRITE  [i])) (*(out_RETIRE_LOAD_QUEUE_PTR_WRITE  [i]));
    244254  (*(_Reservation_station->out_RETIRE_HAS_IMMEDIAT   [i])) (*(out_RETIRE_HAS_IMMEDIAT   [i]));
    245255  (*(_Reservation_station->out_RETIRE_IMMEDIAT       [i])) (*(out_RETIRE_IMMEDIAT       [i]));
     
    435445              in_INSERT_OPERATION   ->write(0);
    436446              in_INSERT_TYPE        ->write(0);
     447              in_INSERT_STORE_QUEUE_PTR_WRITE->write(0);
     448              in_INSERT_LOAD_QUEUE_PTR_WRITE ->write(0);
    437449              in_INSERT_HAS_IMMEDIAT->write(0);
    438450              in_INSERT_IMMEDIAT    ->write(0);
     
    679691  delete     in_INSERT_OPERATION   ;
    680692  delete     in_INSERT_TYPE        ;
     693  delete     in_INSERT_STORE_QUEUE_PTR_WRITE;
     694  delete     in_INSERT_LOAD_QUEUE_PTR_WRITE ;
    681695  delete     in_INSERT_HAS_IMMEDIAT;
    682696  delete     in_INSERT_IMMEDIAT    ;
     
    710724  delete [] out_RETIRE_OPERATION   ;
    711725  delete [] out_RETIRE_TYPE        ;
     726  delete [] out_RETIRE_STORE_QUEUE_PTR_WRITE;
     727  delete [] out_RETIRE_LOAD_QUEUE_PTR_WRITE ;
    712728  delete [] out_RETIRE_HAS_IMMEDIAT;
    713729  delete [] out_RETIRE_IMMEDIAT    ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h

    r75 r76  
    4242  public : const uint32_t    _nb_bypass_write      ;//if nb_bypass=0, then bypass is desactivated
    4343  public : const uint32_t    _nb_bypass_memory     ;//if nb_bypass=0, then bypass is desactivated
     44  public : const uint32_t    _size_store_queue     ;
     45  public : const uint32_t    _size_load_queue      ;
     46
    4447    /*
    4548  public : const bool        _have_immediat        ;
     
    8083                        uint32_t nb_spr_write       ,
    8184                        uint32_t nb_bypass_write    ,
    82                         uint32_t nb_bypass_memory   );
     85                        uint32_t nb_bypass_memory   ,
     86                        uint32_t size_store_queue   ,
     87                        uint32_t size_load_queue    );
    8388
    8489  public : Parameters  (Parameters & param) ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h

    r75 r76  
    55 * $Id$
    66 *
    7  * [ Description ]
     7 * [ Description ]
    88 *
    99 */
     
    4747  public    : Toperation_t       _operation   ;
    4848  public    : Ttype_t            _type        ;
     49  public    : Tlsq_ptr_t         _store_queue_ptr_write;
     50  public    : Tlsq_ptr_t         _load_queue_ptr_write ;
    4951  public    : Tcontrol_t         _has_immediat;
    5052  public    : Tgeneral_data_t    _immediat    ;
     
    6971                                morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Treservation_station_entry_t & x)
    7072    {
    71       output_stream << " * _context_id     : " << toString(x._context_id     ) << std::endl
    72                     << " * _front_end_id   : " << toString(x._front_end_id   ) << std::endl
    73                     << " * _ooo_engine_id  : " << toString(x._ooo_engine_id  ) << std::endl
    74                     << " * _rob_id         : " << toString(x._rob_id         ) << std::endl
    75                     << " * _operation      : " << toString(x._operation      ) << std::endl
    76                     << " * _type           : " << toString(x._type           ) << std::endl
    77                     << " * _has_immediat   : " << toString(x._has_immediat   ) << std::endl
    78                     << " * _immediat       : " << toString(x._immediat       ) << std::endl
    79 //                  << " * _read_ra        : " << toString(x._read_ra        ) << std::endl
    80                     << " * _num_reg_ra     : " << toString(x._num_reg_ra     ) << std::endl
    81                     << " * _data_ra_val    : " << toString(x._data_ra_val    ) << std::endl
    82                     << " * _data_ra        : " << toString(x._data_ra        ) << std::endl
    83 //                  << " * _read_rb        : " << toString(x._read_rb        ) << std::endl
    84                     << " * _num_reg_rb     : " << toString(x._num_reg_rb     ) << std::endl
    85                     << " * _data_rb_val    : " << toString(x._data_rb_val    ) << std::endl
    86                     << " * _data_rb        : " << toString(x._data_rb        ) << std::endl
    87 //                  << " * _read_rc        : " << toString(x._read_rc        ) << std::endl
    88                     << " * _num_reg_rc     : " << toString(x._num_reg_rc     ) << std::endl
    89                     << " * _data_rc_val    : " << toString(x._data_rc_val    ) << std::endl
    90                     << " * _data_rc        : " << toString(x._data_rc        ) << std::endl
    91                     << " * _write_rd       : " << toString(x._write_rd       ) << std::endl
    92                     << " * _num_reg_rd     : " << toString(x._num_reg_rd     ) << std::endl
    93                     << " * _write_re       : " << toString(x._write_re       ) << std::endl
    94                     << " * _num_reg_re     : " << toString(x._num_reg_re     ) << std::endl;
     73      output_stream << " * _context_id            : " << toString(x._context_id     ) << std::endl
     74                    << " * _front_end_id          : " << toString(x._front_end_id   ) << std::endl
     75                    << " * _ooo_engine_id         : " << toString(x._ooo_engine_id  ) << std::endl
     76                    << " * _rob_id                : " << toString(x._rob_id         ) << std::endl
     77                    << " * _operation             : " << toString(x._operation      ) << std::endl
     78                    << " * _type                  : " << toString(x._type           ) << std::endl
     79                    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
     80                    << " * _load_queue_ptr_write  : " << toString(x._load_queue_ptr_write ) << std::endl
     81                    << " * _has_immediat          : " << toString(x._has_immediat   ) << std::endl
     82                    << " * _immediat              : " << toString(x._immediat       ) << std::endl
     83//                  << " * _read_ra               : " << toString(x._read_ra        ) << std::endl
     84                    << " * _num_reg_ra            : " << toString(x._num_reg_ra     ) << std::endl
     85                    << " * _data_ra_val           : " << toString(x._data_ra_val    ) << std::endl
     86                    << " * _data_ra               : " << toString(x._data_ra        ) << std::endl
     87//                  << " * _read_rb               : " << toString(x._read_rb        ) << std::endl
     88                    << " * _num_reg_rb            : " << toString(x._num_reg_rb     ) << std::endl
     89                    << " * _data_rb_val           : " << toString(x._data_rb_val    ) << std::endl
     90                    << " * _data_rb               : " << toString(x._data_rb        ) << std::endl
     91//                  << " * _read_rc               : " << toString(x._read_rc        ) << std::endl
     92                    << " * _num_reg_rc            : " << toString(x._num_reg_rc     ) << std::endl
     93                    << " * _data_rc_val           : " << toString(x._data_rc_val    ) << std::endl
     94                    << " * _data_rc               : " << toString(x._data_rc        ) << std::endl
     95                    << " * _write_rd              : " << toString(x._write_rd       ) << std::endl
     96                    << " * _num_reg_rd            : " << toString(x._num_reg_rd     ) << std::endl
     97                    << " * _write_re              : " << toString(x._write_re       ) << std::endl
     98                    << " * _num_reg_re            : " << toString(x._num_reg_re     ) << std::endl;
    9599
    96100      return output_stream;
    97101    }
    98 
    99102  };
    100103
     
    104107#endif
    105108  {
    106     // -----[ fields ]----------------------------------------------------
     109    // -----[ fields ]----------------------------------------------------
    107110    // Parameters
    108111  protected : const std::string       _name;
     
    118121
    119122#ifdef SYSTEMC
    120     // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     123    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    121124    // Interface
    122125  public    : SC_CLOCK                      *  in_CLOCK        ;
    123126  public    : SC_IN (Tcontrol_t)            *  in_NRESET       ;
    124127
    125     // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~
     128    // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~
    126129  public    : SC_IN (Tcontrol_t        )    *  in_INSERT_VAL            ;
    127130  public    : SC_OUT(Tcontrol_t        )    * out_INSERT_ACK            ;
     
    132135  public    : SC_IN (Toperation_t      )    *  in_INSERT_OPERATION      ;
    133136  public    : SC_IN (Ttype_t           )    *  in_INSERT_TYPE           ;
     137  public    : SC_IN (Tlsq_ptr_t        )    *  in_INSERT_STORE_QUEUE_PTR_WRITE;
     138  public    : SC_IN (Tlsq_ptr_t        )    *  in_INSERT_LOAD_QUEUE_PTR_WRITE ;
    134139  public    : SC_IN (Tcontrol_t        )    *  in_INSERT_HAS_IMMEDIAT   ;
    135140  public    : SC_IN (Tgeneral_data_t   )    *  in_INSERT_IMMEDIAT       ;
     
    151156  public    : SC_IN (Tspecial_address_t)    *  in_INSERT_NUM_REG_RE     ;
    152157
    153     // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~
     158    // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~
    154159  public    : SC_OUT(Tcontrol_t        )   ** out_RETIRE_VAL            ;
    155160  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_ACK            ;
     
    160165  public    : SC_OUT(Toperation_t      )   ** out_RETIRE_OPERATION      ;
    161166  public    : SC_OUT(Ttype_t           )   ** out_RETIRE_TYPE           ;
     167  public    : SC_OUT(Tlsq_ptr_t        )   ** out_RETIRE_STORE_QUEUE_PTR_WRITE;
     168  public    : SC_OUT(Tlsq_ptr_t        )   ** out_RETIRE_LOAD_QUEUE_PTR_WRITE ;
    162169  public    : SC_OUT(Tcontrol_t        )   ** out_RETIRE_HAS_IMMEDIAT   ;
    163170  public    : SC_OUT(Tgeneral_data_t   )   ** out_RETIRE_IMMEDIAT       ;
     
    170177  public    : SC_OUT(Tspecial_address_t)   ** out_RETIRE_NUM_REG_RE     ;
    171178
    172     // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     179    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    173180
    174181  public    : SC_IN (Tcontrol_t        )   **  in_GPR_WRITE_VAL          ; // val and ack
     
    177184  public    : SC_IN (Tgeneral_data_t   )   **  in_GPR_WRITE_DATA         ;
    178185
    179     // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     186    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    180187
    181188  public    : SC_IN (Tcontrol_t        )   **  in_SPR_WRITE_VAL          ; // val and ack
     
    184191  public    : SC_IN (Tspecial_data_t   )   **  in_SPR_WRITE_DATA         ;
    185192
    186     // ~~~~~[ Interface "bypass_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     193    // ~~~~~[ Interface "bypass_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    187194
    188195  public    : SC_IN (Tcontext_t        )   **  in_BYPASS_WRITE_OOO_ENGINE_ID ;
     
    194201  public    : SC_IN (Tspecial_data_t   )   **  in_BYPASS_WRITE_SPR_DATA      ;
    195202
    196     // ~~~~~[ Interface "bypass_memory" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     203    // ~~~~~[ Interface "bypass_memory" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    197204
    198205  public    : SC_IN (Tcontrol_t        )   **  in_BYPASS_MEMORY_VAL          ;
     
    202209
    203210
    204     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    205 
    206     // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    207 
    208     // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     211    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     212
     213    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     214
     215    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    209216#ifdef  SYSTEMC_VHDL_COMPATIBILITY
    210217  protected : bool                          *  _queue_valid;
     
    220227#endif
    221228
    222     // -----[ methods ]---------------------------------------------------
     229    // -----[ methods ]---------------------------------------------------
    223230
    224231#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters.cpp

    r69 r76  
    3535                          uint32_t nb_spr_write       ,
    3636                          uint32_t nb_bypass_write    ,
    37                           uint32_t nb_bypass_memory   ):
     37                          uint32_t nb_bypass_memory   ,
     38                          uint32_t size_store_queue   ,
     39                          uint32_t size_load_queue    ):
    3840    _size_queue            (size_queue           ),
    3941    _nb_inst_retire        (nb_inst_retire       ),
     
    5254    _nb_bypass_write       (nb_bypass_write      ),
    5355    _nb_bypass_memory      (nb_bypass_memory     ),
     56    _size_store_queue      (size_store_queue     ),
     57    _size_load_queue       (size_load_queue      ),
    5458
    5559    _size_context_id       (static_cast<uint32_t>(log2(_nb_context         ))),
     
    9195    _nb_bypass_write       (param._nb_bypass_write       ),
    9296    _nb_bypass_memory      (param._nb_bypass_memory      ),
     97    _size_store_queue      (param._size_store_queue      ),
     98    _size_load_queue       (param._size_load_queue       ),
    9399
    94100    _size_context_id       (param._size_context_id       ),
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_print.cpp

    r75 r76  
    4444    xml.singleton_begin("nb_bypass_write    "); xml.attribut("value",toString(_nb_bypass_write    )); xml.singleton_end();
    4545    xml.singleton_begin("nb_bypass_memory   "); xml.attribut("value",toString(_nb_bypass_memory   )); xml.singleton_end();
     46    xml.singleton_begin("size_store_queue   "); xml.attribut("value",toString(_size_store_queue   )); xml.singleton_end();
     47    xml.singleton_begin("size_load_queue    "); xml.attribut("value",toString(_size_load_queue    )); xml.singleton_end();
    4648    xml.balise_close();
    4749
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp

    r75 r76  
    7272       in_INSERT_OPERATION      = interface->set_signal_in <Toperation_t      > ("operation"      ,_param->_size_operation        );
    7373       in_INSERT_TYPE           = interface->set_signal_in <Ttype_t           > ("type"           ,_param->_size_type             );
     74       in_INSERT_STORE_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("store_queue_ptr_write" ,log2(_param->_size_store_queue));
     75       in_INSERT_LOAD_QUEUE_PTR_WRITE  = interface->set_signal_in <Tlsq_ptr_t> ("load_queue_ptr_write"  ,log2(_param->_size_load_queue) );
    7476       in_INSERT_HAS_IMMEDIAT   = interface->set_signal_in <Tcontrol_t        > ("has_immediat"   ,1                             );
    7577       in_INSERT_IMMEDIAT       = interface->set_signal_in <Tgeneral_data_t   > ("immediat"       ,_param->_size_general_data     );
     
    105107    out_RETIRE_OPERATION      = new SC_OUT(Toperation_t      ) * [_param->_nb_inst_retire];
    106108    out_RETIRE_TYPE           = new SC_OUT(Ttype_t           ) * [_param->_nb_inst_retire];
     109    out_RETIRE_STORE_QUEUE_PTR_WRITE = new SC_OUT(Tlsq_ptr_t ) * [_param->_nb_inst_retire];
     110    out_RETIRE_LOAD_QUEUE_PTR_WRITE  = new SC_OUT(Tlsq_ptr_t ) * [_param->_nb_inst_retire];
    107111    out_RETIRE_HAS_IMMEDIAT   = new SC_OUT(Tcontrol_t        ) * [_param->_nb_inst_retire];
    108112    out_RETIRE_IMMEDIAT       = new SC_OUT(Tgeneral_data_t   ) * [_param->_nb_inst_retire];
     
    136140        out_RETIRE_OPERATION    [i] = interface->set_signal_out<Toperation_t      > ("operation"    ,_param->_size_operation);
    137141        out_RETIRE_TYPE         [i] = interface->set_signal_out<Ttype_t           > ("type"         ,_param->_size_type);
     142        out_RETIRE_STORE_QUEUE_PTR_WRITE [i] = interface->set_signal_out<Tlsq_ptr_t> ("store_queue_ptr_write" ,log2(_param->_size_store_queue));
     143        out_RETIRE_LOAD_QUEUE_PTR_WRITE  [i] = interface->set_signal_out<Tlsq_ptr_t> ("load_queue_ptr_write"  ,log2(_param->_size_load_queue) );
     144
    138145        out_RETIRE_HAS_IMMEDIAT [i] = interface->set_signal_out<Tcontrol_t        > ("has_immediat" ,1);
    139146        out_RETIRE_IMMEDIAT     [i] = interface->set_signal_out<Tgeneral_data_t   > ("immediat"     ,_param->_size_general_data);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp

    r69 r76  
    4343    delete     in_INSERT_OPERATION     ;
    4444    delete     in_INSERT_TYPE          ;
     45    delete     in_INSERT_STORE_QUEUE_PTR_WRITE;
     46    delete     in_INSERT_LOAD_QUEUE_PTR_WRITE ;
    4547    delete     in_INSERT_HAS_IMMEDIAT  ;
    4648    delete     in_INSERT_IMMEDIAT      ;
     
    7476    delete [] out_RETIRE_OPERATION     ;
    7577    delete [] out_RETIRE_TYPE          ;
     78    delete [] out_RETIRE_STORE_QUEUE_PTR_WRITE;
     79    delete [] out_RETIRE_LOAD_QUEUE_PTR_WRITE ;
    7680    delete [] out_RETIRE_HAS_IMMEDIAT  ;
    7781    delete [] out_RETIRE_IMMEDIAT      ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp

    r70 r76  
    101101            PORT_WRITE(out_RETIRE_OPERATION     [i],_queue[index_find]._operation);
    102102            PORT_WRITE(out_RETIRE_TYPE          [i],_queue[index_find]._type);
     103            PORT_WRITE(out_RETIRE_STORE_QUEUE_PTR_WRITE [i],_queue[index_find]._store_queue_ptr_write);
     104            PORT_WRITE(out_RETIRE_LOAD_QUEUE_PTR_WRITE  [i],_queue[index_find]._load_queue_ptr_write );
    103105            PORT_WRITE(out_RETIRE_HAS_IMMEDIAT  [i],_queue[index_find]._has_immediat);
    104106            PORT_WRITE(out_RETIRE_IMMEDIAT      [i],_queue[index_find]._immediat);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp

    r70 r76  
    258258            _queue[index]._operation       = PORT_READ(in_INSERT_OPERATION      );
    259259            _queue[index]._type            = PORT_READ(in_INSERT_TYPE           );
     260            _queue[index]._store_queue_ptr_write = PORT_READ(in_INSERT_STORE_QUEUE_PTR_WRITE);
     261            _queue[index]._load_queue_ptr_write  = PORT_READ(in_INSERT_LOAD_QUEUE_PTR_WRITE );
    260262            _queue[index]._has_immediat    = PORT_READ(in_INSERT_HAS_IMMEDIAT   );
    261263            _queue[index]._immediat        = PORT_READ(in_INSERT_IMMEDIAT       );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp

    r75 r76  
    5555       ALLOC_VAL_IN    ( in_WRITE_QUEUE_IN_VAL);
    5656       ALLOC_ACK_OUT   (out_WRITE_QUEUE_IN_ACK);
    57        if(_param->_have_port_context_id)
    5857       ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_CONTEXT_ID   ,"context_id"   ,Tcontext_t        ,_param->_size_context_id       );
    59        if(_param->_have_port_front_end_id)
    6058       ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t        ,_param->_size_front_end_id     );
    61        if(_param->_have_port_ooo_engine_id)
    6259       ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id    );
    63        if(_param->_have_port_packet_id)
    6460       ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_PACKET_ID    ,"packet_id"    ,Tpacket_t         ,_param->_size_packet_id        );
    6561//     ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation        );
     
    8278       ALLOC_VAL_OUT   (out_WRITE_QUEUE_OUT_VAL);
    8379       ALLOC_ACK_IN    ( in_WRITE_QUEUE_OUT_ACK);
    84        if(_param->_have_port_context_id)
    8580       ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id   );
    86        if(_param->_have_port_front_end_id)
    8781       ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_FRONT_END_ID ,"front_end_id" ,Tcontext_t     ,_param->_size_front_end_id );
    88        if(_param->_have_port_ooo_engine_id)
    8982       ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t     ,_param->_size_ooo_engine_id);
    90        if(_param->_have_port_packet_id)
    9183       ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_PACKET_ID    ,"packet_id"    ,Tpacket_t      ,_param->_size_packet_id    );
    9284//     ALLOC_SIGNAL_OUT(out_WRITE_QUEUE_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation    );
     
    10294       ALLOC1_INTERFACE("gpr_write", OUT, SOUTH ,"Output of write_queue", _param->_nb_gpr_write);
    10395
    104        ALLOC1_VAL_OUT   (out_GPR_WRITE_VAL          ,_param->_nb_gpr_write);
    105        ALLOC1_ACK_IN    ( in_GPR_WRITE_ACK          ,_param->_nb_gpr_write);
    106        if(_param->_have_port_ooo_engine_id)
    107        ALLOC1_SIGNAL_OUT(out_GPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   ,_param->_nb_gpr_write);
    108        ALLOC1_SIGNAL_OUT(out_GPR_WRITE_NUM_REG      ,"num_reg"      ,Tgeneral_address_t,_param->_size_general_register,_param->_nb_gpr_write);
    109        ALLOC1_SIGNAL_OUT(out_GPR_WRITE_DATA         ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data    ,_param->_nb_gpr_write);
     96       ALLOC1_VAL_OUT   (out_GPR_WRITE_VAL);
     97       ALLOC1_ACK_IN    ( in_GPR_WRITE_ACK);
     98       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
     99       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_NUM_REG      ,"num_reg"      ,Tgeneral_address_t,_param->_size_general_register);
     100       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_DATA         ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data    );
    110101     }
    111102
     
    114105       ALLOC1_INTERFACE("spr_write", OUT, SOUTH ,"Output of write_queue", _param->_nb_spr_write);
    115106
    116        ALLOC1_VAL_OUT   (out_SPR_WRITE_VAL          ,_param->_nb_spr_write);
    117        ALLOC1_ACK_IN    ( in_SPR_WRITE_ACK          ,_param->_nb_spr_write);
    118        if(_param->_have_port_ooo_engine_id)
    119        ALLOC1_SIGNAL_OUT(out_SPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   ,_param->_nb_spr_write);
    120        ALLOC1_SIGNAL_OUT(out_SPR_WRITE_NUM_REG      ,"num_reg"      ,Tspecial_address_t,_param->_size_special_register,_param->_nb_spr_write);
    121        ALLOC1_SIGNAL_OUT(out_SPR_WRITE_DATA         ,"data"         ,Tspecial_data_t   ,_param->_size_special_data    ,_param->_nb_spr_write);
     107       ALLOC1_VAL_OUT   (out_SPR_WRITE_VAL);
     108       ALLOC1_ACK_IN    ( in_SPR_WRITE_ACK);
     109       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
     110       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_NUM_REG      ,"num_reg"      ,Tspecial_address_t,_param->_size_special_register);
     111       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_DATA         ,"data"         ,Tspecial_data_t   ,_param->_size_special_data    );
    122112     }
    123113
     
    126116       ALLOC1_INTERFACE("bypass_write", OUT, NORTH ,"Output of internal write_queue", _param->_nb_bypass_write);
    127117       
    128        if(_param->_have_port_ooo_engine_id)
    129        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   , _param->_nb_bypass_write);
    130        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_VAL      ,"gpr_val"      ,Tcontrol_t        ,1                             , _param->_nb_bypass_write);
    131        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_NUM_REG  ,"gpr_num_reg"  ,Tgeneral_address_t,_param->_size_general_register, _param->_nb_bypass_write);
    132        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_DATA     ,"gpr_data"     ,Tgeneral_data_t   ,_param->_size_general_data    , _param->_nb_bypass_write);
    133        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_VAL      ,"spr_val"      ,Tcontrol_t        ,1                             , _param->_nb_bypass_write);
    134        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_NUM_REG  ,"spr_num_reg"  ,Tspecial_address_t,_param->_size_special_register, _param->_nb_bypass_write);
    135        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_DATA     ,"spr_data"     ,Tspecial_data_t   ,_param->_size_special_data    , _param->_nb_bypass_write);
     118       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
     119       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_VAL      ,"gpr_val"      ,Tcontrol_t        ,1                             );
     120       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_NUM_REG  ,"gpr_num_reg"  ,Tgeneral_address_t,_param->_size_general_register);
     121       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_DATA     ,"gpr_data"     ,Tgeneral_data_t   ,_param->_size_general_data    );
     122       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_VAL      ,"spr_val"      ,Tcontrol_t        ,1                             );
     123       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_NUM_REG  ,"spr_num_reg"  ,Tspecial_address_t,_param->_size_special_register);
     124       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_DATA     ,"spr_data"     ,Tspecial_data_t   ,_param->_size_special_data    );
    136125     }
    137126    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h

    r74 r76  
    159159                                               
    160160#ifdef SYSTEMC                                 
    161 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     161#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    162162  public  : void        transition                (void);
    163 //#endif
     163#endif
    164164#endif                                         
    165165#ifdef STATISTICS
     
    169169#if VHDL                                       
    170170  public  : void        vhdl                      (void);
    171   private : void        vhdl_declaration          (Vhdl * & vhdl);
    172   private : void        vhdl_body                 (Vhdl * & vhdl);
    173171#endif                                         
    174172                                               
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp

    r75 r76  
    6161       ALLOC_VAL_IN    ( in_WRITE_UNIT_IN_VAL);
    6262       ALLOC_ACK_OUT   (out_WRITE_UNIT_IN_ACK);
    63        if(_param->_have_port_context_id)
    6463       ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_CONTEXT_ID   ,"context_id"   ,Tcontext_t        ,_param->_size_context_id       );
    65        if(_param->_have_port_front_end_id)
    6664       ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t        ,_param->_size_front_end_id     );
    67        if(_param->_have_port_ooo_engine_id)
    6865       ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id    );
    69        if(_param->_have_port_packet_id)
    7066       ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_PACKET_ID    ,"packet_id"    ,Tpacket_t         ,_param->_size_packet_id        );
    7167//     ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_OPERATION    ,"operation"    ,Toperation_t      ,_param->_size_operation        );
     
    8884       ALLOC_VAL_OUT   (out_WRITE_UNIT_OUT_VAL);
    8985       ALLOC_ACK_IN    ( in_WRITE_UNIT_OUT_ACK);
    90        if(_param->_have_port_context_id)
    9186       ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id   );
    92        if(_param->_have_port_front_end_id)
    9387       ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_FRONT_END_ID ,"front_end_id" ,Tcontext_t     ,_param->_size_front_end_id );
    94        if(_param->_have_port_ooo_engine_id)
    9588       ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t     ,_param->_size_ooo_engine_id);
    96        if(_param->_have_port_packet_id)
    9789       ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_PACKET_ID    ,"packet_id"    ,Tpacket_t      ,_param->_size_packet_id    );
    9890//     ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_OPERATION    ,"operation"    ,Toperation_t   ,_param->_size_operation    );
     
    108100       ALLOC1_INTERFACE("gpr_write", OUT, SOUTH ,"Output of write_unit", _param->_nb_gpr_write);
    109101
    110        ALLOC1_VAL_OUT   (out_GPR_WRITE_VAL          ,_param->_nb_gpr_write);
    111        ALLOC1_ACK_IN    ( in_GPR_WRITE_ACK          ,_param->_nb_gpr_write);
    112        if(_param->_have_port_ooo_engine_id)
    113        ALLOC1_SIGNAL_OUT(out_GPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   ,_param->_nb_gpr_write);
    114        ALLOC1_SIGNAL_OUT(out_GPR_WRITE_NUM_REG      ,"num_reg"      ,Tgeneral_address_t,_param->_size_general_register,_param->_nb_gpr_write);
    115        ALLOC1_SIGNAL_OUT(out_GPR_WRITE_DATA         ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data    ,_param->_nb_gpr_write);
     102       ALLOC1_VAL_OUT   (out_GPR_WRITE_VAL);
     103       ALLOC1_ACK_IN    ( in_GPR_WRITE_ACK);
     104       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
     105       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_NUM_REG      ,"num_reg"      ,Tgeneral_address_t,_param->_size_general_register);
     106       ALLOC1_SIGNAL_OUT(out_GPR_WRITE_DATA         ,"data"         ,Tgeneral_data_t   ,_param->_size_general_data    );
    116107     }
    117108
     
    120111       ALLOC1_INTERFACE("spr_write", OUT, SOUTH ,"Output of write_unit", _param->_nb_spr_write);
    121112
    122        ALLOC1_VAL_OUT   (out_SPR_WRITE_VAL          ,_param->_nb_spr_write);
    123        ALLOC1_ACK_IN    ( in_SPR_WRITE_ACK          ,_param->_nb_spr_write);
    124        if(_param->_have_port_ooo_engine_id)
    125        ALLOC1_SIGNAL_OUT(out_SPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   ,_param->_nb_spr_write);
    126        ALLOC1_SIGNAL_OUT(out_SPR_WRITE_NUM_REG      ,"num_reg"      ,Tspecial_address_t,_param->_size_special_register,_param->_nb_spr_write);
    127        ALLOC1_SIGNAL_OUT(out_SPR_WRITE_DATA         ,"data"         ,Tspecial_data_t   ,_param->_size_special_data    ,_param->_nb_spr_write);
     113       ALLOC1_VAL_OUT   (out_SPR_WRITE_VAL);
     114       ALLOC1_ACK_IN    ( in_SPR_WRITE_ACK);
     115       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
     116       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_NUM_REG      ,"num_reg"      ,Tspecial_address_t,_param->_size_special_register);
     117       ALLOC1_SIGNAL_OUT(out_SPR_WRITE_DATA         ,"data"         ,Tspecial_data_t   ,_param->_size_special_data    );
    128118     }
    129119
     
    132122       ALLOC1_INTERFACE("bypass_write", OUT, NORTH ,"Output of internal write_unit", _param->_nb_bypass_write);
    133123       
    134        if(_param->_have_port_ooo_engine_id)
    135        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   , _param->_nb_bypass_write);
    136        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_VAL      ,"gpr_val"      ,Tcontrol_t        ,1                             , _param->_nb_bypass_write);
    137        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_NUM_REG  ,"gpr_num_reg"  ,Tgeneral_address_t,_param->_size_general_register, _param->_nb_bypass_write);
    138        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_DATA     ,"gpr_data"     ,Tgeneral_data_t   ,_param->_size_general_data    , _param->_nb_bypass_write);
    139        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_VAL      ,"spr_val"      ,Tcontrol_t        ,1                             , _param->_nb_bypass_write);
    140        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_NUM_REG  ,"spr_num_reg"  ,Tspecial_address_t,_param->_size_special_register, _param->_nb_bypass_write);
    141        ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_DATA     ,"spr_data"     ,Tspecial_data_t   ,_param->_size_special_data    , _param->_nb_bypass_write);
     124       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t        ,_param->_size_ooo_engine_id   );
     125       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_VAL      ,"gpr_val"      ,Tcontrol_t        ,1                             );
     126       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_NUM_REG  ,"gpr_num_reg"  ,Tgeneral_address_t,_param->_size_general_register);
     127       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_GPR_DATA     ,"gpr_data"     ,Tgeneral_data_t   ,_param->_size_general_data    );
     128       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_VAL      ,"spr_val"      ,Tcontrol_t        ,1                             );
     129       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_NUM_REG  ,"spr_num_reg"  ,Tspecial_address_t,_param->_size_special_register);
     130       ALLOC1_SIGNAL_OUT(out_BYPASS_WRITE_SPR_DATA     ,"spr_data"     ,Tspecial_data_t   ,_param->_size_special_data    );
    142131     }
    143132
     
    181170
    182171    // ~~~~~[ Instanciation ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    183 
    184172     {
    185173       name = _name+"_write_queue";
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_transition.cpp

    r74 r76  
    11#ifdef SYSTEMC
    2 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     2#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    33/*
    44 * $Id$
     
    4141}; // end namespace morpheo             
    4242#endif
    43 //#endif
     43#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_vhdl.cpp

    r74 r76  
    3030    _component->vhdl_instance(vhdl);
    3131
    32     vhdl_declaration (vhdl);
    33     vhdl_body        (vhdl);
    34 
    3532    vhdl->generate_file();
    3633
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.deps

    r71 r76  
    2626#-----[ Rules ]--------------------------------------------
    2727
    28 #.NOTPARALLEL                   : Behavioural_library Behavioural_library_clean
     28#.NOTPARALLEL                   : Behavioural_library
     29#.NOTPARALLEL                   : Behavioural_library_clean
    2930
    3031Behavioural_library             : $(Behavioural_DEPENDENCIES)
    3132                                @\
    3233                                $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural --makefile=Makefile ;
    33        
     34
    3435Behavioural_library_clean       : $(Behavioural_CLEAN)
    3536                                @\
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component.sh

    r15 r76  
    77TMP_DIR="/tmp/$SOURCE_FILE"
    88
     9TYPE=("vbe" "vst");
     10
    911#-----[ usage ]------------------------------------------------------
    1012# input  : -
     
    1719    echo " - <directory> : localisation of component";
    1820    echo " - <name>      : name of component";
     21    echo " - <type>      : type of component : ${TYPE[@]}";
    1922    echo "";
    2023    echo " Note : This script must be execute in directory's script";
     
    4952    fi;
    5053
    51     if test $# -ne 2; then
     54    if test $# -ne 3; then
     55        usage;
     56    fi;
     57
     58    find=0;
     59    for type in ${TYPE[@]}; do
     60        if test "$3" = "$type"; then
     61            find=1;
     62            SOURCE_DIR=$SOURCE_DIR"_"$type;
     63        fi;
     64    done;
     65   
     66    if test $find -eq 0; then
    5267        usage;
    5368    fi;
     
    293308    rmdir $TMP_DIR
    294309   
    295 
    296310    #translation
    297311    rename_directory      "$1/$2" $SOURCE_FILE $2;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component_vbe/Makefile.deps

    r74 r76  
    2525                                        $(Behavioural_DIR_LIBRARY)
    2626
    27 @COMPONENT_DEPENDENCIES         =       Behavioural_library
    28 
    29 @COMPONENT_CLEAN                =       Behavioural_library_clean
    30 
    3127#-----[ Rules ]--------------------------------------------
    3228
    33 #.NOTPARALLEL                   : @COMPONENT_library @COMPONENT_library_clean
    34 
    35 @COMPONENT_library              : $(@COMPONENT_DEPENDENCIES)
     29@COMPONENT_library              :
    3630                                @\
     31                                $(MAKE) --directory=$(Behavioural_DIR) --makefile=Makefile;
    3732                                $(MAKE) --directory=$(@COMPONENT_DIR) --makefile=Makefile;
    3833
    39 @COMPONENT_library_clean        : $(@COMPONENT_CLEAN)
     34@COMPONENT_library_clean        :
    4035                                @\
     36                                $(MAKE) --directory=$(Behavioural_DIR) --makefile=Makefile clean;
    4137                                $(MAKE) --directory=$(@COMPONENT_DIR) --makefile=Makefile clean;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Allocation.h

    r73 r76  
    4141  }                                                                     
    4242#define ALLOC_SIGNAL_IN(  sig, name, type, size)                        \
    43   {                                                                     \
    44     sig = interface->set_signal_in <type> (name, size);                 \
    45   }                                                                     
     43  if (size > 0)                                                         \
     44    {                                                                   \
     45      sig = interface->set_signal_in <type> (name, size);               \
     46    }                                                                   
    4647#define ALLOC_SIGNAL_OUT( sig, name, type, size)                        \
    47   {                                                                     \
    48     sig = interface->set_signal_out<type> (name, size);                 \
    49   }
     48  if (size > 0)                                                         \
     49    {                                                                   \
     50      sig = interface->set_signal_out<type> (name, size);               \
     51    }
    5052
    5153#define ALLOC_SC_SIGNAL(  sig, name, type)                              \
     
    6163#ifdef POSITION
    6264#define ALLOC1_INTERFACE( name, direction, localisation, str, it1)      \
    63   Interface_fifo * interface [it1];                                     \
     65  const uint32_t iterator_1 = it1;                                      \
     66  Interface_fifo * interface [iterator_1];                              \
    6467  {                                                                     \
    6568    std::string      separator="_";                                     \
    66     for (uint32_t i=0; i<it1; i++)                                      \
     69    for (uint32_t i=0; i<iterator_1; i++)                               \
    6770      {                                                                 \
    6871        interface [i] = _interfaces->set_interface( name+separator+toString(i), direction, localisation, str); \
     
    7174#else
    7275#define ALLOC1_INTERFACE( name, direction, localisation, str, it1)      \
    73   Interface_fifo * interface [it1];                                     \
     76  const uint32_t iterator_1 = it1;                                      \
     77  Interface_fifo * interface [iterator_1];                              \
    7478  {                                                                     \
    7579    std::string      separator="_";                                     \
    76     for (uint32_t i=0; i<it1; i++)                                      \
     80    for (uint32_t i=0; i<iterator_1; i++)                               \
    7781      {                                                                 \
    7882        interface [i] = _interfaces->set_interface( name+separator+toString(i)); \
     
    8286
    8387
    84 #define ALLOC1_VALACK_IN( sig, name, type, it1)                         \
     88#define ALLOC1_VALACK_IN( sig, name, type)                              \
    8589  {                                                                     \
    86     sig = new SC_IN (Tcontrol_t) * [it1];                               \
    87     for (uint32_t i=0; i<it1; i++)                                      \
     90    sig = new SC_IN (Tcontrol_t) * [iterator_1];                        \
     91    for (uint32_t i=0; i<iterator_1; i++)                               \
    8892      {                                                                 \
    8993        sig [i] = interface[i]->set_signal_valack_in (name, type);      \
    9094      }                                                                 \
    9195  }
    92 #define ALLOC1_VALACK_OUT(sig, name, type, it1)                         \
     96#define ALLOC1_VALACK_OUT(sig, name, type)                              \
    9397  {                                                                     \
    94     sig = new SC_OUT(Tcontrol_t) * [it1];                               \
    95     for (uint32_t i=0; i<it1; i++)                                      \
     98    sig = new SC_OUT(Tcontrol_t) * [iterator_1];                        \
     99    for (uint32_t i=0; i<iterator_1; i++)                               \
    96100      {                                                                 \
    97101        sig [i] = interface[i]->set_signal_valack_out(name, type);      \
    98102      }                                                                 \
    99103  }
    100 #define ALLOC1_VAL_IN(    sig, it1)                                     \
     104#define ALLOC1_VAL_IN(    sig                                        \
    101105  {                                                                     \
    102     sig = new SC_IN (Tcontrol_t) * [it1];                               \
    103     for (uint32_t i=0; i<it1; i++)                                      \
     106    sig = new SC_IN (Tcontrol_t) * [iterator_1];                        \
     107    for (uint32_t i=0; i<iterator_1; i++)                               \
    104108      {                                                                 \
    105109        sig [i] = interface[i]->set_signal_valack_in (VAL);             \
    106110      }                                                                 \
    107111  }
    108 #define ALLOC1_VAL_OUT(   sig, it1)                                     \
     112#define ALLOC1_VAL_OUT(   sig                                        \
    109113  {                                                                     \
    110     sig = new SC_OUT(Tcontrol_t) * [it1];                               \
    111     for (uint32_t i=0; i<it1; i++)                                      \
     114    sig = new SC_OUT(Tcontrol_t) * [iterator_1];                        \
     115    for (uint32_t i=0; i<iterator_1; i++)                               \
    112116      {                                                                 \
    113117        sig [i] = interface[i]->set_signal_valack_out(VAL);             \
    114118      }                                                                 \
    115119  }
    116 #define ALLOC1_ACK_IN(    sig, it1)                                     \
     120#define ALLOC1_ACK_IN(    sig                                        \
    117121  {                                                                     \
    118     sig = new SC_IN (Tcontrol_t) * [it1];                               \
    119     for (uint32_t i=0; i<it1; i++)                                      \
     122    sig = new SC_IN (Tcontrol_t) * [iterator_1];                        \
     123    for (uint32_t i=0; i<iterator_1; i++)                               \
    120124      {                                                                 \
    121125        sig [i] = interface[i]->set_signal_valack_in (ACK);             \
    122126      }                                                                 \
    123127  }
    124 #define ALLOC1_ACK_OUT(   sig, it1)                                     \
     128#define ALLOC1_ACK_OUT(   sig                                        \
    125129  {                                                                     \
    126     sig = new SC_OUT(Tcontrol_t) * [it1];                               \
    127     for (uint32_t i=0; i<it1; i++)                                      \
     130    sig = new SC_OUT(Tcontrol_t) * [iterator_1];                        \
     131    for (uint32_t i=0; i<iterator_1; i++)                               \
    128132      {                                                                 \
    129133        sig [i] = interface[i]->set_signal_valack_out(ACK);             \
    130134      }                                                                 \
    131135  }
    132 #define ALLOC1_SIGNAL_IN( sig, name, type, size, it1)                   \
    133   {                                                                     \
    134     sig = new SC_IN (type) * [it1];                                     \
    135     for (uint32_t i=0; i<it1; i++)                                      \
    136       {                                                                 \
    137         sig [i] = interface[i]->set_signal_in <type> (name, size);      \
    138       }                                                                 \
    139   }
     136#define ALLOC1_SIGNAL_IN( sig, name, type, size)                        \
     137  if (size > 0)                                                         \
     138    {                                                                   \
     139      sig = new SC_IN (type) * [iterator_1];                            \
     140      for (uint32_t i=0; i<iterator_1; i++)                             \
     141        {                                                               \
     142          sig [i] = interface[i]->set_signal_in <type> (name, size);    \
     143        }                                                               \
     144    }
    140145
    141 #define ALLOC1_SIGNAL_OUT(sig, name, type, size, it1)                   \
    142   {                                                                     \
    143     sig = new SC_OUT(type) * [it1];                                     \
    144     for (uint32_t i=0; i<it1; i++)                                      \
    145       {                                                                 \
    146         sig [i] = interface[i]->set_signal_out<type> (name, size);      \
    147       }                                                                 \
    148   }
     146#define ALLOC1_SIGNAL_OUT(sig, name, type, size)                        \
     147  if (size > 0)                                                         \
     148    {                                                                   \
     149      sig = new SC_OUT(type) * [iterator_1];                            \
     150      for (uint32_t i=0; i<iterator_1; i++)                             \
     151        {                                                               \
     152          sig [i] = interface[i]->set_signal_out<type> (name, size);    \
     153        }                                                               \
     154    }
    149155
    150156#define ALLOC1_SC_SIGNAL( sig, name, type, it1)                         \
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Constants.h

    r72 r76  
    66
    77  //=========================================================[ Type ]=====
    8 #  define TYPE_ALU                                 0x0        // 000000 - unit multiple
    9 #  define TYPE_BRANCH                              0x1        // 000001 - unit multiple, to a special routing
    10 #  define TYPE_MEMORY                              0x2        // 000010 - unit uniq
    11 #  define TYPE_MAC                                 0x4        // 000100 - unit uniq
    12 #  define TYPE_TIMER                               0x8        // 001000 - unit uniq
    13 #  define TYPE_CUSTOM                              0x10       // 010000 - unit uniq
     8#  define TYPE_ALU                                 0x0        // 00000 - unit multiple
     9#  define TYPE_SHIFT                               0x1        // 00000 - unit multiple
     10#  define TYPE_MOVE                                0x2        // 00000 - unit multiple
     11#  define TYPE_TEST                                0x3        // 00000 - unit multiple
     12#  define TYPE_MUL_DIV                             0x4        // 00000 - unit multiple, type optionnal
     13#  define TYPE_EXTEND                              0x5        // 00000 - unit multiple, type optionnal
     14#  define TYPE_FIND                                0x6        // 00000 - unit multiple, type optionnal
     15#  define TYPE_SPECIAL                             0x7        // 00000 - unit uniq
     16#  define TYPE_CUSTOM                              0x8        // 00000 - unit uniq
     17#  define TYPE_BRANCH                              0x9        // 00000 - unit multiple, to a special routing
     18#  define TYPE_MEMORY                              0xa        // 00000 - unit uniq
     19#  define MAX_TYPE                                 0x10       // 00000 - unit uniq
    1420
    1521  //====================================================[ Operation ]=====
     
    116122
    117123  //---------------------------------------------[ Functionnal Unit ]-----
    118 #  define OPERATION_ALU_L_ADD                      0x0        // 000_0000 l.add   , l.addi
    119 #  define OPERATION_ALU_L_ADDC                     0x1        // 000_0000 l.addc  , l.addic
    120 #  define OPERATION_ALU_L_SUB                      0x2        // 000_0000 l.sub
    121 #  define OPERATION_ALU_L_MUL                      0x3        // 000_0000 l.mul   , l.muli
    122 #  define OPERATION_ALU_L_MULU                     0x4        // 000_0000 l.mulu
    123 #  define OPERATION_ALU_L_DIV                      0x5        // 000_0000 l.div
    124 #  define OPERATION_ALU_L_DIVU                     0x6        // 000_0000 l.divu
    125 #  define OPERATION_ALU_L_AND                      0x7        // 000_0000 l.and   , l.andi
    126 #  define OPERATION_ALU_L_OR                       0x8        // 000_0000 l.or    , l.ori
    127 #  define OPERATION_ALU_L_XOR                      0x9        // 000_0000 l.xor   , l.xori
    128 #  define OPERATION_ALU_L_TEST_F                   0xa        // 000_0000 l.bf
    129 #  define OPERATION_ALU_L_TEST_NF                  0xb        // 000_0000 l.bnf
    130 #  define OPERATION_ALU_L_JALR                     0xc        // 000_0000 l.jal   , l.jalr , l.jr
    131 #  define OPERATION_ALU_L_SLL                      0xd        // 000_0000 l.sll   , l.slli
    132 #  define OPERATION_ALU_L_SRA                      0xe        // 000_0000 l.sra   , l.srai
    133 #  define OPERATION_ALU_L_SRL                      0xf        // 000_0000 l.srl   , l.srli
    134 #  define OPERATION_ALU_L_ROR                      0x10       // 000_0000 l.ror   , l.rori
    135 #  define OPERATION_ALU_L_MOVHI                    0x11       // 000_0000 l.movhi
    136 #  define OPERATION_ALU_L_EXTEND_S                 0x12       // 000_0000 l.extbs , l.exths, l.extws
    137 #  define OPERATION_ALU_L_EXTEND_Z                 0x13       // 000_0000 l.extbz , l.exthz, l.extwz
    138 #  define OPERATION_ALU_L_CMOV                     0x14       // 000_0000 l.cmov
    139 #  define OPERATION_ALU_L_FF1                      0x15       // 000_0000 l.ff1
    140 #  define OPERATION_ALU_L_FL1                      0x16       // 000_0000 l.fl1
    141 #  define OPERATION_ALU_L_MFSPR                    0x17       // 000_0000 l.mfspr
    142 #  define OPERATION_ALU_L_MTSPR                    0x18       // 000_0000 l.mtspr
    143 #  define OPERATION_ALU_L_SFGES                    0x19       // 000_0000 l.sfges , l.sfges
    144 #  define OPERATION_ALU_L_SFGEU                    0x1a       // 000_0000 l.sfgeu , l.sfgeu
    145 #  define OPERATION_ALU_L_SFGTS                    0x1b       // 000_0000 L.sfgts , l.sfgts
    146 #  define OPERATION_ALU_L_SFGTU                    0x1c       // 000_0000 l.sfgtu , l.sfgtu
    147 #  define OPERATION_ALU_L_SFLES                    0x1d       // 000_0000 l.sfles , l.sfles
    148 #  define OPERATION_ALU_L_SFLEU                    0x1e       // 000_0000 l.sfleu , l.sfleu
    149 #  define OPERATION_ALU_L_SFLTS                    0x1f       // 000_0000 l.sflts , l.sflts
    150 #  define OPERATION_ALU_L_SFLTU                    0x20       // 000_0000 l.sfltu , l.sfltu
    151 #  define OPERATION_ALU_L_SFEQ                     0x21       // 000_0000 l.sfeq  , l.sfeqi
    152 #  define OPERATION_ALU_L_SFNE                     0x22       // 000_0000 l.sfne  , l.sfnei
    153 #  define OPERATION_ALU_L_MAC                      0x23       // 000_0000 l.mac   , l.maci
    154 #  define OPERATION_ALU_L_MACRC                    0x24       // 000_0000 l.macrc
    155 #  define OPERATION_ALU_L_MSB                      0x25       // 000_0000 l.msb
     124#  define OPERATION_ALU_L_ADD                      0x1        // 000_0000 l.add   , l.addi
     125#  define OPERATION_ALU_L_ADDC                     0x2        // 000_0000 l.addc  , l.addic
     126#  define OPERATION_ALU_L_SUB                      0x4        // 000_0000 l.sub
     127#  define OPERATION_ALU_L_AND                      0x8        // 000_0000 l.and   , l.andi
     128#  define OPERATION_ALU_L_OR                       0x10       // 000_0000 l.or    , l.ori
     129#  define OPERATION_ALU_L_XOR                      0x20       // 000_0000 l.xor   , l.xori
     130
     131#  define OPERATION_SHIFT_L_SLL                    0x1        // 000_0000 l.sll   , l.slli
     132#  define OPERATION_SHIFT_L_SRA                    0x2        // 000_0000 l.sra   , l.srai
     133#  define OPERATION_SHIFT_L_SRL                    0x4        // 000_0000 l.srl   , l.srli
     134#  define OPERATION_SHIFT_L_ROR                    0x8        // 000_0000 l.ror   , l.rori
     135
     136#  define OPERATION_MOVE_L_MOVHI                   0x1        // 000_0000 l.movhi
     137#  define OPERATION_MOVE_L_CMOV                    0x2        // 000_0000 l.cmov
     138
     139#  define OPERATION_TEST_L_SFGES                   0x41       // 000_0000 l.sfges , l.sfges
     140#  define OPERATION_TEST_L_SFGEU                   0x1        // 000_0000 l.sfgeu , l.sfgeu
     141#  define OPERATION_TEST_L_SFGTS                   0x42       // 000_0000 L.sfgts , l.sfgts
     142#  define OPERATION_TEST_L_SFGTU                   0x2        // 000_0000 l.sfgtu , l.sfgtu
     143#  define OPERATION_TEST_L_SFLES                   0x44       // 000_0000 l.sfles , l.sfles
     144#  define OPERATION_TEST_L_SFLEU                   0x4        // 000_0000 l.sfleu , l.sfleu
     145#  define OPERATION_TEST_L_SFLTS                   0x48       // 000_0000 l.sflts , l.sflts
     146#  define OPERATION_TEST_L_SFLTU                   0x8        // 000_0000 l.sfltu , l.sfltu
     147#  define OPERATION_TEST_L_SFEQ                    0x10       // 000_0000 l.sfeq  , l.sfeqi
     148#  define OPERATION_TEST_L_SFNE                    0x20       // 000_0000 l.sfne  , l.sfnei
     149
     150#  define OPERATION_MUL_DIV_L_MUL                  0x1        // 000_0000 l.mul   , l.muli
     151#  define OPERATION_MUL_DIV_L_MULU                 0x2        // 000_0000 l.mulu
     152#  define OPERATION_MUL_DIV_L_DIV                  0x4        // 000_0000 l.div
     153#  define OPERATION_MUL_DIV_L_DIVU                 0x8        // 000_0000 l.divu
     154
     155#  define OPERATION_EXTEND_L_EXTEND_Z              0x1        // 000_0000 l.extbz , l.exthz, l.extwz
     156#  define OPERATION_EXTEND_L_EXTEND_S              0x2        // 000_0000 l.extbs , l.exths, l.extws
     157
     158#  define OPERATION_FIND_L_FF1                     0x1        // 000_0000 l.ff1
     159#  define OPERATION_FIND_L_FL1                     0x2        // 000_0000 l.fl1
     160
     161#  define OPERATION_SPECIAL_L_MFSPR                0x1        // 000_0000 l.mfspr
     162#  define OPERATION_SPECIAL_L_MTSPR                0x2        // 000_0000 l.mtspr
     163#  define OPERATION_SPECIAL_L_MAC                  0x4        // 000_0000 l.mac   , l.maci
     164#  define OPERATION_SPECIAL_L_MACRC                0x8        // 000_0000 l.macrc
     165#  define OPERATION_SPECIAL_L_MSB                  0x10       // 000_0000 l.msb
     166
     167#  define OPERATION_BRANCH_L_TEST_NF               0x1        // 000_0000 l.bnf
     168#  define OPERATION_BRANCH_L_TEST_F                0x2        // 000_0000 l.bf
     169#  define OPERATION_BRANCH_L_JALR                  0x4        // 000_0000 l.jal   , l.jalr , l.jr
    156170
    157171  //-------------------------------------------------------[ Custom ]-----
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_port_map.cpp

    r75 r76  
    2525    Entity * entity_dest = find_entity(component_dest);
    2626
     27
    2728    if (entity_dest == NULL)
    28       throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\", port map with unknow component \""+component_dest+"\"."));
     29      throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\", try map \""+component_src+"."+port_src+"\" with \""+component_dest+"."+port_dest+"\" but the component \""+component_dest+"\" is unknow."));
    2930
    3031    Signal * signal_dest = entity_dest->find_signal (port_dest);
    3132
    3233    if (signal_dest == NULL)
    33       throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\", port map with component \""+component_dest+"\" and a unknow signal \""+port_dest+"\"."));
     34      throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\",try map \""+component_src+"."+port_src+"\" with \""+component_dest+"."+port_dest+"\" but the component \""+component_dest+"\" have not the signal \""+port_dest+"\"."));
    3435
    3536    // Second entity
     
    3738
    3839    if (entity_src == NULL)
    39       throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\", port map with unknow component \""+component_src+"\"."));
     40      throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\", try map \""+component_src+"."+port_src+"\" with \""+component_dest+"."+port_dest+"\" but the component \""+component_src+"\" is unknow."));
    4041
    4142    Signal * signal_src = entity_src->find_signal (port_src);
    4243
    4344    if (signal_src == NULL)
    44       throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\", port map with component \""+component_src+"\" and a unknow signal \""+port_src+"\"."));
     45      throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\", try map \""+component_src+"."+port_src+"\" with \""+component_dest+"."+port_dest+"\" but the component \""+component_src+"\" have not the signal \""+port_src+"\"."));
    4546
    4647    // If all is ok, mapping
     
    5657
    5758    if (src_is_port == true)
    58       throw (ErrorMorpheo ("<Component::port_map> src can't be an interface's port of the top level."));
     59      throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\", try map \""+component_src+"."+port_src+"\" with \""+component_dest+"."+port_dest+"\" but the component \""+component_src+" is the Top_level, and we can't be use interface's port of the top level as a source."));
    5960   
    6061    // 2 cases :
     
    101102    catch (morpheo::ErrorMorpheo & error)
    102103      {
    103         throw (ErrorMorpheo ("<Component::port_map> Error in mapping between "+entity_src ->get_name()+"."+signal_src ->get_name()+" and "+entity_dest->get_name()+"."+signal_dest->get_name()+" :\n"+error.what ()));
     104        throw (ErrorMorpheo ("<Component::port_map> in component \""+name_entity+"\", try map \""+component_src+"."+port_src+"\" with \""+component_dest+"."+port_dest+"\" but "+error.what ()));
    104105      }
    105106    //catch (...)
     
    109110    log_printf(FUNC,Behavioural,FUNCTION,"End");
    110111  };
    111 
    112112
    113113  void Component::port_map (std::string component_src ,
Note: See TracChangeset for help on using the changeset viewer.