Changeset 114


Ignore:
Timestamp:
Apr 17, 2009, 12:35:37 AM (15 years ago)
Author:
rosiere
Message:

1) Fix bug with previous commit
2) Add test libc
3) Change Dhrystone

Location:
trunk
Files:
29 added
1 deleted
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/Environment/Cache/src/Cache_MultiLevel_update_access.cpp

    r81 r114  
    2020//      if (latence != 0)
    2121//        {
    22 //          std::cout << "<Cache_MultiLevel::update_access> after all update, latence must be null." << std::endl;
     22//          _cout(CACHE,"after all update, latence must be null.\n");
    2323//          exit(1);
    2424//        }
  • trunk/IPs/systemC/Environment/Cache/src/Cache_OneLevel_access.cpp

    r101 r114  
    3030      case SYNCHRONIZATION : return access_synchronization (num_port,address,trdid    ); break;
    3131      case CACHED          : return access_cached          (num_port,address,trdid,dir); break;
    32       default              : std::cout << "<Cache_Onelevel.access> unknow type : " << std::endl; exit(1); break;
     32      default              : _cerr("<Cache_Onelevel.access> unknow type\n"); exit(1); break;
    3333      }
    3434  }
  • trunk/IPs/systemC/Environment/Common/include/Debug.h

    r88 r114  
    1111#define DEBUG_TTY         true
    1212
    13 // #ifdef DEBUG
    1413# define _cout(component, str...)                                       \
    1514  do                                                                    \
     
    2120    }                                                                   \
    2221  while(0)
    23 // #else
    24 // # define _cout(component, str...)                                   
    25 //   do                                                                 
    26 //     {                                                               
    27 //     }
    28 //    while(0)
    29 // #endif
     22
     23# define _cerr(str...)                                                   \
     24  do                                                                    \
     25    {                                                                   \
     26      fprintf(stderr,str);                                              \
     27    }                                                                   \
     28  while(0)
    3029
    3130#endif
  • trunk/IPs/systemC/Environment/Makefile

    r113 r114  
    4545all                             :
    4646                                @\
    47                                 $(MAKE) all_environment; \
    4847                                $(MAKE) --directory=$(DIR_CACHE)      all; \
    4948                                $(MAKE) --directory=$(DIR_DATA)       all; \
     
    5655
    5756
    58 $(LIBRARY_FILE)                 : $(Environment_OBJECTS_DEPS)
     57$(LIBRARY_FILE)                 : $(DIR_LIB) $(Environment_OBJECTS_DEPS)
    5958                                @\
    6059                                $(ECHO) "Archive            : $@";\
    61                                 $(ECHO) "Archive            : $@";\
    62                                 $(MKDIR) $(DIR_LIB);\
    6360                                $(AR)  -r $@ $(Environment_OBJECTS_DEPS);\
    6461                                $(RANLIB) $@;
  • trunk/IPs/systemC/Environment/Makefile.Environment

    r113 r114  
    2929                                $(CXX) $(MORPHEO_L_FLAGS)      -o $@ $^ $(LIBNAME);
    3030
    31 $(DIR_OBJ)                      :
     31$(DIR_OBJ) $(DIR_BIN)           :
    3232                                @\
    3333                                $(ECHO) "Create directory   : $@";\
    3434                                $(MKDIR) $@
    35 
    36 $(DIR_BIN)                      :
    37                                 @\
    38                                 $(ECHO) "Create directory   : $@";\
    39                                 $(MKDIR) $@
    40 
    4135
    4236exe                             : all $(DIR_BIN)
  • trunk/IPs/systemC/Environment/src/Environment_transition.cpp

    r101 r114  
    130130                    if (bus_error == true)
    131131                      {
    132                         std::cout << "Icache : have a bus error" << std::endl
    133                                   << "  * entity     : " << i << std::endl
    134                                   << "  * port       : " << j << std::endl
    135                                   << std::hex
    136                                   << "  * req_addr   : " << address << std::endl
    137                                   << std::dec
    138                                   << "  * req_trdid  : " << context << std::endl
    139                                   << "  * req_pktid  : " << packet  << std::endl;
     132                        _cout(ENVIRONMENT,"  * Icache : have a bus error\n");
     133                        _cout(ENVIRONMENT,"    * entity     : %d\n",i);
     134                        _cout(ENVIRONMENT,"    * port       : %d\n",j);
     135                        _cout(ENVIRONMENT,"    * req_addr   : %x\n",address);
     136                        _cout(ENVIRONMENT,"    * req_trdid  : %d\n",context);
     137                        _cout(ENVIRONMENT,"    * req_pktid  : %d\n",packet );
    140138
    141139                        // Write in instruction [0] the bad address (only 32bit ....)
     
    211209                data::Entity      entity    = component_data->entity(static_cast<uint32_t>(address),nb_bytes);
    212210
    213                 std::cout << entity << std::endl;
     211//              std::cout << entity << std::endl;
    214212               
    215213                // Test the type of the address
     
    377375                                if (must_write == false)
    378376                                  {
    379                                     std::cerr << "<Environment::transition> SIM2OS[0] is not accessible in Read" << std::endl;
     377                                    _cerr("<Environment::transition> SIM2OS[0] is not accessible in Read\n");
    380378                                    bus_error = true;
    381379                                  }
     
    391389                                if (must_read == false)
    392390                                  {
    393                                     std::cerr << "<Environment::transition> SIM2OS[1] is not accessible in Write" << std::endl;
     391                                    _cerr("<Environment::transition> SIM2OS[1] is not accessible in Write\n");
    394392                                    bus_error = true;
    395393                                  }
     
    408406                                if (must_read == false)
    409407                                  {
    410                                     std::cerr << "<Environment::transition> SIM2OS[2] is not accessible in Write" << std::endl;
     408                                    _cerr("<Environment::transition> SIM2OS[2] is not accessible in Write\n");
    411409                                    bus_error = true;
    412410                                  }
     
    426424                                  if (must_write == false)
    427425                                    {
    428                                       std::cerr << "<Environment::transition> SIM2OS[" << num_reg << "] is not accessible in Read" << std::endl;
     426                                      _cerr("<Environment::transition> SIM2OS[%d] is not accessible in Read\n",num_reg);
    429427                                      bus_error = true;
    430428                                    }
     
    443441                      default :
    444442                        {
    445                           std::cerr << "<Environment::transition> Dcache_req : Unknow type" << std::endl;
     443                          _cerr("<Environment::transition> Dcache_req : Unknow type\n");
    446444                          exit(1);
    447445                          break;
     
    482480                    if (bus_error == true)
    483481                      {
    484                         std::cout << "Dcache : have a bus error" << std::endl
    485                                   << "  * entity     : " << i << std::endl
    486                                   << "  * port       : " << j << std::endl
    487                                   << std::hex
    488                                   << "  * req_addr   : 0x" << address << std::endl
    489                                   << std::dec
    490                                   << "  * req_trdid  : " << context << std::endl
    491                                   << "  * req_pktid  : " << packet  << std::endl;
     482                        _cout(ENVIRONMENT,"  * Dcache : have a bus error\n");
     483                        _cout(ENVIRONMENT,"    * entity     : %d\n",i);
     484                        _cout(ENVIRONMENT,"    * port       : %d\n",j);
     485                        _cout(ENVIRONMENT,"    * req_addr   : 0x%x\n",address);
     486                        _cout(ENVIRONMENT,"    * req_trdid  : %d\n",context);
     487                        _cout(ENVIRONMENT,"    * req_pktid  : %d\n",packet );
    492488
    493489                        // Write in data [0] the bad address (32bit or 64bits    )
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Configuration.cpp

    r110 r114  
    6666    if (fromString<bool>(_simulator->getParam("use_statistics")))
    6767      _usage = usage_set(_usage, USE_STATISTICS);
    68     if (fromString<bool>(_simulator->getParam("use_information")))
    69       _usage = usage_set(_usage, USE_INFORMATION);
     68//     if (fromString<bool>(_simulator->getParam("use_information")))
     69//       _usage = usage_set(_usage, USE_INFORMATION);
    7070    if (fromString<bool>(_simulator->getParam("use_header")))
    7171      _usage = usage_set(_usage, USE_HEADER);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp

    r113 r114  
    141141
    142142    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    143     _param_queue = new morpheo::behavioural::generic::queue::Parameters
    144       (_param->_size_queue,
    145        _param->_size_internal_queue,
    146        _param->_nb_bypass_write,
    147        false,
    148        false
    149        );
    150 
    151     std::string queue_name = _name + "_queue";
    152     _component_queue = new morpheo::behavioural::generic::queue::Queue
    153       (queue_name.c_str()
     143#ifdef VHDL
     144     if (usage_is_set(_usage,USE_VHDL))
     145       {
     146         _param_queue = new morpheo::behavioural::generic::queue::Parameters
     147           (_param->_size_queue,
     148            _param->_size_internal_queue,
     149            _param->_nb_bypass_write,
     150            false,
     151            false
     152            );
     153         
     154         std::string queue_name = _name + "_queue";
     155         _component_queue = new morpheo::behavioural::generic::queue::Queue
     156           (queue_name.c_str()
    154157#ifdef STATISTICS
    155        ,NULL
     158            ,NULL
    156159#endif
    157        ,_param_queue
    158        ,USE_VHDL);
    159    
    160     _component->set_component(_component_queue->_component
     160            ,_param_queue
     161            ,USE_VHDL);
     162         
     163         _component->set_component(_component_queue->_component
    161164#ifdef POSITION
    162                               , 50, 50, 50, 50
     165                                   , 50, 50, 50, 50
    163166#endif
    164                               , INSTANCE_LIBRARY
    165                               );
     167                                   , INSTANCE_LIBRARY
     168                                   );
     169       }
     170#endif
    166171
    167172#ifdef POSITION
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp

    r113 r114  
    427427                instruction_log_file [num_thread]
    428428                  << "[" << simulation_cycle() << "] "
    429                   << "{" << ((retire_ok)?" OK ":"!KO!") << "} "
    430429                  << std::hex
    431                   << "0x" << entry->address << " (0x" << (entry->address<<2) << ") "
     430                  << (entry->address<<2) << " (" << (entry->address) << ") "
    432431                  << std::dec
    433432                  << "[" << entry->cycle_rob_in << ", " << entry->cycle_commit << "] "
     433                  << "{" << ((retire_ok)?" OK ":"!KO!") << "} "
    434434                  << std::endl;
    435435#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h

    r113 r114  
    1010#define MORPHEO_MAJOR_VERSION "0"
    1111#define MORPHEO_MINOR_VERSION "2"
    12 #define MORPHEO_REVISION      "113"
     12#define MORPHEO_REVISION      "114"
    1313#define MORPHEO_CODENAME      "Castor"
    1414
    15 #define MORPHEO_DATE_DAY      "14
     15#define MORPHEO_DATE_DAY      "17
    1616#define MORPHEO_DATE_MONTH    "04"
    1717#define MORPHEO_DATE_YEAR     "2009"
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_debug.cfg

    r112 r114  
    11<?xml version="1.0" encoding="ISO-8859-1" ?>
    22
    3 <core name="Instance_debug">
     3<core name="Instance_min">
    44
    55  <thread id="0">             
    6     <parameter name="size_ifetch_queue"                     value="32" />
    7     <parameter name="nb_inst_fetch"                         value="8" />
    8     <parameter name="ras_size_queue"                        value="8" />
    9     <parameter name="upt_size_queue"                        value="8" />
    10     <parameter name="ufpt_size_queue"                       value="4" />
     6    <parameter name="size_ifetch_queue"                     value="1" />
     7    <parameter name="nb_inst_fetch"                         value="1" />
     8    <parameter name="ras_size_queue"                        value="2" />
     9    <parameter name="upt_size_queue"                        value="1" />
     10    <parameter name="ufpt_size_queue"                       value="1" />
    1111
    1212    <group id="0">
     
    1616                                                           
    1717  <decod_bloc id="0">                                       
    18     <parameter name="size_decod_queue"                      value="16"/>
    19     <parameter name="decod_queue_scheme"                    value="1" />
    20     <parameter name="nb_inst_decod"                         value="4" />
     18    <parameter name="size_decod_queue"                      value="1" />
     19    <parameter name="decod_queue_scheme"                    value="0" />
     20    <parameter name="nb_inst_decod"                         value="1" />
    2121    <parameter name="nb_context_select"                     value="1" />
    2222    <parameter name="context_select_priority"               value="1" />
     
    2525                                                           
    2626  <rename_bloc id="0">                                     
    27     <parameter name="nb_inst_insert"                        value="4" />
    28     <parameter name="nb_inst_retire"                        value="4" />
     27    <parameter name="nb_inst_insert"                        value="1" />
     28    <parameter name="nb_inst_retire"                        value="1" />
    2929    <parameter name="rename_select_priority"                value="1" />
    3030    <parameter name="rename_select_load_balancing"          value="1" />
    3131    <parameter name="rename_select_nb_front_end_select"     value="1" />
    32     <parameter name="nb_general_register"                   value="256"/>
    33     <parameter name="nb_special_register"                   value="128" />
    34     <parameter name="nb_reg_free"                           value="8" />
    35     <parameter name="nb_rename_unit_bank"                   value="8" />
     32    <parameter name="nb_general_register"                   value="64"/>
     33    <parameter name="nb_special_register"                   value="4" />
     34    <parameter name="nb_reg_free"                           value="1" />
     35    <parameter name="nb_rename_unit_bank"                   value="1" />
    3636  </rename_bloc>                                           
    3737                                                           
    38   <read_bloc id="0,1,2,3">                                       
    39     <parameter name="size_read_queue"                       value="4" />
    40     <parameter name="size_reservation_station"              value="4" />
     38  <read_bloc id="0">                                       
     39    <parameter name="size_read_queue"                       value="1" />
     40    <parameter name="size_reservation_station"              value="1" />
    4141    <parameter name="nb_inst_retire_reservation_station"    value="1" />
    4242  </read_bloc>                                             
    43 
    44   <write_bloc id="0,1,2,3,4,5,6">                                       
    45     <parameter name="size_write_queue"                      value="4" />
    46     <parameter name="size_execute_queue"                    value="4" />
     43                                                           
     44  <write_bloc id="0">                                       
     45    <parameter name="size_write_queue"                      value="1" />
     46    <parameter name="size_execute_queue"                    value="1" />
    4747    <parameter name="nb_bypass_write"                       value="0" />
    4848  </write_bloc>                                             
    49 
     49                                                           
    5050  <load_store_unit id="0">                                 
    51     <parameter name="size_store_queue"                      value="16" />
    52     <parameter name="size_load_queue"                       value="8" />
    53     <parameter name="size_speculative_access_queue"         value="4" />
    54     <parameter name="nb_port_check"                         value="4" />
     51    <parameter name="size_store_queue"                      value="2" />
     52    <parameter name="size_load_queue"                       value="1" />
     53    <parameter name="size_speculative_access_queue"         value="1" />
     54    <parameter name="nb_port_check"                         value="1" />
    5555    <parameter name="speculative_load"                      value="2" />
    5656    <parameter name="nb_bypass_memory"                      value="0" />
     
    5959  </load_store_unit>
    6060
    61   <functionnal_unit id="0,1" >
     61  <functionnal_unit id="0">
    6262    <parameter name="nb_inst_functionnal_unit" value="1" />
    6363
     
    6969    <timing type="6"  latence="1" delay="1" />
    7070    <timing type="7"  latence="1" delay="1" />
    71   </functionnal_unit>
    72 
    73   <functionnal_unit id="2">
    74     <parameter name="nb_inst_functionnal_unit" value="1" />
    75 
    7671    <timing type="8"  latence="1" delay="1" />
    7772    <timing type="10" latence="1" delay="1" />
     
    8378    <parameter name="nb_inst_branch_decod"                  value="1" />
    8479    <parameter name="nb_inst_branch_update"                 value="1" />
    85     <parameter name="btb_size_queue"                        value="256" />
    86     <parameter name="btb_associativity"                     value="8" />
     80    <parameter name="btb_size_queue"                        value="1" />
     81    <parameter name="btb_associativity"                     value="1" />
    8782    <parameter name="btb_size_counter"                      value="2" />
    88     <parameter name="btb_victim_scheme"                     value="3" />
    89     <parameter name="dir_predictor_scheme"                  value="4" />
     83    <parameter name="btb_victim_scheme"                     value="1" />
     84    <parameter name="dir_predictor_scheme"                  value="1" />
    9085                                                           
    9186    <predictor id="0">                                     
    92       <parameter name="dir_have_bht"                        value="0"  />
    93       <parameter name="dir_bht_size_shifter"                value="1"  />
    94       <parameter name="dir_bht_nb_shifter"                  value="64" />
    95       <parameter name="dir_have_pht"                        value="1"  />
    96       <parameter name="dir_pht_size_counter"                value="2"  />
    97       <parameter name="dir_pht_nb_counter"                  value="16" />
    98       <parameter name="dir_pht_size_address_share"          value="0"  />
     87      <parameter name="dir_have_bht"                        value="0" />
     88      <parameter name="dir_have_pht"                        value="0" />
    9989    </predictor>                                           
     90                                                           
    10091    <predictor id="1">                                     
    101       <parameter name="dir_have_bht"                        value="1" />
    102       <parameter name="dir_bht_size_shifter"                value="4" />
    103       <parameter name="dir_bht_nb_shifter"                  value="1" />
    104       <parameter name="dir_have_pht"                        value="1" />
    105       <parameter name="dir_pht_size_counter"                value="2" />
    106       <parameter name="dir_pht_nb_counter"                  value="64" />
    107       <parameter name="dir_pht_size_address_share"          value="0" />
     92      <parameter name="dir_have_bht"                        value="0" />
     93      <parameter name="dir_have_pht"                        value="0" />
    10894    </predictor>                                           
     95                                                           
    10996    <predictor id="2">                                     
    11097      <parameter name="dir_have_bht"                        value="0" />
    111       <parameter name="dir_have_pht"                        value="1" />
    112       <parameter name="dir_pht_size_counter"                value="2" />
    113       <parameter name="dir_pht_nb_counter"                  value="128" />
    114       <parameter name="dir_pht_size_address_share"          value="0" />
    115     </predictor>                                           
     98      <parameter name="dir_have_pht"                        value="0" />
     99    </predictor>
    116100  </front_end>
    117101
    118102  <ooo_engine id="0">
    119103    <parameter name="nb_rename_unit"                        value="1" />
    120     <parameter name="nb_inst_issue"                         value="4" />
     104    <parameter name="nb_inst_issue"                         value="1" />
    121105    <parameter name="nb_inst_reexecute"                     value="1" />
    122     <parameter name="nb_inst_commit"                        value="4" />
     106    <parameter name="nb_inst_commit"                        value="1" />
    123107    <parameter name="nb_inst_branch_complete"               value="1" />
    124108    <parameter name="nb_rename_unit_select"                 value="1" />
    125109    <parameter name="nb_execute_loop_select"                value="1" />
    126     <parameter name="size_re_order_buffer"                  value="64"/>
    127     <parameter name="nb_re_order_buffer_bank"               value="64" />
     110    <parameter name="size_re_order_buffer"                  value="1" />
     111    <parameter name="nb_re_order_buffer_bank"               value="1" />
    128112    <parameter name="commit_priority"                       value="1" />
    129113    <parameter name="commit_load_balancing"                 value="1" />
    130     <parameter name="size_issue_queue"                      value="8" />
    131     <parameter name="nb_issue_queue_bank"                   value="4" />
     114    <parameter name="size_issue_queue"                      value="1" />
     115    <parameter name="nb_issue_queue_bank"                   value="1" />
    132116    <parameter name="issue_queue_scheme"                    value="0" />
    133117    <parameter name="issue_priority"                        value="1" />
    134118    <parameter name="issue_load_balancing"                  value="1" />
    135     <parameter name="size_reexecute_queue"                  value="4" />
     119    <parameter name="size_reexecute_queue"                  value="1" />
    136120    <parameter name="reexecute_priority"                    value="1" />
    137121    <parameter name="reexecute_load_balancing"              value="1" />
     
    139123
    140124  <execute_loop id="0">
    141     <parameter name="nb_read_unit"                          value="4" />
    142     <parameter name="nb_write_unit"                         value="7" />
    143     <parameter name="nb_execute_unit"                       value="4" />
     125    <parameter name="nb_read_unit"                          value="1" />
     126    <parameter name="nb_write_unit"                         value="1" />
    144127    <parameter name="nb_gpr_bank"                           value="1" />
    145     <parameter name="nb_gpr_port_read_by_bank"              value="8" />
    146     <parameter name="nb_gpr_port_write_by_bank"             value="4" />
     128    <parameter name="nb_gpr_port_read_by_bank"              value="1" />
     129    <parameter name="nb_gpr_port_write_by_bank"             value="1" />
    147130    <parameter name="nb_spr_bank"                           value="1" />
    148     <parameter name="nb_spr_port_read_by_bank"              value="4" />
    149     <parameter name="nb_spr_port_write_by_bank"             value="4" />
     131    <parameter name="nb_spr_port_read_by_bank"              value="1" />
     132    <parameter name="nb_spr_port_write_by_bank"             value="1" />
    150133    <parameter name="execution_unit_to_write_unit_priority" value="1" />
    151134    <parameter name="read_unit_to_execution_unit_priority"  value="1" />
     135
     136    <execute_unit id="1">
     137      <link name="link_execute_unit_with_load_store_unit"   src="0"/>
     138    </execute_unit>
     139    <execute_unit id="0">
     140      <link name="link_execute_unit_with_functionnal_unit"  src="0"/>
     141    </execute_unit>
     142
    152143  </execute_loop>
    153144
     
    168159  <link name="link_rename_unit_with_rename_bloc"       src="0"     dest="0.0" />
    169160  <link name="link_read_unit_with_read_bloc"           src="0"     dest="0.0" />
    170   <link name="link_read_unit_with_read_bloc"           src="1"     dest="0.1" />
    171   <link name="link_read_unit_with_read_bloc"           src="2"     dest="0.2" />
    172   <link name="link_read_unit_with_read_bloc"           src="3"     dest="0.3" />
    173161  <link name="link_write_unit_with_write_bloc"         src="0"     dest="0.0" />
    174   <link name="link_write_unit_with_write_bloc"         src="1"     dest="0.1" />
    175   <link name="link_write_unit_with_write_bloc"         src="2"     dest="0.2" />
    176   <link name="link_write_unit_with_write_bloc"         src="3"     dest="0.3" />
    177   <link name="link_write_unit_with_write_bloc"         src="4"     dest="0.4" />
    178   <link name="link_write_unit_with_write_bloc"         src="5"     dest="0.5" />
    179   <link name="link_write_unit_with_write_bloc"         src="6"     dest="0.6" />
    180162  <link name="link_decod_bloc_with_thread"             src="0"     dest="0"   />
    181163  <link name="link_rename_bloc_with_front_end"         src="0"     dest="0"   />
    182164  <link name="link_load_store_unit_with_thread"        src="0"     dest="0"   />
    183 
    184   <link name="link_execute_unit_with_load_store_unit"  src="0"     dest="0.0"/>
    185   <link name="link_execute_unit_with_functionnal_unit" src="0"     dest="0.1"/>
    186   <link name="link_execute_unit_with_functionnal_unit" src="1"     dest="0.2"/>
    187   <link name="link_execute_unit_with_functionnal_unit" src="2"     dest="0.3"/>
    188165
    189166  <link name="link_icache_port_with_thread"            src="0"     dest="0"   />
     
    191168
    192169  <link name="table_dispatch"                          src="0.0.0" dest="1"   />
    193   <link name="table_dispatch"                          src="0.1.0" dest="0"   />
    194   <link name="table_dispatch"                          src="0.2.0" dest="0"   />
    195   <link name="table_dispatch"                          src="0.3.0" dest="0"   />
    196 
    197   <link name="table_dispatch"                          src="0.0.1" dest="0"   />
    198   <link name="table_dispatch"                          src="0.1.1" dest="1"   />
    199   <link name="table_dispatch"                          src="0.2.1" dest="0"   />
    200   <link name="table_dispatch"                          src="0.3.1" dest="0"   />
    201 
    202   <link name="table_dispatch"                          src="0.0.2" dest="0"   />
    203   <link name="table_dispatch"                          src="0.1.2" dest="0"   />
    204   <link name="table_dispatch"                          src="0.2.2" dest="1"   />
    205   <link name="table_dispatch"                          src="0.3.2" dest="0"   />
    206 
    207   <link name="table_dispatch"                          src="0.0.3" dest="0"   />
    208   <link name="table_dispatch"                          src="0.1.3" dest="0"   />
    209   <link name="table_dispatch"                          src="0.2.3" dest="0"   />
    210   <link name="table_dispatch"                          src="0.3.3" dest="1"   />
    211 
    212170  <link name="link_read_bloc_and_load_store_unit"      src="0.0"   dest="1"   />
    213   <link name="link_read_bloc_and_load_store_unit"      src="1.0"   dest="0"   />
    214   <link name="link_read_bloc_and_load_store_unit"      src="2.0"   dest="0"   />
    215   <link name="link_read_bloc_and_load_store_unit"      src="3.0"   dest="0"   />
    216   <link name="link_read_bloc_and_functionnal_unit"     src="0.0"   dest="0"   />
    217   <link name="link_read_bloc_and_functionnal_unit"     src="1.0"   dest="1"   />
    218   <link name="link_read_bloc_and_functionnal_unit"     src="2.0"   dest="1"   />
    219   <link name="link_read_bloc_and_functionnal_unit"     src="3.0"   dest="0"   />
    220   <link name="link_read_bloc_and_functionnal_unit"     src="0.1"   dest="0"   />
    221   <link name="link_read_bloc_and_functionnal_unit"     src="1.1"   dest="1"   />
    222   <link name="link_read_bloc_and_functionnal_unit"     src="2.1"   dest="1"   />
    223   <link name="link_read_bloc_and_functionnal_unit"     src="3.1"   dest="0"   />
    224   <link name="link_read_bloc_and_functionnal_unit"     src="0.2"   dest="0"   />
    225   <link name="link_read_bloc_and_functionnal_unit"     src="1.2"   dest="0"   />
    226   <link name="link_read_bloc_and_functionnal_unit"     src="2.2"   dest="0"   />
    227   <link name="link_read_bloc_and_functionnal_unit"     src="3.2"   dest="1"   />
     171  <link name="link_read_bloc_and_functionnal_unit"     src="0.0"   dest="1"   />
    228172  <link name="link_write_bloc_and_load_store_unit"     src="0.0"   dest="1"   />
    229   <link name="link_write_bloc_and_load_store_unit"     src="1.0"   dest="1"   />
    230   <link name="link_write_bloc_and_load_store_unit"     src="2.0"   dest="0"   />
    231   <link name="link_write_bloc_and_load_store_unit"     src="3.0"   dest="0"   />
    232   <link name="link_write_bloc_and_load_store_unit"     src="4.0"   dest="0"   />
    233   <link name="link_write_bloc_and_load_store_unit"     src="5.0"   dest="0"   />
    234   <link name="link_write_bloc_and_load_store_unit"     src="6.0"   dest="0"   />
    235   <link name="link_write_bloc_and_functionnal_unit"    src="0.0"   dest="0"   />
    236   <link name="link_write_bloc_and_functionnal_unit"    src="1.0"   dest="0"   />
    237   <link name="link_write_bloc_and_functionnal_unit"    src="2.0"   dest="1"   />
    238   <link name="link_write_bloc_and_functionnal_unit"    src="3.0"   dest="1"   />
    239   <link name="link_write_bloc_and_functionnal_unit"    src="4.0"   dest="1"   />
    240   <link name="link_write_bloc_and_functionnal_unit"    src="5.0"   dest="0"   />
    241   <link name="link_write_bloc_and_functionnal_unit"    src="6.0"   dest="0"   />
    242   <link name="link_write_bloc_and_functionnal_unit"    src="0.1"   dest="0"   />
    243   <link name="link_write_bloc_and_functionnal_unit"    src="1.1"   dest="0"   />
    244   <link name="link_write_bloc_and_functionnal_unit"    src="2.1"   dest="1"   />
    245   <link name="link_write_bloc_and_functionnal_unit"    src="3.1"   dest="1"   />
    246   <link name="link_write_bloc_and_functionnal_unit"    src="4.1"   dest="1"   />
    247   <link name="link_write_bloc_and_functionnal_unit"    src="5.1"   dest="0"   />
    248   <link name="link_write_bloc_and_functionnal_unit"    src="6.1"   dest="0"   />
    249   <link name="link_write_bloc_and_functionnal_unit"    src="0.2"   dest="0"   />
    250   <link name="link_write_bloc_and_functionnal_unit"    src="1.2"   dest="0"   />
    251   <link name="link_write_bloc_and_functionnal_unit"    src="2.2"   dest="0"   />
    252   <link name="link_write_bloc_and_functionnal_unit"    src="3.2"   dest="0"   />
    253   <link name="link_write_bloc_and_functionnal_unit"    src="4.2"   dest="0"   />
    254   <link name="link_write_bloc_and_functionnal_unit"    src="5.2"   dest="1"   />
    255   <link name="link_write_bloc_and_functionnal_unit"    src="6.2"   dest="1"   />
    256 
     173  <link name="link_write_bloc_and_functionnal_unit"    src="0.0"   dest="1"   />
    257174  <link name="link_thread_and_functionnal_unit"        src="0.0"   dest="1"   />
    258   <link name="link_thread_and_functionnal_unit"        src="0.1"   dest="1"   />
    259   <link name="link_thread_and_functionnal_unit"        src="0.2"   dest="1"   />
    260175
    261176</core>
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_min.cfg

    r112 r114  
    1717  <decod_bloc id="0">                                       
    1818    <parameter name="size_decod_queue"                      value="1" />
     19    <parameter name="decod_queue_scheme"                    value="0" />
    1920    <parameter name="nb_inst_decod"                         value="1" />
    2021    <parameter name="nb_context_select"                     value="1" />
     
    6162    <parameter name="nb_inst_functionnal_unit" value="1" />
    6263
    63     <timing type="0" latence="1" delay="1" />
     64    <timing type="0"  latence="1" delay="1" />
     65    <timing type="1"  latence="1" delay="1" />
     66    <timing type="2"  latence="1" delay="1" />
     67    <timing type="3"  latence="1" delay="1" />
     68    <timing type="4"  latence="1" delay="1" />
     69    <timing type="6"  latence="1" delay="1" />
     70    <timing type="7"  latence="1" delay="1" />
     71    <timing type="8"  latence="1" delay="1" />
     72    <timing type="10" latence="1" delay="1" />
    6473  </functionnal_unit>
    6574
     
    7685                                                           
    7786    <predictor id="0">                                     
    78       <parameter name="dir_have_bht"                        value="1" />
    79       <parameter name="dir_bht_size_shifter"                value="1" />
    80       <parameter name="dir_bht_nb_shifter"                  value="1" />
    81       <parameter name="dir_have_pht"                        value="1" />
    82       <parameter name="dir_pht_size_counter"                value="1" />
    83       <parameter name="dir_pht_nb_counter"                  value="1" />
    84       <parameter name="dir_pht_size_address_share"          value="1" />
     87      <parameter name="dir_have_bht"                        value="0" />
     88      <parameter name="dir_have_pht"                        value="0" />
    8589    </predictor>                                           
    8690                                                           
    8791    <predictor id="1">                                     
    88       <parameter name="dir_have_bht"                        value="1" />
    89       <parameter name="dir_bht_size_shifter"                value="1" />
    90       <parameter name="dir_bht_nb_shifter"                  value="1" />
    91       <parameter name="dir_have_pht"                        value="1" />
    92       <parameter name="dir_pht_size_counter"                value="1" />
    93       <parameter name="dir_pht_nb_counter"                  value="1" />
    94       <parameter name="dir_pht_size_address_share"          value="1" />
     92      <parameter name="dir_have_bht"                        value="0" />
     93      <parameter name="dir_have_pht"                        value="0" />
    9594    </predictor>                                           
    9695                                                           
    9796    <predictor id="2">                                     
    98       <parameter name="dir_have_bht"                        value="1" />
    99       <parameter name="dir_bht_size_shifter"                value="1" />
    100       <parameter name="dir_bht_nb_shifter"                  value="1" />
    101       <parameter name="dir_have_pht"                        value="1" />
    102       <parameter name="dir_pht_size_counter"                value="1" />
    103       <parameter name="dir_pht_nb_counter"                  value="1" />
    104       <parameter name="dir_pht_size_address_share"          value="1" />
     97      <parameter name="dir_have_bht"                        value="0" />
     98      <parameter name="dir_have_pht"                        value="0" />
    10599    </predictor>
    106100  </front_end>
     
    120114    <parameter name="size_issue_queue"                      value="1" />
    121115    <parameter name="nb_issue_queue_bank"                   value="1" />
     116    <parameter name="issue_queue_scheme"                    value="0" />
    122117    <parameter name="issue_priority"                        value="1" />
    123118    <parameter name="issue_load_balancing"                  value="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Morpheo.sim

    r113 r114  
    88  <parameter  name="use_vhdl_testbench_assert"              value="0"       />
    99  <parameter  name="use_position"                           value="0"       />
    10   <parameter  name="use_statistics"                         value="0"       />
     10  <parameter  name="use_statistics"                         value="1"       />
    1111  <parameter  name="use_information"                        value="0"       />
    12   <parameter  name="use_header"                             value="0"       />
     12  <parameter  name="use_header"                             value="1"       />
    1313
    1414  <parameter  name="statistics_cycle_start"                 value="5"       />
    1515  <parameter  name="statistics_period"                      value="0"       />
    1616                                                           
    17   <parameter  name="simulation_nb_cycle"                    value="100000/>
     17  <parameter  name="simulation_nb_cycle"                    value="10000000"/>
    1818  <parameter  name="simulation_nb_instruction"              value="0"       />
    1919                                                           
     
    2424                                                           
    2525  <parameter  name="debug_level"                            value="0"       />
    26   <parameter  name="debug_cycle_start"                      value="300"     />
    27   <parameter  name="debug_cycle_stop"                       value="450"     />
     26  <parameter  name="debug_cycle_start"                      value="600"     />
     27  <parameter  name="debug_cycle_stop"                       value="827"     />
    2828  <parameter  name="debug_have_log_file"                    value="0"       />
    2929  <parameter  name="debug_idle_cycle"                       value="100"     />
  • trunk/Makefile.flags

    r113 r114  
    66
    77#-----[ Simulator ]----------------------------------------
    8 #SIMULATOR                      ?= modelsim
    98SIMULATOR                       ?= systemcass
    109
     
    1817MORPHEO_FLAGS                   =       -DSYSTEMC               \
    1918                                        -DDEBUG=DEBUG_TRACE     \
    20                                         -DDEBUG_MEMORY_LEAK     \
    2119                                        -DSTATISTICS            \
    2220                                        -DVHDL                  \
     
    2725#                                       -DPRINT_COLOR           \
    2826#                                       -DPOSITION              \
    29 #
     27#                                       -DDEBUG_MEMORY_LEAK     \
     28
    3029
    3130
  • trunk/Makefile.tools

    r113 r114  
    3838MSGFMT                                  = msgfmt
    3939DISTCC                                  = /users/chaos/kane/Softwares/distcc/bin/distcc
    40 CC_PREFIX                               = $(DISTCC)
     40#CC_PREFIX                               = $(DISTCC)
     41CC_PREFIX                               =
    4142CC_FLAGS_COMMON                         = -O2            \
    4243                                          -Wall          \
  • trunk/Makefile.tools_path

    r113 r114  
    3333MODELTECH                               = /users/outil/m1archi/M2/modeltech
    3434MODELTECH_LICENCE                       = /users/soft/mentor/mgls_v8-5_0-5-0.ss5/etc/cust/mgc/license.anacad.2008
    35 OR1K                                    = /users/cao/kane/Softwares/or32-elf
     35OR1K                                    = /users/chaos/kane/Softwares/or32-elf
    3636NEWLIB                                  = /users/chaos/kane/Softwares/newlib/or32-elf
    3737QT                                      = /dsk/l1/misc/kane/qt-x11-opensource-4.2.3
  • trunk/Platforms/Test/Makefile

    r113 r114  
    2929#----------------------------------------------------------
    3030ENTITY                          =       Test
    31 SIMULATOR                       =       modelsim
    3231
    3332DIR_TMP                         =       $(MORPHEO_TMP)
  • trunk/Platforms/Test/src/test.cpp

    r112 r114  
    322322  sc_clock              *  CLOCK  = new sc_clock ("clock", 1.0, 0.5);   
    323323  sc_signal<Tcontrol_t> *  NRESET = new sc_signal<Tcontrol_t> ("NRESET");
     324
     325  sc_signal<Tcontrol_t           >  ** ICACHE_REQ_VAL        ;
     326  sc_signal<Tcontrol_t           >  ** ICACHE_REQ_ACK        ;
     327  sc_signal<Ticache_context_t    >  ** ICACHE_REQ_THREAD_ID  ;
     328  sc_signal<Ticache_packet_t     >  ** ICACHE_REQ_PACKET_ID  ;
     329  sc_signal<Ticache_address_t    >  ** ICACHE_REQ_ADDRESS    ;
     330  sc_signal<Ticache_type_t       >  ** ICACHE_REQ_TYPE       ;
     331
     332  sc_signal<Tcontrol_t           >  ** ICACHE_RSP_VAL        ;
     333  sc_signal<Tcontrol_t           >  ** ICACHE_RSP_ACK        ;
     334  sc_signal<Ticache_context_t    >  ** ICACHE_RSP_THREAD_ID  ;
     335  sc_signal<Ticache_packet_t     >  ** ICACHE_RSP_PACKET_ID  ;
     336  sc_signal<Ticache_instruction_t> *** ICACHE_RSP_INSTRUCTION;
     337  sc_signal<Ticache_error_t      >  ** ICACHE_RSP_ERROR      ;
     338
     339  sc_signal<Tcontrol_t           >  ** DCACHE_REQ_VAL        ;
     340  sc_signal<Tcontrol_t           >  ** DCACHE_REQ_ACK        ;
     341  sc_signal<Tdcache_context_t    >  ** DCACHE_REQ_THREAD_ID  ;
     342  sc_signal<Tdcache_packet_t     >  ** DCACHE_REQ_PACKET_ID  ;
     343  sc_signal<Tdcache_address_t    >  ** DCACHE_REQ_ADDRESS    ;
     344  sc_signal<Tdcache_data_t       >  ** DCACHE_REQ_WDATA      ;
     345  sc_signal<Tdcache_type_t       >  ** DCACHE_REQ_TYPE       ;
     346
     347  sc_signal<Tcontrol_t           >  ** DCACHE_RSP_VAL        ;
     348  sc_signal<Tcontrol_t           >  ** DCACHE_RSP_ACK        ;
     349  sc_signal<Tdcache_context_t    >  ** DCACHE_RSP_THREAD_ID  ;
     350  sc_signal<Tdcache_packet_t     >  ** DCACHE_RSP_PACKET_ID  ;
     351  sc_signal<Tdcache_data_t       >  ** DCACHE_RSP_RDATA      ;
     352  sc_signal<Tdcache_error_t      >  ** DCACHE_RSP_ERROR      ;
     353
     354  sc_signal<Tcontrol_t           >  ** INTERRUPT_ENABLE      ;
    324355
    325356  ALLOC1_SC_SIGNAL(ICACHE_REQ_VAL         ,"ICACHE_REQ_VAL        ",Tcontrol_t           ,morpheo->_nb_icache_port);
  • trunk/Softwares/Dhrystone/src/c/dhry21a.c

    r112 r114  
    255255  User_Time = End_Time - Begin_Time;
    256256
    257   if (User_Time < Too_Small_Time)
     257//  if (User_Time < Too_Small_Time)
     258//  {
     259//#ifdef HAVE_DOUBLE
     260//    printf ("Measured time too small to obtain meaningful results : %f\n",User_Time);
     261//#else
     262//    printf ("Measured time too small to obtain meaningful results : %d\n",User_Time);
     263//#endif
     264//    printf ("Please increase number of runs\n");
     265//    printf ("\n");
     266//  }
     267//  else
    258268  {
    259     printf ("Measured time too small to obtain meaningful results : %f\n",User_Time);
    260     printf ("Please increase number of runs\n");
    261     printf ("\n");
    262   }
    263   else
    264   {
     269#ifdef HAVE_DOUBLE
    265270    Microseconds          = User_Time * Mic_secs_Per_Second / (DOUBLE) Number_Of_Runs;
    266271    Dhrystones_Per_Second = (DOUBLE) Number_Of_Runs / User_Time;
    267272    Vax_Mips              = Dhrystones_Per_Second / 1757.0;
     273#else
     274    Microseconds          = User_Time                       / (DOUBLE) Number_Of_Runs;
     275#endif
    268276
    269277#ifdef ROPT
     
    274282#endif
    275283
     284#ifdef HAVE_DOUBLE
    276285    printf ("Microseconds for one run through Dhrystone : %.1lf  \n",Microseconds);
    277286    printf ("Dhrystones per Second                      : %.1lf \n",Dhrystones_Per_Second);
    278287    printf ("VAX MIPS rating                            : %.3lf \n",Vax_Mips);
     288#else
     289    printf ("Begin_Time : %d\n",Begin_Time);
     290    printf ("End_Time   : %d\n",End_Time  );
     291    printf ("User_Time  : %d\n",User_Time );
     292    printf ("Numbers of cycle for one run through Dhrystone : %d  \n",Microseconds);
     293#endif
    279294    printf ("\n");
    280295 
     
    283298  fprintf(Ap,"%s\n",Reg_Define);
    284299
     300#ifdef HAVE_DOUBLE
    285301  fprintf(Ap,"Microseconds for one loop : %.1lf\n",Microseconds);
    286302  fprintf(Ap,"Dhrystones per second     : %.1lf\n",Dhrystones_Per_Second);
    287303  fprintf(Ap,"VAX MIPS rating           : %.3lf\n",Vax_Mips);
     304#else
     305  fprintf(Ap,"Numbers of cycle for one loop : %.1d\n",Microseconds);
     306#endif
    288307  }
    289308  fclose(Ap);
    290309  return 0;
    291  
    292310}
    293311
  • trunk/Softwares/Dhrystone/src/c/dtime.c

    r112 r114  
    6565
    6666#ifndef MHZ
    67 #define MHZ (1000000)
     67#define MHZ (1000000.0)
    6868#endif //!MHZ
    6969
     
    7272#endif //!FRQ
    7373
    74 #ifndef DOUBLE
    75 #define double
    76 #endif
    77 
    7874DOUBLE dtime()
    7975{
    8076  DOUBLE q;
    8177
    82 /*   q = (DOUBLE)(my_times())/(DOUBLE)FRQ; */
     78#ifdef HAVE_DOUBLE
     79  q = (DOUBLE)(my_times())/(DOUBLE)FRQ;
     80#else
    8381  q = (DOUBLE)(my_times());
    84  
     82#endif
     83
    8584  return (q);
    8685}
  • trunk/Softwares/Dhrystone/src/c/main.c

    r112 r114  
    1212int main()
    1313{
    14   printf("cycle : %f\n",dtime());
    15  
    16 /*   dhry21(100); */
    17  
    18  
     14  dhry21(100);
     15   
    1916  exit (0);
    2017
  • trunk/Softwares/Dhrystone/src/include/dhry.h

    r112 r114  
    338338/* Compiler and system dependent definitions: */
    339339
    340 #define DOUBLE float
    341 #define Mic_secs_Per_Second     1000000.0
     340#ifndef Morpheo
     341# define HAVE_DOUBLE
     342#endif
     343
     344#ifdef HAVE_DOUBLE
     345# define DOUBLE float
     346# define Mic_secs_Per_Second     1000000.0
     347#else
     348# define DOUBLE unsigned int
     349# define Mic_secs_Per_Second     1000000
     350#endif
    342351
    343352DOUBLE dtime ();
  • trunk/Softwares/Makefile.Software

    r112 r114  
    8181                                $(OR32_LD) -o $@ $^ $(OR32_LD_OPT);             \
    8282                                $(ECHO) "List symbols       : $*.x.nm";         \
    83                                 $(OR32_NM)      $(OR32_NM_OPT)      $^ > $@.nm; \
     83                                $(OR32_NM)      $(OR32_NM_OPT)      $@ > $@.nm; \
    8484                                $(ECHO) "Display info       : $*.x.txt";        \
    8585                                $(OR32_OBJDUMP) $(OR32_OBJDUMP_OPT) $@ > $@.txt;\
  • trunk/Softwares/Test/Test_066/src/c/main.c

    r112 r114  
    1414int main()
    1515{
    16 /*   printf("Hello World !!!\n");  */
     16  printf("Hello World !!!\n");
    1717 
    18   for (int i=0; i<20; ++i)
    19     printf("i : %d\n",i);
    20    
    2118  exit (0);
    2219
  • trunk/Softwares/Test/Test_067/src/c/main.c

    r112 r114  
    1414int main()
    1515{
    16   FILE * file = fopen("Test_067.txt","w");
    17    
    18   if (file == NULL)
    19     exit (1);
    20  
    21   fprintf(file,"Hello World !!!\n");
    22  
    23   if (fclose (file) != 0)
    24     exit (2);
     16  for (int i=0; i<10; ++i)
     17    printf("i : %d\n",i);
    2518 
    2619  exit (0);
Note: See TracChangeset for help on using the changeset viewer.