Changeset 98 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl_declaration.cpp
- Timestamp:
- Dec 31, 2008, 11:18:08 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl_declaration.cpp
r96 r98 25 25 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); 26 26 27 for (uint32_t i=0; i<_param->_size_queue; ++i) 27 vhdl->set_alias ("internal_QUEUE_INSERT_VAL ",1," in_EXECUTE_QUEUE_IN_VAL",std_logic_range(1)); 28 vhdl->set_alias ("internal_QUEUE_INSERT_ACK ",1,"out_EXECUTE_QUEUE_IN_ACK",std_logic_range(1)); 29 vhdl->set_signal ("internal_QUEUE_INSERT_DATA ",_param->_size_internal_queue); 30 vhdl->set_signal ("internal_QUEUE_RETIRE_DATA ",_param->_size_internal_queue); 31 vhdl->set_alias ("internal_QUEUE_RETIRE_VAL ",1,"out_EXECUTE_QUEUE_OUT_VAL",std_logic_range(1)); 32 vhdl->set_alias ("internal_QUEUE_RETIRE_ACK ",1," in_EXECUTE_QUEUE_OUT_ACK",std_logic_range(1)); 33 34 uint32_t min = 0; 35 uint32_t max, size; 36 37 if(_param->_have_port_context_id ) 28 38 { 29 if (_param->_have_port_context_id) 30 vhdl->set_signal("reg_CONTEXT_ID_"+toString(i),_param->_size_context_id); 31 if (_param->_have_port_front_end_id) 32 vhdl->set_signal("reg_FRONT_END_ID_"+toString(i),_param->_size_front_end_id); 33 if (_param->_have_port_ooo_engine_id) 34 vhdl->set_signal("reg_OOO_ENGINE_ID_"+toString(i),_param->_size_ooo_engine_id); 35 if (_param->_have_port_rob_ptr) 36 vhdl->set_signal("reg_PACKET_ID_"+toString(i),_param->_size_rob_ptr); 37 vhdl->set_signal("reg_FLAGS_"+toString(i),_param->_size_special_data); 38 vhdl->set_signal("reg_EXCEPTION_"+toString(i),_param->_size_exception); 39 vhdl->set_signal("reg_NO_SEQUENCE_"+toString(i),1); 40 vhdl->set_signal("reg_ADDRESS_"+toString(i),_param->_size_instruction_address); 41 vhdl->set_signal("reg_DATA_"+toString(i),_param->_size_general_data); 39 size = _param->_size_context_id; 40 max = min-1+size; 41 vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_CONTEXT_ID ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 42 min = max+1; 43 } 44 if(_param->_have_port_front_end_id ) 45 { 46 size = _param->_size_front_end_id; 47 max = min-1+size; 48 vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_FRONT_END_ID ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 49 min = max+1; 50 } 51 if(_param->_have_port_ooo_engine_id ) 52 { 53 size = _param->_size_ooo_engine_id; 54 max = min-1+size; 55 vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 56 min = max+1; 57 } 58 if(_param->_have_port_rob_ptr) 59 { 60 size = _param->_size_rob_ptr; 61 max = min-1+size; 62 vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_PACKET_ID ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 63 min = max+1; 42 64 } 43 65 44 vhdl->set_signal("reg_CURRENT_STATE",_param->_size_queue+1); 66 // size = _param->_size_operation; 67 // max = min-1+size; 68 // vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_OPERATION ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 69 // min = max+1; 70 // 71 // size = _param->_size_type; 72 // max = min-1+size; 73 // vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_TYPE ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 74 // min = max+1; 45 75 46 vhdl->set_signal("sig_NEXT_STATE",_param->_size_queue+1); 76 size = _param->_size_special_data; 77 max = min-1+size; 78 vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_FLAGS ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 79 min = max+1; 47 80 48 for (uint32_t i=0; i<_param->_size_queue-1; ++i) 49 { 50 vhdl->set_signal("sig_WEN_"+toString(i),1); 51 vhdl->set_signal("sig_SEL_"+toString(i),1); 52 } 53 vhdl->set_signal("sig_WEN_"+toString(_param->_size_queue - 1),1); 81 size = _param->_size_exception; 82 max = min-1+size; 83 vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_EXCEPTION ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 84 min = max+1; 54 85 55 vhdl->set_signal("sig_IN_ACK",1); 56 vhdl->set_signal("sig_OUT_VAL",1); 86 size = 1; 87 max = min-1+size; 88 vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_NO_SEQUENCE ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 89 min = max+1; 57 90 58 for (uint32_t i=0; i<_param->_size_queue+1; ++i) 59 vhdl->set_constant("STATE_"+toString(i),_param->_size_queue+1,1<<i); 91 size = _param->_size_instruction_address; 92 max = min-1+size; 93 vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_ADDRESS ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 94 min = max+1; 95 96 size = _param->_size_general_data; 97 max = min-1+size; 98 vhdl->set_alias ("internal_EXECUTE_QUEUE_OUT_DATA ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min)); 99 min = max+1; 100 101 102 // for (uint32_t i=0; i<_param->_size_queue; ++i) 103 // { 104 // if (_param->_have_port_context_id) 105 // vhdl->set_signal("reg_CONTEXT_ID_"+toString(i),_param->_size_context_id); 106 // if (_param->_have_port_front_end_id) 107 // vhdl->set_signal("reg_FRONT_END_ID_"+toString(i),_param->_size_front_end_id); 108 // if (_param->_have_port_ooo_engine_id) 109 // vhdl->set_signal("reg_OOO_ENGINE_ID_"+toString(i),_param->_size_ooo_engine_id); 110 // if (_param->_have_port_rob_ptr) 111 // vhdl->set_signal("reg_PACKET_ID_"+toString(i),_param->_size_rob_ptr); 112 // vhdl->set_signal("reg_FLAGS_"+toString(i),_param->_size_special_data); 113 // vhdl->set_signal("reg_EXCEPTION_"+toString(i),_param->_size_exception); 114 // vhdl->set_signal("reg_NO_SEQUENCE_"+toString(i),1); 115 // vhdl->set_signal("reg_ADDRESS_"+toString(i),_param->_size_instruction_address); 116 // vhdl->set_signal("reg_DATA_"+toString(i),_param->_size_general_data); 117 // } 118 119 // vhdl->set_signal("reg_CURRENT_STATE",_param->_size_queue+1); 120 121 // vhdl->set_signal("sig_NEXT_STATE",_param->_size_queue+1); 122 123 // for (uint32_t i=0; i<_param->_size_queue-1; ++i) 124 // { 125 // vhdl->set_signal("sig_WEN_"+toString(i),1); 126 // vhdl->set_signal("sig_SEL_"+toString(i),1); 127 // } 128 // vhdl->set_signal("sig_WEN_"+toString(_param->_size_queue - 1),1); 129 130 // vhdl->set_signal("sig_IN_ACK",1); 131 // vhdl->set_signal("sig_OUT_VAL",1); 132 133 // for (uint32_t i=0; i<_param->_size_queue+1; ++i) 134 // vhdl->set_constant("STATE_"+toString(i),_param->_size_queue+1,1<<i); 60 135 61 136 log_printf(FUNC,Execute_queue,FUNCTION,"End"); … … 72 147 }; // end namespace morpheo 73 148 #endif 74 // signal reg_0 : std_logic_vector (15 downto 0);75 // signal reg_1 : std_logic_vector (15 downto 0);76 // signal reg_2 : std_logic_vector (15 downto 0);77 // signal reg_3 : std_logic_vector (15 downto 0);78 // signal reg_CURRENT_STATE : std_logic_vector (4 downto 0);79 80 // signal sig_NEXT_STATE : std_logic_vector (4 downto 0);81 // signal sig_WEN0 : std_logic;82 // signal sig_SEL0 : std_logic;83 // signal sig_WEN1 : std_logic;84 // signal sig_SEL1 : std_logic;85 // signal sig_WEN2 : std_logic;86 // signal sig_SEL2 : std_logic;87 // signal sig_WEN3 : std_logic;
Note: See TracChangeset
for help on using the changeset viewer.