OpenCores
URL https://opencores.org/ocsvn/neorv32/neorv32/trunk

Subversion Repositories neorv32

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /neorv32/trunk/rtl/core
    from Rev 23 to Rev 24
    Reverse comparison

Rev 23 → Rev 24

/neorv32_application_image.vhd
6,7 → 6,7
 
package neorv32_application_image is
 
type application_init_image_t is array (0 to 836) of std_ulogic_vector(31 downto 0);
type application_init_image_t is array (0 to 849) of std_ulogic_vector(31 downto 0);
constant application_init_image : application_init_image_t := (
00000000 => x"00000093",
00000001 => x"00000113",
44,7 → 44,7
00000033 => x"00158593",
00000034 => x"ff5ff06f",
00000035 => x"00001597",
00000036 => x"c8458593",
00000036 => x"cb858593",
00000037 => x"80000617",
00000038 => x"f6c60613",
00000039 => x"80000697",
87,25 → 87,25
00000076 => x"b0050513",
00000077 => x"00112623",
00000078 => x"00812423",
00000079 => x"500000ef",
00000080 => x"7e4000ef",
00000079 => x"514000ef",
00000080 => x"7f8000ef",
00000081 => x"02050c63",
00000082 => x"3a4000ef",
00000083 => x"00001537",
00000084 => x"a3850513",
00000085 => x"584000ef",
00000084 => x"a4c50513",
00000085 => x"598000ef",
00000086 => x"00000513",
00000087 => x"7d8000ef",
00000087 => x"7ec000ef",
00000088 => x"00000413",
00000089 => x"0ff47513",
00000090 => x"7cc000ef",
00000090 => x"7e0000ef",
00000091 => x"0c800513",
00000092 => x"774000ef",
00000092 => x"788000ef",
00000093 => x"00140413",
00000094 => x"fedff06f",
00000095 => x"00001537",
00000096 => x"a1450513",
00000097 => x"554000ef",
00000096 => x"a2850513",
00000097 => x"568000ef",
00000098 => x"00c12083",
00000099 => x"00812403",
00000100 => x"00000513",
163,7 → 163,7
00000152 => x"30200073",
00000153 => x"00001737",
00000154 => x"00279793",
00000155 => x"a5470713",
00000155 => x"a6870713",
00000156 => x"00e787b3",
00000157 => x"0007a783",
00000158 => x"00078067",
174,7 → 174,7
00000163 => x"f8f764e3",
00000164 => x"00001737",
00000165 => x"00279793",
00000166 => x"a8470713",
00000166 => x"a9870713",
00000167 => x"00e787b3",
00000168 => x"0007a783",
00000169 => x"00078067",
218,10 → 218,10
00000207 => x"00000000",
00000208 => x"00001537",
00000209 => x"ff010113",
00000210 => x"ac850513",
00000210 => x"adc50513",
00000211 => x"00112623",
00000212 => x"00812423",
00000213 => x"3dc000ef",
00000213 => x"3f0000ef",
00000214 => x"34202473",
00000215 => x"00b00793",
00000216 => x"0487f263",
233,7 → 233,7
00000222 => x"00001537",
00000223 => x"00040593",
00000224 => x"c5050513",
00000225 => x"3ac000ef",
00000225 => x"3c0000ef",
00000226 => x"0400006f",
00000227 => x"00001737",
00000228 => x"00279793",
248,8 → 248,8
00000237 => x"0007a783",
00000238 => x"00078067",
00000239 => x"00001537",
00000240 => x"ad050513",
00000241 => x"36c000ef",
00000240 => x"ae450513",
00000241 => x"380000ef",
00000242 => x"341025f3",
00000243 => x"00059783",
00000244 => x"00044a63",
263,51 → 263,51
00000252 => x"00001537",
00000253 => x"c6050513",
00000254 => x"01010113",
00000255 => x"3340006f",
00000255 => x"3480006f",
00000256 => x"00001537",
00000257 => x"af050513",
00000257 => x"b0450513",
00000258 => x"fbdff06f",
00000259 => x"00001537",
00000260 => x"b0c50513",
00000260 => x"b2050513",
00000261 => x"fb1ff06f",
00000262 => x"00001537",
00000263 => x"b2050513",
00000263 => x"b3450513",
00000264 => x"fa5ff06f",
00000265 => x"00001537",
00000266 => x"b2c50513",
00000266 => x"b4050513",
00000267 => x"f99ff06f",
00000268 => x"00001537",
00000269 => x"b4450513",
00000269 => x"b5850513",
00000270 => x"f8dff06f",
00000271 => x"00001537",
00000272 => x"b5850513",
00000272 => x"b6c50513",
00000273 => x"f81ff06f",
00000274 => x"00001537",
00000275 => x"b7450513",
00000275 => x"b8850513",
00000276 => x"f75ff06f",
00000277 => x"00001537",
00000278 => x"b8850513",
00000278 => x"b9c50513",
00000279 => x"f69ff06f",
00000280 => x"00001537",
00000281 => x"b9c50513",
00000281 => x"bb050513",
00000282 => x"f5dff06f",
00000283 => x"00001537",
00000284 => x"bb850513",
00000284 => x"bcc50513",
00000285 => x"f51ff06f",
00000286 => x"00001537",
00000287 => x"bd050513",
00000287 => x"be450513",
00000288 => x"f45ff06f",
00000289 => x"00001537",
00000290 => x"bec50513",
00000290 => x"c0050513",
00000291 => x"f39ff06f",
00000292 => x"00001537",
00000293 => x"c0450513",
00000293 => x"c1450513",
00000294 => x"f2dff06f",
00000295 => x"00001537",
00000296 => x"c1c50513",
00000296 => x"c2850513",
00000297 => x"f21ff06f",
00000298 => x"00001537",
00000299 => x"c3450513",
00000299 => x"c3c50513",
00000300 => x"f15ff06f",
00000301 => x"ffe58593",
00000302 => x"f2dff06f",
327,475 → 327,475
00000316 => x"00112623",
00000317 => x"00812423",
00000318 => x"00912223",
00000319 => x"1a000793",
00000320 => x"30579073",
00000321 => x"00000413",
00000322 => x"01000493",
00000323 => x"00040513",
00000324 => x"00140413",
00000325 => x"0ff47413",
00000326 => x"fa5ff0ef",
00000327 => x"fe9418e3",
00000328 => x"00c12083",
00000329 => x"00812403",
00000330 => x"00412483",
00000331 => x"01010113",
00000332 => x"00008067",
00000333 => x"fd010113",
00000334 => x"02812423",
00000335 => x"02912223",
00000336 => x"03212023",
00000337 => x"01312e23",
00000338 => x"01412c23",
00000339 => x"02112623",
00000340 => x"01512a23",
00000341 => x"00001a37",
00000342 => x"00050493",
00000343 => x"00058413",
00000344 => x"00058523",
00000345 => x"00000993",
00000346 => x"00410913",
00000347 => x"cf0a0a13",
00000348 => x"00a00593",
00000349 => x"00048513",
00000350 => x"438000ef",
00000351 => x"00aa0533",
00000352 => x"00054783",
00000353 => x"01390ab3",
00000319 => x"301027f3",
00000320 => x"00079863",
00000321 => x"00001537",
00000322 => x"cf050513",
00000323 => x"238000ef",
00000324 => x"1a000793",
00000325 => x"30579073",
00000326 => x"00000413",
00000327 => x"01000493",
00000328 => x"00040513",
00000329 => x"00140413",
00000330 => x"0ff47413",
00000331 => x"f91ff0ef",
00000332 => x"fe9418e3",
00000333 => x"00c12083",
00000334 => x"00812403",
00000335 => x"00412483",
00000336 => x"01010113",
00000337 => x"00008067",
00000338 => x"fd010113",
00000339 => x"02812423",
00000340 => x"02912223",
00000341 => x"03212023",
00000342 => x"01312e23",
00000343 => x"01412c23",
00000344 => x"02112623",
00000345 => x"01512a23",
00000346 => x"00001a37",
00000347 => x"00050493",
00000348 => x"00058413",
00000349 => x"00058523",
00000350 => x"00000993",
00000351 => x"00410913",
00000352 => x"d24a0a13",
00000353 => x"00a00593",
00000354 => x"00048513",
00000355 => x"00fa8023",
00000356 => x"00a00593",
00000357 => x"3d4000ef",
00000358 => x"00198993",
00000359 => x"00a00793",
00000360 => x"00050493",
00000361 => x"fcf996e3",
00000362 => x"00090693",
00000363 => x"00900713",
00000364 => x"03000613",
00000365 => x"0096c583",
00000366 => x"00070793",
00000367 => x"fff70713",
00000368 => x"01071713",
00000369 => x"01075713",
00000370 => x"00c59a63",
00000371 => x"000684a3",
00000372 => x"fff68693",
00000373 => x"fe0710e3",
00000374 => x"00000793",
00000375 => x"00f907b3",
00000376 => x"00000593",
00000377 => x"0007c703",
00000378 => x"00070c63",
00000379 => x"00158693",
00000380 => x"00b405b3",
00000381 => x"00e58023",
00000382 => x"01069593",
00000383 => x"0105d593",
00000384 => x"fff78713",
00000385 => x"02f91863",
00000386 => x"00b40433",
00000387 => x"00040023",
00000388 => x"02c12083",
00000389 => x"02812403",
00000390 => x"02412483",
00000391 => x"02012903",
00000392 => x"01c12983",
00000393 => x"01812a03",
00000394 => x"01412a83",
00000395 => x"03010113",
00000396 => x"00008067",
00000397 => x"00070793",
00000398 => x"fadff06f",
00000399 => x"fa002023",
00000400 => x"fe002683",
00000401 => x"00151513",
00000402 => x"00000713",
00000403 => x"04a6f263",
00000404 => x"000016b7",
00000405 => x"00000793",
00000406 => x"ffe68693",
00000407 => x"04e6e463",
00000408 => x"00167613",
00000409 => x"0015f593",
00000410 => x"01879793",
00000411 => x"01e61613",
00000412 => x"00c7e7b3",
00000413 => x"01d59593",
00000414 => x"00b7e7b3",
00000415 => x"00e7e7b3",
00000416 => x"10000737",
00000417 => x"00e7e7b3",
00000418 => x"faf02023",
00000419 => x"00008067",
00000420 => x"00170793",
00000421 => x"01079713",
00000422 => x"40a686b3",
00000423 => x"01075713",
00000424 => x"fadff06f",
00000425 => x"ffe78513",
00000426 => x"0fd57513",
00000427 => x"00051a63",
00000428 => x"00375713",
00000429 => x"00178793",
00000430 => x"0ff7f793",
00000431 => x"fa1ff06f",
00000432 => x"00175713",
00000433 => x"ff1ff06f",
00000434 => x"fa002783",
00000435 => x"fe07cee3",
00000436 => x"faa02223",
00000437 => x"00008067",
00000438 => x"ff010113",
00000439 => x"00812423",
00000440 => x"01212023",
00000441 => x"00112623",
00000442 => x"00912223",
00000443 => x"00050413",
00000444 => x"00a00913",
00000445 => x"00044483",
00000446 => x"00140413",
00000447 => x"00049e63",
00000448 => x"00c12083",
00000449 => x"00812403",
00000450 => x"00412483",
00000451 => x"00012903",
00000452 => x"01010113",
00000453 => x"00008067",
00000454 => x"01249663",
00000455 => x"00d00513",
00000456 => x"fa9ff0ef",
00000457 => x"00048513",
00000458 => x"fa1ff0ef",
00000459 => x"fc9ff06f",
00000460 => x"fa010113",
00000461 => x"02912a23",
00000462 => x"04f12a23",
00000463 => x"000014b7",
00000464 => x"04410793",
00000465 => x"02812c23",
00000466 => x"03212823",
00000467 => x"03412423",
00000468 => x"03512223",
00000469 => x"03612023",
00000470 => x"01712e23",
00000471 => x"02112e23",
00000472 => x"03312623",
00000473 => x"01812c23",
00000474 => x"00050413",
00000475 => x"04b12223",
00000476 => x"04c12423",
00000477 => x"04d12623",
00000478 => x"04e12823",
00000479 => x"05012c23",
00000480 => x"05112e23",
00000481 => x"00f12023",
00000482 => x"02500a13",
00000483 => x"00a00a93",
00000484 => x"07300913",
00000485 => x"07500b13",
00000486 => x"07800b93",
00000487 => x"cfc48493",
00000488 => x"00044c03",
00000489 => x"020c0463",
00000490 => x"134c1263",
00000491 => x"00144783",
00000492 => x"00240993",
00000493 => x"09278c63",
00000494 => x"04f96263",
00000495 => x"06300713",
00000496 => x"0ae78463",
00000497 => x"06900713",
00000498 => x"0ae78c63",
00000499 => x"03c12083",
00000500 => x"03812403",
00000501 => x"03412483",
00000502 => x"03012903",
00000503 => x"02c12983",
00000504 => x"02812a03",
00000505 => x"02412a83",
00000506 => x"02012b03",
00000507 => x"01c12b83",
00000508 => x"01812c03",
00000509 => x"06010113",
00000510 => x"00008067",
00000511 => x"0b678c63",
00000512 => x"fd7796e3",
00000513 => x"00012783",
00000514 => x"00410693",
00000515 => x"00068513",
00000516 => x"0007a583",
00000517 => x"00478713",
00000518 => x"00e12023",
00000519 => x"02000613",
00000520 => x"00000713",
00000521 => x"00e5d7b3",
00000522 => x"00f7f793",
00000523 => x"00f487b3",
00000524 => x"0007c783",
00000525 => x"00470713",
00000526 => x"fff68693",
00000527 => x"00f68423",
00000528 => x"fec712e3",
00000529 => x"00010623",
00000530 => x"0140006f",
00000531 => x"00012783",
00000532 => x"0007a503",
00000533 => x"00478713",
00000534 => x"00e12023",
00000535 => x"e7dff0ef",
00000536 => x"00098413",
00000537 => x"f3dff06f",
00000538 => x"00012783",
00000539 => x"0007c503",
00000540 => x"00478713",
00000541 => x"00e12023",
00000542 => x"e51ff0ef",
00000543 => x"fe5ff06f",
00000544 => x"00012783",
00000545 => x"0007a403",
00000546 => x"00478713",
00000547 => x"00e12023",
00000548 => x"00045863",
00000549 => x"02d00513",
00000550 => x"40800433",
00000551 => x"e2dff0ef",
00000552 => x"00410593",
00000553 => x"00040513",
00000554 => x"c8dff0ef",
00000555 => x"00410513",
00000556 => x"fadff06f",
00000557 => x"00012783",
00000558 => x"00410593",
00000559 => x"00478713",
00000560 => x"0007a503",
00000561 => x"00e12023",
00000562 => x"fe1ff06f",
00000563 => x"015c1663",
00000564 => x"00d00513",
00000565 => x"df5ff0ef",
00000566 => x"00140993",
00000567 => x"000c0513",
00000568 => x"f99ff06f",
00000569 => x"00050593",
00000570 => x"fe002503",
00000571 => x"ff010113",
00000572 => x"00112623",
00000573 => x"00f55513",
00000574 => x"044000ef",
00000575 => x"00051863",
00000576 => x"00c12083",
00000577 => x"01010113",
00000578 => x"00008067",
00000579 => x"00000013",
00000580 => x"00000013",
00000581 => x"00000013",
00000582 => x"00000013",
00000583 => x"fff50513",
00000584 => x"fddff06f",
00000585 => x"fe802503",
00000586 => x"01055513",
00000587 => x"00157513",
00000588 => x"00008067",
00000589 => x"f8a02223",
00000590 => x"00008067",
00000591 => x"00050613",
00000592 => x"00000513",
00000593 => x"0015f693",
00000594 => x"00068463",
00000595 => x"00c50533",
00000596 => x"0015d593",
00000597 => x"00161613",
00000598 => x"fe0596e3",
00000599 => x"00008067",
00000600 => x"06054063",
00000601 => x"0605c663",
00000602 => x"00058613",
00000603 => x"00050593",
00000604 => x"fff00513",
00000605 => x"02060c63",
00000606 => x"00100693",
00000607 => x"00b67a63",
00000608 => x"00c05863",
00000609 => x"00161613",
00000610 => x"00169693",
00000611 => x"feb66ae3",
00000612 => x"00000513",
00000613 => x"00c5e663",
00000614 => x"40c585b3",
00000615 => x"00d56533",
00000616 => x"0016d693",
00000617 => x"00165613",
00000618 => x"fe0696e3",
00000619 => x"00008067",
00000620 => x"00008293",
00000621 => x"fb5ff0ef",
00000622 => x"00058513",
00000623 => x"00028067",
00000624 => x"40a00533",
00000625 => x"00b04863",
00000626 => x"40b005b3",
00000627 => x"f9dff06f",
00000628 => x"40b005b3",
00000629 => x"00008293",
00000630 => x"f91ff0ef",
00000631 => x"40a00533",
00000632 => x"00028067",
00000633 => x"00008293",
00000634 => x"0005ca63",
00000635 => x"00054c63",
00000636 => x"f79ff0ef",
00000637 => x"00058513",
00000638 => x"00028067",
00000639 => x"40b005b3",
00000640 => x"fe0558e3",
00000641 => x"40a00533",
00000642 => x"f61ff0ef",
00000643 => x"40b00533",
00000644 => x"00028067",
00000645 => x"6f727245",
00000646 => x"4e202172",
00000647 => x"5047206f",
00000648 => x"75204f49",
00000649 => x"2074696e",
00000650 => x"746e7973",
00000651 => x"69736568",
00000652 => x"2164657a",
00000653 => x"0000000a",
00000654 => x"6e696c42",
00000655 => x"676e696b",
00000656 => x"44454c20",
00000657 => x"6d656420",
00000658 => x"7270206f",
00000659 => x"6172676f",
00000660 => x"00000a6d",
00000661 => x"000002a8",
00000662 => x"000002b4",
00000663 => x"000002c0",
00000664 => x"000002cc",
00000665 => x"000002d8",
00000666 => x"000002e0",
00000667 => x"000002e8",
00000668 => x"000002f0",
00000669 => x"00000214",
00000670 => x"00000214",
00000671 => x"00000214",
00000672 => x"000002f8",
00000673 => x"00000300",
00000355 => x"438000ef",
00000356 => x"00aa0533",
00000357 => x"00054783",
00000358 => x"01390ab3",
00000359 => x"00048513",
00000360 => x"00fa8023",
00000361 => x"00a00593",
00000362 => x"3d4000ef",
00000363 => x"00198993",
00000364 => x"00a00793",
00000365 => x"00050493",
00000366 => x"fcf996e3",
00000367 => x"00090693",
00000368 => x"00900713",
00000369 => x"03000613",
00000370 => x"0096c583",
00000371 => x"00070793",
00000372 => x"fff70713",
00000373 => x"01071713",
00000374 => x"01075713",
00000375 => x"00c59a63",
00000376 => x"000684a3",
00000377 => x"fff68693",
00000378 => x"fe0710e3",
00000379 => x"00000793",
00000380 => x"00f907b3",
00000381 => x"00000593",
00000382 => x"0007c703",
00000383 => x"00070c63",
00000384 => x"00158693",
00000385 => x"00b405b3",
00000386 => x"00e58023",
00000387 => x"01069593",
00000388 => x"0105d593",
00000389 => x"fff78713",
00000390 => x"02f91863",
00000391 => x"00b40433",
00000392 => x"00040023",
00000393 => x"02c12083",
00000394 => x"02812403",
00000395 => x"02412483",
00000396 => x"02012903",
00000397 => x"01c12983",
00000398 => x"01812a03",
00000399 => x"01412a83",
00000400 => x"03010113",
00000401 => x"00008067",
00000402 => x"00070793",
00000403 => x"fadff06f",
00000404 => x"fa002023",
00000405 => x"fe002683",
00000406 => x"00151513",
00000407 => x"00000713",
00000408 => x"04a6f263",
00000409 => x"000016b7",
00000410 => x"00000793",
00000411 => x"ffe68693",
00000412 => x"04e6e463",
00000413 => x"00167613",
00000414 => x"0015f593",
00000415 => x"01879793",
00000416 => x"01e61613",
00000417 => x"00c7e7b3",
00000418 => x"01d59593",
00000419 => x"00b7e7b3",
00000420 => x"00e7e7b3",
00000421 => x"10000737",
00000422 => x"00e7e7b3",
00000423 => x"faf02023",
00000424 => x"00008067",
00000425 => x"00170793",
00000426 => x"01079713",
00000427 => x"40a686b3",
00000428 => x"01075713",
00000429 => x"fadff06f",
00000430 => x"ffe78513",
00000431 => x"0fd57513",
00000432 => x"00051a63",
00000433 => x"00375713",
00000434 => x"00178793",
00000435 => x"0ff7f793",
00000436 => x"fa1ff06f",
00000437 => x"00175713",
00000438 => x"ff1ff06f",
00000439 => x"fa002783",
00000440 => x"fe07cee3",
00000441 => x"faa02223",
00000442 => x"00008067",
00000443 => x"ff010113",
00000444 => x"00812423",
00000445 => x"01212023",
00000446 => x"00112623",
00000447 => x"00912223",
00000448 => x"00050413",
00000449 => x"00a00913",
00000450 => x"00044483",
00000451 => x"00140413",
00000452 => x"00049e63",
00000453 => x"00c12083",
00000454 => x"00812403",
00000455 => x"00412483",
00000456 => x"00012903",
00000457 => x"01010113",
00000458 => x"00008067",
00000459 => x"01249663",
00000460 => x"00d00513",
00000461 => x"fa9ff0ef",
00000462 => x"00048513",
00000463 => x"fa1ff0ef",
00000464 => x"fc9ff06f",
00000465 => x"fa010113",
00000466 => x"02912a23",
00000467 => x"04f12a23",
00000468 => x"000014b7",
00000469 => x"04410793",
00000470 => x"02812c23",
00000471 => x"03212823",
00000472 => x"03412423",
00000473 => x"03512223",
00000474 => x"03612023",
00000475 => x"01712e23",
00000476 => x"02112e23",
00000477 => x"03312623",
00000478 => x"01812c23",
00000479 => x"00050413",
00000480 => x"04b12223",
00000481 => x"04c12423",
00000482 => x"04d12623",
00000483 => x"04e12823",
00000484 => x"05012c23",
00000485 => x"05112e23",
00000486 => x"00f12023",
00000487 => x"02500a13",
00000488 => x"00a00a93",
00000489 => x"07300913",
00000490 => x"07500b13",
00000491 => x"07800b93",
00000492 => x"d3048493",
00000493 => x"00044c03",
00000494 => x"020c0463",
00000495 => x"134c1263",
00000496 => x"00144783",
00000497 => x"00240993",
00000498 => x"09278c63",
00000499 => x"04f96263",
00000500 => x"06300713",
00000501 => x"0ae78463",
00000502 => x"06900713",
00000503 => x"0ae78c63",
00000504 => x"03c12083",
00000505 => x"03812403",
00000506 => x"03412483",
00000507 => x"03012903",
00000508 => x"02c12983",
00000509 => x"02812a03",
00000510 => x"02412a83",
00000511 => x"02012b03",
00000512 => x"01c12b83",
00000513 => x"01812c03",
00000514 => x"06010113",
00000515 => x"00008067",
00000516 => x"0b678c63",
00000517 => x"fd7796e3",
00000518 => x"00012783",
00000519 => x"00410693",
00000520 => x"00068513",
00000521 => x"0007a583",
00000522 => x"00478713",
00000523 => x"00e12023",
00000524 => x"02000613",
00000525 => x"00000713",
00000526 => x"00e5d7b3",
00000527 => x"00f7f793",
00000528 => x"00f487b3",
00000529 => x"0007c783",
00000530 => x"00470713",
00000531 => x"fff68693",
00000532 => x"00f68423",
00000533 => x"fec712e3",
00000534 => x"00010623",
00000535 => x"0140006f",
00000536 => x"00012783",
00000537 => x"0007a503",
00000538 => x"00478713",
00000539 => x"00e12023",
00000540 => x"e7dff0ef",
00000541 => x"00098413",
00000542 => x"f3dff06f",
00000543 => x"00012783",
00000544 => x"0007c503",
00000545 => x"00478713",
00000546 => x"00e12023",
00000547 => x"e51ff0ef",
00000548 => x"fe5ff06f",
00000549 => x"00012783",
00000550 => x"0007a403",
00000551 => x"00478713",
00000552 => x"00e12023",
00000553 => x"00045863",
00000554 => x"02d00513",
00000555 => x"40800433",
00000556 => x"e2dff0ef",
00000557 => x"00410593",
00000558 => x"00040513",
00000559 => x"c8dff0ef",
00000560 => x"00410513",
00000561 => x"fadff06f",
00000562 => x"00012783",
00000563 => x"00410593",
00000564 => x"00478713",
00000565 => x"0007a503",
00000566 => x"00e12023",
00000567 => x"fe1ff06f",
00000568 => x"015c1663",
00000569 => x"00d00513",
00000570 => x"df5ff0ef",
00000571 => x"00140993",
00000572 => x"000c0513",
00000573 => x"f99ff06f",
00000574 => x"00050593",
00000575 => x"fe002503",
00000576 => x"ff010113",
00000577 => x"00112623",
00000578 => x"00f55513",
00000579 => x"044000ef",
00000580 => x"00051863",
00000581 => x"00c12083",
00000582 => x"01010113",
00000583 => x"00008067",
00000584 => x"00000013",
00000585 => x"00000013",
00000586 => x"00000013",
00000587 => x"00000013",
00000588 => x"fff50513",
00000589 => x"fddff06f",
00000590 => x"fe802503",
00000591 => x"01055513",
00000592 => x"00157513",
00000593 => x"00008067",
00000594 => x"f8a02223",
00000595 => x"00008067",
00000596 => x"00050613",
00000597 => x"00000513",
00000598 => x"0015f693",
00000599 => x"00068463",
00000600 => x"00c50533",
00000601 => x"0015d593",
00000602 => x"00161613",
00000603 => x"fe0596e3",
00000604 => x"00008067",
00000605 => x"06054063",
00000606 => x"0605c663",
00000607 => x"00058613",
00000608 => x"00050593",
00000609 => x"fff00513",
00000610 => x"02060c63",
00000611 => x"00100693",
00000612 => x"00b67a63",
00000613 => x"00c05863",
00000614 => x"00161613",
00000615 => x"00169693",
00000616 => x"feb66ae3",
00000617 => x"00000513",
00000618 => x"00c5e663",
00000619 => x"40c585b3",
00000620 => x"00d56533",
00000621 => x"0016d693",
00000622 => x"00165613",
00000623 => x"fe0696e3",
00000624 => x"00008067",
00000625 => x"00008293",
00000626 => x"fb5ff0ef",
00000627 => x"00058513",
00000628 => x"00028067",
00000629 => x"40a00533",
00000630 => x"00b04863",
00000631 => x"40b005b3",
00000632 => x"f9dff06f",
00000633 => x"40b005b3",
00000634 => x"00008293",
00000635 => x"f91ff0ef",
00000636 => x"40a00533",
00000637 => x"00028067",
00000638 => x"00008293",
00000639 => x"0005ca63",
00000640 => x"00054c63",
00000641 => x"f79ff0ef",
00000642 => x"00058513",
00000643 => x"00028067",
00000644 => x"40b005b3",
00000645 => x"fe0558e3",
00000646 => x"40a00533",
00000647 => x"f61ff0ef",
00000648 => x"40b00533",
00000649 => x"00028067",
00000650 => x"6f727245",
00000651 => x"4e202172",
00000652 => x"5047206f",
00000653 => x"75204f49",
00000654 => x"2074696e",
00000655 => x"746e7973",
00000656 => x"69736568",
00000657 => x"2164657a",
00000658 => x"0000000a",
00000659 => x"6e696c42",
00000660 => x"676e696b",
00000661 => x"44454c20",
00000662 => x"6d656420",
00000663 => x"7270206f",
00000664 => x"6172676f",
00000665 => x"00000a6d",
00000666 => x"000002a8",
00000667 => x"000002b4",
00000668 => x"000002c0",
00000669 => x"000002cc",
00000670 => x"000002d8",
00000671 => x"000002e0",
00000672 => x"000002e8",
00000673 => x"000002f0",
00000674 => x"00000214",
00000675 => x"00000214",
00000676 => x"00000214",
00000677 => x"00000308",
00000678 => x"00000214",
00000677 => x"000002f8",
00000678 => x"00000300",
00000679 => x"00000214",
00000680 => x"00000214",
00000681 => x"00000310",
00000682 => x"00000214",
00000681 => x"00000214",
00000682 => x"00000308",
00000683 => x"00000214",
00000684 => x"00000214",
00000685 => x"00000214",
00000686 => x"00000318",
00000687 => x"00000320",
00000688 => x"00000328",
00000689 => x"00000330",
00000690 => x"4554523c",
00000691 => x"0000203e",
00000692 => x"74736e49",
00000693 => x"74637572",
00000694 => x"206e6f69",
00000695 => x"72646461",
00000696 => x"20737365",
00000697 => x"6173696d",
00000698 => x"6e67696c",
00000699 => x"00006465",
00000700 => x"74736e49",
00000701 => x"74637572",
00000702 => x"206e6f69",
00000703 => x"65636361",
00000704 => x"66207373",
00000705 => x"746c7561",
00000706 => x"00000000",
00000707 => x"656c6c49",
00000708 => x"206c6167",
00000709 => x"74736e69",
00000710 => x"74637572",
00000711 => x"006e6f69",
00000712 => x"61657242",
00000713 => x"696f706b",
00000714 => x"0000746e",
00000715 => x"64616f4c",
00000716 => x"64646120",
00000717 => x"73736572",
00000718 => x"73696d20",
00000719 => x"67696c61",
00000720 => x"0064656e",
00000721 => x"64616f4c",
00000722 => x"63636120",
00000723 => x"20737365",
00000724 => x"6c756166",
00000725 => x"00000074",
00000726 => x"726f7453",
00000727 => x"64612065",
00000728 => x"73657264",
00000729 => x"696d2073",
00000730 => x"696c6173",
00000731 => x"64656e67",
00000732 => x"00000000",
00000733 => x"726f7453",
00000734 => x"63612065",
00000735 => x"73736563",
00000736 => x"75616620",
00000737 => x"0000746c",
00000738 => x"69766e45",
00000739 => x"6d6e6f72",
00000740 => x"20746e65",
00000741 => x"6c6c6163",
00000742 => x"00000000",
00000743 => x"6863614d",
00000744 => x"20656e69",
00000745 => x"74666f73",
00000746 => x"65726177",
00000747 => x"746e6920",
00000748 => x"75727265",
00000749 => x"00007470",
00000750 => x"6863614d",
00000751 => x"20656e69",
00000752 => x"656d6974",
00000753 => x"6e692072",
00000754 => x"72726574",
00000755 => x"00747075",
00000756 => x"6863614d",
00000757 => x"20656e69",
00000758 => x"65747865",
00000759 => x"6c616e72",
00000760 => x"746e6920",
00000761 => x"75727265",
00000762 => x"00007470",
00000763 => x"74736146",
00000764 => x"746e6920",
00000765 => x"75727265",
00000766 => x"30207470",
00000767 => x"44572820",
00000768 => x"00002954",
00000769 => x"74736146",
00000770 => x"746e6920",
00000771 => x"75727265",
00000772 => x"31207470",
00000773 => x"50472820",
00000774 => x"00294f49",
00000775 => x"74736146",
00000776 => x"746e6920",
00000777 => x"75727265",
00000778 => x"32207470",
00000779 => x"41552820",
00000780 => x"00295452",
00000781 => x"74736146",
00000782 => x"746e6920",
00000783 => x"75727265",
00000784 => x"33207470",
00000785 => x"50532820",
00000786 => x"57542f49",
00000787 => x"00002949",
00000686 => x"00000310",
00000687 => x"00000214",
00000688 => x"00000214",
00000689 => x"00000214",
00000690 => x"00000214",
00000691 => x"00000318",
00000692 => x"00000320",
00000693 => x"00000328",
00000694 => x"00000330",
00000695 => x"4554523c",
00000696 => x"0000203e",
00000697 => x"74736e49",
00000698 => x"74637572",
00000699 => x"206e6f69",
00000700 => x"72646461",
00000701 => x"20737365",
00000702 => x"6173696d",
00000703 => x"6e67696c",
00000704 => x"00006465",
00000705 => x"74736e49",
00000706 => x"74637572",
00000707 => x"206e6f69",
00000708 => x"65636361",
00000709 => x"66207373",
00000710 => x"746c7561",
00000711 => x"00000000",
00000712 => x"656c6c49",
00000713 => x"206c6167",
00000714 => x"74736e69",
00000715 => x"74637572",
00000716 => x"006e6f69",
00000717 => x"61657242",
00000718 => x"696f706b",
00000719 => x"0000746e",
00000720 => x"64616f4c",
00000721 => x"64646120",
00000722 => x"73736572",
00000723 => x"73696d20",
00000724 => x"67696c61",
00000725 => x"0064656e",
00000726 => x"64616f4c",
00000727 => x"63636120",
00000728 => x"20737365",
00000729 => x"6c756166",
00000730 => x"00000074",
00000731 => x"726f7453",
00000732 => x"64612065",
00000733 => x"73657264",
00000734 => x"696d2073",
00000735 => x"696c6173",
00000736 => x"64656e67",
00000737 => x"00000000",
00000738 => x"726f7453",
00000739 => x"63612065",
00000740 => x"73736563",
00000741 => x"75616620",
00000742 => x"0000746c",
00000743 => x"69766e45",
00000744 => x"6d6e6f72",
00000745 => x"20746e65",
00000746 => x"6c6c6163",
00000747 => x"00000000",
00000748 => x"6863614d",
00000749 => x"20656e69",
00000750 => x"74666f73",
00000751 => x"65726177",
00000752 => x"746e6920",
00000753 => x"75727265",
00000754 => x"00007470",
00000755 => x"6863614d",
00000756 => x"20656e69",
00000757 => x"656d6974",
00000758 => x"6e692072",
00000759 => x"72726574",
00000760 => x"00747075",
00000761 => x"6863614d",
00000762 => x"20656e69",
00000763 => x"65747865",
00000764 => x"6c616e72",
00000765 => x"746e6920",
00000766 => x"75727265",
00000767 => x"00007470",
00000768 => x"74736146",
00000769 => x"746e6920",
00000770 => x"75727265",
00000771 => x"30207470",
00000772 => x"00000000",
00000773 => x"74736146",
00000774 => x"746e6920",
00000775 => x"75727265",
00000776 => x"31207470",
00000777 => x"00000000",
00000778 => x"74736146",
00000779 => x"746e6920",
00000780 => x"75727265",
00000781 => x"32207470",
00000782 => x"00000000",
00000783 => x"74736146",
00000784 => x"746e6920",
00000785 => x"75727265",
00000786 => x"33207470",
00000787 => x"00000000",
00000788 => x"6e6b6e55",
00000789 => x"206e776f",
00000790 => x"25783028",
836,14 → 836,27
00000825 => x"00000378",
00000826 => x"00000378",
00000827 => x"00000454",
00000828 => x"33323130",
00000829 => x"37363534",
00000830 => x"00003938",
00000831 => x"33323130",
00000832 => x"37363534",
00000833 => x"62613938",
00000834 => x"66656463",
00000835 => x"00000000",
00000828 => x"4554523c",
00000829 => x"4157203e",
00000830 => x"4e494e52",
00000831 => x"43202147",
00000832 => x"43205550",
00000833 => x"73205253",
00000834 => x"65747379",
00000835 => x"6f6e206d",
00000836 => x"76612074",
00000837 => x"616c6961",
00000838 => x"21656c62",
00000839 => x"522f3c20",
00000840 => x"003e4554",
00000841 => x"33323130",
00000842 => x"37363534",
00000843 => x"00003938",
00000844 => x"33323130",
00000845 => x"37363534",
00000846 => x"62613938",
00000847 => x"66656463",
00000848 => x"00000000",
others => x"00000000"
);
 
