Ignore:
Timestamp:
Feb 16, 2010, 1:35:48 PM (14 years ago)
Author:
rosiere
Message:

Various modif (add test, and vhdl)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp

    r124 r137  
    88#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h"
    99#include "Common/include/BitManipulation.h"
     10#include "Common/include/Log2.h"
    1011
    1112namespace morpheo {
     
    2526                          Tcrossbar_t crossbar             ,
    2627                          std::string init_value
    27                           ):
    28     _nb_port_read          (nb_port_read         ),
    29     _nb_port_write         (nb_port_write        ),
    30     _nb_word               (nb_word              ),
    31     _size_word             (size_word            ),
    32     _nb_bank               (nb_bank              ),
    33     _nb_port_read_by_bank  (nb_port_read_by_bank ),
    34     _nb_port_write_by_bank (nb_port_write_by_bank),
    35     _crossbar              (crossbar             ),
    36     _have_init_value       (init_value != ""     ),
    37     _init_value            (init_value           ),
    38     _size_address          (static_cast<uint32_t>(ceil(log2(_nb_word)))),
    39     _size_address_by_bank  (_size_address - static_cast<uint32_t>(ceil(log2(_nb_bank)))),
     28                          )
     29  {
     30    log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters","Begin");
     31
     32    _nb_port_read           = nb_port_read         ;
     33    _nb_port_write          = nb_port_write        ;
     34    _nb_word                = nb_word              ;
     35    _size_word              = size_word            ;
     36    _nb_bank                = nb_bank              ;
     37    _nb_port_read_by_bank   = nb_port_read_by_bank ;
     38    _nb_port_write_by_bank  = nb_port_write_by_bank;
     39    _crossbar               = crossbar             ;
     40    _init_value             = init_value           ;
     41
     42    _size_address           = log2(_nb_word);
     43    _size_address_by_bank   = _size_address - log2(_nb_bank);
    4044
    4145    // Address : [....................]  [size_address-1:0]
    4246    // Bank    : [....]                  [size_address-1:size_address-1-log2(nb_bank)]
    4347    // num_reg :      ]...............]  [size_address-2-log2(nb_bank):0]
    44     _bank_shift            (_size_address_by_bank),
    45     _bank_mask             (gen_mask<Taddress_t>(static_cast<Taddress_t>(ceil(log2(_nb_bank))))),
    46     _num_reg_shift         (0),
    47     _num_reg_mask          (gen_mask<Taddress_t>(_size_address_by_bank)),
    48     _nb_word_by_bank       (_nb_word / _nb_bank),
    49     _have_port_address     (_size_address         != 0),
    50     _have_bank_port_address(_size_address_by_bank != 0)
    51   {
    52     log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters","Begin");
     48    _bank_shift             = _size_address_by_bank;
     49    _bank_mask              = gen_mask<Taddress_t>(log2(_nb_bank));
     50    _num_reg_shift          = 0;
     51    _num_reg_mask           = gen_mask<Taddress_t>(_size_address_by_bank);
     52    _nb_word_by_bank        = _nb_word / _nb_bank;
     53    _have_port_address      = _size_address         != 0;
     54    _have_bank_port_address = _size_address_by_bank != 0;
     55    _have_init_value        = init_value != ""     ;
    5356
    5457    if (_crossbar == PARTIAL_CROSSBAR)
Note: See TracChangeset for help on using the changeset viewer.