[88] | 1 | #ifndef morpheo_behavioural_core_multi_ooo_engine_ooo_engine_special_register_unit_SPR_h |
---|
| 2 | #define morpheo_behavioural_core_multi_ooo_engine_ooo_engine_special_register_unit_SPR_h |
---|
| 3 | |
---|
| 4 | /* |
---|
| 5 | * $Id: SPR.h 88 2008-12-10 18:31:39Z rosiere $ |
---|
| 6 | * |
---|
| 7 | * [ Description ] |
---|
| 8 | * |
---|
| 9 | */ |
---|
| 10 | |
---|
| 11 | #include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Parameters.h" |
---|
| 12 | #include "Behavioural/include/SPR.h" |
---|
| 13 | |
---|
| 14 | namespace morpheo { |
---|
| 15 | namespace behavioural { |
---|
| 16 | namespace core { |
---|
| 17 | namespace multi_ooo_engine { |
---|
| 18 | namespace ooo_engine { |
---|
| 19 | namespace special_register_unit { |
---|
| 20 | |
---|
| 21 | //---------------------------------------------------------- |
---|
| 22 | // [x][x] GENERIC |
---|
| 23 | //---------------------------------------------------------- |
---|
| 24 | class GENERIC : public morpheo::behavioural::SPR |
---|
| 25 | { |
---|
| 26 | public : Tspr_t x : 32; |
---|
| 27 | |
---|
| 28 | public : GENERIC(uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) {}; |
---|
| 29 | |
---|
| 30 | public : void reset (void ) |
---|
| 31 | { |
---|
| 32 | x = 0; |
---|
| 33 | }; |
---|
| 34 | public : Tspr_t read (void ) |
---|
| 35 | { |
---|
| 36 | return x=0; |
---|
| 37 | }; |
---|
| 38 | public : void write (Tspr_t x) |
---|
| 39 | { |
---|
| 40 | this->x = x; |
---|
| 41 | }; |
---|
| 42 | }; |
---|
| 43 | |
---|
| 44 | //---------------------------------------------------------- |
---|
| 45 | // [0][0] VR |
---|
| 46 | //---------------------------------------------------------- |
---|
| 47 | class VR : public morpheo::behavioural::SPR |
---|
| 48 | { |
---|
| 49 | public : const Tspr_t ver : 8; |
---|
| 50 | public : const Tspr_t _res :10; |
---|
| 51 | public : const Tspr_t cfg : 8; |
---|
| 52 | public : const Tspr_t rev : 8; |
---|
| 53 | |
---|
| 54 | public : VR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 55 | // SPR (), |
---|
| 56 | ver (0), |
---|
| 57 | _res (0), |
---|
| 58 | cfg (0), |
---|
| 59 | rev (0){}; |
---|
| 60 | |
---|
| 61 | public : void reset (void ) {}; |
---|
| 62 | public : Tspr_t read (void ) |
---|
| 63 | { |
---|
| 64 | return ((ver << 24) | |
---|
| 65 | (cfg << 16) | |
---|
| 66 | (rev << 0)); |
---|
| 67 | } |
---|
| 68 | public : void write (Tspr_t x) {}; // All bit field is Read Only |
---|
| 69 | }; |
---|
| 70 | |
---|
| 71 | //---------------------------------------------------------- |
---|
| 72 | // [0][1] UPR |
---|
| 73 | //---------------------------------------------------------- |
---|
| 74 | class UPR : public morpheo::behavioural::SPR |
---|
| 75 | { |
---|
| 76 | public : const Tspr_t cup : 8; |
---|
| 77 | public : const Tspr_t _res : 8; |
---|
| 78 | public : const Tspr_t ttp : 1; |
---|
| 79 | public : const Tspr_t pmp : 1; |
---|
| 80 | public : const Tspr_t picp : 1; |
---|
| 81 | public : const Tspr_t pcup : 1; |
---|
| 82 | public : const Tspr_t dup : 1; |
---|
| 83 | public : const Tspr_t mp : 1; |
---|
| 84 | public : const Tspr_t imp : 1; |
---|
| 85 | public : const Tspr_t dmp : 1; |
---|
| 86 | public : const Tspr_t icp : 1; |
---|
| 87 | public : const Tspr_t dcp : 1; |
---|
| 88 | public : const Tspr_t up : 1; |
---|
| 89 | |
---|
| 90 | public : UPR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 91 | SPR (), |
---|
| 92 | cup (0), |
---|
| 93 | _res (0), |
---|
| 94 | ttp (0), |
---|
| 95 | pmp (0), |
---|
| 96 | picp (0), |
---|
| 97 | pcup (0), |
---|
| 98 | dup (0), |
---|
| 99 | mp (0), |
---|
| 100 | imp (0), |
---|
| 101 | dmp (0), |
---|
| 102 | icp (0), |
---|
| 103 | dcp (0), |
---|
| 104 | up (0) |
---|
| 105 | {}; |
---|
| 106 | |
---|
| 107 | public : void reset (void ) {}; |
---|
| 108 | public : Tspr_t read (void ) |
---|
| 109 | { |
---|
| 110 | return ((cup << 24) | |
---|
| 111 | (ttp << 10) | |
---|
| 112 | (pmp << 9) | |
---|
| 113 | (picp << 8) | |
---|
| 114 | (pcup << 7) | |
---|
| 115 | (dup << 6) | |
---|
| 116 | (mp << 5) | |
---|
| 117 | (imp << 4) | |
---|
| 118 | (dmp << 3) | |
---|
| 119 | (icp << 2) | |
---|
| 120 | (dcp << 1) | |
---|
| 121 | (up << 0)); |
---|
| 122 | } |
---|
| 123 | public : void write (Tspr_t x) {}; // All bit field is Read Only |
---|
| 124 | }; |
---|
| 125 | |
---|
| 126 | //---------------------------------------------------------- |
---|
| 127 | // [0][2] CPUCFGR |
---|
| 128 | //---------------------------------------------------------- |
---|
| 129 | class CPUCFGR : public morpheo::behavioural::SPR |
---|
| 130 | { |
---|
| 131 | public : const Tspr_t _res : 22; |
---|
| 132 | public : const Tspr_t ov64s : 1; |
---|
| 133 | public : const Tspr_t of64s : 1; |
---|
| 134 | public : const Tspr_t of32s : 1; |
---|
| 135 | public : const Tspr_t ob64s : 1; |
---|
| 136 | public : const Tspr_t ob32s : 1; |
---|
| 137 | public : const Tspr_t cgf : 1; |
---|
| 138 | public : const Tspr_t nsdf : 1; |
---|
| 139 | |
---|
| 140 | public : CPUCFGR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 141 | _res (0), |
---|
| 142 | ov64s (0), |
---|
| 143 | of64s (0), |
---|
| 144 | of32s (0), |
---|
| 145 | ob64s (0), |
---|
| 146 | ob32s (0), |
---|
| 147 | cgf (0), |
---|
| 148 | nsdf (0) |
---|
| 149 | {}; |
---|
| 150 | |
---|
| 151 | public : void reset (void ) {}; |
---|
| 152 | public : Tspr_t read (void ) |
---|
| 153 | { |
---|
| 154 | return ((ov64s << 9) | |
---|
| 155 | (of64s << 8) | |
---|
| 156 | (of32s << 7) | |
---|
| 157 | (ob64s << 6) | |
---|
| 158 | (ob32s << 5) | |
---|
| 159 | (cgf << 4) | |
---|
| 160 | (nsdf << 0) ); |
---|
| 161 | } |
---|
| 162 | public : void write (Tspr_t x) {}; // All bit field is Read Only |
---|
| 163 | }; |
---|
| 164 | |
---|
| 165 | //---------------------------------------------------------- |
---|
| 166 | // [0][3] DMMUCFGR |
---|
| 167 | //---------------------------------------------------------- |
---|
| 168 | class DMMUCFGR : public morpheo::behavioural::SPR |
---|
| 169 | { |
---|
| 170 | public : const Tspr_t _res : 20; |
---|
| 171 | public : const Tspr_t htr : 1; |
---|
| 172 | public : const Tspr_t teiri : 1; |
---|
| 173 | public : const Tspr_t pri : 1; |
---|
| 174 | public : const Tspr_t cri : 1; |
---|
| 175 | public : const Tspr_t nae : 3; |
---|
| 176 | public : const Tspr_t nts : 3; |
---|
| 177 | public : const Tspr_t ntw : 2; |
---|
| 178 | |
---|
| 179 | public : DMMUCFGR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 180 | _res (0), |
---|
| 181 | htr (0), |
---|
| 182 | teiri (0), |
---|
| 183 | pri (0), |
---|
| 184 | cri (0), |
---|
| 185 | nae (0), |
---|
| 186 | nts (0), |
---|
| 187 | ntw (0) |
---|
| 188 | {}; |
---|
| 189 | public : void reset (void ) {}; |
---|
| 190 | public : Tspr_t read (void ) |
---|
| 191 | { |
---|
| 192 | return ((htr << 11) | |
---|
| 193 | (teiri << 10) | |
---|
| 194 | (pri << 9) | |
---|
| 195 | (cri << 8) | |
---|
| 196 | (nae << 5) | |
---|
| 197 | (nts << 2) | |
---|
| 198 | (ntw << 0) ); |
---|
| 199 | }; |
---|
| 200 | public : void write (Tspr_t x) {}; // All bit field is Read Only |
---|
| 201 | }; |
---|
| 202 | |
---|
| 203 | //---------------------------------------------------------- |
---|
| 204 | // [0][4] IMMUCFGR |
---|
| 205 | //---------------------------------------------------------- |
---|
| 206 | class IMMUCFGR : public morpheo::behavioural::SPR |
---|
| 207 | { |
---|
| 208 | public : const Tspr_t _res : 20; |
---|
| 209 | public : const Tspr_t htr : 1; |
---|
| 210 | public : const Tspr_t teiri : 1; |
---|
| 211 | public : const Tspr_t pri : 1; |
---|
| 212 | public : const Tspr_t cri : 1; |
---|
| 213 | public : const Tspr_t nae : 3; |
---|
| 214 | public : const Tspr_t nts : 3; |
---|
| 215 | public : const Tspr_t ntw : 2; |
---|
| 216 | |
---|
| 217 | public : IMMUCFGR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 218 | _res (0), |
---|
| 219 | htr (0), |
---|
| 220 | teiri (0), |
---|
| 221 | pri (0), |
---|
| 222 | cri (0), |
---|
| 223 | nae (0), |
---|
| 224 | nts (0), |
---|
| 225 | ntw (0) |
---|
| 226 | {}; |
---|
| 227 | public : void reset (void ) {}; |
---|
| 228 | public : Tspr_t read (void ) |
---|
| 229 | { |
---|
| 230 | return ((htr << 11) | |
---|
| 231 | (teiri << 10) | |
---|
| 232 | (pri << 9) | |
---|
| 233 | (cri << 8) | |
---|
| 234 | (nae << 5) | |
---|
| 235 | (nts << 2) | |
---|
| 236 | (ntw << 0) ); |
---|
| 237 | }; |
---|
| 238 | public : void write (Tspr_t x) {}; // All bit field is Read Only |
---|
| 239 | }; |
---|
| 240 | |
---|
| 241 | //---------------------------------------------------------- |
---|
| 242 | // [0][5] DCCFGR |
---|
| 243 | //---------------------------------------------------------- |
---|
| 244 | class DCCFGR : public morpheo::behavioural::SPR |
---|
| 245 | { |
---|
| 246 | public : const Tspr_t _res : 17; |
---|
| 247 | public : const Tspr_t cbwbri : 1; |
---|
| 248 | public : const Tspr_t cbfri : 1; |
---|
| 249 | public : const Tspr_t cblri : 1; |
---|
| 250 | public : const Tspr_t cbpri : 1; |
---|
| 251 | public : const Tspr_t cbiri : 1; |
---|
| 252 | public : const Tspr_t ccri : 1; |
---|
| 253 | public : const Tspr_t cws : 1; |
---|
| 254 | public : const Tspr_t cbs : 1; |
---|
| 255 | public : const Tspr_t ncs : 4; |
---|
| 256 | public : const Tspr_t ncw : 3; |
---|
| 257 | |
---|
| 258 | public : DCCFGR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 259 | _res (0), |
---|
| 260 | cbwbri (0), |
---|
| 261 | cbfri (0), |
---|
| 262 | cblri (0), |
---|
| 263 | cbpri (0), |
---|
| 264 | cbiri (0), |
---|
| 265 | ccri (0), |
---|
| 266 | cws (0), |
---|
| 267 | cbs (0), |
---|
| 268 | ncs (0), |
---|
| 269 | ncw (0) |
---|
| 270 | {}; |
---|
| 271 | public : void reset (void ) {}; |
---|
| 272 | public : Tspr_t read (void ) |
---|
| 273 | { |
---|
| 274 | return ((cbwbri << 14) | |
---|
| 275 | (cbfri << 13) | |
---|
| 276 | (cblri << 12) | |
---|
| 277 | (cbpri << 11) | |
---|
| 278 | (cbiri << 10) | |
---|
| 279 | (ccri << 9) | |
---|
| 280 | (cws << 8) | |
---|
| 281 | (cbs << 7) | |
---|
| 282 | (ncs << 3) | |
---|
| 283 | (ncw << 0) ); |
---|
| 284 | }; |
---|
| 285 | public : void write (Tspr_t x) {}; // All bit field is Read Only |
---|
| 286 | }; |
---|
| 287 | |
---|
| 288 | //---------------------------------------------------------- |
---|
| 289 | // [0][6] ICCFGR |
---|
| 290 | //---------------------------------------------------------- |
---|
| 291 | class ICCFGR : public morpheo::behavioural::SPR |
---|
| 292 | { |
---|
| 293 | public : const Tspr_t _res1 : 19; |
---|
| 294 | public : const Tspr_t cblri : 1; |
---|
| 295 | public : const Tspr_t cbpri : 1; |
---|
| 296 | public : const Tspr_t cbiri : 1; |
---|
| 297 | public : const Tspr_t ccri : 1; |
---|
| 298 | public : const Tspr_t _res2 : 1; |
---|
| 299 | public : const Tspr_t cbs : 1; |
---|
| 300 | public : const Tspr_t ncs : 4; |
---|
| 301 | public : const Tspr_t ncw : 3; |
---|
| 302 | |
---|
| 303 | public : ICCFGR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 304 | _res1 (0), |
---|
| 305 | cblri (0), |
---|
| 306 | cbpri (0), |
---|
| 307 | cbiri (0), |
---|
| 308 | ccri (0), |
---|
| 309 | _res2 (0), |
---|
| 310 | cbs (0), |
---|
| 311 | ncs (0), |
---|
| 312 | ncw (0) |
---|
| 313 | {}; |
---|
| 314 | public : void reset (void ) {}; |
---|
| 315 | public : Tspr_t read (void ) |
---|
| 316 | { |
---|
| 317 | return ((cblri << 12) | |
---|
| 318 | (cbpri << 11) | |
---|
| 319 | (cbiri << 10) | |
---|
| 320 | (ccri << 9) | |
---|
| 321 | (cbs << 7) | |
---|
| 322 | (ncs << 3) | |
---|
| 323 | (ncw << 0) ); |
---|
| 324 | }; |
---|
| 325 | public : void write (Tspr_t x) {}; // All bit field is Read Only |
---|
| 326 | }; |
---|
| 327 | |
---|
| 328 | //---------------------------------------------------------- |
---|
| 329 | // [0][7] DCFGR |
---|
| 330 | //---------------------------------------------------------- |
---|
| 331 | class DCFGR : public morpheo::behavioural::SPR |
---|
| 332 | { |
---|
| 333 | public : const Tspr_t _res : 28; |
---|
| 334 | public : const Tspr_t wpci : 1; |
---|
| 335 | public : const Tspr_t ndp : 3; |
---|
| 336 | |
---|
| 337 | public : DCFGR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 338 | _res (0), |
---|
| 339 | wpci (0), |
---|
| 340 | ndp (0) |
---|
| 341 | {}; |
---|
| 342 | public : void reset (void ) {}; |
---|
| 343 | public : Tspr_t read (void ) |
---|
| 344 | { |
---|
| 345 | return ((wpci << 3) | |
---|
| 346 | (ndp << 0) ); |
---|
| 347 | }; |
---|
| 348 | public : void write (Tspr_t x) {}; // All bit field is Read Only |
---|
| 349 | }; |
---|
| 350 | |
---|
| 351 | //---------------------------------------------------------- |
---|
| 352 | // [0][8] PCCFGR |
---|
| 353 | //---------------------------------------------------------- |
---|
| 354 | class PCCFGR : public morpheo::behavioural::SPR |
---|
| 355 | { |
---|
| 356 | public : const Tspr_t _res : 29; |
---|
| 357 | public : const Tspr_t npc : 3; |
---|
| 358 | |
---|
| 359 | public : PCCFGR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 360 | _res (0), |
---|
| 361 | npc (0) |
---|
| 362 | {}; |
---|
| 363 | public : void reset (void ) {}; |
---|
| 364 | public : Tspr_t read (void ) |
---|
| 365 | { |
---|
| 366 | return ((npc << 0)); |
---|
| 367 | }; |
---|
| 368 | public : void write (Tspr_t x) {}; // All bit field is Read Only |
---|
| 369 | }; |
---|
| 370 | |
---|
| 371 | //---------------------------------------------------------- |
---|
| 372 | // [0][16] NPC |
---|
| 373 | //---------------------------------------------------------- |
---|
| 374 | class NPC : public GENERIC |
---|
| 375 | { |
---|
| 376 | public : NPC (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 377 | }; |
---|
| 378 | |
---|
| 379 | //---------------------------------------------------------- |
---|
| 380 | // [0][17] SR |
---|
| 381 | //---------------------------------------------------------- |
---|
| 382 | class SR : public morpheo::behavioural::SPR |
---|
| 383 | { |
---|
| 384 | public : Tspr_t cid : 4; |
---|
| 385 | public : const Tspr_t _res : 11; |
---|
| 386 | public : Tspr_t sumra : 1; |
---|
| 387 | public : const Tspr_t fo : 1; |
---|
| 388 | public : Tspr_t eph : 1; |
---|
| 389 | public : Tspr_t dsx : 1; |
---|
| 390 | public : Tspr_t ove : 1; |
---|
| 391 | public : Tspr_t ov : 1; |
---|
| 392 | public : Tspr_t cy : 1; |
---|
| 393 | public : Tspr_t f : 1; |
---|
| 394 | public : Tspr_t ce : 1; |
---|
| 395 | public : Tspr_t lee : 1; |
---|
| 396 | public : Tspr_t ime : 1; |
---|
| 397 | public : Tspr_t dme : 1; |
---|
| 398 | public : Tspr_t ice : 1; |
---|
| 399 | public : Tspr_t dce : 1; |
---|
| 400 | public : Tspr_t iee : 1; |
---|
| 401 | public : Tspr_t tee : 1; |
---|
| 402 | public : Tspr_t sm : 1; |
---|
| 403 | |
---|
| 404 | public : SR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 405 | _res (0), |
---|
| 406 | fo (1) |
---|
| 407 | {}; |
---|
| 408 | public : void reset (void ) |
---|
| 409 | { |
---|
| 410 | cid = 0; |
---|
| 411 | sumra = 0; |
---|
| 412 | eph = 0; |
---|
| 413 | dsx = 0; |
---|
| 414 | ove = 0; |
---|
| 415 | ov = 0; |
---|
| 416 | cy = 0; |
---|
| 417 | f = 0; |
---|
| 418 | ce = 0; |
---|
| 419 | lee = 0; |
---|
| 420 | ime = 0; |
---|
| 421 | dme = 0; |
---|
| 422 | ice = 0; |
---|
| 423 | dce = 0; |
---|
| 424 | iee = 0; |
---|
| 425 | tee = 0; |
---|
| 426 | sm = 1; |
---|
| 427 | }; |
---|
| 428 | public : Tspr_t read (void ) |
---|
| 429 | { |
---|
| 430 | return ((cid << 28) | |
---|
| 431 | (sumra << 16) | |
---|
| 432 | (fo << 15) | |
---|
| 433 | (eph << 14) | |
---|
| 434 | (dsx << 13) | |
---|
| 435 | (ove << 12) | |
---|
| 436 | (ov << 11) | |
---|
| 437 | (cy << 10) | |
---|
| 438 | (f << 9) | |
---|
| 439 | (ce << 8) | |
---|
| 440 | (lee << 7) | |
---|
| 441 | (ime << 6) | |
---|
| 442 | (dme << 5) | |
---|
| 443 | (ice << 4) | |
---|
| 444 | (dce << 3) | |
---|
| 445 | (iee << 2) | |
---|
| 446 | (tee << 1) | |
---|
| 447 | (sm << 0) ); |
---|
| 448 | }; |
---|
| 449 | public : void write (Tspr_t x) |
---|
| 450 | { |
---|
| 451 | cid = x >> 28; |
---|
| 452 | sumra = x >> 16; |
---|
| 453 | eph = x >> 14; |
---|
| 454 | dsx = x >> 13; |
---|
| 455 | ove = x >> 12; |
---|
| 456 | ov = x >> 11; |
---|
| 457 | cy = x >> 10; |
---|
| 458 | f = x >> 9; |
---|
| 459 | ce = x >> 8; |
---|
| 460 | lee = x >> 7; |
---|
| 461 | ime = x >> 6; |
---|
| 462 | dme = x >> 5; |
---|
| 463 | ice = x >> 4; |
---|
| 464 | dce = x >> 3; |
---|
| 465 | iee = x >> 2; |
---|
| 466 | tee = x >> 1; |
---|
| 467 | sm = x >> 0; |
---|
| 468 | }; |
---|
| 469 | }; |
---|
| 470 | |
---|
| 471 | //---------------------------------------------------------- |
---|
| 472 | // [0][18] PPC |
---|
| 473 | //---------------------------------------------------------- |
---|
| 474 | class PPC : public GENERIC |
---|
| 475 | { |
---|
| 476 | public : PPC (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 477 | }; |
---|
| 478 | |
---|
| 479 | //---------------------------------------------------------- |
---|
| 480 | // [0][19] CID |
---|
| 481 | //---------------------------------------------------------- |
---|
| 482 | class CID : public GENERIC |
---|
| 483 | { |
---|
| 484 | public : CID (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 485 | }; |
---|
| 486 | |
---|
| 487 | //---------------------------------------------------------- |
---|
| 488 | // [0][20] FPCSR |
---|
| 489 | //---------------------------------------------------------- |
---|
| 490 | class FPCSR : public morpheo::behavioural::SPR |
---|
| 491 | { |
---|
| 492 | public : const Tspr_t _res : 20; |
---|
| 493 | public : Tspr_t dzf : 1; |
---|
| 494 | public : Tspr_t inf : 1; |
---|
| 495 | public : Tspr_t ivf : 1; |
---|
| 496 | public : Tspr_t ixf : 1; |
---|
| 497 | public : Tspr_t zf : 1; |
---|
| 498 | public : Tspr_t qnf : 1; |
---|
| 499 | public : Tspr_t snf : 1; |
---|
| 500 | public : Tspr_t unf : 1; |
---|
| 501 | public : Tspr_t ovf : 1; |
---|
| 502 | public : Tspr_t rm : 2; |
---|
| 503 | public : Tspr_t fpee : 1; |
---|
| 504 | |
---|
| 505 | public : FPCSR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 506 | _res (0) |
---|
| 507 | {}; |
---|
| 508 | public : void reset (void ) |
---|
| 509 | { |
---|
| 510 | dzf = 0; |
---|
| 511 | inf = 0; |
---|
| 512 | ivf = 0; |
---|
| 513 | ixf = 0; |
---|
| 514 | zf = 0; |
---|
| 515 | qnf = 0; |
---|
| 516 | snf = 0; |
---|
| 517 | unf = 0; |
---|
| 518 | ovf = 0; |
---|
| 519 | rm = 0; |
---|
| 520 | fpee = 0; |
---|
| 521 | }; |
---|
| 522 | public : Tspr_t read (void ) |
---|
| 523 | { |
---|
| 524 | return ((dzf << 11) | |
---|
| 525 | (inf << 10) | |
---|
| 526 | (ivf << 9) | |
---|
| 527 | (ixf << 8) | |
---|
| 528 | (zf << 7) | |
---|
| 529 | (qnf << 6) | |
---|
| 530 | (snf << 5) | |
---|
| 531 | (unf << 4) | |
---|
| 532 | (ovf << 3) | |
---|
| 533 | (rm << 1) | |
---|
| 534 | (fpee << 0) ); |
---|
| 535 | }; |
---|
| 536 | public : void write (Tspr_t x) |
---|
| 537 | { |
---|
| 538 | dzf = x >> 11; |
---|
| 539 | inf = x >> 10; |
---|
| 540 | ivf = x >> 9; |
---|
| 541 | ixf = x >> 8; |
---|
| 542 | zf = x >> 7; |
---|
| 543 | qnf = x >> 6; |
---|
| 544 | snf = x >> 5; |
---|
| 545 | unf = x >> 4; |
---|
| 546 | ovf = x >> 3; |
---|
| 547 | rm = x >> 1; |
---|
| 548 | fpee = x >> 0; |
---|
| 549 | }; |
---|
| 550 | }; |
---|
| 551 | |
---|
| 552 | //---------------------------------------------------------- |
---|
| 553 | // [0][32] EPCR |
---|
| 554 | //---------------------------------------------------------- |
---|
| 555 | class EPCR : public GENERIC |
---|
| 556 | { |
---|
| 557 | public : EPCR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 558 | }; |
---|
| 559 | |
---|
| 560 | //---------------------------------------------------------- |
---|
| 561 | // [0][48] EEAR |
---|
| 562 | //---------------------------------------------------------- |
---|
| 563 | class EEAR : public GENERIC |
---|
| 564 | { |
---|
| 565 | public : EEAR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 566 | }; |
---|
| 567 | |
---|
| 568 | //---------------------------------------------------------- |
---|
| 569 | // [0][64] ESR |
---|
| 570 | //---------------------------------------------------------- |
---|
| 571 | class ESR : public GENERIC |
---|
| 572 | { |
---|
| 573 | public : ESR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 574 | }; |
---|
| 575 | |
---|
| 576 | //---------------------------------------------------------- |
---|
| 577 | // [0][1024] GPR |
---|
| 578 | //---------------------------------------------------------- |
---|
| 579 | class GPR : public GENERIC |
---|
| 580 | { |
---|
| 581 | public : GPR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 582 | }; |
---|
| 583 | |
---|
| 584 | //---------------------------------------------------------- |
---|
| 585 | // [3][0] DCCR |
---|
| 586 | //---------------------------------------------------------- |
---|
| 587 | class DCCR : public morpheo::behavioural::SPR |
---|
| 588 | { |
---|
| 589 | public : const Tspr_t _res : 24; |
---|
| 590 | public : Tspr_t ew : 8; |
---|
| 591 | |
---|
| 592 | public : DCCR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL): |
---|
| 593 | _res (0), |
---|
| 594 | ew (0) |
---|
| 595 | {}; |
---|
| 596 | public : void reset (void ) {}; |
---|
| 597 | public : Tspr_t read (void ) |
---|
| 598 | { |
---|
| 599 | return ((ew << 0)); |
---|
| 600 | }; |
---|
| 601 | public : void write (Tspr_t x) |
---|
| 602 | { |
---|
| 603 | ew = (x >> 0); |
---|
| 604 | }; |
---|
| 605 | }; |
---|
| 606 | |
---|
| 607 | //---------------------------------------------------------- |
---|
| 608 | // [3][1] DCBPR |
---|
| 609 | //---------------------------------------------------------- |
---|
| 610 | class DCBPR : public GENERIC |
---|
| 611 | { |
---|
| 612 | public : DCBPR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 613 | }; |
---|
| 614 | |
---|
| 615 | //---------------------------------------------------------- |
---|
| 616 | // [3][2] DCBFR |
---|
| 617 | //---------------------------------------------------------- |
---|
| 618 | class DCBFR : public GENERIC |
---|
| 619 | { |
---|
| 620 | public : DCBFR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 621 | }; |
---|
| 622 | |
---|
| 623 | //---------------------------------------------------------- |
---|
| 624 | // [3][3] DCBIR |
---|
| 625 | //---------------------------------------------------------- |
---|
| 626 | class DCBIR : public GENERIC |
---|
| 627 | { |
---|
| 628 | public : DCBIR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 629 | }; |
---|
| 630 | |
---|
| 631 | //---------------------------------------------------------- |
---|
| 632 | // [3][4] DCBWR |
---|
| 633 | //---------------------------------------------------------- |
---|
| 634 | class DCBWR : public GENERIC |
---|
| 635 | { |
---|
| 636 | public : DCBWR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 637 | }; |
---|
| 638 | |
---|
| 639 | //---------------------------------------------------------- |
---|
| 640 | // [3][5] DCBLR |
---|
| 641 | //---------------------------------------------------------- |
---|
| 642 | class DCBLR : public GENERIC |
---|
| 643 | { |
---|
| 644 | public : DCBLR (uint32_t num_front_end=0, uint32_t num_context=0,const Parameters * param=NULL) : GENERIC (num_front_end,num_context,param) {}; |
---|
| 645 | }; |
---|
| 646 | |
---|
| 647 | // //---------------------------------------------------------- |
---|
| 648 | // // [0][1] UPR |
---|
| 649 | // //---------------------------------------------------------- |
---|
| 650 | // class UPR : public morpheo::behavioural::SPR |
---|
| 651 | // { |
---|
| 652 | // public : UPR (void): {}; |
---|
| 653 | // public : void reset (void ) {}; |
---|
| 654 | // public : Tspr_t read (void ) |
---|
| 655 | // { |
---|
| 656 | // return (); |
---|
| 657 | // }; |
---|
| 658 | // public : void write (Tspr_t x) {}; |
---|
| 659 | // }; |
---|
| 660 | |
---|
| 661 | |
---|
| 662 | }; // end namespace special_register_unit |
---|
| 663 | }; // end namespace ooo_engine |
---|
| 664 | }; // end namespace multi_ooo_engine |
---|
| 665 | }; // end namespace core |
---|
| 666 | |
---|
| 667 | }; // end namespace behavioural |
---|
| 668 | }; // end namespace morpheo |
---|
| 669 | |
---|
| 670 | #endif |
---|