Changeset 113 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/src/test.cpp
- Timestamp:
- Apr 14, 2009, 8:39:12 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Comparator/SelfTest/src/test.cpp
r112 r113 9 9 #include "Behavioural/Generic/Comparator/SelfTest/include/test.h" 10 10 #include "Behavioural/include/Allocation.h" 11 #include "Common/include/BitManipulation.h" 11 12 12 13 void test (string name, … … 50 51 sc_clock * in_CLOCK = new sc_clock ("clock", 1.0, 0.5); 51 52 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 53 54 sc_signal<Tdata_t > * in_COMPARE_DATA_0; 55 sc_signal<Tdata_t > * in_COMPARE_DATA_1; 56 sc_signal<Tcontrol_t> * out_COMPARE_TEST ; 57 58 ALLOC0_SC_SIGNAL( in_COMPARE_DATA_0," in_COMPARE_DATA_0",Tdata_t ); 59 ALLOC0_SC_SIGNAL( in_COMPARE_DATA_1," in_COMPARE_DATA_1",Tdata_t ); 60 ALLOC0_SC_SIGNAL(out_COMPARE_TEST ,"out_COMPARE_TEST ",Tcontrol_t); 52 61 53 62 /******************************************************** … … 60 69 (*(_Comparator->in_NRESET)) (*(in_NRESET)); 61 70 62 71 INSTANCE0_SC_SIGNAL(_Comparator, in_COMPARE_DATA_0); 72 INSTANCE0_SC_SIGNAL(_Comparator, in_COMPARE_DATA_1); 73 INSTANCE0_SC_SIGNAL(_Comparator,out_COMPARE_TEST ); 74 63 75 msg(_("<%s> : Start Simulation ............\n"),name.c_str()); 64 76 … … 90 102 LABEL("Iteration %d",iteration); 91 103 104 uint64_t data0 = range<uint64_t>(rand(),_param->_size_data); 105 uint64_t data1 = range<uint64_t>(rand(),_param->_size_data); 106 107 in_COMPARE_DATA_0->write(static_cast<Tdata_t>(data0)); 108 in_COMPARE_DATA_1->write(static_cast<Tdata_t>(data1)); 109 110 SC_START(0); 111 112 Tcontrol_t test = false; 113 switch (_param->_size_data) 114 { 115 case 8 : 116 { 117 if (_param->_is_signed) 118 switch (_param->_type) 119 { 120 case COMPARATOR_EQUAL : test = static_cast< int8_t>(data0) == static_cast< int8_t>(data1); break; 121 case COMPARATOR_NOT_EQUAL : test = static_cast< int8_t>(data0) != static_cast< int8_t>(data1); break; 122 case COMPARATOR_GREATER : test = static_cast< int8_t>(data0) > static_cast< int8_t>(data1); break; 123 case COMPARATOR_GREATER_OR_EQUAL : test = static_cast< int8_t>(data0) >= static_cast< int8_t>(data1); break; 124 case COMPARATOR_LESS : test = static_cast< int8_t>(data0) < static_cast< int8_t>(data1); break; 125 case COMPARATOR_LESS_OR_EQUAL : test = static_cast< int8_t>(data0) <= static_cast< int8_t>(data1); break; 126 } 127 else 128 switch (_param->_type) 129 { 130 case COMPARATOR_EQUAL : test = static_cast<uint8_t>(data0) == static_cast<uint8_t>(data1); break; 131 case COMPARATOR_NOT_EQUAL : test = static_cast<uint8_t>(data0) != static_cast<uint8_t>(data1); break; 132 case COMPARATOR_GREATER : test = static_cast<uint8_t>(data0) > static_cast<uint8_t>(data1); break; 133 case COMPARATOR_GREATER_OR_EQUAL : test = static_cast<uint8_t>(data0) >= static_cast<uint8_t>(data1); break; 134 case COMPARATOR_LESS : test = static_cast<uint8_t>(data0) < static_cast<uint8_t>(data1); break; 135 case COMPARATOR_LESS_OR_EQUAL : test = static_cast<uint8_t>(data0) <= static_cast<uint8_t>(data1); break; 136 } 137 break; 138 } 139 case 16 : 140 { 141 if (_param->_is_signed) 142 switch (_param->_type) 143 { 144 case COMPARATOR_EQUAL : test = static_cast< int16_t>(data0) == static_cast< int16_t>(data1); break; 145 case COMPARATOR_NOT_EQUAL : test = static_cast< int16_t>(data0) != static_cast< int16_t>(data1); break; 146 case COMPARATOR_GREATER : test = static_cast< int16_t>(data0) > static_cast< int16_t>(data1); break; 147 case COMPARATOR_GREATER_OR_EQUAL : test = static_cast< int16_t>(data0) >= static_cast< int16_t>(data1); break; 148 case COMPARATOR_LESS : test = static_cast< int16_t>(data0) < static_cast< int16_t>(data1); break; 149 case COMPARATOR_LESS_OR_EQUAL : test = static_cast< int16_t>(data0) <= static_cast< int16_t>(data1); break; 150 } 151 else 152 switch (_param->_type) 153 { 154 case COMPARATOR_EQUAL : test = static_cast<uint16_t>(data0) == static_cast<uint16_t>(data1); break; 155 case COMPARATOR_NOT_EQUAL : test = static_cast<uint16_t>(data0) != static_cast<uint16_t>(data1); break; 156 case COMPARATOR_GREATER : test = static_cast<uint16_t>(data0) > static_cast<uint16_t>(data1); break; 157 case COMPARATOR_GREATER_OR_EQUAL : test = static_cast<uint16_t>(data0) >= static_cast<uint16_t>(data1); break; 158 case COMPARATOR_LESS : test = static_cast<uint16_t>(data0) < static_cast<uint16_t>(data1); break; 159 case COMPARATOR_LESS_OR_EQUAL : test = static_cast<uint16_t>(data0) <= static_cast<uint16_t>(data1); break; 160 } 161 break; 162 } 163 case 32 : 164 { 165 if (_param->_is_signed) 166 switch (_param->_type) 167 { 168 case COMPARATOR_EQUAL : test = static_cast< int32_t>(data0) == static_cast< int32_t>(data1); break; 169 case COMPARATOR_NOT_EQUAL : test = static_cast< int32_t>(data0) != static_cast< int32_t>(data1); break; 170 case COMPARATOR_GREATER : test = static_cast< int32_t>(data0) > static_cast< int32_t>(data1); break; 171 case COMPARATOR_GREATER_OR_EQUAL : test = static_cast< int32_t>(data0) >= static_cast< int32_t>(data1); break; 172 case COMPARATOR_LESS : test = static_cast< int32_t>(data0) < static_cast< int32_t>(data1); break; 173 case COMPARATOR_LESS_OR_EQUAL : test = static_cast< int32_t>(data0) <= static_cast< int32_t>(data1); break; 174 } 175 else 176 switch (_param->_type) 177 { 178 case COMPARATOR_EQUAL : test = static_cast<uint32_t>(data0) == static_cast<uint32_t>(data1); break; 179 case COMPARATOR_NOT_EQUAL : test = static_cast<uint32_t>(data0) != static_cast<uint32_t>(data1); break; 180 case COMPARATOR_GREATER : test = static_cast<uint32_t>(data0) > static_cast<uint32_t>(data1); break; 181 case COMPARATOR_GREATER_OR_EQUAL : test = static_cast<uint32_t>(data0) >= static_cast<uint32_t>(data1); break; 182 case COMPARATOR_LESS : test = static_cast<uint32_t>(data0) < static_cast<uint32_t>(data1); break; 183 case COMPARATOR_LESS_OR_EQUAL : test = static_cast<uint32_t>(data0) <= static_cast<uint32_t>(data1); break; 184 } 185 break; 186 } 187 case 64 : 188 { 189 if (_param->_is_signed) 190 switch (_param->_type) 191 { 192 case COMPARATOR_EQUAL : test = static_cast< int64_t>(data0) == static_cast< int64_t>(data1); break; 193 case COMPARATOR_NOT_EQUAL : test = static_cast< int64_t>(data0) != static_cast< int64_t>(data1); break; 194 case COMPARATOR_GREATER : test = static_cast< int64_t>(data0) > static_cast< int64_t>(data1); break; 195 case COMPARATOR_GREATER_OR_EQUAL : test = static_cast< int64_t>(data0) >= static_cast< int64_t>(data1); break; 196 case COMPARATOR_LESS : test = static_cast< int64_t>(data0) < static_cast< int64_t>(data1); break; 197 case COMPARATOR_LESS_OR_EQUAL : test = static_cast< int64_t>(data0) <= static_cast< int64_t>(data1); break; 198 } 199 else 200 switch (_param->_type) 201 { 202 case COMPARATOR_EQUAL : test = static_cast<uint64_t>(data0) == static_cast<uint64_t>(data1); break; 203 case COMPARATOR_NOT_EQUAL : test = static_cast<uint64_t>(data0) != static_cast<uint64_t>(data1); break; 204 case COMPARATOR_GREATER : test = static_cast<uint64_t>(data0) > static_cast<uint64_t>(data1); break; 205 case COMPARATOR_GREATER_OR_EQUAL : test = static_cast<uint64_t>(data0) >= static_cast<uint64_t>(data1); break; 206 case COMPARATOR_LESS : test = static_cast<uint64_t>(data0) < static_cast<uint64_t>(data1); break; 207 case COMPARATOR_LESS_OR_EQUAL : test = static_cast<uint64_t>(data0) <= static_cast<uint64_t>(data1); break; 208 } 209 break; 210 } 211 default : 212 { 213 TEST_KO("Invalid size for the test."); 214 } 215 } 216 217 TEST(Tcontrol_t,out_COMPARE_TEST->read(),test); 218 92 219 SC_START(1); 93 220 } … … 104 231 delete in_CLOCK; 105 232 delete in_NRESET; 233 DELETE0_SC_SIGNAL( in_COMPARE_DATA_0); 234 DELETE0_SC_SIGNAL( in_COMPARE_DATA_1); 235 DELETE0_SC_SIGNAL(out_COMPARE_TEST ); 106 236 } 107 237 #endif
Note: See TracChangeset
for help on using the changeset viewer.