/neorv32_cpu.vhd
135,6 → 135,7
signal next_pc : std_ulogic_vector(data_width_c-1 downto 0); -- next pc (for current executed instruction)
 
-- co-processor interface --
signal cp_opa, cp_opb : std_ulogic_vector(data_width_c-1 downto 0);
signal cp0_data, cp1_data : std_ulogic_vector(data_width_c-1 downto 0);
signal cp0_valid, cp1_valid : std_ulogic;
signal cp0_start, cp1_start : std_ulogic;
268,6 → 269,8
add_o => alu_add, -- OPA + OPB
res_o => alu_res, -- ALU result
-- co-processor interface --
cp_opa_o => cp_opa, -- co-processor operand a
cp_opb_o => cp_opb, -- co-processor operand b
cp0_start_o => cp0_start, -- trigger co-processor 0
cp0_data_i => cp0_data, -- co-processor 0 result
cp0_valid_i => cp0_valid, -- co-processor 0 result valid
294,8 → 297,8
ctrl_i => ctrl, -- main control bus
-- data input --
start_i => cp0_start, -- trigger operation
rs1_i => rs1, -- rf source 1
rs2_i => rs2, -- rf source 2
rs1_i => cp_opa, -- rf source 1
rs2_i => cp_opb, -- rf source 2
-- result and status --
res_o => cp0_data, -- operation result
valid_o => cp0_valid -- data output valid
/neorv32_cpu_alu.vhd
62,6 → 62,8
add_o : out std_ulogic_vector(data_width_c-1 downto 0); -- OPA + OPB
res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- ALU result
-- co-processor interface --
cp_opa_o : out std_ulogic_vector(data_width_c-1 downto 0); -- co-processor operand a
cp_opb_o : out std_ulogic_vector(data_width_c-1 downto 0); -- co-processor operand b
cp0_start_o : out std_ulogic; -- trigger co-processor 0
cp0_data_i : in std_ulogic_vector(data_width_c-1 downto 0); -- co-processor 0 result
cp0_valid_i : in std_ulogic; -- co-processor 0 result valid
81,6 → 83,7
-- results --
signal add_res : std_ulogic_vector(data_width_c-1 downto 0);
signal alu_res : std_ulogic_vector(data_width_c-1 downto 0);
signal cp_res : std_ulogic_vector(data_width_c-1 downto 0);
 
