Ignore:
Timestamp:
May 16, 2009, 4:42:39 PM (16 years ago)
Author:
rosiere
Message:

1) Platforms : add new organization for test
2) Load_Store_Unit : add array to count nb_check in store_queue
3) Issue_queue and Core_Glue : rewrite the issue network
4) Special_Register_Unit : add reset value to register CID
5) Softwares : add multicontext test
6) Softwares : add SPECINT
7) Softwares : add MiBench?
7) Read_queue : inhib access for r0
8) Change Core_Glue (network) - dont yet support priority and load balancing scheme

Location:
trunk/IPs/systemC/Environment
Files:
11 edited

Legend:

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

    r81 r117  
    2626    if (type_cache == INSTRUCTION_CACHE)
    2727      {
    28         _cout(CACHE,"Instruction");
     28        __cout(CACHE,"Instruction");
    2929        cache                 = icache_dedicated [num_entity];
    3030        param_cache_dedicated = param->param_icache_dedicated [num_entity];
     
    3232    else
    3333      {
    34         _cout(CACHE,"Data");
     34        __cout(CACHE,"Data");
    3535        cache                 = dcache_dedicated [num_entity];
    3636        param_cache_dedicated = param->param_dcache_dedicated [num_entity];
    3737      }
    38     _cout(CACHE," [%d] - entity : %d, address : 0x%.x\n",num_port,num_entity,address);
     38    __cout(CACHE," [%d] - entity : %d, address : 0x%.x\n",num_port,num_entity,address);
    3939
    4040    if (num_port >= cache->param->nb_port)
     
    4949    if (access_dedicated.hit == MISS)
    5050      {
    51         _cout(CACHE," * Access Cache_shared");
     51        _cout(CACHE," * Access Cache_shared\n");
    5252
    5353        // Make a access with this level "shared"
  • trunk/IPs/systemC/Environment/Common/include/Debug.h

    r114 r117  
    22#define ENVIRONMENT_COMMON_DEBUG_H
    33
     4#define DEBUG_true        true
    45#define DEBUG_ENVIRONMENT true
    56#define DEBUG_CACHE       true
     
    1112#define DEBUG_TTY         true
    1213
    13 # define _cout(component, str...)                                       \
     14#define MSG_ENVIRONMENT "[ENVIRONMENT]"
     15
     16#define __cout(component,str...)                                        \
    1417  do                                                                    \
    1518    {                                                                   \
    16       if ( DEBUG_ ## component == true )                                \
    17         {                                                               \
    18           fprintf(stdout,str);                                          \
    19         }                                                               \
     19      fprintf(stdout,str);                                              \
    2020    }                                                                   \
    2121  while(0)
    2222
    23 # define _cerr(str...)                                                   \
     23#define __cerr(str...)                                                  \
    2424  do                                                                    \
    2525    {                                                                   \
     
    2828  while(0)
    2929
     30#define cout(str...)                                                    \
     31  do                                                                    \
     32    {                                                                   \
     33      fprintf(stdout,"%s ",MSG_ENVIRONMENT);                            \
     34      __cout(true,str);                                                 \
     35      fflush (stdout);                                                  \
     36    }                                                                   \
     37  while(0)
     38
     39#define cerr(str...)                                                    \
     40  do                                                                    \
     41    {                                                                   \
     42      fprintf(stderr,"%s ",MSG_ENVIRONMENT);                            \
     43      __cerr(str);                                                      \
     44      fflush (stderr);                                                  \
     45    }                                                                   \
     46  while(0)
     47
     48#define _cout(component, str...)                                        \
     49  do                                                                    \
     50    {                                                                   \
     51      if (DEBUG_ ## component == true )                                 \
     52        {                                                               \
     53          cout(str);                                                    \
     54        }                                                               \
     55    }                                                                   \
     56  while(0)
     57
     58#define _cerr(str...) cerr(str)
     59
    3060#endif
  • trunk/IPs/systemC/Environment/Data/src/loadexec.c

    r81 r117  
    3333#include <string.h>
    3434#include <bfd.h>
     35#include "../../Common/include/Debug.h"
    3536
    3637#ifndef TRUE
     
    110111
    111112   if (!exec) {
    112       fprintf(stderr, "Cannot open File '%s'\n", file);
     113      cerr("Cannot open File '%s'\n", file);
    113114      exit(1);
    114115   }
    115116
    116117   if (bfd_check_format(exec, bfd_object) != TRUE && !(exec->flags & EXEC_P)) {
    117       fprintf(stderr, "File %s is not an executable file\n",
    118                        file); //bfd_get_filename(exec));
     118      cerr("File %s is not an executable file\n",
     119            file); //bfd_get_filename(exec));
    119120      exit(1);
    120121   }
    121122
    122 #if 1
    123    printf("Loading sections ");
     123#if 0
     124   cout("Loading sections ");
    124125   for (i = 0; sections[i]; i++)
    125       printf("%s%s", sections[i], sections[i+1] ? ", " : " ");
    126    printf("from \"%s\"\n",bfd_get_filename(exec));
    127    //printf("of executable '%s' for '%s' architecture in format '%s'\n",
     126     __cout("%s%s", sections[i], ((sections[i+1]!=NULL)?", ":" "));
     127   __cout("from \"%s\"\n",bfd_get_filename(exec));
     128   //cout("of executable '%s' for '%s' architecture in format '%s'\n",
    128129   //        bfd_get_filename(exec), bfd_printable_name(exec), exec->xvec->name);
    129130#endif
  • trunk/IPs/systemC/Environment/Makefile.Environment

    r114 r117  
    3737                                @\
    3838                                $(MAKE) $(EXE); \
    39                                 export SYSTEMC=$(SYSTEMC_$(SIMULATOR)) ; $(EXEC_PREFIX) $(EXE) $(SYSTEMC_EXEC_PARAMS_$(SIMULATOR))
     39                                export SYSTEMC=$(SYSTEMC_$(SIMULATOR_SYSTEMC)) ; $(EXEC_PREFIX) $(EXE) $(SYSTEMC_EXEC_PARAMS_$(SIMULATOR_SYSTEMC))
    4040
    4141
  • trunk/IPs/systemC/Environment/Makefile.defs

    r113 r117  
    1515
    1616#-----[ Compilation ]--------------------------------------
    17 INCDIR                          = $(SYSTEMC_INCDIR_$(SIMULATOR))        \
     17INCDIR                          = $(SYSTEMC_INCDIR_$(SIMULATOR_SYSTEMC))        \
    1818                                  -I$(DIR_INC)                          \
    1919                                  -I../processor/Morpheo
    2020
    21 LIBDIR                          = $(SYSTEMC_LIBDIR_$(SIMULATOR))
     21LIBDIR                          = $(SYSTEMC_LIBDIR_$(SIMULATOR_SYSTEMC))
    2222
    2323LIBNAME                         = -lbfd                                 \
    2424                                  -liberty                              \
    25                                   $(SYSTEMC_LIBNAME_$(SIMULATOR))
     25                                  $(SYSTEMC_LIBNAME_$(SIMULATOR_SYSTEMC))
    2626
    27 FLAGS                           = $(SYSTEMC_CFLAGS_$(SIMULATOR))
     27FLAGS                           = $(SYSTEMC_CFLAGS_$(SIMULATOR_SYSTEMC))
    2828
    2929MORPHEO_CC_FLAGS                = $(MORPHEO_FLAGS) $(CC_FLAGS)           $(INCDIR)
  • trunk/IPs/systemC/Environment/TTY/src/TTY_write.cpp

    r81 r117  
    1313   
    1414    fputc (data, xtty[num_tty].log_file);
     15    fflush(xtty[num_tty].log_file);
    1516
    1617    return true;
  • trunk/IPs/systemC/Environment/include/Environment.h

    r88 r117  
    22#define ENVIRONMENT_H
    33
     4#include "../Common/include/Debug.h"
    45#include "../Cache/include/Cache.h"
    56#include "../Data/include/Data.h"
     
    108109    {
    109110      _cout(ENVIRONMENT,"<itoa> : size : %d, ",size);
    110       _cout(ENVIRONMENT,"src : %.8x ",static_cast<uint32_t>(src));
    111       _cout(ENVIRONMENT,"dest : ");
     111      __cout(ENVIRONMENT,"src : %.8x ",static_cast<uint32_t>(src));
     112      __cout(ENVIRONMENT,"dest : ");
    112113
    113114      for (uint32_t i=0; i<size; i++)
     
    117118          src >>= 8; // shift byte
    118119
    119           _cout(ENVIRONMENT,"%.2x",0xff&static_cast<uint32_t>(dest [j]));
     120          __cout(ENVIRONMENT,"%.2x",0xff&static_cast<uint32_t>(dest [j]));
    120121
    121122        }
    122       _cout(ENVIRONMENT,".\n");
     123      __cout(ENVIRONMENT,".\n");
    123124    }
    124125   
     
    128129    {
    129130      dest = 0;
    130 
     131     
    131132      _cout(ENVIRONMENT,"<atoi> : size : %d, ",size);
    132       _cout(ENVIRONMENT,"src : ");
     133      __cout(ENVIRONMENT,"src : ");
    133134
    134135      for (uint32_t i=0; i<size; i++)
     
    138139          dest |= (static_cast<T>(src [j]) & 0xFF);
    139140
    140           _cout(ENVIRONMENT,"%.2x",0xff&static_cast<uint32_t>(src [j]));
     141          __cout(ENVIRONMENT,"%.2x",0xff&static_cast<uint32_t>(src [j]));
    141142        }
    142       _cout(ENVIRONMENT," dest : %.8x\n",static_cast<uint32_t>(dest));
     143      __cout(ENVIRONMENT," dest : %.8x\n",static_cast<uint32_t>(dest));
    143144    }
    144145  };
  • trunk/IPs/systemC/Environment/include/Environment_Parameters.h

    r88 r117  
    1414  class Parameters
    1515  {
     16  public : uint32_t                nb_thread               ;
    1617  public : uint32_t                nb_iport                ;
    1718  public : uint32_t                nb_dport                ;
     
    5354
    5455  public : Parameters (// General
     56                       uint32_t    nb_thread,
    5557                       uint32_t    nb_cache_dedicated,
    5658                       
     
    114116                       )
    115117    {
     118      this->nb_thread                = nb_thread;
    116119      this->nb_entity                = nb_cache_dedicated;
    117120
  • trunk/IPs/systemC/Environment/src/Environment_simulation_end.cpp

    r88 r117  
    55  bool Environment::simulation_end(void)
    66  {
    7     return (nb_context_stop >= param->nb_entity);
     7    return (nb_context_stop >= param->nb_thread);
    88  }
    99
  • trunk/IPs/systemC/Environment/src/Environment_stop.cpp

    r88 r117  
    55  void Environment::stop(uint32_t num_context)
    66  {
     7
     8    cout("<stop> : num_context     : %d\n",num_context);
     9    cout("<stop> : context_stop    : %d\n",context_stop [num_context]);
     10    cout("<stop> : nb_context_stop : %d\n",nb_context_stop);
     11
     12
    713    if (context_stop [num_context] == false)
    814      {
     
    1016        nb_context_stop ++;
    1117       
    12         if (nb_context_stop >= param->nb_entity)
    13           sc_stop();
     18        if (nb_context_stop >= param->nb_thread)
     19          {
     20            cout("<stop> : end simulation\n");
     21            sc_stop();
     22          }
    1423      }
    1524  }
  • trunk/IPs/systemC/Environment/src/Environment_transition.cpp

    r114 r117  
    5252                uint32_t          size      = (param->iaccess_size_address [i]+2)/8;
    5353
    54                 _cout(ENVIRONMENT," * information\n");
    55                 _cout(ENVIRONMENT,"   * context : %d\n" ,static_cast<uint32_t>(context));
    56                 _cout(ENVIRONMENT,"   * packet  : %d\n" ,static_cast<uint32_t>(packet ));
    57                 _cout(ENVIRONMENT,"   * address : %.x\n",static_cast<uint32_t>(address));
    58                 _cout(ENVIRONMENT,"   * type    : %d\n" ,static_cast<uint32_t>(type   ));
    59                 _cout(ENVIRONMENT,"   * size    : %d\n" ,static_cast<uint32_t>(size   ));
     54                _cout(ENVIRONMENT,"  * information\n");
     55                _cout(ENVIRONMENT,"    * context : %d\n" ,static_cast<uint32_t>(context));
     56                _cout(ENVIRONMENT,"    * packet  : %d\n" ,static_cast<uint32_t>(packet ));
     57                _cout(ENVIRONMENT,"    * address : %.x\n",static_cast<uint32_t>(address));
     58                _cout(ENVIRONMENT,"    * type    : %d\n" ,static_cast<uint32_t>(type   ));
     59                _cout(ENVIRONMENT,"    * size    : %d\n" ,static_cast<uint32_t>(size   ));
    6060
    6161                // search the entity
     
    7272                    (entity.segment->getType() == data::TYPE_TARGET_MEMORY))
    7373                  {
    74                     _cout(ENVIRONMENT," * OK !\n");
     74                    _cout(ENVIRONMENT,"  * OK !\n");
    7575                    bus_error = false;
    7676                    uncached  = entity.segment->getUncached();
     
    7878                    if (must_read == true) // Test if must read the ram
    7979                      {
    80                         _cout(ENVIRONMENT,"   * must read\n");
     80                        _cout(ENVIRONMENT,"    * must read\n");
    8181                        // Read all instruction
    8282                        for (unsigned int k=0; k<param->iaccess_nb_instruction[i]; k++)
    8383                          {
    8484                            uint32_t addr = address+k*(size);
    85                             _cout(ENVIRONMENT,"   * addr    : %.8x\n",addr);
     85                            _cout(ENVIRONMENT,"    * addr    : %.8x\n",addr);
    8686
    8787                            bus_error |= !component_data->read(addr,size,read_iram[k]);
     
    9393                              }
    9494
    95                             _cout(ENVIRONMENT,"   * inst    :");
    96                             for (int32_t cpt=(param->iaccess_size_instruction[context]/8)-1; cpt>=0; --cpt)
    97                               _cout(ENVIRONMENT, "%.2x",0xff&static_cast<uint32_t>(read_iram[k][cpt]));
    98                             _cout(ENVIRONMENT, "\n");
     95                            _cout(ENVIRONMENT,"    * inst    :");
     96                            for (int32_t cpt=(param->iaccess_size_instruction[i]/8)-1; cpt>=0; --cpt)
     97                              __cout(ENVIRONMENT, "%.2x",0xff&static_cast<uint32_t>(read_iram[k][cpt]));
     98                            __cout(ENVIRONMENT, "\n");
    9999                          }
    100100                      }
     
    102102                else
    103103                  {
    104                     _cout(ENVIRONMENT, " * KO !\n");
    105                     _cout(ENVIRONMENT, "   * present : %d\n",entity.present);
     104                    _cout(ENVIRONMENT, "  * KO !\n");
     105                    _cout(ENVIRONMENT, "    * present : %d\n",entity.present);
    106106                    if (entity.present)
    107                     _cout(ENVIRONMENT, "   * type    : %d must be data::TYPE_TARGET_MEMORY (%d)\n",entity.segment->getType(), data::TYPE_TARGET_MEMORY);
     107                    _cout(ENVIRONMENT, "    * type    : %d must be data::TYPE_TARGET_MEMORY (%d)\n",entity.segment->getType(), data::TYPE_TARGET_MEMORY);
    108108                     
    109109                    // entity is not present, or is present but is not a memory : have a bus error
     
    121121                                                            cache_type.direction);
    122122               
    123                 _cout(ENVIRONMENT, "   * latence : %d\n",latence);
     123                _cout(ENVIRONMENT, "    * latence : %d\n",latence);
    124124               
    125125                // If is a respons -> compute the latence and push in the write_buffer
    126126                if (must_ack or (must_ack_on_error and bus_error))
    127127                  {
    128                     _cout(ENVIRONMENT, " * must ack\n");
     128                    _cout(ENVIRONMENT, "  * must ack\n");
    129129                   
    130130                    if (bus_error == true)
    131131                      {
    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 );
     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 );
    138138
    139139                        // Write in instruction [0] the bad address (only 32bit ....)
     
    142142                           
    143143                    // Simplification : the size of a line is a multiple of size_iword (no test)
    144                     _cout(ENVIRONMENT, "   * push in buffer_irsp[%d]\n",i);
     144                    _cout(ENVIRONMENT, "    * push in buffer_irsp[%d]\n",i);
    145145
    146146                    irsp_t * rsp = new irsp_t(context,
     
    153153                  }
    154154
    155                 _cout(ENVIRONMENT, " * End request\n");
     155                _cout(ENVIRONMENT, "  * End request\n");
    156156              }
    157157
     
    172172                uint32_t          size      = param->daccess_size_data [i]/8;
    173173
    174                 _cout(ENVIRONMENT," * information\n");
    175                 _cout(ENVIRONMENT,"   * context : %d\n" ,static_cast<uint32_t>(context));
    176                 _cout(ENVIRONMENT,"   * packet  : %d\n" ,static_cast<uint32_t>(packet ));
    177                 _cout(ENVIRONMENT,"   * address : %.x\n",static_cast<uint32_t>(address));
    178                 _cout(ENVIRONMENT,"   * type    : %d\n" ,static_cast<uint32_t>(type   ));
    179                 _cout(ENVIRONMENT,"   * size    : %d\n" ,static_cast<uint32_t>(size   ));
     174                _cout(ENVIRONMENT,"  * information\n");
     175                _cout(ENVIRONMENT,"    * context : %d\n" ,static_cast<uint32_t>(context));
     176                _cout(ENVIRONMENT,"    * packet  : %d\n" ,static_cast<uint32_t>(packet ));
     177                _cout(ENVIRONMENT,"    * address : %.x\n",static_cast<uint32_t>(address));
     178                _cout(ENVIRONMENT,"    * type    : %d\n" ,static_cast<uint32_t>(type   ));
     179                _cout(ENVIRONMENT,"    * size    : %d\n" ,static_cast<uint32_t>(size   ));
    180180
    181181                bool              uncached  = false;
     
    230230                          uint32_t num_tty   = (address - entity.segment->getBase())>>4;
    231231                          uint32_t num_print = ((address>>2) & 0x3);
    232                           _cout(ENVIRONMENT," * TYPE_TARGET_TTY : num_tty : %d, num_print : %d\n",num_tty, num_print);
     232                          _cout(true," * TYPE_TARGET_TTY : num_tty : %d, num_print : %d\n",num_tty, num_print);
    233233                         
    234234                          switch (num_print)
     
    243243                            case 1 : // STOP
    244244                              {
    245                                 printf("\n\t***** [ stop    ] Time : %.10d - Address : %.8x - Wdata[31:0] : %.2x%.2x%.2x%.2x         *****\n"
     245                                _cout(true,"\n");
     246                                _cout(true,"***********************************************************************************************\n");
     247                                _cout(true,"***** [ STOP    ] Time : %.10d - Address : %.8x - Wdata[31:0] : %.2x%.2x%.2x%.2x         *****\n"
    246248                                       ,static_cast<uint32_t>(sc_simulation_time())
    247249                                       ,static_cast<uint32_t>(address             )
     
    251253                                       ,static_cast<uint32_t>((wdata>> 0)&0xff)
    252254                                       );
    253 
    254                                 if (wdata == 0)
    255                                   std::cout << STR_OK << std::endl;
    256                                 else
    257                                   std::cout << STR_KO << std::endl;
     255                                _cout(true,"***********************************************************************************************\n");
     256                                _cout(true,"\n");
     257                                _cout(true,"%s\n",(wdata == 0)?STR_OK:STR_KO);
     258                                _cout(true,"\n");
    258259
    259260                                stop (context);
     
    263264                            case 2 : // PRINT
    264265                              {
    265                                 printf("\n\t----- [ print   ] Time : %.10d - Address : %.8x - Wdata[31:0] : %.2x%.2x%.2x%.2x         -----\n"
     266                                _cout(true,"\n");
     267                                _cout(true,"-----------------------------------------------------------------------------------------------\n");
     268                                _cout(true,"----- [ PRINT   ] Time : %.10d - Address : %.8x - Wdata[31:0] : %.2x%.2x%.2x%.2x         -----\n"
    266269                                       ,static_cast<uint32_t>(sc_simulation_time())
    267270                                       ,static_cast<uint32_t>(address             )
     
    271274                                       ,static_cast<uint32_t>((wdata>> 0)&0xff)
    272275                                       );
     276                                _cout(true,"-----------------------------------------------------------------------------------------------\n");
     277                                _cout(true,"\n");
    273278                               
    274279                                break;
     
    276281                            default :
    277282                              {
    278                                 printf("[address : %.8x] tty %d, reg %d don't exist\n",static_cast<uint32_t>(address),num_tty,num_print);
     283                                _cout(true,"[address : %.8x] tty %d, reg %d don't exist\n",static_cast<uint32_t>(address),num_tty,num_print);
    279284                                bus_error = true;
    280285                              }
     
    288293                      case data::TYPE_TARGET_MEMORY  :
    289294                        {
    290                           _cout(ENVIRONMENT,"MEMORY\n");
    291                           _cout(ENVIRONMENT,"access : %x\n",address);
     295                          _cout(ENVIRONMENT,"  * TYPE_TARGET_MEMORY\n");
     296                          _cout(ENVIRONMENT,"    * access : %x\n",address);
    292297
    293298                          if (must_read == true)
    294299                            {
    295300                              // Read
    296                               _cout(ENVIRONMENT," * Read  (%d bytes)\n",size);
     301                              _cout(ENVIRONMENT,"    * Read  (%d bytes)\n",size);
    297302                              bus_error |= !component_data->read(address,nb_bytes,read_dram[0]); // always read a complete word
    298303
    299                               _cout(ENVIRONMENT," * Rdata : ");
    300                               for (uint32_t i=0; i<nb_bytes; i++)
    301                                 _cout(ENVIRONMENT,"%.2x",0xff&static_cast<uint32_t>(read_dram[0][i]));
    302                               _cout(ENVIRONMENT,".\n");
    303                              
    304304                              // Multiple copy
    305305                              for (unsigned int it_size_data = nb_bytes; it_size_data < size; it_size_data+=nb_bytes)
     
    314314                            {
    315315                              // Write
    316                               _cout(ENVIRONMENT," * Write (%d bytes)\n",size);
    317                               _cout(ENVIRONMENT," * Wdata : %x\n",wdata);
     316                              _cout(ENVIRONMENT,"    * Write (%d bytes)\n",size);
     317                              _cout(ENVIRONMENT,"    * Wdata : %x\n",wdata);
    318318                              itoa<Tdcache_data_t>(wdata,write_dram,nb_bytes);
    319319
     
    329329                      case data::TYPE_TARGET_RAMLOCK :
    330330                        {
     331                          _cout(ENVIRONMENT,"  * TYPE_TARGET_RAMLOCK\n");
     332
    331333                          // Access is on a byte, else error
    332334                          if (nb_bytes != 1)
     
    338340                          uint32_t num_ramlock           = (address - entity.segment->getBase()); // Char access
    339341                          uint32_t num_component_ramlock = entity.segment->getIndex();
     342
     343                          _cout(ENVIRONMENT,"    * num_ramlock           : %d\n",num_ramlock          );
     344                          _cout(ENVIRONMENT,"    * num_component_ramlock : %d\n",num_component_ramlock);
    340345
    341346                          // No test : because out of range
     
    361366                      case data::TYPE_TARGET_SIM2OS  :
    362367                        {
     368                          _cout(ENVIRONMENT,"  * TYPE_TARGET_SIM2OS\n");
     369
    363370                          // Mapping :
    364371                          // [0]  number of service - Wonly - A write in this register lunch the execution of service
     
    368375
    369376                          uint32_t num_reg = (address - entity.segment->getBase())>>2;
     377
     378                          _cout(ENVIRONMENT,"    * num_reg : %d\n",num_reg);
    370379                         
    371380                          switch (num_reg)
     
    380389                                else
    381390                                  {
    382                                     _cout(ENVIRONMENT,"<sim2os> service     : %x\n",wdata);
     391                                    _cout(ENVIRONMENT,"    * service     : %x\n",wdata);
    383392                                    component_sim2os->execute(sim2os::int2service(static_cast<uint32_t>(wdata)));
    384393                                  }
     
    396405                                    // Decomposition en groupe octect
    397406                                    Tdcache_data_t result = static_cast<Tdcache_data_t>(reinterpret_cast<uint64_t>(component_sim2os->result));
    398                                     _cout(ENVIRONMENT,"<sim2os> result      : %x\n",result);
     407                                    _cout(ENVIRONMENT,"    * result      : %x\n",result);
    399408                                   
    400409                                    itoa<Tdcache_data_t>(result,read_dram[0],size);
     
    413422                                    // Decomposition en groupe octect
    414423                                    Tdcache_data_t error = (Tdcache_data_t)component_sim2os->error;
    415                                     _cout(ENVIRONMENT,"<sim2os> error       : %x\n",error);
     424                                    _cout(ENVIRONMENT,"    * error       : %x\n",error);
    416425                                   
    417426                                    itoa<Tdcache_data_t>(error,read_dram[0],size);
     
    429438                                  else
    430439                                    {
    431                                       _cout(ENVIRONMENT,"<sim2os> argument[%d] : %x\n",num_reg-1,wdata);
     440                                      _cout(ENVIRONMENT,"    * argument[%d] : %x\n",num_reg-1,wdata);
    432441                                      component_sim2os->parameter(num_reg-2,(void *)wdata);
    433442                                    }
     
    480489                    if (bus_error == true)
    481490                      {
    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 );
     491                        _cout(ENVIRONMENT,"   * Dcache : have a bus error\n");
     492                        _cout(ENVIRONMENT,"     * entity     : %d\n",i);
     493                        _cout(ENVIRONMENT,"     * port       : %d\n",j);
     494                        _cout(ENVIRONMENT,"     * req_addr   : 0x%x\n",address);
     495                        _cout(ENVIRONMENT,"     * req_trdid  : %d\n",context);
     496                        _cout(ENVIRONMENT,"     * req_pktid  : %d\n",packet );
    488497
    489498                        // Write in data [0] the bad address (32bit or 64bits    )
    490499                        itoa<Tdcache_data_t>(address,read_dram[0],param->daccess_size_data[i]/8);
    491500                      }
     501
     502                    _cout(ENVIRONMENT,"     * Rdata : ");
     503                    for (uint32_t i=0; i<nb_bytes; i++)
     504                      __cout(ENVIRONMENT,"%.2x",0xff&static_cast<uint32_t>(read_dram[0][i]));
     505                    _cout(ENVIRONMENT,".\n");
    492506                   
    493507                    // Simplification : the size of a line is a multiple of size_iword (no test)
     
    501515                  }
    502516              }
     517
    503518        //=============================================================================
    504519        //===== [ OTHERS ]=============================================================
     
    523538//          {
    524539//            // Test if transaction
    525 // //         cout << "[" << i << "]"
    526 // //              << "[" << j   << "] "
    527 // //              << "dreq_val : " << DCACHE [i][j].REQ_VAL.read() << " "
    528 // //              << "dreq_ack : " << dreq_ack [i][j] << endl;
    529540
    530541//            if ( (DCACHE [i][j].REQ_VAL.read() && dreq_ack [i][j]) == false)
     
    600611//                      case 1 : // STOP
    601612//                        {
    602 //                          printf("\n\t***** [ stop    ] Time : %.10d - Address : %.8x - Wdata[31:0] : %.2x%.2x%.2x%.2x         *****\n"
     613//                          cout("\n\t***** [ stop    ] Time : %.10d - Address : %.8x - Wdata[31:0] : %.2x%.2x%.2x%.2x         *****\n"
    603614//                                 ,(unsigned int)sc_simulation_time()
    604615//                                 ,(unsigned int)addr
     
    624635//                      case 2 : // PRINT
    625636//                        {
    626 //                          printf("\n\t----- [ print   ] Time : %.10d - Address : %.8x - Wdata[31:0] : %.2x%.2x%.2x%.2x         -----\n"
     637//                          cout("\n\t----- [ print   ] Time : %.10d - Address : %.8x - Wdata[31:0] : %.2x%.2x%.2x%.2x         -----\n"
    627638//                                 ,(unsigned int)sc_simulation_time()
    628639//                                 ,(unsigned int)addr
     
    637648//                      default :
    638649//                        {
    639 //                          printf("<%s> : [address : %.8x] tty %d, reg %d don't exist\n",NAME,(unsigned int)addr,num_tty,num_print);
     650//                          cout("<%s> : [address : %.8x] tty %d, reg %d don't exist\n",NAME,(unsigned int)addr,num_tty,num_print);
    640651//                          exit(1);
    641652//                        }
     
    667678
    668679//                    /*
    669 //                    printf("Access ramlock   ( %d )\n" ,(uint32_t)sc_simulation_time());
    670 //                    printf(" * addr          : %.8x\n" ,(uint32_t)addr);
    671 //                    printf(" * trdid         : %d\n"   ,(uint32_t)DCACHE[i][j].REQ_TRDID.read());
    672 //                    printf(" * r/w           : %d/%d\n",must_read,must_write);
    673 //                    printf(" * val           : %d\n"   ,(uint32_t)read_dram[0]);
     680//                    cout("Access ramlock   ( %d )\n" ,(uint32_t)sc_simulation_time());
     681//                    cout(" * addr          : %.8x\n" ,(uint32_t)addr);
     682//                    cout(" * trdid         : %d\n"   ,(uint32_t)DCACHE[i][j].REQ_TRDID.read());
     683//                    cout(" * r/w           : %d/%d\n",must_read,must_write);
     684//                    cout(" * val           : %d\n"   ,(uint32_t)read_dram[0]);
    674685//                    */
    675686//                    break;
     
    696707//                          else
    697708//                            {
    698 //                              printf("<sim2os> service     : %.8x\n",(uint32_t)wdata);
     709//                              cout("<sim2os> service     : %.8x\n",(uint32_t)wdata);
    699710//                              component_sim2os->execute(int2service((uint32_t)wdata));
    700711//                            }
     
    712723//                              // Decomposition en groupe octect
    713724//                              uint32_t result = (uint32_t) component_sim2os->result;
    714 //                              printf("<sim2os> result      : %.8x (%d)\n",result,result);
     725//                              cout("<sim2os> result      : %.8x (%d)\n",result,result);
    715726                               
    716727//                              read_dram = itoa(result,read_dram,SIZE_DDATA/8);
     
    729740//                              // Decomposition en groupe octect
    730741//                              uint32_t error = (uint32_t) component_sim2os->error;
    731 //                              printf("<sim2os> error       : %.8x\n",error);
     742//                              cout("<sim2os> error       : %.8x\n",error);
    732743//                              read_dram = itoa(error ,read_dram,SIZE_DDATA/8);
    733744//                            }
     
    744755//                            {
    745756//                              uint32_t data = (uint32_t)wdata;
    746 //                              printf("<sim2os> argument[%d] : %.8x\n",num_reg-1,data);
     757//                              cout("<sim2os> argument[%d] : %.8x\n",num_reg-1,data);
    747758//                              component_sim2os->parameter(num_reg-2,(void *)data);
    748759//                            }
     
    793804//              {
    794805//                if (bus_error == true)
    795 //                  cout << "Dcache : have a bus error" << endl;
     806//                  cout("Dcache : have a bus error");
    796807//                component_buffer_drsp [i]->push(latence,
    797808//                                                         Entry((uint32_t)DCACHE [i][j].REQ_TRDID.read() ,
Note: See TracChangeset for help on using the changeset viewer.