Compare commits

...

3 commits

30 changed files with 1349 additions and 253 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@ drawings/*.odg
drawings/*.odg#
*.mpf
work
**/__pycache__

View file

@ -38,5 +38,5 @@ FIFO5 -> U -> Upstream
### Router
![alt text](./drawings/router.png)
-- TODO: Test multicast x,y,4, test multiple data points
-- TODO: read arrived data so that it doesn't stay in the buffer
# TODO: delete line where header is compared to 1
# TODO: do throttle (many same data points) testw

View file

@ -0,0 +1,260 @@
0 899 0001000000000001110111100100010000000000000000000000000000000001
0 771 0001000000000001110111100100010000000000000000000000000000000001
0 643 0001000000000001110111100100010000000000000000000000000000000001
0 515 0001000000000001110111100100010000000000000000000000000000000001
0 991 0001000000000010100010111100111111000000000000000000000000000001
0 990 0001000000000010100010111100111111000000000000000000000000000001
0 989 0001000000000010100010111100111111000000000000000000000000000001
0 988 0001000000000010100010111100111111000000000000000000000000000001
0 987 0001000000000010100010111100111111000000000000000000000000000001
0 986 0001000000000010100010111100111111000000000000000000000000000001
0 985 0001000000000010100010111100111111000000000000000000000000000001
0 984 0001000000000010100010111100111111000000000000000000000000000001
0 975 0001000000000010100010111100111111000000000000000000000000000001
0 974 0001000000000010100010111100111111000000000000000000000000000001
0 973 0001000000000010100010111100111111000000000000000000000000000001
0 972 0001000000000010100010111100111111000000000000000000000000000001
0 971 0001000000000010100010111100111111000000000000000000000000000001
0 970 0001000000000010100010111100111111000000000000000000000000000001
0 969 0001000000000010100010111100111111000000000000000000000000000001
0 968 0001000000000010100010111100111111000000000000000000000000000001
0 927 0001000000000010100010111100111111000000000000000000000000000001
0 926 0001000000000010100010111100111111000000000000000000000000000001
0 925 0001000000000010100010111100111111000000000000000000000000000001
0 924 0001000000000010100010111100111111000000000000000000000000000001
0 923 0001000000000010100010111100111111000000000000000000000000000001
0 922 0001000000000010100010111100111111000000000000000000000000000001
0 921 0001000000000010100010111100111111000000000000000000000000000001
0 920 0001000000000010100010111100111111000000000000000000000000000001
0 911 0001000000000010100010111100111111000000000000000000000000000001
0 910 0001000000000010100010111100111111000000000000000000000000000001
0 909 0001000000000010100010111100111111000000000000000000000000000001
0 908 0001000000000010100010111100111111000000000000000000000000000001
0 907 0001000000000010100010111100111111000000000000000000000000000001
0 906 0001000000000010100010111100111111000000000000000000000000000001
0 905 0001000000000010100010111100111111000000000000000000000000000001
0 904 0001000000000010100010111100111111000000000000000000000000000001
0 863 0001000000000010100010111100111111000000000000000000000000000001
0 862 0001000000000010100010111100111111000000000000000000000000000001
0 861 0001000000000010100010111100111111000000000000000000000000000001
0 860 0001000000000010100010111100111111000000000000000000000000000001
0 859 0001000000000010100010111100111111000000000000000000000000000001
0 858 0001000000000010100010111100111111000000000000000000000000000001
0 857 0001000000000010100010111100111111000000000000000000000000000001
0 856 0001000000000010100010111100111111000000000000000000000000000001
0 847 0001000000000010100010111100111111000000000000000000000000000001
0 846 0001000000000010100010111100111111000000000000000000000000000001
0 845 0001000000000010100010111100111111000000000000000000000000000001
0 844 0001000000000010100010111100111111000000000000000000000000000001
0 843 0001000000000010100010111100111111000000000000000000000000000001
0 842 0001000000000010100010111100111111000000000000000000000000000001
0 841 0001000000000010100010111100111111000000000000000000000000000001
0 840 0001000000000010100010111100111111000000000000000000000000000001
0 799 0001000000000010100010111100111111000000000000000000000000000001
0 798 0001000000000010100010111100111111000000000000000000000000000001
0 797 0001000000000010100010111100111111000000000000000000000000000001
0 796 0001000000000010100010111100111111000000000000000000000000000001
0 795 0001000000000010100010111100111111000000000000000000000000000001
0 794 0001000000000010100010111100111111000000000000000000000000000001
0 793 0001000000000010100010111100111111000000000000000000000000000001
0 792 0001000000000010100010111100111111000000000000000000000000000001
0 783 0001000000000010100010111100111111000000000000000000000000000001
0 782 0001000000000010100010111100111111000000000000000000000000000001
0 781 0001000000000010100010111100111111000000000000000000000000000001
0 780 0001000000000010100010111100111111000000000000000000000000000001
0 779 0001000000000010100010111100111111000000000000000000000000000001
0 778 0001000000000010100010111100111111000000000000000000000000000001
0 777 0001000000000010100010111100111111000000000000000000000000000001
0 776 0001000000000010100010111100111111000000000000000000000000000001
0 735 0001000000000010100010111100111111000000000000000000000000000001
0 734 0001000000000010100010111100111111000000000000000000000000000001
0 733 0001000000000010100010111100111111000000000000000000000000000001
0 732 0001000000000010100010111100111111000000000000000000000000000001
0 731 0001000000000010100010111100111111000000000000000000000000000001
0 730 0001000000000010100010111100111111000000000000000000000000000001
0 729 0001000000000010100010111100111111000000000000000000000000000001
0 728 0001000000000010100010111100111111000000000000000000000000000001
0 719 0001000000000010100010111100111111000000000000000000000000000001
0 718 0001000000000010100010111100111111000000000000000000000000000001
0 717 0001000000000010100010111100111111000000000000000000000000000001
0 716 0001000000000010100010111100111111000000000000000000000000000001
0 715 0001000000000010100010111100111111000000000000000000000000000001
0 714 0001000000000010100010111100111111000000000000000000000000000001
0 713 0001000000000010100010111100111111000000000000000000000000000001
0 712 0001000000000010100010111100111111000000000000000000000000000001
0 671 0001000000000010100010111100111111000000000000000000000000000001
0 670 0001000000000010100010111100111111000000000000000000000000000001
0 669 0001000000000010100010111100111111000000000000000000000000000001
0 668 0001000000000010100010111100111111000000000000000000000000000001
0 667 0001000000000010100010111100111111000000000000000000000000000001
0 666 0001000000000010100010111100111111000000000000000000000000000001
0 665 0001000000000010100010111100111111000000000000000000000000000001
0 664 0001000000000010100010111100111111000000000000000000000000000001
0 655 0001000000000010100010111100111111000000000000000000000000000001
0 654 0001000000000010100010111100111111000000000000000000000000000001
0 653 0001000000000010100010111100111111000000000000000000000000000001
0 652 0001000000000010100010111100111111000000000000000000000000000001
0 651 0001000000000010100010111100111111000000000000000000000000000001
0 650 0001000000000010100010111100111111000000000000000000000000000001
0 649 0001000000000010100010111100111111000000000000000000000000000001
0 648 0001000000000010100010111100111111000000000000000000000000000001
0 607 0001000000000010100010111100111111000000000000000000000000000001
0 606 0001000000000010100010111100111111000000000000000000000000000001
0 605 0001000000000010100010111100111111000000000000000000000000000001
0 604 0001000000000010100010111100111111000000000000000000000000000001
0 603 0001000000000010100010111100111111000000000000000000000000000001
0 602 0001000000000010100010111100111111000000000000000000000000000001
0 601 0001000000000010100010111100111111000000000000000000000000000001
0 600 0001000000000010100010111100111111000000000000000000000000000001
0 591 0001000000000010100010111100111111000000000000000000000000000001
0 590 0001000000000010100010111100111111000000000000000000000000000001
0 589 0001000000000010100010111100111111000000000000000000000000000001
0 588 0001000000000010100010111100111111000000000000000000000000000001
0 587 0001000000000010100010111100111111000000000000000000000000000001
0 586 0001000000000010100010111100111111000000000000000000000000000001
0 585 0001000000000010100010111100111111000000000000000000000000000001
0 584 0001000000000010100010111100111111000000000000000000000000000001
0 543 0001000000000010100010111100111111000000000000000000000000000001
0 542 0001000000000010100010111100111111000000000000000000000000000001
0 541 0001000000000010100010111100111111000000000000000000000000000001
0 540 0001000000000010100010111100111111000000000000000000000000000001
0 539 0001000000000010100010111100111111000000000000000000000000000001
0 538 0001000000000010100010111100111111000000000000000000000000000001
0 537 0001000000000010100010111100111111000000000000000000000000000001
0 536 0001000000000010100010111100111111000000000000000000000000000001
0 527 0001000000000010100010111100111111000000000000000000000000000001
0 526 0001000000000010100010111100111111000000000000000000000000000001
0 525 0001000000000010100010111100111111000000000000000000000000000001
0 524 0001000000000010100010111100111111000000000000000000000000000001
0 523 0001000000000010100010111100111111000000000000000000000000000001
0 522 0001000000000010100010111100111111000000000000000000000000000001
0 521 0001000000000010100010111100111111000000000000000000000000000001
0 520 0001000000000010100010111100111111000000000000000000000000000001
0 479 0001000000000010100010111100111111000000000000000000000000000001
0 478 0001000000000010100010111100111111000000000000000000000000000001
0 477 0001000000000010100010111100111111000000000000000000000000000001
0 476 0001000000000010100010111100111111000000000000000000000000000001
0 475 0001000000000010100010111100111111000000000000000000000000000001
0 474 0001000000000010100010111100111111000000000000000000000000000001
0 473 0001000000000010100010111100111111000000000000000000000000000001
0 472 0001000000000010100010111100111111000000000000000000000000000001
0 463 0001000000000010100010111100111111000000000000000000000000000001
0 462 0001000000000010100010111100111111000000000000000000000000000001
0 461 0001000000000010100010111100111111000000000000000000000000000001
0 460 0001000000000010100010111100111111000000000000000000000000000001
0 459 0001000000000010100010111100111111000000000000000000000000000001
0 458 0001000000000010100010111100111111000000000000000000000000000001
0 457 0001000000000010100010111100111111000000000000000000000000000001
0 456 0001000000000010100010111100111111000000000000000000000000000001
0 415 0001000000000010100010111100111111000000000000000000000000000001
0 414 0001000000000010100010111100111111000000000000000000000000000001
0 413 0001000000000010100010111100111111000000000000000000000000000001
0 412 0001000000000010100010111100111111000000000000000000000000000001
0 411 0001000000000010100010111100111111000000000000000000000000000001
0 410 0001000000000010100010111100111111000000000000000000000000000001
0 409 0001000000000010100010111100111111000000000000000000000000000001
0 408 0001000000000010100010111100111111000000000000000000000000000001
0 399 0001000000000010100010111100111111000000000000000000000000000001
0 398 0001000000000010100010111100111111000000000000000000000000000001
0 397 0001000000000010100010111100111111000000000000000000000000000001
0 396 0001000000000010100010111100111111000000000000000000000000000001
0 395 0001000000000010100010111100111111000000000000000000000000000001
0 394 0001000000000010100010111100111111000000000000000000000000000001
0 393 0001000000000010100010111100111111000000000000000000000000000001
0 392 0001000000000010100010111100111111000000000000000000000000000001
0 351 0001000000000010100010111100111111000000000000000000000000000001
0 350 0001000000000010100010111100111111000000000000000000000000000001
0 349 0001000000000010100010111100111111000000000000000000000000000001
0 348 0001000000000010100010111100111111000000000000000000000000000001
0 347 0001000000000010100010111100111111000000000000000000000000000001
0 346 0001000000000010100010111100111111000000000000000000000000000001
0 345 0001000000000010100010111100111111000000000000000000000000000001
0 344 0001000000000010100010111100111111000000000000000000000000000001
0 335 0001000000000010100010111100111111000000000000000000000000000001
0 334 0001000000000010100010111100111111000000000000000000000000000001
0 333 0001000000000010100010111100111111000000000000000000000000000001
0 332 0001000000000010100010111100111111000000000000000000000000000001
0 331 0001000000000010100010111100111111000000000000000000000000000001
0 330 0001000000000010100010111100111111000000000000000000000000000001
0 329 0001000000000010100010111100111111000000000000000000000000000001
0 328 0001000000000010100010111100111111000000000000000000000000000001
0 287 0001000000000010100010111100111111000000000000000000000000000001
0 286 0001000000000010100010111100111111000000000000000000000000000001
0 285 0001000000000010100010111100111111000000000000000000000000000001
0 284 0001000000000010100010111100111111000000000000000000000000000001
0 283 0001000000000010100010111100111111000000000000000000000000000001
0 282 0001000000000010100010111100111111000000000000000000000000000001
0 281 0001000000000010100010111100111111000000000000000000000000000001
0 280 0001000000000010100010111100111111000000000000000000000000000001
0 271 0001000000000010100010111100111111000000000000000000000000000001
0 270 0001000000000010100010111100111111000000000000000000000000000001
0 269 0001000000000010100010111100111111000000000000000000000000000001
0 268 0001000000000010100010111100111111000000000000000000000000000001
0 267 0001000000000010100010111100111111000000000000000000000000000001
0 266 0001000000000010100010111100111111000000000000000000000000000001
0 265 0001000000000010100010111100111111000000000000000000000000000001
0 264 0001000000000010100010111100111111000000000000000000000000000001
0 223 0001000000000010100010111100111111000000000000000000000000000001
0 222 0001000000000010100010111100111111000000000000000000000000000001
0 221 0001000000000010100010111100111111000000000000000000000000000001
0 220 0001000000000010100010111100111111000000000000000000000000000001
0 219 0001000000000010100010111100111111000000000000000000000000000001
0 218 0001000000000010100010111100111111000000000000000000000000000001
0 217 0001000000000010100010111100111111000000000000000000000000000001
0 216 0001000000000010100010111100111111000000000000000000000000000001
0 207 0001000000000010100010111100111111000000000000000000000000000001
0 206 0001000000000010100010111100111111000000000000000000000000000001
0 205 0001000000000010100010111100111111000000000000000000000000000001
0 204 0001000000000010100010111100111111000000000000000000000000000001
0 203 0001000000000010100010111100111111000000000000000000000000000001
0 202 0001000000000010100010111100111111000000000000000000000000000001
0 201 0001000000000010100010111100111111000000000000000000000000000001
0 200 0001000000000010100010111100111111000000000000000000000000000001
0 159 0001000000000010100010111100111111000000000000000000000000000001
0 158 0001000000000010100010111100111111000000000000000000000000000001
0 157 0001000000000010100010111100111111000000000000000000000000000001
0 156 0001000000000010100010111100111111000000000000000000000000000001
0 155 0001000000000010100010111100111111000000000000000000000000000001
0 154 0001000000000010100010111100111111000000000000000000000000000001
0 153 0001000000000010100010111100111111000000000000000000000000000001
0 152 0001000000000010100010111100111111000000000000000000000000000001
0 143 0001000000000010100010111100111111000000000000000000000000000001
0 142 0001000000000010100010111100111111000000000000000000000000000001
0 141 0001000000000010100010111100111111000000000000000000000000000001
0 140 0001000000000010100010111100111111000000000000000000000000000001
0 139 0001000000000010100010111100111111000000000000000000000000000001
0 138 0001000000000010100010111100111111000000000000000000000000000001
0 137 0001000000000010100010111100111111000000000000000000000000000001
0 136 0001000000000010100010111100111111000000000000000000000000000001
0 95 0001000000000010100010111100111111000000000000000000000000000001
0 94 0001000000000010100010111100111111000000000000000000000000000001
0 93 0001000000000010100010111100111111000000000000000000000000000001
0 92 0001000000000010100010111100111111000000000000000000000000000001
0 91 0001000000000010100010111100111111000000000000000000000000000001
0 90 0001000000000010100010111100111111000000000000000000000000000001
0 89 0001000000000010100010111100111111000000000000000000000000000001
0 88 0001000000000010100010111100111111000000000000000000000000000001
0 79 0001000000000010100010111100111111000000000000000000000000000001
0 78 0001000000000010100010111100111111000000000000000000000000000001
0 77 0001000000000010100010111100111111000000000000000000000000000001
0 76 0001000000000010100010111100111111000000000000000000000000000001
0 75 0001000000000010100010111100111111000000000000000000000000000001
0 74 0001000000000010100010111100111111000000000000000000000000000001
0 73 0001000000000010100010111100111111000000000000000000000000000001
0 72 0001000000000010100010111100111111000000000000000000000000000001
0 31 0001000000000010100010111100111111000000000000000000000000000001
0 30 0001000000000010100010111100111111000000000000000000000000000001
0 29 0001000000000010100010111100111111000000000000000000000000000001
0 28 0001000000000010100010111100111111000000000000000000000000000001
0 27 0001000000000010100010111100111111000000000000000000000000000001
0 26 0001000000000010100010111100111111000000000000000000000000000001
0 25 0001000000000010100010111100111111000000000000000000000000000001
0 24 0001000000000010100010111100111111000000000000000000000000000001
0 15 0001000000000010100010111100111111000000000000000000000000000001
0 14 0001000000000010100010111100111111000000000000000000000000000001
0 13 0001000000000010100010111100111111000000000000000000000000000001
0 12 0001000000000010100010111100111111000000000000000000000000000001
0 11 0001000000000010100010111100111111000000000000000000000000000001
0 10 0001000000000010100010111100111111000000000000000000000000000001
0 9 0001000000000010100010111100111111000000000000000000000000000001
0 8 0001000000000010100010111100111111000000000000000000000000000001

