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/Generic/RegisterFile
Files:
1 added
23 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/Makefile

    r81 r88  
    2323library_clean                   : RegisterFile_Monolithic_library_clean
    2424
     25local_clean                     :
     26
    2527include                         ../Makefile.deps
    2628include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp

    r82 r88  
    3232      exit (EXIT_FAILURE);
    3333    }
     34
     35  Tusage_t _usage = USE_ALL;
     36
     37//   _usage = usage_unset(_usage,USE_SYSTEMC              );
     38//   _usage = usage_unset(_usage,USE_VHDL                 );
     39//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
     40//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
     41//   _usage = usage_unset(_usage,USE_POSITION             );
     42//   _usage = usage_unset(_usage,USE_STATISTICS           );
     43//   _usage = usage_unset(_usage,USE_INFORMATION          );
    3444
    3545#ifdef STATISTICS
     
    4252#endif
    4353     ,_param
    44      ,USE_ALL);
     54     ,_usage);
    4555 
    4656#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h

    r81 r88  
    3434                       uint32_t nb_word      ,
    3535                       uint32_t size_word    );
    36   public : Parameters (Parameters & param) ;
     36//   public : Parameters (Parameters & param) ;
    3737  public : ~Parameters () ;
    3838
     39  public :        void            copy       (void);
     40
    3941  public :        Parameters_test msg_error  (void);
     42
    4043  public :        std::string   print      (uint32_t depth);
    4144  public : friend std::ostream& operator<< (std::ostream& output_stream,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters.cpp

    r81 r88  
    3232  };
    3333 
    34   Parameters::Parameters (Parameters & param) :
    35     _nb_port_read      (param._nb_port_read ),
    36     _nb_port_write     (param._nb_port_write),
    37     _nb_port_read_write(param._nb_port_read_write),
    38     _nb_word           (param._nb_word      ),
    39     _size_word         (param._size_word    ),
    40     _size_address      (param._size_address ),
    41     _have_port_address (param._have_port_address)
     34//   Parameters::Parameters (Parameters & param) :
     35//     _nb_port_read      (param._nb_port_read ),
     36//     _nb_port_write     (param._nb_port_write),
     37//     _nb_port_read_write(param._nb_port_read_write),
     38//     _nb_word           (param._nb_word      ),
     39//     _size_word         (param._size_word    ),
     40//     _size_address      (param._size_address ),
     41//     _have_port_address (param._have_port_address)
     42//   {
     43//     test();
     44//   };
     45
     46  Parameters::~Parameters ()
    4247  {
    43     test();
    4448  };
    4549
    46   Parameters::~Parameters ()
    47   { };
     50  void Parameters::copy (void)
     51  {
     52  };
    4853
    4954}; // end namespace registerfile_monolithic
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp

    r81 r88  
    3333    log_printf(FUNC,RegisterFile_Monolithic,"RegisterFile_Monolithic","Begin");
    3434
     35#if DEBUG_RegisterFile_Monolithic == true
     36    log_printf(INFO,RegisterFile_Monolithic,FUNCTION,_("<%s> Parameters"),_name.c_str());
     37
     38    std::cout << *param << std::endl;
     39#endif   
     40
    3541    log_printf(INFO,RegisterFile_Monolithic,"RegisterFile_Monolithic","Allocation");
    3642    allocation ();
    3743
    3844#ifdef STATISTICS
    39     if (_usage & USE_STATISTICS)
     45    if (usage_is_set(_usage,USE_STATISTICS))
    4046      statistics_declaration(param_statistics);
    4147#endif
     
    4753
    4854#ifdef SYSTEMC
    49     if (_usage & USE_SYSTEMC)
     55    if (usage_is_set(_usage,USE_SYSTEMC))
    5056      {
    5157        SC_METHOD (transition);
     
    102108  {
    103109#ifdef STATISTICS
    104     if (_usage & USE_STATISTICS)
     110    if (usage_is_set(_usage,USE_STATISTICS))
    105111      delete _stat;
    106112#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp

    r81 r88  
    120120
    121121    // ----- Register
    122     reg_DATA = new Tdata_t [_param->_nb_word];
     122    if (usage_is_set(_usage,USE_SYSTEMC))
     123      reg_DATA = new Tdata_t [_param->_nb_word];
    123124   
    124125#ifdef POSITION
    125     _component->generate_file();
     126    if (usage_is_set(_usage,USE_POSITION))
     127      _component->generate_file();
    126128#endif
    127129  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_deallocation.cpp

    r81 r88  
    1818    delete _component;
    1919
    20     if (_usage & USE_SYSTEMC)
     20    if (usage_is_set(_usage,USE_SYSTEMC))
    2121      {
    2222        delete    in_CLOCK;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_end_cycle.cpp

    r81 r88  
    2020
    2121#ifdef STATISTICS
    22     _stat->end_cycle();
     22    if (usage_is_set(_usage,USE_STATISTICS))
     23      _stat->end_cycle();
    2324#endif   
    2425
     
    2728   
    2829//  sc_start(0);
    29     _interfaces->testbench();
     30    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
     31      _interfaces->testbench();
    3032#endif
    3133
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp

    r81 r88  
    2424          {
    2525#ifdef STATISTICS
    26             (*_stat_nb_write) ++;
     26            if (usage_is_set(_usage,USE_STATISTICS))
     27              (*_stat_nb_write) ++;
    2728#endif   
    2829
     
    4950              {
    5051#ifdef STATISTICS
    51                 (*_stat_nb_write) ++;
     52                if (usage_is_set(_usage,USE_STATISTICS))
     53                  (*_stat_nb_write) ++;
    5254#endif   
    5355               
     
    6769            else
    6870              {
    69                 (*_stat_nb_read) ++;
     71                if (usage_is_set(_usage,USE_STATISTICS))
     72                  (*_stat_nb_read) ++;
    7073              }
    7174#endif   
     
    7477
    7578#ifdef STATISTICS
    76     for (uint32_t i=0; i<_param->_nb_port_read; i++)
    77       if ( PORT_READ(in_READ_VAL [i]) == 1)
    78         (*_stat_nb_read) ++;
     79    if (usage_is_set(_usage,USE_STATISTICS))
     80      for (uint32_t i=0; i<_param->_nb_port_read; i++)
     81        if ( PORT_READ(in_READ_VAL [i]) == 1)
     82          (*_stat_nb_read) ++;
    7983#endif   
    8084
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/Makefile

    r81 r88  
    2424library_clean                   : RegisterFile_Multi_Banked_library_clean
    2525
     26local_clean                     :
     27
    2628include                         ../Makefile.deps
    2729include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp

    r82 r88  
    2323#endif
    2424
     25  Tusage_t _usage = USE_ALL;
     26
     27//   _usage = usage_unset(_usage,USE_SYSTEMC              );
     28//   _usage = usage_unset(_usage,USE_VHDL                 );
     29//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
     30//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
     31//   _usage = usage_unset(_usage,USE_POSITION             );
     32   _usage = usage_unset(_usage,USE_STATISTICS           );
     33//   _usage = usage_unset(_usage,USE_INFORMATION          );
     34
    2535  RegisterFile_Multi_Banked * _RegisterFile_Multi_Banked = new RegisterFile_Multi_Banked
    2636    (name.c_str(),
     
    2939#endif
    3040     _param,
    31      USE_ALL);
     41     _usage);
    3242 
    3343#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h

    r81 r88  
    6161                        uint32_t    nb_port_write_by_bank,
    6262                        Tcrossbar_t crossbar             );
    63   public : Parameters  (Parameters & param) ;
     63//   public : Parameters  (Parameters & param) ;
    6464  public : ~Parameters () ;
    6565
     66  public :        void            copy       (void);
     67
    6668  public :        Parameters_test msg_error  (void);
    67   public :        std::string   print      (uint32_t depth);
    68   public : friend std::ostream& operator<< (std::ostream& output_stream,
    69                                             morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x);
     69
     70  public :        std::string     print      (uint32_t depth);
     71  public : friend std::ostream&   operator<< (std::ostream& output_stream,
     72                                              morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x);
    7073  };
    7174
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h

    r82 r88  
    106106  public  :          ~RegisterFile_Multi_Banked             (void);
    107107                                               
    108 #ifdef SYSTEMC                                 
    109108  private : void     allocation                (void);
    110109  private : void     deallocation              (void);
    111110                                               
     111#ifdef SYSTEMC                                 
    112112  private : Taddress_t address_bank                 (Taddress_t address);
    113113  private : Taddress_t address_num_reg              (Taddress_t address);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp

    r81 r88  
    8787  };
    8888 
    89   Parameters::Parameters (Parameters & param):
    90     _nb_port_read          (param._nb_port_read         ),
    91     _nb_port_write         (param._nb_port_write        ),
    92     _nb_word               (param._nb_word              ),
    93     _size_word             (param._size_word            ),
    94     _nb_bank               (param._nb_bank              ),
    95     _nb_port_read_by_bank  (param._nb_port_read_by_bank ),
    96     _nb_port_write_by_bank (param._nb_port_write_by_bank),
    97     _crossbar              (param._crossbar             ),
    98     _size_address          (param._size_address         ),
    99     _size_address_by_bank  (param._size_address_by_bank ),
    100     _bank_shift            (param._bank_shift           ),
    101     _bank_mask             (param._bank_mask            ),
    102     _num_reg_shift         (param._num_reg_shift        ),
    103     _num_reg_mask          (param._num_reg_mask         ),
    104     _nb_word_by_bank       (param._nb_word_by_bank      ),
    105     _have_port_address     (param._have_port_address     ),
    106     _have_bank_port_address(param._have_bank_port_address)
    107   {
    108     log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters (copy)","Begin");
     89//   Parameters::Parameters (Parameters & param):
     90//     _nb_port_read          (param._nb_port_read         ),
     91//     _nb_port_write         (param._nb_port_write        ),
     92//     _nb_word               (param._nb_word              ),
     93//     _size_word             (param._size_word            ),
     94//     _nb_bank               (param._nb_bank              ),
     95//     _nb_port_read_by_bank  (param._nb_port_read_by_bank ),
     96//     _nb_port_write_by_bank (param._nb_port_write_by_bank),
     97//     _crossbar              (param._crossbar             ),
     98//     _size_address          (param._size_address         ),
     99//     _size_address_by_bank  (param._size_address_by_bank ),
     100//     _bank_shift            (param._bank_shift           ),
     101//     _bank_mask             (param._bank_mask            ),
     102//     _num_reg_shift         (param._num_reg_shift        ),
     103//     _num_reg_mask          (param._num_reg_mask         ),
     104//     _nb_word_by_bank       (param._nb_word_by_bank      ),
     105//     _have_port_address     (param._have_port_address     ),
     106//     _have_bank_port_address(param._have_bank_port_address)
     107//   {
     108//     log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters (copy)","Begin");
    109109
    110     if (_crossbar == PARTIAL_CROSSBAR)
    111       {
    112         // All port_src is connected with one port_dest on each bank
     110//     if (_crossbar == PARTIAL_CROSSBAR)
     111//       {
     112//      // All port_src is connected with one port_dest on each bank
    113113       
    114         _link_port_read_to_bank_read     = new uint32_t [_nb_port_read ];
    115 //      _link_port_read_to_num_bank         = new uint32_t [_nb_port_read ];
    116         _link_port_write_to_bank_write   = new uint32_t [_nb_port_write];
    117 //      _link_port_write_to_num_bank        = new uint32_t [_nb_port_write];
     114//      _link_port_read_to_bank_read     = new uint32_t [_nb_port_read ];
     115// //   _link_port_read_to_num_bank         = new uint32_t [_nb_port_read ];
     116//      _link_port_write_to_bank_write   = new uint32_t [_nb_port_write];
     117// //   _link_port_write_to_num_bank        = new uint32_t [_nb_port_write];
    118118
    119         for (uint32_t i=0; i<_nb_port_read         ;i++)
    120           {
    121             _link_port_read_to_bank_read   [i] = param._link_port_read_to_bank_read     [i];
    122 //          _link_port_read_to_num_bank       [i] = param._link_port_read_to_num_bank    [i];
    123           }
    124         for (uint32_t i=0; i<_nb_port_write        ;i++)
    125           {
    126             _link_port_write_to_bank_write [i] = param._link_port_write_to_bank_write    [i];
    127 //          _link_port_write_to_num_bank      [i] = param._link_port_write_to_num_bank   [i];
    128           }
    129       }
     119//      for (uint32_t i=0; i<_nb_port_read         ;i++)
     120//        {
     121//          _link_port_read_to_bank_read   [i] = param._link_port_read_to_bank_read     [i];
     122// //       _link_port_read_to_num_bank       [i] = param._link_port_read_to_num_bank    [i];
     123//        }
     124//      for (uint32_t i=0; i<_nb_port_write        ;i++)
     125//        {
     126//          _link_port_write_to_bank_write [i] = param._link_port_write_to_bank_write    [i];
     127// //       _link_port_write_to_num_bank      [i] = param._link_port_write_to_num_bank   [i];
     128//        }
     129//       }
    130130
    131     test();
    132     log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters (copy)","End");
    133   };
     131//     test();
     132//     log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters (copy)","End");
     133//   };
    134134
    135135  Parameters::~Parameters ()
     
    147147  };
    148148
     149  void Parameters::copy (void)
     150  {
     151    log_printf(FUNC,RegisterFile_Multi_Banked,"copy","Begin");
     152    log_printf(FUNC,RegisterFile_Multi_Banked,"copy","End");
     153  };
     154
    149155}; // end namespace registerfile_multi_banked
    150156}; // end namespace registerfile
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp

    r82 r88  
    1414namespace registerfile_multi_banked {
    1515
     16#undef  FUNCTION
     17#define FUNCTION "RegisterFile_Multi_Banked::RegisterFile_Multi_Banked"
    1618  RegisterFile_Multi_Banked::RegisterFile_Multi_Banked
    1719  (
     
    3032    ,_usage (usage)
    3133  {
    32     log_printf(FUNC,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Begin");
     34    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"Begin");
    3335
    34 #ifdef SYSTEMC
    35     log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Allocation");
     36#if DEBUG_RegisterFile_Multi_Banked == true
     37    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,_("<%s> Parameters"),_name.c_str());
    3638
     39    std::cout << *param << std::endl;
     40#endif   
     41
     42    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Allocation");
     43   
    3744    allocation ();
    38 #endif
    3945
    4046#ifdef STATISTICS
    41     log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Allocation of statistics");
    42 
    43     // Allocation of statistics
    44     statistics_declaration(param_statistics);
     47    if (usage_is_set(_usage,USE_STATISTICS))
     48      {
     49        log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Allocation of statistics");
     50       
     51        // Allocation of statistics
     52        statistics_declaration(param_statistics);
     53      }
    4554#endif
    4655
    4756#ifdef VHDL
    48     // generate the vhdl
    49     log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Generate the vhdl");
    50 
    51     vhdl();
     57    if (usage_is_set(_usage,USE_VHDL))
     58      {
     59        // generate the vhdl
     60        log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Generate the vhdl");
     61       
     62        vhdl();
     63      }
    5264#endif
    5365
    5466#ifdef SYSTEMC
     67    if (usage_is_set(_usage,USE_SYSTEMC))
     68      {
    5569    // Function pointer
    5670    if (_param->_crossbar == FULL_CROSSBAR)                             
     
    6781      }
    6882
    69     log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Method - transition");
     83    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Method - transition");
    7084
    7185    SC_METHOD (transition);
     
    7791#endif   
    7892
    79     log_printf(INFO,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","Method - genMealy_write");
     93    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Method - genMealy_write");
    8094
    8195    SC_METHOD (genMealy_read);
     
    129143      }
    130144#endif   
    131 
     145      }
    132146#endif
    133     log_printf(FUNC,RegisterFile_Multi_Banked,"RegisterFile_Multi_Banked","End");
     147    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"End");
    134148  };
    135149 
     150#undef  FUNCTION
     151#define FUNCTION "RegisterFile_Multi_Banked::~RegisterFile_Multi_Banked"
    136152  RegisterFile_Multi_Banked::~RegisterFile_Multi_Banked (void)
    137153  {
    138     log_printf(FUNC,RegisterFile_Multi_Banked,"~RegisterFile_Multi_Banked","Begin");
     154    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"Begin");
    139155
    140156#ifdef STATISTICS
    141     log_printf(INFO,RegisterFile_Multi_Banked,"~RegisterFile_Multi_Banked","Generate Statistics file");
    142    
    143     delete _stat;
     157    if (usage_is_set(_usage,USE_STATISTICS))
     158      {
     159        log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Generate Statistics file");
     160        delete _stat;
     161      }
    144162#endif
    145163
    146 #ifdef SYSTEMC
    147     log_printf(INFO,RegisterFile_Multi_Banked,"~RegisterFile_Multi_Banked","Deallocation");
     164    log_printf(INFO,RegisterFile_Multi_Banked,FUNCTION,"Deallocation");
     165    deallocation ();
    148166
    149     deallocation ();
    150 #endif
    151 
    152     log_printf(FUNC,RegisterFile_Multi_Banked,"~RegisterFile_Multi_Banked","End");
     167    log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"End");
    153168  };
    154169
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp

    r82 r88  
    1 #ifdef SYSTEMC
    21/*
    32 * $Id$
    43 *
    5  * [ Description ]
     4 * [ Description ]
    65 *
    76 */
     
    3130    _interfaces = entity->set_interfaces();
    3231
    33     // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     32    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    3433
    3534      Interface * interface = _interfaces->set_interface(""
     
    4443     in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_YES);
    4544
    46     // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     45    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    4746
    4847     in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param->_nb_port_read];
     
    6968      }
    7069
    71     // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     70    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    7271
    7372     in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param->_nb_port_write];
     
    9493      }
    9594
    96     // ~~~~~[ Registers ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     95    if (usage_is_set(_usage,USE_SYSTEMC))
     96      {
     97    // ~~~~~[ Registers ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    9798
    9899    reg_DATA = new Tdata_t * [_param->_nb_bank];
     
    103104      }
    104105
    105     // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     106    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    106107    internal_WRITE_VAL     = new bool       [_param->_nb_port_write];
    107108    internal_WRITE_BANK    = new Taddress_t [_param->_nb_port_write];
    108109    internal_WRITE_NUM_REG = new Taddress_t [_param->_nb_port_write];
     110      }
    109111
    110     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     112    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    111113
    112114#ifdef POSITION
    113     _component->generate_file();
     115    if (usage_is_set(_usage,USE_POSITION))
     116      _component->generate_file();
    114117#endif
    115118
     
    123126}; // end namespace behavioural
    124127}; // end namespace morpheo             
    125 #endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp

    r81 r88  
    1 #ifdef SYSTEMC
    21/*
    32 * $Id$
     
    2019    log_printf(FUNC,RegisterFile_Multi_Banked,"deallocation","Begin");
    2120
    22     delete in_CLOCK;
    23     delete in_NRESET;
    24 
    25     // ----- Interface Read
    26     delete []  in_READ_VAL    ;
    27     delete [] out_READ_ACK    ;
    28     if (_param->_have_port_address == true)
    29     delete []  in_READ_ADDRESS;
    30     delete [] out_READ_DATA   ;
    31 
    32     // ----- Interface Write
    33     delete []  in_WRITE_VAL    ;
    34     delete [] out_WRITE_ACK    ;
    35     if (_param->_have_port_address == true)
    36     delete []  in_WRITE_ADDRESS;
    37     delete []  in_WRITE_DATA   ;
    38 
    39     // ----- Register
    40     delete [] reg_DATA;
    41 
    42     // ----- Internal
    43     delete [] internal_WRITE_VAL;
    44     delete [] internal_WRITE_BANK;
    45     delete [] internal_WRITE_NUM_REG;
     21    if (usage_is_set(_usage,USE_SYSTEMC))
     22      {
     23        delete in_CLOCK;
     24        delete in_NRESET;
     25       
     26        // ----- Interface Read
     27        delete []  in_READ_VAL    ;
     28        delete [] out_READ_ACK    ;
     29        if (_param->_have_port_address == true)
     30        delete []  in_READ_ADDRESS;
     31        delete [] out_READ_DATA   ;
     32       
     33        // ----- Interface Write
     34        delete []  in_WRITE_VAL    ;
     35        delete [] out_WRITE_ACK    ;
     36        if (_param->_have_port_address == true)
     37        delete []  in_WRITE_ADDRESS;
     38        delete []  in_WRITE_DATA   ;
     39       
     40        // ----- Register
     41        delete [] reg_DATA;
     42       
     43        // ----- Internal
     44        delete [] internal_WRITE_VAL;
     45        delete [] internal_WRITE_BANK;
     46        delete [] internal_WRITE_NUM_REG;
     47      }       
    4648
    4749    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     
    5860}; // end namespace behavioural
    5961}; // end namespace morpheo             
    60 #endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_end_cycle.cpp

    r81 r88  
    2323
    2424#ifdef STATISTICS
    25     _stat->end_cycle();
     25    if (usage_is_set(_usage,USE_STATISTICS))
     26      _stat->end_cycle();
    2627#endif   
    2728
     
    2930    // Evaluation before read the ouput signal
    3031//  sc_start(0);
    31     _interfaces->testbench();
     32    if (usage_is_set(_usage,USE_VHDL_TESTBENCH))
     33      _interfaces->testbench();
    3234#endif
    3335
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/Makefile

    r81 r88  
    2424library_clean                   : RegisterFile_library_clean
    2525
     26local_clean                     :
     27
    2628include                         ../Makefile.deps
    2729include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/main.cpp

    r81 r88  
    5858      if (instance == instance_RegisterFile_Monolithic)
    5959        {
    60           morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters * param1 = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters (nb_port_read         ,
    61                                                                                                                                                                                                 nb_port_write        ,
    62                                                                                                                                                                                                 0                    ,
    63                                                                                                                                                                                                 nb_word              ,
    64                                                                                                                                                                                                 size_word            );
     60          morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters * param1 = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters
     61            (nb_port_read         ,
     62             nb_port_write        ,
     63             0                    ,
     64             nb_word              ,
     65             size_word           
     66             );
    6567         
    6668          param = new morpheo::behavioural::generic::registerfile::Parameters(param1);
     
    6870      else
    6971        {
    70           morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters * param2 = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters (nb_port_read         ,
    71                                                                                                                                                                                                 nb_port_write        ,
    72                                                                                                                                                                                                 nb_word              ,
    73                                                                                                                                                                                                 size_word            ,
    74                                                                                                                                                                                                 nb_bank              ,
    75                                                                                                                                                                                                 nb_port_read_by_bank ,
    76                                                                                                                                                                                                 nb_port_write_by_bank,
    77                                                                                                                                                                                                 crossbar             );
     72          morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters * param2 = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters
     73            (nb_port_read         ,
     74             nb_port_write        ,
     75             nb_word              ,
     76             size_word            ,
     77             nb_bank              ,
     78             nb_port_read_by_bank ,
     79             nb_port_write_by_bank,
     80             crossbar             
     81             );
    7882         
    7983          param = new morpheo::behavioural::generic::registerfile::Parameters(param2);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp

    r82 r88  
    2222#endif
    2323 
     24  Tusage_t _usage = USE_ALL;
     25
     26//   _usage = usage_unset(_usage,USE_SYSTEMC              );
     27//   _usage = usage_unset(_usage,USE_VHDL                 );
     28//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
     29//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
     30//   _usage = usage_unset(_usage,USE_POSITION             );
     31//   _usage = usage_unset(_usage,USE_STATISTICS           );
     32//   _usage = usage_unset(_usage,USE_INFORMATION          );
     33
    2434  RegisterFile * _RegisterFile = new RegisterFile (name.c_str(),
    2535#ifdef STATISTICS     
     
    2737#endif
    2838                                                   _param,
    29                                                    USE_ALL);
     39                                                   _usage);
    3040 
    3141#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/Parameters.h

    r81 r88  
    4040  public : Parameters  (morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::Parameters * param);
    4141  public : Parameters  (morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters * param);
    42   public : Parameters  (Parameters & param) ;
     42//   public : Parameters  (Parameters & param) ;
    4343  public : ~Parameters () ;
    4444
     45  public :        void             copy       (void);
     46
    4547  public :        Parameters_test  msg_error  (void);
     48
    4649  public :        std::string   print      (uint32_t depth);
    4750  public : friend std::ostream& operator<< (std::ostream& output_stream,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters.cpp

    r81 r88  
    2626
    2727    _param_registerfile_monolithic   = param;
    28    
     28    _param_registerfile_multi_banked = NULL;
     29
    2930    test();
    3031
     
    4344    log_printf(FUNC,RegisterFile,"Parameters","Begin");
    4445
     46    _param_registerfile_monolithic   = NULL;
    4547    _param_registerfile_multi_banked = param;
    4648
     
    5052  };
    5153 
    52   Parameters::Parameters (Parameters & param):
    53     _instance          (param._instance     ),
    54     _nb_port_read      (param._nb_port_read ),
    55     _nb_port_write     (param._nb_port_write),
    56     _nb_word           (param._nb_word      ),
    57     _size_word         (param._size_word    ),
    58     _size_address      (param._size_address ),
    59     _have_port_address (param._have_port_address)
    60   {
    61     log_printf(FUNC,RegisterFile,"Parameters (copy)","Begin");
     54//   Parameters::Parameters (Parameters & param):
     55//     _instance          (param._instance     ),
     56//     _nb_port_read      (param._nb_port_read ),
     57//     _nb_port_write     (param._nb_port_write),
     58//     _nb_word           (param._nb_word      ),
     59//     _size_word         (param._size_word    ),
     60//     _size_address      (param._size_address ),
     61//     _have_port_address (param._have_port_address)
     62//   {
     63//     log_printf(FUNC,RegisterFile,"Parameters (copy)","Begin");
    6264
    63     _param_registerfile_multi_banked = param._param_registerfile_multi_banked;
    64     _param_registerfile_monolithic   = param._param_registerfile_monolithic;
    65     test();
    66     log_printf(FUNC,RegisterFile,"Parameters (copy)","End");
    67   };
     65//     _param_registerfile_multi_banked = param._param_registerfile_multi_banked;
     66//     _param_registerfile_monolithic   = param._param_registerfile_monolithic;
     67//     test();
     68//     log_printf(FUNC,RegisterFile,"Parameters (copy)","End");
     69//   };
    6870
    6971  Parameters::~Parameters ()
     
    7375  };
    7476
     77  void Parameters::copy (void)
     78  {
     79    log_printf(FUNC,RegisterFile,"copy","Begin");
     80
     81    throw ERRORMORPHEO("RegisterFile::copy",_("Invalid copy"));
     82
     83//     if (_instance == instance_RegisterFile_Monolithic)
     84//       COPY(_param_registerfile_monolithic);
     85//     if (_instance == instance_RegisterFile_Multi_Banked)
     86//       COPY(_param_registerfile_multi_banked);
     87   
     88    log_printf(FUNC,RegisterFile,"copy","End");
     89  };
     90
    7591}; // end namespace registerfile
    7692}; // end namespace generic
Note: See TracChangeset for help on using the changeset viewer.