Changeset 112 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp
- Timestamp:
- Mar 18, 2009, 11:36:26 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp
r88 r112 7 7 8 8 #include "Behavioural/Generic/Shifter/include/Shifter.h" 9 #include "Behavioural/include/Allocation.h" 9 10 10 11 namespace morpheo { … … 33 34 , IN 34 35 , SOUTH 35 , "Generalist interface"36 , _("Generalist interface") 36 37 #endif 37 38 ); … … 43 44 44 45 { 45 // Interface "shifter" 46 in_SHIFTER_DATA = new SC_IN (Tdata_t) * [_param->_nb_port]; 46 ALLOC1_INTERFACE_BEGIN("shifter", IN, SOUTH,_("Generalist interface"),_param->_nb_port); 47 48 ALLOC1_SIGNAL_IN ( in_SHIFTER_DATA ,"data" ,Tdata_t ,_param->_size_data); 47 49 if (_param->_shift_value == 0) 48 in_SHIFTER_SHIFT = new SC_IN (Tshift_t) * [_param->_nb_port]; 49 if (_param->_direction == external_direction) 50 in_SHIFTER_DIRECTION = new SC_IN (Tdirection_t) * [_param->_nb_port]; 51 if (_param->_rotate == external_rotate) 52 in_SHIFTER_TYPE = new SC_IN (Ttype_t) * [_param->_nb_port]; 53 if (_param->_carry == external_carry) 54 in_SHIFTER_CARRY = new SC_IN (Tcarry_t) * [_param->_nb_port]; 55 if (_param->_carry == external_completion) 50 ALLOC1_SIGNAL_IN ( in_SHIFTER_SHIFT ,"shift" ,Tshift_t ,_param->_size_shift); 51 if (_param->_direction == external_direction) 52 ALLOC1_SIGNAL_IN ( in_SHIFTER_DIRECTION ,"direction" ,Tdirection_t,1); 53 if (_param->_rotate == external_rotate) 54 ALLOC1_SIGNAL_IN ( in_SHIFTER_TYPE ,"type" ,Ttype_t ,1); 55 if (_param->_carry == external_carry) 56 ALLOC1_SIGNAL_IN ( in_SHIFTER_CARRY ,"carry" ,Tcarry_t ,1); 57 if (_param->_carry == external_completion) 58 { 56 59 if (_param->_type_completion_bool == true) 57 in_SHIFTER_CARRY_IN = new SC_IN (Tcontrol_t) * [_param->_nb_port]; 60 { 61 ALLOC1_SIGNAL_IN ( in_SHIFTER_CARRY_IN ,"carry_in" ,Tcontrol_t ,1); 62 } 58 63 else 59 in_SHIFTER_COMPLETION= new SC_IN (Tdata_t) * [_param->_nb_port]; 60 out_SHIFTER_DATA = new SC_OUT(Tdata_t) * [_param->_nb_port]; 64 { 65 ALLOC1_SIGNAL_IN ( in_SHIFTER_COMPLETION ,"completion",Tdata_t ,_param->_size_data_completion); 66 } 67 } 68 ALLOC1_SIGNAL_OUT(out_SHIFTER_DATA ,"data" ,Tdata_t ,_param->_size_data); 61 69 62 for (uint32_t i=0; i<_param->_nb_port; i++) 63 { 64 Interface_fifo * interface = _interfaces->set_interface("shifter_"+toString(i) 65 #ifdef POSITION 66 , IN 67 , SOUTH 68 , "Generalist interface" 69 #endif 70 ); 71 72 in_SHIFTER_DATA [i] = interface->set_signal_in <Tdata_t > ("data" ,_param->_size_data); 73 if (_param->_shift_value == 0) 74 in_SHIFTER_SHIFT [i] = interface->set_signal_in <Tshift_t > ("shift" ,static_cast<uint32_t>(ceil(log2(_param->_size_data)))); 75 if (_param->_direction == external_direction) 76 in_SHIFTER_DIRECTION [i] = interface->set_signal_in <Tdirection_t> ("direction" ,1); 77 if (_param->_rotate == external_rotate) 78 in_SHIFTER_TYPE [i] = interface->set_signal_in <Ttype_t > ("type" ,1); 79 if (_param->_carry == external_carry) 80 in_SHIFTER_CARRY [i] = interface->set_signal_in <Tcarry_t > ("carry" ,1); 81 if (_param->_carry == external_completion) 82 if (_param->_type_completion_bool == true) 83 in_SHIFTER_CARRY_IN [i] = interface->set_signal_in <Tcontrol_t > ("carry_in" ,1); 84 else 85 in_SHIFTER_COMPLETION [i] = interface->set_signal_in <Tdata_t > ("completion",_param->_size_data_completion); 86 out_SHIFTER_DATA [i] = interface->set_signal_out <Tdata_t > ("data" ,_param->_size_data); 87 } 70 ALLOC1_INTERFACE_END(_param->_nb_port); 88 71 } 89 72 90 73 #ifdef POSITION 91 74 if (usage_is_set(_usage,USE_POSITION))
Note: See TracChangeset
for help on using the changeset viewer.