View file

@ -0,0 +1,65 @@
0 221 0001000000000010101100000000000000000000000000000000000000000001
0 145 0001000000000010100110001011110010000000000000000000000000000001
0 147 0001000000000010100110001011110010000000000000000000000000000001
0 149 0001000000000010100110001011110010000000000000000000000000000001
0 151 0001000000000010100110001011110010000000000000000000000000000001
0 153 0001000000000010100110001011110010000000000000000000000000000001
0 155 0001000000000010100110001011110010000000000000000000000000000001
0 157 0001000000000010100110001011110010000000000000000000000000000001
0 159 0001000000000010100110001011110010000000000000000000000000000001
0 177 0001000000000010100110001011110010000000000000000000000000000001
0 179 0001000000000010100110001011110010000000000000000000000000000001
0 181 0001000000000010100110001011110010000000000000000000000000000001
0 183 0001000000000010100110001011110010000000000000000000000000000001
0 185 0001000000000010100110001011110010000000000000000000000000000001
0 187 0001000000000010100110001011110010000000000000000000000000000001
0 189 0001000000000010100110001011110010000000000000000000000000000001
0 191 0001000000000010100110001011110010000000000000000000000000000001
0 401 0001000000000010100110001011110010000000000000000000000000000001
0 403 0001000000000010100110001011110010000000000000000000000000000001
0 405 0001000000000010100110001011110010000000000000000000000000000001
0 407 0001000000000010100110001011110010000000000000000000000000000001
0 409 0001000000000010100110001011110010000000000000000000000000000001
0 411 0001000000000010100110001011110010000000000000000000000000000001
0 413 0001000000000010100110001011110010000000000000000000000000000001
0 415 0001000000000010100110001011110010000000000000000000000000000001
0 433 0001000000000010100110001011110010000000000000000000000000000001
0 435 0001000000000010100110001011110010000000000000000000000000000001
0 437 0001000000000010100110001011110010000000000000000000000000000001
0 439 0001000000000010100110001011110010000000000000000000000000000001
0 441 0001000000000010100110001011110010000000000000000000000000000001
0 443 0001000000000010100110001011110010000000000000000000000000000001
0 445 0001000000000010100110001011110010000000000000000000000000000001
0 447 0001000000000010100110001011110010000000000000000000000000000001
0 657 0001000000000010100110001011110010000000000000000000000000000001
0 659 0001000000000010100110001011110010000000000000000000000000000001
0 661 0001000000000010100110001011110010000000000000000000000000000001
0 663 0001000000000010100110001011110010000000000000000000000000000001
0 665 0001000000000010100110001011110010000000000000000000000000000001
0 667 0001000000000010100110001011110010000000000000000000000000000001
0 669 0001000000000010100110001011110010000000000000000000000000000001
0 671 0001000000000010100110001011110010000000000000000000000000000001
0 689 0001000000000010100110001011110010000000000000000000000000000001
0 691 0001000000000010100110001011110010000000000000000000000000000001
0 693 0001000000000010100110001011110010000000000000000000000000000001
0 695 0001000000000010100110001011110010000000000000000000000000000001
0 697 0001000000000010100110001011110010000000000000000000000000000001
0 699 0001000000000010100110001011110010000000000000000000000000000001
0 701 0001000000000010100110001011110010000000000000000000000000000001
0 703 0001000000000010100110001011110010000000000000000000000000000001
0 913 0001000000000010100110001011110010000000000000000000000000000001
0 915 0001000000000010100110001011110010000000000000000000000000000001
0 917 0001000000000010100110001011110010000000000000000000000000000001
0 919 0001000000000010100110001011110010000000000000000000000000000001
0 921 0001000000000010100110001011110010000000000000000000000000000001
0 923 0001000000000010100110001011110010000000000000000000000000000001
0 925 0001000000000010100110001011110010000000000000000000000000000001
0 927 0001000000000010100110001011110010000000000000000000000000000001
0 945 0001000000000010100110001011110010000000000000000000000000000001
0 947 0001000000000010100110001011110010000000000000000000000000000001
0 949 0001000000000010100110001011110010000000000000000000000000000001
0 951 0001000000000010100110001011110010000000000000000000000000000001
0 953 0001000000000010100110001011110010000000000000000000000000000001
0 955 0001000000000010100110001011110010000000000000000000000000000001
0 957 0001000000000010100110001011110010000000000000000000000000000001
0 959 0001000000000010100110001011110010000000000000000000000000000001