-- comparator --
signal cmp_opx : std_ulogic_vector(data_width_c downto 0);
108,14 → 111,9
busy : std_ulogic;
start : std_ulogic;
halt : std_ulogic;
rb_ff0 : std_ulogic;
rb_ff1 : std_ulogic;
end record;
signal cp_ctrl : cp_ctrl_t;
 
-- bit manipulation --
signal bitm_res : std_ulogic_vector(31 downto 0);
 
begin
 
-- Operand Mux ----------------------------------------------------------------------------
166,19 → 164,6
add_o <= add_res; -- direct output
 
 
-- Bit Manipulation Unit ------------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
 
-- ------------------ --
-- UNDER CONSTRUCTION --
-- ------------------ --
 
--bitm_minmax <= rs1_i when ((cmp_less xor ???) = '1') else rs2_i; -- min[u] / max[u]
 
-- result of bit manipulation operation --
bitm_res <= opa and (not opb); -- ANDN
 
 
-- Iterative Shifter Unit -----------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
shifter_unit: process(rstn_i, clk_i)
233,24 → 218,17
if (rstn_i = '0') then
cp_ctrl.cmd_ff <= '0';
cp_ctrl.busy <= '0';
cp_ctrl.rb_ff0 <= '0';
cp_ctrl.rb_ff1 <= '0';
elsif rising_edge(clk_i) then
if (CPU_EXTENSION_RISCV_M = true) then
cp_ctrl.cmd_ff <= ctrl_i(ctrl_cp_use_c);
cp_ctrl.rb_ff0 <= '0';
cp_ctrl.rb_ff1 <= cp_ctrl.rb_ff0;
if (cp_ctrl.start = '1') then
cp_ctrl.busy <= '1';
elsif ((cp0_valid_i or cp1_valid_i) = '1') then -- cp computation done?
cp_ctrl.busy <= '0';
cp_ctrl.rb_ff0 <= '1';
cp_ctrl.busy <= '0';
end if;
else -- no co-processor(s) implemented
cp_ctrl.cmd_ff <= '0';
cp_ctrl.busy <= '0';
cp_ctrl.rb_ff0 <= '0';
cp_ctrl.rb_ff1 <= '0';
end if;
end if;
end process cp_arbiter;
263,16 → 241,23
-- co-processor operation running? --
cp_ctrl.halt <= cp_ctrl.busy or cp_ctrl.start;
 
