Changeset 77 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue
- Timestamp:
- Feb 5, 2008, 5:21:20 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/Makefile.deps
r74 r77 19 19 20 20 #-----[ Library ]------------------------------------------ 21 21 22 Write_queue_LIBRARY = -lWrite_queue \ 22 23 $(Behavioural_LIBRARY) … … 25 26 $(Behavioural_DIR_LIBRARY) 26 27 27 Write_queue_DEPENDENCIES = Behavioural_library 28 #-----[ Rules ]-------------------------------------------- 28 29 29 Write_queue_CLEAN = Behavioural_library_clean 30 31 #-----[ Rules ]-------------------------------------------- 32 #.NOTPARALLEL : Write_queue_library Write_queue_library_clean 33 34 Write_queue_library : $(Write_queue_DEPENDENCIES) 30 Write_queue_library : 35 31 @\ 32 $(MAKE) Behavioural_library; \ 36 33 $(MAKE) --directory=$(Write_queue_DIR) --makefile=Makefile; 37 34 38 Write_queue_library_clean : $(Write_queue_CLEAN)35 Write_queue_library_clean : 39 36 @\ 37 $(MAKE) Behavioural_library_clean; \ 40 38 $(MAKE) --directory=$(Write_queue_DIR) --makefile=Makefile clean; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/configuration.cfg
r73 r77 9 9 2 2 *2 # uint32_t size_special_data 10 10 16 16 *2 # uint32_t nb_special_register 11 10 10 *2 # uint32_t nb_operation12 4 4 *2 # uint32_t nb_type13 11 1 8 *2 # uint32_t nb_bypass_write -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/main.cpp
r73 r77 8 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/test.h" 9 9 10 #define NB_PARAMS 1 210 #define NB_PARAMS 10 11 11 12 12 void usage (int argc, char * argv[]) … … 23 23 err (_(" * size_special_data (uint32_t)\n")); 24 24 err (_(" * nb_special_register (uint32_t)\n")); 25 err (_(" * nb_operation (uint32_t)\n"));26 err (_(" * nb_type (uint32_t)\n"));27 25 err (_(" * nb_bypass_write (uint32_t)\n")); 28 26 … … 51 49 const uint32_t size_special_data = atoi(argv[x++]); 52 50 const uint32_t nb_special_register = atoi(argv[x++]); 53 const uint32_t nb_operation = atoi(argv[x++]);54 const uint32_t nb_type = atoi(argv[x++]);55 51 const uint32_t nb_bypass_write = atoi(argv[x++]); 56 52 … … 67 63 size_special_data , 68 64 nb_special_register, 69 nb_operation ,70 nb_type ,71 65 nb_bypass_write ); 72 66 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/test.cpp
r74 r77 50 50 public : Tpacket_t _packet_id ; 51 51 //public : Toperation_t _operation ; 52 //public : Ttype_t _type ;52 public : Ttype_t _type ; 53 53 public : Tcontrol_t _write_rd ; 54 54 public : Tgeneral_address_t _num_reg_rd ; … … 66 66 Tpacket_t packet_id , 67 67 //Toperation_t operation , 68 //Ttype_t type ,68 Ttype_t type , 69 69 Tcontrol_t write_rd , 70 70 Tgeneral_address_t num_reg_rd , … … 82 82 _packet_id = packet_id ; 83 83 //_operation = operation ; 84 //_type = type ;84 _type = type ; 85 85 _write_rd = write_rd ; 86 86 _num_reg_rd = num_reg_rd ; … … 102 102 << " * _packet_id : " << toString(x._packet_id ) << std::endl 103 103 //<< " * _operation : " << toString(x._operation ) << std::endl 104 //<< " * _type : " << toString(x._type ) << std::endl104 << " * _type : " << toString(x._type ) << std::endl 105 105 << " * _write_rd : " << toString(x._write_rd ) << std::endl 106 106 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << std::endl … … 149 149 ALLOC_SC_SIGNAL ( in_WRITE_QUEUE_IN_PACKET_ID ," in_WRITE_QUEUE_IN_PACKET_ID" , Tpacket_t ); 150 150 //ALLOC_SC_SIGNAL ( in_WRITE_QUEUE_IN_OPERATION ," in_WRITE_QUEUE_IN_OPERATION" , Toperation_t ); 151 //ALLOC_SC_SIGNAL ( in_WRITE_QUEUE_IN_TYPE ," in_WRITE_QUEUE_IN_TYPE" , Ttype_t );151 ALLOC_SC_SIGNAL ( in_WRITE_QUEUE_IN_TYPE ," in_WRITE_QUEUE_IN_TYPE" , Ttype_t ); 152 152 ALLOC_SC_SIGNAL ( in_WRITE_QUEUE_IN_WRITE_RD ," in_WRITE_QUEUE_IN_WRITE_RD" , Tcontrol_t ); 153 153 ALLOC_SC_SIGNAL ( in_WRITE_QUEUE_IN_NUM_REG_RD ," in_WRITE_QUEUE_IN_NUM_REG_RD" , Tgeneral_address_t); … … 209 209 INSTANCE_SC_SIGNAL (_Write_queue, in_WRITE_QUEUE_IN_PACKET_ID ); 210 210 //INSTANCE_SC_SIGNAL (_Write_queue, in_WRITE_QUEUE_IN_OPERATION ); 211 //INSTANCE_SC_SIGNAL (_Write_queue, in_WRITE_QUEUE_IN_TYPE );211 INSTANCE_SC_SIGNAL (_Write_queue, in_WRITE_QUEUE_IN_TYPE ); 212 212 INSTANCE_SC_SIGNAL (_Write_queue, in_WRITE_QUEUE_IN_WRITE_RD ); 213 213 INSTANCE_SC_SIGNAL (_Write_queue, in_WRITE_QUEUE_IN_NUM_REG_RD ); … … 322 322 i, 323 323 //range<Toperation_t >(rand(),_param->_size_operation ), 324 //range<Ttype_t >(rand(),_param->_size_type ),324 range<Ttype_t >(rand(),_param->_size_type ), 325 325 range<Tcontrol_t >(rand(),1 ), 326 326 range<Tgeneral_address_t>(rand(),_param->_size_general_register), … … 354 354 in_WRITE_QUEUE_IN_PACKET_ID ->write(request [nb_request_in]->_packet_id ); 355 355 //in_WRITE_QUEUE_IN_OPERATION ->write(request [nb_request_in]->_operation ); 356 //in_WRITE_QUEUE_IN_TYPE ->write(request [nb_request_in]->_type );356 in_WRITE_QUEUE_IN_TYPE ->write(request [nb_request_in]->_type ); 357 357 in_WRITE_QUEUE_IN_WRITE_RD ->write(request [nb_request_in]->_write_rd ); 358 358 in_WRITE_QUEUE_IN_NUM_REG_RD ->write(request [nb_request_in]->_num_reg_rd ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Parameters.h
r73 r77 35 35 public : const uint32_t _size_special_data ; 36 36 public : const uint32_t _nb_special_register ; 37 public : const uint32_t _nb_operation ;38 public : const uint32_t _nb_type ;39 37 public : const uint32_t _nb_bypass_write ; 40 38 … … 48 46 public : const uint32_t _size_general_register ; 49 47 public : const uint32_t _size_special_register ; 50 public : const uint32_t _size_operation ;51 public : const uint32_t _size_type ;52 48 53 49 public : const bool _have_port_context_id ; … … 66 62 uint32_t size_special_data , 67 63 uint32_t nb_special_register, 68 uint32_t nb_operation ,69 uint32_t nb_type ,70 64 uint32_t nb_bypass_write ); 71 65 public : Parameters (Parameters & param) ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h
r75 r77 45 45 public : Tpacket_t _packet_id ; 46 46 //public : Toperation_t _operation ; 47 //public : Ttype_t _type ;47 public : Ttype_t _type ; 48 48 public : Tcontrol_t _write_rd ; 49 49 public : Tgeneral_address_t _num_reg_rd ; … … 61 61 Tpacket_t packet_id , 62 62 //Toperation_t operation , 63 //Ttype_t type ,63 Ttype_t type , 64 64 Tcontrol_t write_rd , 65 65 Tgeneral_address_t num_reg_rd , … … 77 77 _packet_id = packet_id ; 78 78 //_operation = operation ; 79 //_type = type ;79 _type = type ; 80 80 _write_rd = write_rd ; 81 81 _num_reg_rd = num_reg_rd ; … … 128 128 public : SC_IN (Tpacket_t ) * in_WRITE_QUEUE_IN_PACKET_ID ; 129 129 //public : SC_IN (Toperation_t ) * in_WRITE_QUEUE_IN_OPERATION ; 130 //public : SC_IN (Ttype_t ) * in_WRITE_QUEUE_IN_TYPE ;130 public : SC_IN (Ttype_t ) * in_WRITE_QUEUE_IN_TYPE ; 131 131 public : SC_IN (Tcontrol_t ) * in_WRITE_QUEUE_IN_WRITE_RD ; 132 132 public : SC_IN (Tgeneral_address_t) * in_WRITE_QUEUE_IN_NUM_REG_RD ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters.cpp
r74 r77 29 29 uint32_t size_special_data , 30 30 uint32_t nb_special_register, 31 uint32_t nb_operation ,32 uint32_t nb_type ,33 31 uint32_t nb_bypass_write ): 34 32 _size_queue (size_queue ), … … 41 39 _size_special_data (size_special_data ), 42 40 _nb_special_register (nb_special_register), 43 _nb_operation (nb_operation ),44 _nb_type (nb_type ),45 41 _nb_bypass_write (nb_bypass_write ), 46 42 … … 54 50 _size_general_register (log2(_nb_general_register)), 55 51 _size_special_register (log2(_nb_special_register)), 56 _size_operation (log2(_nb_operation )),57 _size_type (log2(_nb_type )),58 52 59 53 _have_port_context_id (_size_context_id > 0), … … 79 73 _size_special_data (param._size_special_data ), 80 74 _nb_special_register (param._nb_special_register ), 81 _nb_operation (param._nb_operation ),82 _nb_type (param._nb_type ),83 75 _nb_bypass_write (param._nb_bypass_write ), 84 76 … … 92 84 _size_general_register (param._size_general_register ), 93 85 _size_special_register (param._size_special_register ), 94 _size_operation (param._size_operation ),95 _size_type (param._size_type ),96 86 97 87 _have_port_context_id (param._have_port_context_id ), -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters_print.cpp
r73 r77 37 37 xml.singleton_begin("size_special_data "); xml.attribut("value",toString(_size_special_data )); xml.singleton_end(); 38 38 xml.singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end(); 39 xml.singleton_begin("nb_operation "); xml.attribut("value",toString(_nb_operation )); xml.singleton_end();40 xml.singleton_begin("nb_type "); xml.attribut("value",toString(_nb_type )); xml.singleton_end();41 39 xml.singleton_begin("nb_bypass_write "); xml.attribut("value",toString(_nb_bypass_write )); xml.singleton_end(); 42 40 xml.balise_close(); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp
r76 r77 60 60 ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_packet_id ); 61 61 // ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 62 //ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type );62 ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 63 63 ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_WRITE_RD ,"write_rd" ,Tcontrol_t ,1 ); 64 64 ALLOC_SIGNAL_IN ( in_WRITE_QUEUE_IN_NUM_REG_RD ,"num_reg_rd" ,Tgeneral_address_t,_param->_size_general_register ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp
r73 r77 41 41 delete in_WRITE_QUEUE_IN_PACKET_ID ; 42 42 // delete in_WRITE_QUEUE_IN_OPERATION ; 43 //delete in_WRITE_QUEUE_IN_TYPE ;43 delete in_WRITE_QUEUE_IN_TYPE ; 44 44 delete in_WRITE_QUEUE_IN_WRITE_RD ; 45 45 delete in_WRITE_QUEUE_IN_NUM_REG_RD ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_transition.cpp
r74 r77 53 53 (_param->_have_port_packet_id )?PORT_READ(in_WRITE_QUEUE_IN_PACKET_ID ):0, 54 54 //PORT_READ(in_WRITE_QUEUE_IN_OPERATION ), 55 //PORT_READ(in_WRITE_QUEUE_IN_TYPE ),55 PORT_READ(in_WRITE_QUEUE_IN_TYPE ), 56 56 PORT_READ(in_WRITE_QUEUE_IN_WRITE_RD ), 57 57 PORT_READ(in_WRITE_QUEUE_IN_NUM_REG_RD ), … … 67 67 } 68 68 69 // Test if pop 70 if (internal_WRITE_QUEUE_OUT_VAL and PORT_READ(in_WRITE_QUEUE_OUT_ACK)) 69 // Test if pop : 70 // * transaction on write_queue_out interface 71 // * have a speculative load and all register is write in registerfile 72 if ( (internal_WRITE_QUEUE_OUT_VAL and PORT_READ(in_WRITE_QUEUE_OUT_ACK)) or 73 ((_queue->empty() == false) and 74 (_queue->front()->_type == TYPE_MEMORY) and 75 (_queue->front()->_exception == EXCEPTION_MEMORY_LOAD_SPECULATIVE) and 76 (_queue->front()->_write_rd == 0) and 77 (_queue->front()->_write_re == 0))) 71 78 { 72 79 delete _queue->front();
Note: See TracChangeset
for help on using the changeset viewer.