View file

@ -0,0 +1,3 @@
# is external? | path | data
0 272 0001000000000001110111100100010000000000000000000000000000000001 # origin: (11111-01011) --> dest: (01110-11110,00110-01110)
0 863 0001000000000010100010111100111111000000000000000000000000000001 # origin: (01100-00000) --> dest: (10100-01011,00101-00000,10101-00001,11101-10111)

View file

@ -0,0 +1,130 @@
0 221 0001000000000010101100000000000000000000000000000000000000000001
---> passed!
0 145 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 147 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 149 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 151 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 153 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 155 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 157 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 159 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 177 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 179 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 181 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 183 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 185 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 187 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 189 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 191 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 401 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 403 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 405 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 407 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 409 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 411 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 413 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 415 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 433 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 435 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 437 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 439 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 441 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 443 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 445 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 447 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 657 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 659 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 661 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 663 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 665 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 667 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 669 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 671 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 689 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 691 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 693 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 695 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 697 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 699 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 701 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 703 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 913 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 915 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 917 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 919 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 921 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 923 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 925 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 927 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 945 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 947 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 949 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 951 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 953 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 955 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 957 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 959 0001000000000010100110001011110010000000000000000000000000000001
---> passed!

View file

@ -0,0 +1,16 @@
0 765 0001000000000001011100000101001010000000000000000000000000000001
0 761 0001000000000001011100000101001010000000000000000000000000000001
0 757 0001000000000001011100000101001010000000000000000000000000000001
0 753 0001000000000001011100000101001010000000000000000000000000000001
0 701 0001000000000001011100000101001010000000000000000000000000000001
0 697 0001000000000001011100000101001010000000000000000000000000000001
0 693 0001000000000001011100000101001010000000000000000000000000000001
0 689 0001000000000001011100000101001010000000000000000000000000000001
0 637 0001000000000001011100000101001010000000000000000000000000000001
0 633 0001000000000001011100000101001010000000000000000000000000000001
0 629 0001000000000001011100000101001010000000000000000000000000000001
0 625 0001000000000001011100000101001010000000000000000000000000000001
0 573 0001000000000001011100000101001010000000000000000000000000000001
0 569 0001000000000001011100000101001010000000000000000000000000000001
0 565 0001000000000001011100000101001010000000000000000000000000000001
0 561 0001000000000001011100000101001010000000000000000000000000000001

View file

@ -0,0 +1,16 @@
0 561 0001000000000001011100000101001010000000000000000000000000000001
0 565 0001000000000001011100000101001010000000000000000000000000000001
0 569 0001000000000001011100000101001010000000000000000000000000000001
0 573 0001000000000001011100000101001010000000000000000000000000000001
0 625 0001000000000001011100000101001010000000000000000000000000000001
0 629 0001000000000001011100000101001010000000000000000000000000000001
0 633 0001000000000001011100000101001010000000000000000000000000000001
0 637 0001000000000001011100000101001010000000000000000000000000000001
0 689 0001000000000001011100000101001010000000000000000000000000000001
0 693 0001000000000001011100000101001010000000000000000000000000000001
0 697 0001000000000001011100000101001010000000000000000000000000000001
0 701 0001000000000001011100000101001010000000000000000000000000000001
0 753 0001000000000001011100000101001010000000000000000000000000000001
0 757 0001000000000001011100000101001010000000000000000000000000000001
0 761 0001000000000001011100000101001010000000000000000000000000000001
0 765 0001000000000001011100000101001010000000000000000000000000000001

View file

@ -0,0 +1,2 @@
# is external? | path | data
0 971 0001000000000001011100000101001010000000000000000000000000000001 # origin: (00100-00110) --> dest: (01011-10000,00001-11010)

View file

@ -0,0 +1,32 @@
0 561 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 565 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 569 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 573 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 625 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 629 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 633 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 637 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 689 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 693 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 697 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 701 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 753 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 757 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 761 0001000000000001011100000101001010000000000000000000000000000001
---> passed!
0 765 0001000000000001011100000101001010000000000000000000000000000001
---> passed!

View file

@ -1,2 +1,4 @@
0 1017 0001000000000000001000100001000010000000000000000000000000000001
0 1011 0001000000000000010000100001000010000000000000000000000000000001
0 1019 0001000000000000001000100001100000000000000000000000000000000001
0 1017 0001000000000000001000100001100000000000000000000000000000000001
0 1011 0001000000000000001000100001100000000000000000000000000000000001
0 1009 0001000000000000001000100001100000000000000000000000000000000001

View file

@ -0,0 +1,4 @@
0 1009 0001000000000000001000100001100000000000000000000000000000000001
0 1011 0001000000000000001000100001100000000000000000000000000000000001
0 1017 0001000000000000001000100001100000000000000000000000000000000001
0 1019 0001000000000000001000100001100000000000000000000000000000000001

View file

@ -1,2 +1,2 @@
# is external? | path | data
0 971 0001000000000000001000100001000010000000000000000000000000000001
0 971 0001000000000000001000100001100000000000000000000000000000000001

View file

@ -0,0 +1,8 @@
0 1009 0001000000000000001000100001100000000000000000000000000000000001
---> passed!
0 1011 0001000000000000001000100001100000000000000000000000000000000001
---> passed!
0 1017 0001000000000000001000100001100000000000000000000000000000000001
---> passed!
0 1019 0001000000000000001000100001100000000000000000000000000000000001
---> passed!

View file

@ -0,0 +1,4 @@
0 1017 0001000000000000001001110000000101000000000000000000000000000001
0 1016 0001000000000000001001110000000101000000000000000000000000000001
0 1001 0001000000000000001001110000000101000000000000000000000000000001
0 1000 0001000000000000001001110000000101000000000000000000000000000001

View file

@ -0,0 +1,4 @@
0 1000 0001000000000000001001110000000101000000000000000000000000000001
0 1001 0001000000000000001001110000000101000000000000000000000000000001
0 1016 0001000000000000001001110000000101000000000000000000000000000001
0 1017 0001000000000000001001110000000101000000000000000000000000000001

View file

@ -0,0 +1,2 @@
# is external? | path | data
0 971 0001000000000000001001110000000101000000000000000000000000000001

View file

