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

Almost complete design
with Test and test platform

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/Environment/include/Environment_Parameters.h

    r81 r88  
    88#include "../RamLock/include/RamLock_Parameters.h"
    99#include "../Sim2OS/include/Sim2OS_Parameters.h"
     10#include "../../processor/Morpheo/Common/include/ToString.h"
    1011
    1112namespace environment {
     
    1314  class Parameters
    1415  {
    15   public : uint32_t    nb_iport;
    16   public : uint32_t    nb_dport;
    17   public : uint32_t    nb_entity;
    18   public : uint32_t  * icache_dedicated_nb_port;
    19   public : uint32_t  * dcache_dedicated_nb_port;
    20 
    21   public : uint32_t  * iaccess_nb_context    ;
    22   public : uint32_t  * iaccess_nb_packet     ;
    23   public : uint32_t  * iaccess_size_address  ;
    24   public : uint32_t  * iaccess_nb_instruction;
    25   public : uint32_t  * iaccess_size_instruction;
    26 
    27   public : uint32_t  * daccess_nb_context    ;
    28   public : uint32_t  * daccess_nb_packet     ;
    29   public : uint32_t  * daccess_size_address  ;
    30   public : uint32_t  * daccess_size_data     ;
     16  public : uint32_t                nb_iport                ;
     17  public : uint32_t                nb_dport                ;
     18  public : uint32_t                nb_entity               ;
     19  public : uint32_t              * icache_dedicated_nb_port; //[nb_entity]
     20  public : uint32_t              * dcache_dedicated_nb_port; //[nb_entity]
     21                               
     22  public : uint32_t              * iaccess_nb_context      ; //[nb_entity]
     23  public : uint32_t              * iaccess_nb_packet       ; //[nb_entity]
     24  public : uint32_t              * iaccess_size_address    ; //[nb_entity]
     25  public : uint32_t              * iaccess_nb_instruction  ; //[nb_entity]
     26  public : uint32_t              * iaccess_size_instruction; //[nb_entity]
     27                               
     28  public : uint32_t              * daccess_nb_context      ; //[nb_entity]
     29  public : uint32_t              * daccess_nb_packet       ; //[nb_entity]
     30  public : uint32_t              * daccess_size_address    ; //[nb_entity]
     31  public : uint32_t              * daccess_size_data       ; //[nb_entity]
    3132
    3233    // Parameters cache
    33   public : cache::Parameters                     * param_cache;
     34  public : cache::Parameters     * param_cache             ;
    3435    // Parameters tty
    35   public : uint32_t                                nb_component_tty;
    36   public : uint32_t                              * tty_address;
    37   public : tty::Parameters                      ** param_tty;
     36  public : uint32_t                nb_component_tty        ;
     37  public : uint32_t              * tty_address             ; //[nb_component_tty]
     38  public : tty::Parameters      ** param_tty               ; //[nb_component_tty]
    3839    // Parameters ramlock
    39   public : uint32_t                                nb_component_ramlock;
    40   public : uint32_t                              * ramlock_address;
    41   public : ramlock::Parameters                  ** param_ramlock;
     40  public : uint32_t                nb_component_ramlock    ;
     41  public : uint32_t              * ramlock_address         ; //[nb_component_ramlock]
     42  public : ramlock::Parameters  ** param_ramlock           ; //[nb_component_ramlock]
    4243    // Parameters sim2OS
    43   public : uint32_t                                sim2os_address;
    44   public : uint32_t                                sim2os_size;
    45   public : sim2os::Parameters                    * param_sim2os;
     44  public : uint32_t                sim2os_address          ;
     45  public : uint32_t                sim2os_size             ;
     46  public : sim2os::Parameters    * param_sim2os            ;
    4647    // Parameters data
    47   public : data::Parameters                      * param_data;
     48  public : data::Parameters      * param_data              ;
    4849
    4950    // Parameters buffer_respons
    50   public : queue::Parameters                    ** param_buffer_irsp;
    51   public : queue::Parameters                    ** param_buffer_drsp;
     51  public : queue::Parameters    ** param_buffer_irsp       ; //[nb_entity]
     52  public : queue::Parameters    ** param_buffer_drsp       ; //[nb_entity]
    5253
    5354  public : Parameters (// General
     
    232233      delete param_cache;
    233234    }
     235
     236  public : std::string print (uint32_t depth)
     237    {
     238      std::string tab = std::string(depth,'\t');
     239      std::string str = "";
     240
     241      str+=tab+"nb_entity                    : "+morpheo::toString(nb_entity)+"\n";
     242      str+=tab+"nb_iport                     : "+morpheo::toString(nb_iport )+"\n";
     243      str+=tab+"nb_dport                     : "+morpheo::toString(nb_dport )+"\n";
     244      for (uint32_t i=0; i<nb_entity; ++i)
     245        {
     246      str+=tab+"ENTITY ["+morpheo::toString(i)+"]\n";
     247      str+=tab+"  * icache_dedicated_nb_port : "+morpheo::toString(icache_dedicated_nb_port[i])+"\n";
     248      str+=tab+"  * dcache_dedicated_nb_port : "+morpheo::toString(dcache_dedicated_nb_port[i])+"\n";
     249      str+=tab+"  * iaccess_nb_context       : "+morpheo::toString(iaccess_nb_context      [i])+"\n";
     250      str+=tab+"  * iaccess_nb_packet        : "+morpheo::toString(iaccess_nb_packet       [i])+"\n";
     251      str+=tab+"  * iaccess_size_address     : "+morpheo::toString(iaccess_size_address    [i])+"\n";
     252      str+=tab+"  * iaccess_nb_instruction   : "+morpheo::toString(iaccess_nb_instruction  [i])+"\n";
     253      str+=tab+"  * iaccess_size_instruction : "+morpheo::toString(iaccess_size_instruction[i])+"\n";
     254      str+=tab+"  * daccess_nb_context       : "+morpheo::toString(daccess_nb_context      [i])+"\n";
     255      str+=tab+"  * daccess_nb_packet        : "+morpheo::toString(daccess_nb_packet       [i])+"\n";
     256      str+=tab+"  * daccess_size_address     : "+morpheo::toString(daccess_size_address    [i])+"\n";
     257      str+=tab+"  * daccess_size_data        : "+morpheo::toString(daccess_size_data       [i])+"\n";
     258        }
     259
     260      str+=tab+"CACHE\n";
     261      str+=param_cache->print(depth+1);
     262
     263//       str+=tab+"nb_component_tty             : "+morpheo::toString(nb_component_tty           )+"\n";
     264//       for (uint32_t i=0; i<nb_component_tty; ++i)
     265//         {
     266//       str+=tab+"TTY ["+morpheo::toString(i)+"]\n";
     267//       str+=tab+"  * tty_address              : "+morpheo::toString(tty_address             [i])+"\n";
     268//       str+=param_tty->print(depth+1);
     269//         }     
     270
     271//       str+=tab+"nb_component_ramlock         : "+morpheo::toString(nb_component_ramlock       )+"\n";
     272//       for (uint32_t i=0; i<nb_component_ramlock; ++i)
     273//         {
     274//       str+=tab+"RAMLOCK ["+morpheo::toString(i)+"]\n";
     275//       str+=tab+"  * ramlock_address          : "+morpheo::toString(ramlock_address         [i])+"\n";
     276//       str+=param_ramlock->print(depth+1);
     277//         }     
     278
     279//       str+=tab+"SIM2OS\n";
     280//       str+=tab+"sim2os_address               : "+morpheo::toString(sim2os_address)+"\n";
     281//       str+=tab+"sim2os_size                  : "+morpheo::toString(sim2os_size   )+"\n";
     282//       str+=param_sim2os->print(depth+1);
     283
     284//       str+=tab+"DATA\n";
     285//       str+=param_data->print(depth+1);
     286
     287//       for (uint32_t i=0; i<nb_entity; ++i)
     288//         {
     289//       str+=tab+"BUFFER_IRSP ["+morpheo::toString(i)+"]\n";
     290//       str+=param_buffer_irsp[i]_data->print(depth+1);
     291//         }
     292
     293//       for (uint32_t i=0; i<nb_entity; ++i)
     294//         {
     295//       str+=tab+"BUFFER_DRSP ["+morpheo::toString(i)+"]\n";
     296//       str+=param_buffer_drsp[i]_data->print(depth+1);
     297//         }
     298
     299      return str;
     300    }
     301
     302//   public : friend std::ostream& operator<< (std::ostream& output, const Parameters &x)
     303//     {
     304//       x.print(0);
     305//       return output;
     306//     }
    234307  };
    235308
Note: See TracChangeset for help on using the changeset viewer.