-- co-processor operands --
cp_opa_o <= opa;
cp_opb_o <= opb;
 
-- co-processor result --
cp_res <= cp0_data_i or cp1_data_i; -- only the selcted cp may output data != 0
 
 
-- ALU Function Select --------------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
alu_function_mux: process(ctrl_i, opa, opb, add_res, sub_res, cmp_less, shifter, bitm_res)
alu_function_mux: process(ctrl_i, opa, opb, add_res, sub_res, cmp_less, shifter)
begin
case ctrl_i(ctrl_alu_cmd2_c downto ctrl_alu_cmd0_c) is
when alu_cmd_bitm_c => alu_res <= bitm_res;
when alu_cmd_xor_c => alu_res <= opa xor opb;
when alu_cmd_or_c => alu_res <= opa or opb;
when alu_cmd_and_c => alu_res <= opa and opb;
when alu_cmd_bclr_c => alu_res <= opa and (not opb);
when alu_cmd_sub_c => alu_res <= sub_res;
when alu_cmd_add_c => alu_res <= add_res;
when alu_cmd_shift_c => alu_res <= shifter.sreg;
285,7 → 270,7
-- ALU Result -----------------------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
wait_o <= shifter.halt or cp_ctrl.halt; -- wait until iterative units have completed
res_o <= (cp0_data_i or cp1_data_i) when (cp_ctrl.rb_ff1 = '1') else alu_res; -- FIXME
res_o <= cp_res when (ctrl_i(ctrl_cp_use_c) = '1') else alu_res; -- FIXME?
 
 
end neorv32_cpu_cpu_rtl;
/neorv32_cpu_control.vhd
729,7 → 729,7
if (execute_engine.i_reg(instr_opcode_lsb_c+5) = opcode_auipc_c(5)) then -- AUIPC
ctrl_nxt(ctrl_alu_opa_mux_lsb_c) <= '1'; -- use PC as ALU.OPA
else -- LUI
ctrl_nxt(ctrl_alu_opa_mux_lsb_c) <= '0'; -- use RS1 as ALU.OPA
ctrl_nxt(ctrl_alu_opa_mux_lsb_c) <= '0'; -- use RS1 as ALU.OPA ( = 0)
end if;
ctrl_nxt(ctrl_alu_opb_mux_lsb_c) <= '1'; -- use IMM as ALU.OPB
ctrl_nxt(ctrl_alu_cmd2_c downto ctrl_alu_cmd0_c) <= alu_cmd_add_c; -- actual ALU operation
784,7 → 784,7
 
