Changeset 116 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_vhdl_declaration.cpp
- Timestamp:
- Apr 30, 2009, 3:51:41 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_vhdl_declaration.cpp
r81 r116 24 24 { 25 25 log_printf(FUNC,Functionnal_unit,FUNCTION,"Begin"); 26 vhdl->set_signal ("sig_EXECUTE_IN_ACK",1); 27 28 vhdl->set_signal ("reg_BUSY_IN",1); 29 30 if(_param->_have_port_context_id) 31 vhdl->set_signal ("reg_EXECUTE_IN_CONTEXT_ID", _param->_size_context_id); 32 if(_param->_have_port_front_end_id) 33 vhdl->set_signal ("reg_EXECUTE_IN_FRONT_END_ID", _param->_size_front_end_id); 34 if(_param->_have_port_ooo_engine_id) 35 vhdl->set_signal ("reg_EXECUTE_IN_OOO_ENGINE_ID", _param->_size_ooo_engine_id); 36 if(_param->_have_port_rob_ptr) 37 vhdl->set_signal ("reg_EXECUTE_IN_PACKET_ID", _param->_size_rob_ptr); 38 vhdl->set_signal ("reg_EXECUTE_IN_OPERATION", _param->_size_operation); 39 vhdl->set_signal ("reg_EXECUTE_IN_TYPE", _param->_size_type); 40 vhdl->set_signal ("reg_EXECUTE_IN_HAS_IMMEDIAT", 1); 41 vhdl->set_signal ("reg_EXECUTE_IN_IMMEDIAT", _param->_size_general_data); 42 vhdl->set_signal ("reg_EXECUTE_IN_DATA_RA", _param->_size_general_data); 43 vhdl->set_signal ("reg_EXECUTE_IN_DATA_RB", _param->_size_general_data); 44 vhdl->set_signal ("reg_EXECUTE_IN_DATA_RC", _param->_size_special_data); 45 vhdl->set_signal ("reg_EXECUTE_IN_WRITE_RD", 1); 46 vhdl->set_signal ("reg_EXECUTE_IN_NUM_REG_RD", _param->_size_general_register); 47 vhdl->set_signal ("reg_EXECUTE_IN_WRITE_RE", 1); 48 vhdl->set_signal ("reg_EXECUTE_IN_NUM_REG_RE", _param->_size_special_register); 49 50 vhdl->set_signal ("sig_B_OPERAND",_param->_size_general_data); 51 52 vhdl->set_signal ("sig_IS_ARITH",1); 53 vhdl->set_signal ("sig_IS_LOGIC",1); 54 vhdl->set_signal ("sig_CIN_ARITH",1); 55 vhdl->set_signal ("sig_ARITH_B_OPERAND",_param->_size_general_data); 56 vhdl->set_signal ("sig_RES_ARITH",_param->_size_general_data+1); 57 vhdl->set_signal ("sig_A_AND_B",_param->_size_general_data); 58 vhdl->set_signal ("sig_A_OR_B",_param->_size_general_data); 59 vhdl->set_signal ("sig_A_XOR_B",_param->_size_general_data); 60 vhdl->set_signal ("sig_RES_LOGIC",_param->_size_general_data); 61 vhdl->set_signal ("sig_RES_ALU",_param->_size_general_data); 62 vhdl->set_signal ("sig_OVR_ALU",1); 63 vhdl->set_signal ("sig_COUT_ALU",1); 64 65 vhdl->set_signal ("sig_RES_MOVE",_param->_size_general_data); 66 vhdl->set_signal ("sig_CMOV",_param->_size_general_data); 67 vhdl->set_signal ("sig_MOVHI",_param->_size_general_data); 68 69 vhdl->set_signal ("sig_RES_BRANCH",_param->_size_general_data); 70 vhdl->set_signal ("sig_ADDR_BRANCH",_param->_size_instruction_address); 71 vhdl->set_signal ("sig_NOSQ_BRANCH",1); 72 73 vhdl->set_signal ("sig_RES_SHIFTER",_param->_size_general_data); 74 75 vhdl->set_signal ("sig_EXT_BYTE_S",_param->_size_general_data); 76 vhdl->set_signal ("sig_EXT_BYTE_Z",_param->_size_general_data); 77 vhdl->set_signal ("sig_EXT_HALF_WORD_S",_param->_size_general_data); 78 vhdl->set_signal ("sig_EXT_HALF_WORD_Z",_param->_size_general_data); 79 vhdl->set_signal ("sig_EXT_WORD_S",_param->_size_general_data); 80 vhdl->set_signal ("sig_EXT_WORD_Z",_param->_size_general_data); 81 vhdl->set_signal ("sig_EXT_S",_param->_size_general_data); 82 vhdl->set_signal ("sig_EXT_Z",_param->_size_general_data); 83 vhdl->set_signal ("sig_RES_EXTEND",_param->_size_general_data); 84 85 vhdl->set_signal ("sig_FF1",log2(_param->_size_general_data)+1); 86 vhdl->set_signal ("sig_FL1",log2(_param->_size_general_data)+1); 87 vhdl->set_signal ("sig_RES_FIND",_param->_size_general_data); 88 89 vhdl->set_signal ("sig_SPR_IS_HERE",1); 90 vhdl->set_signal ("sig_MFSPR",_param->_size_spr); 91 vhdl->set_signal ("sig_MTSPR",_param->_size_spr); 92 93 vhdl->set_signal ("sig_RES_SPECIAL",_param->_size_general_data); 94 95 96 vhdl->set_signal ("sig_EXECUTE_OUT_VAL", 1); 97 vhdl->set_signal ("sig_EXECUTE_OUT_UPDATE", 1); 98 99 vhdl->set_signal ("reg_BUSY_OUT",1); 100 101 if(_param->_have_port_context_id){ 102 vhdl->set_signal ("reg_EXECUTE_OUT_CONTEXT_ID", _param->_size_context_id); 103 vhdl->set_signal ("sig_EXECUTE_OUT_CONTEXT_ID", _param->_size_context_id);} 104 if(_param->_have_port_front_end_id){ 105 vhdl->set_signal ("reg_EXECUTE_OUT_FRONT_END_ID", _param->_size_front_end_id); 106 vhdl->set_signal ("sig_EXECUTE_OUT_FRONT_END_ID", _param->_size_front_end_id);} 107 if(_param->_have_port_ooo_engine_id){ 108 vhdl->set_signal ("reg_EXECUTE_OUT_OOO_ENGINE_ID", _param->_size_ooo_engine_id); 109 vhdl->set_signal ("sig_EXECUTE_OUT_OOO_ENGINE_ID", _param->_size_ooo_engine_id);} 110 if(_param->_have_port_rob_ptr){ 111 vhdl->set_signal ("reg_EXECUTE_OUT_PACKET_ID", _param->_size_rob_ptr); 112 vhdl->set_signal ("sig_EXECUTE_OUT_PACKET_ID", _param->_size_rob_ptr);} 113 vhdl->set_signal ("reg_EXECUTE_OUT_WRITE_RD", 1); 114 vhdl->set_signal ("sig_EXECUTE_OUT_WRITE_RD", 1); 115 vhdl->set_signal ("reg_EXECUTE_OUT_NUM_REG_RD", _param->_size_general_register); 116 vhdl->set_signal ("sig_EXECUTE_OUT_NUM_REG_RD", _param->_size_general_register); 117 vhdl->set_signal ("reg_EXECUTE_OUT_DATA_RD", _param->_size_general_data); 118 vhdl->set_signal ("sig_EXECUTE_OUT_DATA_RD", _param->_size_general_data); 119 vhdl->set_signal ("reg_EXECUTE_OUT_WRITE_RE", 1); 120 vhdl->set_signal ("sig_EXECUTE_OUT_WRITE_RE", 1); 121 vhdl->set_signal ("reg_EXECUTE_OUT_NUM_REG_RE", _param->_size_special_register); 122 vhdl->set_signal ("sig_EXECUTE_OUT_NUM_REG_RE", _param->_size_special_register); 123 vhdl->set_signal ("reg_EXECUTE_OUT_DATA_RE", _param->_size_special_data); 124 vhdl->set_signal ("sig_EXECUTE_OUT_DATA_RE", _param->_size_special_data); 125 vhdl->set_signal ("reg_EXECUTE_OUT_EXCEPTION", _param->_size_exception); 126 vhdl->set_signal ("sig_EXECUTE_OUT_EXCEPTION", _param->_size_exception); 127 vhdl->set_signal ("reg_EXECUTE_OUT_NO_SEQUENCE", 1); 128 vhdl->set_signal ("sig_EXECUTE_OUT_NO_SEQUENCE", 1); 129 vhdl->set_signal ("reg_EXECUTE_OUT_ADDRESS", _param->_size_instruction_address); 130 vhdl->set_signal ("sig_EXECUTE_OUT_ADDRESS", _param->_size_instruction_address); 131 132 vhdl->set_type ("Tmac","array ("+toString(_param->_nb_context)+" downto 0) of "+std_logic(_param->_size_spr)); 133 vhdl->set_signal ("reg_MACLO ", "Tmac"); 134 vhdl->set_signal ("reg_MACHI ", "Tmac"); 135 26 136 log_printf(FUNC,Functionnal_unit,FUNCTION,"End"); 27 137 };
Note: See TracChangeset
for help on using the changeset viewer.