Changeset 78 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic
- Timestamp:
- Mar 27, 2008, 11:04:49 AM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp
r71 r78 7 7 */ 8 8 9 #define NB_ITERATION 1 9 #define NB_ITERATION 16 10 10 11 11 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/include/test.h" -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h
r75 r78 37 37 public : ~Parameters () ; 38 38 39 public : std::stringmsg_error (void);39 public : Parameters_test msg_error (void); 40 40 public : std::string print (uint32_t depth); 41 41 public : friend std::ostream& operator<< (std::ostream& output_stream, -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h
r75 r78 52 52 private : counter_t * _stat_nb_read; 53 53 private : counter_t * _stat_nb_write; 54 private : counter_t * _stat_average_read ;55 private : counter_t * _stat_average_write;56 private : counter_t * _stat_percent_use_read ;57 private : counter_t * _stat_percent_use_write;58 54 #endif 59 55 … … 88 84 89 85 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 private : SC_REGISTER (Tdata_t) ** reg_DATA;86 private : Tdata_t * reg_DATA; 91 87 92 88 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_msg_error.cpp
r75 r78 17 17 namespace registerfile_monolithic { 18 18 19 std::stringParameters::msg_error(void)19 Parameters_test Parameters::msg_error(void) 20 20 { 21 std::string msg = "";21 Parameters_test test("RegisterFile_Monolithic"); 22 22 23 23 if ((8*sizeof(Tdata_t)) < _size_word) 24 { 25 msg += " - type \"Tdata_t\" is too little to the size defined by size_word\n"; 26 msg += " * size_word : " + toString(_size_word) + "\n"; 27 msg += " * Tdata_t (bits): " + toString(8*(sizeof(Tdata_t))) + "\n"; 28 } 24 test.error("Type \"Tdata_t\" is too little to the size defined by size_word"); 29 25 30 26 if ((8*sizeof(Taddress_t)) < log2(_nb_word)) 31 { 32 msg += " - type \"Taddress_t\" is too little to the size defined by nb_word\n"; 33 msg += " * nb_word : " + toString(_nb_word) + "\n"; 34 msg += " > size (bits) : " + toString(log2(_nb_word)) + "\n"; 35 msg += " * Taddress_t (bits) : " + toString(8*(sizeof(Taddress_t))) + "\n"; 36 } 27 test.error("type \"Taddress_t\" is too little to the size defined by nb_word"); 37 28 38 29 if ((_nb_port_read + _nb_port_read_write) < 1) 39 { 40 msg += " - you need a read port\n"; 41 msg += " * nb_port_read : " + toString(_nb_port_read) + "\n"; 42 msg += " * nb_port_read_write : " + toString(_nb_port_read_write) + "\n"; 43 } 30 test.error("you need a read port"); 44 31 45 32 if ((_nb_port_write + _nb_port_read_write) < 1) 46 { 47 msg += " - you need a write port\n"; 48 msg += " * nb_port_write : " + toString(_nb_port_write) + "\n"; 49 msg += " * nb_port_read_write : " + toString(_nb_port_read_write) + "\n"; 50 } 51 // if (_nb_word < 2) 52 // { 53 // msg += " - nb_word must be >= 2\n"; 54 // msg += " * nb_word : " + toString(_nb_word) + "\n"; 55 // } 33 test.error("you need a write port"); 56 34 57 return msg;35 return test; 58 36 }; 59 37 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp
r75 r78 120 120 121 121 // ----- Register 122 reg_DATA = new SC_REGISTER (Tdata_t) *[_param->_nb_word];122 reg_DATA = new Tdata_t [_param->_nb_word]; 123 123 124 for (uint32_t i=0; i<_param->_nb_word; i++)125 {126 std::string rename = "reg_DATA[" + toString(i) + "]";127 reg_DATA [i] = new SC_REGISTER (Tdata_t) (rename.c_str());128 }129 130 124 #ifdef POSITION 131 125 _component->generate_file(); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_genMealy_read.cpp
r71 r78 29 29 else 30 30 address = 0; 31 Tdata_t data = REGISTER_READ(reg_DATA[address]);31 Tdata_t data = reg_DATA[address]; 32 32 33 33 log_printf(TRACE,RegisterFile,"genMealy_read","[%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data)); 34 34 35 #ifdef STATISTICS36 (*_stat_nb_read) ++;37 #endif38 35 // Write in registerFile 39 36 PORT_WRITE(out_READ_DATA[i],data); … … 61 58 address = 0; 62 59 63 data = REGISTER_READ(reg_DATA[address]);60 data = reg_DATA[address]; 64 61 65 62 log_printf(TRACE,RegisterFile,"genMealy_read","[%d] -> %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data)); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics_declaration.cpp
r75 r78 23 23 _stat_nb_read = _stat->create_variable("nb_read" ); 24 24 _stat_nb_write = _stat->create_variable("nb_write"); 25 26 _stat_average_read = _stat->create_counter("average_read" , "", "Average read by cycle");27 _stat_average_write = _stat->create_counter("average_write", "", "Average write by cycle");28 25 29 _stat _percent_use_read = _stat->create_counter("percent_use_read" , "%", "Read port usage");30 _stat _percent_use_write = _stat->create_counter("percent_use_write", "%", "Write port usage");26 _stat->create_expr_average_by_cycle("average_read" , "nb_read" , "", "Average read by cycle" ); 27 _stat->create_expr_average_by_cycle("average_write", "nb_write", "", "Average write by cycle"); 31 28 32 _stat->create_expr("average_read" , "/ nb_read cycle", false); 33 _stat->create_expr("average_write", "/ nb_write cycle", false); 34 35 _stat->create_expr("percent_use_read" , "/ * average_read 100 " + toString(_param->_nb_port_read +_param->_nb_port_read_write), false); 36 _stat->create_expr("percent_use_write", "/ * average_write 100 " + toString(_param->_nb_port_write+_param->_nb_port_read_write), false); 29 _stat->create_expr_percent ("percent_use_read" , "average_read" , toString(_param->_nb_port_read +_param->_nb_port_read_write), "Percent read by cycle" ); 30 _stat->create_expr_percent ("percent_use_write", "average_write", toString(_param->_nb_port_write+_param->_nb_port_read_write), "Percent write by cycle"); 37 31 38 32 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp
r75 r78 38 38 39 39 // Write in registerFile 40 REGISTER_WRITE(reg_DATA[address],data);40 reg_DATA[address] = data; 41 41 } 42 42 } … … 62 62 63 63 // Write in registerFile 64 REGISTER_WRITE(reg_DATA[address],data);64 reg_DATA[address] = data; 65 65 } 66 66 #ifdef STATISTICS
Note: See TracChangeset
for help on using the changeset viewer.