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/RegisterFile_Multi_Banked/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.