when opcode_syscsr_c => -- system/csr access
-- ------------------------------------------------------------
csr.re_nxt <= csr_acc_valid; -- read CSR if valid access
csr.re_nxt <= csr_acc_valid; -- always read CSR if valid access
if (execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) = funct3_env_c) then -- system
case execute_engine.i_reg(instr_funct12_msb_c downto instr_funct12_lsb_c) is
when funct12_ecall_c => -- ECALL
818,14 → 818,13
ctrl_nxt(ctrl_alu_opa_mux_lsb_c) <= '0'; -- default
ctrl_nxt(ctrl_alu_opb_mux_msb_c) <= '0'; -- default
ctrl_nxt(ctrl_alu_opb_mux_lsb_c) <= '0'; -- default
ctrl_nxt(ctrl_alu_cmd2_c downto ctrl_alu_cmd0_c) <= alu_cmd_or_c; -- default ALU operation = OR
-- ctrl_nxt(ctrl_alu_bmop2_c downto ctrl_alu_bmop0_c) <= alu_bm_andn_c; -- bit manipulation operation = ANDN
ctrl_nxt(ctrl_alu_cmd2_c downto ctrl_alu_cmd0_c) <= alu_cmd_or_c; -- default ALU operation = OR
case execute_engine.i_reg(instr_funct3_msb_c downto instr_funct3_lsb_c) is
-- register operations --
when funct3_csrrw_c => -- CSRRW
ctrl_nxt(ctrl_alu_opa_mux_lsb_c) <= '0'; -- OPA = rs1
ctrl_nxt(ctrl_alu_opb_mux_lsb_c) <= '0'; -- OPB = rs2
ctrl_nxt(ctrl_rf_clear_rs2_c) <= '1'; -- rs2 = 0
ctrl_nxt(ctrl_alu_opb_mux_lsb_c) <= '1'; -- OPB = rs1
ctrl_nxt(ctrl_alu_opb_mux_msb_c) <= '1'; -- OPB = rs1
ctrl_nxt(ctrl_alu_cmd2_c downto ctrl_alu_cmd0_c) <= alu_cmd_or_c; -- actual ALU operation = OR
csr.we_nxt <= csr_acc_valid; -- always write CSR if valid access
when funct3_csrrs_c => -- CSRRS
836,7 → 835,7
when funct3_csrrc_c => -- CSRRC
ctrl_nxt(ctrl_alu_opa_mux_msb_c) <= '1'; -- OPA = csr
ctrl_nxt(ctrl_alu_opb_mux_msb_c) <= '1'; -- OPB = rs1
ctrl_nxt(ctrl_alu_cmd2_c downto ctrl_alu_cmd0_c) <= alu_cmd_bitm_c; -- actual ALU operation = bit manipulation (ANDN)
ctrl_nxt(ctrl_alu_cmd2_c downto ctrl_alu_cmd0_c) <= alu_cmd_bclr_c; -- actual ALU operation = bit clear
csr.we_nxt <= (not rs1_is_r0_v) and csr_acc_valid; -- write CSR if rs1 is not zero_reg and if valid access
-- immediate operations --
when funct3_csrrwi_c => -- CSRRWI
853,7 → 852,7
when funct3_csrrci_c => -- CSRRCI
ctrl_nxt(ctrl_alu_opa_mux_msb_c) <= '1'; -- OPA = csr
ctrl_nxt(ctrl_alu_opb_mux_lsb_c) <= '1'; -- OPB = immediate
ctrl_nxt(ctrl_alu_cmd2_c downto ctrl_alu_cmd0_c) <= alu_cmd_bitm_c; -- actual ALU operation = bit manipulation (ANDN)
ctrl_nxt(ctrl_alu_cmd2_c downto ctrl_alu_cmd0_c) <= alu_cmd_bclr_c; -- actual ALU operation = bit clear
csr.we_nxt <= (not rs1_is_r0_v) and csr_acc_valid; -- write CSR if UIMM5 is not zero (bits from rs1 filed) and if valid access
when others => -- undefined
NULL;
/neorv32_cpu_regfile.vhd
154,10 → 154,10
end process rf_access;
 
 
-- Check if reading from r0 ---------------------------------------------------------------
-- Check if reading from x0 ---------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
rs1_o <= (others => '0') when ((rs1_clear or ctrl_i(ctrl_rf_clear_rs1_c)) = '1') else rs1_read;
rs2_o <= (others => '0') when ((rs2_clear or ctrl_i(ctrl_rf_clear_rs2_c)) = '1') else rs2_read;
rs2_o <= (others => '0') when (rs2_clear = '1') else rs2_read;
 
 
end neorv32_cpu_regfile_rtl;
/neorv32_package.vhd
178,42 → 178,41
constant ctrl_rf_rd_adr4_c : natural := 16; -- destiantion register address bit 4
constant ctrl_rf_wb_en_c : natural := 17; -- write back enable
constant ctrl_rf_clear_rs1_c : natural := 18; -- force rs1=r0
constant ctrl_rf_clear_rs2_c : natural := 19; -- force rs2=r0
-- alu --
constant ctrl_alu_cmd0_c : natural := 20; -- ALU command bit 0
constant ctrl_alu_cmd1_c : natural := 21; -- ALU command bit 1
constant ctrl_alu_cmd2_c : natural := 22; -- ALU command bit 2
constant ctrl_alu_opa_mux_lsb_c : natural := 23; -- operand A select lsb (00=rs1, 01=PC)
constant ctrl_alu_opa_mux_msb_c : natural := 24; -- operand A select msb (1-=CSR)
constant ctrl_alu_opb_mux_lsb_c : natural := 25; -- operand B select lsb (00=rs2, 01=IMM)
constant ctrl_alu_opb_mux_msb_c : natural := 26; -- operand B select msb (1-=rs1)
constant ctrl_alu_opc_mux_c : natural := 27; -- operand C select (0=IMM, 1=rs2)
constant ctrl_alu_unsigned_c : natural := 28; -- is unsigned ALU operation
constant ctrl_alu_shift_dir_c : natural := 29; -- shift direction (0=left, 1=right)
constant ctrl_alu_shift_ar_c : natural := 30; -- is arithmetic shift
constant ctrl_alu_cmd0_c : natural := 19; -- ALU command bit 0
constant ctrl_alu_cmd1_c : natural := 20; -- ALU command bit 1
constant ctrl_alu_cmd2_c : natural := 21; -- ALU command bit 2
constant ctrl_alu_opa_mux_lsb_c : natural := 22; -- operand A select lsb (00=rs1, 01=PC)
constant ctrl_alu_opa_mux_msb_c : natural := 23; -- operand A select msb (1-=CSR)
constant ctrl_alu_opb_mux_lsb_c : natural := 24; -- operand B select lsb (00=rs2, 01=IMM)
constant ctrl_alu_opb_mux_msb_c : natural := 25; -- operand B select msb (1-=rs1)
constant ctrl_alu_opc_mux_c : natural := 26; -- operand C select (0=IMM, 1=rs2)
constant ctrl_alu_unsigned_c : natural := 27; -- is unsigned ALU operation
constant ctrl_alu_shift_dir_c : natural := 28; -- shift direction (0=left, 1=right)
constant ctrl_alu_shift_ar_c : natural := 29; -- is arithmetic shift
-- bus interface --
constant ctrl_bus_size_lsb_c : natural := 31; -- transfer size lsb (00=byte, 01=half-word)
constant ctrl_bus_size_msb_c : natural := 32; -- transfer size msb (10=word, 11=?)
constant ctrl_bus_rd_c : natural := 33; -- read data request
constant ctrl_bus_wr_c : natural := 34; -- write data request
constant ctrl_bus_if_c : natural := 35; -- instruction fetch request
constant ctrl_bus_mar_we_c : natural := 36; -- memory address register write enable
constant ctrl_bus_mdo_we_c : natural := 37; -- memory data out register write enable
constant ctrl_bus_mdi_we_c : natural := 38; -- memory data in register write enable
constant ctrl_bus_unsigned_c : natural := 39; -- is unsigned load
constant ctrl_bus_ierr_ack_c : natural := 40; -- acknowledge instruction fetch bus exception
constant ctrl_bus_derr_ack_c : natural := 41; -- acknowledge data access bus exception
constant ctrl_bus_fence_c : natural := 42; -- executed fence operation
constant ctrl_bus_fencei_c : natural := 43; -- executed fencei operation
constant ctrl_bus_size_lsb_c : natural := 30; -- transfer size lsb (00=byte, 01=half-word)
constant ctrl_bus_size_msb_c : natural := 31; -- transfer size msb (10=word, 11=?)
constant ctrl_bus_rd_c : natural := 32; -- read data request
constant ctrl_bus_wr_c : natural := 33; -- write data request
constant ctrl_bus_if_c : natural := 34; -- instruction fetch request
constant ctrl_bus_mar_we_c : natural := 35; -- memory address register write enable
constant ctrl_bus_mdo_we_c : natural := 36; -- memory data out register write enable
constant ctrl_bus_mdi_we_c : natural := 37; -- memory data in register write enable
constant ctrl_bus_unsigned_c : natural := 38; -- is unsigned load
constant ctrl_bus_ierr_ack_c : natural := 39; -- acknowledge instruction fetch bus exception
constant ctrl_bus_derr_ack_c : natural := 40; -- acknowledge data access bus exception
constant ctrl_bus_fence_c : natural := 41; -- executed fence operation
constant ctrl_bus_fencei_c : natural := 42; -- executed fencei operation
-- co-processor --
constant ctrl_cp_use_c : natural := 44; -- is cp operation
constant ctrl_cp_id_lsb_c : natural := 45; -- cp select lsb
constant ctrl_cp_id_msb_c : natural := 46; -- cp select msb
constant ctrl_cp_cmd0_c : natural := 47; -- cp command bit 0
constant ctrl_cp_cmd1_c : natural := 48; -- cp command bit 1
constant ctrl_cp_cmd2_c : natural := 49; -- cp command bit 2
constant ctrl_cp_use_c : natural := 43; -- is cp operation
constant ctrl_cp_id_lsb_c : natural := 44; -- cp select lsb
constant ctrl_cp_id_msb_c : natural := 45; -- cp select msb
constant ctrl_cp_cmd0_c : natural := 46; -- cp command bit 0
constant ctrl_cp_cmd1_c : natural := 47; -- cp command bit 1
constant ctrl_cp_cmd2_c : natural := 48; -- cp command bit 2
-- control bus size --
constant ctrl_width_c : natural := 50; -- control bus size
constant ctrl_width_c : natural := 49; -- control bus size
 
