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

Almost complete design
with Test and test platform

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/SelfTest/Makefile

    r81 r88  
    2424library_clean                   : Dependency_checking_unit_library_clean
    2525
     26local_clean                     :
     27
    2628include                         $(DIR_COMPONENT)/Makefile.deps
    2729include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/SelfTest/src/main.cpp

    r81 r88  
    4848         _nb_general_register,
    4949         _nb_special_register,
    50          _nb_inst_insert     );
     50         _nb_inst_insert     ,
     51         true //is_toplevel
     52         );
    5153     
    5254      msg(_("%s"),param->print(1).c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/SelfTest/src/test.cpp

    r82 r88  
    2424#endif
    2525
     26  Tusage_t _usage = USE_ALL;
     27
     28//   _usage = usage_unset(_usage,USE_SYSTEMC              );
     29//   _usage = usage_unset(_usage,USE_VHDL                 );
     30//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
     31//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
     32//   _usage = usage_unset(_usage,USE_POSITION             );
     33//   _usage = usage_unset(_usage,USE_STATISTICS           );
     34//   _usage = usage_unset(_usage,USE_INFORMATION          );
     35
    2636  Dependency_checking_unit * _Dependency_checking_unit = new Dependency_checking_unit
    2737    (name.c_str(),
     
    3040#endif
    3141     _param,
    32      USE_ALL);
     42     _usage);
    3343 
    3444#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/include/Parameters.h

    r82 r88  
    3131  public : uint32_t   _nb_inst_insert        ;
    3232
    33   public : uint32_t   _size_front_end_id     ;
    34   public : uint32_t   _size_context_id       ;
    35   public : uint32_t   _size_general_register ;
    36   public : uint32_t   _size_special_register ;
    37                      
    38   public : uint32_t   _have_port_context_id  ;
    39   public : uint32_t   _have_port_front_end_id;
     33//public : uint32_t   _size_front_end_id     ;
     34//public : uint32_t   _size_context_id       ;
     35//public : uint32_t   _size_general_register ;
     36//public : uint32_t   _size_special_register ;
     37
     38//public : uint32_t   _have_port_context_id  ;
     39//public : uint32_t   _have_port_front_end_id;
    4040
    4141    //-----[ methods ]-----------------------------------------------------------
     
    4444                        uint32_t nb_general_register   ,
    4545                        uint32_t nb_special_register   ,
    46                         uint32_t nb_inst_insert        );
     46                        uint32_t nb_inst_insert        ,
     47                        bool     is_toplevel=false
     48                        );
    4749//   public : Parameters  (Parameters & param) ;
    4850  public : ~Parameters () ;
    4951
    5052  public :        Parameters_test msg_error  (void);
     53
     54  public :        void            copy       (void);
    5155
    5256  public :        std::string     print      (uint32_t depth);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit.cpp

    r81 r88  
    3939    log_printf(FUNC,Dependency_checking_unit,FUNCTION,"Begin");
    4040
     41#if DEBUG_Dependency_checking_unit == true
     42    log_printf(INFO,Dependency_checking_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     43
     44    std::cout << *param << std::endl;
     45#endif   
     46
    4147    log_printf(INFO,Dependency_checking_unit,FUNCTION,"Allocation");
    4248
     
    4854
    4955#ifdef STATISTICS
    50     if (_usage & USE_STATISTICS)
     56    if (usage_is_set(_usage,USE_STATISTICS))
    5157      {
    5258        log_printf(INFO,Dependency_checking_unit,FUNCTION,"Allocation of statistics");
     
    5763
    5864#ifdef VHDL
    59     if (_usage & USE_VHDL)
     65    if (usage_is_set(_usage,USE_VHDL))
    6066      {
    6167        // generate the vhdl
     
    6773
    6874#ifdef SYSTEMC
    69     if (_usage & USE_SYSTEMC)
     75    if (usage_is_set(_usage,USE_SYSTEMC))
    7076      {
    7177# if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     
    8692        SC_METHOD (genMealy);
    8793        dont_initialize ();
    88         sensitive << (*(in_CLOCK)).neg();
     94//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
    8995        for (uint32_t i=0;i<_param->_nb_inst_insert; i++)
    9096          {
     
    221227
    222228#ifdef STATISTICS
    223     if (_usage & USE_STATISTICS)
     229    if (usage_is_set(_usage,USE_STATISTICS))
    224230      {
    225231        log_printf(INFO,Dependency_checking_unit,FUNCTION,"Generate Statistics file");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_allocation.cpp

    r81 r88  
    113113
    114114#ifdef POSITION
    115     _component->generate_file();
     115     if (usage_is_set(_usage,USE_POSITION))
     116       _component->generate_file();
    116117#endif
    117118
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_deallocation.cpp

    r81 r88  
    2424    log_printf(FUNC,Dependency_checking_unit,FUNCTION,"Begin");
    2525
    26     if (_usage & USE_SYSTEMC)
     26    if (usage_is_set(_usage,USE_SYSTEMC))
    2727      {
    2828        delete     in_CLOCK ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_end_cycle.cpp

    r81 r88  
    2626
    2727#ifdef STATISTICS
    28     _stat->end_cycle();
     28    if (usage_is_set(_usage,USE_STATISTICS))
     29      _stat->end_cycle();
    2930#endif   
    3031
     
    3233    // Evaluation before read the ouput signal
    3334//  sc_start(0);
    34     _interfaces->testbench();
     35    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
     36      _interfaces->testbench();
    3537#endif
    3638
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_genMealy.cpp

    r81 r88  
    2323  void Dependency_checking_unit::genMealy (void)
    2424  {
    25     log_printf(FUNC,Dependency_checking_unit,FUNCTION,"Begin");
     25    log_begin(Dependency_checking_unit,FUNCTION);
     26    log_function(Dependency_checking_unit,FUNCTION,_name.c_str());
    2627
    2728//     Tcontrol_t         val                [_param->_nb_inst_insert];
     
    7778        num_reg_re_phy_new [i] = PORT_READ(in_RENAME_IN_NUM_REG_RE_PHY_NEW [i]);
    7879       
     80        log_printf(TRACE,Dependency_checking_unit,FUNCTION,"  * (before) [%d] %.2d %.2d, %.1d %.2d %.5d, %.1d %.2d %.5d, %.1d %.2d %.5d, %.1d %.2d %.5d -> %.5d, %.1d %.2d %.5d -> %.5d",
     81                   i,
     82                   front_end_id       [i],
     83                   context_id         [i],
     84                   read_ra            [i],
     85                   num_reg_ra_log     [i],
     86                   num_reg_ra_phy     [i],
     87                   read_rb            [i],
     88                   num_reg_rb_log     [i],
     89                   num_reg_rb_phy     [i],
     90                   read_rc            [i],
     91                   num_reg_rc_log     [i],
     92                   num_reg_rc_phy     [i],
     93                   write_rd           [i],
     94                   num_reg_rd_log     [i],
     95                   num_reg_rd_phy_old [i],
     96                   num_reg_rd_phy_new [i],
     97                   write_re           [i],
     98                   num_reg_re_log     [i],
     99                   num_reg_re_phy_old [i],
     100                   num_reg_re_phy_new [i]);
     101
    79102        // ================================================================
    80103        // =====[ Write after Write ]======================================
     
    88111                (context_id     [j] == context_id     [i]) )
    89112              {
     113                log_printf(TRACE,Dependency_checking_unit,FUNCTION,"    * RD :  WAW dependency with inst[%d].RD",j);
    90114                num_reg_rd_phy_old [i] = num_reg_rd_phy_new [j];
    91115                break; // find the most recently dependency
     
    100124                (context_id     [j] == context_id     [i]) )
    101125              {
     126                log_printf(TRACE,Dependency_checking_unit,FUNCTION,"    * RE : WAW dependency with inst[%d].RE",j);
    102127                num_reg_re_phy_old [i] = num_reg_re_phy_new [j];
    103128                break; // find the most recently dependency
     
    114139                (context_id     [j] == context_id     [i]) )
    115140              {
     141                log_printf(TRACE,Dependency_checking_unit,FUNCTION,"    * RA :  RAW dependency with inst[%d].RD",j);
    116142                num_reg_ra_phy [i] = num_reg_rd_phy_new [j];
    117143                break; // find the most recently dependency
     
    126152                (context_id     [j] == context_id     [i]) )
    127153              {
     154                log_printf(TRACE,Dependency_checking_unit,FUNCTION,"    * RB :  RAW dependency with inst[%d].RD",j);
    128155                num_reg_rb_phy [i] = num_reg_rd_phy_new [j];
    129156                break; // find the most recently dependency
     
    138165                (context_id     [j] == context_id     [i]) )
    139166              {
     167                log_printf(TRACE,Dependency_checking_unit,FUNCTION,"    * RC :  RAW dependency with inst[%d].RE",j);
    140168                num_reg_rc_phy [i] = num_reg_re_phy_new [j];
    141169                break; // find the most recently dependency
    142170              }
     171
     172        log_printf(TRACE,Dependency_checking_unit,FUNCTION,"  * (after ) [%d] %.2d %.2d, %.1d %.2d %.5d, %.1d %.2d %.5d, %.1d %.2d %.5d, %.1d %.2d %.5d -> %.5d, %.1d %.2d %.5d -> %.5d",
     173                   i,
     174                   front_end_id       [i],
     175                   context_id         [i],
     176                   read_ra            [i],
     177                   num_reg_ra_log     [i],
     178                   num_reg_ra_phy     [i],
     179                   read_rb            [i],
     180                   num_reg_rb_log     [i],
     181                   num_reg_rb_phy     [i],
     182                   read_rc            [i],
     183                   num_reg_rc_log     [i],
     184                   num_reg_rc_phy     [i],
     185                   write_rd           [i],
     186                   num_reg_rd_log     [i],
     187                   num_reg_rd_phy_old [i],
     188                   num_reg_rd_phy_new [i],
     189                   write_re           [i],
     190                   num_reg_re_log     [i],
     191                   num_reg_re_phy_old [i],
     192                   num_reg_re_phy_new [i]);
    143193
    144194        // =====[ Output ]=================================================
     
    168218      }
    169219
    170     log_printf(FUNC,Dependency_checking_unit,FUNCTION,"End");
     220    log_end(Dependency_checking_unit,FUNCTION);
    171221  };
    172222
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Parameters.cpp

    r81 r88  
    2424                          uint32_t nb_general_register   ,
    2525                          uint32_t nb_special_register   ,
    26                           uint32_t nb_inst_insert        )
     26                          uint32_t nb_inst_insert        ,
     27                          bool     is_toplevel           )
    2728  {
    2829    log_printf(FUNC,Dependency_checking_unit,FUNCTION,"Begin");
     
    3435    _nb_inst_insert      = nb_inst_insert     ;
    3536
    36     _size_front_end_id      = log2(nb_front_end       );
    37     _size_context_id        = log2(max_nb_context     );
    38     _size_general_register  = log2(nb_general_register);
    39     _size_special_register  = log2(nb_special_register);
    40    
    41     _have_port_front_end_id = _size_front_end_id>0;
    42     _have_port_context_id   = _size_context_id  >0;
     37    test();
    4338
    44     test();
     39    if (is_toplevel)
     40      {
     41        _size_front_end_id      = log2(nb_front_end       );
     42        _size_context_id        = log2(max_nb_context     );
     43        _size_general_register  = log2(nb_general_register);
     44        _size_special_register  = log2(nb_special_register);
     45       
     46        _have_port_front_end_id = _size_front_end_id>0;
     47        _have_port_context_id   = _size_context_id  >0;
     48
     49        copy();
     50      }
     51
    4552    log_printf(FUNC,Dependency_checking_unit,FUNCTION,"End");
    4653  };
     
    5764#undef  FUNCTION
    5865#define FUNCTION "Dependency_checking_unit::~Parameters"
    59   Parameters::~Parameters ()
     66  Parameters::~Parameters (void)
     67  {
     68    log_printf(FUNC,Dependency_checking_unit,FUNCTION,"Begin");
     69    log_printf(FUNC,Dependency_checking_unit,FUNCTION,"End");
     70  };
     71
     72#undef  FUNCTION
     73#define FUNCTION "Dependency_checking_unit::copy"
     74  void Parameters::copy (void)
    6075  {
    6176    log_printf(FUNC,Dependency_checking_unit,FUNCTION,"Begin");
Note: See TracChangeset for help on using the changeset viewer.