Ignore:
Timestamp:
Jan 30, 2008, 5:24:14 PM (17 years ago)
Author:
rosiere
Message:

New component : Read_unit (instance between a write queue and a optionnal execute_queue)

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural
Files:
47 added
3 deleted
21 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/Makefile.deps

    r68 r74  
    3434#-----[ Rules ]--------------------------------------------
    3535
    36 .NOTPARALLEL                    : Read_queue_library Read_queue_library_clean
     36#.NOTPARALLEL                   : Read_queue_library Read_queue_library_clean
    3737
    3838Read_queue_library              : $(Read_queue_DEPENDENCIES)
    3939                                @\
    4040                                $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue --makefile=Makefile;
    41        
     41
    4242Read_queue_library_clean        : $(Read_queue_CLEAN)
    4343                                @\
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/Makefile.deps

    r73 r74  
    1414endif
    1515
     16#-----[ Directory ]----------------------------------------
     17
     18Execute_queue_DIR               =       $(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue
     19
    1620#-----[ Library ]------------------------------------------
    1721Execute_queue_LIBRARY           =       -lExecute_queue \
    1822                                        $(Behavioural_LIBRARY) 
    1923
    20 Execute_queue_DIR_LIBRARY               =       -L$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/lib \
     24Execute_queue_DIR_LIBRARY       =       -L$(Execute_queue_DIR)/lib      \
    2125                                        $(Behavioural_DIR_LIBRARY)
    2226
    23 Execute_queue_DEPENDENCIES              =       Behavioural_library
     27Execute_queue_DEPENDENCIES      =       Behavioural_library
    2428
    2529Execute_queue_CLEAN             =       Behavioural_library_clean
    2630
    2731#-----[ Rules ]--------------------------------------------
    28 
    29 .NOTPARALLEL                    : Execute_queue_library Execute_queue_library_clean
     32#.NOTPARALLEL                   : Execute_queue_library Execute_queue_library_clean
    3033
    3134Execute_queue_library           : $(Execute_queue_DEPENDENCIES)
    3235                                @\
    33                                 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue --makefile=Makefile;
     36                                $(MAKE) --directory=$(Execute_queue_DIR) --makefile=Makefile;
    3437
    3538Execute_queue_library_clean     : $(Execute_queue_CLEAN)
    3639                                @\
    37                                 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue --makefile=Makefile clean;
     40                                $(MAKE) --directory=$(Execute_queue_DIR) --makefile=Makefile clean;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h

    r73 r74  
    9090
    9191#ifdef STATISTICS
    92   private   : Stat                           * _stat;
     92  public    : Stat                           * _stat;
    9393
    9494  private   : counter_t                      * _stat_use_queue;
     
    172172#ifdef STATISTICS
    173173  public  : void        statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
    174   public  : std::string statistics_print          (uint32_t depth);
    175174#endif
    176175                                               
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters.cpp

    r73 r74  
    5959#define FUNCTION "Execute_queue::Parameters (copy)"
    6060  Parameters::Parameters (Parameters & param):
    61     _size_queue              (_size_queue             ),
    62     _nb_context              (_nb_context             ),
    63     _nb_front_end            (_nb_front_end           ),
    64     _nb_ooo_engine           (_nb_ooo_engine          ),
    65     _nb_packet               (_nb_packet              ),
    66     _size_general_data       (_size_general_data      ),
    67     _size_special_data       (_size_special_data      ),
    68     _nb_operation            (_nb_operation           ),
    69     _nb_type                 (_nb_type                ),
     61    _size_queue              (param._size_queue             ),
     62    _nb_context              (param._nb_context             ),
     63    _nb_front_end            (param._nb_front_end           ),
     64    _nb_ooo_engine           (param._nb_ooo_engine          ),
     65    _nb_packet               (param._nb_packet              ),
     66    _size_general_data       (param._size_general_data      ),
     67    _size_special_data       (param._size_special_data      ),
     68    _nb_operation            (param._nb_operation           ),
     69    _nb_type                 (param._nb_type                ),
    7070
    71     _size_context_id         (_size_context_id        ),
    72     _size_front_end_id       (_size_front_end_id      ),
    73     _size_ooo_engine_id      (_size_ooo_engine_id     ),
    74     _size_packet_id          (_size_packet_id         ),
    75     _size_operation          (_size_operation         ),
    76     _size_type               (_size_type              ),
     71    _size_context_id         (param._size_context_id        ),
     72    _size_front_end_id       (param._size_front_end_id      ),
     73    _size_ooo_engine_id      (param._size_ooo_engine_id     ),
     74    _size_packet_id          (param._size_packet_id         ),
     75    _size_operation          (param._size_operation         ),
     76    _size_type               (param._size_type              ),
    7777
    78     _have_port_context_id    (_have_port_context_id   ),
    79     _have_port_front_end_id  (_have_port_front_end_id ),
    80     _have_port_ooo_engine_id (_have_port_ooo_engine_id),
    81     _have_port_packet_id     (_have_port_packet_id    )
     78    _have_port_context_id    (param._have_port_context_id   ),
     79    _have_port_front_end_id  (param._have_port_front_end_id ),
     80    _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
     81    _have_port_packet_id     (param._have_port_packet_id    )
    8282  {
    8383    log_printf(FUNC,Execute_queue,FUNCTION,"Begin");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/Makefile.deps

    r73 r74  
    1414endif
    1515
     16#-----[ Directory ]----------------------------------------
     17
     18Write_queue_DIR                 =       $(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue
     19
    1620#-----[ Library ]------------------------------------------
    1721Write_queue_LIBRARY             =       -lWrite_queue   \
    1822                                        $(Behavioural_LIBRARY) 
    1923
    20 Write_queue_DIR_LIBRARY         =       -L$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/lib   \
     24Write_queue_DIR_LIBRARY         =       -L$(Write_queue_DIR)/lib        \
    2125                                        $(Behavioural_DIR_LIBRARY)
    2226
    23 Write_queue_DEPENDENCIES                =       Behavioural_library
     27Write_queue_DEPENDENCIES        =       Behavioural_library
    2428
    2529Write_queue_CLEAN               =       Behavioural_library_clean
    2630
    2731#-----[ Rules ]--------------------------------------------
    28 
    29 .NOTPARALLEL                    : Write_queue_library Write_queue_library_clean
     32#.NOTPARALLEL                   : Write_queue_library Write_queue_library_clean
    3033
    3134Write_queue_library             : $(Write_queue_DEPENDENCIES)
    3235                                @\
    33                                 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue --makefile=Makefile;
     36                                $(MAKE) --directory=$(Write_queue_DIR) --makefile=Makefile;
    3437
    3538Write_queue_library_clean       : $(Write_queue_CLEAN)
    3639                                @\
    37                                 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue --makefile=Makefile clean;
     40                                $(MAKE) --directory=$(Write_queue_DIR) --makefile=Makefile clean;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/test.cpp

    r73 r74  
    4242      /*cout << "SC_START (end  )" << endl;*/                                        \
    4343    } while(0)
    44 
    4544
    4645  class entry_t
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h

    r73 r74  
    103103
    104104#ifdef STATISTICS
    105   private   : Stat                           * _stat;
     105  public    : Stat                           * _stat;
    106106
    107107  private   : counter_t                      * _stat_use_queue;
     
    216216#endif                                         
    217217#ifdef STATISTICS
    218   public  : void        statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
    219   public  : std::string statistics_print          (uint32_t depth);
     218  public  : void     statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
    220219#endif
    221220                                               
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters.cpp

    r73 r74  
    7070#define FUNCTION "Write_queue::Parameters (copy)"
    7171  Parameters::Parameters (Parameters & param):
    72     _size_queue              (_size_queue             ),
    73     _nb_context              (_nb_context             ),
    74     _nb_front_end            (_nb_front_end           ),
    75     _nb_ooo_engine           (_nb_ooo_engine          ),
    76     _nb_packet               (_nb_packet              ),
    77     _size_general_data       (_size_general_data      ),
    78     _nb_general_register     (_nb_general_register    ),
    79     _size_special_data       (_size_special_data      ),
    80     _nb_special_register     (_nb_special_register    ),
    81     _nb_operation            (_nb_operation           ),
    82     _nb_type                 (_nb_type                ),
    83     _nb_bypass_write         (_nb_bypass_write        ),
     72    _size_queue              (param._size_queue             ),
     73    _nb_context              (param._nb_context             ),
     74    _nb_front_end            (param._nb_front_end           ),
     75    _nb_ooo_engine           (param._nb_ooo_engine          ),
     76    _nb_packet               (param._nb_packet              ),
     77    _size_general_data       (param._size_general_data      ),
     78    _nb_general_register     (param._nb_general_register    ),
     79    _size_special_data       (param._size_special_data      ),
     80    _nb_special_register     (param._nb_special_register    ),
     81    _nb_operation            (param._nb_operation           ),
     82    _nb_type                 (param._nb_type                ),
     83    _nb_bypass_write         (param._nb_bypass_write        ),
    8484
    85     _nb_gpr_write            (_nb_gpr_write           ),
    86     _nb_spr_write            (_nb_spr_write           ),
     85    _nb_gpr_write            (param._nb_gpr_write           ),
     86    _nb_spr_write            (param._nb_spr_write           ),
    8787
    88     _size_context_id         (_size_context_id        ),
    89     _size_front_end_id       (_size_front_end_id      ),
    90     _size_ooo_engine_id      (_size_ooo_engine_id     ),
    91     _size_packet_id          (_size_packet_id         ),
    92     _size_general_register   (_size_general_register  ),
    93     _size_special_register   (_size_special_register  ),
    94     _size_operation          (_size_operation         ),
    95     _size_type               (_size_type              ),
     88    _size_context_id         (param._size_context_id        ),
     89    _size_front_end_id       (param._size_front_end_id      ),
     90    _size_ooo_engine_id      (param._size_ooo_engine_id     ),
     91    _size_packet_id          (param._size_packet_id         ),
     92    _size_general_register   (param._size_general_register  ),
     93    _size_special_register   (param._size_special_register  ),
     94    _size_operation          (param._size_operation         ),
     95    _size_type               (param._size_type              ),
    9696
    97     _have_port_context_id    (_have_port_context_id   ),
    98     _have_port_front_end_id  (_have_port_front_end_id ),
    99     _have_port_ooo_engine_id (_have_port_ooo_engine_id),
    100     _have_port_packet_id     (_have_port_packet_id    )
     97    _have_port_context_id    (param._have_port_context_id   ),
     98    _have_port_front_end_id  (param._have_port_front_end_id ),
     99    _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
     100    _have_port_packet_id     (param._have_port_packet_id    )
    101101  {
    102102    log_printf(FUNC,Write_queue,FUNCTION,"Begin");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters_msg_error.cpp

    r73 r74  
    2828    std::string msg = "";
    2929
     30    if (_nb_bypass_write > _size_queue)
     31      msg += " * The write_queue can't have more bypass_write than entry in the queue.";
     32
    3033    return msg;
    3134
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp

    r73 r74  
    126126    // -----[ Interface "bypass_write" ]----------------------------------
    127127     {
    128        ALLOC1_INTERFACE("bypass_write", OUT, NORTH ,"Output of internal write_queue", _param->_size_queue);
     128       ALLOC1_INTERFACE("bypass_write", OUT, NORTH ,"Output of internal write_queue", _param->_nb_bypass_write);
    129129       
    130130       if(_param->_have_port_ooo_engine_id)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_transition.cpp

    r73 r74  
    7676
    7777#ifdef STATISTICS
    78     *(_stat_use_write_queue) += _queue->size();
     78    *(_stat_use_queue) += _queue->size();
    7979#endif
    8080
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Makefile.deps

    r60 r74  
    4242#-----[ Rules ]--------------------------------------------
    4343
    44 .NOTPARALLEL                    : Register_unit_library Register_unit_library_clean     
     44#.NOTPARALLEL                   : Register_unit_library Register_unit_library_clean     
    4545
    4646Register_unit_library           : $(Register_unit_DEPENDENCIES)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/Makefile.deps

    r67 r74  
    3434#-----[ Rules ]--------------------------------------------
    3535
    36 .NOTPARALLEL                    : Queue_library Queue_library_clean
     36#.NOTPARALLEL                   : Queue_library Queue_library_clean
    3737
    3838Queue_library                   : $(Queue_DEPENDENCIES)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/Makefile.deps

    r71 r74  
    1414endif
    1515
     16#-----[ Directory ]----------------------------------------
     17
     18@COMPONENT_DIR                  =       $(DIR_MORPHEO)/Behavioural/@DIRECTORY
     19
    1620#-----[ Library ]------------------------------------------
    1721@COMPONENT_LIBRARY              =       -l@COMPONENT    \
    1822                                        $(Behavioural_LIBRARY) 
    1923
    20 @COMPONENT_DIR_LIBRARY          =       -L$(DIR_MORPHEO)/Behavioural/@DIRECTORY/lib     \
     24@COMPONENT_DIR_LIBRARY          =       -L$(@COMPONENT_DIR)/lib \
    2125                                        $(Behavioural_DIR_LIBRARY)
    2226
     
    2731#-----[ Rules ]--------------------------------------------
    2832
    29 .NOTPARALLEL                    : @COMPONENT_library @COMPONENT_library_clean
     33#.NOTPARALLEL                   : @COMPONENT_library @COMPONENT_library_clean
    3034
    3135@COMPONENT_library              : $(@COMPONENT_DEPENDENCIES)
    3236                                @\
    33                                 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/@DIRECTORY --makefile=Makefile;
     37                                $(MAKE) --directory=$(@COMPONENT_DIR) --makefile=Makefile;
    3438
    3539@COMPONENT_library_clean        : $(@COMPONENT_CLEAN)
    3640                                @\
    37                                 $(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/@DIRECTORY --makefile=Makefile clean;
     41                                $(MAKE) --directory=$(@COMPONENT_DIR) --makefile=Makefile clean;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/New_Component.h

    r71 r74  
    4545
    4646#ifdef STATISTICS
    47   private   : Stat                           * _stat;
     47  public    : Stat                           * _stat;
    4848#endif
    4949
     
    8484  public  :          ~@COMPONENT             (void);
    8585                                               
    86   private : void     allocation                (void);
    87   private : void     deallocation              (void);
     86  private : void        allocation                (
     87#ifdef STATISTICS
     88                                                   morpheo::behavioural::Parameters_Statistics * param_statistics
     89#else
     90                                                   void
     91#endif
     92                                                   );
     93  private : void        deallocation              (void);
    8894                                               
    8995#ifdef SYSTEMC                                 
    90 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    91   public  : void     transition                (void);
    92 //#endif
     96  public  : void        transition                (void);
     97//public  : void        genMoore                  (void);
    9398#endif                                         
    9499#ifdef STATISTICS
    95100  public  : void        statistics_declaration    (morpheo::behavioural::Parameters_Statistics * param_statistics);
    96   public  : std::string statistics_print          (uint32_t depth);
    97101#endif
    98102                                               
    99103#if VHDL                                       
    100   public  : void     vhdl                      (void);
    101   private : void     vhdl_declaration          (Vhdl * & vhdl);
    102   private : void     vhdl_body                 (Vhdl * & vhdl);
     104  public  : void        vhdl                      (void);
     105  private : void        vhdl_declaration          (Vhdl * & vhdl);
     106  private : void        vhdl_body                 (Vhdl * & vhdl);
    103107#endif                                         
    104108                                               
    105109#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    106   private : void     end_cycle                 (void);
     110  private : void        end_cycle                 (void);
    107111#endif
    108112  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component.cpp

    r71 r74  
    3434
    3535    log_printf(INFO,@COMPONENT,FUNCTION,"Allocation");
    36     allocation ();
     36
     37    allocation (
     38#ifdef STATISTICS
     39                param_statistics
     40#endif
     41                );
    3742
    3843#ifdef STATISTICS
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_allocation.cpp

    r73 r74  
    1616#undef  FUNCTION
    1717#define FUNCTION "@COMPONENT::allocation"
    18   void @COMPONENT::allocation (void)
     18  void @COMPONENT::allocation (
     19#ifdef STATISTICS
     20                               morpheo::behavioural::Parameters_Statistics * param_statistics
     21#else
     22                               void
     23#endif
     24                               )
    1925  {
    2026    string rename;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_transition.cpp

    r73 r74  
    11#ifdef SYSTEMC
    2 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    32/*
    43 * $Id$
     
    3130}; // end namespace morpheo             
    3231#endif
    33 //#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Stat.h

    r71 r74  
    5656      counter_t                    * _cycle;
    5757
     58      std::list<Stat *>            * _list_stat;
     59
     60      bool                           _generate_file;
     61
    5862    public :                     Stat            (std::string name_instance,
    5963                                                  std::string name_component,
     
    9094    private : void               generate_file   (void);
    9195
     96    public  : void               add_stat        (Stat * stat);
     97
    9298    public  : std::string        print           (uint32_t depth=0);
    9399    };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat.cpp

    r71 r74  
    1616    _list_operand  = new std::map<std::string, var_t>;
    1717    _list_expr     = new std::list<expr_t>;
     18    _list_stat     = new std::list<Stat *>;
    1819
    1920    _cycle         = create_variable("cycle");
    2021    *_cycle        = 0; // for the first period
     22
     23    _generate_file = true;
    2124  }
    2225
     
    3336    _list_operand  = new std::map<std::string, var_t>;
    3437    _list_expr     = new std::list<expr_t>;
     38    _list_stat     = new std::list<Stat *>;
    3539
    3640    _cycle         = create_variable("cycle");
    3741    *_cycle        = 0; // for the first period
     42
     43    _generate_file = true;
    3844  }
    3945
    4046  Stat::~Stat (void)
    4147  {
    42     generate_file();
     48    if (_generate_file)
     49      generate_file();
    4350
    4451    // parcourir la liste et desallouer les counters
     
    5966      }
    6067    delete _list_expr;
     68    delete _list_stat;
    6169  }
    6270};
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_print.cpp

    r71 r74  
    1616    xml.attribut("name",_name_instance);
    1717    xml.balise_open_end();
     18
     19    // Print component
     20    for (std::list<Stat *>::iterator stat=_list_stat->begin();
     21         stat != _list_stat->end();
     22         stat ++)
     23      xml.text((*stat)->print(depth+1));
     24   
    1825
    1926    // Test special case
Note: See TracChangeset for help on using the changeset viewer.