@ -0,0 +1,8 @@
0 1000 0001000000000000001001110000000101000000000000000000000000000001
---> passed!
0 1001 0001000000000000001001110000000101000000000000000000000000000001
---> passed!
0 1016 0001000000000000001001110000000101000000000000000000000000000001
---> passed!
0 1017 0001000000000000001001110000000101000000000000000000000000000001
---> passed!

View file

@ -42,63 +42,22 @@ architecture bench of noc_tb is
file conf_file : text open read_mode is "config.txt";
file stimuli_file : text open read_mode is "stimuli.txt";
file reference_file : text open read_mode is "result.ref";
file log_file : text open write_mode is "simulation.log";
procedure log_test_result (
index : integer;
sollwert, istwert : WORD;
is_external, soll_is_external : boolean;
sollpath, istpath : integer
istwert : WORD;
is_external : std_logic;
istpath : integer
) is
variable rowOut : LINE;
begin
write(rowOut, index);
if is_external then
write(rowOut, string'(" = loop (path/fifo - external)"));
else
write(rowOut, string'(" = loop (path/fifo - PE)"));
end if;
WRITELINE(log_file, rowOut);
write(rowOut, string'("-->"));
write(rowOut, sollwert);
write(rowOut, string'(" = sollwert"));
WRITELINE(log_file, rowOut);
write(rowOut, string'("-->"));
write(rowOut, istwert);
write(rowOut, string'(" = istwert"));
WRITELINE(log_file, rowOut);
write(rowOut, string'("-->"));
write(rowOut, soll_is_external);
write(rowOut, string'(" = soll is_external"));
WRITELINE(log_file, rowOut);
write(rowOut, string'("-->"));
write(rowOut, is_external);
write(rowOut, string'(" = ist is_external"));
write(rowOut, string'(" "));
write(rowOut, index);
write(rowOut, string'(" "));
write(rowOut, istwert);
WRITELINE(log_file, rowOut);
write(rowOut, string'("-->"));
write(rowOut, sollpath);
write(rowOut, string'(" = sollpath"));
WRITELINE(log_file, rowOut);
write(rowOut, string'("-->"));
write(rowOut, istpath);
write(rowOut, string'(" = istpath"));
WRITELINE(log_file, rowOut);
if istwert = sollwert and is_external = soll_is_external then
write(rowOut, string'("-------------------------->pass"));
WRITELINE(log_file, rowOut);
write(rowOut, string'("******************************"));
WRITELINE(log_file, rowOut);
else
write(rowOut, string'("-------------------------->fail"));
WRITELINE(log_file, rowOut);
write(rowOut, string'("******************************"));
WRITELINE(log_file, rowOut);
end if;
end procedure;
begin
@ -191,46 +150,20 @@ begin
wait;
end process;
validate_results: process(c_send_reqs, pe_send_reqs,
save_results: process(c_send_reqs, pe_send_reqs,
c_send_reqs_prev, pe_send_reqs_prev,
data_chip_out, pe_data_out)
variable input_line : line;
variable valid_data : boolean;
variable istwert, sollwert : WORD;
variable is_external : std_logic_vector(0 downto 0);
variable ist_is_external : boolean;
variable istpath, sollpath : integer;
variable istwert : WORD;
variable istpath : integer;
begin
if c_send_reqs'event or c_send_reqs_prev'event then
for i in 0 to num_paths_ext*4-1 loop
if (c_send_reqs(i) = '0' and c_send_reqs_prev(i) = '1') or
(c_send_reqs(i) = '1' and c_send_reqs_prev(i) = '0') then
istwert := data_chip_out(i);
istwert := data_chip_out(i);
istpath := i;
readline(reference_file, input_line);
read(input_line, is_external, valid_data);
assert valid_data report "Invalid data in file (is external)"
severity error;
ist_is_external := is_external(0) = '1';
assert ist_is_external report "Invalid result (is external)"
severity warning;
read(input_line, sollpath, valid_data);
assert valid_data report "Invalid data in file (path)"
severity error;
assert istpath = sollpath report "Invalid result (path)"
severity warning;
read(input_line, sollwert, valid_data);
assert valid_data report "Invalid data in file (data)"
severity error;
assert istwert = sollwert report "Invalid result (data)"
severity warning;
log_test_result(i, istwert, sollwert, TRUE, ist_is_external,
sollpath, istpath);
log_test_result(i, istwert, '1', istpath);
c_send_ack(i) <= not c_send_ack(i);
end if;
end loop;
elsif pe_send_reqs'event or pe_send_reqs_prev'event then
@ -239,30 +172,8 @@ begin
(pe_send_reqs(i) = '1' and pe_send_reqs_prev(i) = '0') then
istwert := pe_data_out(i);
istpath := i;
readline(reference_file, input_line);
read(input_line, is_external, valid_data);
assert valid_data report "Invalid data in file (is external)"
severity error;
ist_is_external := is_external(0) = '1';
assert not ist_is_external report "Invalid result (is external)"
severity warning;
read(input_line, sollpath, valid_data);
assert valid_data report "Invalid data in file (path)"
severity error;
assert istpath = sollpath report "Invalid result (path)"
severity warning;
read(input_line, sollwert, valid_data);
assert valid_data report "Invalid data in file (data)"
severity error;
assert istwert = sollwert report "Invalid result (data)"
severity warning;
log_test_result(i, istwert, sollwert, FALSE, ist_is_external,
sollpath, istpath);
log_test_result(i, istwert, '0', istpath);
pe_send_ack(i) <= not pe_send_ack(i);
end if;
end loop;
end if;

View file

@ -1,140 +0,0 @@
NUM_PE = 1024
HEADER = "0001"
CHIP_X = "00000"
CHIP_Y = "00000"
NO_COPY = "00000"
sender_paths = [["00100","00110"]] # x,y
recv_paths = [["00001","00010","00010","00010"]]
stimuli = "# is external? | path | data\n"
reference = ""
ref_path_count = [96,64,32,0] # N,S,W,E
def get_index_path(path_x : str, path_y : str):
index_path = NUM_PE-1
for i in range(len(path_x)):
index_path -= (4**i)*(int(path_x[4-i])*2 + int(path_y[4-i]))
return index_path
def get_multicast_reference(copy_x, copy_y, recv_path, packets):
x_paths = []
y_paths = []
x_poss_paths = []
y_poss_paths = []
path_packets = []
num_paths = 1
for i in range(len(copy_x)):
if copy_x[i] == "1" and copy_y == "1":
x_poss_paths.append(["0","0","1","1"])
y_poss_paths.append(["0","1","0","1"])
num_paths *= 4
elif copy_x[i] == "1":
x_poss_paths.append(["0","1"])
y_poss_paths.append([recv_path[0][i],recv_path[0][i]])
num_paths *= 2
elif copy_y[i] == "1":
x_poss_paths.append([recv_path[0][i],recv_path[0][i]])
y_poss_paths.append(["0","1"])
num_paths *= 2
else:
y_poss_paths.append(recv_path[0][i])
x_poss_paths.append(recv_path[0][i])
for i in range(len(x_poss_paths)):
k = 0
for j in range(num_paths):
if i == 0:
x_paths.append(x_poss_paths[0][k])
y_paths.append(y_poss_paths[0][k])
else:
x_paths[j] += x_poss_paths[i][k]
y_paths[j] += y_poss_paths[i][k]
k += 1
if k == len(x_poss_paths[0]):
k = 0
reference = ""
for x_path, y_path in zip(x_paths, y_paths):
index_path = get_index_path(x_path, y_path)
reference += "0 " + str(index_path) + " "
reference += packets[i] + "\n" #TODO
return reference
for p, path in enumerate(sender_paths):
data_packet = 1
if len(path) == 2:
index_path = get_index_path(path[0], path[1])
stimuli += "0 " + str(index_path) + " "
if len(recv_paths[p]) == 1:
if recv_paths[p][0] == "N":
ex_chip_y = int(CHIP_y,2)-1
index_path = ref_path_count[0]
ref_path_count[0] = ref_path_count[0]+1
elif recv_paths[p][0] == "S":
ex_chip_y = int(CHIP_y,2)+1
index_path = ref_path_count[1]
ref_path_count[1] = ref_path_count[1]+1
elif recv_paths[p][0] == "W":
ex_chip_x = int(CHIP_X,2)-1
index_path = ref_path_count[2]
ref_path_count[2] = ref_path_count[2]+1
else:
ex_chip_x = int(CHIP_X,2)+1
index_path = ref_path_count[3]
ref_path_count[3] = ref_path_count[3]+1
packet = HEADER + ex_chip_x + ex_chip_y
packet += NO_COPY*4
# assign packet
packet += f'{data_packet:030b}'
stimuli += packet + "\n"
# reference
reference += "0 " + str(index_path) + " "
reference += packet + "\n"
elif len(recv_paths[p]) == 2:
packet = HEADER + CHIP_X + CHIP_Y
packet += recv_paths[p][0] + recv_paths[p][1] + NO_COPY*2
# assign packet
packet += f'{data_packet:030b}'
stimuli += packet + "\n"
# reference
index_path = get_index_path(recv_paths[p][0], recv_paths[p][1])
reference += "0 " + str(index_path) + " "
reference += packet + "\n"
else:
list_copy_x = list_copy_y = list("00000")
for j in range(2,len(recv_paths[p]),2):
for i in range(len(recv_paths[p][0])):
if recv_paths[p][0][i] != recv_paths[p][j][i]:
list_copy_x[i]= "1"
if recv_paths[p][1][i] != recv_paths[p][j+1][i]:
copylist_copy_y_y[i]= "1"
copy_x = ''.join(list_copy_x)
copy_y = ''.join(list_copy_y)
packets = []
for i in range(0,len(recv_paths[p]),2):
packet = HEADER + CHIP_X + CHIP_Y
packet += recv_paths[p][i] + recv_paths[p][i+1] + copy_x + copy_y
packet += f'{data_packet:030b}'
packets.append(packet)
# assign packet
stimuli += packets[0] + "\n"
# reference
"""for i in range(int(len(recv_paths[p])/2)):
index_path = get_index_path(recv_paths[p][2*i],recv_paths[p][2*i+1])
reference += "0 " + str(index_path) + " "
reference += packets[i] + "\n"
"""
reference = get_multicast_reference(copy_x, copy_y, recv_paths[p], packets)
data_packet += 1
with open("stimuli.txt", "w") as f:
f.write(stimuli)
with open("result.ref", "w") as f:
f.write(reference)

View file

@ -0,0 +1,42 @@
import shutil, sys
from utils import *
# inputs
#sender_paths = [["01100","00000"]] # x,y
#recv_paths = [["00010","01110","11110","10011","10011","00000",
# "01101","01001","11011","11011","10101","01100"]]
sender_paths, recv_paths = generate_random_send_recv_paths(2)
test_name = "random_pe_to_pe_test"
print(sender_paths)
print(recv_paths)
# constants
stimuli = "# is external? | path | data\n"
reference = ""
for p, path in enumerate(sender_paths):
data_packet = 1
if len(path) == 2:
index_path = get_index_path(path[0], path[1])
stimuli += "0 " + str(index_path) + " "
if len(recv_paths[p]) == 1:
data_packet, stimuli, reference = gen_ref_for_direct_msg(
path, recv_paths[p], data_packet, stimuli, reference)
elif len(recv_paths[p]) == 2:
data_packet, stimuli, reference = gen_ref_for_sing_dir_multicast(
path, recv_paths[p], data_packet, stimuli, reference)
else:
data_packet, stimuli, reference = gen_ref_for_mult_dir_multicast(
path, recv_paths[p], data_packet, stimuli, reference)
print(len(reference))
data_packet += 1
with open("stimuli.txt", "w") as f:
f.write(stimuli)
with open("result.ref", "w") as f:
f.write(reference)
shutil.copyfile("stimuli.txt", "../../input/noc_tests/"+test_name+"/stimuli.txt")
shutil.copyfile("stimuli.txt", "/home/juanmanuel/modelsim/stimuli.txt")
shutil.copyfile("result.ref", "../../input/noc_tests/"+test_name+"/result.ref")

View file

@ -0,0 +1,260 @@
0 899 0001000000000001110111100100010000000000000000000000000000000001
0 771 0001000000000001110111100100010000000000000000000000000000000001
0 643 0001000000000001110111100100010000000000000000000000000000000001
0 515 0001000000000001110111100100010000000000000000000000000000000001
0 991 0001000000000010100010111100111111000000000000000000000000000001
0 990 0001000000000010100010111100111111000000000000000000000000000001
0 989 0001000000000010100010111100111111000000000000000000000000000001
0 988 0001000000000010100010111100111111000000000000000000000000000001
0 987 0001000000000010100010111100111111000000000000000000000000000001
0 986 0001000000000010100010111100111111000000000000000000000000000001
0 985 0001000000000010100010111100111111000000000000000000000000000001
0 984 0001000000000010100010111100111111000000000000000000000000000001
0 975 0001000000000010100010111100111111000000000000000000000000000001
0 974 0001000000000010100010111100111111000000000000000000000000000001
0 973 0001000000000010100010111100111111000000000000000000000000000001
0 972 0001000000000010100010111100111111000000000000000000000000000001
0 971 0001000000000010100010111100111111000000000000000000000000000001
0 970 0001000000000010100010111100111111000000000000000000000000000001
0 969 0001000000000010100010111100111111000000000000000000000000000001
0 968 0001000000000010100010111100111111000000000000000000000000000001
0 927 0001000000000010100010111100111111000000000000000000000000000001
0 926 0001000000000010100010111100111111000000000000000000000000000001
0 925 0001000000000010100010111100111111000000000000000000000000000001
0 924 0001000000000010100010111100111111000000000000000000000000000001
0 923 0001000000000010100010111100111111000000000000000000000000000001
0 922 0001000000000010100010111100111111000000000000000000000000000001
0 921 0001000000000010100010111100111111000000000000000000000000000001
0 920 0001000000000010100010111100111111000000000000000000000000000001
0 911 0001000000000010100010111100111111000000000000000000000000000001
0 910 0001000000000010100010111100111111000000000000000000000000000001
0 909 0001000000000010100010111100111111000000000000000000000000000001
0 908 0001000000000010100010111100111111000000000000000000000000000001
0 907 0001000000000010100010111100111111000000000000000000000000000001
0 906 0001000000000010100010111100111111000000000000000000000000000001
0 905 0001000000000010100010111100111111000000000000000000000000000001
0 904 0001000000000010100010111100111111000000000000000000000000000001
0 863 0001000000000010100010111100111111000000000000000000000000000001
0 862 0001000000000010100010111100111111000000000000000000000000000001
0 861 0001000000000010100010111100111111000000000000000000000000000001
0 860 0001000000000010100010111100111111000000000000000000000000000001
0 859 0001000000000010100010111100111111000000000000000000000000000001
0 858 0001000000000010100010111100111111000000000000000000000000000001
0 857 0001000000000010100010111100111111000000000000000000000000000001
0 856 0001000000000010100010111100111111000000000000000000000000000001
0 847 0001000000000010100010111100111111000000000000000000000000000001
0 846 0001000000000010100010111100111111000000000000000000000000000001
0 845 0001000000000010100010111100111111000000000000000000000000000001
0 844 0001000000000010100010111100111111000000000000000000000000000001
0 843 0001000000000010100010111100111111000000000000000000000000000001
0 842 0001000000000010100010111100111111000000000000000000000000000001
0 841 0001000000000010100010111100111111000000000000000000000000000001
0 840 0001000000000010100010111100111111000000000000000000000000000001
0 799 0001000000000010100010111100111111000000000000000000000000000001
0 798 0001000000000010100010111100111111000000000000000000000000000001
0 797 0001000000000010100010111100111111000000000000000000000000000001
0 796 0001000000000010100010111100111111000000000000000000000000000001
0 795 0001000000000010100010111100111111000000000000000000000000000001
0 794 0001000000000010100010111100111111000000000000000000000000000001
0 793 0001000000000010100010111100111111000000000000000000000000000001
0 792 0001000000000010100010111100111111000000000000000000000000000001
0 783 0001000000000010100010111100111111000000000000000000000000000001
0 782 0001000000000010100010111100111111000000000000000000000000000001
0 781 0001000000000010100010111100111111000000000000000000000000000001
0 780 0001000000000010100010111100111111000000000000000000000000000001
0 779 0001000000000010100010111100111111000000000000000000000000000001
0 778 0001000000000010100010111100111111000000000000000000000000000001
0 777 0001000000000010100010111100111111000000000000000000000000000001
0 776 0001000000000010100010111100111111000000000000000000000000000001
0 735 0001000000000010100010111100111111000000000000000000000000000001
0 734 0001000000000010100010111100111111000000000000000000000000000001
0 733 0001000000000010100010111100111111000000000000000000000000000001
0 732 0001000000000010100010111100111111000000000000000000000000000001
0 731 0001000000000010100010111100111111000000000000000000000000000001
0 730 0001000000000010100010111100111111000000000000000000000000000001
0 729 0001000000000010100010111100111111000000000000000000000000000001
0 728 0001000000000010100010111100111111000000000000000000000000000001
0 719 0001000000000010100010111100111111000000000000000000000000000001
0 718 0001000000000010100010111100111111000000000000000000000000000001
0 717 0001000000000010100010111100111111000000000000000000000000000001
0 716 0001000000000010100010111100111111000000000000000000000000000001
0 715 0001000000000010100010111100111111000000000000000000000000000001
0 714 0001000000000010100010111100111111000000000000000000000000000001
0 713 0001000000000010100010111100111111000000000000000000000000000001
0 712 0001000000000010100010111100111111000000000000000000000000000001
0 671 0001000000000010100010111100111111000000000000000000000000000001
0 670 0001000000000010100010111100111111000000000000000000000000000001
0 669 0001000000000010100010111100111111000000000000000000000000000001
0 668 0001000000000010100010111100111111000000000000000000000000000001
0 667 0001000000000010100010111100111111000000000000000000000000000001
0 666 0001000000000010100010111100111111000000000000000000000000000001
0 665 0001000000000010100010111100111111000000000000000000000000000001
0 664 0001000000000010100010111100111111000000000000000000000000000001
0 655 0001000000000010100010111100111111000000000000000000000000000001
0 654 0001000000000010100010111100111111000000000000000000000000000001
0 653 0001000000000010100010111100111111000000000000000000000000000001
0 652 0001000000000010100010111100111111000000000000000000000000000001
0 651 0001000000000010100010111100111111000000000000000000000000000001
0 650 0001000000000010100010111100111111000000000000000000000000000001
0 649 0001000000000010100010111100111111000000000000000000000000000001
0 648 0001000000000010100010111100111111000000000000000000000000000001
0 607 0001000000000010100010111100111111000000000000000000000000000001
0 606 0001000000000010100010111100111111000000000000000000000000000001
0 605 0001000000000010100010111100111111000000000000000000000000000001
0 604 0001000000000010100010111100111111000000000000000000000000000001
0 603 0001000000000010100010111100111111000000000000000000000000000001
0 602 0001000000000010100010111100111111000000000000000000000000000001
0 601 0001000000000010100010111100111111000000000000000000000000000001
0 600 0001000000000010100010111100111111000000000000000000000000000001
0 591 0001000000000010100010111100111111000000000000000000000000000001
0 590 0001000000000010100010111100111111000000000000000000000000000001
0 589 0001000000000010100010111100111111000000000000000000000000000001
0 588 0001000000000010100010111100111111000000000000000000000000000001
0 587 0001000000000010100010111100111111000000000000000000000000000001
0 586 0001000000000010100010111100111111000000000000000000000000000001
0 585 0001000000000010100010111100111111000000000000000000000000000001
0 584 0001000000000010100010111100111111000000000000000000000000000001
0 543 0001000000000010100010111100111111000000000000000000000000000001
0 542 0001000000000010100010111100111111000000000000000000000000000001
0 541 0001000000000010100010111100111111000000000000000000000000000001
0 540 0001000000000010100010111100111111000000000000000000000000000001
0 539 0001000000000010100010111100111111000000000000000000000000000001
0 538 0001000000000010100010111100111111000000000000000000000000000001
0 537 0001000000000010100010111100111111000000000000000000000000000001
0 536 0001000000000010100010111100111111000000000000000000000000000001
0 527 0001000000000010100010111100111111000000000000000000000000000001
0 526 0001000000000010100010111100111111000000000000000000000000000001
0 525 0001000000000010100010111100111111000000000000000000000000000001
0 524 0001000000000010100010111100111111000000000000000000000000000001
0 523 0001000000000010100010111100111111000000000000000000000000000001
0 522 0001000000000010100010111100111111000000000000000000000000000001
0 521 0001000000000010100010111100111111000000000000000000000000000001
0 520 0001000000000010100010111100111111000000000000000000000000000001
0 479 0001000000000010100010111100111111000000000000000000000000000001
0 478 0001000000000010100010111100111111000000000000000000000000000001
0 477 0001000000000010100010111100111111000000000000000000000000000001
0 476 0001000000000010100010111100111111000000000000000000000000000001
0 475 0001000000000010100010111100111111000000000000000000000000000001
0 474 0001000000000010100010111100111111000000000000000000000000000001
0 473 0001000000000010100010111100111111000000000000000000000000000001
0 472 0001000000000010100010111100111111000000000000000000000000000001
0 463 0001000000000010100010111100111111000000000000000000000000000001
0 462 0001000000000010100010111100111111000000000000000000000000000001
0 461 0001000000000010100010111100111111000000000000000000000000000001
0 460 0001000000000010100010111100111111000000000000000000000000000001
0 459 0001000000000010100010111100111111000000000000000000000000000001
0 458 0001000000000010100010111100111111000000000000000000000000000001
0 457 0001000000000010100010111100111111000000000000000000000000000001
0 456 0001000000000010100010111100111111000000000000000000000000000001
0 415 0001000000000010100010111100111111000000000000000000000000000001
0 414 0001000000000010100010111100111111000000000000000000000000000001
0 413 0001000000000010100010111100111111000000000000000000000000000001
0 412 0001000000000010100010111100111111000000000000000000000000000001
0 411 0001000000000010100010111100111111000000000000000000000000000001
0 410 0001000000000010100010111100111111000000000000000000000000000001
0 409 0001000000000010100010111100111111000000000000000000000000000001
0 408 0001000000000010100010111100111111000000000000000000000000000001
0 399 0001000000000010100010111100111111000000000000000000000000000001
0 398 0001000000000010100010111100111111000000000000000000000000000001
0 397 0001000000000010100010111100111111000000000000000000000000000001
0 396 0001000000000010100010111100111111000000000000000000000000000001
0 395 0001000000000010100010111100111111000000000000000000000000000001
0 394 0001000000000010100010111100111111000000000000000000000000000001
0 393 0001000000000010100010111100111111000000000000000000000000000001
0 392 0001000000000010100010111100111111000000000000000000000000000001
0 351 0001000000000010100010111100111111000000000000000000000000000001
0 350 0001000000000010100010111100111111000000000000000000000000000001
0 349 0001000000000010100010111100111111000000000000000000000000000001
0 348 0001000000000010100010111100111111000000000000000000000000000001
0 347 0001000000000010100010111100111111000000000000000000000000000001
0 346 0001000000000010100010111100111111000000000000000000000000000001
0 345 0001000000000010100010111100111111000000000000000000000000000001
0 344 0001000000000010100010111100111111000000000000000000000000000001
0 335 0001000000000010100010111100111111000000000000000000000000000001
0 334 0001000000000010100010111100111111000000000000000000000000000001
0 333 0001000000000010100010111100111111000000000000000000000000000001
0 332 0001000000000010100010111100111111000000000000000000000000000001
0 331 0001000000000010100010111100111111000000000000000000000000000001
0 330 0001000000000010100010111100111111000000000000000000000000000001
0 329 0001000000000010100010111100111111000000000000000000000000000001
0 328 0001000000000010100010111100111111000000000000000000000000000001
0 287 0001000000000010100010111100111111000000000000000000000000000001
0 286 0001000000000010100010111100111111000000000000000000000000000001
0 285 0001000000000010100010111100111111000000000000000000000000000001
0 284 0001000000000010100010111100111111000000000000000000000000000001
0 283 0001000000000010100010111100111111000000000000000000000000000001
0 282 0001000000000010100010111100111111000000000000000000000000000001
0 281 0001000000000010100010111100111111000000000000000000000000000001
0 280 0001000000000010100010111100111111000000000000000000000000000001
0 271 0001000000000010100010111100111111000000000000000000000000000001
0 270 0001000000000010100010111100111111000000000000000000000000000001
0 269 0001000000000010100010111100111111000000000000000000000000000001
0 268 0001000000000010100010111100111111000000000000000000000000000001
0 267 0001000000000010100010111100111111000000000000000000000000000001
0 266 0001000000000010100010111100111111000000000000000000000000000001
0 265 0001000000000010100010111100111111000000000000000000000000000001
0 264 0001000000000010100010111100111111000000000000000000000000000001
0 223 0001000000000010100010111100111111000000000000000000000000000001
0 222 0001000000000010100010111100111111000000000000000000000000000001
0 221 0001000000000010100010111100111111000000000000000000000000000001
0 220 0001000000000010100010111100111111000000000000000000000000000001
0 219 0001000000000010100010111100111111000000000000000000000000000001
0 218 0001000000000010100010111100111111000000000000000000000000000001
0 217 0001000000000010100010111100111111000000000000000000000000000001
0 216 0001000000000010100010111100111111000000000000000000000000000001
0 207 0001000000000010100010111100111111000000000000000000000000000001
0 206 0001000000000010100010111100111111000000000000000000000000000001
0 205 0001000000000010100010111100111111000000000000000000000000000001
0 204 0001000000000010100010111100111111000000000000000000000000000001
0 203 0001000000000010100010111100111111000000000000000000000000000001
0 202 0001000000000010100010111100111111000000000000000000000000000001
0 201 0001000000000010100010111100111111000000000000000000000000000001
0 200 0001000000000010100010111100111111000000000000000000000000000001
0 159 0001000000000010100010111100111111000000000000000000000000000001
0 158 0001000000000010100010111100111111000000000000000000000000000001
0 157 0001000000000010100010111100111111000000000000000000000000000001
0 156 0001000000000010100010111100111111000000000000000000000000000001
0 155 0001000000000010100010111100111111000000000000000000000000000001
0 154 0001000000000010100010111100111111000000000000000000000000000001
0 153 0001000000000010100010111100111111000000000000000000000000000001
0 152 0001000000000010100010111100111111000000000000000000000000000001
0 143 0001000000000010100010111100111111000000000000000000000000000001
0 142 0001000000000010100010111100111111000000000000000000000000000001
0 141 0001000000000010100010111100111111000000000000000000000000000001
0 140 0001000000000010100010111100111111000000000000000000000000000001
0 139 0001000000000010100010111100111111000000000000000000000000000001
0 138 0001000000000010100010111100111111000000000000000000000000000001
0 137 0001000000000010100010111100111111000000000000000000000000000001
0 136 0001000000000010100010111100111111000000000000000000000000000001
0 95 0001000000000010100010111100111111000000000000000000000000000001
0 94 0001000000000010100010111100111111000000000000000000000000000001
0 93 0001000000000010100010111100111111000000000000000000000000000001
0 92 0001000000000010100010111100111111000000000000000000000000000001
0 91 0001000000000010100010111100111111000000000000000000000000000001
0 90 0001000000000010100010111100111111000000000000000000000000000001
0 89 0001000000000010100010111100111111000000000000000000000000000001
0 88 0001000000000010100010111100111111000000000000000000000000000001
0 79 0001000000000010100010111100111111000000000000000000000000000001
0 78 0001000000000010100010111100111111000000000000000000000000000001
0 77 0001000000000010100010111100111111000000000000000000000000000001
0 76 0001000000000010100010111100111111000000000000000000000000000001
0 75 0001000000000010100010111100111111000000000000000000000000000001
0 74 0001000000000010100010111100111111000000000000000000000000000001
0 73 0001000000000010100010111100111111000000000000000000000000000001
0 72 0001000000000010100010111100111111000000000000000000000000000001
0 31 0001000000000010100010111100111111000000000000000000000000000001
0 30 0001000000000010100010111100111111000000000000000000000000000001
0 29 0001000000000010100010111100111111000000000000000000000000000001
0 28 0001000000000010100010111100111111000000000000000000000000000001
0 27 0001000000000010100010111100111111000000000000000000000000000001
0 26 0001000000000010100010111100111111000000000000000000000000000001
0 25 0001000000000010100010111100111111000000000000000000000000000001
0 24 0001000000000010100010111100111111000000000000000000000000000001
0 15 0001000000000010100010111100111111000000000000000000000000000001
0 14 0001000000000010100010111100111111000000000000000000000000000001
0 13 0001000000000010100010111100111111000000000000000000000000000001
0 12 0001000000000010100010111100111111000000000000000000000000000001
0 11 0001000000000010100010111100111111000000000000000000000000000001
0 10 0001000000000010100010111100111111000000000000000000000000000001
0 9 0001000000000010100010111100111111000000000000000000000000000001
0 8 0001000000000010100010111100111111000000000000000000000000000001

View file

@ -0,0 +1,3 @@
# is external? | path | data
0 272 0001000000000001110111100100010000000000000000000000000000000001 # origin: (11111-01011) --> dest: (01110-11110,00110-01110)
0 863 0001000000000010100010111100111111000000000000000000000000000001 # origin: (01100-00000) --> dest: (10100-01011,00101-00000,10101-00001,11101-10111)

View file

@ -0,0 +1,173 @@
import numpy as np
NUM_PE = 1024
HEADER = "0001"
CHIP_X = "00000"
CHIP_Y = "00000"
NO_COPY = "00000"
DEF_POS = "00000"
ref_path_count = [96,64,32,0] # N,S,W,E
def get_index_path(path_x : str, path_y : str):
index_path = NUM_PE-1
for i in range(len(path_x)):
index_path -= (4**i)*(int(path_x[4-i])*2 + int(path_y[4-i]))
return index_path
def get_multicast_reference(copy_x, copy_y, recv_path, packet):
x_paths = []
y_paths = []
x_poss_paths = []
y_poss_paths = []
num_paths = 1
for bit_pos in range(len(copy_x)):
if copy_x[bit_pos] == "1" and copy_y[bit_pos] == "1":
x_poss_paths.append(["0","0","1","1"])
y_poss_paths.append(["0","1","0","1"])
num_paths *= 4
elif copy_x[bit_pos] == "1":
x_poss_paths.append(["0","1"])
y_poss_paths.append([recv_path[1][bit_pos],recv_path[1][bit_pos]])
num_paths *= 2
elif copy_y[bit_pos] == "1":
x_poss_paths.append([recv_path[0][bit_pos],recv_path[0][bit_pos]])
y_poss_paths.append(["0","1"])
num_paths *= 2
else:
x_poss_paths.append([recv_path[0][bit_pos]])
y_poss_paths.append([recv_path[1][bit_pos]])
division = num_paths
for i in range(len(x_poss_paths)):
x_poss_ind = 0
y_poss_ind = 0
division = int(division/len(x_poss_paths[i]))
for j in range(num_paths):
if i == 0:
x_paths.append(x_poss_paths[0][x_poss_ind])
y_paths.append(y_poss_paths[0][y_poss_ind])
else:
x_paths[j] += x_poss_paths[i][x_poss_ind]
y_paths[j] += y_poss_paths[i][y_poss_ind]
if ((j+1) % division) == 0:
x_poss_ind = x_poss_ind+1 if x_poss_ind+1 < len(x_poss_paths[i]) \
else 0
y_poss_ind = y_poss_ind+1 if y_poss_ind+1 < len(y_poss_paths[i]) \
else 0
print(copy_x)
print(copy_y)
reference = ""
for x_path, y_path in zip(x_paths, y_paths):
index_path = get_index_path(x_path, y_path)
reference += "0 " + str(index_path) + " "
reference += packet + "\n"
return reference
def get_origin_dest_comment(path, recv_path):
comment = " # origin: (" + path[0] + "-" + path[1] + ")"
comment += " --> dest: ("
for i in range(0, len(recv_path), 2):
comment += recv_path[i] + "-" + recv_path[i+1]
if i+2 < len(recv_path):
comment += ","
comment += ")"
return comment
def gen_ref_for_direct_msg(path, recv_path, data_packet, stimuli, reference):
if recv_path[0] == "N":
ex_chip_x = DEF_POS
ex_chip_y = int(CHIP_y,2)-1
index_path = ref_path_count[0]
ref_path_count[0] = ref_path_count[0]+1
elif recv_path[0] == "S":
ex_chip_x = DEF_POS
ex_chip_y = int(CHIP_y,2)+1
index_path = ref_path_count[1]
ref_path_count[1] = ref_path_count[1]+1
elif recv_path[0] == "W":
ex_chip_x = int(CHIP_X,2)-1
ex_chip_y = DEF_POS
index_path = ref_path_count[2]
ref_path_count[2] = ref_path_count[2]+1
else:
ex_chip_x = int(CHIP_X,2)+1
ex_chip_y = DEF_POS
index_path = ref_path_count[3]
ref_path_count[3] = ref_path_count[3]+1
packet = HEADER + ex_chip_x + ex_chip_y
packet += NO_COPY*4
# assign packet
packet += f'{data_packet:030b}'
stimuli += packet + get_origin_dest_comment(path, recv_path) + "\n"
# reference
reference += "0 " + str(index_path) + " "
reference += packet + "\n"
return data_packet, stimuli, reference
def gen_ref_for_sing_dir_multicast(path, recv_path, data_packet, stimuli, reference):
packet = HEADER + CHIP_X + CHIP_Y
packet += recv_path[0] + recv_path[1] + NO_COPY*2
# assign packet
packet += f'{data_packet:030b}'
stimuli += packet + get_origin_dest_comment(path, recv_path) + "\n"
# reference
index_path = get_index_path(recv_path[0], recv_path[1])
reference += "0 " + str(index_path) + " "
reference += packet + "\n"
return data_packet, stimuli, reference
def gen_ref_for_mult_dir_multicast(path, recv_path, data_packet, stimuli, reference):
list_copy_x = list("00000")
list_copy_y = list("00000")
for j in range(2,len(recv_path),2):
for i in range(len(recv_path[0])):
if recv_path[0][i] != recv_path[j][i]:
list_copy_x[i]= "1"
if recv_path[1][i] != recv_path[j+1][i]:
list_copy_y[i]= "1"
copy_x = ''.join(list_copy_x)
copy_y = ''.join(list_copy_y)
packet = HEADER + CHIP_X + CHIP_Y
packet += recv_path[0] + recv_path[1] + copy_x + copy_y
packet += f'{data_packet:030b}'
# assign packet
stimuli += packet + get_origin_dest_comment(path, recv_path) + "\n"
# reference
"""for i in range(int(len(recv_path)/2)):
index_path = get_index_path(recv_path[2*i],recv_path[2*i+1])
reference += "0 " + str(index_path) + " "
reference += packets[i] + "\n"
"""
reference += get_multicast_reference(copy_x, copy_y, recv_path, packet)
return data_packet, stimuli, reference
def generate_random_send_recv_paths(num_msgs):
sender_paths = []
recv_paths = []
for i in range(num_msgs):
# generate origin
x_path = f'{np.random.randint(32):05b}'
y_path = f'{np.random.randint(32):05b}'
sender_paths.append([x_path, y_path])
# decide if it is unicast or multicast
msg_type = np.random.randint(2)
if msg_type == 0: # unicast
y_path = f'{np.random.randint(32):05b}'
x_path = f'{np.random.randint(32):05b}'
recv_paths.append([x_path, y_path])
else: # multicast
num_rcv = np.random.randint(2,7)
recv_path = []
for i in range(num_rcv):
recv_path.append(f'{np.random.randint(32):05b}')
recv_path.append(f'{np.random.randint(32):05b}')
recv_paths.append(recv_path)
return sender_paths, recv_paths

View file

@ -1,2 +0,0 @@
0 1017 0001000000000000001000100001100011000000000000000000000000000001
0 1011 0001000000000000010000100001100011000000000000000000000000000001

View file

@ -1,2 +0,0 @@
# is external? | path | data
0 971 0001000000000000001000100001100011000000000000000000000000000001

View file

@ -0,0 +1,65 @@
0 959 0001000000000010100110001011110010000000000000000000000000000001
0 957 0001000000000010100110001011110010000000000000000000000000000001
0 955 0001000000000010100110001011110010000000000000000000000000000001
0 953 0001000000000010100110001011110010000000000000000000000000000001
0 951 0001000000000010100110001011110010000000000000000000000000000001
0 949 0001000000000010100110001011110010000000000000000000000000000001
0 947 0001000000000010100110001011110010000000000000000000000000000001
0 945 0001000000000010100110001011110010000000000000000000000000000001
0 927 0001000000000010100110001011110010000000000000000000000000000001
0 925 0001000000000010100110001011110010000000000000000000000000000001
0 923 0001000000000010100110001011110010000000000000000000000000000001
0 921 0001000000000010100110001011110010000000000000000000000000000001
0 919 0001000000000010100110001011110010000000000000000000000000000001
0 917 0001000000000010100110001011110010000000000000000000000000000001
0 915 0001000000000010100110001011110010000000000000000000000000000001
0 913 0001000000000010100110001011110010000000000000000000000000000001
0 703 0001000000000010100110001011110010000000000000000000000000000001
0 701 0001000000000010100110001011110010000000000000000000000000000001
0 699 0001000000000010100110001011110010000000000000000000000000000001
0 697 0001000000000010100110001011110010000000000000000000000000000001
0 695 0001000000000010100110001011110010000000000000000000000000000001
0 693 0001000000000010100110001011110010000000000000000000000000000001
0 691 0001000000000010100110001011110010000000000000000000000000000001
0 689 0001000000000010100110001011110010000000000000000000000000000001
0 671 0001000000000010100110001011110010000000000000000000000000000001
0 669 0001000000000010100110001011110010000000000000000000000000000001
0 667 0001000000000010100110001011110010000000000000000000000000000001
0 665 0001000000000010100110001011110010000000000000000000000000000001
0 663 0001000000000010100110001011110010000000000000000000000000000001
0 661 0001000000000010100110001011110010000000000000000000000000000001
0 659 0001000000000010100110001011110010000000000000000000000000000001
0 657 0001000000000010100110001011110010000000000000000000000000000001
0 447 0001000000000010100110001011110010000000000000000000000000000001
0 445 0001000000000010100110001011110010000000000000000000000000000001
0 443 0001000000000010100110001011110010000000000000000000000000000001
0 441 0001000000000010100110001011110010000000000000000000000000000001
0 439 0001000000000010100110001011110010000000000000000000000000000001
0 437 0001000000000010100110001011110010000000000000000000000000000001
0 435 0001000000000010100110001011110010000000000000000000000000000001
0 433 0001000000000010100110001011110010000000000000000000000000000001
0 415 0001000000000010100110001011110010000000000000000000000000000001
0 413 0001000000000010100110001011110010000000000000000000000000000001
0 411 0001000000000010100110001011110010000000000000000000000000000001
0 409 0001000000000010100110001011110010000000000000000000000000000001
0 407 0001000000000010100110001011110010000000000000000000000000000001
0 405 0001000000000010100110001011110010000000000000000000000000000001
0 403 0001000000000010100110001011110010000000000000000000000000000001
0 401 0001000000000010100110001011110010000000000000000000000000000001
0 191 0001000000000010100110001011110010000000000000000000000000000001
0 189 0001000000000010100110001011110010000000000000000000000000000001
0 187 0001000000000010100110001011110010000000000000000000000000000001
0 185 0001000000000010100110001011110010000000000000000000000000000001
0 183 0001000000000010100110001011110010000000000000000000000000000001
0 181 0001000000000010100110001011110010000000000000000000000000000001
0 179 0001000000000010100110001011110010000000000000000000000000000001
0 177 0001000000000010100110001011110010000000000000000000000000000001
0 159 0001000000000010100110001011110010000000000000000000000000000001
0 157 0001000000000010100110001011110010000000000000000000000000000001
0 155 0001000000000010100110001011110010000000000000000000000000000001
0 153 0001000000000010100110001011110010000000000000000000000000000001
0 151 0001000000000010100110001011110010000000000000000000000000000001
0 149 0001000000000010100110001011110010000000000000000000000000000001
0 147 0001000000000010100110001011110010000000000000000000000000000001
0 145 0001000000000010100110001011110010000000000000000000000000000001
0 221 0001000000000010101100000000000000000000000000000000000000000001

View file

@ -0,0 +1,65 @@
0 221 0001000000000010101100000000000000000000000000000000000000000001
0 145 0001000000000010100110001011110010000000000000000000000000000001
0 147 0001000000000010100110001011110010000000000000000000000000000001
0 149 0001000000000010100110001011110010000000000000000000000000000001
0 151 0001000000000010100110001011110010000000000000000000000000000001
0 153 0001000000000010100110001011110010000000000000000000000000000001
0 155 0001000000000010100110001011110010000000000000000000000000000001
0 157 0001000000000010100110001011110010000000000000000000000000000001
0 159 0001000000000010100110001011110010000000000000000000000000000001
0 177 0001000000000010100110001011110010000000000000000000000000000001
0 179 0001000000000010100110001011110010000000000000000000000000000001
0 181 0001000000000010100110001011110010000000000000000000000000000001
0 183 0001000000000010100110001011110010000000000000000000000000000001
0 185 0001000000000010100110001011110010000000000000000000000000000001
0 187 0001000000000010100110001011110010000000000000000000000000000001
0 189 0001000000000010100110001011110010000000000000000000000000000001
0 191 0001000000000010100110001011110010000000000000000000000000000001
0 401 0001000000000010100110001011110010000000000000000000000000000001
0 403 0001000000000010100110001011110010000000000000000000000000000001
0 405 0001000000000010100110001011110010000000000000000000000000000001
0 407 0001000000000010100110001011110010000000000000000000000000000001
0 409 0001000000000010100110001011110010000000000000000000000000000001
0 411 0001000000000010100110001011110010000000000000000000000000000001
0 413 0001000000000010100110001011110010000000000000000000000000000001
0 415 0001000000000010100110001011110010000000000000000000000000000001
0 433 0001000000000010100110001011110010000000000000000000000000000001
0 435 0001000000000010100110001011110010000000000000000000000000000001
0 437 0001000000000010100110001011110010000000000000000000000000000001
0 439 0001000000000010100110001011110010000000000000000000000000000001
0 441 0001000000000010100110001011110010000000000000000000000000000001
0 443 0001000000000010100110001011110010000000000000000000000000000001
0 445 0001000000000010100110001011110010000000000000000000000000000001
0 447 0001000000000010100110001011110010000000000000000000000000000001
0 657 0001000000000010100110001011110010000000000000000000000000000001
0 659 0001000000000010100110001011110010000000000000000000000000000001
0 661 0001000000000010100110001011110010000000000000000000000000000001
0 663 0001000000000010100110001011110010000000000000000000000000000001
0 665 0001000000000010100110001011110010000000000000000000000000000001
0 667 0001000000000010100110001011110010000000000000000000000000000001
0 669 0001000000000010100110001011110010000000000000000000000000000001
0 671 0001000000000010100110001011110010000000000000000000000000000001
0 689 0001000000000010100110001011110010000000000000000000000000000001
0 691 0001000000000010100110001011110010000000000000000000000000000001
0 693 0001000000000010100110001011110010000000000000000000000000000001
0 695 0001000000000010100110001011110010000000000000000000000000000001
0 697 0001000000000010100110001011110010000000000000000000000000000001
0 699 0001000000000010100110001011110010000000000000000000000000000001
0 701 0001000000000010100110001011110010000000000000000000000000000001
0 703 0001000000000010100110001011110010000000000000000000000000000001
0 913 0001000000000010100110001011110010000000000000000000000000000001
0 915 0001000000000010100110001011110010000000000000000000000000000001
0 917 0001000000000010100110001011110010000000000000000000000000000001
0 919 0001000000000010100110001011110010000000000000000000000000000001
0 921 0001000000000010100110001011110010000000000000000000000000000001
0 923 0001000000000010100110001011110010000000000000000000000000000001
0 925 0001000000000010100110001011110010000000000000000000000000000001
0 927 0001000000000010100110001011110010000000000000000000000000000001
0 945 0001000000000010100110001011110010000000000000000000000000000001
0 947 0001000000000010100110001011110010000000000000000000000000000001
0 949 0001000000000010100110001011110010000000000000000000000000000001
0 951 0001000000000010100110001011110010000000000000000000000000000001
0 953 0001000000000010100110001011110010000000000000000000000000000001
0 955 0001000000000010100110001011110010000000000000000000000000000001
0 957 0001000000000010100110001011110010000000000000000000000000000001
0 959 0001000000000010100110001011110010000000000000000000000000000001

View file

@ -0,0 +1,130 @@
0 221 0001000000000010101100000000000000000000000000000000000000000001
---> passed!
0 145 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 147 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 149 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 151 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 153 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 155 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 157 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 159 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 177 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 179 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 181 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 183 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 185 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 187 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 189 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 191 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 401 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 403 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 405 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 407 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 409 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 411 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 413 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 415 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 433 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 435 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 437 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 439 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 441 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 443 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 445 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 447 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 657 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 659 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 661 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 663 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 665 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 667 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 669 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 671 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 689 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 691 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 693 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 695 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 697 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 699 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 701 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 703 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 913 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 915 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 917 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 919 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 921 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 923 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 925 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 927 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 945 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 947 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 949 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 951 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 953 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 955 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 957 0001000000000010100110001011110010000000000000000000000000000001
---> passed!
0 959 0001000000000010100110001011110010000000000000000000000000000001
---> passed!

View file

@ -0,0 +1,34 @@
import shutil, sys
test_name = ""
if len(sys.argv) > 1:
test_name = sys.argv[1]
if test_name != "":
shutil.copyfile("../../input/noc_tests/"+test_name+"/result.ref", "result.ref")
shutil.copyfile("/home/juanmanuel/modelsim/simulation.log", "simulation.log")
shutil.copyfile("/home/juanmanuel/modelsim/simulation.log", "../../input/noc_tests/"+test_name+"/simulation.log")
reference = []
with open("result.ref", "r") as f:
for line in f:
reference.append(line)
results = []
with open("simulation.log", "r") as f:
for line in f:
results.append(line)
test_logs = []
for result in results:
if result in reference:
test_logs.append(result + "---> passed!")
else:
test_logs.append(result + "---> failed!")
with open("test.log", "w") as f:
for test_log in test_logs:
f.write(test_log+"\n")
if test_name != "":
shutil.copyfile("test.log", "../../input/noc_tests/"+test_name+"/test.log")