Changeset 137 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp
- Timestamp:
- Feb 16, 2010, 1:35:48 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp
r124 r137 8 8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h" 9 9 #include "Common/include/BitManipulation.h" 10 #include "Common/include/Log2.h" 10 11 11 12 namespace morpheo { … … 25 26 Tcrossbar_t crossbar , 26 27 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); 40 44 41 45 // Address : [....................] [size_address-1:0] 42 46 // Bank : [....] [size_address-1:size_address-1-log2(nb_bank)] 43 47 // 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 != "" ; 53 56 54 57 if (_crossbar == PARTIAL_CROSSBAR)
Note: See TracChangeset
for help on using the changeset viewer.