Changeset 15 for trunk/IPs/systemC/processor
- Timestamp:
- Apr 5, 2007, 4:17:30 PM (18 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo
- Files:
-
- 7 added
- 4 deleted
- 211 edited
- 13 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Constant/Constant_OpenRISC.h
r2 r15 13 13 namespace behavioural { 14 14 namespace constant { 15 #define _size_instruction 32 16 #define _size_instruction_log2 5 15 17 16 18 //------------------------------------------------------[ Control ]----- 17 typedef bool Tcontrol_t;19 typedef bool Tcontrol_t; 18 20 21 //----------------------------------------------------[ Operation ]----- 22 typedef uint8_t Toperation_t; 23 #define _nb_operation 32 24 #define _size_operation 5 25 26 #define _operation_none 0x0 27 #define _operation_l_adds 0x1 28 #define _operation_l_addu 0x2 29 #define _operation_l_subs 0x3 30 #define _operation_l_and 0x4 31 #define _operation_l_or 0x5 32 #define _operation_l_xor 0x6 33 #define _operation_l_cmove 0x7 34 #define _operation_l_read_imm 0x8 35 #define _operation_l_movhi 0x9 36 #define _operation_l_muls 0xa 37 #define _operation_l_mulu 0xb 38 #define _operation_l_divs 0xc 39 #define _operation_l_divu 0xd 40 #define _operation_l_exts 0xe 41 #define _operation_l_extz 0xf 42 #define _operation_l_ff1 0x10 43 #define _operation_l_fl1 0x11 44 #define _operation_l_sll 0x12 45 #define _operation_l_sla 0x13 46 #define _operation_l_srl 0x14 47 #define _operation_l_ror 0x15 48 #define _operation_l_cmp_eq 0x16 49 #define _operation_l_cmp_ne 0x17 50 #define _operation_l_cmp_ges 0x18 51 #define _operation_l_cmp_geu 0x19 52 #define _operation_l_cmp_gts 0x1a 53 #define _operation_l_cmp_gtu 0x1b 54 #define _operation_l_cmp_les 0x1c 55 #define _operation_l_cmp_leu 0x1d 56 #define _operation_l_cmp_lts 0x1e 57 #define _operation_l_cmp_ltu 0x1f 58 59 //--------------------------------------------------[ destination ]----- 60 typedef uint8_t Tdestination1_t; 61 #define _size_destination1 4 62 63 #define cst_DESTINATION1_NONE 0x0 64 #define mask_DESTINATION1_GPR 0x1 65 #define mask_DESTINATION1_MEMORY 0x2 66 #define mask_DESTINATION1_SPR 0x4 67 #define mask_DESTINATION1_MAC_UNIT 0x8 68 69 typedef uint8_t Tdestination2_t; 70 #define _size_destination2 3 71 72 #define cst_DESTINATION2_NONE 0x0 73 #define mask_DESTINATION2_COMMIT 0x1 74 #define mask_DESTINATION2_MEMORY 0x2 75 #define mask_DESTINATION2_SPR 0x4 76 77 //----------------------------------------------------[ exec_flag ]----- 78 typedef uint8_t Texec_flag_t; 79 #define _size_exec_flag 2 80 81 #define mask_EXEC_FLAG_NONE 0x1 82 #define mask_EXEC_FLAG_CARRY 0x1 83 #define mask_EXEC_FLAG_FLAG 0x1 84 #define mask_EXEC_FLAG_OVERFLOW 0x2 85 86 //---------------------------------------------------[ exec_excep ]----- 87 typedef bool Texec_excep_t; 88 #define _size_exec_excep 1 89 90 #define mask_EXEC_EXCEP_NONE 0x0 91 #define mask_EXEC_EXCEP_RANGE 0x1 92 19 93 //----------------------------------------------------[ Condition ]----- 20 typedef uint8_t Tcondition_t; 94 typedef uint8_t Tcondition_t; 95 #define _size_condition 3 21 96 22 const Tcondition_t cst_CONDITION_NONE = 0x0; // None condition (jump) 23 const Tcondition_t cst_CONDITION_F = 0x2; // Branch if Flag is set 24 const Tcondition_t cst_CONDITION_NF = 0x3; // Branch if Flag is clear 25 const Tcondition_t cst_CONDITION_REG = 0x4; // Branch if a register is read 26 const Tcondition_t cst_CONDITION_STACK = 0x8; // Branch with pop in stack pointer 97 #define cst_CONDITION_UNCONDITIONAL 0x0 // None condition (jump) 98 #define mask_CONDITION_CONDITIONAL 0x2 99 #define mask_CONDITION_CONDITIONAL_NF 0x0 // Branch if Flag is clear 100 #define mask_CONDITION_CONDITIONAL_F 0x1 // Branch if Flag is set 101 #define mask_CONDITION_REG 0x4 // Branch if a register is read 102 #define mask_CONDITION_STACK 0x8 // Branch with pop in stack pointer 27 103 28 104 //-------------------------------------------------[ branch_state ]----- 29 typedef uint8_t Tbranch_state_t;105 typedef uint8_t Tbranch_state_t; 30 106 31 const Tbranch_state_t cst_BRANCH_STATE_NONE = 0x0; // 0 0 32 const Tbranch_state_t cst_BRANCH_STATE_NSPEC_TAKE = 0x1; // 0 1 -> incondionnal 33 const Tbranch_state_t cst_BRANCH_STATE_SPEC_NTAKE = 0x2; // 1 0 34 const Tbranch_state_t cst_BRANCH_STATE_SPEC_TAKE = 0x3; // 1 1 35 107 #define cst_BRANCH_STATE_NONE 0x0 // 0 0 108 #define cst_BRANCH_STATE_NSPEC_TAKE 0x1 // 0 1 -> incondionnal 109 #define cst_BRANCH_STATE_SPEC_NTAKE 0x2 // 1 0 110 #define cst_BRANCH_STATE_SPEC_TAKE 0x3 // 1 1 36 111 37 112 }; // end namespace constant -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile
r2 r15 8 8 9 9 #-----[ Directory ]---------------------------------------- 10 DIR_MORPHEO = ../../.. 10 DIR_MORPHEO = ../../../.. 11 11 12 12 #-----[ Library ]------------------------------------------ 13 LIBRARY = $(DIR_LIB)/libRegisterFile .a13 LIBRARY = $(DIR_LIB)/libRegisterFile_Monolithic.a 14 14 15 15 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.deps
r2 r15 15 15 endif 16 16 17 RegisterFile = yes17 RegisterFile_Monolithic = yes 18 18 #-----[ Library ]------------------------------------------ 19 RegisterFile_ LIBRARY = -lRegisterFile\19 RegisterFile_Monolithic_LIBRARY = -lRegisterFile_Monolithic \ 20 20 $(Group_LIBRARY) \ 21 21 $(Behavioural_LIBRARY) 22 22 23 RegisterFile_ DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/lib \23 RegisterFile_Monolithic_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/lib \ 24 24 $(Group_DIR_LIBRARY) \ 25 25 $(Behavioural_DIR_LIBRARY) … … 27 27 #-----[ Rules ]-------------------------------------------- 28 28 29 RegisterFile_ library :29 RegisterFile_Monolithic_library : 30 30 @$(MAKE) Behavioural_library 31 31 @$(MAKE) Group_library 32 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile --makefile=Makefile32 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic --makefile=Makefile 33 33 34 RegisterFile_ library_clean :34 RegisterFile_Monolithic_library_clean : 35 35 @$(MAKE) Behavioural_library_clean 36 36 @$(MAKE) Group_library_clean 37 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile --makefile=Makefile clean37 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic --makefile=Makefile clean -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/Makefile
r2 r15 8 8 9 9 #-----[ Directory ]---------------------------------------- 10 DIR_MORPHEO = ../../../.. 10 DIR_MORPHEO = ../../../../.. 11 11 12 LIBRARY = $(RegisterFile_ LIBRARY)12 LIBRARY = $(RegisterFile_Monolithic_LIBRARY) 13 13 14 DIR_LIBRARY = $(RegisterFile_ DIR_LIBRARY)14 DIR_LIBRARY = $(RegisterFile_Monolithic_DIR_LIBRARY) 15 15 16 16 #-----[ include ]------------------------------------------ … … 19 19 @$(MAKE) all_selftest 20 20 21 library : RegisterFile_ library21 library : RegisterFile_Monolithic_library 22 22 23 library_clean : RegisterFile_ library_clean23 library_clean : RegisterFile_Monolithic_library_clean 24 24 25 25 include ../Makefile.deps -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/configuration.cfg
r6 r15 1 RegisterFile 1 RegisterFile_Monolithic 2 2 1 8 *2 # nb_port_read 3 3 1 4 *2 # nb_port_write -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/include/test.h
r2 r15 4 4 * [ Description ] 5 5 * 6 * Test "RegisterFile"7 6 */ 8 7 … … 14 13 #include <iostream> 15 14 16 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"15 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 17 16 18 17 using namespace std; … … 21 20 using namespace morpheo::behavioural::generic; 22 21 using namespace morpheo::behavioural::generic::registerfile; 22 using namespace morpheo::behavioural::generic::registerfile::registerfile_monolithic; 23 23 24 24 void test (string name, 25 morpheo::behavioural::generic::registerfile:: Parameters param);25 morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters param); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/main.cpp
r6 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile/ SelfTest/include/test.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/include/test.h" 9 9 10 10 #define NB_PARAMS 4 … … 36 36 const uint32_t size_word = atoi(argv[5]); 37 37 38 morpheo::behavioural::generic::registerfile:: Parameters param (nb_port_read ,39 nb_port_write,38 morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters param (nb_port_read , 39 nb_port_write, 40 40 nb_word , 41 41 size_word ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp
r6 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ SelfTest/include/test.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/include/test.h" 10 10 #include "Include/Test.h" 11 11 12 12 void test (string name, 13 morpheo::behavioural::generic::registerfile:: Parameters param)13 morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters param) 14 14 { 15 15 cout << "<" << name << "> : Simulation SystemC" << endl; … … 31 31 } 32 32 33 RegisterFile * registerfile = new RegisterFile(name.c_str(),33 RegisterFile_Monolithic * registerfile = new RegisterFile_Monolithic (name.c_str(), 34 34 #ifdef STATISTICS 35 35 morpheo::behavioural::Parameters_Statistics(5,50), 36 36 #endif 37 37 param); 38 38 39 39 #ifdef SYSTEMC … … 58 58 ********************************************************/ 59 59 60 cout << "<" << name << "> Instanciation of register File" << endl;60 cout << "<" << name << "> Instanciation of registerfile" << endl; 61 61 62 62 (*(registerfile->in_CLOCK)) (CLOCK); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h
r2 r15 1 #ifndef morpheo_behavioural_generic_registerfile_ Parameters_h2 #define morpheo_behavioural_generic_registerfile_ Parameters_h1 #ifndef morpheo_behavioural_generic_registerfile_registerfile_monolithic_Parameters_h 2 #define morpheo_behavioural_generic_registerfile_registerfile_monolithic_Parameters_h 3 3 4 4 /* … … 17 17 namespace generic { 18 18 namespace registerfile { 19 namespace registerfile_monolithic { 19 20 20 21 class Parameters : public morpheo::behavioural::Parameters … … 36 37 public : string print (uint32_t depth); 37 38 public : friend ostream& operator<< (ostream& output_stream, 38 morpheo::behavioural::generic::registerfile:: Parameters & x);39 morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters & x); 39 40 }; 40 41 42 }; // end namespace registerfile_monolithic 41 43 }; // end namespace registerfile 42 44 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h
r9 r15 1 #ifndef morpheo_behavioural_generic_registerfile_ RegisterFile2 #define morpheo_behavioural_generic_registerfile_ RegisterFile1 #ifndef morpheo_behavioural_generic_registerfile_registerfile_monolithic_RegisterFile_Monolithic 2 #define morpheo_behavioural_generic_registerfile_registerfile_monolithic_RegisterFile_Monolithic 3 3 4 4 /* … … 18 18 using namespace std; 19 19 20 #include "Behavioural/Generic/RegisterFile/ include/Parameters.h"21 #include "Behavioural/Generic/RegisterFile/ include/Types.h"20 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h" 21 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h" 22 22 #ifdef STATISTICS 23 #include "Behavioural/Generic/RegisterFile/ include/Statistics.h"23 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h" 24 24 #endif 25 25 #ifdef VHDL … … 36 36 namespace generic { 37 37 namespace registerfile { 38 namespace registerfile_monolithic { 38 39 39 class RegisterFile 40 class RegisterFile_Monolithic 40 41 #if SYSTEMC 41 42 : public sc_module … … 85 86 86 87 #ifdef SYSTEMC 87 SC_HAS_PROCESS (RegisterFile );88 SC_HAS_PROCESS (RegisterFile_Monolithic); 88 89 #endif 89 90 90 public : RegisterFile 91 public : RegisterFile_Monolithic ( 91 92 #ifdef SYSTEMC 92 93 sc_module_name name, … … 99 100 Parameters param ); 100 101 101 public : RegisterFile 102 public : ~RegisterFile 102 public : RegisterFile_Monolithic (Parameters param ); 103 public : ~RegisterFile_Monolithic (void); 103 104 104 105 #ifdef SYSTEMC … … 130 131 }; 131 132 133 }; // end namespace registerfile_monolithic 132 134 }; // end namespace registerfile 133 135 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h
r2 r15 1 1 #ifdef STATISTICS 2 #ifndef morpheo_behavioural_generic_registerfile_ Statistics_h3 #define morpheo_behavioural_generic_registerfile_ Statistics_h2 #ifndef morpheo_behavioural_generic_registerfile_registerfile_monolithic_Statistics_h 3 #define morpheo_behavioural_generic_registerfile_registerfile_monolithic_Statistics_h 4 4 5 5 /* … … 14 14 #include "Behavioural/include/Parameters_Statistics.h" 15 15 #include "Behavioural/Generic/Group/include/Statistics.h" 16 #include "Behavioural/Generic/RegisterFile/ include/Parameters.h"16 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h" 17 17 18 18 using namespace morpheo::behavioural::generic::group; … … 22 22 namespace generic { 23 23 namespace registerfile { 24 namespace registerfile_monolithic { 24 25 25 26 class Statistics : public morpheo::behavioural::Statistics … … 48 49 }; 49 50 51 }; // end namespace registerfile_monolithic 50 52 }; // end namespace registerfile 51 53 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h
r6 r15 1 #ifndef morpheo_behavioural_generic_registerfile_ Type_h2 #define morpheo_behavioural_generic_registerfile_ Type_h1 #ifndef morpheo_behavioural_generic_registerfile_registerfile_monolithic_Type_h 2 #define morpheo_behavioural_generic_registerfile_registerfile_monolithic_Type_h 3 3 4 4 /* … … 15 15 namespace generic { 16 16 namespace registerfile { 17 namespace registerfile_monolithic { 17 18 18 19 typedef uint32_t Taddress_t; 19 20 typedef uint32_t Tdata_t; 20 21 22 }; // end namespace registerfile_monolithic 21 23 }; // end namespace registerfile 22 24 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters.cpp
r2 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile/ include/Parameters.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h" 9 9 10 10 namespace morpheo { … … 12 12 namespace generic { 13 13 namespace registerfile { 14 namespace registerfile_monolithic { 14 15 15 16 Parameters::Parameters (uint32_t nb_port_read , … … 38 39 { }; 39 40 41 }; // end namespace registerfile_monolithic 40 42 }; // end namespace registerfile 41 43 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_msg_error.cpp
r6 r15 7 7 8 8 #include <stdint.h> 9 #include "Behavioural/Generic/RegisterFile/ include/Parameters.h"10 #include "Behavioural/Generic/RegisterFile/ include/Types.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h" 10 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Types.h" 11 11 #include <sstream> 12 12 using namespace std; … … 16 16 namespace generic { 17 17 namespace registerfile { 18 namespace registerfile_monolithic { 18 19 19 20 string Parameters::msg_error(void) … … 45 46 }; 46 47 48 }; // end namespace registerfile_monolithic 47 49 }; // end namespace registerfile 48 50 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters_print.cpp
r2 r15 7 7 8 8 #include <stdint.h> 9 #include "Behavioural/Generic/RegisterFile/ include/Parameters.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h" 10 10 #include <sstream> 11 11 using namespace std; … … 15 15 namespace generic { 16 16 namespace registerfile { 17 namespace registerfile_monolithic { 17 18 18 19 string Parameters::print (uint32_t depth) … … 20 21 string tab = string(depth,'\t'); 21 22 ostringstream msg; 22 msg << tab << "<registerfile >" << endl23 msg << tab << "<registerfile_monolithic>" << endl 23 24 << tab << "\t<nb_port_read value=\"" << _nb_port_read << "\" />" << endl 24 25 << tab << "\t<nb_port_write value=\"" << _nb_port_write << "\" />" << endl 25 26 << tab << "\t<nb_word value=\"" << _nb_word << "\" />" << endl 26 27 << tab << "\t<size_word value=\"" << _size_word << "\" />" << endl 27 << tab << "</registerfile >" << endl;28 << tab << "</registerfile_monolithic>" << endl; 28 29 29 30 return msg.str(); … … 31 32 32 33 ostream& operator<< (ostream& output_stream , 33 morpheo::behavioural::generic::registerfile:: Parameters & x)34 morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters & x) 34 35 { 35 36 output_stream << x.print(0); … … 38 39 }; 39 40 41 }; // end namespace registerfile_monolithic 40 42 }; // end namespace registerfile 41 43 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp
r11 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 9 9 10 10 namespace morpheo { … … 12 12 namespace generic { 13 13 namespace registerfile { 14 namespace registerfile_monolithic { 14 15 16 RegisterFile_Monolithic::RegisterFile_Monolithic ( 15 17 #ifdef SYSTEMC 16 RegisterFile::RegisterFile (sc_module_name name,18 sc_module_name name, 17 19 #else 18 RegisterFile::RegisterFile (string name ,20 string name , 19 21 #endif 20 22 #ifdef STATISTICS 21 23 morpheo::behavioural::Parameters_Statistics param_statistics, 22 24 #endif 23 morpheo::behavioural::generic::registerfile::Parameters param ):24 _name (name) 25 ,_param (param)25 morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters param ): 26 _name (name), 27 _param (param) 26 28 { 27 29 #ifdef STATISTICS … … 72 74 }; 73 75 74 RegisterFile ::~RegisterFile(void)76 RegisterFile_Monolithic::~RegisterFile_Monolithic (void) 75 77 { 76 78 #ifdef SYSTEMC … … 90 92 }; 91 93 94 }; // end namespace registerfile_monolithic 92 95 }; // end namespace registerfile 93 96 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_allocation.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 void RegisterFile ::allocation (void)17 void RegisterFile_Monolithic::allocation (void) 17 18 { 18 19 in_CLOCK = new SC_CLOCK ("in_CLOCK"); … … 75 76 }; 76 77 78 }; // end namespace registerfile_monolithic 77 79 }; // end namespace registerfile 78 80 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_deallocation.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 void RegisterFile ::deallocation (void)17 void RegisterFile_Monolithic::deallocation (void) 17 18 { 18 19 delete in_CLOCK; … … 55 56 }; 56 57 58 }; // end namespace registerfile_monolithic 57 59 }; // end namespace registerfile 58 60 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_genMealy_read.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 void RegisterFile ::genMealy_read (void)17 void RegisterFile_Monolithic::genMealy_read (void) 17 18 { 18 19 log_printf(FUNC,Register_File,"genMealy_read","Begin"); … … 48 49 }; 49 50 51 }; // end namespace registerfile_monolithic 50 52 }; // end namespace registerfile 51 53 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_statistics.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 string RegisterFile ::statistics (uint32_t depth)17 string RegisterFile_Monolithic::statistics (uint32_t depth) 17 18 { 18 19 return _stat->print(depth); 19 20 }; 20 21 22 }; // end namespace registerfile_monolithic 21 23 }; // end namespace registerfile 22 24 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 16 void RegisterFile ::transition (void)15 namespace registerfile_monolithic { 16 void RegisterFile_Monolithic::transition (void) 17 17 { 18 18 log_printf(FUNC,Register_File,"transition","Begin"); … … 50 50 }; 51 51 52 }; // end namespace registerfile_monolithic 52 53 }; // end namespace registerfile 53 54 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 #include "Behavioural/include/Vhdl.h" 11 11 #include "Include/ToString.h" … … 14 14 namespace generic { 15 15 namespace registerfile { 16 namespace registerfile_monolithic { 16 17 17 void RegisterFile ::vhdl (void)18 void RegisterFile_Monolithic::vhdl (void) 18 19 { 19 20 Vhdl vhdl (_name); … … 29 30 }; 30 31 32 }; // end namespace registerfile_monolithic 31 33 }; // end namespace registerfile 32 34 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_body.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 void RegisterFile ::vhdl_body (Vhdl & vhdl)17 void RegisterFile_Monolithic::vhdl_body (Vhdl & vhdl) 17 18 { 18 19 vhdl.set_body (""); … … 51 52 }; 52 53 54 }; // end namespace registerfile_monolithic 53 55 }; // end namespace registerfile 54 56 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_port.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 void RegisterFile ::vhdl_port (Vhdl & vhdl)17 void RegisterFile_Monolithic::vhdl_port (Vhdl & vhdl) 17 18 { 18 19 vhdl.set_port ("in_CLOCK" , IN, 1); … … 36 37 }; 37 38 39 }; // end namespace registerfile_monolithic 38 40 }; // end namespace registerfile 39 41 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_signal.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 void RegisterFile ::vhdl_signal (Vhdl & vhdl)17 void RegisterFile_Monolithic::vhdl_signal (Vhdl & vhdl) 17 18 { 18 19 vhdl.set_signal ("reg_DATA", "Tregfile"); 19 20 }; 20 21 22 }; // end namespace registerfile_monolithic 21 23 }; // end namespace registerfile 22 24 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_testbench_port.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 void RegisterFile ::vhdl_testbench_port (Vhdl_Testbench & vhdl_testbench)17 void RegisterFile_Monolithic::vhdl_testbench_port (Vhdl_Testbench & vhdl_testbench) 17 18 { 18 19 vhdl_testbench.set_port (" in_NRESET",IN ,1); … … 35 36 }; 36 37 38 }; // end namespace registerfile_monolithic 37 39 }; // end namespace registerfile 38 40 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_testbench_transition.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 void RegisterFile ::vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench)17 void RegisterFile_Monolithic::vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench) 17 18 { 18 19 #ifndef SYSTEMCASS_SPECIFIC … … 41 42 }; 42 43 44 }; // end namespace registerfile_monolithic 43 45 }; // end namespace registerfile 44 46 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_vhdl_type.cpp
r11 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 void RegisterFile ::vhdl_type (Vhdl & vhdl)17 void RegisterFile_Monolithic::vhdl_type (Vhdl & vhdl) 17 18 { 18 19 vhdl.set_type ("Tregfile", "array (" + toString(_param._nb_word-1) + " downto 0) of " + std_logic(_param._size_word)); 19 20 }; 20 21 22 }; // end namespace registerfile_monolithic 21 23 }; // end namespace registerfile 22 24 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics.cpp
r2 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace registerfile { 15 namespace registerfile_monolithic { 15 16 16 17 Statistics::Statistics (string name , … … 43 44 }; 44 45 46 }; // end namespace registerfile_monolithic 45 47 }; // end namespace registerfile 46 48 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_add.cpp
r2 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h" 10 10 11 11 #include <sstream> … … 16 16 namespace generic { 17 17 namespace registerfile { 18 namespace registerfile_monolithic { 18 19 19 20 void Statistics::add (uint32_t nb_read, … … 24 25 }; 25 26 27 }; // end namespace registerfile_monolithic 26 28 }; // end namespace registerfile 27 29 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_print.cpp
r2 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h" 10 10 11 11 #include <sstream> … … 16 16 namespace generic { 17 17 namespace registerfile { 18 namespace registerfile_monolithic { 18 19 19 20 string Statistics::print (uint32_t depth) … … 22 23 ostringstream msg; 23 24 24 msg << tab << "<registerfile name=\"" << _name << "\" >" << endl25 msg << tab << "<registerfile_monolithic name=\"" << _name << "\" >" << endl 25 26 << print_body(depth+1) 26 << tab << "</ registerfile>" << endl;27 << tab << "</RegisterFile_Monolithic>" << endl; 27 28 28 29 return msg.str(); … … 30 31 31 32 ostream& operator<< (ostream& output_stream , 32 morpheo::behavioural::generic::registerfile:: Statistics & x)33 morpheo::behavioural::generic::registerfile::registerfile_monolithic::Statistics & x) 33 34 { 34 35 output_stream << x.print(0); … … 37 38 }; 38 39 40 }; // end namespace registerfile_monolithic 39 41 }; // end namespace registerfile 40 42 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Statistics_print_body.cpp
r2 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile/ include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h" 10 10 11 11 #include <sstream> … … 16 16 namespace generic { 17 17 namespace registerfile { 18 namespace registerfile_monolithic { 18 19 19 20 string Statistics::print_body (uint32_t depth) … … 27 28 return msg.str(); 28 29 }; 30 31 }; // end namespace registerfile_monolithic 29 32 }; // end namespace registerfile 30 33 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile
r10 r15 8 8 9 9 #-----[ Directory ]---------------------------------------- 10 DIR_MORPHEO = ../../.. 10 DIR_MORPHEO = ../../../.. 11 11 12 12 #-----[ Library ]------------------------------------------ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/Makefile.deps
r10 r15 18 18 $(Behavioural_LIBRARY) 19 19 20 RegisterFile_Multi_Banked_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile _Multi_Banked/lib \20 RegisterFile_Multi_Banked_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/lib \ 21 21 $(Behavioural_DIR_LIBRARY) 22 22 … … 25 25 RegisterFile_Multi_Banked_library : 26 26 @$(MAKE) Behavioural_library 27 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile _Multi_Banked --makefile=Makefile27 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked --makefile=Makefile 28 28 29 29 RegisterFile_Multi_Banked_library_clean : 30 30 @$(MAKE) Behavioural_library_clean 31 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile _Multi_Banked --makefile=Makefile clean31 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked --makefile=Makefile clean -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/Makefile
r10 r15 8 8 9 9 #-----[ Directory ]---------------------------------------- 10 DIR_MORPHEO = ../../../.. 10 DIR_MORPHEO = ../../../../.. 11 11 12 12 #-----[ Library ]------------------------------------------ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/Makefile.deps
r10 r15 18 18 $(Behavioural_LIBRARY) 19 19 20 RegisterFile_Multi_Banked_Glue_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/lib \20 RegisterFile_Multi_Banked_Glue_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/lib \ 21 21 $(Behavioural_DIR_LIBRARY) 22 22 … … 25 25 RegisterFile_Multi_Banked_Glue_library : 26 26 @$(MAKE) Behavioural_library 27 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue --makefile=Makefile27 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue --makefile=Makefile 28 28 29 29 RegisterFile_Multi_Banked_Glue_library_clean : 30 30 @$(MAKE) Behavioural_library_clean 31 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue --makefile=Makefile clean31 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue --makefile=Makefile clean -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/Makefile
r10 r15 8 8 9 9 #-----[ Directory ]---------------------------------------- 10 DIR_MORPHEO = ../../../../.. 10 DIR_MORPHEO = ../../../../../.. 11 11 12 12 LIBRARY = $(RegisterFile_Multi_Banked_Glue_LIBRARY) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/configuration.cfg
r10 r15 1 1 RegisterFile_Multi_Banked_Glue 2 2 8*2 # nb_port_read3 24 *2 # nb_port_write4 68 +1 # size_address2 4 4 *2 # nb_port_read 3 4 4 *2 # nb_port_write 4 8 8 +1 # size_address 5 5 32 32 *2 # size_word 6 6 2 2 *2 # nb_bank 7 2 2 *2 # nb_port_read_by_bank 8 2 2 *2 # nb_port_write_by_bank 9 0 1 +1 # crossbar -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h
r10 r15 14 14 #include <iostream> 15 15 16 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"16 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 17 17 18 18 using namespace std; … … 20 20 using namespace morpheo::behavioural; 21 21 using namespace morpheo::behavioural::generic; 22 using namespace morpheo::behavioural::generic::registerfile_multi_banked; 22 using namespace morpheo::behavioural::generic::registerfile; 23 using namespace morpheo::behavioural::generic::registerfile::registerfile_multi_banked; 23 24 24 using namespace morpheo::behavioural::generic::registerfile _multi_banked::registerfile_multi_banked_glue;25 using namespace morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue; 25 26 26 27 void test (string name, 27 morpheo::behavioural::generic::registerfile _multi_banked::registerfile_multi_banked_glue::Parameters param);28 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/src/main.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h" 9 9 10 10 #define NB_PARAMS 5 … … 14 14 cerr << "<Usage> " << argv[0] << " name_instance list_params" << endl 15 15 << "list_params is :" << endl 16 << " - nb_port_read (unsigned int)" << endl 17 << " - nb_port_write (unsigned int)" << endl 18 << " - size_address (unsigned int)" << endl 19 << " - size_word (unsigned int)" << endl 20 << " - nb_bank (unsigned int)" << endl 16 << " - nb_port_read (uint32_t )" << endl 17 << " - nb_port_write (uint32_t )" << endl 18 << " - size_address (uint32_t )" << endl 19 << " - size_word (uint32_t )" << endl 20 << " - nb_bank (uint32_t )" << endl 21 << " - nb_port_read_by_bank (uint32_t )" << endl 22 << " - nb_port_write_by_bank (uint32_t )" << endl 23 << " - crossbar (Tcrossbar_t)" << endl 21 24 << "" << endl; 22 25 … … 37 40 usage (argc, argv); 38 41 39 const string name = argv[1]; 40 const uint32_t nb_port_read = atoi(argv[2]); 41 const uint32_t nb_port_write = atoi(argv[3]); 42 const uint32_t size_address = atoi(argv[4]); 43 const uint32_t size_word = atoi(argv[5]); 44 const uint32_t nb_bank = atoi(argv[6]); 42 const string name = argv[1]; 43 const uint32_t nb_port_read = atoi(argv[2]); 44 const uint32_t nb_port_write = atoi(argv[3]); 45 const uint32_t size_address = atoi(argv[4]); 46 const uint32_t size_word = atoi(argv[5]); 47 const uint32_t nb_bank = atoi(argv[6]); 48 const uint32_t nb_port_read_by_bank = atoi(argv[7]); 49 const uint32_t nb_port_write_by_bank = atoi(argv[8]); 50 const Tcrossbar_t crossbar = fromString<Tcrossbar_t>(argv[9]); 45 51 46 52 try 47 53 { 48 morpheo::behavioural::generic::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param (nb_port_read , 49 nb_port_write, 50 size_address , 51 size_word , 52 nb_bank ); 53 54 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param (nb_port_read , 55 nb_port_write , 56 size_address , 57 size_word , 58 nb_bank , 59 nb_port_read_by_bank , 60 nb_port_write_by_bank, 61 crossbar ); 62 54 63 cout << param.print(1); 55 64 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/src/test.cpp
r10 r15 7 7 */ 8 8 9 #define NB_ITERATION 1 10 11 #include "Behavioural/Generic/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h" 9 #define NB_ITERATION 16 10 11 #define LABEL(str) do {cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; _RegisterFile_Multi_Banked_Glue->vhdl_testbench_label(str);} while (0) 12 13 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/SelfTest/include/test.h" 12 14 #include "Include/Test.h" 15 #include "Include/BitManipulation.h" 13 16 14 17 void test (string name, 15 morpheo::behavioural::generic::registerfile _multi_banked::registerfile_multi_banked_glue::Parameters _param)18 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters _param) 16 19 { 17 20 cout << "<" << name << "> : Simulation SystemC" << endl; … … 19 22 RegisterFile_Multi_Banked_Glue * _RegisterFile_Multi_Banked_Glue = new RegisterFile_Multi_Banked_Glue (name.c_str(), 20 23 #ifdef STATISTICS 21 24 morpheo::behavioural::Parameters_Statistics(5,50), 22 25 #endif 23 26 _param); 24 27 25 28 #ifdef SYSTEMC … … 33 36 sc_signal<Taddress_t> ** READ_IN_ADDRESS ; 34 37 sc_signal<Tdata_t > ** READ_IN_DATA ; 35 sc_signal<Tcontrol_t> 36 sc_signal<Tcontrol_t> 38 sc_signal<Tcontrol_t> **** READ_SELECT_VAL ; 39 sc_signal<Tcontrol_t> **** READ_SELECT_ACK ; 37 40 sc_signal<Tcontrol_t> *** READ_OUT_VAL ; 38 41 sc_signal<Tcontrol_t> *** READ_OUT_ACK ; … … 41 44 sc_signal<Tcontrol_t> ** WRITE_IN_VAL ; 42 45 sc_signal<Tcontrol_t> ** WRITE_IN_ACK ; 43 sc_signal<Tcontrol_t> ** WRITE_SELECT_VAL ;44 sc_signal<Tcontrol_t> ** WRITE_SELECT_ACK ;45 46 sc_signal<Taddress_t> ** WRITE_IN_ADDRESS ; 46 47 sc_signal<Tdata_t > ** WRITE_IN_DATA ; 48 sc_signal<Tcontrol_t> **** WRITE_SELECT_VAL ; 49 sc_signal<Tcontrol_t> **** WRITE_SELECT_ACK ; 47 50 sc_signal<Tcontrol_t> *** WRITE_OUT_VAL ; 48 51 sc_signal<Tcontrol_t> *** WRITE_OUT_ACK ; … … 58 61 READ_IN_ADDRESS = new sc_signal<Taddress_t> * [_param._nb_port_read]; 59 62 READ_IN_DATA = new sc_signal<Tdata_t > * [_param._nb_port_read]; 60 READ_SELECT_VAL = new sc_signal<Tcontrol_t> * [_param._nb_port_read];61 READ_SELECT_ACK = new sc_signal<Tcontrol_t> * [_param._nb_port_read];62 63 63 64 for (uint32_t i=0; i<_param._nb_port_read; i++) … … 71 72 rename = "READ_IN_DATA_"+toString(i)+" "; 72 73 READ_IN_DATA [i] = new sc_signal<Tdata_t > (rename.c_str()); 73 rename = "READ_SELECT_VAL_"+toString(i)+" "; 74 READ_SELECT_VAL [i] = new sc_signal<Tcontrol_t> (rename.c_str()); 75 rename = "READ_SELECT_ACK_"+toString(i)+" "; 76 READ_SELECT_ACK [i] = new sc_signal<Tcontrol_t> (rename.c_str()); 77 } 74 } 75 76 READ_SELECT_VAL = new sc_signal<Tcontrol_t> *** [_param._nb_bank]; 77 READ_SELECT_ACK = new sc_signal<Tcontrol_t> *** [_param._nb_bank]; 78 79 for (uint32_t i=0; i<_param._nb_bank; i++) 80 { 81 READ_SELECT_VAL [i] = new sc_signal<Tcontrol_t> ** [_param._nb_port_read_by_bank]; 82 READ_SELECT_ACK [i] = new sc_signal<Tcontrol_t> ** [_param._nb_port_read_by_bank]; 83 84 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 85 { 86 READ_SELECT_VAL [i][j] = new sc_signal<Tcontrol_t> * [_param._nb_port_select_by_bank_read_port [j]]; 87 READ_SELECT_ACK [i][j] = new sc_signal<Tcontrol_t> * [_param._nb_port_select_by_bank_read_port [j]]; 88 89 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port [j]; k++) 90 { 91 rename="READ_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" "; 92 READ_SELECT_VAL [i][j][k] = new sc_signal<Tcontrol_t> (rename.c_str()); 93 94 rename="READ_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" "; 95 READ_SELECT_ACK [i][j][k] = new sc_signal<Tcontrol_t> (rename.c_str()); 96 } 97 } 98 } 78 99 79 100 READ_OUT_VAL = new sc_signal<Tcontrol_t> ** [_param._nb_bank]; … … 106 127 WRITE_IN_ADDRESS = new sc_signal<Taddress_t> * [_param._nb_port_write]; 107 128 WRITE_IN_DATA = new sc_signal<Tdata_t > * [_param._nb_port_write]; 108 WRITE_SELECT_VAL = new sc_signal<Tcontrol_t> * [_param._nb_port_write];109 WRITE_SELECT_ACK = new sc_signal<Tcontrol_t> * [_param._nb_port_write];110 111 129 for (uint32_t i=0; i<_param._nb_port_write; i++) 112 130 { … … 119 137 rename = "WRITE_IN_DATA_"+toString(i)+" "; 120 138 WRITE_IN_DATA [i] = new sc_signal<Tdata_t > (rename.c_str()); 121 122 rename = "WRITE_SELECT_VAL_"+toString(i)+" "; 123 WRITE_SELECT_VAL [i] = new sc_signal<Tcontrol_t> (rename.c_str()); 124 rename = "WRITE_SELECT_ACK_"+toString(i)+" "; 125 WRITE_SELECT_ACK [i] = new sc_signal<Tcontrol_t> (rename.c_str()); 126 } 139 } 140 141 WRITE_SELECT_VAL = new sc_signal<Tcontrol_t> *** [_param._nb_bank]; 142 WRITE_SELECT_ACK = new sc_signal<Tcontrol_t> *** [_param._nb_bank]; 143 144 for (uint32_t i=0; i<_param._nb_bank; i++) 145 { 146 WRITE_SELECT_VAL [i] = new sc_signal<Tcontrol_t> ** [_param._nb_port_write_by_bank]; 147 WRITE_SELECT_ACK [i] = new sc_signal<Tcontrol_t> ** [_param._nb_port_write_by_bank]; 148 149 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++) 150 { 151 WRITE_SELECT_VAL [i][j] = new sc_signal<Tcontrol_t> * [_param._nb_port_select_by_bank_write_port [j]]; 152 WRITE_SELECT_ACK [i][j] = new sc_signal<Tcontrol_t> * [_param._nb_port_select_by_bank_write_port [j]]; 153 154 for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port [j]; k++) 155 { 156 rename="WRITE_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" "; 157 WRITE_SELECT_VAL [i][j][k] = new sc_signal<Tcontrol_t> (rename.c_str()); 158 159 rename="WRITE_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" "; 160 WRITE_SELECT_ACK [i][j][k] = new sc_signal<Tcontrol_t> (rename.c_str()); 161 } 162 } 163 } 127 164 128 165 WRITE_OUT_VAL = new sc_signal<Tcontrol_t> ** [_param._nb_bank]; … … 165 202 (*(_RegisterFile_Multi_Banked_Glue-> in_READ_IN_ADDRESS [i])) (*(READ_IN_ADDRESS [i])); 166 203 (*(_RegisterFile_Multi_Banked_Glue->out_READ_IN_DATA [i])) (*(READ_IN_DATA [i])); 167 (*(_RegisterFile_Multi_Banked_Glue-> in_READ_SELECT_VAL [i])) (*(READ_SELECT_VAL [i])); 168 (*(_RegisterFile_Multi_Banked_Glue->out_READ_SELECT_ACK [i])) (*(READ_SELECT_ACK [i])); 169 } 204 } 205 206 for (uint32_t i=0; i<_param._nb_bank; i++) 207 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 208 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++) 209 { 210 (*(_RegisterFile_Multi_Banked_Glue->out_READ_SELECT_VAL [i][j][k])) (*(READ_SELECT_VAL [i][j][k])); 211 (*(_RegisterFile_Multi_Banked_Glue-> in_READ_SELECT_ACK [i][j][k])) (*(READ_SELECT_ACK [i][j][k])); 212 } 213 170 214 for (uint32_t i=0; i<_param._nb_bank; i++) 171 215 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) … … 183 227 (*(_RegisterFile_Multi_Banked_Glue-> in_WRITE_IN_ADDRESS [i])) (*(WRITE_IN_ADDRESS [i])); 184 228 (*(_RegisterFile_Multi_Banked_Glue-> in_WRITE_IN_DATA [i])) (*(WRITE_IN_DATA [i])); 185 (*(_RegisterFile_Multi_Banked_Glue-> in_WRITE_SELECT_VAL [i])) (*(WRITE_SELECT_VAL [i])); 186 (*(_RegisterFile_Multi_Banked_Glue->out_WRITE_SELECT_ACK [i])) (*(WRITE_SELECT_ACK [i])); 187 } 229 } 230 231 for (uint32_t i=0; i<_param._nb_bank; i++) 232 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++) 233 for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port[j]; k++) 234 { 235 (*(_RegisterFile_Multi_Banked_Glue->out_WRITE_SELECT_VAL [i][j][k])) (*(WRITE_SELECT_VAL [i][j][k])); 236 (*(_RegisterFile_Multi_Banked_Glue-> in_WRITE_SELECT_ACK [i][j][k])) (*(WRITE_SELECT_ACK [i][j][k])); 237 } 188 238 189 239 for (uint32_t i=0; i<_param._nb_bank; i++) … … 197 247 198 248 249 cout << "<" << name << "> Start Simulation ............" << endl; 250 199 251 /******************************************************** 200 252 * Simulation - Begin 201 253 ********************************************************/ 202 254 203 cout << "<" << name << "> Start Simulation ............" << endl;204 255 // Initialisation 205 256 … … 210 261 211 262 sc_start(0); 212 _RegisterFile_Multi_Banked_Glue->vhdl_testbench_label("Initialisation"); 213 cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl; 214 215 216 _RegisterFile_Multi_Banked_Glue->vhdl_testbench_label("Loop of Test"); 217 cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Loop of Test" << endl; 263 264 LABEL("Initialisation"); 265 266 uint32_t read_in_num_bank [_param._nb_port_read]; // Number of bank 267 //Tcontrol_t read_in_valid [_param._nb_port_read]; 268 Tcontrol_t read_in_ack [_param._nb_port_read]; // to test 269 Tdata_t read_in_data [_param._nb_port_read]; // to test 270 Tcontrol_t read_out_val [_param._nb_bank][_param._nb_port_read_by_bank]; 271 Tcontrol_t read_out_ack [_param._nb_bank][_param._nb_port_read_by_bank]; 272 Taddress_t read_out_address [_param._nb_bank][_param._nb_port_read_by_bank]; 273 Tcontrol_t read_is_busy [_param._nb_port_read]; 274 Tcontrol_t read_select_val [_param._nb_bank][_param._nb_port_read ]; 275 Tcontrol_t read_select_ack [_param._nb_bank][_param._nb_port_read ]; 276 277 LABEL("Loop of Test"); 218 278 219 279 for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++) 220 280 { 221 _RegisterFile_Multi_Banked_Glue->vhdl_testbench_label("Iteration "+toString(iteration)); 222 281 LABEL("Iteration "+toString(iteration)); 282 283 LABEL("Test read_in"); 284 285 // Write in interface "read_in" 286 for (uint32_t i=0; i<_param._nb_port_read; i++) 287 { 288 read_in_num_bank [i] = rand() % _param._nb_bank; 289 Tcontrol_t read_in_valid = (rand() % 2) != 0; 290 291 Taddress_t address = (read_in_num_bank[i] << _param._shift_address) | (gen_mask<Taddress_t>(_param._size_address-_param._shift_address) & i); 292 293 read_is_busy [i] = (read_in_valid == 0); 294 read_in_ack [i] = 0; 295 read_in_data [i] = 0; 296 READ_IN_VAL [i]->write(read_in_valid); 297 READ_IN_ADDRESS [i]->write(address); 298 299 for (uint32_t j=0; j<_param._nb_bank; j++) 300 read_select_ack [j][i] = 0; 301 } 302 303 for (uint32_t i=0; i<_param._nb_bank; i++) 304 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 305 { 306 read_out_ack [i][j] = (rand() % 2) != 0; 307 READ_OUT_ACK [i][j]->write(read_out_ack [i][j]); 308 READ_OUT_DATA [i][j]->write((j<<1)|1); // (j<<1)|1 afin de n'avoir jamais 0 309 } 310 311 // compute the good read_select 312 for (uint32_t i=0; i<_param._nb_bank; i++) 313 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 314 { 315 bool find = false; // have find a port_in to link with this port_out 316 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++) 317 { 318 319 uint32_t num_port; // number of port 320 321 // compute the good number of port 322 if (_param._crossbar == FULL_CROSSBAR) 323 num_port = k; 324 else 325 num_port = _param._link_port_read [i]; 326 327 read_select_val [i][num_port] = read_out_ack [i][j] && not read_is_busy [num_port]; 328 329 if ((read_out_ack [i][j] == 0) || find) 330 read_select_ack [i][num_port] = 0; // read_out is busy or already find 331 else 332 { 333 // find a busy port? 334 find = not read_is_busy [num_port]; 335 read_is_busy [num_port]|= find; 336 read_select_ack [i][num_port] = find; 337 338 if (find) 339 { 340 read_in_ack [num_port] = 1; 341 read_in_data [num_port] = ((j<<1)|1); 342 read_out_val [i][j] = 1; 343 read_out_address [i][j] = (read_in_num_bank[i] << _param._shift_address) | (gen_mask<Taddress_t>(_param._size_address-_param._shift_address) & i); 344 } 345 } 346 347 READ_SELECT_ACK [i][j][k]->write(read_select_ack [i][num_port]); 348 } 349 } 350 351 // next cycle 223 352 sc_start(1); 353 354 // // lot of test 355 // public : SC_OUT(Tcontrol_t) ** out_READ_IN_ACK ; 356 // public : SC_OUT(Tdata_t ) ** out_READ_IN_DATA ; 357 358 // public : SC_OUT(Tcontrol_t) **** out_READ_SELECT_VAL ; 359 360 // public : SC_OUT(Tcontrol_t) *** out_READ_OUT_VAL ; 361 // public : SC_OUT(Taddress_t) *** out_READ_OUT_ADDRESS ; 362 224 363 } 225 364 … … 238 377 delete READ_IN_ADDRESS [i]; 239 378 delete READ_IN_DATA [i]; 240 delete READ_SELECT_VAL [i];241 delete READ_SELECT_ACK [i];242 379 } 243 380 … … 246 383 delete READ_IN_ADDRESS; 247 384 delete READ_IN_DATA ; 248 delete READ_SELECT_VAL; 249 delete READ_SELECT_ACK; 385 386 for (uint32_t i=0; i<_param._nb_bank; i++) 387 { 388 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 389 { 390 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++) 391 { 392 delete READ_SELECT_VAL [i][j][k]; 393 delete READ_SELECT_ACK [i][j][k]; 394 } 395 delete READ_SELECT_VAL [i][j]; 396 delete READ_SELECT_ACK [i][j]; 397 } 398 delete READ_SELECT_VAL [i]; 399 delete READ_SELECT_ACK [i]; 400 } 401 delete READ_SELECT_VAL; 402 delete READ_SELECT_ACK; 250 403 251 404 for (uint32_t i=0; i<_param._nb_bank; i++) … … 276 429 delete WRITE_IN_ADDRESS [i]; 277 430 delete WRITE_IN_DATA [i]; 278 delete WRITE_SELECT_VAL [i];279 delete WRITE_SELECT_ACK [i];280 431 } 281 432 … … 284 435 delete WRITE_IN_ADDRESS; 285 436 delete WRITE_IN_DATA ; 437 438 for (uint32_t i=0; i<_param._nb_bank; i++) 439 { 440 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++) 441 { 442 for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port[j]; k++) 443 { 444 delete WRITE_SELECT_VAL [i][j][k]; 445 delete WRITE_SELECT_ACK [i][j][k]; 446 } 447 delete WRITE_SELECT_VAL [i][j]; 448 delete WRITE_SELECT_ACK [i][j]; 449 } 450 delete WRITE_SELECT_VAL [i]; 451 delete WRITE_SELECT_ACK [i]; 452 } 286 453 delete WRITE_SELECT_VAL; 287 454 delete WRITE_SELECT_ACK; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h
r10 r15 1 #ifndef morpheo_behavioural_generic_registerfile_ multi_banked_registerfile_multi_banked_glue_Parameters_h2 #define morpheo_behavioural_generic_registerfile_ multi_banked_registerfile_multi_banked_glue_Parameters_h1 #ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Parameters_h 2 #define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Parameters_h 3 3 4 4 /* … … 10 10 11 11 #include "Include/Debug.h" 12 #include "Include/FromString.h" 12 13 #include "Behavioural/include/Parameters.h" 13 14 #include <math.h> 14 15 15 16 namespace morpheo { 17 18 typedef enum {PARTIAL_CROSSBAR, 19 FULL_CROSSBAR } Tcrossbar_t; 20 21 template<> inline Tcrossbar_t fromString<Tcrossbar_t> (const std::string& x) 22 { 23 if ( (x.compare("0") == 0) or 24 (x.compare("PARTIAL_CROSSBAR") == 0)) 25 return PARTIAL_CROSSBAR; 26 if ( (x.compare("1") == 0) or 27 (x.compare("FULL_CROSSBAR" ) == 0)) 28 return FULL_CROSSBAR; 29 30 throw (ErrorMorpheo ("<fromString> : Unknow string : \""+x+"\"")); 31 } 32 33 template<> inline std::string toString<Tcrossbar_t> (const Tcrossbar_t& x) 34 { 35 ostringstream out; 36 37 if (x == PARTIAL_CROSSBAR) 38 out << "PARTIAL_CROSSBAR"; 39 if (x == FULL_CROSSBAR) 40 out << "FULL_CROSSBAR"; 41 42 return out.str(); 43 } 44 16 45 namespace behavioural { 17 46 namespace generic { 47 namespace registerfile{ 18 48 namespace registerfile_multi_banked { 19 49 namespace registerfile_multi_banked_glue { 20 21 50 22 51 class Parameters : public morpheo::behavioural::Parameters 23 52 { 24 53 //-----[ fields ]------------------------------------------------------------ 25 public : const uint32_t _nb_port_read ; 26 public : const uint32_t _nb_port_write ; 27 public : const uint32_t _size_address ; 28 public : const uint32_t _size_word ; 29 public : const uint32_t _nb_bank ; 54 public : const uint32_t _nb_port_read ; 55 public : const uint32_t _nb_port_write ; 56 public : const uint32_t _size_address ; 57 public : const uint32_t _size_word ; 58 public : const uint32_t _nb_bank ; 59 public : const uint32_t _nb_port_read_by_bank ; 60 public : const uint32_t _nb_port_write_by_bank; 61 public : const Tcrossbar_t _crossbar ; 30 62 31 public : const uint32_t _nb_port_read_by_bank ; 32 public : const uint32_t _nb_port_write_by_bank; 63 public : const uint32_t _shift_address ; 64 65 public : uint32_t * _link_port_read ; 66 public : uint32_t * _link_port_write ; 67 68 public : uint32_t * _nb_port_select_by_bank_read_port ; 69 public : uint32_t * _nb_port_select_by_bank_write_port; 33 70 34 71 //-----[ methods ]----------------------------------------------------------- 35 public : Parameters (uint32_t nb_port_read , 36 uint32_t nb_port_write, 37 uint32_t size_address , 38 uint32_t size_word , 39 uint32_t nb_bank ); 72 public : Parameters (uint32_t nb_port_read , 73 uint32_t nb_port_write , 74 uint32_t size_address , 75 uint32_t size_word , 76 uint32_t nb_bank , 77 uint32_t nb_port_read_by_bank , 78 uint32_t nb_port_write_by_bank, 79 Tcrossbar_t crossbar ); 80 40 81 public : Parameters (Parameters & param) ; 41 82 public : ~Parameters () ; … … 45 86 public : string print (uint32_t depth); 46 87 public : friend ostream& operator<< (ostream& output_stream, 47 morpheo::behavioural::generic::registerfile _multi_banked::registerfile_multi_banked_glue::Parameters & x);88 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters & x); 48 89 }; 49 90 50 91 }; // end namespace registerfile_multi_banked_glue 51 92 }; // end namespace registerfile_multi_banked 93 }; // end namespace registerfile 52 94 }; // end namespace generic 53 95 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h
r10 r15 1 #ifndef morpheo_behavioural_generic_registerfile_ multi_banked_registerfile_multi_banked_glue_RegisterFile_Multi_Banked_Glue_h2 #define morpheo_behavioural_generic_registerfile_ multi_banked_registerfile_multi_banked_glue_RegisterFile_Multi_Banked_Glue_h1 #ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_RegisterFile_Multi_Banked_Glue_h 2 #define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_RegisterFile_Multi_Banked_Glue_h 3 3 4 4 /* … … 17 17 #include "Include/Debug.h" 18 18 19 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"20 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h"21 #ifdef STATISTICS 22 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"19 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h" 20 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h" 21 #ifdef STATISTICS 22 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h" 23 23 #endif 24 24 #ifdef VHDL … … 34 34 namespace behavioural { 35 35 namespace generic { 36 namespace registerfile{ 36 37 namespace registerfile_multi_banked { 37 38 namespace registerfile_multi_banked_glue { … … 70 71 public : SC_OUT(Tdata_t ) ** out_READ_IN_DATA ; 71 72 72 public : SC_ IN (Tcontrol_t) ** in_READ_SELECT_VAL ;73 public : SC_ OUT(Tcontrol_t) ** out_READ_SELECT_ACK ;73 public : SC_OUT(Tcontrol_t) **** out_READ_SELECT_VAL ; 74 public : SC_IN (Tcontrol_t) **** in_READ_SELECT_ACK ; 74 75 75 76 public : SC_OUT(Tcontrol_t) *** out_READ_OUT_VAL ; … … 83 84 public : SC_IN (Tdata_t ) ** in_WRITE_IN_DATA ; 84 85 85 public : SC_ IN (Tcontrol_t) ** in_WRITE_SELECT_VAL ;86 public : SC_ OUT(Tcontrol_t) ** out_WRITE_SELECT_ACK ;86 public : SC_OUT(Tcontrol_t) **** out_WRITE_SELECT_VAL ; 87 public : SC_IN (Tcontrol_t) **** in_WRITE_SELECT_ACK ; 87 88 88 89 public : SC_OUT(Tcontrol_t) *** out_WRITE_OUT_VAL ; … … 124 125 public : void transition (void); 125 126 #endif 127 public : void genMealy_read_in (void); 128 public : void genMealy_read_out (void); 129 public : void genMealy_read_select (void); 126 130 127 131 #endif … … 145 149 }; // end namespace registerfile_multi_banked_glue 146 150 }; // end namespace registerfile_multi_banked 151 }; // end namespace registerfile 147 152 }; // end namespace generic 148 153 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h
r10 r15 1 1 #ifdef STATISTICS 2 #ifndef morpheo_behavioural_generic_registerfile_ multi_banked_registerfile_multi_banked_glue_Statistics_h3 #define morpheo_behavioural_generic_registerfile_ multi_banked_registerfile_multi_banked_glue_Statistics_h2 #ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Statistics_h 3 #define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Statistics_h 4 4 5 5 /* … … 14 14 #include "Behavioural/include/Parameters_Statistics.h" 15 15 //#include "Behavioural/Generic/Group/include/Statistics.h" 16 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"16 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h" 17 17 18 18 //using namespace morpheo::behavioural::generic::group; … … 21 21 namespace behavioural { 22 22 namespace generic { 23 namespace registerfile{ 23 24 namespace registerfile_multi_banked { 24 25 namespace registerfile_multi_banked_glue { … … 49 50 }; // end namespace registerfile_multi_banked_glue 50 51 }; // end namespace registerfile_multi_banked 52 }; // end namespace registerfile 51 53 }; // end namespace generic 52 54 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h
r10 r15 1 #ifndef morpheo_behavioural_generic_registerfile_ multi_banked_registerfile_multi_banked_glue_Type_h2 #define morpheo_behavioural_generic_registerfile_ multi_banked_registerfile_multi_banked_glue_Type_h1 #ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Type_h 2 #define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_registerfile_multi_banked_glue_Type_h 3 3 4 4 /* … … 14 14 namespace behavioural { 15 15 namespace generic { 16 namespace registerfile{ 16 17 namespace registerfile_multi_banked { 17 18 namespace registerfile_multi_banked_glue { … … 22 23 }; // end namespace registerfile_multi_banked_glue 23 24 }; // end namespace registerfile_multi_banked 25 }; // end namespace registerfile 24 26 }; // end namespace generic 25 27 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h" 9 9 10 10 namespace morpheo { 11 11 namespace behavioural { 12 12 namespace generic { 13 namespace registerfile{ 13 14 namespace registerfile_multi_banked { 14 15 namespace registerfile_multi_banked_glue { 15 16 16 Parameters::Parameters (uint32_t nb_port_read , 17 uint32_t nb_port_write, 18 uint32_t size_address , 19 uint32_t size_word , 20 uint32_t nb_bank ): 17 Parameters::Parameters (uint32_t nb_port_read , 18 uint32_t nb_port_write , 19 uint32_t size_address , 20 uint32_t size_word , 21 uint32_t nb_bank , 22 uint32_t nb_port_read_by_bank , 23 uint32_t nb_port_write_by_bank, 24 Tcrossbar_t crossbar ): 21 25 _nb_port_read (nb_port_read ), 22 26 _nb_port_write (nb_port_write ), … … 24 28 _size_word (size_word ), 25 29 _nb_bank (nb_bank ), 26 _nb_port_read_by_bank (nb_port_read /nb_bank), 27 _nb_port_write_by_bank (nb_port_write/nb_bank) 30 _nb_port_read_by_bank (nb_port_read_by_bank ), 31 _nb_port_write_by_bank (nb_port_write_by_bank), 32 _crossbar (crossbar ), 33 _shift_address (static_cast<uint32_t>(ceil(log2(_nb_bank)))) 28 34 { 29 35 log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters","Begin"); 36 37 if (_crossbar == PARTIAL_CROSSBAR) 38 { 39 // All port_src is connected with one port_dest on each bank 40 41 _link_port_read = new uint32_t [_nb_port_read ]; 42 for (uint32_t i=0; i<_nb_port_read ; i++) 43 _link_port_read [i] = i%_nb_port_read_by_bank; 44 45 _link_port_write = new uint32_t [_nb_port_write]; 46 for (uint32_t i=0; i<_nb_port_write; i++) 47 _link_port_write [i] = i%_nb_port_write_by_bank; 48 } 49 // else : don't allocate 50 51 _nb_port_select_by_bank_read_port = new uint32_t [_nb_port_read_by_bank ]; 52 53 if (_crossbar == FULL_CROSSBAR) 54 // All port_src is connected with all port_dest on each bank 55 for (uint32_t i=0; i<_nb_port_read_by_bank ;i++) 56 _nb_port_select_by_bank_read_port [i] = _nb_port_read; 57 else 58 // All port_src is connected with one port_dest on each bank 59 { 60 for (uint32_t i=0; i<_nb_port_read_by_bank ;i++) 61 _nb_port_select_by_bank_read_port [i] = 0; 62 63 for (uint32_t i=0; i<_nb_port_read ;i++) 64 _nb_port_select_by_bank_read_port [_link_port_read [i]] ++; 65 } 66 67 _nb_port_select_by_bank_write_port = new uint32_t [_nb_port_write_by_bank]; 68 69 if (_crossbar == FULL_CROSSBAR) 70 // All port_src is connected with all port_dest on each bank 71 for (uint32_t i=0; i<_nb_port_write_by_bank ;i++) 72 _nb_port_select_by_bank_write_port [i] = _nb_port_write; 73 else 74 // All port_src is connected with one port_dest on each bank 75 { 76 for (uint32_t i=0; i<_nb_port_write_by_bank ;i++) 77 _nb_port_select_by_bank_write_port [i] = 0; 78 79 for (uint32_t i=0; i<_nb_port_write ;i++) 80 _nb_port_select_by_bank_write_port [_link_port_write[i]] ++; 81 } 82 30 83 test(); 31 84 log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters","End"); … … 33 86 34 87 Parameters::Parameters (Parameters & param): 35 _nb_port_read (param._nb_port_read ), 36 _nb_port_write (param._nb_port_write), 37 _size_address (param._size_address ), 38 _size_word (param._size_word ), 39 _nb_bank (param._nb_bank ), 40 _nb_port_read_by_bank (param._nb_port_read ), 41 _nb_port_write_by_bank (param._nb_port_write) 88 _nb_port_read (param._nb_port_read ), 89 _nb_port_write (param._nb_port_write ), 90 _size_address (param._size_address ), 91 _size_word (param._size_word ), 92 _nb_bank (param._nb_bank ), 93 _nb_port_read_by_bank (param._nb_port_read_by_bank ), 94 _nb_port_write_by_bank (param._nb_port_write_by_bank), 95 _crossbar (param._crossbar ), 96 _shift_address (param._shift_address ) 42 97 { 43 log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters","Begin"); 98 log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters (copy)","Begin"); 99 100 _nb_port_select_by_bank_read_port = new uint32_t [_nb_port_read_by_bank ]; 101 for (uint32_t i=0; i<_nb_port_read_by_bank; i++) 102 _nb_port_select_by_bank_read_port [i] = param._nb_port_select_by_bank_read_port [i]; 103 104 _nb_port_select_by_bank_write_port = new uint32_t [_nb_port_write_by_bank ]; 105 for (uint32_t i=0; i<_nb_port_write_by_bank; i++) 106 _nb_port_select_by_bank_write_port[i] = param._nb_port_select_by_bank_write_port [i]; 107 44 108 test(); 45 log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters ","End");109 log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"Parameters (copy)","End"); 46 110 }; 47 111 … … 54 118 }; // end namespace registerfile_multi_banked_glue 55 119 }; // end namespace registerfile_multi_banked 120 }; // end namespace registerfile 56 121 }; // end namespace generic 57 122 }; // end namespace behavioural -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters_msg_error.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h" 9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Types.h" 10 10 #include <sstream> 11 11 using namespace std; 12 12 13 namespace morpheo 13 namespace morpheo { 14 14 namespace behavioural { 15 15 namespace generic { 16 namespace registerfile{ 16 17 namespace registerfile_multi_banked { 17 18 namespace registerfile_multi_banked_glue { 18 19 19 20 20 string Parameters::msg_error(void) … … 24 24 string msg = ""; 25 25 26 if (_nb_port_read < _nb_port_read_by_bank) 27 { 28 msg += " - Each bank read's port must be higher at number of read port\n"; 29 msg += " * nb_port_read : " + toString(_nb_port_read ) + "\n"; 30 msg += " * nb_port_read_by_bank : " + toString(_nb_port_read_by_bank) + "\n"; 31 } 32 33 if (_nb_port_write < _nb_port_write_by_bank) 34 { 35 msg += " - Each bank write's port must be higher at number of write port\n"; 36 msg += " * nb_port_write : " + toString(_nb_port_write ) + "\n"; 37 msg += " * nb_port_write_by_bank : " + toString(_nb_port_write_by_bank) + "\n"; 38 } 39 40 if (_nb_bank < 1) 41 { 42 msg += " - nb_bank must be higher at 1\n"; 43 msg += " * nb_bank : " + toString(_nb_bank ) + "\n"; 44 } 45 26 46 return msg; 27 47 … … 31 51 }; // end namespace registerfile_multi_banked_glue 32 52 }; // end namespace registerfile_multi_banked 53 }; // end namespace registerfile 33 54 }; // end namespace generic 34 35 55 }; // end namespace behavioural 36 56 }; // end namespace morpheo -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Parameters_print.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Parameters.h" 9 9 #include "Behavioural/include/XML.h" 10 10 using namespace std; … … 13 13 namespace behavioural { 14 14 namespace generic { 15 namespace registerfile{ 15 16 namespace registerfile_multi_banked { 16 17 namespace registerfile_multi_banked_glue { … … 24 25 25 26 xml.balise_open("registerfile_multi_banked_glue"); 26 xml.singleton_begin("nb_port_read "); xml.attribut("value",toString(_nb_port_read )); xml.singleton_end(); 27 xml.singleton_begin("nb_port_write"); xml.attribut("value",toString(_nb_port_write)); xml.singleton_end(); 28 xml.singleton_begin("size_address "); xml.attribut("value",toString(_size_address )); xml.singleton_end(); 29 xml.singleton_begin("size_word "); xml.attribut("value",toString(_size_word )); xml.singleton_end(); 30 xml.singleton_begin("nb_bank "); xml.attribut("value",toString(_nb_bank )); xml.singleton_end(); 27 xml.singleton_begin("nb_port_read "); xml.attribut("value",toString(_nb_port_read )); xml.singleton_end(); 28 xml.singleton_begin("nb_port_write "); xml.attribut("value",toString(_nb_port_write )); xml.singleton_end(); 29 xml.singleton_begin("size_address "); xml.attribut("value",toString(_size_address )); xml.singleton_end(); 30 xml.singleton_begin("size_word "); xml.attribut("value",toString(_size_word )); xml.singleton_end(); 31 xml.singleton_begin("nb_bank "); xml.attribut("value",toString(_nb_bank )); xml.singleton_end(); 32 xml.singleton_begin("nb_port_read_by_bank "); xml.attribut("value",toString(_nb_port_read_by_bank )); xml.singleton_end(); 33 xml.singleton_begin("nb_port_write_by_bank"); xml.attribut("value",toString(_nb_port_write_by_bank)); xml.singleton_end(); 34 xml.singleton_begin("crossbar "); xml.attribut("value",toString(_crossbar )); xml.singleton_end(); 31 35 xml.balise_close(); 32 36 … … 37 41 38 42 ostream& operator<< (ostream& output_stream , 39 morpheo::behavioural::generic::registerfile _multi_banked::registerfile_multi_banked_glue::Parameters & x)43 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters & x) 40 44 { 41 45 output_stream << x.print(0); … … 46 50 }; // end namespace registerfile_multi_banked_glue 47 51 }; // end namespace registerfile_multi_banked 52 }; // end namespace registerfile 48 53 }; // end namespace generic 49 54 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 9 9 10 10 namespace morpheo { 11 11 namespace behavioural { 12 12 namespace generic { 13 namespace registerfile{ 13 14 namespace registerfile_multi_banked { 14 15 namespace registerfile_multi_banked_glue { … … 23 24 morpheo::behavioural::Parameters_Statistics param_statistics, 24 25 #endif 25 morpheo::behavioural::generic::registerfile _multi_banked::registerfile_multi_banked_glue::Parameters param ):26 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Parameters param ): 26 27 _name (name) 27 28 ,_param (param) … … 66 67 allocation (); 67 68 68 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)69 #if defined(STATISTICS) or defined(VHDL_TESTBENCH) 69 70 log_printf(INFO,RegisterFile_Multi_Banked_Glue,"RegisterFile_Multi_Banked_Glue","Method - transition"); 70 71 … … 72 73 dont_initialize (); 73 74 sensitive_pos << *(in_CLOCK); 74 //#endif 75 #endif 76 77 log_printf(INFO,RegisterFile_Multi_Banked_Glue,"RegisterFile_Multi_Banked_Glue","Method - transition"); 78 79 SC_METHOD (genMealy_read_in); 80 dont_initialize (); 81 for (uint32_t l=0; l<_param._nb_port_read; l++) 82 sensitive << (*(in_READ_IN_ADDRESS [l])); 83 for (uint32_t i=0; i<_param._nb_bank; i++) 84 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 85 { 86 sensitive << (*(in_READ_OUT_ACK [i][j])) 87 << (*(in_READ_OUT_DATA [i][j])); 88 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++) 89 sensitive << (*(in_READ_SELECT_ACK [i][j][k])); 90 } 75 91 76 92 #ifdef SYSTEMCASS_SPECIFIC 77 93 // List dependency information 94 for (uint32_t l=0; l<_param._nb_port_read; l++) 95 { 96 (*(out_READ_IN_ACK [l])) (*(in_READ_IN_ADDRESS [l])); 97 (*(out_READ_IN_DATA [l])) (*(in_READ_IN_ADDRESS [l])); 98 99 for (uint32_t i=0; i<_param._nb_bank; i++) 100 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 101 { 102 (*(out_READ_IN_ACK [l])) (*(in_READ_OUT_ACK [i][j])); 103 (*(out_READ_IN_DATA [l])) (*(in_READ_OUT_DATA [i][j])); 104 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++) 105 { 106 (*(out_READ_IN_ACK [l])) (*(in_READ_SELECT_ACK [i][j][k])); 107 (*(out_READ_IN_DATA [l])) (*(in_READ_SELECT_ACK [i][j][k])); 108 } 109 } 110 } 78 111 #endif 79 112 … … 113 146 }; // end namespace registerfile_multi_banked_glue 114 147 }; // end namespace registerfile_multi_banked 148 }; // end namespace registerfile 115 149 }; // end namespace generic 116 150 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_allocation.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 namespace registerfile_multi_banked_glue { … … 30 31 in_READ_IN_ADDRESS = new SC_IN (Taddress_t) * [_param._nb_port_read]; 31 32 out_READ_IN_DATA = new SC_OUT(Tdata_t ) * [_param._nb_port_read]; 32 in_READ_SELECT_VAL = new SC_IN (Tcontrol_t) * [_param._nb_port_read];33 out_READ_SELECT_ACK = new SC_OUT(Tcontrol_t) * [_param._nb_port_read];34 33 35 34 for (uint32_t i=0; i<_param._nb_port_read; i++) … … 46 45 rename = "out_READ_IN_DATA_"+toString(i)+" "; 47 46 out_READ_IN_DATA [i] = new SC_OUT(Tdata_t ) (rename.c_str()); 48 49 rename = " in_READ_SELECT_VAL_"+toString(i)+" ";50 in_READ_SELECT_VAL [i] = new SC_IN (Tcontrol_t) (rename.c_str());51 52 rename = "out_READ_SELECT_ACK_"+toString(i)+" ";53 out_READ_SELECT_ACK [i] = new SC_OUT(Tcontrol_t) (rename.c_str());54 47 } 55 48 56 out_READ_OUT_VAL = new SC_OUT(Tcontrol_t) ** [_param._nb_bank]; 57 in_READ_OUT_ACK = new SC_IN (Tcontrol_t) ** [_param._nb_bank]; 58 out_READ_OUT_ADDRESS = new SC_OUT(Taddress_t) ** [_param._nb_bank]; 59 in_READ_OUT_DATA = new SC_IN (Tdata_t ) ** [_param._nb_bank]; 49 out_READ_SELECT_VAL = new SC_OUT(Tcontrol_t) *** [_param._nb_bank]; 50 in_READ_SELECT_ACK = new SC_IN (Tcontrol_t) *** [_param._nb_bank]; 51 52 for (uint32_t i=0; i<_param._nb_bank; i++) 53 { 54 out_READ_SELECT_VAL [i] = new SC_OUT(Tcontrol_t) ** [_param._nb_port_read_by_bank]; 55 in_READ_SELECT_ACK [i] = new SC_IN (Tcontrol_t) ** [_param._nb_port_read_by_bank]; 56 57 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 58 { 59 out_READ_SELECT_VAL [i][j] = new SC_OUT(Tcontrol_t) * [_param._nb_port_select_by_bank_read_port [j]]; 60 in_READ_SELECT_ACK [i][j] = new SC_IN (Tcontrol_t) * [_param._nb_port_select_by_bank_read_port [j]]; 61 62 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port [j]; k++) 63 { 64 rename="out_READ_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" "; 65 out_READ_SELECT_VAL [i][j][k] = new SC_OUT(Tcontrol_t) (rename.c_str()); 66 67 rename=" in_READ_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" "; 68 in_READ_SELECT_ACK [i][j][k] = new SC_IN (Tcontrol_t) (rename.c_str()); 69 } 70 } 71 } 72 73 out_READ_OUT_VAL = new SC_OUT(Tcontrol_t) ** [_param._nb_bank]; 74 in_READ_OUT_ACK = new SC_IN (Tcontrol_t) ** [_param._nb_bank]; 75 out_READ_OUT_ADDRESS = new SC_OUT(Taddress_t) ** [_param._nb_bank]; 76 in_READ_OUT_DATA = new SC_IN (Tdata_t ) ** [_param._nb_bank]; 60 77 61 78 for (uint32_t i=0; i<_param._nb_bank; i++) … … 87 104 in_WRITE_IN_ADDRESS = new SC_IN (Taddress_t) * [_param._nb_port_write]; 88 105 in_WRITE_IN_DATA = new SC_IN (Tdata_t ) * [_param._nb_port_write]; 89 in_WRITE_SELECT_VAL = new SC_IN (Tcontrol_t) * [_param._nb_port_write];90 out_WRITE_SELECT_ACK = new SC_OUT(Tcontrol_t) * [_param._nb_port_write];91 106 92 107 for (uint32_t i=0; i<_param._nb_port_write; i++) … … 103 118 rename = " in_WRITE_IN_DATA_"+toString(i)+" "; 104 119 in_WRITE_IN_DATA [i] = new SC_IN (Tdata_t ) (rename.c_str()); 105 106 rename = " in_WRITE_SELECT_VAL_"+toString(i)+" ";107 in_WRITE_SELECT_VAL [i] = new SC_IN (Tcontrol_t) (rename.c_str());108 109 rename = "out_WRITE_SELECT_ACK_"+toString(i)+" ";110 out_WRITE_SELECT_ACK [i] = new SC_OUT(Tcontrol_t) (rename.c_str());111 120 } 112 121 122 out_WRITE_SELECT_VAL = new SC_OUT(Tcontrol_t) *** [_param._nb_bank]; 123 in_WRITE_SELECT_ACK = new SC_IN (Tcontrol_t) *** [_param._nb_bank]; 124 125 for (uint32_t i=0; i<_param._nb_bank; i++) 126 { 127 out_WRITE_SELECT_VAL [i] = new SC_OUT(Tcontrol_t) ** [_param._nb_port_write_by_bank]; 128 in_WRITE_SELECT_ACK [i] = new SC_IN (Tcontrol_t) ** [_param._nb_port_write_by_bank]; 129 130 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++) 131 { 132 out_WRITE_SELECT_VAL [i][j] = new SC_OUT(Tcontrol_t) * [_param._nb_port_select_by_bank_write_port [j]]; 133 in_WRITE_SELECT_ACK [i][j] = new SC_IN (Tcontrol_t) * [_param._nb_port_select_by_bank_write_port [j]]; 134 135 for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port [j]; k++) 136 { 137 rename="out_WRITE_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+""; 138 out_WRITE_SELECT_VAL [i][j][k] = new SC_OUT(Tcontrol_t) (rename.c_str()); 139 140 rename=" in_WRITE_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+""; 141 in_WRITE_SELECT_ACK [i][j][k] = new SC_IN (Tcontrol_t) (rename.c_str()); 142 } 143 } 144 } 113 145 114 146 out_WRITE_OUT_VAL = new SC_OUT(Tcontrol_t) ** [_param._nb_bank]; … … 147 179 }; // end namespace registerfile_multi_banked_glue 148 180 }; // end namespace registerfile_multi_banked 181 }; // end namespace registerfile 149 182 }; // end namespace generic 150 183 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_deallocation.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 namespace registerfile_multi_banked_glue { … … 29 30 delete in_READ_IN_ADDRESS [i]; 30 31 delete out_READ_IN_DATA [i]; 31 delete in_READ_SELECT_VAL [i];32 delete out_READ_SELECT_ACK [i];33 32 } 34 33 … … 37 36 delete in_READ_IN_ADDRESS; 38 37 delete out_READ_IN_DATA ; 39 delete in_READ_SELECT_VAL; 40 delete out_READ_SELECT_ACK; 41 42 for (uint32_t i=0; i<_param._nb_bank; i++) 38 39 for (uint32_t i=0; i<_param._nb_bank; i++) 40 { 41 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 42 { 43 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++) 44 { 45 delete out_READ_SELECT_VAL [i][j][k]; 46 delete in_READ_SELECT_ACK [i][j][k]; 47 } 48 delete out_READ_SELECT_VAL [i][j]; 49 delete in_READ_SELECT_ACK [i][j]; 50 } 51 delete out_READ_SELECT_VAL [i]; 52 delete in_READ_SELECT_ACK [i]; 53 } 54 delete out_READ_SELECT_VAL; 55 delete in_READ_SELECT_ACK; 56 57 for (uint32_t i=0; i<_param._nb_bank; i++) 43 58 { 44 59 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) … … 67 82 delete in_WRITE_IN_ADDRESS [i]; 68 83 delete in_WRITE_IN_DATA [i]; 69 delete in_WRITE_SELECT_VAL [i];70 delete out_WRITE_SELECT_ACK [i];71 84 } 72 85 … … 75 88 delete in_WRITE_IN_ADDRESS; 76 89 delete in_WRITE_IN_DATA ; 77 delete in_WRITE_SELECT_VAL; 78 delete out_WRITE_SELECT_ACK; 90 91 for (uint32_t i=0; i<_param._nb_bank; i++) 92 { 93 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++) 94 { 95 for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port[j]; k++) 96 { 97 delete out_WRITE_SELECT_VAL [i][j][k]; 98 delete in_WRITE_SELECT_ACK [i][j][k]; 99 } 100 delete out_WRITE_SELECT_VAL [i][j]; 101 delete in_WRITE_SELECT_ACK [i][j]; 102 } 103 delete out_WRITE_SELECT_VAL [i]; 104 delete in_WRITE_SELECT_ACK [i]; 105 } 106 delete out_WRITE_SELECT_VAL; 107 delete in_WRITE_SELECT_ACK; 79 108 80 109 for (uint32_t i=0; i<_param._nb_bank; i++) … … 106 135 }; // end namespace registerfile_multi_banked_glue 107 136 }; // end namespace registerfile_multi_banked 137 }; // end namespace registerfile 108 138 }; // end namespace generic 109 139 }; // end namespace behavioural -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_statistics.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 namespace registerfile_multi_banked_glue { … … 29 30 }; // end namespace registerfile_multi_banked_glue 30 31 }; // end namespace registerfile_multi_banked 32 }; // end namespace registerfile 31 33 }; // end namespace generic 32 34 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_transition.cpp
r10 r15 1 1 #ifdef SYSTEMC 2 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)2 #if defined(STATISTICS) or defined(VHDL_TESTBENCH) 3 3 /* 4 4 * $Id$ … … 8 8 */ 9 9 10 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"10 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 11 11 12 12 namespace morpheo { 13 13 namespace behavioural { 14 14 namespace generic { 15 namespace registerfile{ 15 16 namespace registerfile_multi_banked { 16 17 namespace registerfile_multi_banked_glue { … … 34 35 }; // end namespace registerfile_multi_banked_glue 35 36 }; // end namespace registerfile_multi_banked 37 }; // end namespace registerfile 36 38 }; // end namespace generic 37 38 39 }; // end namespace behavioural 39 40 }; // end namespace morpheo 40 41 #endif 41 //#endif42 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 10 10 #include "Behavioural/include/Vhdl.h" 11 11 … … 13 13 namespace behavioural { 14 14 namespace generic { 15 namespace registerfile{ 15 16 namespace registerfile_multi_banked { 16 17 namespace registerfile_multi_banked_glue { … … 35 36 }; // end namespace registerfile_multi_banked_glue 36 37 }; // end namespace registerfile_multi_banked 38 }; // end namespace registerfile 37 39 }; // end namespace generic 38 40 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_body.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 namespace registerfile_multi_banked_glue { … … 25 26 }; // end namespace registerfile_multi_banked_glue 26 27 }; // end namespace registerfile_multi_banked 28 }; // end namespace registerfile 27 29 }; // end namespace generic 28 30 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_declaration.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 namespace registerfile_multi_banked_glue { … … 24 25 }; // end namespace registerfile_multi_banked_glue 25 26 }; // end namespace registerfile_multi_banked 27 }; // end namespace registerfile 26 28 }; // end namespace generic 27 29 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_port.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 10 10 11 11 #ifdef VHDL_TESTBENCH … … 18 18 namespace behavioural { 19 19 namespace generic { 20 namespace registerfile{ 20 21 namespace registerfile_multi_banked { 21 22 namespace registerfile_multi_banked_glue { … … 26 27 log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"vhdl_port","Begin"); 27 28 29 log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface READ_IN"); 28 30 for (uint32_t i=0; i<_param._nb_port_read; i++) 29 31 { … … 32 34 VHDL_SET_PORT(" in_READ_IN_ADDRESS_"+toString(i)+" ", IN, _param._size_address); 33 35 VHDL_SET_PORT("out_READ_IN_DATA_"+toString(i)+" ",OUT, _param._size_word ); 34 VHDL_SET_PORT(" in_READ_SELECT_VAL_"+toString(i)+" ", IN, 1);35 VHDL_SET_PORT("out_READ_SELECT_ACK_"+toString(i)+" ",OUT, 1);36 36 } 37 37 38 log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface READ_SELECT"); 39 40 for (uint32_t i=0; i<_param._nb_bank; i++) 41 { 42 log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","READ_SELECT[%d]",i); 43 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 44 { 45 log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","READ_SELECT[%d][%d]",i,j); 46 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port [j]; k++) 47 { 48 log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","READ_SELECT[%d][%d][%d]",i,j,k); 49 VHDL_SET_PORT("out_READ_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ",OUT, 1); 50 VHDL_SET_PORT(" in_READ_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ", IN, 1); 51 } 52 } 53 } 54 log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface READ_OUT"); 55 38 56 for (uint32_t i=0; i<_param._nb_bank; i++) 39 { 40 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 41 { 42 VHDL_SET_PORT("out_READ_OUT_VAL_"+toString(i)+"_"+toString(j)+" ",OUT, 1); 43 VHDL_SET_PORT(" in_READ_OUT_ACK_"+toString(i)+"_"+toString(j)+" ", IN, 1); 44 VHDL_SET_PORT("out_READ_OUT_ADDRESS_"+toString(i)+"_"+toString(j)+" ",OUT, _param._size_address); 45 VHDL_SET_PORT(" in_READ_OUT_DATA_"+toString(i)+"_"+toString(j)+" ", IN, _param._size_word ); 46 } 47 } 57 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 58 { 59 VHDL_SET_PORT("out_READ_OUT_VAL_"+toString(i)+"_"+toString(j)+" ",OUT, 1); 60 VHDL_SET_PORT(" in_READ_OUT_ACK_"+toString(i)+"_"+toString(j)+" ", IN, 1); 61 VHDL_SET_PORT("out_READ_OUT_ADDRESS_"+toString(i)+"_"+toString(j)+" ",OUT, _param._size_address); 62 VHDL_SET_PORT(" in_READ_OUT_DATA_"+toString(i)+"_"+toString(j)+" ", IN, _param._size_word ); 63 } 48 64 65 log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface WRITE_IN"); 66 49 67 for (uint32_t i=0; i<_param._nb_port_write; i++) 50 68 { … … 53 71 VHDL_SET_PORT(" in_WRITE_IN_ADDRESS_"+toString(i)+" ", IN, _param._size_address); 54 72 VHDL_SET_PORT(" in_WRITE_IN_DATA_"+toString(i)+" ", IN, _param._size_word ); 55 VHDL_SET_PORT(" in_WRITE_SELECT_VAL_"+toString(i)+" ", IN, 1);56 VHDL_SET_PORT("out_WRITE_SELECT_ACK_"+toString(i)+" ",OUT, 1);57 73 } 58 74 59 for (uint32_t i=0; i<_param._nb_bank; i++) 60 { 61 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++) 62 { 63 VHDL_SET_PORT("out_WRITE_OUT_VAL_"+toString(i)+"_"+toString(j)+" ",OUT, 1); 64 VHDL_SET_PORT(" in_WRITE_OUT_ACK_"+toString(i)+"_"+toString(j)+" ", IN, 1); 65 VHDL_SET_PORT("out_WRITE_OUT_ADDRESS_"+toString(i)+"_"+toString(j)+" ",OUT, _param._size_address); 66 VHDL_SET_PORT("out_WRITE_OUT_DATA_"+toString(i)+"_"+toString(j)+" ",OUT, _param._size_word ); 67 } 68 } 75 log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface WRITE_SELECT"); 76 77 for (uint32_t i=0; i<_param._nb_bank; i++) 78 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++) 79 for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port [j]; k++) 80 { 81 VHDL_SET_PORT("out_WRITE_SELECT_VAL_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ",OUT, 1); 82 VHDL_SET_PORT(" in_WRITE_SELECT_ACK_"+toString(i)+"_"+toString(j)+"_"+toString(k)+" ", IN, 1); 83 } 84 85 log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"vhdl_port","Interface WRITE_OUT"); 86 87 for (uint32_t i=0; i<_param._nb_bank; i++) 88 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++) 89 { 90 VHDL_SET_PORT("out_WRITE_OUT_VAL_"+toString(i)+"_"+toString(j)+" ",OUT, 1); 91 VHDL_SET_PORT(" in_WRITE_OUT_ACK_"+toString(i)+"_"+toString(j)+" ", IN, 1); 92 VHDL_SET_PORT("out_WRITE_OUT_ADDRESS_"+toString(i)+"_"+toString(j)+" ",OUT, _param._size_address); 93 VHDL_SET_PORT("out_WRITE_OUT_DATA_"+toString(i)+"_"+toString(j)+" ",OUT, _param._size_word ); 94 } 69 95 70 96 log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"vhdl_port","End"); … … 73 99 }; // end namespace registerfile_multi_banked_glue 74 100 }; // end namespace registerfile_multi_banked 101 }; // end namespace registerfile 75 102 }; // end namespace generic 76 103 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_testbench_label.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 9 9 10 10 namespace morpheo { 11 11 namespace behavioural { 12 12 namespace generic { 13 namespace registerfile{ 13 14 namespace registerfile_multi_banked { 14 15 namespace registerfile_multi_banked_glue { … … 28 29 }; // end namespace registerfile_multi_banked_glue 29 30 }; // end namespace registerfile_multi_banked 31 }; // end namespace registerfile 30 32 }; // end namespace generic 31 33 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_vhdl_testbench_transition.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 namespace registerfile_multi_banked_glue { … … 35 36 _vhdl_testbench->add_input (PORT_READ( in_READ_IN_ADDRESS [i])); 36 37 _vhdl_testbench->add_input (PORT_READ(out_READ_IN_DATA [i])); 37 _vhdl_testbench->add_input (PORT_READ( in_READ_SELECT_VAL [i]));38 _vhdl_testbench->add_output(PORT_READ(out_READ_SELECT_ACK [i]));39 38 } 40 39 40 for (uint32_t i=0; i<_param._nb_bank; i++) 41 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) 42 for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port [j]; k++) 43 { 44 _vhdl_testbench->add_output(PORT_READ(out_READ_SELECT_VAL [i][j][k])); 45 _vhdl_testbench->add_input (PORT_READ( in_READ_SELECT_ACK [i][j][k])); 46 } 47 41 48 for (uint32_t i=0; i<_param._nb_bank; i++) 42 49 for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++) … … 54 61 _vhdl_testbench->add_input (PORT_READ( in_WRITE_IN_ADDRESS [i])); 55 62 _vhdl_testbench->add_input (PORT_READ( in_WRITE_IN_DATA [i])); 56 _vhdl_testbench->add_input (PORT_READ( in_WRITE_SELECT_VAL [i]));57 _vhdl_testbench->add_output(PORT_READ(out_WRITE_SELECT_ACK [i]));58 63 } 64 65 for (uint32_t i=0; i<_param._nb_bank; i++) 66 for (uint32_t j=0; j<_param._nb_port_write_by_bank; j++) 67 for (uint32_t k=0; k<_param._nb_port_select_by_bank_write_port [j]; k++) 68 { 69 _vhdl_testbench->add_output(PORT_READ(out_WRITE_SELECT_VAL [i][j][k])); 70 _vhdl_testbench->add_input (PORT_READ( in_WRITE_SELECT_ACK [i][j][k])); 71 } 59 72 60 73 for (uint32_t i=0; i<_param._nb_bank; i++) … … 80 93 }; // end namespace registerfile_multi_banked_glue 81 94 }; // end namespace registerfile_multi_banked 95 }; // end namespace registerfile 82 96 }; // end namespace generic 83 97 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 namespace registerfile_multi_banked_glue { … … 36 37 }; // end namespace registerfile_multi_banked_glue 37 38 }; // end namespace registerfile_multi_banked 39 }; // end namespace registerfile 38 40 }; // end namespace generic 39 41 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_add.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h" 10 10 11 11 #include <sstream> … … 15 15 namespace behavioural { 16 16 namespace generic { 17 namespace registerfile{ 17 18 namespace registerfile_multi_banked { 18 19 namespace registerfile_multi_banked_glue { … … 27 28 }; // end namespace registerfile_multi_banked_glue 28 29 }; // end namespace registerfile_multi_banked 30 }; // end namespace registerfile 29 31 }; // end namespace generic 30 32 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_print.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h" 10 10 11 11 #include <sstream> … … 15 15 namespace behavioural { 16 16 namespace generic { 17 namespace registerfile{ 17 18 namespace registerfile_multi_banked { 18 19 namespace registerfile_multi_banked_glue { … … 36 37 37 38 ostream& operator<< (ostream& output_stream , 38 morpheo::behavioural::generic::registerfile _multi_banked::registerfile_multi_banked_glue::Statistics & x)39 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::registerfile_multi_banked_glue::Statistics & x) 39 40 { 40 41 output_stream << x.print(0); … … 45 46 }; // end namespace registerfile_multi_banked_glue 46 47 }; // end namespace registerfile_multi_banked 48 }; // end namespace registerfile 47 49 }; // end namespace generic 48 50 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/Statistics_print_body.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/Statistics.h" 10 10 11 11 #include <sstream> … … 15 15 namespace behavioural { 16 16 namespace generic { 17 namespace registerfile{ 17 18 namespace registerfile_multi_banked { 18 19 namespace registerfile_multi_banked_glue { … … 35 36 }; // end namespace registerfile_multi_banked_glue 36 37 }; // end namespace registerfile_multi_banked 38 }; // end namespace registerfile 37 39 }; // end namespace generic 38 40 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/Makefile
r10 r15 8 8 9 9 #-----[ Directory ]---------------------------------------- 10 DIR_MORPHEO = ../../../.. 10 DIR_MORPHEO = ../../../../.. 11 11 12 12 LIBRARY = $(RegisterFile_Multi_Banked_LIBRARY) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/include/test.h
r10 r15 14 14 #include <iostream> 15 15 16 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"16 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 17 17 18 18 using namespace std; … … 20 20 using namespace morpheo::behavioural; 21 21 using namespace morpheo::behavioural::generic; 22 23 using namespace morpheo::behavioural::generic::registerfile _multi_banked;22 using namespace morpheo::behavioural::generic::registerfile; 23 using namespace morpheo::behavioural::generic::registerfile::registerfile_multi_banked; 24 24 25 25 void test (string name, 26 morpheo::behavioural::generic::registerfile _multi_banked::Parameters param);26 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters param); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/main.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/SelfTest/include/test.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/include/test.h" 9 9 10 10 #define NB_PARAMS 5 … … 46 46 try 47 47 { 48 morpheo::behavioural::generic::registerfile _multi_banked::Parameters param (nb_port_read ,49 50 51 52 48 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters param (nb_port_read , 49 nb_port_write, 50 nb_word , 51 size_word , 52 nb_bank ); 53 53 54 54 cout << param.print(1); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp
r10 r15 9 9 #define NB_ITERATION 1 10 10 11 #include "Behavioural/Generic/RegisterFile _Multi_Banked/SelfTest/include/test.h"11 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/include/test.h" 12 12 #include "Include/Test.h" 13 13 14 14 void test (string name, 15 morpheo::behavioural::generic::registerfile _multi_banked::Parameters _param)15 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters _param) 16 16 { 17 17 cout << "<" << name << "> : Simulation SystemC" << endl; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h
r10 r15 1 #ifndef morpheo_behavioural_generic_registerfile_ multi_banked_Parameters_h2 #define morpheo_behavioural_generic_registerfile_ multi_banked_Parameters_h1 #ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Parameters_h 2 #define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Parameters_h 3 3 4 4 /* … … 16 16 namespace behavioural { 17 17 namespace generic { 18 namespace registerfile { 18 19 namespace registerfile_multi_banked { 19 20 … … 43 44 public : string print (uint32_t depth); 44 45 public : friend ostream& operator<< (ostream& output_stream, 45 morpheo::behavioural::generic::registerfile _multi_banked::Parameters & x);46 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x); 46 47 }; 47 48 48 49 }; // end namespace registerfile_multi_banked 50 }; // end namespace registerfile 49 51 }; // end namespace generic 50 52 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h
r10 r15 1 #ifndef morpheo_behavioural_generic_registerfile_ multi_banked_RegisterFile_Multi_Banked_h2 #define morpheo_behavioural_generic_registerfile_ multi_banked_RegisterFile_Multi_Banked_h1 #ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_RegisterFile_Multi_Banked_h 2 #define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_RegisterFile_Multi_Banked_h 3 3 4 4 /* … … 17 17 #include "Include/Debug.h" 18 18 19 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Parameters.h"20 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Types.h"19 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h" 20 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h" 21 21 #ifdef STATISTICS 22 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Statistics.h"22 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h" 23 23 #endif 24 24 #ifdef VHDL … … 34 34 namespace behavioural { 35 35 namespace generic { 36 namespace registerfile { 36 37 namespace registerfile_multi_banked { 37 38 … … 129 130 130 131 }; // end namespace registerfile_multi_banked 132 }; // end namespace registerfile 131 133 }; // end namespace generic 132 134 }; // end namespace behavioural -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h
r10 r15 1 1 #ifdef STATISTICS 2 #ifndef morpheo_behavioural_generic_registerfile_ multi_banked_Statistics_h3 #define morpheo_behavioural_generic_registerfile_ multi_banked_Statistics_h2 #ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Statistics_h 3 #define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Statistics_h 4 4 5 5 /* … … 14 14 #include "Behavioural/include/Parameters_Statistics.h" 15 15 //#include "Behavioural/Generic/Group/include/Statistics.h" 16 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Parameters.h"16 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h" 17 17 18 18 //using namespace morpheo::behavioural::generic::group; … … 21 21 namespace behavioural { 22 22 namespace generic { 23 namespace registerfile { 23 24 namespace registerfile_multi_banked { 24 25 … … 47 48 48 49 }; // end namespace registerfile_multi_banked 50 }; // end namespace registerfile 49 51 }; // end namespace generic 50 52 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h
r10 r15 1 #ifndef morpheo_behavioural_generic_registerfile_ multi_banked_Type_h2 #define morpheo_behavioural_generic_registerfile_ multi_banked_Type_h1 #ifndef morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Type_h 2 #define morpheo_behavioural_generic_registerfile_registerfile_multi_banked_Type_h 3 3 4 4 /* … … 14 14 namespace behavioural { 15 15 namespace generic { 16 namespace registerfile { 16 17 namespace registerfile_multi_banked { 17 18 … … 20 21 21 22 }; // end namespace registerfile_multi_banked 23 }; // end namespace registerfile 22 24 }; // end namespace generic 23 25 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Parameters.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h" 9 9 10 10 namespace morpheo { 11 11 namespace behavioural { 12 12 namespace generic { 13 namespace registerfile { 13 14 namespace registerfile_multi_banked { 14 15 … … 51 52 52 53 }; // end namespace registerfile_multi_banked 54 }; // end namespace registerfile 53 55 }; // end namespace generic 54 56 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_msg_error.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Parameters.h"9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Types.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h" 9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Types.h" 10 10 #include <sstream> 11 11 using namespace std; … … 14 14 namespace behavioural { 15 15 namespace generic { 16 namespace registerfile { 16 17 namespace registerfile_multi_banked { 17 18 … … 81 82 82 83 }; // end namespace registerfile_multi_banked 84 }; // end namespace registerfile 83 85 }; // end namespace generic 84 86 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters_print.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Parameters.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h" 9 9 #include "Behavioural/include/XML.h" 10 10 using namespace std; … … 13 13 namespace behavioural { 14 14 namespace generic { 15 namespace registerfile{ 15 16 namespace registerfile_multi_banked { 16 17 … … 36 37 37 38 ostream& operator<< (ostream& output_stream , 38 morpheo::behavioural::generic::registerfile _multi_banked::Parameters & x)39 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters & x) 39 40 { 40 41 output_stream << x.print(0); … … 44 45 45 46 }; // end namespace registerfile_multi_banked 47 }; // end namespace registerfile 46 48 }; // end namespace generic 47 49 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 9 9 10 10 namespace morpheo { 11 11 namespace behavioural { 12 12 namespace generic { 13 namespace registerfile { 13 14 namespace registerfile_multi_banked { 14 15 … … 22 23 morpheo::behavioural::Parameters_Statistics param_statistics, 23 24 #endif 24 morpheo::behavioural::generic::registerfile _multi_banked::Parameters param ):25 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Parameters param ): 25 26 _name (name) 26 27 ,_param (param) … … 109 110 110 111 }; // end namespace registerfile_multi_banked 112 }; // end namespace registerfile 111 113 }; // end namespace generic 112 114 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 … … 74 75 75 76 }; // end namespace registerfile_multi_banked 77 }; // end namespace registerfile 76 78 }; // end namespace generic 77 79 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 … … 58 59 59 60 }; // end namespace registerfile_multi_banked 61 }; // end namespace registerfile 60 62 }; // end namespace generic 61 63 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile { 14 15 namespace registerfile_multi_banked { 15 16 … … 27 28 28 29 }; // end namespace registerfile_multi_banked 30 }; // end namespace registerfile 29 31 }; // end namespace generic 30 32 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp
r10 r15 8 8 */ 9 9 10 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"10 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 11 11 12 12 namespace morpheo { 13 13 namespace behavioural { 14 14 namespace generic { 15 namespace registerfile{ 15 16 namespace registerfile_multi_banked { 16 17 … … 32 33 33 34 }; // end namespace registerfile_multi_banked 35 }; // end namespace registerfile 34 36 }; // end namespace generic 35 37 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 10 10 #include "Behavioural/include/Vhdl.h" 11 11 … … 13 13 namespace behavioural { 14 14 namespace generic { 15 namespace registerfile{ 15 16 namespace registerfile_multi_banked { 16 17 … … 33 34 34 35 }; // end namespace registerfile_multi_banked 36 }; // end namespace registerfile 35 37 }; // end namespace generic 36 38 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 … … 23 24 24 25 }; // end namespace registerfile_multi_banked 26 }; // end namespace registerfile 25 27 }; // end namespace generic 26 28 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_declaration.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 … … 22 23 23 24 }; // end namespace registerfile_multi_banked 25 }; // end namespace registerfile 24 26 }; // end namespace generic 25 27 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_port.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile { 14 15 namespace registerfile_multi_banked { 15 16 … … 49 50 50 51 }; // end namespace registerfile_multi_banked 52 }; // end namespace registerfile 51 53 }; // end namespace generic 52 54 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_label.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 9 9 10 10 namespace morpheo { 11 11 namespace behavioural { 12 12 namespace generic { 13 namespace registerfile{ 13 14 namespace registerfile_multi_banked { 14 15 15 16 16 void RegisterFile_Multi_Banked::vhdl_testbench_label (string label) … … 26 26 27 27 }; // end namespace registerfile_multi_banked 28 }; // end namespace registerfile 28 29 }; // end namespace generic 29 30 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_testbench_transition.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/RegisterFile_Multi_Banked.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 … … 58 59 59 60 }; // end namespace registerfile_multi_banked 61 }; // end namespace registerfile 60 62 }; // end namespace generic 61 63 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h" 10 10 11 11 namespace morpheo { 12 12 namespace behavioural { 13 13 namespace generic { 14 namespace registerfile{ 14 15 namespace registerfile_multi_banked { 15 16 … … 33 34 }; 34 35 36 }; // end namespace registerfile 35 37 }; // end namespace registerfile_multi_banked 36 38 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_add.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h" 10 10 11 11 #include <sstream> … … 15 15 namespace behavioural { 16 16 namespace generic { 17 namespace registerfile{ 17 18 namespace registerfile_multi_banked { 18 19 … … 25 26 26 27 }; // end namespace registerfile_multi_banked 28 }; // end namespace registerfile 27 29 }; // end namespace generic 28 30 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h" 10 10 11 11 #include <sstream> … … 15 15 namespace behavioural { 16 16 namespace generic { 17 namespace registerfile{ 17 18 namespace registerfile_multi_banked { 18 19 … … 35 36 36 37 ostream& operator<< (ostream& output_stream , 37 morpheo::behavioural::generic::registerfile _multi_banked::Statistics & x)38 morpheo::behavioural::generic::registerfile::registerfile_multi_banked::Statistics & x) 38 39 { 39 40 output_stream << x.print(0); … … 43 44 44 45 }; // end namespace registerfile_multi_banked 46 }; // end namespace registerfile 45 47 }; // end namespace generic 46 48 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Statistics_print_body.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/RegisterFile _Multi_Banked/include/Statistics.h"9 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Statistics.h" 10 10 11 11 #include <sstream> … … 15 15 namespace behavioural { 16 16 namespace generic { 17 namespace registerfile{ 17 18 namespace registerfile_multi_banked { 18 19 … … 33 34 34 35 }; // end namespace registerfile_multi_banked 36 }; // end namespace registerfile 35 37 }; // end namespace generic 36 38 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile
r10 r15 11 11 12 12 #-----[ Library ]------------------------------------------ 13 LIBRARY = $(DIR_LIB)/lib Priority_Fixed.a13 LIBRARY = $(DIR_LIB)/libSelect_Priority_Fixed.a 14 14 15 15 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/Makefile.deps
r10 r15 12 12 endif 13 13 14 Priority_Fixed = yes14 Select_Priority_Fixed = yes 15 15 16 16 #-----[ Library ]------------------------------------------ 17 Priority_Fixed_LIBRARY = -lPriority_Fixed \17 Select_Priority_Fixed_LIBRARY = -lSelect_Priority_Fixed \ 18 18 $(Behavioural_LIBRARY) 19 19 20 Priority_Fixed_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/Select/Priority_Fixed/lib \20 Select_Priority_Fixed_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/Select/Select_Priority_Fixed/lib \ 21 21 $(Behavioural_DIR_LIBRARY) 22 22 23 23 #-----[ Rules ]-------------------------------------------- 24 24 25 Priority_Fixed_library :25 Select_Priority_Fixed_library : 26 26 @$(MAKE) Behavioural_library 27 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Select/ Priority_Fixed --makefile=Makefile27 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Select/Select_Priority_Fixed --makefile=Makefile 28 28 29 Priority_Fixed_library_clean :29 Select_Priority_Fixed_library_clean : 30 30 @$(MAKE) Behavioural_library_clean 31 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Select/ Priority_Fixed --makefile=Makefile clean31 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Select/Select_Priority_Fixed --makefile=Makefile clean -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/Makefile
r10 r15 10 10 DIR_MORPHEO = ../../../../.. 11 11 12 LIBRARY = $( Priority_Fixed_LIBRARY)12 LIBRARY = $(Select_Priority_Fixed_LIBRARY) 13 13 14 DIR_LIBRARY = $( Priority_Fixed_DIR_LIBRARY)14 DIR_LIBRARY = $(Select_Priority_Fixed_DIR_LIBRARY) 15 15 16 16 #-----[ include ]------------------------------------------ … … 19 19 @$(MAKE) all_selftest 20 20 21 library : Priority_Fixed_library21 library : Select_Priority_Fixed_library 22 22 23 library_clean : Priority_Fixed_library_clean23 library_clean : Select_Priority_Fixed_library_clean 24 24 25 25 include ../Makefile.deps -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/configuration.cfg
r10 r15 1 Priority_Fixed1 Select_Priority_Fixed 2 2 2 16 *2 # nb_entity 3 3 0 1 +1 # encoding_one_hot -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/include/test.h
r10 r15 14 14 #include <iostream> 15 15 16 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"16 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 17 17 18 18 using namespace std; … … 22 22 using namespace morpheo::behavioural::generic::select; 23 23 24 using namespace morpheo::behavioural::generic::select:: priority_fixed;24 using namespace morpheo::behavioural::generic::select::select_priority_fixed; 25 25 26 26 void test (string name, 27 morpheo::behavioural::generic::select:: priority_fixed::Parameters param);27 morpheo::behavioural::generic::select::select_priority_fixed::Parameters param); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/mkf.info
r10 r15 1 1 2 # Priority_Fixed_03 target_dep all Priority_Fixed_0.ngc4 target_dep Priority_Fixed_0.ngcPriority_Fixed_0.prj5 target_dep Priority_Fixed_0.prj Priority_Fixed_0_Pack.vhdlPriority_Fixed_0.vhdl2 # Select_Priority_Fixed_0 3 target_dep all Select_Priority_Fixed_0.ngc 4 target_dep Select_Priority_Fixed_0.ngc Select_Priority_Fixed_0.prj 5 target_dep Select_Priority_Fixed_0.prj Select_Priority_Fixed_0_Pack.vhdl Select_Priority_Fixed_0.vhdl 6 6 7 # Priority_Fixed_18 target_dep all Priority_Fixed_1.ngc9 target_dep Priority_Fixed_1.ngcPriority_Fixed_1.prj10 target_dep Priority_Fixed_1.prj Priority_Fixed_1_Pack.vhdlPriority_Fixed_1.vhdl7 # Select_Priority_Fixed_1 8 target_dep all Select_Priority_Fixed_1.ngc 9 target_dep Select_Priority_Fixed_1.ngc Select_Priority_Fixed_1.prj 10 target_dep Select_Priority_Fixed_1.prj Select_Priority_Fixed_1_Pack.vhdl Select_Priority_Fixed_1.vhdl 11 11 12 # Priority_Fixed_213 target_dep all Priority_Fixed_2.ngc14 target_dep Priority_Fixed_2.ngcPriority_Fixed_2.prj15 target_dep Priority_Fixed_2.prj Priority_Fixed_2_Pack.vhdlPriority_Fixed_2.vhdl12 # Select_Priority_Fixed_2 13 target_dep all Select_Priority_Fixed_2.ngc 14 target_dep Select_Priority_Fixed_2.ngc Select_Priority_Fixed_2.prj 15 target_dep Select_Priority_Fixed_2.prj Select_Priority_Fixed_2_Pack.vhdl Select_Priority_Fixed_2.vhdl 16 16 17 # Priority_Fixed_318 target_dep all Priority_Fixed_3.ngc19 target_dep Priority_Fixed_3.ngcPriority_Fixed_3.prj20 target_dep Priority_Fixed_3.prj Priority_Fixed_3_Pack.vhdlPriority_Fixed_3.vhdl17 # Select_Priority_Fixed_3 18 target_dep all Select_Priority_Fixed_3.ngc 19 target_dep Select_Priority_Fixed_3.ngc Select_Priority_Fixed_3.prj 20 target_dep Select_Priority_Fixed_3.prj Select_Priority_Fixed_3_Pack.vhdl Select_Priority_Fixed_3.vhdl 21 21 22 # Priority_Fixed_423 target_dep all Priority_Fixed_4.ngc24 target_dep Priority_Fixed_4.ngcPriority_Fixed_4.prj25 target_dep Priority_Fixed_4.prj Priority_Fixed_4_Pack.vhdlPriority_Fixed_4.vhdl22 # Select_Priority_Fixed_4 23 target_dep all Select_Priority_Fixed_4.ngc 24 target_dep Select_Priority_Fixed_4.ngc Select_Priority_Fixed_4.prj 25 target_dep Select_Priority_Fixed_4.prj Select_Priority_Fixed_4_Pack.vhdl Select_Priority_Fixed_4.vhdl 26 26 27 # Priority_Fixed_528 target_dep all Priority_Fixed_5.ngc29 target_dep Priority_Fixed_5.ngcPriority_Fixed_5.prj30 target_dep Priority_Fixed_5.prj Priority_Fixed_5_Pack.vhdlPriority_Fixed_5.vhdl27 # Select_Priority_Fixed_5 28 target_dep all Select_Priority_Fixed_5.ngc 29 target_dep Select_Priority_Fixed_5.ngc Select_Priority_Fixed_5.prj 30 target_dep Select_Priority_Fixed_5.prj Select_Priority_Fixed_5_Pack.vhdl Select_Priority_Fixed_5.vhdl 31 31 32 # Priority_Fixed_633 target_dep all Priority_Fixed_6.ngc34 target_dep Priority_Fixed_6.ngcPriority_Fixed_6.prj35 target_dep Priority_Fixed_6.prj Priority_Fixed_6_Pack.vhdlPriority_Fixed_6.vhdl32 # Select_Priority_Fixed_6 33 target_dep all Select_Priority_Fixed_6.ngc 34 target_dep Select_Priority_Fixed_6.ngc Select_Priority_Fixed_6.prj 35 target_dep Select_Priority_Fixed_6.prj Select_Priority_Fixed_6_Pack.vhdl Select_Priority_Fixed_6.vhdl 36 36 37 # Priority_Fixed_738 target_dep all Priority_Fixed_7.ngc39 target_dep Priority_Fixed_7.ngcPriority_Fixed_7.prj40 target_dep Priority_Fixed_7.prj Priority_Fixed_7_Pack.vhdlPriority_Fixed_7.vhdl37 # Select_Priority_Fixed_7 38 target_dep all Select_Priority_Fixed_7.ngc 39 target_dep Select_Priority_Fixed_7.ngc Select_Priority_Fixed_7.prj 40 target_dep Select_Priority_Fixed_7.prj Select_Priority_Fixed_7_Pack.vhdl Select_Priority_Fixed_7.vhdl 41 41 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/main.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Select/ Priority_Fixed/SelfTest/include/test.h"8 #include "Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/include/test.h" 9 9 10 10 #define NB_PARAMS 3 … … 42 42 try 43 43 { 44 morpheo::behavioural::generic::select:: priority_fixed::Parameters param (nb_entity ,44 morpheo::behavioural::generic::select::select_priority_fixed::Parameters param (nb_entity , 45 45 encoding_one_hot, 46 46 encoding_compact); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/test.cpp
r10 r15 9 9 #define NB_ITERATION 512 10 10 11 #include "Behavioural/Generic/Select/ Priority_Fixed/SelfTest/include/test.h"11 #include "Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/include/test.h" 12 12 #include "Include/Test.h" 13 13 14 14 void test (string name, 15 morpheo::behavioural::generic::select:: priority_fixed::Parameters _param)15 morpheo::behavioural::generic::select::select_priority_fixed::Parameters _param) 16 16 { 17 17 cout << "<" << name << "> : Simulation SystemC" << endl; 18 18 19 Priority_Fixed * _Priority_Fixed = newPriority_Fixed (name.c_str(),19 Select_Priority_Fixed * _Select_Priority_Fixed = new Select_Priority_Fixed (name.c_str(), 20 20 #ifdef STATISTICS 21 21 morpheo::behavioural::Parameters_Statistics(5,50), … … 28 28 *********************************************************************/ 29 29 sc_clock * CLOCK ; 30 sc_signal<Tcontrol_t> * NRESET; 30 31 sc_signal<Tcontrol_t> ** VAL ; 31 32 sc_signal<Tcontrol_t> ** ACK ; … … 36 37 37 38 CLOCK = new sc_clock ("clock", 1.0, 0.5); 39 NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 38 40 VAL = new sc_signal<Tcontrol_t> * [_param._nb_entity]; 39 41 ACK = new sc_signal<Tcontrol_t> * [_param._nb_entity]; … … 54 56 ********************************************************/ 55 57 56 cout << "<" << name << "> Instanciation of _ Priority_Fixed" << endl;58 cout << "<" << name << "> Instanciation of _Select_Priority_Fixed" << endl; 57 59 58 (*(_Priority_Fixed->in_CLOCK)) (*(CLOCK)); 60 (*(_Select_Priority_Fixed->in_CLOCK )) (*(CLOCK )); 61 (*(_Select_Priority_Fixed->in_NRESET)) (*(NRESET)); 62 59 63 for (uint32_t i=0; i<_param._nb_entity; i++) 60 64 { 61 (*(_ Priority_Fixed-> in_VAL [i])) (*(VAL [i]));65 (*(_Select_Priority_Fixed-> in_VAL [i])) (*(VAL [i])); 62 66 if (_param._encoding_one_hot) 63 (*(_ Priority_Fixed->out_ACK [i])) (*(ACK [i]));67 (*(_Select_Priority_Fixed->out_ACK [i])) (*(ACK [i])); 64 68 } 65 69 if (_param._encoding_compact) 66 70 { 67 (*(_ Priority_Fixed->out_ENTITY )) (*(ENTITY ));68 (*(_ Priority_Fixed->out_ENTITY_ACK)) (*(ENTITY_ACK));71 (*(_Select_Priority_Fixed->out_ENTITY )) (*(ENTITY )); 72 (*(_Select_Priority_Fixed->out_ENTITY_ACK)) (*(ENTITY_ACK)); 69 73 } 70 74 /******************************************************** … … 86 90 87 91 sc_start(0); 88 //_ Priority_Fixed->vhdl_testbench_label("Initialisation");92 //_Select_Priority_Fixed->vhdl_testbench_label("Initialisation"); 89 93 //cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl; 90 94 91 _ Priority_Fixed->vhdl_testbench_label("Loop of Test");95 _Select_Priority_Fixed->vhdl_testbench_label("Loop of Test"); 92 96 cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Loop of Test" << endl; 93 97 94 98 for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++) 95 99 { 96 _ Priority_Fixed->vhdl_testbench_label("Iteration "+toString(iteration));100 _Select_Priority_Fixed->vhdl_testbench_label("Iteration "+toString(iteration)); 97 101 98 102 entity = 0; … … 133 137 cout << "<" << name << "> ............ Stop Simulation" << endl; 134 138 139 delete CLOCK; 140 delete NRESET; 135 141 136 137 delete CLOCK; 138 142 for (uint32_t i=0; i<_param._nb_entity; i++) 143 { 144 delete VAL [i]; 145 delete ACK [i]; 146 } 147 148 delete VAL ; 149 delete ACK ; 150 delete ENTITY ; 151 delete ENTITY_ACK; 139 152 #endif 140 153 141 delete _ Priority_Fixed;154 delete _Select_Priority_Fixed; 142 155 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h
r10 r15 1 #ifndef morpheo_behavioural_generic_select_ priority_fixed_Parameters_h2 #define morpheo_behavioural_generic_select_ priority_fixed_Parameters_h1 #ifndef morpheo_behavioural_generic_select_select_priority_fixed_Parameters_h 2 #define morpheo_behavioural_generic_select_select_priority_fixed_Parameters_h 3 3 4 4 /* … … 17 17 namespace generic { 18 18 namespace select { 19 namespace priority_fixed {19 namespace select_priority_fixed { 20 20 21 21 class Parameters : public morpheo::behavioural::Parameters … … 38 38 public : string print (uint32_t depth); 39 39 public : friend ostream& operator<< (ostream& output_stream, 40 morpheo::behavioural::generic::select:: priority_fixed::Parameters & x);40 morpheo::behavioural::generic::select::select_priority_fixed::Parameters & x); 41 41 }; 42 42 43 }; // end namespace priority_fixed43 }; // end namespace select_priority_fixed 44 44 }; // end namespace select 45 45 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h
r10 r15 1 #ifndef morpheo_behavioural_generic_select_ priority_fixed_Priority_Fixed_h2 #define morpheo_behavioural_generic_select_ priority_fixed_Priority_Fixed_h1 #ifndef morpheo_behavioural_generic_select_select_priority_fixed_Select_Priority_Fixed_h 2 #define morpheo_behavioural_generic_select_select_priority_fixed_Select_Priority_Fixed_h 3 3 4 4 /* … … 17 17 #include "Include/Debug.h" 18 18 19 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Parameters.h"20 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Types.h"19 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h" 20 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h" 21 21 #ifdef STATISTICS 22 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Statistics.h"22 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h" 23 23 #endif 24 24 #ifdef VHDL … … 35 35 namespace generic { 36 36 namespace select { 37 namespace priority_fixed {37 namespace select_priority_fixed { 38 38 39 39 40 class Priority_Fixed40 class Select_Priority_Fixed 41 41 #if SYSTEMC 42 42 : public sc_module … … 65 65 66 66 public : SC_CLOCK * in_CLOCK ; 67 public : SC_IN (Tcontrol_t) * in_NRESET ; 68 67 69 public : SC_IN (Tcontrol_t) ** in_VAL ; 68 70 public : SC_OUT(Tcontrol_t) ** out_ACK ; … … 80 82 81 83 #ifdef SYSTEMC 82 SC_HAS_PROCESS ( Priority_Fixed);84 SC_HAS_PROCESS (Select_Priority_Fixed); 83 85 #endif 84 public : Priority_Fixed (86 public : Select_Priority_Fixed ( 85 87 #ifdef SYSTEMC 86 88 sc_module_name name, … … 93 95 Parameters param ); 94 96 95 public : Priority_Fixed (Parameters param );96 public : ~ Priority_Fixed (void);97 public : Select_Priority_Fixed (Parameters param ); 98 public : ~Select_Priority_Fixed (void); 97 99 98 100 #ifdef SYSTEMC … … 122 124 }; 123 125 124 }; // end namespace priority_fixed126 }; // end namespace select_priority_fixed 125 127 }; // end namespace select 126 128 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h
r10 r15 1 1 #ifdef STATISTICS 2 #ifndef morpheo_behavioural_generic_select_ priority_fixed_Statistics_h3 #define morpheo_behavioural_generic_select_ priority_fixed_Statistics_h2 #ifndef morpheo_behavioural_generic_select_select_priority_fixed_Statistics_h 3 #define morpheo_behavioural_generic_select_select_priority_fixed_Statistics_h 4 4 5 5 /* … … 14 14 #include "Behavioural/include/Parameters_Statistics.h" 15 15 //#include "Behavioural/Generic/Group/include/Statistics.h" 16 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Parameters.h"16 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h" 17 17 18 18 //using namespace morpheo::behavioural::generic::group; … … 22 22 namespace generic { 23 23 namespace select { 24 namespace priority_fixed {24 namespace select_priority_fixed { 25 25 26 26 … … 47 47 }; 48 48 49 }; // end namespace priority_fixed49 }; // end namespace select_priority_fixed 50 50 }; // end namespace select 51 51 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h
r10 r15 1 #ifndef morpheo_behavioural_generic_select_ priority_fixed_Type_h2 #define morpheo_behavioural_generic_select_ priority_fixed_Type_h1 #ifndef morpheo_behavioural_generic_select_select_priority_fixed_Type_h 2 #define morpheo_behavioural_generic_select_select_priority_fixed_Type_h 3 3 4 4 /* … … 15 15 namespace generic { 16 16 namespace select { 17 namespace priority_fixed {17 namespace select_priority_fixed { 18 18 19 19 typedef uint32_t Tentity_t; 20 20 21 }; // end namespace priority_fixed21 }; // end namespace select_priority_fixed 22 22 }; // end namespace select 23 23 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Parameters.h"8 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h" 9 9 10 10 namespace morpheo { … … 12 12 namespace generic { 13 13 namespace select { 14 namespace priority_fixed {14 namespace select_priority_fixed { 15 15 16 16 … … 23 23 _size_entity (static_cast<uint32_t> (ceil(log2(nb_entity)))) 24 24 { 25 log_printf(FUNC, Priority_Fixed,"Parameters","Begin");25 log_printf(FUNC,Select_Priority_Fixed,"Parameters","Begin"); 26 26 test(); 27 log_printf(FUNC, Priority_Fixed,"Parameters","End");27 log_printf(FUNC,Select_Priority_Fixed,"Parameters","End"); 28 28 }; 29 29 … … 34 34 _size_entity (param._size_entity ) 35 35 { 36 log_printf(FUNC, Priority_Fixed,"Parameters","Begin");36 log_printf(FUNC,Select_Priority_Fixed,"Parameters","Begin"); 37 37 test(); 38 log_printf(FUNC, Priority_Fixed,"Parameters","End");38 log_printf(FUNC,Select_Priority_Fixed,"Parameters","End"); 39 39 }; 40 40 41 41 Parameters::~Parameters () 42 42 { 43 log_printf(FUNC, Priority_Fixed,"~Parameters","Begin");44 log_printf(FUNC, Priority_Fixed,"~Parameters","End");43 log_printf(FUNC,Select_Priority_Fixed,"~Parameters","Begin"); 44 log_printf(FUNC,Select_Priority_Fixed,"~Parameters","End"); 45 45 }; 46 46 47 }; // end namespace priority_fixed47 }; // end namespace select_priority_fixed 48 48 }; // end namespace select 49 49 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_msg_error.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Parameters.h"9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Types.h"8 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h" 9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h" 10 10 #include <sstream> 11 11 using namespace std; … … 15 15 namespace generic { 16 16 namespace select { 17 namespace priority_fixed {17 namespace select_priority_fixed { 18 18 19 19 20 20 string Parameters::msg_error(void) 21 21 { 22 log_printf(FUNC, Priority_Fixed,"msg_error","Begin");22 log_printf(FUNC,Select_Priority_Fixed,"msg_error","Begin"); 23 23 24 24 string msg = ""; … … 33 33 return msg; 34 34 35 log_printf(FUNC, Priority_Fixed,"msg_error","End");35 log_printf(FUNC,Select_Priority_Fixed,"msg_error","End"); 36 36 }; 37 37 38 }; // end namespace priority_fixed38 }; // end namespace select_priority_fixed 39 39 }; // end namespace select 40 40 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters_print.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Parameters.h"8 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h" 9 9 #include "Behavioural/include/XML.h" 10 10 using namespace std; … … 14 14 namespace generic { 15 15 namespace select { 16 namespace priority_fixed {16 namespace select_priority_fixed { 17 17 18 18 string Parameters::print (uint32_t depth) 19 19 { 20 log_printf(FUNC, Priority_Fixed,"print","Begin");20 log_printf(FUNC,Select_Priority_Fixed,"print","Begin"); 21 21 22 XML xml (" priority_fixed");22 XML xml ("select_priority_fixed"); 23 23 24 xml.balise_open(" priority_fixed");24 xml.balise_open("select_priority_fixed"); 25 25 xml.singleton_begin("nb_entity "); xml.attribut("value",toString(_nb_entity )); xml.singleton_end(); 26 26 xml.singleton_begin("encoding_one_hot"); xml.attribut("value",toString(_encoding_one_hot)); xml.singleton_end(); … … 28 28 xml.balise_close(); 29 29 30 log_printf(FUNC, Priority_Fixed,"print","End");30 log_printf(FUNC,Select_Priority_Fixed,"print","End"); 31 31 32 32 return xml.get_body(depth); … … 34 34 35 35 ostream& operator<< (ostream& output_stream , 36 morpheo::behavioural::generic::select:: priority_fixed::Parameters & x)36 morpheo::behavioural::generic::select::select_priority_fixed::Parameters & x) 37 37 { 38 38 output_stream << x.print(0); … … 41 41 }; 42 42 43 }; // end namespace priority_fixed43 }; // end namespace select_priority_fixed 44 44 }; // end namespace select 45 45 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"8 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 9 9 10 10 namespace morpheo { … … 12 12 namespace generic { 13 13 namespace select { 14 namespace priority_fixed {14 namespace select_priority_fixed { 15 15 16 16 17 17 #ifdef SYSTEMC 18 Priority_Fixed::Priority_Fixed (sc_module_name name,18 Select_Priority_Fixed::Select_Priority_Fixed (sc_module_name name, 19 19 #else 20 Priority_Fixed::Priority_Fixed (string name,20 Select_Priority_Fixed::Select_Priority_Fixed (string name, 21 21 #endif 22 22 #ifdef STATISTICS 23 23 morpheo::behavioural::Parameters_Statistics param_statistics, 24 24 #endif 25 morpheo::behavioural::generic::select:: priority_fixed::Parameters param ):25 morpheo::behavioural::generic::select::select_priority_fixed::Parameters param ): 26 26 _name (name) 27 27 ,_param (param) … … 30 30 // #endif 31 31 { 32 log_printf(FUNC, Priority_Fixed,"Priority_Fixed","Begin");32 log_printf(FUNC,Select_Priority_Fixed,"Select_Priority_Fixed","Begin"); 33 33 34 34 #ifdef STATISTICS 35 log_printf(INFO, Priority_Fixed,"Priority_Fixed","Allocation of statistics");35 log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Allocation of statistics"); 36 36 37 37 // Allocation of statistics … … 42 42 43 43 #ifdef VHDL_TESTBENCH 44 log_printf(INFO, Priority_Fixed,"Priority_Fixed","Creation of a testbench");44 log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Creation of a testbench"); 45 45 46 46 // Creation of a testbench … … 53 53 #ifdef VHDL 54 54 // generate the vhdl 55 log_printf(INFO, Priority_Fixed,"Priority_Fixed","Generate the vhdl");55 log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Generate the vhdl"); 56 56 57 57 vhdl(); … … 59 59 60 60 #ifdef VHDL_TESTBENCH 61 _vhdl_testbench->set_clock ("in_CLOCK", false);61 _vhdl_testbench->set_clock ("in_CLOCK",true); 62 62 #endif 63 63 64 64 #ifdef SYSTEMC 65 log_printf(INFO, Priority_Fixed,"Priority_Fixed","Allocation");65 log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Allocation"); 66 66 67 67 allocation (); 68 68 69 69 #if defined(STATISTICS) or defined(VHDL_TESTBENCH) 70 log_printf(INFO, Priority_Fixed,"Priority_Fixed","Method - transition");70 log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Method - transition"); 71 71 72 72 SC_METHOD (transition); … … 75 75 #endif 76 76 77 log_printf(INFO, Priority_Fixed,"Priority_Fixed","Method - genMealy_entity");77 log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Method - genMealy_entity"); 78 78 79 79 SC_METHOD (genMealy_entity); … … 100 100 101 101 #endif 102 log_printf(FUNC, Priority_Fixed,"Priority_Fixed","End");102 log_printf(FUNC,Select_Priority_Fixed,"Select_Priority_Fixed","End"); 103 103 }; 104 104 105 Priority_Fixed::~Priority_Fixed (void)105 Select_Priority_Fixed::~Select_Priority_Fixed (void) 106 106 { 107 log_printf(FUNC, Priority_Fixed,"~Priority_Fixed","Begin");107 log_printf(FUNC,Select_Priority_Fixed,"~Select_Priority_Fixed","Begin"); 108 108 109 109 #ifdef VHDL_TESTBENCH 110 log_printf(INFO, Priority_Fixed,"~Priority_Fixed","Generate Testbench file");110 log_printf(INFO,Select_Priority_Fixed,"~Select_Priority_Fixed","Generate Testbench file"); 111 111 112 112 // generate the test bench … … 116 116 117 117 #ifdef STATISTICS 118 log_printf(INFO, Priority_Fixed,"~Priority_Fixed","Generate Statistics file");118 log_printf(INFO,Select_Priority_Fixed,"~Select_Priority_Fixed","Generate Statistics file"); 119 119 120 120 _stat->generate_file(statistics(0)); … … 124 124 125 125 #ifdef SYSTEMC 126 log_printf(INFO, Priority_Fixed,"~Priority_Fixed","Deallocation");126 log_printf(INFO,Select_Priority_Fixed,"~Select_Priority_Fixed","Deallocation"); 127 127 128 128 deallocation (); 129 129 #endif 130 130 131 log_printf(FUNC, Priority_Fixed,"~Priority_Fixed","End");131 log_printf(FUNC,Select_Priority_Fixed,"~Select_Priority_Fixed","End"); 132 132 }; 133 133 134 }; // end namespace priority_fixed134 }; // end namespace select_priority_fixed 135 135 }; // end namespace select 136 136 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_allocation.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace select { 15 namespace priority_fixed {15 namespace select_priority_fixed { 16 16 17 17 18 void Priority_Fixed::allocation (void)18 void Select_Priority_Fixed::allocation (void) 19 19 { 20 20 string rename; 21 21 22 log_printf(FUNC, Priority_Fixed,"allocation","Begin");22 log_printf(FUNC,Select_Priority_Fixed,"allocation","Begin"); 23 23 24 #if defined(STATISTICS) or defined(VHDL_TESTBENCH) 25 in_CLOCK = new SC_CLOCK ("in_CLOCK"); 26 #endif 27 24 in_CLOCK = new SC_CLOCK ("in_CLOCK "); 25 in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET"); 26 28 27 in_VAL = new SC_IN (Tcontrol_t) * [_param._nb_entity]; 29 28 if (_param._encoding_one_hot) … … 49 48 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50 49 51 log_printf(FUNC, Priority_Fixed,"allocation","End");50 log_printf(FUNC,Select_Priority_Fixed,"allocation","End"); 52 51 }; 53 52 54 }; // end namespace priority_fixed53 }; // end namespace select_priority_fixed 55 54 }; // end namespace select 56 55 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_deallocation.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace select { 15 namespace priority_fixed {15 namespace select_priority_fixed { 16 16 17 17 18 void Priority_Fixed::deallocation (void)18 void Select_Priority_Fixed::deallocation (void) 19 19 { 20 log_printf(FUNC, Priority_Fixed,"deallocation","Begin");20 log_printf(FUNC,Select_Priority_Fixed,"deallocation","Begin"); 21 21 22 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH)23 22 delete in_CLOCK; 24 //#endif 23 delete in_NRESET; 25 24 26 25 for (uint32_t i=0; i<_param._nb_entity; i++) … … 41 40 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 41 43 log_printf(FUNC, Priority_Fixed,"deallocation","End");42 log_printf(FUNC,Select_Priority_Fixed,"deallocation","End"); 44 43 }; 45 44 46 }; // end namespace priority_fixed45 }; // end namespace select_priority_fixed 47 46 }; // end namespace select 48 47 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_genMealy_entity.cpp
r10 r15 8 8 */ 9 9 10 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"10 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 11 11 12 12 namespace morpheo { … … 14 14 namespace generic { 15 15 namespace select { 16 namespace priority_fixed {16 namespace select_priority_fixed { 17 17 18 18 19 void Priority_Fixed::genMealy_entity (void)19 void Select_Priority_Fixed::genMealy_entity (void) 20 20 { 21 log_printf(FUNC, Priority_Fixed,"genMealy_entity","Begin");21 log_printf(FUNC,Select_Priority_Fixed,"genMealy_entity","Begin"); 22 22 23 23 // init … … 31 31 ack [i] = 0; 32 32 33 log_printf(TRACE, Priority_Fixed,"genMealy_entity","Scearch...");33 log_printf(TRACE,Select_Priority_Fixed,"genMealy_entity","Scearch..."); 34 34 for (entity=0; entity<_param._nb_entity; entity++) 35 35 { 36 36 if (PORT_READ(in_VAL [entity]) == 1) 37 37 { 38 log_printf(TRACE, Priority_Fixed,"genMealy_entity","Find! entity %d",entity);38 log_printf(TRACE,Select_Priority_Fixed,"genMealy_entity","Find! entity %d",entity); 39 39 if (_param._encoding_one_hot) 40 40 ack [entity] = 1; … … 54 54 PORT_WRITE(out_ENTITY_ACK, find ); 55 55 } 56 log_printf(FUNC, Priority_Fixed,"genMealy_entity","End");56 log_printf(FUNC,Select_Priority_Fixed,"genMealy_entity","End"); 57 57 }; 58 58 59 }; // end namespace priority_fixed59 }; // end namespace select_priority_fixed 60 60 }; // end namespace select 61 61 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_statistics.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace select { 15 namespace priority_fixed {15 namespace select_priority_fixed { 16 16 17 17 18 string Priority_Fixed::statistics (uint32_t depth)18 string Select_Priority_Fixed::statistics (uint32_t depth) 19 19 { 20 log_printf(FUNC, Priority_Fixed,"statistics","Begin");20 log_printf(FUNC,Select_Priority_Fixed,"statistics","Begin"); 21 21 22 22 string txt = _stat->print(depth); 23 23 24 log_printf(FUNC, Priority_Fixed,"statistics","End");24 log_printf(FUNC,Select_Priority_Fixed,"statistics","End"); 25 25 26 26 return txt; 27 27 }; 28 28 29 }; // end namespace priority_fixed29 }; // end namespace select_priority_fixed 30 30 }; // end namespace select 31 31 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_transition.cpp
r10 r15 8 8 */ 9 9 10 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"10 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 11 11 12 12 namespace morpheo { … … 14 14 namespace generic { 15 15 namespace select { 16 namespace priority_fixed {16 namespace select_priority_fixed { 17 17 18 18 19 void Priority_Fixed::transition (void)19 void Select_Priority_Fixed::transition (void) 20 20 { 21 log_printf(FUNC, Priority_Fixed,"transition","Begin");21 log_printf(FUNC,Select_Priority_Fixed,"transition","Begin"); 22 22 23 23 #ifdef STATISTICS … … 29 29 #endif 30 30 31 log_printf(FUNC, Priority_Fixed,"transition","End");31 log_printf(FUNC,Select_Priority_Fixed,"transition","End"); 32 32 }; 33 33 34 }; // end namespace priority_fixed34 }; // end namespace select_priority_fixed 35 35 }; // end namespace select 36 36 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 10 10 #include "Behavioural/include/Vhdl.h" 11 11 … … 14 14 namespace generic { 15 15 namespace select { 16 namespace priority_fixed {16 namespace select_priority_fixed { 17 17 18 18 19 void Priority_Fixed::vhdl (void)19 void Select_Priority_Fixed::vhdl (void) 20 20 { 21 log_printf(FUNC, Priority_Fixed,"vhdl","Begin");21 log_printf(FUNC,Select_Priority_Fixed,"vhdl","Begin"); 22 22 Vhdl vhdl (_name); 23 23 … … 29 29 30 30 vhdl.generate_file(); 31 log_printf(FUNC, Priority_Fixed,"vhdl","End");31 log_printf(FUNC,Select_Priority_Fixed,"vhdl","End"); 32 32 33 33 }; 34 34 35 }; // end namespace priority_fixed35 }; // end namespace select_priority_fixed 36 36 }; // end namespace select 37 37 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_body.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace select { 15 namespace priority_fixed {15 namespace select_priority_fixed { 16 16 17 17 18 void Priority_Fixed::vhdl_body (Vhdl & vhdl)18 void Select_Priority_Fixed::vhdl_body (Vhdl & vhdl) 19 19 { 20 log_printf(FUNC, Priority_Fixed,"vhdl_body","Begin");20 log_printf(FUNC,Select_Priority_Fixed,"vhdl_body","Begin"); 21 21 vhdl.set_body (""); 22 22 … … 42 42 } 43 43 44 log_printf(FUNC, Priority_Fixed,"vhdl_body","End");44 log_printf(FUNC,Select_Priority_Fixed,"vhdl_body","End"); 45 45 }; 46 46 47 }; // end namespace priority_fixed47 }; // end namespace select_priority_fixed 48 48 }; // end namespace select 49 49 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_declaration.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace select { 15 namespace priority_fixed {15 namespace select_priority_fixed { 16 16 17 17 18 void Priority_Fixed::vhdl_declaration (Vhdl & vhdl)18 void Select_Priority_Fixed::vhdl_declaration (Vhdl & vhdl) 19 19 { 20 log_printf(FUNC, Priority_Fixed,"vhdl_declaration","Begin");20 log_printf(FUNC,Select_Priority_Fixed,"vhdl_declaration","Begin"); 21 21 22 22 vhdl.set_signal("internal_entity",_param._size_entity+1); 23 23 24 log_printf(FUNC, Priority_Fixed,"vhdl_declaration","End");24 log_printf(FUNC,Select_Priority_Fixed,"vhdl_declaration","End"); 25 25 }; 26 26 27 }; // end namespace priority_fixed27 }; // end namespace select_priority_fixed 28 28 }; // end namespace select 29 29 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_port.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 10 10 11 11 #ifdef VHDL_TESTBENCH … … 19 19 namespace generic { 20 20 namespace select { 21 namespace priority_fixed {21 namespace select_priority_fixed { 22 22 23 23 24 void Priority_Fixed::vhdl_port (Vhdl & vhdl)24 void Select_Priority_Fixed::vhdl_port (Vhdl & vhdl) 25 25 { 26 log_printf(FUNC, Priority_Fixed,"vhdl_port","Begin");26 log_printf(FUNC,Select_Priority_Fixed,"vhdl_port","Begin"); 27 27 28 vhdl.set_port (" in_CLOCK ", IN, 1); 29 VHDL_SET_PORT (" in_NRESET", IN, 1); 30 28 31 for (uint32_t i=0; i<_param._nb_entity; i++) 29 32 { … … 37 40 VHDL_SET_PORT ("out_ENTITY_ACK",OUT,1); 38 41 } 39 log_printf(FUNC, Priority_Fixed,"vhdl_port","End");42 log_printf(FUNC,Select_Priority_Fixed,"vhdl_port","End"); 40 43 }; 41 44 42 }; // end namespace priority_fixed45 }; // end namespace select_priority_fixed 43 46 }; // end namespace select 44 47 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_label.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"8 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 9 9 10 10 namespace morpheo { … … 12 12 namespace generic { 13 13 namespace select { 14 namespace priority_fixed {14 namespace select_priority_fixed { 15 15 16 16 17 void Priority_Fixed::vhdl_testbench_label (string label)17 void Select_Priority_Fixed::vhdl_testbench_label (string label) 18 18 { 19 log_printf(FUNC, Priority_Fixed,"vhdl_testbench_label","Begin");19 log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_label","Begin"); 20 20 21 21 #ifdef VHDL_TESTBENCH … … 23 23 #endif 24 24 25 log_printf(FUNC, Priority_Fixed,"vhdl_testbench_label","End");25 log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_label","End"); 26 26 }; 27 27 28 }; // end namespace priority_fixed28 }; // end namespace select_priority_fixed 29 29 }; // end namespace select 30 30 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_testbench_transition.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Priority_Fixed.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace select { 15 namespace priority_fixed {15 namespace select_priority_fixed { 16 16 17 17 18 void Priority_Fixed::vhdl_testbench_transition ()18 void Select_Priority_Fixed::vhdl_testbench_transition () 19 19 { 20 log_printf(FUNC, Priority_Fixed,"vhdl_testbench_transition","Begin");20 log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_transition","Begin"); 21 21 22 22 // Evaluation before read the ouput signal 23 23 sc_start(0); 24 24 25 // In order with file Priority_Fixed_vhdl_testbench_port.cpp25 // In order with file Select_Priority_Fixed_vhdl_testbench_port.cpp 26 26 // Warning : if a output depend of a subcomponent, take directly the port of subcomponent 27 27 // (because we have no control on the ordonnancer's policy) 28 28 29 _vhdl_testbench->add_input (PORT_READ( in_NRESET)); 30 29 31 for (uint32_t i=0; i<_param._nb_entity; i++) 30 32 { … … 46 48 _vhdl_testbench->new_cycle (); // always at the end 47 49 48 log_printf(FUNC, Priority_Fixed,"vhdl_testbench_transition","End");50 log_printf(FUNC,Select_Priority_Fixed,"vhdl_testbench_transition","End"); 49 51 }; 50 52 51 }; // end namespace priority_fixed53 }; // end namespace select_priority_fixed 52 54 }; // end namespace select 53 55 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Statistics.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace select { 15 namespace priority_fixed {15 namespace select_priority_fixed { 16 16 17 17 … … 24 24 _parameters(parameters) 25 25 { 26 log_printf(FUNC, Priority_Fixed,"Statistics","Begin");27 log_printf(FUNC, Priority_Fixed,"Statistics","End");26 log_printf(FUNC,Select_Priority_Fixed,"Statistics","Begin"); 27 log_printf(FUNC,Select_Priority_Fixed,"Statistics","End"); 28 28 }; 29 29 30 30 Statistics::~Statistics () 31 31 { 32 log_printf(FUNC, Priority_Fixed,"~Statistics","Begin");33 log_printf(FUNC, Priority_Fixed,"~Statistics","End");32 log_printf(FUNC,Select_Priority_Fixed,"~Statistics","Begin"); 33 log_printf(FUNC,Select_Priority_Fixed,"~Statistics","End"); 34 34 }; 35 35 36 }; // end namespace priority_fixed36 }; // end namespace select_priority_fixed 37 37 }; // end namespace select 38 38 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_add.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Statistics.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h" 10 10 11 11 #include <sstream> … … 16 16 namespace generic { 17 17 namespace select { 18 namespace priority_fixed {18 namespace select_priority_fixed { 19 19 20 20 21 21 void Statistics::add () 22 22 { 23 log_printf(FUNC, Priority_Fixed,"add","Begin");24 log_printf(FUNC, Priority_Fixed,"add","End");23 log_printf(FUNC,Select_Priority_Fixed,"add","Begin"); 24 log_printf(FUNC,Select_Priority_Fixed,"add","End"); 25 25 }; 26 26 27 }; // end namespace priority_fixed27 }; // end namespace select_priority_fixed 28 28 }; // end namespace select 29 29 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Statistics.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h" 10 10 11 11 #include <sstream> … … 16 16 namespace generic { 17 17 namespace select { 18 namespace priority_fixed {18 namespace select_priority_fixed { 19 19 20 20 21 21 string Statistics::print (uint32_t depth) 22 22 { 23 log_printf(FUNC, Priority_Fixed,"print","Begin");23 log_printf(FUNC,Select_Priority_Fixed,"print","Begin"); 24 24 25 25 string tab = string(depth,'\t'); 26 26 ostringstream msg; 27 27 28 msg << tab << "< priority_fixed name=\"" << _name << "\" >" << endl28 msg << tab << "<select_priority_fixed name=\"" << _name << "\" >" << endl 29 29 << print_body(depth+1) << endl 30 << tab << "</ priority_fixed>" << endl;30 << tab << "</select_priority_fixed>" << endl; 31 31 32 log_printf(FUNC, Priority_Fixed,"print","End");32 log_printf(FUNC,Select_Priority_Fixed,"print","End"); 33 33 34 34 return msg.str(); … … 36 36 37 37 ostream& operator<< (ostream& output_stream , 38 morpheo::behavioural::generic::select:: priority_fixed::Statistics & x)38 morpheo::behavioural::generic::select::select_priority_fixed::Statistics & x) 39 39 { 40 40 output_stream << x.print(0); … … 43 43 }; 44 44 45 }; // end namespace priority_fixed45 }; // end namespace select_priority_fixed 46 46 }; // end namespace select 47 47 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics_print_body.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Select/ Priority_Fixed/include/Statistics.h"9 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h" 10 10 11 11 #include <sstream> … … 16 16 namespace generic { 17 17 namespace select { 18 namespace priority_fixed {18 namespace select_priority_fixed { 19 19 20 20 21 21 string Statistics::print_body (uint32_t depth) 22 22 { 23 log_printf(FUNC, Priority_Fixed,"print_body","Begin");23 log_printf(FUNC,Select_Priority_Fixed,"print_body","Begin"); 24 24 25 25 string tab = string(depth,'\t'); … … 28 28 msg << tab << ""; 29 29 30 log_printf(FUNC, Priority_Fixed,"print_body","End");30 log_printf(FUNC,Select_Priority_Fixed,"print_body","End"); 31 31 32 32 return msg.str(); 33 33 }; 34 34 35 }; // end namespace priority_fixed35 }; // end namespace select_priority_fixed 36 36 }; // end namespace select 37 37 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile
r10 r15 11 11 12 12 #-----[ Library ]------------------------------------------ 13 LIBRARY = $(DIR_LIB)/libPseudo_LRU.a 14 13 LIBRARY = $(DIR_LIB)/libVictim_Pseudo_LRU.a 15 14 16 15 #-----[ include ]------------------------------------------ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/Makefile.deps
r10 r15 15 15 endif 16 16 17 Pseudo_LRU = yes17 Victim_Pseudo_LRU = yes 18 18 #-----[ Library ]------------------------------------------ 19 Pseudo_LRU_LIBRARY = -lPseudo_LRU \20 $(Group_LIBRARY)\21 $(Behavioural_LIBRARY)19 Victim_Pseudo_LRU_LIBRARY = -lVictim_Pseudo_LRU \ 20 $(Group_LIBRARY) \ 21 $(Behavioural_LIBRARY) 22 22 23 Pseudo_LRU_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/Victim/Pseudo_LRU/lib \24 $(Group_DIR_LIBRARY)\25 $(Behavioural_DIR_LIBRARY)23 Victim_Pseudo_LRU_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU/lib \ 24 $(Group_DIR_LIBRARY) \ 25 $(Behavioural_DIR_LIBRARY) 26 26 27 27 #-----[ Rules ]-------------------------------------------- 28 28 29 Pseudo_LRU_library :29 Victim_Pseudo_LRU_library : 30 30 @$(MAKE) Behavioural_library 31 31 @$(MAKE) Group_library 32 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/ Pseudo_LRU --makefile=Makefile32 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU --makefile=Makefile 33 33 34 Pseudo_LRU_library_clean :34 Victim_Pseudo_LRU_library_clean : 35 35 @$(MAKE) Behavioural_library_clean 36 36 @$(MAKE) Group_library_clean 37 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/ Pseudo_LRU --makefile=Makefile clean37 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Generic/Victim/Victim_Pseudo_LRU --makefile=Makefile clean -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/Makefile
r10 r15 10 10 DIR_MORPHEO = ../../../../.. 11 11 12 LIBRARY = $( Pseudo_LRU_LIBRARY)12 LIBRARY = $(Victim_Pseudo_LRU_LIBRARY) 13 13 14 DIR_LIBRARY = $( Pseudo_LRU_DIR_LIBRARY)14 DIR_LIBRARY = $(Victim_Pseudo_LRU_DIR_LIBRARY) 15 15 16 16 #-----[ include ]------------------------------------------ … … 19 19 @$(MAKE) all_selftest 20 20 21 library : Pseudo_LRU_library21 library : Victim_Pseudo_LRU_library 22 22 23 library_clean : Pseudo_LRU_library_clean23 library_clean : Victim_Pseudo_LRU_library_clean 24 24 25 25 include ../Makefile.deps -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/configuration.cfg
r10 r15 1 Pseudo_LRU1 Victim_Pseudo_LRU 2 2 4 4 *2 # nb_entity 3 3 1 1 +2 # nb_access -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/include/test.h
r10 r15 4 4 * [ Description ] 5 5 * 6 * Test "RegisterFile"7 6 */ 8 7 … … 14 13 #include <iostream> 15 14 16 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"15 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 17 16 18 17 using namespace std; … … 22 21 using namespace morpheo::behavioural::generic::victim; 23 22 24 using namespace morpheo::behavioural::generic::victim:: pseudo_lru;23 using namespace morpheo::behavioural::generic::victim::victim_pseudo_lru; 25 24 26 25 void test (string name, 27 morpheo::behavioural::generic::victim:: pseudo_lru::Parameters param);26 morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters param); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/main.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Victim/ Pseudo_LRU/SelfTest/include/test.h"8 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/include/test.h" 9 9 10 10 #define NB_PARAMS 4 … … 36 36 const uint32_t size_table = atoi(argv[5]); 37 37 38 morpheo::behavioural::generic::victim:: pseudo_lru::Parameters param (nb_entity ,38 morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters param (nb_entity , 39 39 nb_access , 40 40 nb_update , -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/src/test.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/SelfTest/include/test.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/SelfTest/include/test.h" 10 10 #include "Include/Test.h" 11 11 12 12 void test (string name, 13 morpheo::behavioural::generic::victim:: pseudo_lru::Parameters param)13 morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters param) 14 14 { 15 15 cout << "<" << name << "> : Simulation SystemC" << endl; … … 36 36 exit (EXIT_FAILURE); 37 37 } 38 Pseudo_LRU * _Pseudo_LRU = newPseudo_LRU (name.c_str(),38 Victim_Pseudo_LRU * _Victim_Pseudo_LRU = new Victim_Pseudo_LRU (name.c_str(), 39 39 #ifdef STATISTICS 40 40 morpheo::behavioural::Parameters_Statistics(5,50), … … 46 46 * Déclarations des signaux 47 47 *********************************************************************/ 48 sc_clock CLOCK ("clock", 1.0, 0.5); 48 sc_clock CLOCK ("clock", 1.0, 0.5); 49 sc_signal<Tcontrol_t> NRESET ("NRESET"); 49 50 50 51 sc_signal<Tcontrol_t> ACCESS_VAL [param._nb_access]; … … 62 63 ********************************************************/ 63 64 64 cout << "<" << name << "> Instanciation of _Pseudo_LRU" << endl; 65 66 (*(_Pseudo_LRU->in_CLOCK)) (CLOCK); 65 cout << "<" << name << "> Instanciation of _Victim_Pseudo_LRU" << endl; 66 67 (*(_Victim_Pseudo_LRU->in_CLOCK)) (CLOCK); 68 (*(_Victim_Pseudo_LRU->in_NRESET)) (NRESET); 67 69 68 70 for (uint32_t i=0; i<param._nb_access; i++) 69 71 { 70 (*(_ Pseudo_LRU-> in_ACCESS_VAL [i])) (ACCESS_VAL [i]);71 (*(_ Pseudo_LRU->out_ACCESS_ACK [i])) (ACCESS_ACK [i]);72 (*(_Victim_Pseudo_LRU-> in_ACCESS_VAL [i])) (ACCESS_VAL [i]); 73 (*(_Victim_Pseudo_LRU->out_ACCESS_ACK [i])) (ACCESS_ACK [i]); 72 74 if (param._size_table>1) 73 (*(_ Pseudo_LRU-> in_ACCESS_ADDRESS [i])) (ACCESS_ADDRESS [i]);74 (*(_ Pseudo_LRU->out_ACCESS_ENTITY [i])) (ACCESS_ENTITY [i]);75 (*(_Victim_Pseudo_LRU-> in_ACCESS_ADDRESS [i])) (ACCESS_ADDRESS [i]); 76 (*(_Victim_Pseudo_LRU->out_ACCESS_ENTITY [i])) (ACCESS_ENTITY [i]); 75 77 } 76 78 77 79 for (uint32_t i=0; i<param._nb_update; i++) 78 80 { 79 (*(_ Pseudo_LRU-> in_UPDATE_VAL [i])) (UPDATE_VAL [i]);80 (*(_ Pseudo_LRU->out_UPDATE_ACK [i])) (UPDATE_ACK [i]);81 (*(_Victim_Pseudo_LRU-> in_UPDATE_VAL [i])) (UPDATE_VAL [i]); 82 (*(_Victim_Pseudo_LRU->out_UPDATE_ACK [i])) (UPDATE_ACK [i]); 81 83 if (param._size_table>1) 82 (*(_ Pseudo_LRU-> in_UPDATE_ADDRESS [i])) (UPDATE_ADDRESS [i]);83 (*(_ Pseudo_LRU-> in_UPDATE_ENTITY [i])) (UPDATE_ENTITY [i]);84 (*(_Victim_Pseudo_LRU-> in_UPDATE_ADDRESS [i])) (UPDATE_ADDRESS [i]); 85 (*(_Victim_Pseudo_LRU-> in_UPDATE_ENTITY [i])) (UPDATE_ENTITY [i]); 84 86 } 85 87 /******************************************************** … … 204 206 #endif 205 207 206 delete _ Pseudo_LRU;208 delete _Victim_Pseudo_LRU; 207 209 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h
r10 r15 1 #ifndef morpheo_behavioural_generic_victim_ pseudo_lru_Parameters_h2 #define morpheo_behavioural_generic_victim_ pseudo_lru_Parameters_h1 #ifndef morpheo_behavioural_generic_victim_victim_pseudo_lru_Parameters_h 2 #define morpheo_behavioural_generic_victim_victim_pseudo_lru_Parameters_h 3 3 4 4 /* … … 16 16 namespace generic { 17 17 namespace victim { 18 namespace pseudo_lru {18 namespace victim_pseudo_lru { 19 19 20 20 … … 25 25 public : const uint32_t _nb_access ; // number of port to select an entity 26 26 public : const uint32_t _nb_update ; // number of port to update the internal entity 27 public : const uint32_t _size_table; // Size of pseudo_LRU's table27 public : const uint32_t _size_table; // Size of victim_pseudo_lru's table 28 28 29 29 //-----[ methods ]----------------------------------------------------------- … … 39 39 public : string print (uint32_t depth); 40 40 public : friend ostream& operator<< (ostream& output_stream, 41 morpheo::behavioural::generic::victim:: pseudo_lru::Parameters & x);41 morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters & x); 42 42 }; 43 43 44 }; // end namespace pseudo_lru44 }; // end namespace victim_pseudo_lru 45 45 }; // end namespace victim 46 46 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h
r10 r15 1 1 #ifdef STATISTICS 2 #ifndef morpheo_behavioural_generic_victim_ pseudo_lru_Statistics_h3 #define morpheo_behavioural_generic_victim_ pseudo_lru_Statistics_h2 #ifndef morpheo_behavioural_generic_victim_victim_pseudo_lru_Statistics_h 3 #define morpheo_behavioural_generic_victim_victim_pseudo_lru_Statistics_h 4 4 5 5 /* … … 13 13 #include "Behavioural/include/Parameters_Statistics.h" 14 14 #include "Behavioural/Generic/Group/include/Statistics.h" 15 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Parameters.h"15 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h" 16 16 17 17 using namespace morpheo::behavioural::generic::group; … … 21 21 namespace generic { 22 22 namespace victim { 23 namespace pseudo_lru {23 namespace victim_pseudo_lru { 24 24 25 25 … … 49 49 }; 50 50 51 }; // end namespace pseudo_lru51 }; // end namespace victim_pseudo_lru 52 52 }; // end namespace victim 53 53 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h
r10 r15 1 #ifndef morpheo_behavioural_generic_victim_ pseudo_lru_Type_h2 #define morpheo_behavioural_generic_victim_ pseudo_lru_Type_h1 #ifndef morpheo_behavioural_generic_victim_victim_pseudo_lru_Type_h 2 #define morpheo_behavioural_generic_victim_victim_pseudo_lru_Type_h 3 3 4 4 /* … … 15 15 namespace generic { 16 16 namespace victim { 17 namespace pseudo_lru {17 namespace victim_pseudo_lru { 18 18 19 19 typedef uint32_t Taddress_t; 20 20 typedef uint32_t Tentity_t; 21 21 22 }; // end namespace pseudo._lru22 }; // end namespace victim_pseudo_lru 23 23 }; // end namespace victim 24 24 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h
r10 r15 1 #ifndef morpheo_behavioural_generic_victim_ pseudo_lru_Pseudo_LRU_h2 #define morpheo_behavioural_generic_victim_ pseudo_lru_Pseudo_LRU_h1 #ifndef morpheo_behavioural_generic_victim_victim_pseudo_lru_Victim_Pseudo_LRU_h 2 #define morpheo_behavioural_generic_victim_victim_pseudo_lru_Victim_Pseudo_LRU_h 3 3 4 4 /* … … 32 32 #include "Include/Debug.h" 33 33 34 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Parameters.h"35 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Types.h"36 #ifdef STATISTICS 37 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Statistics.h"34 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h" 35 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h" 36 #ifdef STATISTICS 37 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h" 38 38 #endif 39 39 #ifdef VHDL … … 50 50 namespace generic { 51 51 namespace victim { 52 namespace pseudo_lru {53 54 class Pseudo_LRU52 namespace victim_pseudo_lru { 53 54 class Victim_Pseudo_LRU 55 55 #if SYSTEMC 56 56 : public sc_module … … 60 60 protected : class entry_t 61 61 { 62 // Numerotation of pseudo_LRU's tree62 // Numerotation of victim_pseudo_lru's tree 63 63 // Tree of Pseudo-LRU 64 64 // … … 183 183 // Interface 184 184 public : SC_CLOCK * in_CLOCK ; 185 public : SC_IN (Tcontrol_t) * in_NRESET ; 185 186 186 187 // Interface access … … 206 207 207 208 #ifdef SYSTEMC 208 SC_HAS_PROCESS ( Pseudo_LRU);209 #endif 210 211 public : Pseudo_LRU (209 SC_HAS_PROCESS (Victim_Pseudo_LRU); 210 #endif 211 212 public : Victim_Pseudo_LRU ( 212 213 #ifdef SYSTEMC 213 214 sc_module_name name, … … 220 221 Parameters param ); 221 222 222 public : Pseudo_LRU (Parameters param );223 public : ~ Pseudo_LRU (void);223 public : Victim_Pseudo_LRU (Parameters param ); 224 public : ~Victim_Pseudo_LRU (void); 224 225 225 226 #ifdef SYSTEMC … … 249 250 }; 250 251 251 }; // end namespace pseudo_lru252 }; // end namespace victim_pseudo_lru 252 253 }; // end namespace victim 253 254 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Parameters.h"8 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h" 9 9 10 10 namespace morpheo { … … 12 12 namespace generic { 13 13 namespace victim { 14 namespace pseudo_lru {14 namespace victim_pseudo_lru { 15 15 16 16 … … 39 39 { }; 40 40 41 }; // end namespace pseudo_lru41 }; // end namespace victim_pseudo_lru 42 42 }; // end namespace victim 43 43 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_msg_error.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Parameters.h"9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Types.h"8 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h" 9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Types.h" 10 10 #include <sstream> 11 11 using namespace std; … … 15 15 namespace generic { 16 16 namespace victim { 17 namespace pseudo_lru {17 namespace victim_pseudo_lru { 18 18 19 19 string Parameters::msg_error(void) … … 65 65 }; 66 66 67 }; // end namespace pseudo_lru67 }; // end namespace victim_pseudo_lru 68 68 }; // end namespace victim 69 69 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters_print.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Parameters.h"8 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h" 9 9 #include <sstream> 10 10 using namespace std; … … 14 14 namespace generic { 15 15 namespace victim { 16 namespace pseudo_lru {16 namespace victim_pseudo_lru { 17 17 18 18 string Parameters::print (uint32_t depth) … … 20 20 string tab = string(depth,'\t'); 21 21 ostringstream msg; 22 msg << tab << "< pseudo_lru>" << endl22 msg << tab << "<victim_pseudo_lru>" << endl 23 23 << tab << "\t<nb_entity value=\"" << _nb_entity << "\" />" << endl 24 24 << tab << "\t<nb_access value=\"" << _nb_access << "\" />" << endl 25 25 << tab << "\t<nb_update value=\"" << _nb_update << "\" />" << endl 26 26 << tab << "\t<size_table value=\"" << _size_table << "\" />" << endl 27 << tab << "</ pseudo_lru>" << endl;27 << tab << "</victim_pseudo_lru>" << endl; 28 28 29 29 return msg.str(); … … 31 31 32 32 ostream& operator<< (ostream& output_stream , 33 morpheo::behavioural::generic::victim:: pseudo_lru::Parameters & x)33 morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters & x) 34 34 { 35 35 output_stream << x.print(0); … … 38 38 }; 39 39 40 }; // end namespace pseudo_lru40 }; // end namespace victim_pseudo_lru 41 41 }; // end namespace victim 42 42 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Statistics.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 17 … … 38 38 }; 39 39 40 }; // end namespace pseudo_lru40 }; // end namespace victim_pseudo_lru 41 41 }; // end namespace victim 42 42 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_add.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Statistics.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h" 10 10 11 11 #include <sstream> … … 16 16 namespace generic { 17 17 namespace victim { 18 namespace pseudo_lru {18 namespace victim_pseudo_lru { 19 19 20 20 void Statistics::add (uint32_t nb_access, … … 25 25 }; 26 26 27 }; // end namespace pseudo_lru27 }; // end namespace victim_pseudo_lru 28 28 }; // end namespace victim 29 29 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Statistics.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h" 10 10 11 11 #include <sstream> … … 16 16 namespace generic { 17 17 namespace victim { 18 namespace pseudo_lru {18 namespace victim_pseudo_lru { 19 19 20 20 … … 24 24 ostringstream msg; 25 25 26 msg << tab << "< pseudo_lru name=\"" << _name << "\" >" << endl26 msg << tab << "<victim_pseudo_lru name=\"" << _name << "\" >" << endl 27 27 << print_body (depth+1) 28 << tab << "</ pseudo_lru>" << endl;28 << tab << "</victim_pseudo_lru>" << endl; 29 29 30 30 return msg.str(); … … 32 32 33 33 ostream& operator<< (ostream& output_stream , 34 morpheo::behavioural::generic::victim:: pseudo_lru::Statistics & x)34 morpheo::behavioural::generic::victim::victim_pseudo_lru::Statistics & x) 35 35 { 36 36 output_stream << x.print(0); … … 39 39 }; 40 40 41 }; // end namespace pseudo_lru41 }; // end namespace victim_pseudo_lru 42 42 }; // end namespace victim 43 43 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Statistics_print_body.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Statistics.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Statistics.h" 10 10 11 11 #include <sstream> … … 16 16 namespace generic { 17 17 namespace victim { 18 namespace pseudo_lru {18 namespace victim_pseudo_lru { 19 19 20 20 … … 30 30 }; 31 31 32 }; // end namespace pseudo_lru32 }; // end namespace victim_pseudo_lru 33 33 }; // end namespace victim 34 34 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp
r10 r15 6 6 */ 7 7 8 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"8 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 9 9 10 10 namespace morpheo { … … 12 12 namespace generic { 13 13 namespace victim { 14 namespace pseudo_lru {14 namespace victim_pseudo_lru { 15 15 16 16 #ifdef SYSTEMC 17 Pseudo_LRU::Pseudo_LRU (sc_module_name name,17 Victim_Pseudo_LRU::Victim_Pseudo_LRU (sc_module_name name, 18 18 #else 19 Pseudo_LRU::Pseudo_LRU (string name,19 Victim_Pseudo_LRU::Victim_Pseudo_LRU (string name, 20 20 #endif 21 21 #ifdef STATISTICS 22 22 morpheo::behavioural::Parameters_Statistics param_statistics, 23 23 #endif 24 morpheo::behavioural::generic::victim:: pseudo_lru::Parameters param ):24 morpheo::behavioural::generic::victim::victim_pseudo_lru::Parameters param ): 25 25 _name (name) 26 26 ,_param (param) 27 27 { 28 log_printf(FUNC, Pseudo_LRU,"Pseudo_LRU","Begin");28 log_printf(FUNC,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Begin"); 29 29 30 30 #ifdef STATISTICS 31 log_printf(TRACE, Pseudo_LRU,"Pseudo_LRU","Allocation of statistics");31 log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Allocation of statistics"); 32 32 33 33 // Allocation of statistics … … 41 41 // -> port 42 42 // -> clock's signals 43 log_printf(TRACE, Pseudo_LRU,"Pseudo_LRU","Creation of Testbench");43 log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Creation of Testbench"); 44 44 _vhdl_testbench = new Vhdl_Testbench (_name); 45 45 vhdl_testbench_port (*_vhdl_testbench); … … 49 49 #ifdef VHDL 50 50 // generate the vhdl 51 log_printf(TRACE, Pseudo_LRU,"Pseudo_LRU","Generation of VHDL");51 log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Generation of VHDL"); 52 52 vhdl(); 53 53 #endif 54 54 55 55 #ifdef SYSTEMC 56 log_printf(TRACE, Pseudo_LRU,"Pseudo_LRU","Allocation");56 log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Allocation"); 57 57 allocation (); 58 58 59 log_printf(TRACE, Pseudo_LRU,"Pseudo_LRU","Definition of sc_method");59 log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method"); 60 60 SC_METHOD (transition); 61 61 dont_initialize (); … … 73 73 74 74 #ifdef SYSTEMCASS_SPECIFIC 75 log_printf(TRACE, Pseudo_LRU,"Pseudo_LRU","List dependency information");75 log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","List dependency information"); 76 76 // List dependency information 77 77 for (uint32_t i=0; i<_param._nb_access; i++) … … 90 90 91 91 #endif 92 log_printf(FUNC, Pseudo_LRU,"Pseudo_LRU","End");92 log_printf(FUNC,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","End"); 93 93 }; 94 94 95 Pseudo_LRU::~Pseudo_LRU (void)95 Victim_Pseudo_LRU::~Victim_Pseudo_LRU (void) 96 96 { 97 log_printf(FUNC, Pseudo_LRU,"~Pseudo_LRU","Begin");97 log_printf(FUNC,Victim_Pseudo_LRU,"~Victim_Pseudo_LRU","Begin"); 98 98 #ifdef SYSTEMC 99 99 deallocation (); … … 111 111 delete _stat; 112 112 #endif 113 log_printf(FUNC, Pseudo_LRU,"~Pseudo_LRU","End");113 log_printf(FUNC,Victim_Pseudo_LRU,"~Victim_Pseudo_LRU","End"); 114 114 }; 115 115 116 }; // end namespace pseudo_lru116 }; // end namespace victim_pseudo_lru 117 117 }; // end namespace victim 118 118 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_allocation.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 void Pseudo_LRU::allocation (void)17 void Victim_Pseudo_LRU::allocation (void) 18 18 { 19 19 in_CLOCK = new SC_CLOCK ("in_CLOCK"); 20 in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET"); 20 21 21 22 // -----[ Interface access ]------------------------------------------- … … 82 83 }; 83 84 84 }; // end namespace pseudo_lru85 }; // end namespace victim_pseudo_lru 85 86 }; // end namespace victim 86 87 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_deallocation.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 void Pseudo_LRU::deallocation (void)17 void Victim_Pseudo_LRU::deallocation (void) 18 18 { 19 19 delete in_CLOCK; 20 20 delete in_NRESET; 21 21 // -----[ Interface access ]------------------------------------------- 22 22 for (uint32_t i=0; i<_param._nb_access; i++) … … 61 61 }; 62 62 63 }; // end namespace pseudo_lru63 }; // end namespace victim_pseudo_lru 64 64 }; // end namespace victim 65 65 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_genMealy_access.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 void Pseudo_LRU::genMealy_access (void)17 void Victim_Pseudo_LRU::genMealy_access (void) 18 18 { 19 19 for (uint32_t i=0; i<_param._nb_access; i++) … … 39 39 }; 40 40 41 }; // end namespace pseudo_lru41 }; // end namespace victim_pseudo_lru 42 42 }; // end namespace victim 43 43 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_statistics.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 17 18 string Pseudo_LRU::statistics (uint32_t depth)18 string Victim_Pseudo_LRU::statistics (uint32_t depth) 19 19 { 20 20 return _stat->print(depth); 21 21 }; 22 22 23 }; // end namespace pseudo_lru23 }; // end namespace victim_pseudo_lru 24 24 }; // end namespace victim 25 25 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_transition.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 void Pseudo_LRU::transition (void)17 void Victim_Pseudo_LRU::transition (void) 18 18 { 19 19 #ifdef STATISTICS … … 71 71 }; 72 72 73 }; // end namespace pseudo_lru73 }; // end namespace victim_pseudo_lru 74 74 }; // end namespace victim 75 75 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 #include "Behavioural/include/Vhdl.h" 11 11 … … 14 14 namespace generic { 15 15 namespace victim { 16 namespace pseudo_lru {16 namespace victim_pseudo_lru { 17 17 18 18 19 void Pseudo_LRU::vhdl (void)19 void Victim_Pseudo_LRU::vhdl (void) 20 20 { 21 log_printf(FUNC, Pseudo_LRU,"vhdl","Begin");21 log_printf(FUNC,Victim_Pseudo_LRU,"vhdl","Begin"); 22 22 23 log_printf(TRACE, Pseudo_LRU,"vhdl","Construction of vhdl");23 log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Construction of vhdl"); 24 24 Vhdl vhdl (_name); 25 25 26 log_printf(TRACE, Pseudo_LRU,"vhdl","Set library");26 log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Set library"); 27 27 vhdl.set_library_work (_name + "_Pack"); 28 28 29 log_printf(TRACE, Pseudo_LRU,"vhdl","Set port");29 log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Set port"); 30 30 vhdl_port (vhdl); 31 log_printf(TRACE, Pseudo_LRU,"vhdl","Set declaration");31 log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Set declaration"); 32 32 vhdl_declaration (vhdl); 33 log_printf(TRACE, Pseudo_LRU,"vhdl","Set body");33 log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Set body"); 34 34 vhdl_body (vhdl); 35 log_printf(TRACE, Pseudo_LRU,"vhdl","Generate File");35 log_printf(TRACE,Victim_Pseudo_LRU,"vhdl","Generate File"); 36 36 vhdl.generate_file(); 37 log_printf(FUNC, Pseudo_LRU,"vhdl","End");37 log_printf(FUNC,Victim_Pseudo_LRU,"vhdl","End"); 38 38 }; 39 39 40 }; // end namespace pseudo_lru40 }; // end namespace victim_pseudo_lru 41 41 }; // end namespace victim 42 42 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_body.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {16 17 void Pseudo_LRU::vhdl_body (Vhdl & vhdl)15 namespace victim_pseudo_lru { 16 17 void Victim_Pseudo_LRU::vhdl_body (Vhdl & vhdl) 18 18 { 19 19 vhdl.set_body (""); … … 219 219 }; 220 220 221 }; // end namespace pseudo_lru221 }; // end namespace victim_pseudo_lru 222 222 }; // end namespace victim 223 223 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_declaration.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 17 18 void Pseudo_LRU::vhdl_declaration (Vhdl & vhdl)18 void Victim_Pseudo_LRU::vhdl_declaration (Vhdl & vhdl) 19 19 { 20 20 vhdl.set_type ("Ttable", "array (" + toString(_param._size_table-1) + " downto 0) of "+std_logic(_param._nb_entity-1)); … … 35 35 }; 36 36 37 }; // end namespace pseudo_lru37 }; // end namespace victim_pseudo_lru 38 38 }; // end namespace victim 39 39 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_port.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 17 18 void Pseudo_LRU::vhdl_port (Vhdl & vhdl)18 void Victim_Pseudo_LRU::vhdl_port (Vhdl & vhdl) 19 19 { 20 vhdl.set_port ("in_CLOCK" , IN, "std_logic"); 20 vhdl.set_port ("in_CLOCK ", IN, 1); 21 vhdl.set_port ("in_NRESET", IN, 1); 21 22 22 23 for (uint32_t i = 0; i < _param._nb_access; i ++) … … 39 40 }; 40 41 41 }; // end namespace pseudo_lru42 }; // end namespace victim_pseudo_lru 42 43 }; // end namespace victim 43 44 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_port.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 17 18 void Pseudo_LRU::vhdl_testbench_port (Vhdl_Testbench & vhdl_testbench)18 void Victim_Pseudo_LRU::vhdl_testbench_port (Vhdl_Testbench & vhdl_testbench) 19 19 { 20 vhdl_testbench.set_port (" in_NRESET",IN ,1); 20 21 for (uint32_t i = 0; i < _param._nb_access; i ++) 21 22 { … … 37 38 }; 38 39 39 }; // end namespace pseudo_lru40 }; // end namespace victim_pseudo_lru 40 41 }; // end namespace victim 41 42 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU_vhdl_testbench_transition.cpp
r10 r15 7 7 */ 8 8 9 #include "Behavioural/Generic/Victim/ Pseudo_LRU/include/Pseudo_LRU.h"9 #include "Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h" 10 10 11 11 namespace morpheo { … … 13 13 namespace generic { 14 14 namespace victim { 15 namespace pseudo_lru {15 namespace victim_pseudo_lru { 16 16 17 17 18 void Pseudo_LRU::vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench)18 void Victim_Pseudo_LRU::vhdl_testbench_transition (Vhdl_Testbench & vhdl_testbench) 19 19 { 20 20 #ifndef SYSTEMCASS_SPECIFIC 21 21 sc_cycle(0); 22 22 #endif 23 vhdl_testbench.add_input (PORT_READ(in_NRESET)); 23 24 24 25 for (uint32_t i = 0; i < _param._nb_access; i ++) … … 45 46 }; 46 47 47 }; // end namespace pseudo_lru48 }; // end namespace victim_pseudo_lru 48 49 }; // end namespace victim 49 50 }; // end namespace generic -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Common
r3 r15 7 7 # 8 8 9 include $(MORPHEO_TOPLEVEL)/Makefile.tools 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_INC = include 11 13 DIR_SRC = src 12 14 DIR_OBJ = obj 13 DIR_SCRIPT = $(DIR_MORPHEO)/Script 14 15 #-----[ Commands ]----------------------------------------- 16 ECHO = echo 17 EXPORT = export 18 MKDIR = mkdir -p 19 TEST = test 20 READ = read 21 DATE = date +%Y%m%d-%H%M%S 22 CD = cd 23 CP = cp 24 CAT = cat 25 LS = ls 26 RM = rm -fr 27 PWD = `pwd` 28 MAKE = make -s 29 AR = ar -v 30 RANLIB = ranlib 31 BASENAME = basename 32 GREP = grep 33 GREP_NOT = egrep -v 34 TR = tr 35 UPPERtoLOWER = $(TR) [:lower:] [:upper:] 15 DIR_SCRIPT = $(MORPHEO_SCRIPT) 36 16 37 17 #-----[ Compilation ]-------------------------------------- 38 39 SYSTEMC_systemc = $(TOOLS)/systemc 40 SYSTEMC_systemcass = $(TOOLS)/systemcass 41 SYSTEMC_systemcass_deps = $(SYSTEMC_systemcass) 42 43 SYSTEMC = $(SYSTEMC_$(SIMULATOR)) 44 45 INCDIR = -I$(SYSTEMC)/include \ 18 INCDIR = $(SYSTEMC_INCDIR_$(SIMULATOR)) \ 46 19 -I$(DIR_MORPHEO) 47 20 48 DIRLIB_systemc = lib-$(TARGET_ARCH) 49 DIRLIB_systemcass = lib 50 DIRLIB_systemcass_deps = $(DIRLIB_systemcass) 21 LIBDIR = $(DIR_LIBRARY) \ 22 $(SYSTEMC_LIBDIR_$(SIMULATOR)) \ 23 $(SOCLIB_LIBDIR) \ 24 $(OR1K_LIBDIR) 51 25 52 LIBDIR = $(DIR_LIBRARY) \ 53 -L$(SYSTEMC)/$(DIRLIB_$(SIMULATOR)) \ 54 -L$(TOOLS)/soclib/lib \ 55 -L$(TOOLS)/or1k/lib 26 LIBS = $(LIBRARY) -lm $(SYSTEMC_LIBNAME_$(SIMULATOR)) $(SOCLIB_LIBNAME) $(OR1K_LIBNAME) -lbfd -ldl 56 27 57 LIBS = $(LIBRARY) -lm -lsystemc -lsoclib -lbfd -liberty -ldl 58 # target architecture 59 TARGET_ARCH = linux 60 61 XX_systemc = 62 XX_systemcass = -rdynamic \ 63 -ansi \ 64 -Wno-long-long 65 66 XX_systemcass_deps = $(XX_systemcass) 67 68 EXEC_PARAMS_systemc = 69 EXEC_PARAMS_systemcass = --nobanner 70 EXEC_PARAMS_systemcass_deps = --nobanner --p 71 72 73 XX_COMMON = -O3 \ 28 FLAGS_COMMON = $(SYSTEMC_CFLAGS_$(SIMULATOR)) \ 29 -O3 \ 74 30 -g3 \ 75 31 -Wall \ 76 32 -Wunused 33 77 34 # -Wno-deprecated \ 78 35 # -Wno-non-template-friend \ … … 82 39 # -Werror \ 83 40 84 XX_OPT = $(XX_COMMON) $(XX_$(SIMULATOR)) 85 86 CXX = export LANG=C; g++ 87 CXX_OPT = $(XX_OPT) $(FLAGS) $(INCDIR) 88 LXX_OPT = $(XX_OPT) $(FLAGS) $(LIBDIR) 89 90 EXEC_PARAMS = $(EXEC_PARAMS_$(SIMULATOR)) 41 CFLAGS = $(FLAGS) $(FLAGS_COMMON) $(INCDIR) 42 LFLAGS = $(FLAGS) $(FLAGS_COMMON) $(LIBDIR) 91 43 92 44 #-----[ Variable ]----------------------------------------- … … 103 55 test_env : 104 56 @$(ECHO) "-------------------[ $(ENTITY) ]" 105 ifeq ($(origin TOOLS), undefined) 106 $(error "variable TOOLS is undefined"); 57 ifeq ($(origin MORPHEO_TOPLEVEL), undefined) 58 $(error "variable MORPHEO_TOPLEVEL is undefined"); 59 endif 60 ifeq ($(origin MORPHEO_SCRIPT), undefined) 61 $(error "variable MORPHEO_SCRIPT is undefined"); 107 62 endif 108 63 ifeq ($(origin DIR_MORPHEO), undefined) 109 $(error "variable DIR_MORPHEO is undefined");64 $(error "variable DIR_MORPHEO is undefined"); 110 65 endif 111 66 112 67 $(DIR_OBJ)/%.o : $(DIR_SRC)/%.cpp $(HEADERS) 113 68 @$(ECHO) "Compilation : $*" 114 @$(CXX) $(CXX_OPT) -c -o $@ $<69 $(CXX) $(CFLAGS) -c -o $@ $< 115 70 116 71 $(DIR_OBJ) : -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest
r3 r15 7 7 # 8 8 9 #-----[ Variables]----------------------------------------9 #-----[ Directory ]---------------------------------------- 10 10 DIR_BIN = bin 11 11 DIR_LIB = ../lib 12 DIR_CFG = configuration 12 DIR_CFG_GEN = configuration_generated 13 DIR_CFG_USER = configuration 13 14 DIR_LOG = log 14 15 16 #-----[ Variables ]---------------------------------------- 15 17 CFG_FILE = configuration.cfg 16 18 17 19 OBJECTS = $(OBJECTS_COMMON) 18 20 19 EXEC_LOG = $(patsubst $(DIR_CFG)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG)/*.cfg)) 21 EXEC_PARAMS = $(SYSTEMC_EXEC_PARAMS_$(SIMULATOR)) 22 EXEC_LOG = $(patsubst $(DIR_CFG_GEN)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_GEN)/*.cfg)) \ 23 $(patsubst $(DIR_CFG_USER)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_USER)/*.cfg)) 20 24 EXEC = soft 21 25 … … 36 40 37 41 config_clean : 38 @ \ 39 declare NAME; \ 40 declare -i CPT=0; \ 41 declare -ai PERIOD; \ 42 declare -a RANGE_LOCAL; \ 43 PERIOD[0]=1; \ 44 \ 45 while $(READ) line; do \ 46 LINE=($$line); \ 47 \ 48 if $(TEST) $$CPT -eq 0; then \ 49 NAME=$${LINE[0]}; \ 50 else \ 51 RANGE_LOCAL=($$($(DIR_SCRIPT)/range.sh $${LINE[0]} $${LINE[1]} $${LINE[2]})); \ 52 PERIOD[$$CPT]=$$(($${PERIOD[$$(($$CPT-1))]}*$${#RANGE_LOCAL[*]})); \ 53 fi; \ 54 \ 55 CPT=$$(($$CPT+1)); \ 56 done < $(CFG_FILE); \ 57 \ 58 declare -i NB_CONFIG=$${PERIOD[$$(($$CPT-1))]}; \ 59 \ 60 for i in $$($(DIR_SCRIPT)/range.sh 0 $$(($$NB_CONFIG-1))); do \ 61 $(RM) "$(DIR_CFG)/$${NAME}_$${i}.cfg"; \ 62 done; 42 @$(RM) $(DIR_CFG_GEN) 63 43 64 config : 44 config : $(DIR_CFG_GEN) 65 45 @$(ECHO) "Generate configuration" 66 46 @ \ … … 110 90 x=$$(($$x/$${SIZE[$$j]})); \ 111 91 done; \ 112 $(ECHO) $${DATA[*]} > "$(DIR_CFG )/$${NAME}_$${i}.cfg"; \92 $(ECHO) $${DATA[*]} > "$(DIR_CFG_GEN)/$${NAME}_$${i}.cfg"; \ 113 93 $(ECHO) " - {$$i} $${DATA[*]}"; \ 114 94 done; 115 95 116 $(DIR_LOG)/%.exec.log : $(DIR_CFG )/%.cfg $(DIR_BIN)/$(EXEC).x96 $(DIR_LOG)/%.exec.log : $(DIR_CFG_GEN)/%.cfg $(DIR_BIN)/$(EXEC).x 117 97 @$(ECHO) "Execute : $*" 118 @$(EXPORT) SYSTEMC=$(SYSTEMC ) ; ./$(DIR_BIN)/$(EXEC).x $(EXEC_PARAMS) $* `$(CAT) $<` > $@98 @$(EXPORT) SYSTEMC=$(SYSTEMC_$(SIMULATOR)) ; ./$(DIR_BIN)/$(EXEC).x $(EXEC_PARAMS) $* `$(CAT) $<` > $@ 119 99 declare -i count=`$(GREP) -ch "Test KO" $@`; \ 120 100 if $(TEST) $$count -eq 0; \ … … 125 105 $(DIR_BIN)/%.x : $(OBJECTS) $(HEADERS) $(DIR_LIB) 126 106 @$(ECHO) "Linkage : $*" 127 @$(CXX) $(LXX_OPT) -o $@ $(OBJECTS) $(LIBS)107 $(CXX) $(LFLAGS) -o $@ $(OBJECTS) $(LIBS) 128 108 129 109 $(DIR_BIN) : … … 135 115 @$(MKDIR) $@ 136 116 117 $(DIR_CFG_GEN) : 118 @$(ECHO) "Create directory : $@" 119 @$(MKDIR) $@ 120 137 121 selftest_clean_all : library_clean config_clean 138 122 139 123 selftest_clean : 140 124 @$(RM) $(DIR_LOG) \ 141 $(DIR_CFG )/*~\125 $(DIR_CFG_USER)/*~ \ 142 126 *.vhdl \ 143 127 *.stat \ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Synthesis
r3 r15 16 16 FPGA_CFG_FILE_GLOBAL = configure.mkf 17 17 18 #-----[ Tools ]--------------------------------------------19 VLIB = vlib20 VCOM = vcom21 VSIM = vsim -c -do "run -all; quit"22 23 ENV_XILINX = source $(TOOLS)/xilinx/settings.sh24 25 18 #-----[ Rules ]-------------------------------------------- 26 19 .PRECIOUS : $(DIR_LOG)/%.vhdl.log $(DIR_LOG)/%.vhdl_sim.log 27 20 28 21 vhdl : execute $(DIR_WORK) 29 @declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Pack.vhdl)); \ 22 @ \ 23 declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Pack.vhdl)); \ 30 24 declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log}); \ 31 $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; 32 @declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl)); \ 25 if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi 26 @ \ 27 declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl)); \ 33 28 declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log}); \ 34 $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; 35 @declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*.vhdl|$(GREP_NOT) "(_Pack\.|_Testbench\.)")); \ 29 if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi 30 @ \ 31 declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*.vhdl|$(GREP_NOT) "(_Pack\.|_Testbench\.)")); \ 36 32 declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log}); \ 37 $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};33 if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi 38 34 39 35 vhdl_sim : vhdl 40 @declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl)); \ 36 @ \ 37 declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl)); \ 41 38 declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl_sim.log}); \ 42 $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)};39 if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi 43 40 44 41 fpga : vhdl_sim … … 52 49 $(ECHO) -e "" >> $(FPGA_CFG_FILE_LOCAL); \ 53 50 done 54 @($( ENV_XILINX); $(CD) $(FPGA_CFG_FILE_GLOBAL_DIR); ./$(FPGA_CFG_FILE_GLOBAL))51 @($(XILINX_ENV); $(CD) $(FPGA_CFG_FILE_GLOBAL_DIR); ./$(FPGA_CFG_FILE_GLOBAL)) 55 52 @$(MAKE) $(patsubst $(DIR_CFG)/%.cfg,$(DIR_LOG)/%.fpga.log,$(wildcard $(DIR_CFG)/*.cfg)) 56 53 57 54 $(DIR_LOG)/%.fpga.log : 58 55 @$(ECHO) "Synthetis on FPGA : $*" 59 @$( ENV_XILINX); $(MAKE) -f Makefile.mkf $*.ngc > $@56 @$(XILINX_ENV); $(MAKE) -f Makefile.mkf $*.ngc > $@ 60 57 61 58 $(DIR_WORK) : 62 59 @$(ECHO) "Create work-space : $@" 63 @$( VLIB) $@60 @$(MODELTECH_VLIB) $@ 64 61 65 62 $(DIR_LOG)/%.vhdl_sim.log : $(DIR_VHDL)/%.vhdl $(DIR_LOG)/%.vhdl.log 66 63 @$(ECHO) "VHDL's Simulation: $*" 67 @$( VSIM) "$(DIR_WORK).`$(BASENAME) $* |$(UPPERtoLOWER)`" > $@64 @$(MODELTECH_VSIM) "$(DIR_WORK).`$(BASENAME) $* |$(UPPERtoLOWER)`" > $@ 68 65 declare -i count=`$(GREP) -ch "Test KO" $@`; \ 69 66 if $(TEST) $$count -eq 0; \ … … 74 71 $(DIR_LOG)/%.vhdl.log : $(DIR_VHDL)/%.vhdl 75 72 @$(ECHO) "VHDL's Compilation : $*" 76 @$( VCOM) $< > $@73 @$(MODELTECH_VCOM) $< > $@ 77 74 78 75 synthesis_clean : -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.defs
r3 r15 15 15 16 16 #-----[ Flags ]-------------------------------------------- 17 FLAGS = -DSYSTEMC \ 17 FLAGS = -DVHDL \ 18 -DVHDL_TESTBENCH \ 19 -DSYSTEMC \ 20 -DSTATISTICS \ 18 21 -DCONFIGURATION \ 19 -DSTATISTICS \ 20 -DVHDL \ 21 -DVHDL_TESTBENCH 22 # -DDEBUG=DEBUG_TRACE 23 22 -DDEBUG=DEBUG_ALL 23 24 24 # Flags : 25 25 # DEBUG={level} - Print Debug Message -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.mkf
r2 r15 3 3 # 4 4 5 all: _Generic/Counter/SelfTest _Generic/RegisterFile/SelfTest _Generic/Shifter/SelfTest _Generic/Select/Pseudo_LRU/SelfTest _Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest _Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest _Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest 6 7 _Generic/Counter/SelfTest: 8 gmake all -C Generic/Counter/SelfTest 5 all: _Generic/RegisterFile/SelfTest _Generic/Select/Priority_Fixed/SelfTest 9 6 10 7 _Generic/RegisterFile/SelfTest: 11 8 gmake all -C Generic/RegisterFile/SelfTest 12 9 13 _Generic/Shifter/SelfTest: 14 gmake all -C Generic/Shifter/SelfTest 15 16 _Generic/Select/Pseudo_LRU/SelfTest: 17 gmake all -C Generic/Select/Pseudo_LRU/SelfTest 18 19 _Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest: 20 gmake all -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest 21 22 _Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest: 23 gmake all -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest 24 25 _Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest: 26 gmake all -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest 10 _Generic/Select/Priority_Fixed/SelfTest: 11 gmake all -C Generic/Select/Priority_Fixed/SelfTest 27 12 28 13 clean: 29 gmake clean -C Generic/Counter/SelfTest30 14 gmake clean -C Generic/RegisterFile/SelfTest 31 gmake clean -C Generic/Shifter/SelfTest 32 gmake clean -C Generic/Select/Pseudo_LRU/SelfTest 33 gmake clean -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest 34 gmake clean -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest 35 gmake clean -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest 15 gmake clean -C Generic/Select/Priority_Fixed/SelfTest 36 16 37 17 re: clean all 38 18 39 19 install: 40 gmake install -C Generic/Counter/SelfTest41 20 gmake install -C Generic/RegisterFile/SelfTest 42 gmake install -C Generic/Shifter/SelfTest 43 gmake install -C Generic/Select/Pseudo_LRU/SelfTest 44 gmake install -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest 45 gmake install -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest 46 gmake install -C Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest 21 gmake install -C Generic/Select/Priority_Fixed/SelfTest 47 22 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component.sh
r2 r15 5 5 SOURCE_FILE="New_Component"; 6 6 SOURCE_DIR="./$SOURCE_FILE"; 7 TMP_DIR="/tmp/$SOURCE_FILE" 7 8 8 9 #-----[ usage ]------------------------------------------------------ … … 34 35 fi; 35 36 37 if test -d $TMP_DIR; then 38 echo "Temporary directory \"$TMP_DIR\" exist already"; 39 usage; 40 fi; 41 36 42 if test -f $SED_SCRIPT; then 37 43 echo "File \"$SED_SCRIPT\" exist"; … … 239 245 function translation_directory_rec 240 246 { 241 # recursion 242 for ENTRY in $1/*; do 243 244 if test -d $ENTRY; then 245 translation_directory_rec $ENTRY; 246 else 247 translation_file $ENTRY 248 fi; 249 done; 247 if test `ls $1|grep -c ""` -ne 0; then 248 # recursion 249 for ENTRY in $1/*; do 250 251 if test -d $ENTRY; then 252 translation_directory_rec $ENTRY; 253 else 254 translation_file $ENTRY 255 fi; 256 done; 257 fi; 250 258 } 251 259 … … 280 288 281 289 #Copy 282 cp -r $SOURCE_DIR/* $1/$2/; 283 290 cp -r $SOURCE_DIR $TMP_DIR; 291 find $TMP_DIR -iname ".svn" -type d -exec rm -fr '{}' \; &> /dev/null 292 mv $TMP_DIR/* $1/$2; 293 rmdir $TMP_DIR 294 295 284 296 #translation 285 297 rename_directory "$1/$2" $SOURCE_FILE $2; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/main.cpp
r2 r15 10 10 #define NB_PARAMS 0 11 11 12 void usage ( string exec)12 void usage (int argc, char * argv[]) 13 13 { 14 cerr << "<Usage> " << exec<< " name_instance list_params" << endl15 << "list_params is :" << endl ;14 cerr << "<Usage> " << argv[0] << " name_instance list_params" << endl 15 << "list_params is :" << endl 16 16 // << " - size_data (unsigned int)" << endl 17 17 // << " - nb_port (unsigned int)" << endl; 18 << "" << endl; 19 20 for (int i=0; i<argc; i++) 21 cerr << argv[i] << " "; 22 cerr << endl; 18 23 19 24 exit (1); … … 26 31 #endif 27 32 { 28 if (argc !=2+NB_PARAMS)29 usage (arg v[0]);33 if (argc < 2+NB_PARAMS) 34 usage (argc, argv); 30 35 31 36 const string name = argv[1]; … … 46 51 { 47 52 cout << "<" << name << "> : " << error.what (); 48 return;53 exit (EXIT_FAILURE); 49 54 } 50 55 catch (...) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/SelfTest/src/test.cpp
r2 r15 9 9 #define NB_ITERATION 1 10 10 11 #define LABEL(str) do {cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} " << str << endl; _@COMPONENT->vhdl_testbench_label(str);} while (0) 12 11 13 #include "Behavioural/@DIRECTORY/SelfTest/include/test.h" 12 14 #include "Include/Test.h" 13 15 14 16 void test (string name, 15 morpheo::behavioural::@NAMESPACE_USE::Parameters param)17 morpheo::behavioural::@NAMESPACE_USE::Parameters _param) 16 18 { 17 19 cout << "<" << name << "> : Simulation SystemC" << endl; … … 21 23 morpheo::behavioural::Parameters_Statistics(5,50), 22 24 #endif 23 param);25 _param); 24 26 25 27 #ifdef SYSTEMC … … 28 30 *********************************************************************/ 29 31 sc_clock * CLOCK; 30 32 sc_signal<Tcontrol_t> * NRESET; 31 33 32 34 string rename; 33 35 34 36 CLOCK = new sc_clock ("clock", 1.0, 0.5); 37 NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 35 38 36 39 /******************************************************** … … 41 44 42 45 (*(_@COMPONENT->in_CLOCK)) (*(CLOCK)); 46 (*(_@COMPONENT->in_NRESET)) (*(NRESET)); 47 48 49 cout << "<" << name << "> Start Simulation ............" << endl; 43 50 44 51 /******************************************************** … … 46 53 ********************************************************/ 47 54 48 cout << "<" << name << "> Start Simulation ............" << endl;49 55 // Initialisation 50 56 … … 55 61 56 62 sc_start(0); 57 _@COMPONENT->vhdl_testbench_label("Initialisation"); 58 cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl; 63 LABEL("Initialisation"); 59 64 60 61 _@COMPONENT->vhdl_testbench_label("Loop of Test"); 62 cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Loop of Test" << endl; 65 LABEL("Loop of Test"); 63 66 64 67 for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++) 65 68 { 66 _@COMPONENT->vhdl_testbench_label("Iteration "+toString(iteration));69 LABEL("Iteration "+toString(iteration)); 67 70 68 71 sc_start(1); … … 75 78 cout << "<" << name << "> ............ Stop Simulation" << endl; 76 79 80 delete CLOCK; 81 delete NRESET; 77 82 #endif 78 83 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/VERSION
r3 r15 1 v0.4 1 v0.5 2 3 0.5 modif vhdl_port et vhdl_testbench_port -> ajout d'une macro -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/New_Component.h
r2 r15 93 93 private : void deallocation (void); 94 94 95 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH) 95 96 public : void transition (void); 96 // public : void genMoore (void) {/* empty */};97 //#endif 97 98 #endif 98 99 #ifdef STATISTICS … … 108 109 109 110 #ifdef VHDL_TESTBENCH 110 private : void vhdl_testbench_port (void);111 111 private : void vhdl_testbench_transition (void); 112 112 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/Types.h
r2 r15 1 #ifdef SYSTEMC2 1 #ifndef morpheo_behavioural_@DEFINE_Type_h 3 2 #define morpheo_behavioural_@DEFINE_Type_h … … 21 20 22 21 #endif 23 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component.cpp
r2 r15 30 30 31 31 #ifdef STATISTICS 32 log_printf(INFO,@COMPONENT,"@COMPONENT","Allocation of statistics"); 33 32 34 // Allocation of statistics 33 35 _stat = new Statistics (static_cast<string>(_name), … … 37 39 38 40 #ifdef VHDL_TESTBENCH 41 log_printf(INFO,@COMPONENT,"@COMPONENT","Creation of a testbench"); 42 39 43 // Creation of a testbench 40 44 // -> port 41 45 // -> clock's signals 42 46 _vhdl_testbench = new Vhdl_Testbench (_name); 43 vhdl_testbench_port ();44 _vhdl_testbench->set_clock ("in_CLOCK",true);45 47 #endif 46 48 47 49 #ifdef VHDL 48 50 // generate the vhdl 51 log_printf(INFO,@COMPONENT,"@COMPONENT","Generate the vhdl"); 52 49 53 vhdl(); 50 54 #endif 51 55 56 #ifdef VHDL_TESTBENCH 57 // must be invoke after affect of port 58 _vhdl_testbench->set_clock ("in_CLOCK",true); 59 #endif 60 52 61 #ifdef SYSTEMC 62 log_printf(INFO,@COMPONENT,"@COMPONENT","Allocation"); 63 53 64 allocation (); 65 66 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH) 67 log_printf(INFO,@COMPONENT,"@COMPONENT","Method - transition"); 54 68 55 69 SC_METHOD (transition); 56 70 dont_initialize (); 57 71 sensitive_pos << *(in_CLOCK); 58 59 // SC_METHOD (genMoore); 60 // dont_initialize (); 61 // sensitive_neg << *(in_CLOCK); 72 //#endif 62 73 63 74 #ifdef SYSTEMCASS_SPECIFIC … … 74 85 75 86 #ifdef VHDL_TESTBENCH 87 log_printf(INFO,@COMPONENT,"~@COMPONENT","Generate Testbench file"); 88 76 89 // generate the test bench 77 90 _vhdl_testbench->generate_file(); … … 80 93 81 94 #ifdef STATISTICS 95 log_printf(INFO,@COMPONENT,"~@COMPONENT","Generate Statistics file"); 96 82 97 _stat->generate_file(statistics(0)); 83 98 … … 86 101 87 102 #ifdef SYSTEMC 103 log_printf(INFO,@COMPONENT,"~@COMPONENT","Deallocation"); 104 88 105 deallocation (); 89 106 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_allocation.cpp
r2 r15 19 19 log_printf(FUNC,@COMPONENT,"allocation","Begin"); 20 20 21 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH) 21 22 in_CLOCK = new SC_CLOCK ("in_CLOCK"); 23 //#endif 22 24 in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET"); 23 25 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_deallocation.cpp
r2 r15 17 17 log_printf(FUNC,@COMPONENT,"deallocation","Begin"); 18 18 19 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH) 19 20 delete in_CLOCK; 21 //#endif 20 22 delete in_NRESET; 21 23 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_transition.cpp
r2 r15 1 1 #ifdef SYSTEMC 2 //#if defined(STATISTICS) or defined(VHDL_TESTBENCH) 2 3 /* 3 4 * $Id$ … … 32 33 }; // end namespace morpheo 33 34 #endif 35 //#endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/New_Component_vhdl_port.cpp
r2 r15 9 9 #include "Behavioural/@DIRECTORY/include/@COMPONENT.h" 10 10 11 #ifdef VHDL_TESTBENCH 12 # define VHDL_SET_PORT(name,direction,size) do {vhdl.set_port (name,direction,size); _vhdl_testbench->set_port (name,direction,size);} while(0) 13 #else 14 # define VHDL_SET_PORT(name,direction,size) vhdl.set_port (name,direction,size) 15 #endif 16 11 17 namespace morpheo { 12 18 namespace behavioural { … … 18 24 19 25 vhdl.set_port (" in_CLOCK" , IN, 1); 20 vhdl.set_port(" in_NRESET", IN, 1);26 VHDL_SET_PORT (" in_NRESET", IN, 1); 21 27 22 28 log_printf(FUNC,@COMPONENT,"vhdl_port","End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters.cpp
r2 r15 21 21 Parameters::Parameters (Parameters & param) 22 22 { 23 log_printf(FUNC,@COMPONENT,"Parameters ","Begin");23 log_printf(FUNC,@COMPONENT,"Parameters (copy)","Begin"); 24 24 test(); 25 log_printf(FUNC,@COMPONENT,"Parameters ","End");25 log_printf(FUNC,@COMPONENT,"Parameters (copy)","End"); 26 26 }; 27 27 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/src/Parameters_print.cpp
r3 r15 21 21 22 22 xml.balise_open("@COMPONENT_LOWER"); 23 // xml. singleton_begin("size_data"); 24 // xml. attribut("value",toString(_size_data)); 25 // xml. singleton_end(); 26 // xml. singleton_begin("nb_port "); 27 // xml. attribut("value",toString(_nb_port)); 28 // xml. singleton_end(); 23 // xml.singleton_begin("size_data"); xml.attribut("value",toString(_size_data)); xml.singleton_end(); 24 // xml.singleton_begin("nb_port "); xml.attribut("value",toString(_nb_port )); xml.singleton_end(); 29 25 xml.balise_close(); 30 26 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest/configuration.cfg
r5 r15 1 1 Meta_Predictor 2 0 0+1 # have_meta_predictor2 1 1 +1 # have_meta_predictor 3 3 1 1 +1 # predictor_0_have_bht 4 4 10 10 +1 # predictor_0_bht_size_shifter -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest/src/test.cpp
r5 r15 28 28 *********************************************************************/ 29 29 sc_clock * CLOCK ; 30 sc_signal<Tcontrol_t> * NRESET ; 30 31 31 32 // Interface Predict … … 45 46 string rename; 46 47 47 CLOCK = new sc_clock ("clock", 1.0, 0.5); 48 48 CLOCK = new sc_clock ("clock", 1.0, 0.5); 49 NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 50 49 51 PREDICT_VAL = new sc_signal<Tcontrol_t> * [_param._nb_prediction ]; 50 52 PREDICT_ACK = new sc_signal<Tcontrol_t> * [_param._nb_prediction ]; … … 93 95 cout << "<" << name << "> Instanciation of _Meta_Predictor" << endl; 94 96 95 (*(_Meta_Predictor->in_CLOCK)) (*(CLOCK)); 97 (*(_Meta_Predictor->in_CLOCK )) (*(CLOCK )); 98 (*(_Meta_Predictor->in_NRESET)) (*(NRESET)); 96 99 97 100 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/Makefile.deps
r2 r15 14 14 include $(DIR_MORPHEO)/Behavioural/Generic/Shifter/Makefile.deps 15 15 endif 16 ifndef RegisterFile 17 include $(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/ Makefile.deps16 ifndef RegisterFile_Monolithic 17 include $(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.deps 18 18 endif 19 19 … … 22 22 #-----[ Library ]------------------------------------------ 23 23 Branch_History_Table_LIBRARY = -lBranch_History_Table \ 24 $(RegisterFile_ LIBRARY) \24 $(RegisterFile_Monolithic_LIBRARY) \ 25 25 $(Shifter_LIBRARY) \ 26 26 $(Behavioural_LIBRARY) 27 27 28 28 Branch_History_Table_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/lib \ 29 $(RegisterFile_ DIR_LIBRARY) \29 $(RegisterFile_Monolithic_DIR_LIBRARY) \ 30 30 $(Shifter_DIR_LIBRARY) \ 31 31 $(Behavioural_DIR_LIBRARY) … … 36 36 @$(MAKE) Behavioural_library 37 37 @$(MAKE) Shifter_library 38 @$(MAKE) RegisterFile_ library38 @$(MAKE) RegisterFile_Monolithic_library 39 39 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table --makefile=Makefile 40 40 … … 42 42 @$(MAKE) Behavioural_library_clean 43 43 @$(MAKE) Shifter_library_clean 44 @$(MAKE) RegisterFile_ library_clean44 @$(MAKE) RegisterFile_Monolithic_library_clean 45 45 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table --makefile=Makefile clean -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest/mkf.info
r2 r15 1 2 # Branch_History_Table_03 target_dep all Branch_History_Table_0.ngc4 target_dep Branch_History_Table_0.ngc Branch_History_Table_0.prj5 target_dep Branch_History_Table_0.prj Branch_History_Table_0_Pack.vhdl Branch_History_Table_0_RegisterFile_Pack.vhdl Branch_History_Table_0_RegisterFile.vhdl Branch_History_Table_0_Shifter_Pack.vhdl Branch_History_Table_0_Shifter.vhdl Branch_History_Table_0.vhdl6 7 # Branch_History_Table_108 target_dep all Branch_History_Table_10.ngc9 target_dep Branch_History_Table_10.ngc Branch_History_Table_10.prj10 target_dep Branch_History_Table_10.prj Branch_History_Table_10_Pack.vhdl Branch_History_Table_10_RegisterFile_Pack.vhdl Branch_History_Table_10_RegisterFile.vhdl Branch_History_Table_10_Shifter_Pack.vhdl Branch_History_Table_10_Shifter.vhdl Branch_History_Table_10.vhdl11 12 # Branch_History_Table_1113 target_dep all Branch_History_Table_11.ngc14 target_dep Branch_History_Table_11.ngc Branch_History_Table_11.prj15 target_dep Branch_History_Table_11.prj Branch_History_Table_11_Pack.vhdl Branch_History_Table_11_RegisterFile_Pack.vhdl Branch_History_Table_11_RegisterFile.vhdl Branch_History_Table_11_Shifter_Pack.vhdl Branch_History_Table_11_Shifter.vhdl Branch_History_Table_11.vhdl16 17 # Branch_History_Table_1218 target_dep all Branch_History_Table_12.ngc19 target_dep Branch_History_Table_12.ngc Branch_History_Table_12.prj20 target_dep Branch_History_Table_12.prj Branch_History_Table_12_Pack.vhdl Branch_History_Table_12_RegisterFile_Pack.vhdl Branch_History_Table_12_RegisterFile.vhdl Branch_History_Table_12_Shifter_Pack.vhdl Branch_History_Table_12_Shifter.vhdl Branch_History_Table_12.vhdl21 22 # Branch_History_Table_1323 target_dep all Branch_History_Table_13.ngc24 target_dep Branch_History_Table_13.ngc Branch_History_Table_13.prj25 target_dep Branch_History_Table_13.prj Branch_History_Table_13_Pack.vhdl Branch_History_Table_13_RegisterFile_Pack.vhdl Branch_History_Table_13_RegisterFile.vhdl Branch_History_Table_13_Shifter_Pack.vhdl Branch_History_Table_13_Shifter.vhdl Branch_History_Table_13.vhdl26 27 # Branch_History_Table_1428 target_dep all Branch_History_Table_14.ngc29 target_dep Branch_History_Table_14.ngc Branch_History_Table_14.prj30 target_dep Branch_History_Table_14.prj Branch_History_Table_14_Pack.vhdl Branch_History_Table_14_RegisterFile_Pack.vhdl Branch_History_Table_14_RegisterFile.vhdl Branch_History_Table_14_Shifter_Pack.vhdl Branch_History_Table_14_Shifter.vhdl Branch_History_Table_14.vhdl31 32 # Branch_History_Table_1533 target_dep all Branch_History_Table_15.ngc34 target_dep Branch_History_Table_15.ngc Branch_History_Table_15.prj35 target_dep Branch_History_Table_15.prj Branch_History_Table_15_Pack.vhdl Branch_History_Table_15_RegisterFile_Pack.vhdl Branch_History_Table_15_RegisterFile.vhdl Branch_History_Table_15_Shifter_Pack.vhdl Branch_History_Table_15_Shifter.vhdl Branch_History_Table_15.vhdl36 37 # Branch_History_Table_1638 target_dep all Branch_History_Table_16.ngc39 target_dep Branch_History_Table_16.ngc Branch_History_Table_16.prj40 target_dep Branch_History_Table_16.prj Branch_History_Table_16_Pack.vhdl Branch_History_Table_16_RegisterFile_Pack.vhdl Branch_History_Table_16_RegisterFile.vhdl Branch_History_Table_16_Shifter_Pack.vhdl Branch_History_Table_16_Shifter.vhdl Branch_History_Table_16.vhdl41 42 # Branch_History_Table_1743 target_dep all Branch_History_Table_17.ngc44 target_dep Branch_History_Table_17.ngc Branch_History_Table_17.prj45 target_dep Branch_History_Table_17.prj Branch_History_Table_17_Pack.vhdl Branch_History_Table_17_RegisterFile_Pack.vhdl Branch_History_Table_17_RegisterFile.vhdl Branch_History_Table_17_Shifter_Pack.vhdl Branch_History_Table_17_Shifter.vhdl Branch_History_Table_17.vhdl46 47 # Branch_History_Table_1848 target_dep all Branch_History_Table_18.ngc49 target_dep Branch_History_Table_18.ngc Branch_History_Table_18.prj50 target_dep Branch_History_Table_18.prj Branch_History_Table_18_Pack.vhdl Branch_History_Table_18_RegisterFile_Pack.vhdl Branch_History_Table_18_RegisterFile.vhdl Branch_History_Table_18_Shifter_Pack.vhdl Branch_History_Table_18_Shifter.vhdl Branch_History_Table_18.vhdl51 52 # Branch_History_Table_1953 target_dep all Branch_History_Table_19.ngc54 target_dep Branch_History_Table_19.ngc Branch_History_Table_19.prj55 target_dep Branch_History_Table_19.prj Branch_History_Table_19_Pack.vhdl Branch_History_Table_19_RegisterFile_Pack.vhdl Branch_History_Table_19_RegisterFile.vhdl Branch_History_Table_19_Shifter_Pack.vhdl Branch_History_Table_19_Shifter.vhdl Branch_History_Table_19.vhdl56 57 # Branch_History_Table_158 target_dep all Branch_History_Table_1.ngc59 target_dep Branch_History_Table_1.ngc Branch_History_Table_1.prj60 target_dep Branch_History_Table_1.prj Branch_History_Table_10_Pack.vhdl Branch_History_Table_10_RegisterFile_Pack.vhdl Branch_History_Table_10_RegisterFile.vhdl Branch_History_Table_10_Shifter_Pack.vhdl Branch_History_Table_10_Shifter.vhdl Branch_History_Table_10.vhdl Branch_History_Table_11_Pack.vhdl Branch_History_Table_11_RegisterFile_Pack.vhdl Branch_History_Table_11_RegisterFile.vhdl Branch_History_Table_11_Shifter_Pack.vhdl Branch_History_Table_11_Shifter.vhdl Branch_History_Table_11.vhdl Branch_History_Table_12_Pack.vhdl Branch_History_Table_12_RegisterFile_Pack.vhdl Branch_History_Table_12_RegisterFile.vhdl Branch_History_Table_12_Shifter_Pack.vhdl Branch_History_Table_12_Shifter.vhdl Branch_History_Table_12.vhdl Branch_History_Table_13_Pack.vhdl Branch_History_Table_13_RegisterFile_Pack.vhdl Branch_History_Table_13_RegisterFile.vhdl Branch_History_Table_13_Shifter_Pack.vhdl Branch_History_Table_13_Shifter.vhdl Branch_History_Table_13.vhdl Branch_History_Table_14_Pack.vhdl Branch_History_Table_14_RegisterFile_Pack.vhdl Branch_History_Table_14_RegisterFile.vhdl Branch_History_Table_14_Shifter_Pack.vhdl Branch_History_Table_14_Shifter.vhdl Branch_History_Table_14.vhdl Branch_History_Table_15_Pack.vhdl Branch_History_Table_15_RegisterFile_Pack.vhdl Branch_History_Table_15_RegisterFile.vhdl Branch_History_Table_15_Shifter_Pack.vhdl Branch_History_Table_15_Shifter.vhdl Branch_History_Table_15.vhdl Branch_History_Table_16_Pack.vhdl Branch_History_Table_16_RegisterFile_Pack.vhdl Branch_History_Table_16_RegisterFile.vhdl Branch_History_Table_16_Shifter_Pack.vhdl Branch_History_Table_16_Shifter.vhdl Branch_History_Table_16.vhdl Branch_History_Table_17_Pack.vhdl Branch_History_Table_17_RegisterFile_Pack.vhdl Branch_History_Table_17_RegisterFile.vhdl Branch_History_Table_17_Shifter_Pack.vhdl Branch_History_Table_17_Shifter.vhdl Branch_History_Table_17.vhdl Branch_History_Table_18_Pack.vhdl Branch_History_Table_18_RegisterFile_Pack.vhdl Branch_History_Table_18_RegisterFile.vhdl Branch_History_Table_18_Shifter_Pack.vhdl Branch_History_Table_18_Shifter.vhdl Branch_History_Table_18.vhdl Branch_History_Table_19_Pack.vhdl Branch_History_Table_19_RegisterFile_Pack.vhdl Branch_History_Table_19_RegisterFile.vhdl Branch_History_Table_19_Shifter_Pack.vhdl Branch_History_Table_19_Shifter.vhdl Branch_History_Table_19.vhdl Branch_History_Table_1_Pack.vhdl Branch_History_Table_1_RegisterFile_Pack.vhdl Branch_History_Table_1_RegisterFile.vhdl Branch_History_Table_1_Shifter_Pack.vhdl Branch_History_Table_1_Shifter.vhdl Branch_History_Table_1.vhdl61 62 # Branch_History_Table_2063 target_dep all Branch_History_Table_20.ngc64 target_dep Branch_History_Table_20.ngc Branch_History_Table_20.prj65 target_dep Branch_History_Table_20.prj Branch_History_Table_20_Pack.vhdl Branch_History_Table_20_RegisterFile_Pack.vhdl Branch_History_Table_20_RegisterFile.vhdl Branch_History_Table_20_Shifter_Pack.vhdl Branch_History_Table_20_Shifter.vhdl Branch_History_Table_20.vhdl66 67 # Branch_History_Table_2168 target_dep all Branch_History_Table_21.ngc69 target_dep Branch_History_Table_21.ngc Branch_History_Table_21.prj70 target_dep Branch_History_Table_21.prj Branch_History_Table_21_Pack.vhdl Branch_History_Table_21_RegisterFile_Pack.vhdl Branch_History_Table_21_RegisterFile.vhdl Branch_History_Table_21_Shifter_Pack.vhdl Branch_History_Table_21_Shifter.vhdl Branch_History_Table_21.vhdl71 72 # Branch_History_Table_2273 target_dep all Branch_History_Table_22.ngc74 target_dep Branch_History_Table_22.ngc Branch_History_Table_22.prj75 target_dep Branch_History_Table_22.prj Branch_History_Table_22_Pack.vhdl Branch_History_Table_22_RegisterFile_Pack.vhdl Branch_History_Table_22_RegisterFile.vhdl Branch_History_Table_22_Shifter_Pack.vhdl Branch_History_Table_22_Shifter.vhdl Branch_History_Table_22.vhdl76 77 # Branch_History_Table_2378 target_dep all Branch_History_Table_23.ngc79 target_dep Branch_History_Table_23.ngc Branch_History_Table_23.prj80 target_dep Branch_History_Table_23.prj Branch_History_Table_23_Pack.vhdl Branch_History_Table_23_RegisterFile_Pack.vhdl Branch_History_Table_23_RegisterFile.vhdl Branch_History_Table_23_Shifter_Pack.vhdl Branch_History_Table_23_Shifter.vhdl Branch_History_Table_23.vhdl81 82 # Branch_History_Table_2483 target_dep all Branch_History_Table_24.ngc84 target_dep Branch_History_Table_24.ngc Branch_History_Table_24.prj85 target_dep Branch_History_Table_24.prj Branch_History_Table_24_Pack.vhdl Branch_History_Table_24_RegisterFile_Pack.vhdl Branch_History_Table_24_RegisterFile.vhdl Branch_History_Table_24_Shifter_Pack.vhdl Branch_History_Table_24_Shifter.vhdl Branch_History_Table_24.vhdl86 87 # Branch_History_Table_2588 target_dep all Branch_History_Table_25.ngc89 target_dep Branch_History_Table_25.ngc Branch_History_Table_25.prj90 target_dep Branch_History_Table_25.prj Branch_History_Table_25_Pack.vhdl Branch_History_Table_25_RegisterFile_Pack.vhdl Branch_History_Table_25_RegisterFile.vhdl Branch_History_Table_25_Shifter_Pack.vhdl Branch_History_Table_25_Shifter.vhdl Branch_History_Table_25.vhdl91 92 # Branch_History_Table_2693 target_dep all Branch_History_Table_26.ngc94 target_dep Branch_History_Table_26.ngc Branch_History_Table_26.prj95 target_dep Branch_History_Table_26.prj Branch_History_Table_26_Pack.vhdl Branch_History_Table_26_RegisterFile_Pack.vhdl Branch_History_Table_26_RegisterFile.vhdl Branch_History_Table_26_Shifter_Pack.vhdl Branch_History_Table_26_Shifter.vhdl Branch_History_Table_26.vhdl96 97 # Branch_History_Table_2798 target_dep all Branch_History_Table_27.ngc99 target_dep Branch_History_Table_27.ngc Branch_History_Table_27.prj100 target_dep Branch_History_Table_27.prj Branch_History_Table_27_Pack.vhdl Branch_History_Table_27_RegisterFile_Pack.vhdl Branch_History_Table_27_RegisterFile.vhdl Branch_History_Table_27_Shifter_Pack.vhdl Branch_History_Table_27_Shifter.vhdl Branch_History_Table_27.vhdl101 102 # Branch_History_Table_28103 target_dep all Branch_History_Table_28.ngc104 target_dep Branch_History_Table_28.ngc Branch_History_Table_28.prj105 target_dep Branch_History_Table_28.prj Branch_History_Table_28_Pack.vhdl Branch_History_Table_28_RegisterFile_Pack.vhdl Branch_History_Table_28_RegisterFile.vhdl Branch_History_Table_28_Shifter_Pack.vhdl Branch_History_Table_28_Shifter.vhdl Branch_History_Table_28.vhdl106 107 # Branch_History_Table_29108 target_dep all Branch_History_Table_29.ngc109 target_dep Branch_History_Table_29.ngc Branch_History_Table_29.prj110 target_dep Branch_History_Table_29.prj Branch_History_Table_29_Pack.vhdl Branch_History_Table_29_RegisterFile_Pack.vhdl Branch_History_Table_29_RegisterFile.vhdl Branch_History_Table_29_Shifter_Pack.vhdl Branch_History_Table_29_Shifter.vhdl Branch_History_Table_29.vhdl111 112 # Branch_History_Table_2113 target_dep all Branch_History_Table_2.ngc114 target_dep Branch_History_Table_2.ngc Branch_History_Table_2.prj115 target_dep Branch_History_Table_2.prj Branch_History_Table_20_Pack.vhdl Branch_History_Table_20_RegisterFile_Pack.vhdl Branch_History_Table_20_RegisterFile.vhdl Branch_History_Table_20_Shifter_Pack.vhdl Branch_History_Table_20_Shifter.vhdl Branch_History_Table_20.vhdl Branch_History_Table_21_Pack.vhdl Branch_History_Table_21_RegisterFile_Pack.vhdl Branch_History_Table_21_RegisterFile.vhdl Branch_History_Table_21_Shifter_Pack.vhdl Branch_History_Table_21_Shifter.vhdl Branch_History_Table_21.vhdl Branch_History_Table_22_Pack.vhdl Branch_History_Table_22_RegisterFile_Pack.vhdl Branch_History_Table_22_RegisterFile.vhdl Branch_History_Table_22_Shifter_Pack.vhdl Branch_History_Table_22_Shifter.vhdl Branch_History_Table_22.vhdl Branch_History_Table_23_Pack.vhdl Branch_History_Table_23_RegisterFile_Pack.vhdl Branch_History_Table_23_RegisterFile.vhdl Branch_History_Table_23_Shifter_Pack.vhdl Branch_History_Table_23_Shifter.vhdl Branch_History_Table_23.vhdl Branch_History_Table_24_Pack.vhdl Branch_History_Table_24_RegisterFile_Pack.vhdl Branch_History_Table_24_RegisterFile.vhdl Branch_History_Table_24_Shifter_Pack.vhdl Branch_History_Table_24_Shifter.vhdl Branch_History_Table_24.vhdl Branch_History_Table_25_Pack.vhdl Branch_History_Table_25_RegisterFile_Pack.vhdl Branch_History_Table_25_RegisterFile.vhdl Branch_History_Table_25_Shifter_Pack.vhdl Branch_History_Table_25_Shifter.vhdl Branch_History_Table_25.vhdl Branch_History_Table_26_Pack.vhdl Branch_History_Table_26_RegisterFile_Pack.vhdl Branch_History_Table_26_RegisterFile.vhdl Branch_History_Table_26_Shifter_Pack.vhdl Branch_History_Table_26_Shifter.vhdl Branch_History_Table_26.vhdl Branch_History_Table_27_Pack.vhdl Branch_History_Table_27_RegisterFile_Pack.vhdl Branch_History_Table_27_RegisterFile.vhdl Branch_History_Table_27_Shifter_Pack.vhdl Branch_History_Table_27_Shifter.vhdl Branch_History_Table_27.vhdl Branch_History_Table_28_Pack.vhdl Branch_History_Table_28_RegisterFile_Pack.vhdl Branch_History_Table_28_RegisterFile.vhdl Branch_History_Table_28_Shifter_Pack.vhdl Branch_History_Table_28_Shifter.vhdl Branch_History_Table_28.vhdl Branch_History_Table_29_Pack.vhdl Branch_History_Table_29_RegisterFile_Pack.vhdl Branch_History_Table_29_RegisterFile.vhdl Branch_History_Table_29_Shifter_Pack.vhdl Branch_History_Table_29_Shifter.vhdl Branch_History_Table_29.vhdl Branch_History_Table_2_Pack.vhdl Branch_History_Table_2_RegisterFile_Pack.vhdl Branch_History_Table_2_RegisterFile.vhdl Branch_History_Table_2_Shifter_Pack.vhdl Branch_History_Table_2_Shifter.vhdl Branch_History_Table_2.vhdl116 117 # Branch_History_Table_30118 target_dep all Branch_History_Table_30.ngc119 target_dep Branch_History_Table_30.ngc Branch_History_Table_30.prj120 target_dep Branch_History_Table_30.prj Branch_History_Table_30_Pack.vhdl Branch_History_Table_30_RegisterFile_Pack.vhdl Branch_History_Table_30_RegisterFile.vhdl Branch_History_Table_30_Shifter_Pack.vhdl Branch_History_Table_30_Shifter.vhdl Branch_History_Table_30.vhdl121 122 # Branch_History_Table_31123 target_dep all Branch_History_Table_31.ngc124 target_dep Branch_History_Table_31.ngc Branch_History_Table_31.prj125 target_dep Branch_History_Table_31.prj Branch_History_Table_31_Pack.vhdl Branch_History_Table_31_RegisterFile_Pack.vhdl Branch_History_Table_31_RegisterFile.vhdl Branch_History_Table_31_Shifter_Pack.vhdl Branch_History_Table_31_Shifter.vhdl Branch_History_Table_31.vhdl126 127 # Branch_History_Table_32128 target_dep all Branch_History_Table_32.ngc129 target_dep Branch_History_Table_32.ngc Branch_History_Table_32.prj130 target_dep Branch_History_Table_32.prj Branch_History_Table_32_Pack.vhdl Branch_History_Table_32_RegisterFile_Pack.vhdl Branch_History_Table_32_RegisterFile.vhdl Branch_History_Table_32_Shifter_Pack.vhdl Branch_History_Table_32_Shifter.vhdl Branch_History_Table_32.vhdl131 132 # Branch_History_Table_33133 target_dep all Branch_History_Table_33.ngc134 target_dep Branch_History_Table_33.ngc Branch_History_Table_33.prj135 target_dep Branch_History_Table_33.prj Branch_History_Table_33_Pack.vhdl Branch_History_Table_33_RegisterFile_Pack.vhdl Branch_History_Table_33_RegisterFile.vhdl Branch_History_Table_33_Shifter_Pack.vhdl Branch_History_Table_33_Shifter.vhdl Branch_History_Table_33.vhdl136 137 # Branch_History_Table_34138 target_dep all Branch_History_Table_34.ngc139 target_dep Branch_History_Table_34.ngc Branch_History_Table_34.prj140 target_dep Branch_History_Table_34.prj Branch_History_Table_34_Pack.vhdl Branch_History_Table_34_RegisterFile_Pack.vhdl Branch_History_Table_34_RegisterFile.vhdl Branch_History_Table_34_Shifter_Pack.vhdl Branch_History_Table_34_Shifter.vhdl Branch_History_Table_34.vhdl141 142 # Branch_History_Table_35143 target_dep all Branch_History_Table_35.ngc144 target_dep Branch_History_Table_35.ngc Branch_History_Table_35.prj145 target_dep Branch_History_Table_35.prj Branch_History_Table_35_Pack.vhdl Branch_History_Table_35_RegisterFile_Pack.vhdl Branch_History_Table_35_RegisterFile.vhdl Branch_History_Table_35_Shifter_Pack.vhdl Branch_History_Table_35_Shifter.vhdl Branch_History_Table_35.vhdl146 147 # Branch_History_Table_3148 target_dep all Branch_History_Table_3.ngc149 target_dep Branch_History_Table_3.ngc Branch_History_Table_3.prj150 target_dep Branch_History_Table_3.prj Branch_History_Table_30_Pack.vhdl Branch_History_Table_30_RegisterFile_Pack.vhdl Branch_History_Table_30_RegisterFile.vhdl Branch_History_Table_30_Shifter_Pack.vhdl Branch_History_Table_30_Shifter.vhdl Branch_History_Table_30.vhdl Branch_History_Table_31_Pack.vhdl Branch_History_Table_31_RegisterFile_Pack.vhdl Branch_History_Table_31_RegisterFile.vhdl Branch_History_Table_31_Shifter_Pack.vhdl Branch_History_Table_31_Shifter.vhdl Branch_History_Table_31.vhdl Branch_History_Table_32_Pack.vhdl Branch_History_Table_32_RegisterFile_Pack.vhdl Branch_History_Table_32_RegisterFile.vhdl Branch_History_Table_32_Shifter_Pack.vhdl Branch_History_Table_32_Shifter.vhdl Branch_History_Table_32.vhdl Branch_History_Table_33_Pack.vhdl Branch_History_Table_33_RegisterFile_Pack.vhdl Branch_History_Table_33_RegisterFile.vhdl Branch_History_Table_33_Shifter_Pack.vhdl Branch_History_Table_33_Shifter.vhdl Branch_History_Table_33.vhdl Branch_History_Table_34_Pack.vhdl Branch_History_Table_34_RegisterFile_Pack.vhdl Branch_History_Table_34_RegisterFile.vhdl Branch_History_Table_34_Shifter_Pack.vhdl Branch_History_Table_34_Shifter.vhdl Branch_History_Table_34.vhdl Branch_History_Table_35_Pack.vhdl Branch_History_Table_35_RegisterFile_Pack.vhdl Branch_History_Table_35_RegisterFile.vhdl Branch_History_Table_35_Shifter_Pack.vhdl Branch_History_Table_35_Shifter.vhdl Branch_History_Table_35.vhdl Branch_History_Table_3_Pack.vhdl Branch_History_Table_3_RegisterFile_Pack.vhdl Branch_History_Table_3_RegisterFile.vhdl Branch_History_Table_3_Shifter_Pack.vhdl Branch_History_Table_3_Shifter.vhdl Branch_History_Table_3.vhdl151 152 # Branch_History_Table_4153 target_dep all Branch_History_Table_4.ngc154 target_dep Branch_History_Table_4.ngc Branch_History_Table_4.prj155 target_dep Branch_History_Table_4.prj Branch_History_Table_4_Pack.vhdl Branch_History_Table_4_RegisterFile_Pack.vhdl Branch_History_Table_4_RegisterFile.vhdl Branch_History_Table_4_Shifter_Pack.vhdl Branch_History_Table_4_Shifter.vhdl Branch_History_Table_4.vhdl156 157 # Branch_History_Table_5158 target_dep all Branch_History_Table_5.ngc159 target_dep Branch_History_Table_5.ngc Branch_History_Table_5.prj160 target_dep Branch_History_Table_5.prj Branch_History_Table_5_Pack.vhdl Branch_History_Table_5_RegisterFile_Pack.vhdl Branch_History_Table_5_RegisterFile.vhdl Branch_History_Table_5_Shifter_Pack.vhdl Branch_History_Table_5_Shifter.vhdl Branch_History_Table_5.vhdl161 162 # Branch_History_Table_6163 target_dep all Branch_History_Table_6.ngc164 target_dep Branch_History_Table_6.ngc Branch_History_Table_6.prj165 target_dep Branch_History_Table_6.prj Branch_History_Table_6_Pack.vhdl Branch_History_Table_6_RegisterFile_Pack.vhdl Branch_History_Table_6_RegisterFile.vhdl Branch_History_Table_6_Shifter_Pack.vhdl Branch_History_Table_6_Shifter.vhdl Branch_History_Table_6.vhdl166 167 # Branch_History_Table_7168 target_dep all Branch_History_Table_7.ngc169 target_dep Branch_History_Table_7.ngc Branch_History_Table_7.prj170 target_dep Branch_History_Table_7.prj Branch_History_Table_7_Pack.vhdl Branch_History_Table_7_RegisterFile_Pack.vhdl Branch_History_Table_7_RegisterFile.vhdl Branch_History_Table_7_Shifter_Pack.vhdl Branch_History_Table_7_Shifter.vhdl Branch_History_Table_7.vhdl171 172 # Branch_History_Table_8173 target_dep all Branch_History_Table_8.ngc174 target_dep Branch_History_Table_8.ngc Branch_History_Table_8.prj175 target_dep Branch_History_Table_8.prj Branch_History_Table_8_Pack.vhdl Branch_History_Table_8_RegisterFile_Pack.vhdl Branch_History_Table_8_RegisterFile.vhdl Branch_History_Table_8_Shifter_Pack.vhdl Branch_History_Table_8_Shifter.vhdl Branch_History_Table_8.vhdl176 177 # Branch_History_Table_9178 target_dep all Branch_History_Table_9.ngc179 target_dep Branch_History_Table_9.ngc Branch_History_Table_9.prj180 target_dep Branch_History_Table_9.prj Branch_History_Table_9_Pack.vhdl Branch_History_Table_9_RegisterFile_Pack.vhdl Branch_History_Table_9_RegisterFile.vhdl Branch_History_Table_9_Shifter_Pack.vhdl Branch_History_Table_9_Shifter.vhdl Branch_History_Table_9.vhdl181 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest/src/test.cpp
r3 r15 46 46 *********************************************************************/ 47 47 sc_clock CLOCK ("clock", 1.0, 0.5); 48 sc_signal<Tcontrol_t> NRESET; 48 49 sc_signal<Tcontrol_t> PREDICT_VAL [param._nb_prediction]; 49 50 sc_signal<Tcontrol_t> PREDICT_ACK [param._nb_prediction]; … … 64 65 65 66 (*(_Branch_History_Table->in_CLOCK)) (CLOCK); 67 (*(_Branch_History_Table->in_NRESET)) (NRESET); 66 68 67 69 for (uint32_t i=0; i<param._nb_prediction; i++) … … 97 99 cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl; 98 100 101 NRESET.write(1); 99 102 for (uint32_t i=0; i<param._nb_prediction; i++) 100 103 PREDICT_VAL [i].write(0); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Branch_History_Table.h
r3 r15 18 18 // Internal structure 19 19 #include "Behavioural/Generic/Shifter/include/Shifter.h" 20 #include "Behavioural/Generic/RegisterFile/include/RegisterFile.h" 21 20 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 22 21 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Parameters.h" 23 22 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Types.h" … … 68 67 // Interface 69 68 public : SC_CLOCK * in_CLOCK ; 69 public : SC_IN (Tcontrol_t) * in_NRESET ; 70 70 71 71 public : SC_IN (Tcontrol_t) ** in_PREDICT_VAL ; … … 88 88 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 89 public : morpheo::behavioural::generic::shifter::Shifter * component_Shifter ; 90 public : morpheo::behavioural::generic::registerfile:: RegisterFile* component_RegisterFile;90 public : morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic * component_RegisterFile; 91 91 92 92 // -----[ methods ]--------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Parameters.h
r2 r15 13 13 // Internal structure 14 14 #include "Behavioural/Generic/Shifter/include/Parameters.h" 15 #include "Behavioural/Generic/RegisterFile/ include/Parameters.h"15 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h" 16 16 #include <math.h> 17 17 … … 34 34 35 35 public : morpheo::behavioural::generic::shifter::Parameters * _param_shifter; 36 public : morpheo::behavioural::generic::registerfile:: Parameters * _param_registerfile;36 public : morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters * _param_registerfile; 37 37 38 38 //-----[ methods ]----------------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Statistics.h
r2 r15 14 14 #include "Behavioural/include/Parameters_Statistics.h" 15 15 #include "Behavioural/Generic/Shifter/include/Statistics.h" 16 #include "Behavioural/Generic/RegisterFile/ include/Statistics.h"16 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h" 17 17 //#include "Behavioural/Generic/Group/include/Statistics.h" 18 18 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/include/Parameters.h" -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table.cpp
r2 r15 56 56 allocation (); 57 57 58 // Constant59 for (uint32_t i=0; i<_param._nb_prediction ; i++)60 PORT_WRITE(out_PREDICT_ACK [i],1);61 for (uint32_t i=0; i<_param._nb_branch_complete; i++)62 PORT_WRITE(out_BRANCH_COMPLETE_ACK [i],1);58 // // Constant 59 // for (uint32_t i=0; i<_param._nb_prediction ; i++) 60 // PORT_WRITE(out_PREDICT_ACK [i],1); 61 // for (uint32_t i=0; i<_param._nb_branch_complete; i++) 62 // PORT_WRITE(out_BRANCH_COMPLETE_ACK [i],1); 63 63 64 64 #if (defined(STATISTICS) || defined (VHDL_TESTBENCH)) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_allocation.cpp
r3 r15 23 23 24 24 in_CLOCK = new SC_CLOCK ("in_CLOCK"); 25 in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET"); 25 26 26 27 in_PREDICT_VAL = new SC_IN (Tcontrol_t) * [_param._nb_prediction]; … … 102 103 name_component = _name+"_RegisterFile"; 103 104 104 component_RegisterFile = new morpheo::behavioural::generic::registerfile:: RegisterFile(name_component.c_str(),105 component_RegisterFile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic(name_component.c_str(), 105 106 #ifdef STATISTICS 106 107 _param_statistics , … … 109 110 110 111 // Instantiation 111 (*(component_RegisterFile->in_CLOCK)) (*(in_CLOCK)); 112 (*(component_RegisterFile->in_CLOCK )) (*(in_CLOCK )); 113 (*(component_RegisterFile->in_NRESET)) (*(in_NRESET)); 112 114 113 115 for (uint32_t i=0; i<_param._nb_prediction; i++) 114 116 { 115 (*(component_RegisterFile-> in_READ_ENABLE [i])) (*( in_PREDICT_VAL [i])); 117 (*(component_RegisterFile-> in_READ_VAL [i])) (*( in_PREDICT_VAL [i])); 118 (*(component_RegisterFile->out_READ_ACK [i])) (*(out_PREDICT_ACK [i])); 116 119 (*(component_RegisterFile-> in_READ_ADDRESS [i])) (*( in_PREDICT_ADDRESS [i])); 117 120 (*(component_RegisterFile->out_READ_DATA [i])) (*(out_PREDICT_HISTORY [i])); … … 120 123 for (uint32_t i=0; i<_param._nb_branch_complete; i++) 121 124 { 122 (*(component_RegisterFile-> in_WRITE_ENABLE [i])) (*( in_BRANCH_COMPLETE_VAL [i])); 125 (*(component_RegisterFile-> in_WRITE_VAL [i])) (*( in_BRANCH_COMPLETE_VAL [i])); 126 (*(component_RegisterFile->out_WRITE_ACK [i])) (*( out_BRANCH_COMPLETE_ACK [i])); 123 127 (*(component_RegisterFile-> in_WRITE_ADDRESS [i])) (*( in_BRANCH_COMPLETE_ADDRESS [i])); 124 128 (*(component_RegisterFile-> in_WRITE_DATA [i])) (*(signal_BRANCH_COMPLETE_HISTORY [i])); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_deallocation.cpp
r3 r15 20 20 { 21 21 delete in_CLOCK; 22 delete in_NRESET; 22 23 23 24 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_body.cpp
r3 r15 20 20 void Branch_History_Table::vhdl_body (Vhdl & vhdl) 21 21 { 22 vhdl.set_body ("-- Output : always at '1'");23 for (uint32_t i=0; i<_param._nb_branch_complete; i++)24 vhdl.set_body ("out_BRANCH_COMPLETE_ACK_"+toString(i)+" <= '1';");25 for (uint32_t i=0; i<_param._nb_prediction ; i++)26 vhdl.set_body ("out_PREDICT_ACK_"+toString(i)+" <= '1';");27 vhdl.set_body ("");22 // vhdl.set_body ("-- Output : always at '1'"); 23 // for (uint32_t i=0; i<_param._nb_branch_complete; i++) 24 // vhdl.set_body ("out_BRANCH_COMPLETE_ACK_"+toString(i)+" <= '1';"); 25 // for (uint32_t i=0; i<_param._nb_prediction ; i++) 26 // vhdl.set_body ("out_PREDICT_ACK_"+toString(i)+" <= '1';"); 27 // vhdl.set_body (""); 28 28 29 29 list<string> list_port_map; … … 40 40 list_port_map.clear(); 41 41 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK"); 42 vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET"); 43 42 44 for (uint32_t i=0; i<_param._nb_prediction; i++) 43 45 { 44 vhdl.set_body_component_port_map (list_port_map," in_READ_ENABLE_"+toString(i)+" "," in_PREDICT_VAL_"+toString(i)); 46 vhdl.set_body_component_port_map (list_port_map," in_READ_VAL_"+toString(i)+" "," in_PREDICT_VAL_"+toString(i)); 47 vhdl.set_body_component_port_map (list_port_map,"out_READ_ACK_"+toString(i)+" ","out_PREDICT_ACK_"+toString(i)); 45 48 vhdl.set_body_component_port_map (list_port_map," in_READ_ADDRESS_"+toString(i)+" "," in_PREDICT_ADDRESS_"+toString(i)); 46 49 vhdl.set_body_component_port_map (list_port_map,"out_READ_DATA_"+toString(i)+" ","out_PREDICT_HISTORY_"+toString(i)); … … 49 52 for (uint32_t i=0; i<_param._nb_branch_complete; i++) 50 53 { 51 vhdl.set_body_component_port_map (list_port_map," in_WRITE_ENABLE_"+toString(i)+" "," in_BRANCH_COMPLETE_VAL_"+toString(i)+""); 54 vhdl.set_body_component_port_map (list_port_map," in_WRITE_VAL_"+toString(i)+" "," in_BRANCH_COMPLETE_VAL_"+toString(i)+""); 55 vhdl.set_body_component_port_map (list_port_map,"out_WRITE_ACK_"+toString(i)+" "," out_BRANCH_COMPLETE_ACK_"+toString(i)+""); 52 56 vhdl.set_body_component_port_map (list_port_map," in_WRITE_ADDRESS_"+toString(i)+""," in_BRANCH_COMPLETE_ADDRESS_"+toString(i)); 53 57 vhdl.set_body_component_port_map (list_port_map," in_WRITE_DATA_"+toString(i)+" ","signal_BRANCH_COMPLETE_HISTORY_"+toString(i)); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_port.cpp
r3 r15 21 21 { 22 22 vhdl.set_port (" in_CLOCK" , IN, 1); 23 vhdl.set_port (" in_NRESET", IN, 1); 23 24 24 25 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_testbench_port.cpp
r3 r15 19 19 void Branch_History_Table::vhdl_testbench_port (void) 20 20 { 21 _vhdl_testbench->set_port (" in_NRESET", IN, 1); 21 22 for (uint32_t i=0; i<_param._nb_prediction; i++) 22 23 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Branch_History_Table_vhdl_testbench_transition.cpp
r3 r15 25 25 #endif 26 26 27 _vhdl_testbench->add_input (PORT_READ( in_NRESET)); 28 27 29 for (uint32_t i=0; i<_param._nb_prediction; i++) 28 30 { 29 31 _vhdl_testbench->add_input (PORT_READ( in_PREDICT_VAL [i])); 30 _vhdl_testbench->add_output (PORT_READ( out_PREDICT_ACK[i]));32 _vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_READ_ACK [i])); 31 33 _vhdl_testbench->add_input (PORT_READ( in_PREDICT_ADDRESS [i])); 32 34 _vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_READ_DATA [i])); … … 37 39 { 38 40 _vhdl_testbench->add_input (PORT_READ( in_BRANCH_COMPLETE_VAL [i])); 39 _vhdl_testbench->add_output (PORT_READ( out_BRANCH_COMPLETE_ACK[i]));41 _vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_WRITE_ACK [i])); 40 42 _vhdl_testbench->add_input (PORT_READ( in_BRANCH_COMPLETE_ADDRESS [i])); 41 43 _vhdl_testbench->add_input (PORT_READ( in_BRANCH_COMPLETE_HISTORY [i])); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/src/Parameters.cpp
r2 r15 32 32 morpheo::behavioural::generic::shifter::internal_left_shift, 33 33 morpheo::behavioural::generic::shifter::external_completion), 34 _param_registerfile = new morpheo::behavioural::generic::registerfile:: Parameters (nb_prediction ,35 36 37 34 _param_registerfile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters (nb_prediction , 35 nb_branch_complete , 36 nb_shifter , 37 size_shifter ); 38 38 39 39 test(); … … 54 54 true), 55 55 56 _param_registerfile = new morpheo::behavioural::generic::registerfile:: Parameters (param._nb_prediction ,57 58 59 56 _param_registerfile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters (param._nb_prediction , 57 param._nb_branch_complete , 58 param._nb_shifter , 59 param._size_shifter ); 60 60 61 61 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/Makefile.deps
r2 r15 14 14 include $(DIR_MORPHEO)/Behavioural/Generic/Counter/Makefile.deps 15 15 endif 16 ifndef RegisterFile 17 include $(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/ Makefile.deps16 ifndef RegisterFile_Monolithic 17 include $(DIR_MORPHEO)/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/Makefile.deps 18 18 endif 19 19 … … 22 22 #-----[ Library ]------------------------------------------ 23 23 Pattern_History_Table_LIBRARY = -lPattern_History_Table \ 24 $(RegisterFile_ LIBRARY) \24 $(RegisterFile_Monolithic_LIBRARY) \ 25 25 $(Counter_LIBRARY) \ 26 26 $(Behavioural_LIBRARY) 27 27 28 28 Pattern_History_Table_DIR_LIBRARY = -L$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/lib \ 29 $(RegisterFile_ DIR_LIBRARY) \29 $(RegisterFile_Monolithic_DIR_LIBRARY) \ 30 30 $(Counter_DIR_LIBRARY) \ 31 31 $(Behavioural_DIR_LIBRARY) … … 36 36 @$(MAKE) Behavioural_library 37 37 @$(MAKE) Counter_library 38 @$(MAKE) RegisterFile_ library38 @$(MAKE) RegisterFile_Monolithic_library 39 39 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table --makefile=Makefile 40 40 … … 42 42 @$(MAKE) Behavioural_library_clean 43 43 @$(MAKE) Counter_library_clean 44 @$(MAKE) RegisterFile_ library_clean44 @$(MAKE) RegisterFile_Monolithic_library_clean 45 45 @$(MAKE) --directory=$(DIR_MORPHEO)/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table --makefile=Makefile clean -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/mkf.info
r2 r15 1 2 # Pattern_History_Table_03 target_dep all Pattern_History_Table_0.ngc4 target_dep Pattern_History_Table_0.ngc Pattern_History_Table_0.prj5 target_dep Pattern_History_Table_0.prj Pattern_History_Table_0_Counter_Pack.vhdl Pattern_History_Table_0_Counter.vhdl Pattern_History_Table_0_Pack.vhdl Pattern_History_Table_0_RegisterFile_Pack.vhdl Pattern_History_Table_0_RegisterFile.vhdl Pattern_History_Table_0.vhdl6 7 # Pattern_History_Table_108 target_dep all Pattern_History_Table_10.ngc9 target_dep Pattern_History_Table_10.ngc Pattern_History_Table_10.prj10 target_dep Pattern_History_Table_10.prj Pattern_History_Table_10_Counter_Pack.vhdl Pattern_History_Table_10_Counter.vhdl Pattern_History_Table_10_Pack.vhdl Pattern_History_Table_10_RegisterFile_Pack.vhdl Pattern_History_Table_10_RegisterFile.vhdl Pattern_History_Table_10.vhdl11 12 # Pattern_History_Table_1113 target_dep all Pattern_History_Table_11.ngc14 target_dep Pattern_History_Table_11.ngc Pattern_History_Table_11.prj15 target_dep Pattern_History_Table_11.prj Pattern_History_Table_11_Counter_Pack.vhdl Pattern_History_Table_11_Counter.vhdl Pattern_History_Table_11_Pack.vhdl Pattern_History_Table_11_RegisterFile_Pack.vhdl Pattern_History_Table_11_RegisterFile.vhdl Pattern_History_Table_11.vhdl16 17 # Pattern_History_Table_1218 target_dep all Pattern_History_Table_12.ngc19 target_dep Pattern_History_Table_12.ngc Pattern_History_Table_12.prj20 target_dep Pattern_History_Table_12.prj Pattern_History_Table_12_Counter_Pack.vhdl Pattern_History_Table_12_Counter.vhdl Pattern_History_Table_12_Pack.vhdl Pattern_History_Table_12_RegisterFile_Pack.vhdl Pattern_History_Table_12_RegisterFile.vhdl Pattern_History_Table_12.vhdl21 22 # Pattern_History_Table_1323 target_dep all Pattern_History_Table_13.ngc24 target_dep Pattern_History_Table_13.ngc Pattern_History_Table_13.prj25 target_dep Pattern_History_Table_13.prj Pattern_History_Table_13_Counter_Pack.vhdl Pattern_History_Table_13_Counter.vhdl Pattern_History_Table_13_Pack.vhdl Pattern_History_Table_13_RegisterFile_Pack.vhdl Pattern_History_Table_13_RegisterFile.vhdl Pattern_History_Table_13.vhdl26 27 # Pattern_History_Table_1428 target_dep all Pattern_History_Table_14.ngc29 target_dep Pattern_History_Table_14.ngc Pattern_History_Table_14.prj30 target_dep Pattern_History_Table_14.prj Pattern_History_Table_14_Counter_Pack.vhdl Pattern_History_Table_14_Counter.vhdl Pattern_History_Table_14_Pack.vhdl Pattern_History_Table_14_RegisterFile_Pack.vhdl Pattern_History_Table_14_RegisterFile.vhdl Pattern_History_Table_14.vhdl31 32 # Pattern_History_Table_1533 target_dep all Pattern_History_Table_15.ngc34 target_dep Pattern_History_Table_15.ngc Pattern_History_Table_15.prj35 target_dep Pattern_History_Table_15.prj Pattern_History_Table_15_Counter_Pack.vhdl Pattern_History_Table_15_Counter.vhdl Pattern_History_Table_15_Pack.vhdl Pattern_History_Table_15_RegisterFile_Pack.vhdl Pattern_History_Table_15_RegisterFile.vhdl Pattern_History_Table_15.vhdl36 37 # Pattern_History_Table_1638 target_dep all Pattern_History_Table_16.ngc39 target_dep Pattern_History_Table_16.ngc Pattern_History_Table_16.prj40 target_dep Pattern_History_Table_16.prj Pattern_History_Table_16_Counter_Pack.vhdl Pattern_History_Table_16_Counter.vhdl Pattern_History_Table_16_Pack.vhdl Pattern_History_Table_16_RegisterFile_Pack.vhdl Pattern_History_Table_16_RegisterFile.vhdl Pattern_History_Table_16.vhdl41 42 # Pattern_History_Table_1743 target_dep all Pattern_History_Table_17.ngc44 target_dep Pattern_History_Table_17.ngc Pattern_History_Table_17.prj45 target_dep Pattern_History_Table_17.prj Pattern_History_Table_17_Counter_Pack.vhdl Pattern_History_Table_17_Counter.vhdl Pattern_History_Table_17_Pack.vhdl Pattern_History_Table_17_RegisterFile_Pack.vhdl Pattern_History_Table_17_RegisterFile.vhdl Pattern_History_Table_17.vhdl46 47 # Pattern_History_Table_1848 target_dep all Pattern_History_Table_18.ngc49 target_dep Pattern_History_Table_18.ngc Pattern_History_Table_18.prj50 target_dep Pattern_History_Table_18.prj Pattern_History_Table_18_Counter_Pack.vhdl Pattern_History_Table_18_Counter.vhdl Pattern_History_Table_18_Pack.vhdl Pattern_History_Table_18_RegisterFile_Pack.vhdl Pattern_History_Table_18_RegisterFile.vhdl Pattern_History_Table_18.vhdl51 52 # Pattern_History_Table_1953 target_dep all Pattern_History_Table_19.ngc54 target_dep Pattern_History_Table_19.ngc Pattern_History_Table_19.prj55 target_dep Pattern_History_Table_19.prj Pattern_History_Table_19_Counter_Pack.vhdl Pattern_History_Table_19_Counter.vhdl Pattern_History_Table_19_Pack.vhdl Pattern_History_Table_19_RegisterFile_Pack.vhdl Pattern_History_Table_19_RegisterFile.vhdl Pattern_History_Table_19.vhdl56 57 # Pattern_History_Table_158 target_dep all Pattern_History_Table_1.ngc59 target_dep Pattern_History_Table_1.ngc Pattern_History_Table_1.prj60 target_dep Pattern_History_Table_1.prj Pattern_History_Table_10_Counter_Pack.vhdl Pattern_History_Table_10_Counter.vhdl Pattern_History_Table_10_Pack.vhdl Pattern_History_Table_10_RegisterFile_Pack.vhdl Pattern_History_Table_10_RegisterFile.vhdl Pattern_History_Table_10.vhdl Pattern_History_Table_11_Counter_Pack.vhdl Pattern_History_Table_11_Counter.vhdl Pattern_History_Table_11_Pack.vhdl Pattern_History_Table_11_RegisterFile_Pack.vhdl Pattern_History_Table_11_RegisterFile.vhdl Pattern_History_Table_11.vhdl Pattern_History_Table_12_Counter_Pack.vhdl Pattern_History_Table_12_Counter.vhdl Pattern_History_Table_12_Pack.vhdl Pattern_History_Table_12_RegisterFile_Pack.vhdl Pattern_History_Table_12_RegisterFile.vhdl Pattern_History_Table_12.vhdl Pattern_History_Table_13_Counter_Pack.vhdl Pattern_History_Table_13_Counter.vhdl Pattern_History_Table_13_Pack.vhdl Pattern_History_Table_13_RegisterFile_Pack.vhdl Pattern_History_Table_13_RegisterFile.vhdl Pattern_History_Table_13.vhdl Pattern_History_Table_14_Counter_Pack.vhdl Pattern_History_Table_14_Counter.vhdl Pattern_History_Table_14_Pack.vhdl Pattern_History_Table_14_RegisterFile_Pack.vhdl Pattern_History_Table_14_RegisterFile.vhdl Pattern_History_Table_14.vhdl Pattern_History_Table_15_Counter_Pack.vhdl Pattern_History_Table_15_Counter.vhdl Pattern_History_Table_15_Pack.vhdl Pattern_History_Table_15_RegisterFile_Pack.vhdl Pattern_History_Table_15_RegisterFile.vhdl Pattern_History_Table_15.vhdl Pattern_History_Table_16_Counter_Pack.vhdl Pattern_History_Table_16_Counter.vhdl Pattern_History_Table_16_Pack.vhdl Pattern_History_Table_16_RegisterFile_Pack.vhdl Pattern_History_Table_16_RegisterFile.vhdl Pattern_History_Table_16.vhdl Pattern_History_Table_17_Counter_Pack.vhdl Pattern_History_Table_17_Counter.vhdl Pattern_History_Table_17_Pack.vhdl Pattern_History_Table_17_RegisterFile_Pack.vhdl Pattern_History_Table_17_RegisterFile.vhdl Pattern_History_Table_17.vhdl Pattern_History_Table_18_Counter_Pack.vhdl Pattern_History_Table_18_Counter.vhdl Pattern_History_Table_18_Pack.vhdl Pattern_History_Table_18_RegisterFile_Pack.vhdl Pattern_History_Table_18_RegisterFile.vhdl Pattern_History_Table_18.vhdl Pattern_History_Table_19_Counter_Pack.vhdl Pattern_History_Table_19_Counter.vhdl Pattern_History_Table_19_Pack.vhdl Pattern_History_Table_19_RegisterFile_Pack.vhdl Pattern_History_Table_19_RegisterFile.vhdl Pattern_History_Table_19.vhdl Pattern_History_Table_1_Counter_Pack.vhdl Pattern_History_Table_1_Counter.vhdl Pattern_History_Table_1_Pack.vhdl Pattern_History_Table_1_RegisterFile_Pack.vhdl Pattern_History_Table_1_RegisterFile.vhdl Pattern_History_Table_1.vhdl61 62 # Pattern_History_Table_2063 target_dep all Pattern_History_Table_20.ngc64 target_dep Pattern_History_Table_20.ngc Pattern_History_Table_20.prj65 target_dep Pattern_History_Table_20.prj Pattern_History_Table_20_Counter_Pack.vhdl Pattern_History_Table_20_Counter.vhdl Pattern_History_Table_20_Pack.vhdl Pattern_History_Table_20_RegisterFile_Pack.vhdl Pattern_History_Table_20_RegisterFile.vhdl Pattern_History_Table_20.vhdl66 67 # Pattern_History_Table_2168 target_dep all Pattern_History_Table_21.ngc69 target_dep Pattern_History_Table_21.ngc Pattern_History_Table_21.prj70 target_dep Pattern_History_Table_21.prj Pattern_History_Table_21_Counter_Pack.vhdl Pattern_History_Table_21_Counter.vhdl Pattern_History_Table_21_Pack.vhdl Pattern_History_Table_21_RegisterFile_Pack.vhdl Pattern_History_Table_21_RegisterFile.vhdl Pattern_History_Table_21.vhdl71 72 # Pattern_History_Table_2273 target_dep all Pattern_History_Table_22.ngc74 target_dep Pattern_History_Table_22.ngc Pattern_History_Table_22.prj75 target_dep Pattern_History_Table_22.prj Pattern_History_Table_22_Counter_Pack.vhdl Pattern_History_Table_22_Counter.vhdl Pattern_History_Table_22_Pack.vhdl Pattern_History_Table_22_RegisterFile_Pack.vhdl Pattern_History_Table_22_RegisterFile.vhdl Pattern_History_Table_22.vhdl76 77 # Pattern_History_Table_2378 target_dep all Pattern_History_Table_23.ngc79 target_dep Pattern_History_Table_23.ngc Pattern_History_Table_23.prj80 target_dep Pattern_History_Table_23.prj Pattern_History_Table_23_Counter_Pack.vhdl Pattern_History_Table_23_Counter.vhdl Pattern_History_Table_23_Pack.vhdl Pattern_History_Table_23_RegisterFile_Pack.vhdl Pattern_History_Table_23_RegisterFile.vhdl Pattern_History_Table_23.vhdl81 82 # Pattern_History_Table_2483 target_dep all Pattern_History_Table_24.ngc84 target_dep Pattern_History_Table_24.ngc Pattern_History_Table_24.prj85 target_dep Pattern_History_Table_24.prj Pattern_History_Table_24_Counter_Pack.vhdl Pattern_History_Table_24_Counter.vhdl Pattern_History_Table_24_Pack.vhdl Pattern_History_Table_24_RegisterFile_Pack.vhdl Pattern_History_Table_24_RegisterFile.vhdl Pattern_History_Table_24.vhdl86 87 # Pattern_History_Table_2588 target_dep all Pattern_History_Table_25.ngc89 target_dep Pattern_History_Table_25.ngc Pattern_History_Table_25.prj90 target_dep Pattern_History_Table_25.prj Pattern_History_Table_25_Counter_Pack.vhdl Pattern_History_Table_25_Counter.vhdl Pattern_History_Table_25_Pack.vhdl Pattern_History_Table_25_RegisterFile_Pack.vhdl Pattern_History_Table_25_RegisterFile.vhdl Pattern_History_Table_25.vhdl91 92 # Pattern_History_Table_2693 target_dep all Pattern_History_Table_26.ngc94 target_dep Pattern_History_Table_26.ngc Pattern_History_Table_26.prj95 target_dep Pattern_History_Table_26.prj Pattern_History_Table_26_Counter_Pack.vhdl Pattern_History_Table_26_Counter.vhdl Pattern_History_Table_26_Pack.vhdl Pattern_History_Table_26_RegisterFile_Pack.vhdl Pattern_History_Table_26_RegisterFile.vhdl Pattern_History_Table_26.vhdl96 97 # Pattern_History_Table_2798 target_dep all Pattern_History_Table_27.ngc99 target_dep Pattern_History_Table_27.ngc Pattern_History_Table_27.prj100 target_dep Pattern_History_Table_27.prj Pattern_History_Table_27_Counter_Pack.vhdl Pattern_History_Table_27_Counter.vhdl Pattern_History_Table_27_Pack.vhdl Pattern_History_Table_27_RegisterFile_Pack.vhdl Pattern_History_Table_27_RegisterFile.vhdl Pattern_History_Table_27.vhdl101 102 # Pattern_History_Table_28103 target_dep all Pattern_History_Table_28.ngc104 target_dep Pattern_History_Table_28.ngc Pattern_History_Table_28.prj105 target_dep Pattern_History_Table_28.prj Pattern_History_Table_28_Counter_Pack.vhdl Pattern_History_Table_28_Counter.vhdl Pattern_History_Table_28_Pack.vhdl Pattern_History_Table_28_RegisterFile_Pack.vhdl Pattern_History_Table_28_RegisterFile.vhdl Pattern_History_Table_28.vhdl106 107 # Pattern_History_Table_29108 target_dep all Pattern_History_Table_29.ngc109 target_dep Pattern_History_Table_29.ngc Pattern_History_Table_29.prj110 target_dep Pattern_History_Table_29.prj Pattern_History_Table_29_Counter_Pack.vhdl Pattern_History_Table_29_Counter.vhdl Pattern_History_Table_29_Pack.vhdl Pattern_History_Table_29_RegisterFile_Pack.vhdl Pattern_History_Table_29_RegisterFile.vhdl Pattern_History_Table_29.vhdl111 112 # Pattern_History_Table_2113 target_dep all Pattern_History_Table_2.ngc114 target_dep Pattern_History_Table_2.ngc Pattern_History_Table_2.prj115 target_dep Pattern_History_Table_2.prj Pattern_History_Table_20_Counter_Pack.vhdl Pattern_History_Table_20_Counter.vhdl Pattern_History_Table_20_Pack.vhdl Pattern_History_Table_20_RegisterFile_Pack.vhdl Pattern_History_Table_20_RegisterFile.vhdl Pattern_History_Table_20.vhdl Pattern_History_Table_21_Counter_Pack.vhdl Pattern_History_Table_21_Counter.vhdl Pattern_History_Table_21_Pack.vhdl Pattern_History_Table_21_RegisterFile_Pack.vhdl Pattern_History_Table_21_RegisterFile.vhdl Pattern_History_Table_21.vhdl Pattern_History_Table_22_Counter_Pack.vhdl Pattern_History_Table_22_Counter.vhdl Pattern_History_Table_22_Pack.vhdl Pattern_History_Table_22_RegisterFile_Pack.vhdl Pattern_History_Table_22_RegisterFile.vhdl Pattern_History_Table_22.vhdl Pattern_History_Table_23_Counter_Pack.vhdl Pattern_History_Table_23_Counter.vhdl Pattern_History_Table_23_Pack.vhdl Pattern_History_Table_23_RegisterFile_Pack.vhdl Pattern_History_Table_23_RegisterFile.vhdl Pattern_History_Table_23.vhdl Pattern_History_Table_24_Counter_Pack.vhdl Pattern_History_Table_24_Counter.vhdl Pattern_History_Table_24_Pack.vhdl Pattern_History_Table_24_RegisterFile_Pack.vhdl Pattern_History_Table_24_RegisterFile.vhdl Pattern_History_Table_24.vhdl Pattern_History_Table_25_Counter_Pack.vhdl Pattern_History_Table_25_Counter.vhdl Pattern_History_Table_25_Pack.vhdl Pattern_History_Table_25_RegisterFile_Pack.vhdl Pattern_History_Table_25_RegisterFile.vhdl Pattern_History_Table_25.vhdl Pattern_History_Table_26_Counter_Pack.vhdl Pattern_History_Table_26_Counter.vhdl Pattern_History_Table_26_Pack.vhdl Pattern_History_Table_26_RegisterFile_Pack.vhdl Pattern_History_Table_26_RegisterFile.vhdl Pattern_History_Table_26.vhdl Pattern_History_Table_27_Counter_Pack.vhdl Pattern_History_Table_27_Counter.vhdl Pattern_History_Table_27_Pack.vhdl Pattern_History_Table_27_RegisterFile_Pack.vhdl Pattern_History_Table_27_RegisterFile.vhdl Pattern_History_Table_27.vhdl Pattern_History_Table_28_Counter_Pack.vhdl Pattern_History_Table_28_Counter.vhdl Pattern_History_Table_28_Pack.vhdl Pattern_History_Table_28_RegisterFile_Pack.vhdl Pattern_History_Table_28_RegisterFile.vhdl Pattern_History_Table_28.vhdl Pattern_History_Table_29_Counter_Pack.vhdl Pattern_History_Table_29_Counter.vhdl Pattern_History_Table_29_Pack.vhdl Pattern_History_Table_29_RegisterFile_Pack.vhdl Pattern_History_Table_29_RegisterFile.vhdl Pattern_History_Table_29.vhdl Pattern_History_Table_2_Counter_Pack.vhdl Pattern_History_Table_2_Counter.vhdl Pattern_History_Table_2_Pack.vhdl Pattern_History_Table_2_RegisterFile_Pack.vhdl Pattern_History_Table_2_RegisterFile.vhdl Pattern_History_Table_2.vhdl116 117 # Pattern_History_Table_30118 target_dep all Pattern_History_Table_30.ngc119 target_dep Pattern_History_Table_30.ngc Pattern_History_Table_30.prj120 target_dep Pattern_History_Table_30.prj Pattern_History_Table_30_Counter_Pack.vhdl Pattern_History_Table_30_Counter.vhdl Pattern_History_Table_30_Pack.vhdl Pattern_History_Table_30_RegisterFile_Pack.vhdl Pattern_History_Table_30_RegisterFile.vhdl Pattern_History_Table_30.vhdl121 122 # Pattern_History_Table_31123 target_dep all Pattern_History_Table_31.ngc124 target_dep Pattern_History_Table_31.ngc Pattern_History_Table_31.prj125 target_dep Pattern_History_Table_31.prj Pattern_History_Table_31_Counter_Pack.vhdl Pattern_History_Table_31_Counter.vhdl Pattern_History_Table_31_Pack.vhdl Pattern_History_Table_31_RegisterFile_Pack.vhdl Pattern_History_Table_31_RegisterFile.vhdl Pattern_History_Table_31.vhdl126 127 # Pattern_History_Table_32128 target_dep all Pattern_History_Table_32.ngc129 target_dep Pattern_History_Table_32.ngc Pattern_History_Table_32.prj130 target_dep Pattern_History_Table_32.prj Pattern_History_Table_32_Counter_Pack.vhdl Pattern_History_Table_32_Counter.vhdl Pattern_History_Table_32_Pack.vhdl Pattern_History_Table_32_RegisterFile_Pack.vhdl Pattern_History_Table_32_RegisterFile.vhdl Pattern_History_Table_32.vhdl131 132 # Pattern_History_Table_33133 target_dep all Pattern_History_Table_33.ngc134 target_dep Pattern_History_Table_33.ngc Pattern_History_Table_33.prj135 target_dep Pattern_History_Table_33.prj Pattern_History_Table_33_Counter_Pack.vhdl Pattern_History_Table_33_Counter.vhdl Pattern_History_Table_33_Pack.vhdl Pattern_History_Table_33_RegisterFile_Pack.vhdl Pattern_History_Table_33_RegisterFile.vhdl Pattern_History_Table_33.vhdl136 137 # Pattern_History_Table_34138 target_dep all Pattern_History_Table_34.ngc139 target_dep Pattern_History_Table_34.ngc Pattern_History_Table_34.prj140 target_dep Pattern_History_Table_34.prj Pattern_History_Table_34_Counter_Pack.vhdl Pattern_History_Table_34_Counter.vhdl Pattern_History_Table_34_Pack.vhdl Pattern_History_Table_34_RegisterFile_Pack.vhdl Pattern_History_Table_34_RegisterFile.vhdl Pattern_History_Table_34.vhdl141 142 # Pattern_History_Table_35143 target_dep all Pattern_History_Table_35.ngc144 target_dep Pattern_History_Table_35.ngc Pattern_History_Table_35.prj145 target_dep Pattern_History_Table_35.prj Pattern_History_Table_35_Counter_Pack.vhdl Pattern_History_Table_35_Counter.vhdl Pattern_History_Table_35_Pack.vhdl Pattern_History_Table_35_RegisterFile_Pack.vhdl Pattern_History_Table_35_RegisterFile.vhdl Pattern_History_Table_35.vhdl146 147 # Pattern_History_Table_3148 target_dep all Pattern_History_Table_3.ngc149 target_dep Pattern_History_Table_3.ngc Pattern_History_Table_3.prj150 target_dep Pattern_History_Table_3.prj Pattern_History_Table_30_Counter_Pack.vhdl Pattern_History_Table_30_Counter.vhdl Pattern_History_Table_30_Pack.vhdl Pattern_History_Table_30_RegisterFile_Pack.vhdl Pattern_History_Table_30_RegisterFile.vhdl Pattern_History_Table_30.vhdl Pattern_History_Table_31_Counter_Pack.vhdl Pattern_History_Table_31_Counter.vhdl Pattern_History_Table_31_Pack.vhdl Pattern_History_Table_31_RegisterFile_Pack.vhdl Pattern_History_Table_31_RegisterFile.vhdl Pattern_History_Table_31.vhdl Pattern_History_Table_32_Counter_Pack.vhdl Pattern_History_Table_32_Counter.vhdl Pattern_History_Table_32_Pack.vhdl Pattern_History_Table_32_RegisterFile_Pack.vhdl Pattern_History_Table_32_RegisterFile.vhdl Pattern_History_Table_32.vhdl Pattern_History_Table_33_Counter_Pack.vhdl Pattern_History_Table_33_Counter.vhdl Pattern_History_Table_33_Pack.vhdl Pattern_History_Table_33_RegisterFile_Pack.vhdl Pattern_History_Table_33_RegisterFile.vhdl Pattern_History_Table_33.vhdl Pattern_History_Table_34_Counter_Pack.vhdl Pattern_History_Table_34_Counter.vhdl Pattern_History_Table_34_Pack.vhdl Pattern_History_Table_34_RegisterFile_Pack.vhdl Pattern_History_Table_34_RegisterFile.vhdl Pattern_History_Table_34.vhdl Pattern_History_Table_35_Counter_Pack.vhdl Pattern_History_Table_35_Counter.vhdl Pattern_History_Table_35_Pack.vhdl Pattern_History_Table_35_RegisterFile_Pack.vhdl Pattern_History_Table_35_RegisterFile.vhdl Pattern_History_Table_35.vhdl Pattern_History_Table_3_Counter_Pack.vhdl Pattern_History_Table_3_Counter.vhdl Pattern_History_Table_3_Pack.vhdl Pattern_History_Table_3_RegisterFile_Pack.vhdl Pattern_History_Table_3_RegisterFile.vhdl Pattern_History_Table_3.vhdl151 152 # Pattern_History_Table_4153 target_dep all Pattern_History_Table_4.ngc154 target_dep Pattern_History_Table_4.ngc Pattern_History_Table_4.prj155 target_dep Pattern_History_Table_4.prj Pattern_History_Table_4_Counter_Pack.vhdl Pattern_History_Table_4_Counter.vhdl Pattern_History_Table_4_Pack.vhdl Pattern_History_Table_4_RegisterFile_Pack.vhdl Pattern_History_Table_4_RegisterFile.vhdl Pattern_History_Table_4.vhdl156 157 # Pattern_History_Table_5158 target_dep all Pattern_History_Table_5.ngc159 target_dep Pattern_History_Table_5.ngc Pattern_History_Table_5.prj160 target_dep Pattern_History_Table_5.prj Pattern_History_Table_5_Counter_Pack.vhdl Pattern_History_Table_5_Counter.vhdl Pattern_History_Table_5_Pack.vhdl Pattern_History_Table_5_RegisterFile_Pack.vhdl Pattern_History_Table_5_RegisterFile.vhdl Pattern_History_Table_5.vhdl161 162 # Pattern_History_Table_6163 target_dep all Pattern_History_Table_6.ngc164 target_dep Pattern_History_Table_6.ngc Pattern_History_Table_6.prj165 target_dep Pattern_History_Table_6.prj Pattern_History_Table_6_Counter_Pack.vhdl Pattern_History_Table_6_Counter.vhdl Pattern_History_Table_6_Pack.vhdl Pattern_History_Table_6_RegisterFile_Pack.vhdl Pattern_History_Table_6_RegisterFile.vhdl Pattern_History_Table_6.vhdl166 167 # Pattern_History_Table_7168 target_dep all Pattern_History_Table_7.ngc169 target_dep Pattern_History_Table_7.ngc Pattern_History_Table_7.prj170 target_dep Pattern_History_Table_7.prj Pattern_History_Table_7_Counter_Pack.vhdl Pattern_History_Table_7_Counter.vhdl Pattern_History_Table_7_Pack.vhdl Pattern_History_Table_7_RegisterFile_Pack.vhdl Pattern_History_Table_7_RegisterFile.vhdl Pattern_History_Table_7.vhdl171 172 # Pattern_History_Table_8173 target_dep all Pattern_History_Table_8.ngc174 target_dep Pattern_History_Table_8.ngc Pattern_History_Table_8.prj175 target_dep Pattern_History_Table_8.prj Pattern_History_Table_8_Counter_Pack.vhdl Pattern_History_Table_8_Counter.vhdl Pattern_History_Table_8_Pack.vhdl Pattern_History_Table_8_RegisterFile_Pack.vhdl Pattern_History_Table_8_RegisterFile.vhdl Pattern_History_Table_8.vhdl176 177 # Pattern_History_Table_9178 target_dep all Pattern_History_Table_9.ngc179 target_dep Pattern_History_Table_9.ngc Pattern_History_Table_9.prj180 target_dep Pattern_History_Table_9.prj Pattern_History_Table_9_Counter_Pack.vhdl Pattern_History_Table_9_Counter.vhdl Pattern_History_Table_9_Pack.vhdl Pattern_History_Table_9_RegisterFile_Pack.vhdl Pattern_History_Table_9_RegisterFile.vhdl Pattern_History_Table_9.vhdl181 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest/src/test.cpp
r3 r15 43 43 *********************************************************************/ 44 44 sc_clock CLOCK ("clock", 1.0, 0.5); 45 sc_signal<Tcontrol_t> NRESET; 46 45 47 sc_signal<Tcontrol_t> PREDICT_VAL [param._nb_prediction]; 46 48 sc_signal<Tcontrol_t> PREDICT_ACK [param._nb_prediction]; … … 61 63 62 64 (*(_Pattern_History_Table->in_CLOCK)) (CLOCK); 65 (*(_Pattern_History_Table->in_NRESET)) (NRESET); 63 66 64 67 for (uint32_t i=0; i<param._nb_prediction; i++) … … 92 95 _Pattern_History_Table->vhdl_testbench_label("Initialisation"); 93 96 cout << "{"+toString(static_cast<uint32_t>(sc_simulation_time()))+"} Initialisation" << endl; 94 97 98 NRESET.write(1); 95 99 96 100 for (uint32_t i=0; i<param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Parameters.h
r2 r15 13 13 // Internal structure 14 14 #include "Behavioural/Generic/Counter/include/Parameters.h" 15 #include "Behavioural/Generic/RegisterFile/ include/Parameters.h"15 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h" 16 16 #include <math.h> 17 17 … … 34 34 35 35 public : morpheo::behavioural::generic::counter::Parameters * _param_counter; 36 public : morpheo::behavioural::generic::registerfile:: Parameters * _param_registerfile;36 public : morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters * _param_registerfile; 37 37 38 38 //-----[ methods ]----------------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Pattern_History_Table.h
r3 r15 19 19 // Internal structure 20 20 #include "Behavioural/Generic/Counter/include/Counter.h" 21 #include "Behavioural/Generic/RegisterFile/ include/RegisterFile.h"21 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h" 22 22 23 23 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Parameters.h" … … 70 70 // Interface 71 71 public : SC_CLOCK * in_CLOCK ; 72 public : SC_IN (Tcontrol_t) * in_NRESET ; 72 73 73 74 public : SC_IN (Tcontrol_t) ** in_PREDICT_VAL ; … … 90 91 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 92 public : morpheo::behavioural::generic::counter::Counter * component_Counter ; 92 public : morpheo::behavioural::generic::registerfile:: RegisterFile* component_RegisterFile;93 public : morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic * component_RegisterFile; 93 94 94 95 // -----[ methods ]--------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Statistics.h
r2 r15 14 14 #include "Behavioural/include/Parameters_Statistics.h" 15 15 #include "Behavioural/Generic/Counter/include/Statistics.h" 16 #include "Behavioural/Generic/RegisterFile/ include/Statistics.h"16 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Statistics.h" 17 17 //#include "Behavioural/Generic/Group/include/Statistics.h" 18 18 #include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/include/Parameters.h" -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Parameters.cpp
r2 r15 30 30 _param_counter = new morpheo::behavioural::generic::counter::Parameters (size_counter , 31 31 nb_branch_complete ); 32 _param_registerfile = new morpheo::behavioural::generic::registerfile:: Parameters (nb_prediction ,33 34 35 32 _param_registerfile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters (nb_prediction , 33 nb_branch_complete , 34 nb_counter , 35 size_counter ); 36 36 37 37 … … 51 51 param._nb_branch_complete ); 52 52 53 _param_registerfile = new morpheo::behavioural::generic::registerfile:: Parameters (param._nb_prediction ,54 55 56 57 53 _param_registerfile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::Parameters (param._nb_prediction , 54 param._nb_branch_complete , 55 param._nb_counter , 56 param._size_counter ); 57 58 58 test(); 59 59 log_printf(FUNC,Pattern_History_Table,"Parameters","End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table.cpp
r2 r15 58 58 allocation (); 59 59 60 // Constant61 for (uint32_t i=0; i<_param._nb_prediction ; i++)62 PORT_WRITE(out_PREDICT_ACK [i],1);63 for (uint32_t i=0; i<_param._nb_branch_complete; i++)64 PORT_WRITE(out_BRANCH_COMPLETE_ACK [i],1);60 // // Constant 61 // for (uint32_t i=0; i<_param._nb_prediction ; i++) 62 // PORT_WRITE(out_PREDICT_ACK [i],1); 63 // for (uint32_t i=0; i<_param._nb_branch_complete; i++) 64 // PORT_WRITE(out_BRANCH_COMPLETE_ACK [i],1); 65 65 66 66 #if (defined(STATISTICS) || defined (VHDL_TESTBENCH)) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_allocation.cpp
r3 r15 25 25 26 26 in_CLOCK = new SC_CLOCK ("in_CLOCK"); 27 in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET"); 27 28 28 29 in_PREDICT_VAL = new SC_IN (Tcontrol_t) * [_param._nb_prediction]; … … 104 105 name_component = _name+"_RegisterFile"; 105 106 106 component_RegisterFile = new morpheo::behavioural::generic::registerfile:: RegisterFile(name_component.c_str(),107 component_RegisterFile = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic (name_component.c_str(), 107 108 #ifdef STATISTICS 108 109 _param_statistics , 109 110 #endif 110 111 111 *(_param._param_registerfile)); 112 112 113 // Instantiation 113 114 (*(component_RegisterFile->in_CLOCK)) (*(in_CLOCK)); 114 115 (*(component_RegisterFile->in_NRESET)) (*(in_NRESET)); 116 115 117 for (uint32_t i=0; i<_param._nb_prediction; i++) 116 118 { 117 (*(component_RegisterFile-> in_READ_ENABLE [i])) (*( in_PREDICT_VAL [i])); 119 (*(component_RegisterFile-> in_READ_VAL [i])) (*( in_PREDICT_VAL [i])); 120 (*(component_RegisterFile->out_READ_ACK [i])) (*(out_PREDICT_ACK [i])); 118 121 (*(component_RegisterFile-> in_READ_ADDRESS [i])) (*( in_PREDICT_ADDRESS [i])); 119 122 (*(component_RegisterFile->out_READ_DATA [i])) (*(out_PREDICT_HISTORY [i])); … … 122 125 for (uint32_t i=0; i<_param._nb_branch_complete; i++) 123 126 { 124 (*(component_RegisterFile-> in_WRITE_ENABLE [i])) (*( in_BRANCH_COMPLETE_VAL [i])); 127 (*(component_RegisterFile-> in_WRITE_VAL [i])) (*( in_BRANCH_COMPLETE_VAL [i])); 128 (*(component_RegisterFile->out_WRITE_ACK [i])) (*( out_BRANCH_COMPLETE_ACK [i])); 125 129 (*(component_RegisterFile-> in_WRITE_ADDRESS [i])) (*( in_BRANCH_COMPLETE_ADDRESS [i])); 126 130 (*(component_RegisterFile-> in_WRITE_DATA [i])) (*(signal_BRANCH_COMPLETE_HISTORY [i])); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_deallocation.cpp
r3 r15 23 23 24 24 delete in_CLOCK; 25 delete in_NRESET; 25 26 26 27 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_body.cpp
r3 r15 22 22 log_printf(FUNC,Pattern_History_Table,"vhdl_body","Begin"); 23 23 24 vhdl.set_body ("-- Output : always at '1'");25 for (uint32_t i=0; i<_param._nb_branch_complete; i++)26 vhdl.set_body ("out_BRANCH_COMPLETE_ACK_"+toString(i)+" <= '1';");27 for (uint32_t i=0; i<_param._nb_prediction ; i++)28 vhdl.set_body ("out_PREDICT_ACK_"+toString(i)+" <= '1';");29 vhdl.set_body ("");24 // vhdl.set_body ("-- Output : always at '1'"); 25 // for (uint32_t i=0; i<_param._nb_branch_complete; i++) 26 // vhdl.set_body ("out_BRANCH_COMPLETE_ACK_"+toString(i)+" <= '1';"); 27 // for (uint32_t i=0; i<_param._nb_prediction ; i++) 28 // vhdl.set_body ("out_PREDICT_ACK_"+toString(i)+" <= '1';"); 29 // vhdl.set_body (""); 30 30 31 31 list<string> list_port_map; … … 41 41 42 42 list_port_map.clear(); 43 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK"); 43 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK "); 44 vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET"); 45 44 46 for (uint32_t i=0; i<_param._nb_prediction; i++) 45 47 { 46 vhdl.set_body_component_port_map (list_port_map," in_READ_ENABLE_"+toString(i)+" "," in_PREDICT_VAL_"+toString(i)); 48 vhdl.set_body_component_port_map (list_port_map," in_READ_VAL_"+toString(i)+" "," in_PREDICT_VAL_"+toString(i)); 49 vhdl.set_body_component_port_map (list_port_map,"out_READ_ACK_"+toString(i)+" ","out_PREDICT_ACK_"+toString(i)); 47 50 vhdl.set_body_component_port_map (list_port_map," in_READ_ADDRESS_"+toString(i)+" "," in_PREDICT_ADDRESS_"+toString(i)); 48 51 vhdl.set_body_component_port_map (list_port_map,"out_READ_DATA_"+toString(i)+" ","out_PREDICT_HISTORY_"+toString(i)); … … 51 54 for (uint32_t i=0; i<_param._nb_branch_complete; i++) 52 55 { 53 vhdl.set_body_component_port_map (list_port_map," in_WRITE_ENABLE_"+toString(i)+" "," in_BRANCH_COMPLETE_VAL_"+toString(i)+""); 56 vhdl.set_body_component_port_map (list_port_map," in_WRITE_VAL_"+toString(i)+" "," in_BRANCH_COMPLETE_VAL_"+toString(i)+""); 57 vhdl.set_body_component_port_map (list_port_map,"out_WRITE_ACK_"+toString(i)+" "," out_BRANCH_COMPLETE_ACK_"+toString(i)+""); 54 58 vhdl.set_body_component_port_map (list_port_map," in_WRITE_ADDRESS_"+toString(i)+""," in_BRANCH_COMPLETE_ADDRESS_"+toString(i)); 55 59 vhdl.set_body_component_port_map (list_port_map," in_WRITE_DATA_"+toString(i)+" ","signal_BRANCH_COMPLETE_HISTORY_"+toString(i)); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_port.cpp
r3 r15 23 23 24 24 vhdl.set_port (" in_CLOCK" , IN, 1); 25 vhdl.set_port (" in_NRESET", IN, 1); 25 26 26 27 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_testbench_port.cpp
r3 r15 21 21 { 22 22 log_printf(FUNC,Pattern_History_Table,"vhdl_testbench_port","Begin"); 23 24 _vhdl_testbench->set_port (" in_NRESET", IN, 1); 23 25 24 26 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/src/Pattern_History_Table_vhdl_testbench_transition.cpp
r3 r15 30 30 // (because we have no control on the ordonnancer's policy) 31 31 32 _vhdl_testbench->add_input (PORT_READ( in_NRESET)); 33 32 34 for (uint32_t i=0; i<_param._nb_prediction; i++) 33 35 { 34 36 _vhdl_testbench->add_input (PORT_READ( in_PREDICT_VAL [i])); 35 _vhdl_testbench->add_output (PORT_READ( out_PREDICT_ACK[i]));37 _vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_READ_ACK [i])); 36 38 _vhdl_testbench->add_input (PORT_READ( in_PREDICT_ADDRESS [i])); 37 39 _vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_READ_DATA [i])); … … 42 44 { 43 45 _vhdl_testbench->add_input (PORT_READ( in_BRANCH_COMPLETE_VAL [i])); 44 _vhdl_testbench->add_output (PORT_READ( out_BRANCH_COMPLETE_ACK[i]));46 _vhdl_testbench->add_output (PORT_READ(component_RegisterFile->out_WRITE_ACK [i])); 45 47 _vhdl_testbench->add_input (PORT_READ( in_BRANCH_COMPLETE_ADDRESS [i])); 46 48 _vhdl_testbench->add_input (PORT_READ( in_BRANCH_COMPLETE_HISTORY [i])); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest/mkf.info
r3 r15 1 2 # Two_Level_Branch_Predictor_03 target_dep all Two_Level_Branch_Predictor_0.ngc4 target_dep Two_Level_Branch_Predictor_0.ngc Two_Level_Branch_Predictor_0.prj5 target_dep Two_Level_Branch_Predictor_0.prj Two_Level_Branch_Predictor_0_Branch_History_Table_Pack.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table_RegisterFile_Pack.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table_RegisterFile.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table_Shifter_Pack.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table_Shifter.vhdl Two_Level_Branch_Predictor_0_Branch_History_Table.vhdl Two_Level_Branch_Predictor_0_Pack.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_Counter_Pack.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_Counter.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_Pack.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_RegisterFile_Pack.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table_RegisterFile.vhdl Two_Level_Branch_Predictor_0_Pattern_History_Table.vhdl Two_Level_Branch_Predictor_0_Two_Level_Branch_Predictor_Glue_Pack.vhdl Two_Level_Branch_Predictor_0_Two_Level_Branch_Predictor_Glue.vhdl Two_Level_Branch_Predictor_0.vhdl6 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest/src/test.cpp
r5 r15 29 29 *********************************************************************/ 30 30 sc_clock * CLOCK; 31 sc_signal<Tcontrol_t> * NRESET; 31 32 32 33 sc_signal<Tcontrol_t> * PREDICT_VAL [param._nb_prediction]; … … 47 48 string rename; 48 49 49 CLOCK = new sc_clock ("clock", 1.0, 0.5); 50 CLOCK = new sc_clock ("clock", 1.0, 0.5); 51 NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 50 52 51 53 for (uint32_t i=0; i<param._nb_prediction; i++) … … 85 87 cout << "<" << name << "> Instanciation of _Two_Level_Branch_Predictor" << endl; 86 88 87 (*(_Two_Level_Branch_Predictor->in_CLOCK)) (*(CLOCK)); 89 (*(_Two_Level_Branch_Predictor->in_CLOCK )) (*(CLOCK )); 90 (*(_Two_Level_Branch_Predictor->in_NRESET)) (*(NRESET)); 88 91 89 92 for (uint32_t i=0; i<param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest/mkf.info
r2 r15 1 2 # Two_Level_Branch_Predictor_Glue_03 target_dep all Two_Level_Branch_Predictor_Glue_0.ngc4 target_dep Two_Level_Branch_Predictor_Glue_0.ngc Two_Level_Branch_Predictor_Glue_0.prj5 target_dep Two_Level_Branch_Predictor_Glue_0.prj Two_Level_Branch_Predictor_Glue_0_Pack.vhdl Two_Level_Branch_Predictor_Glue_0.vhdl6 7 # Two_Level_Branch_Predictor_Glue_108 target_dep all Two_Level_Branch_Predictor_Glue_10.ngc9 target_dep Two_Level_Branch_Predictor_Glue_10.ngc Two_Level_Branch_Predictor_Glue_10.prj10 target_dep Two_Level_Branch_Predictor_Glue_10.prj Two_Level_Branch_Predictor_Glue_10_Pack.vhdl Two_Level_Branch_Predictor_Glue_10.vhdl11 12 # Two_Level_Branch_Predictor_Glue_1113 target_dep all Two_Level_Branch_Predictor_Glue_11.ngc14 target_dep Two_Level_Branch_Predictor_Glue_11.ngc Two_Level_Branch_Predictor_Glue_11.prj15 target_dep Two_Level_Branch_Predictor_Glue_11.prj Two_Level_Branch_Predictor_Glue_11_Pack.vhdl Two_Level_Branch_Predictor_Glue_11.vhdl16 17 # Two_Level_Branch_Predictor_Glue_1218 target_dep all Two_Level_Branch_Predictor_Glue_12.ngc19 target_dep Two_Level_Branch_Predictor_Glue_12.ngc Two_Level_Branch_Predictor_Glue_12.prj20 target_dep Two_Level_Branch_Predictor_Glue_12.prj Two_Level_Branch_Predictor_Glue_12_Pack.vhdl Two_Level_Branch_Predictor_Glue_12.vhdl21 22 # Two_Level_Branch_Predictor_Glue_1323 target_dep all Two_Level_Branch_Predictor_Glue_13.ngc24 target_dep Two_Level_Branch_Predictor_Glue_13.ngc Two_Level_Branch_Predictor_Glue_13.prj25 target_dep Two_Level_Branch_Predictor_Glue_13.prj Two_Level_Branch_Predictor_Glue_13_Pack.vhdl Two_Level_Branch_Predictor_Glue_13.vhdl26 27 # Two_Level_Branch_Predictor_Glue_1428 target_dep all Two_Level_Branch_Predictor_Glue_14.ngc29 target_dep Two_Level_Branch_Predictor_Glue_14.ngc Two_Level_Branch_Predictor_Glue_14.prj30 target_dep Two_Level_Branch_Predictor_Glue_14.prj Two_Level_Branch_Predictor_Glue_14_Pack.vhdl Two_Level_Branch_Predictor_Glue_14.vhdl31 32 # Two_Level_Branch_Predictor_Glue_1533 target_dep all Two_Level_Branch_Predictor_Glue_15.ngc34 target_dep Two_Level_Branch_Predictor_Glue_15.ngc Two_Level_Branch_Predictor_Glue_15.prj35 target_dep Two_Level_Branch_Predictor_Glue_15.prj Two_Level_Branch_Predictor_Glue_15_Pack.vhdl Two_Level_Branch_Predictor_Glue_15.vhdl36 37 # Two_Level_Branch_Predictor_Glue_1638 target_dep all Two_Level_Branch_Predictor_Glue_16.ngc39 target_dep Two_Level_Branch_Predictor_Glue_16.ngc Two_Level_Branch_Predictor_Glue_16.prj40 target_dep Two_Level_Branch_Predictor_Glue_16.prj Two_Level_Branch_Predictor_Glue_16_Pack.vhdl Two_Level_Branch_Predictor_Glue_16.vhdl41 42 # Two_Level_Branch_Predictor_Glue_1743 target_dep all Two_Level_Branch_Predictor_Glue_17.ngc44 target_dep Two_Level_Branch_Predictor_Glue_17.ngc Two_Level_Branch_Predictor_Glue_17.prj45 target_dep Two_Level_Branch_Predictor_Glue_17.prj Two_Level_Branch_Predictor_Glue_17_Pack.vhdl Two_Level_Branch_Predictor_Glue_17.vhdl46 47 # Two_Level_Branch_Predictor_Glue_1848 target_dep all Two_Level_Branch_Predictor_Glue_18.ngc49 target_dep Two_Level_Branch_Predictor_Glue_18.ngc Two_Level_Branch_Predictor_Glue_18.prj50 target_dep Two_Level_Branch_Predictor_Glue_18.prj Two_Level_Branch_Predictor_Glue_18_Pack.vhdl Two_Level_Branch_Predictor_Glue_18.vhdl51 52 # Two_Level_Branch_Predictor_Glue_1953 target_dep all Two_Level_Branch_Predictor_Glue_19.ngc54 target_dep Two_Level_Branch_Predictor_Glue_19.ngc Two_Level_Branch_Predictor_Glue_19.prj55 target_dep Two_Level_Branch_Predictor_Glue_19.prj Two_Level_Branch_Predictor_Glue_19_Pack.vhdl Two_Level_Branch_Predictor_Glue_19.vhdl56 57 # Two_Level_Branch_Predictor_Glue_158 target_dep all Two_Level_Branch_Predictor_Glue_1.ngc59 target_dep Two_Level_Branch_Predictor_Glue_1.ngc Two_Level_Branch_Predictor_Glue_1.prj60 target_dep Two_Level_Branch_Predictor_Glue_1.prj Two_Level_Branch_Predictor_Glue_10_Pack.vhdl Two_Level_Branch_Predictor_Glue_10.vhdl Two_Level_Branch_Predictor_Glue_11_Pack.vhdl Two_Level_Branch_Predictor_Glue_11.vhdl Two_Level_Branch_Predictor_Glue_12_Pack.vhdl Two_Level_Branch_Predictor_Glue_12.vhdl Two_Level_Branch_Predictor_Glue_13_Pack.vhdl Two_Level_Branch_Predictor_Glue_13.vhdl Two_Level_Branch_Predictor_Glue_14_Pack.vhdl Two_Level_Branch_Predictor_Glue_14.vhdl Two_Level_Branch_Predictor_Glue_15_Pack.vhdl Two_Level_Branch_Predictor_Glue_15.vhdl Two_Level_Branch_Predictor_Glue_16_Pack.vhdl Two_Level_Branch_Predictor_Glue_16.vhdl Two_Level_Branch_Predictor_Glue_17_Pack.vhdl Two_Level_Branch_Predictor_Glue_17.vhdl Two_Level_Branch_Predictor_Glue_18_Pack.vhdl Two_Level_Branch_Predictor_Glue_18.vhdl Two_Level_Branch_Predictor_Glue_19_Pack.vhdl Two_Level_Branch_Predictor_Glue_19.vhdl Two_Level_Branch_Predictor_Glue_1_Pack.vhdl Two_Level_Branch_Predictor_Glue_1.vhdl61 62 # Two_Level_Branch_Predictor_Glue_2063 target_dep all Two_Level_Branch_Predictor_Glue_20.ngc64 target_dep Two_Level_Branch_Predictor_Glue_20.ngc Two_Level_Branch_Predictor_Glue_20.prj65 target_dep Two_Level_Branch_Predictor_Glue_20.prj Two_Level_Branch_Predictor_Glue_20_Pack.vhdl Two_Level_Branch_Predictor_Glue_20.vhdl66 67 # Two_Level_Branch_Predictor_Glue_2168 target_dep all Two_Level_Branch_Predictor_Glue_21.ngc69 target_dep Two_Level_Branch_Predictor_Glue_21.ngc Two_Level_Branch_Predictor_Glue_21.prj70 target_dep Two_Level_Branch_Predictor_Glue_21.prj Two_Level_Branch_Predictor_Glue_21_Pack.vhdl Two_Level_Branch_Predictor_Glue_21.vhdl71 72 # Two_Level_Branch_Predictor_Glue_2273 target_dep all Two_Level_Branch_Predictor_Glue_22.ngc74 target_dep Two_Level_Branch_Predictor_Glue_22.ngc Two_Level_Branch_Predictor_Glue_22.prj75 target_dep Two_Level_Branch_Predictor_Glue_22.prj Two_Level_Branch_Predictor_Glue_22_Pack.vhdl Two_Level_Branch_Predictor_Glue_22.vhdl76 77 # Two_Level_Branch_Predictor_Glue_2378 target_dep all Two_Level_Branch_Predictor_Glue_23.ngc79 target_dep Two_Level_Branch_Predictor_Glue_23.ngc Two_Level_Branch_Predictor_Glue_23.prj80 target_dep Two_Level_Branch_Predictor_Glue_23.prj Two_Level_Branch_Predictor_Glue_23_Pack.vhdl Two_Level_Branch_Predictor_Glue_23.vhdl81 82 # Two_Level_Branch_Predictor_Glue_283 target_dep all Two_Level_Branch_Predictor_Glue_2.ngc84 target_dep Two_Level_Branch_Predictor_Glue_2.ngc Two_Level_Branch_Predictor_Glue_2.prj85 target_dep Two_Level_Branch_Predictor_Glue_2.prj Two_Level_Branch_Predictor_Glue_20_Pack.vhdl Two_Level_Branch_Predictor_Glue_20.vhdl Two_Level_Branch_Predictor_Glue_21_Pack.vhdl Two_Level_Branch_Predictor_Glue_21.vhdl Two_Level_Branch_Predictor_Glue_22_Pack.vhdl Two_Level_Branch_Predictor_Glue_22.vhdl Two_Level_Branch_Predictor_Glue_23_Pack.vhdl Two_Level_Branch_Predictor_Glue_23.vhdl Two_Level_Branch_Predictor_Glue_2_Pack.vhdl Two_Level_Branch_Predictor_Glue_2.vhdl86 87 # Two_Level_Branch_Predictor_Glue_388 target_dep all Two_Level_Branch_Predictor_Glue_3.ngc89 target_dep Two_Level_Branch_Predictor_Glue_3.ngc Two_Level_Branch_Predictor_Glue_3.prj90 target_dep Two_Level_Branch_Predictor_Glue_3.prj Two_Level_Branch_Predictor_Glue_3_Pack.vhdl Two_Level_Branch_Predictor_Glue_3.vhdl91 92 # Two_Level_Branch_Predictor_Glue_493 target_dep all Two_Level_Branch_Predictor_Glue_4.ngc94 target_dep Two_Level_Branch_Predictor_Glue_4.ngc Two_Level_Branch_Predictor_Glue_4.prj95 target_dep Two_Level_Branch_Predictor_Glue_4.prj Two_Level_Branch_Predictor_Glue_4_Pack.vhdl Two_Level_Branch_Predictor_Glue_4.vhdl96 97 # Two_Level_Branch_Predictor_Glue_598 target_dep all Two_Level_Branch_Predictor_Glue_5.ngc99 target_dep Two_Level_Branch_Predictor_Glue_5.ngc Two_Level_Branch_Predictor_Glue_5.prj100 target_dep Two_Level_Branch_Predictor_Glue_5.prj Two_Level_Branch_Predictor_Glue_5_Pack.vhdl Two_Level_Branch_Predictor_Glue_5.vhdl101 102 # Two_Level_Branch_Predictor_Glue_6103 target_dep all Two_Level_Branch_Predictor_Glue_6.ngc104 target_dep Two_Level_Branch_Predictor_Glue_6.ngc Two_Level_Branch_Predictor_Glue_6.prj105 target_dep Two_Level_Branch_Predictor_Glue_6.prj Two_Level_Branch_Predictor_Glue_6_Pack.vhdl Two_Level_Branch_Predictor_Glue_6.vhdl106 107 # Two_Level_Branch_Predictor_Glue_7108 target_dep all Two_Level_Branch_Predictor_Glue_7.ngc109 target_dep Two_Level_Branch_Predictor_Glue_7.ngc Two_Level_Branch_Predictor_Glue_7.prj110 target_dep Two_Level_Branch_Predictor_Glue_7.prj Two_Level_Branch_Predictor_Glue_7_Pack.vhdl Two_Level_Branch_Predictor_Glue_7.vhdl111 112 # Two_Level_Branch_Predictor_Glue_8113 target_dep all Two_Level_Branch_Predictor_Glue_8.ngc114 target_dep Two_Level_Branch_Predictor_Glue_8.ngc Two_Level_Branch_Predictor_Glue_8.prj115 target_dep Two_Level_Branch_Predictor_Glue_8.prj Two_Level_Branch_Predictor_Glue_8_Pack.vhdl Two_Level_Branch_Predictor_Glue_8.vhdl116 117 # Two_Level_Branch_Predictor_Glue_9118 target_dep all Two_Level_Branch_Predictor_Glue_9.ngc119 target_dep Two_Level_Branch_Predictor_Glue_9.ngc Two_Level_Branch_Predictor_Glue_9.prj120 target_dep Two_Level_Branch_Predictor_Glue_9.prj Two_Level_Branch_Predictor_Glue_9_Pack.vhdl Two_Level_Branch_Predictor_Glue_9.vhdl121 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h
r3 r15 70 70 // Interface 71 71 public : SC_CLOCK * in_CLOCK ; 72 72 public : SC_IN (Tcontrol_t) * in_NRESET ; 73 73 // Interface Predict 74 74 public : SC_IN (Tcontrol_t) ** in_PREDICT_VAL ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_allocation.cpp
r3 r15 23 23 24 24 in_CLOCK = new SC_CLOCK ("in_CLOCK"); 25 in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET"); 25 26 26 27 in_PREDICT_VAL = new SC_IN (Tcontrol_t) * [_param._nb_prediction ]; … … 161 162 162 163 // Instantiation 163 (*(component_Branch_History_Table->in_CLOCK)) (*(in_CLOCK)); 164 (*(component_Branch_History_Table->in_CLOCK )) (*(in_CLOCK )); 165 (*(component_Branch_History_Table->in_NRESET)) (*(in_NRESET)); 164 166 165 167 for (uint32_t i=0; i<_param._nb_prediction; i++) … … 196 198 // Instantiation 197 199 (*(component_Pattern_History_Table->in_CLOCK)) (*(in_CLOCK)); 200 (*(component_Pattern_History_Table->in_NRESET)) (*(in_NRESET)); 198 201 199 202 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_deallocation.cpp
r3 r15 21 21 22 22 delete in_CLOCK; 23 delete in_NRESET; 23 24 24 25 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_body.cpp
r3 r15 27 27 list_port_map.clear(); 28 28 29 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK"); 29 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK "); 30 vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET"); 30 31 31 32 for (uint32_t i=0; i<_param._nb_prediction; i++) … … 53 54 list_port_map.clear(); 54 55 55 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK"); 56 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK "); 57 vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET"); 56 58 57 59 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_port.cpp
r3 r15 20 20 log_printf(FUNC,Two_Level_Branch_Predictor,"vhdl_port","Begin"); 21 21 22 vhdl.set_port (" in_CLOCK" , IN, 1); 22 vhdl.set_port (" in_CLOCK ", IN, 1); 23 vhdl.set_port (" in_NRESET", IN, 1); 23 24 24 25 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_testbench_port.cpp
r3 r15 20 20 { 21 21 log_printf(FUNC,Two_Level_Branch_Predictor,"vhdl_testbench_port","Begin"); 22 23 _vhdl_testbench->set_port (" in_NRESET", IN, 1); 22 24 23 25 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor_vhdl_testbench_transition.cpp
r3 r15 25 25 #endif 26 26 27 _vhdl_testbench->add_input (PORT_READ( in_NRESET)); 28 27 29 // In order with file Two_Level_Branch_Predictor_vhdl_testbench_port.cpp 28 30 // Warning : if a output depend of a subcomponent, take directly the port of subcomponent -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/include/Meta_Predictor.h
r5 r15 68 68 // Interface 69 69 public : SC_CLOCK * in_CLOCK ; 70 public : SC_IN (Tcontrol_t) * in_NRESET ; 70 71 71 72 // Interface Predict -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_allocation.cpp
r5 r15 23 23 24 24 in_CLOCK = new SC_CLOCK ("in_CLOCK"); 25 in_NRESET = new SC_IN (Tcontrol_t) ("in_NRESET"); 25 26 26 27 in_PREDICT_VAL = new SC_IN (Tcontrol_t) * [_param._nb_prediction ]; … … 235 236 236 237 // Instantiation 237 (*(component_Meta_Predictor_Glue->in_CLOCK)) (*(in_CLOCK)); 238 238 #if defined(STATISTICS) or defined(VHDL_TESTBENCH) 239 (*(component_Meta_Predictor_Glue->in_CLOCK )) (*(in_CLOCK )); 240 #endif 241 239 242 // Interface Predict 240 243 for (uint32_t i=0; i<_param._nb_prediction; i++) … … 317 320 318 321 // Instantiation 319 (*(component_Two_Level_Branch_Predictor_2->in_CLOCK)) (*(in_CLOCK)); 322 (*(component_Two_Level_Branch_Predictor_2->in_CLOCK )) (*(in_CLOCK )); 323 (*(component_Two_Level_Branch_Predictor_2->in_NRESET)) (*(in_NRESET)); 320 324 321 325 for (uint32_t i=0; i<_param._nb_prediction; i++) … … 363 367 364 368 // Instantiation 365 (*(component_Two_Level_Branch_Predictor_1->in_CLOCK)) (*(in_CLOCK)); 369 (*(component_Two_Level_Branch_Predictor_1->in_CLOCK )) (*(in_CLOCK )); 370 (*(component_Two_Level_Branch_Predictor_1->in_NRESET)) (*(in_NRESET)); 366 371 367 372 for (uint32_t i=0; i<_param._nb_prediction; i++) … … 401 406 402 407 // Instantiation 403 (*(component_Two_Level_Branch_Predictor_0->in_CLOCK)) (*(in_CLOCK)); 408 (*(component_Two_Level_Branch_Predictor_0->in_CLOCK )) (*(in_CLOCK )); 409 (*(component_Two_Level_Branch_Predictor_0->in_NRESET)) (*(in_NRESET)); 404 410 405 411 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_deallocation.cpp
r5 r15 20 20 21 21 delete in_CLOCK; 22 delete in_NRESET; 22 23 23 24 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_body.cpp
r5 r15 105 105 106 106 // Instantiation 107 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK"); 107 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK "); 108 vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET"); 108 109 109 110 for (uint32_t i=0; i<_param._nb_prediction; i++) … … 146 147 147 148 // Instantiation 148 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK"); 149 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK "); 150 vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET"); 149 151 150 152 for (uint32_t i=0; i<_param._nb_prediction; i++) … … 179 181 180 182 // Instantiation 181 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK","in_CLOCK"); 183 vhdl.set_body_component_port_map (list_port_map,"in_CLOCK ","in_CLOCK "); 184 vhdl.set_body_component_port_map (list_port_map,"in_NRESET","in_NRESET"); 182 185 183 186 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_port.cpp
r5 r15 20 20 log_printf(FUNC,Meta_Predictor,"vhdl_port","Begin"); 21 21 22 vhdl.set_port (" in_CLOCK" , IN, 1); 22 vhdl.set_port (" in_CLOCK ", IN, 1); 23 vhdl.set_port (" in_NRESET", IN, 1); 23 24 24 25 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_testbench_port.cpp
r5 r15 19 19 { 20 20 log_printf(FUNC,Meta_Predictor,"vhdl_testbench_port","Begin"); 21 22 _vhdl_testbench->set_port (" in_NRESET", IN, 1); 21 23 22 24 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_testbench_transition.cpp
r5 r15 26 26 // Warning : if a output depend of a subcomponent, take directly the port of subcomponent 27 27 // (because we have no control on the ordonnancer's policy) 28 29 _vhdl_testbench->add_input (PORT_READ( in_NRESET)); 28 30 29 31 for (uint32_t i=0; i<_param._nb_prediction; i++) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_component.h
r3 r15 2 2 #define DEBUG_COMPONENT_H 3 3 4 #define DEBUG_Behavioural false 5 6 // Behavioural/Generic/ 7 #define DEBUG_Counter false 8 #define DEBUG_Group false 9 #define DEBUG_Register_File false 10 #define DEBUG_Shifter false 11 // Behavioural/Generic/Select/ 12 #define DEBUG_Pseudo_LRU false 13 // Behavioural/Stage_1_Ifetch/ 14 // Behavioural/Stage_1_Ifetch/Predictor/ 15 // Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/ 16 #define DEBUG_Two_Level_Branch_Predictor false 17 // Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/ 18 #define DEBUG_Two_Level_Branch_Predictor_Glue false 19 #define DEBUG_Branch_History_Table false 20 #define DEBUG_Pattern_History_Table false 4 #define DEBUG_Behavioural false 5 #define DEBUG_Generic false 6 #define DEBUG_Counter false 7 #define DEBUG_Group false 8 #define DEBUG_Shifter false 9 #define DEBUG_Register_File false 10 #define DEBUG_RegisterFile_Multi_Banked true 11 #define DEBUG_RegisterFile_Multi_Banked_Glue true 12 #define DEBUG_Select false 13 #define DEBUG_Select_Priority_Fixed true 14 #define DEBUG_Victim false 15 #define DEBUG_Victim_Pseudo_LRU false 16 #define DEBUG_Stage_1_Ifetch false 17 #define DEBUG_Predictor false 18 #define DEBUG_Meta_Predictor false 19 #define DEBUG_Meta_Predictor_Glue false 20 #define DEBUG_Two_Level_Branch_Predictor false 21 #define DEBUG_Two_Level_Branch_Predictor_Glue false 22 #define DEBUG_Branch_History_Table false 23 #define DEBUG_Pattern_History_Table false 24 #define DEBUG_Stage_5_Execute false 25 #define DEBUG_Execution_cluster false 26 #define DEBUG_Execution_group false 27 #define DEBUG_Execution_unit false 21 28 22 29 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Parameters.h
r2 r15 27 27 { 28 28 // -----[ fields ]---------------------------------------------------- 29 // Constant30 public : const uint32_t _size_condition;31 public : const uint32_t _size_instruction;32 public : const uint32_t _size_instruction_log2;33 29 34 30 // -----[ methods ]--------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/mkf.info
r2 r15 15 15 16 16 # build src directory content 17 target_dep all Generic/Counter/SelfTest17 #target_dep all Generic/Counter/SelfTest 18 18 target_dep all Generic/RegisterFile/SelfTest 19 target_dep all Generic/Shifter/SelfTest 20 target_dep all Generic/Select/Pseudo_LRU/SelfTest 21 target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest 22 target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest 23 target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest 24 target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest 19 #target_dep all Generic/Shifter/SelfTest 20 target_dep all Generic/Select/Priority_Fixed/SelfTest 21 #target_dep all Generic/Victim/Pseudo_LRU/SelfTest 22 #target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/SelfTest 23 #target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/Meta_Predictor_Glue/SelfTest 24 #target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/SelfTest 25 #target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/SelfTest 26 #target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table/SelfTest 27 #target_dep all Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table/SelfTest 28 #target_dep all Stage_5_Execute/Execution_cluster/Execution_group/Execution_unit/SelfTest 25 29 26 30 # mkf include path -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Parameters.cpp
r2 r15 11 11 namespace behavioural { 12 12 13 Parameters::Parameters (void) : 14 _size_condition ( 3), 15 _size_instruction (32) , 16 _size_instruction_log2 (static_cast<uint32_t>(ceil(log2(_size_instruction)))) 13 Parameters::Parameters (void) 17 14 { 18 15 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Vhdl_generate_file_model.cpp
r2 r15 23 23 24 24 log_printf(TRACE,Behavioural,"generate_file_model","print %s",filename.c_str()); 25 26 25 cout << "Generate file \""<< filename << "\"" << endl; 27 26 28 27 log_printf(TRACE,Behavioural,"generate_file_model","declaration"); 29 28 ofstream file; 29 30 30 log_printf(TRACE,Behavioural,"generate_file_model","open file"); 31 31 file.open(filename.c_str(),ios::out | ios::trunc); … … 33 33 log_printf(TRACE,Behavioural,"generate_file_model","get model"); 34 34 file << get_model (0,filename,_name,"behavioural"); 35 36 35 file.close(); 37 36 -
trunk/IPs/systemC/processor/Morpheo/Include/Debug.h
r3 r15 9 9 #include <string> 10 10 using namespace std; 11 12 // Debug's Level : 13 // * None : print elementary information 14 // * Info : print basic information 15 // * Trace : trace internal variable 16 // * Func : trace call and return function 17 // * All : print all information 11 18 12 19 enum _debug_verbosity … … 21 28 #ifdef DEBUG 22 29 //Debug 23 /* 24 # define log_printf(level, component, str... ) \ 25 do \ 26 { \ 27 if ( ( DEBUG_ ## level <= DEBUG) and \ 28 ( DEBUG_ ## component == true ) ) \ 29 { \ 30 fprintf(stdout,"<%s> line %d : ",__FILE__,__LINE__); \ 31 fprintf(stdout,str); \ 32 fprintf(stdout,"\n"); \ 33 } \ 34 } while(0) 35 */ 36 37 # define log_printf(level, component, func, str... ) \ 38 do \ 39 { \ 40 if ( ( DEBUG_ ## level <= DEBUG) and \ 41 ( DEBUG_ ## component == true ) ) \ 42 { \ 43 fprintf(stdout,"In file %s, ",__FILE__); \ 44 fprintf(stdout,"at line %d, ",__LINE__); \ 45 fprintf(stdout,"in function \"%s\" : ",func); \ 46 fprintf(stdout,str); \ 47 fprintf(stdout,"\n"); \ 48 } \ 30 31 # define log_printf(level, component, func, str... ) \ 32 do \ 33 { \ 34 if ( (DEBUG == DEBUG_ALL) or \ 35 (( DEBUG_ ## level <= DEBUG) and \ 36 ( DEBUG_ ## component == true )) ) \ 37 { \ 38 if (DEBUG >= DEBUG_ALL ) \ 39 { \ 40 switch (DEBUG_ ## level) \ 41 { \ 42 case DEBUG_NONE : fprintf(stdout,"(none ) "); break; \ 43 case DEBUG_INFO : fprintf(stdout,"(information) "); break; \ 44 case DEBUG_TRACE : fprintf(stdout,"(trace ) "); break; \ 45 case DEBUG_FUNC : fprintf(stdout,"(function ) "); break; \ 46 case DEBUG_ALL : fprintf(stdout,"(all ) "); break; \ 47 default : fprintf(stdout,"(undefine ) "); break; \ 48 } \ 49 } \ 50 fprintf(stdout,"In file %s, ",__FILE__); \ 51 fprintf(stdout,"at line %d, ",__LINE__); \ 52 if (DEBUG >= DEBUG_FUNC) \ 53 { \ 54 fprintf(stdout,"in function \"%s\" ",func); \ 55 } \ 56 fprintf(stdout,": "); \ 57 fprintf(stdout,str); \ 58 fprintf(stdout,"\n"); \ 59 fflush (stdout); \ 60 } \ 49 61 } while(0) 50 62 51 63 #else 52 64 // No debug 53 /* 54 # define log_printf(level, component, str... ) \ 55 do \ 56 { \ 57 } while(0) 58 */ 65 59 66 # define log_printf(level, component, func, str... ) \ 60 67 do \ -
trunk/IPs/systemC/processor/Morpheo/Include/Test.h
r3 r15 15 15 void test_ko (T exp1, T exp2, char * file, uint32_t line) 16 16 { 17 string msg = (" {"+toString(num_test)+"}: Test KO\n" +17 string msg = ("<"+toString(num_test)+"> : Test KO\n" + 18 18 " * Localisation\n" + 19 19 " - File : "+file+"\n" + -
trunk/IPs/systemC/processor/Morpheo/Include/ToString.h
r2 r15 1 #ifndef morpheo_ Tostring2 #define morpheo_ Tostring1 #ifndef morpheo_tostring 2 #define morpheo_tostring 3 3 4 4 /* … … 21 21 namespace morpheo { 22 22 23 template<typename T> inline std::string toString (const T& x)23 template<typename T> inline std::string toString (const T& x) 24 24 { 25 25 ostringstream out; … … 28 28 } 29 29 30 template<> inline std::string toString<bool> (const bool& x)30 template<> inline std::string toString<bool> (const bool& x) 31 31 { 32 32 ostringstream out; … … 36 36 } 37 37 38 template<> inline std::string toString<float> (const float& x)38 template<> inline std::string toString<float> (const float& x) 39 39 { 40 40 const int sigdigits = std::numeric_limits<float>::digits10; … … 44 44 } 45 45 46 template<> inline std::string toString<double> (const double& x)46 template<> inline std::string toString<double> (const double& x) 47 47 { 48 48 const int sigdigits = std::numeric_limits<double>::digits10; … … 52 52 } 53 53 54 template<> inline std::string toString<long double>(const long double& x)54 template<> inline std::string toString<long double>(const long double& x) 55 55 { 56 56 const int sigdigits = std::numeric_limits<long double>::digits10; -
trunk/IPs/systemC/processor/Morpheo/Makefile
r2 r15 1 include $(SOC)/Makefile.tools 2 1 3 #-----[ Directory ]---------------------------------------------------- 2 4 DIR_LIB = Library 3 4 #-----[ Usual Commands ]----------------------------------------------- 5 6 RM = rm 7 ECHO = echo -e 8 CD = cd 9 LS = ls 10 PWD = `pwd` 11 TEST = test 12 MAKE = make -s 13 BASENAME = basename 14 CAT = cat 15 MKDIR = mkdir 16 17 #-----[ Particular Commands ]------------------------------------------ 5 DIR_DOC = Documentation/Source 18 6 19 7 #-----[ Options ]------------------------------------------------------ 20 DIR_DOC = Documentation/Source21 8 22 9 PREFIXE_PATH = "." … … 28 15 all : help 29 16 17 #~~~~~[ doc ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 18 doc : 31 19 @$(ECHO) "" … … 34 22 @$(MAKE) -C $(DIR_DOC) view 35 23 24 #~~~~~[ path ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 25 path : 37 26 @$(ECHO) "" … … 44 33 @$(MAKE) path_rec TAB="| " DIR_PATH=. 45 34 46 path_rec 35 path_rec : 47 36 @ \ 48 37 \ … … 74 63 @$(ECHO) " Function unimplemented" 75 64 @$(ECHO) "" 76 @$(ECHO) " The library is generate into the directory : $(PWD)/$(DIR_LIB)"65 # @$(ECHO) " The library is generate into the directory : $(PWD)/$(DIR_LIB)" 77 66 78 67 #~~~~~[ Maintenance ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 83 72 @$(ECHO) "" 84 73 @$(ECHO) "Delete temporary files "$(PWD) 85 @$(MAKE) clean_rec DIR_CLEAN=.74 # @$(MAKE) clean_rec DIR_CLEAN=. 86 75 87 76 #Clean recursive 88 clean_rec :89 @$(ECHO) "Delete temporary files in directory $(DIR_CLEAN)"90 @$(RM) -f $(DIR_CLEAN)/*~91 @ \92 if $(TEST) -f $(DIR_CLEAN)/Makefile -a "$(DIR_CLEAN)" != "."; \93 then \94 ($(CD) $(DIR_CLEAN); $(MAKE) clean;) \95 else \96 for files in `$(LS) $(DIR_CLEAN)`; do \97 if $(TEST) -d $(DIR_CLEAN)/$$files; \98 then \99 $(MAKE) clean_rec DIR_CLEAN=$(DIR_CLEAN)/$$files; \100 fi; \101 done; \102 fi;77 #clean_rec : 78 # @$(ECHO) "Delete temporary files in directory $(DIR_CLEAN)" 79 # @$(RM) -f $(DIR_CLEAN)/*~ 80 # @ \ 81 # if $(TEST) -f $(DIR_CLEAN)/Makefile -a "$(DIR_CLEAN)" != "."; \ 82 # then \ 83 # ($(CD) $(DIR_CLEAN); $(MAKE) clean;) \ 84 # else \ 85 # for files in `$(LS) $(DIR_CLEAN)`; do \ 86 # if $(TEST) -d $(DIR_CLEAN)/$$files; \ 87 # then \ 88 # $(MAKE) clean_rec DIR_CLEAN=$(DIR_CLEAN)/$$files; \ 89 # fi; \ 90 # done; \ 91 # fi; 103 92 104 93 #~~~~~[ Help ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 110 99 @$(ECHO) " Rules Description" 111 100 @$(ECHO) "" 112 @$(ECHO) " allcf rule \"help\""113 @$(ECHO) " cleanDelete temporary files"114 @$(ECHO) " docView documentation files"115 @$(ECHO) " libGenerate the library to include"116 @$(ECHO) " helpPrint this message"117 @$(ECHO) " pathPrint a little description of each directory"101 @$(ECHO) " * all cf rule \"help\"" 102 @$(ECHO) " * clean Delete temporary files" 103 @$(ECHO) " * doc View documentation files" 104 @$(ECHO) " * lib Generate the library to include" 105 @$(ECHO) " * help Print this message" 106 @$(ECHO) " * path Print a little description of each directory" 118 107 @$(ECHO) "" 119 108
Note: See TracChangeset
for help on using the changeset viewer.