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

Almost complete design
with Test and test platform

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Parameters_msg_error.cpp

    r81 r88  
    3333    // TYPE_MOVE    |     X     |            |            | cmov is optionnal
    3434    // TYPE_TEST    |     X     |            |            |
    35     // TYPE_MUL_DIV |     X     |            |            | div is optionnal
     35    // TYPE_MUL     |     X     |            |            |
     36    // TYPE_DIV     |     X     |     X      |            |
    3637    // TYPE_EXTEND  |     X     |     X      |            |
    3738    // TYPE_FIND    |     X     |     X      |            |
     
    5859    type_valid     [TYPE_MOVE   ] = true;
    5960    type_valid     [TYPE_TEST   ] = true;
    60     type_valid     [TYPE_MUL_DIV] = true;
     61    type_valid     [TYPE_MUL    ] = true;
     62    type_valid     [TYPE_DIV    ] = true;
    6163    type_valid     [TYPE_EXTEND ] = true;
    6264    type_valid     [TYPE_FIND   ] = true;
     
    7072    type_uniq      [TYPE_MEMORY ] = true;
    7173
     74    type_optionnal [TYPE_DIV    ] = true;
    7275    type_optionnal [TYPE_EXTEND ] = true;
    7376    type_optionnal [TYPE_FIND   ] = true;
     
    8588        if (_table_execute_thread [i][j] == true)
    8689          // this execute_unit execute this thread !
    87           for (Ttype_t k=0; k<=_nb_type; k++)
    88             if (_table_execute_type[i][k] == true)
    89               {
    90                 // Test uniq type
    91                 if (type_present [j][k] and type_uniq[k])
    92                   test.error("The execute_unit '"+toString(i)+"' can execute operation of type '"+toString_type(k)+"' at the thread '"+toString(j)+"'. But an another execute_unit can be execute the same type for the same thread. And the type must be uniq !.");
    93                
    94                 type_present [j][k] = true;
    95               }
     90          for (Ttype_t k=0; k<_nb_type; k++)
     91            if (_table_execute_type[i][k] == true)
     92              {
     93//                 test.information(toString(_("Execute_unit [%d], Thread [%d], Type [%d], type_valid %d, type_present %d, type_uniq %d\n"),i,j,k,type_valid[k],type_present[j][k],type_uniq[k]));
     94               
     95                // Test uniq type
     96                if (type_present [j][k] and type_uniq[k])
     97                  test.error(toString(_("The execute_unit '%d' can execute operation of type '%s' at the thread '%d'. But an another execute_unit can be execute the same type for the same thread. And the type must be single !.\n"),i,toString_type(k).c_str(),j));
     98               
     99                type_present [j][k] = true;
     100              }
     101
     102    for (Ttype_t j=0; j<_nb_type; j++)
     103      if (not type_valid [j])
     104        for (uint32_t i=0; i<_nb_thread; i++)
     105          if (type_present [i][j])
     106            test.error(toString(_("The thread '%d' can execute the type's operation '%s' but this type is invalid.\n"),i,toString_type(j).c_str()));
    96107
    97108    for (Ttype_t j=0; j<_nb_type; j++)
     
    99110        for (uint32_t i=0; i<_nb_thread; i++)
    100111          if (not type_present [i][j])
    101             test.error("The thread '"+toString(i)+"' can't access at the execute_unit to execute the type's operation '"+toString_type(j)+"' (and this type is not optionnal !).");
     112            test.error(toString(_("The thread '%d' can't access at the execute_unit to execute the type's operation '%s' (and this type is not optional !).\n"),i,toString_type(j).c_str()));
    102113           
    103114    // Test all excluve type
    104115    for (uint32_t i=0; i<_nb_execute_unit; i++)
    105       for (Ttype_t j=0; j<=_nb_type; j++)
     116      for (Ttype_t j=0; j<_nb_type; j++)
    106117        if (type_exclusive [j] and _table_execute_type[i][j])
    107           for (Ttype_t k=0; k<=_nb_type; k++)
     118          for (Ttype_t k=0; k<_nb_type; k++)
    108119            if ((j != k) and (_table_execute_type[i][k] == true))
    109120              {
    110                 test.error("The execute_unit ["+toString(i)+"] implement the type '"+toString_type(j)+"', and this type is exclusive with all others type.");
     121                test.error(toString(_("The execute_unit [%d] implement the type '%s', and this type is exclusive with all others type.\n"),i,toString_type(j).c_str()));
    111122                break;
    112123              }
     
    120131
    121132        if (j == _nb_thread)
    122           test.error("The execute_unit ["+toString(i)+"] have none source's thread.");
     133          test.error(toString(_("The execute_unit [%d] have none source's thread.\n"),i));
    123134      }   
    124135
    125136    if ( (_priority != PRIORITY_STATIC     ) and
    126137         (_priority != PRIORITY_ROUND_ROBIN))
    127       test.error("Unsupported priority scheme. It must be Static or Round Robin.");
     138      test.error(_("Unsupported priority scheme. It must be Static or Round Robin.\n"));
    128139       
    129140    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"End");
Note: See TracChangeset for help on using the changeset viewer.