-- ALU Comparator Bus ---------------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
332,7 → 331,7
constant alu_cmd_xor_c : std_ulogic_vector(2 downto 0) := "100"; -- r <= A xor B
constant alu_cmd_or_c : std_ulogic_vector(2 downto 0) := "101"; -- r <= A or B
constant alu_cmd_and_c : std_ulogic_vector(2 downto 0) := "110"; -- r <= A and B
constant alu_cmd_bitm_c : std_ulogic_vector(2 downto 0) := "111"; -- r <= bit manipulation
constant alu_cmd_bclr_c : std_ulogic_vector(2 downto 0) := "111"; -- r <= A and (not B)
 
-- Trap ID Codes --------------------------------------------------------------------------
-- -------------------------------------------------------------------------------------------
646,6 → 645,8
add_o : out std_ulogic_vector(data_width_c-1 downto 0); -- OPA + OPB
res_o : out std_ulogic_vector(data_width_c-1 downto 0); -- ALU result
-- co-processor interface --
cp_opa_o : out std_ulogic_vector(data_width_c-1 downto 0); -- co-processor operand a
cp_opb_o : out std_ulogic_vector(data_width_c-1 downto 0); -- co-processor operand b
cp0_start_o : out std_ulogic; -- trigger co-processor 0
cp0_data_i : in std_ulogic_vector(data_width_c-1 downto 0); -- co-processor 0 result
cp0_valid_i : in std_ulogic; -- co-processor 0 result valid

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.