Add CPLD firmware

This commit is contained in:
SukkoPera 2019-05-19 13:51:16 +02:00
parent 1c7bed805a
commit eab3dc9978
8 changed files with 8378 additions and 0 deletions

3668
firmware/4mb/4mb.svf Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,340 @@
 Version 4.45
JEDEC file for: ATF1502 PLCC44
Created on: Fri Jan 25 16:46:47 2008
*
QF16808* QP44 * F0*
NOTE
0 0 0 0 0 *
L192
1111111111111111
1111111111111111111111111111111111011111
1111111111111111111111110111111111111111* NOTE PT 3 of MC 1(LAB A) *
L288
1111111111111111
1111111111111111111111111111111111101111
1111111111111111011111111111111111111111* NOTE PT 2 of MC 1(LAB A) *
L576
1111111111111111
1111111111111111111111111111111111101111
1111111111111111111111111110111111111111* NOTE PT 2 of MC 2(LAB A) *
L672
1111111111111111
1111111111111111111111111111111111011111
1111111111111111111111101111111111111111* NOTE PT 3 of MC 2(LAB A) *
L960
1111111111111111
1111111111111111111111111111111111111111
1110111111111111111111111111111111111111* NOTE PT 5 of MC 3(LAB A) *
L1056
1111111111111111
1111111111111111111111111111111111111111
1111011101111111111111111111111111111111* NOTE PT 4 of MC 3(LAB A) *
L1152
1111111111111111
1111111111111111111111111111111111111111
1111011111111111111111110111111111111111* NOTE PT 3 of MC 3(LAB A) *
L1248
1111111111111111
1111111111111111111111111111111111111111
1111101110111111111111101011111111111111* NOTE PT 2 of MC 3(LAB A) *
L1344
1111111111111111
1111111111111111111111111111111111111111
1111111111110111111111111111111111111111* NOTE PT 1 of MC 3(LAB A) *
L1536
1111111111111111
1101111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 2 of MC 4(LAB A) *
L2208
1111111111111111
1111111111111111111111111111111111111111
1101011110111011111111111011111111111111* NOTE PT 2 of MC 5(LAB A) *
L2496
1111111111111111
1111111111111111111111111111111111111111
1101011110111011111111111011111111111111* NOTE PT 2 of MC 6(LAB A) *
L2592
1111111111111111
1111111111111111111111111111111111111111
1101101110110111111111011011111111111111* NOTE PT 3 of MC 6(LAB A) *
L2976
1111111111111111
1111111111111111111111111111111111111111
1101011110111011111111111011111111111111* NOTE PT 4 of MC 7(LAB A) *
L3072
1111111111111111
1111111111111111111111111111111111111111
1101111110111011111111101011111111111111* NOTE PT 3 of MC 7(LAB A) *
L3168
1111111111111111
1111111111111111111111111111111111111111
1101101110110111111111011011111111111111* NOTE PT 2 of MC 7(LAB A) *
L3456
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 2 of MC 8(LAB A) *
L4032
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 3 of MC 9(LAB A) *
L4128
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 2 of MC 9(LAB A) *
L4416
1111111111111111
1111111111111111111111101111111111111111
1111111111111111111111111111111111111111* NOTE PT 2 of MC 10(LAB A) *
L4512
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 3 of MC 10(LAB A) *
L5088
1111111111111111
1101111111111111111111111111111111111111
1111111111111111111101111111111111110111* NOTE PT 2 of MC 11(LAB A) *
L5376
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 2 of MC 12(LAB A) *
L5472
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 3 of MC 12(LAB A) *
L5568
1111111111111111
1111111111110111111101111111111111111111
0111111111111111111111111111111111111011* NOTE PT 4 of MC 12(LAB A) *
L6048
1111111111111111
1101111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 2 of MC 13(LAB A) *
L6336
1111111111111111
1111011111011110111111111111111111111111
1111110111011101011111111101111011101111* NOTE PT 2 of MC 14(LAB A) *
L6816
1111111111111111
1111111111111111111111111111111111110111
1111111111111111111111111111111111111111* NOTE PT 4 of MC 15(LAB A) *
L7008
1111111111111111
1111011111011111111111111111111111111111
1101010110010101011111111101111011101111* NOTE PT 2 of MC 15(LAB A) *
L7296
1111111111111111
1111111111111001111111111111111111111111
0111111111111111111111111111111111111011* NOTE PT 2 of MC 16(LAB A) *
L7392
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 3 of MC 16(LAB A) *
L7488
1111111111111111
1111111111111101111110111111111111111111
0111111111111111111111111111111111111011* NOTE PT 4 of MC 16(LAB A) *
L7776
1111111111111111
1110111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 4 of MC 17(LAB B) *
L7872
1111111111111111
1111101111111111111110111111011111111111
1111111111111111111111111111111011011111* NOTE PT 3 of MC 17(LAB B) *
L7968
1111111111111111
1111101111111111111110111111011111111111
1111111111111111111111111111110111101111* NOTE PT 2 of MC 17(LAB B) *
L8256
1111111111111111
1111101111111111111111101111111111111111
1111111111111111111111111111111011011111* NOTE PT 2 of MC 18(LAB B) *
L8352
1111111111111111
0110111111111111111111111111111011111111
1111111111111111111101111111111111111111* NOTE PT 3 of MC 18(LAB B) *
L8736
1111111111111111
1110111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 4 of MC 19(LAB B) *
L8832
1111111111111111
1111101111111011111111111111011111111111
1111111111111111111111111111111011011111* NOTE PT 3 of MC 19(LAB B) *
L8928
1111111111111111
1111101111111011111111111111011111111111
1111111111111111111111111111110111101111* NOTE PT 2 of MC 19(LAB B) *
L9792
1111111111111111
0110111111111111111111111111111011111111
1111111111111111111110111111111111111111* NOTE PT 3 of MC 21(LAB B) *
L9888
1111111111111111
1111101111111111111111101111111111111111
1111111111111111111111111111110111101111* NOTE PT 2 of MC 21(LAB B) *
L10176
1111111111111111
0110111111111111111111111111110111111111
1111111111111111111101111111111111111111* NOTE PT 2 of MC 22(LAB B) *
L10848
1111111111111111
0110111111111111111111111111110111111111
1111111111111111111110111111111111111111* NOTE PT 2 of MC 23(LAB B) *
L12096
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 2 of MC 26(LAB B) *
L12192
1111111111111111
1111111111111111111111011111111111111111
1111111111111111111111111111111111111111* NOTE PT 3 of MC 26(LAB B) *
NOTE macrocell configurations
0 0 0 0 *
L15360 1111111111111111*
L15376 10111101110110011000011110000110* NOTE S16,S12 of block A *
L15408 00000000011001000000000000000000* NOTE S14,S11 of block A *
L15440 1111111111111111*
L15456 10011001100110011001100110001001* NOTE S9 ,S6 of block A *
L15488 00000010000000000000010000000110* NOTE S13,S10 of block A *
L15520 1111111111111111*
L15536 00000100000000000010011000100110* NOTE S20,S18 of block A *
L15568 00000000000000000000000000000000* NOTE S8 ,S21 of block A *
L15600 1111111111111111*
L15616 11001100110011111111111100111111* NOTE S7 ,S19 of block A *
L15648 11111100111111000000000000100100* NOTE S22,S5 of block A *
L15680 1111111111111111*
L15696 11111111111111111111111111111111* NOTE S23,S4 of block A *
L15728 11111110111111100110011001110010* NOTE S3 ,S15 of block A *
L15760 1111111111111111*
L15776 00000000000000000011111100111111* NOTE S0 ,S1 of block A *
L15808 11111001100110011001100110011001* NOTE S17 ,S2 of block A *
L15840 1111111111111111*
L15856 11111111111110111111111011000100* NOTE S16,S12 of block B *
L15888 01100100011001000000000000000000* NOTE S14,S11 of block B *
L15920 1111111111111111*
L15936 10011001100110011001100110011001* NOTE S9 ,S6 of block B *
L15968 00000001000000011000100110011001* NOTE S13,S10 of block B *
L16000 1111111111111111*
L16016 00000000000000000010011000100110* NOTE S20,S18 of block B *
L16048 00000011000000111100111111111111* NOTE S8 ,S21 of block B *
L16080 1111111111111111*
L16096 11111111111100111111111111111111* NOTE S7 ,S19 of block B *
L16128 11111110111111100101011001100110* NOTE S22,S5 of block B *
L16160 1111111111111111*
L16176 11111111111111111111111111111111* NOTE S23,S4 of block B *
L16208 11111110111111100110011001100110* NOTE S3 ,S15 of block B *
L16240 1111111111111111*
L16256 00000000000011000011111100111111* NOTE S0 ,S1 of block B *
L16288 11111101111111011011100110011001* NOTE S17 ,S2 of block B *
NOTE UIM for block A and B*
NOTE 0 0 0*
L16320 10111* NOTE Mux-39 of block A*
L16325 10111* NOTE Mux-39 of block B*
L16330 11110* NOTE Mux-38 of block A*
L16335 11111* NOTE Mux-38 of block B*
L16340 01111* NOTE Mux-37 of block A*
L16345 01111* NOTE Mux-37 of block B*
L16350 11111* NOTE Mux-36 of block A*
L16355 11111* NOTE Mux-36 of block B*
L16360 01111* NOTE Mux-35 of block A*
L16365 01111* NOTE Mux-35 of block B*
L16370 11111* NOTE Mux-34 of block A*
L16375 11111* NOTE Mux-34 of block B*
L16380 01111* NOTE Mux-33 of block A*
L16385 11111* NOTE Mux-33 of block B*
L16390 11101* NOTE Mux-32 of block A*
L16395 11111* NOTE Mux-32 of block B*
L16400 11011* NOTE Mux-31 of block A*
L16405 11111* NOTE Mux-31 of block B*
L16410 10111* NOTE Mux-30 of block A*
L16415 10111* NOTE Mux-30 of block B*
L16420 10111* NOTE Mux-29 of block A*
L16425 10111* NOTE Mux-29 of block B*
L16430 01111* NOTE Mux-28 of block A*
L16435 11111* NOTE Mux-28 of block B*
L16440 01111* NOTE Mux-27 of block A*
L16445 11111* NOTE Mux-27 of block B*
L16450 11011* NOTE Mux-26 of block A*
L16455 11111* NOTE Mux-26 of block B*
L16460 01111* NOTE Mux-25 of block A*
L16465 11111* NOTE Mux-25 of block B*
L16470 11011* NOTE Mux-24 of block A*
L16475 11111* NOTE Mux-24 of block B*
L16480 01111* NOTE Mux-23 of block A*
L16485 11111* NOTE Mux-23 of block B*
L16490 11101* NOTE Mux-22 of block A*
L16495 11111* NOTE Mux-22 of block B*
L16500 11011* NOTE Mux-21 of block A*
L16505 11111* NOTE Mux-21 of block B*
L16510 10111* NOTE Mux-20 of block A*
L16515 11111* NOTE Mux-20 of block B*
L16520 10111* NOTE Mux-19 of block A*
L16525 10111* NOTE Mux-19 of block B*
L16530 11011* NOTE Mux-18 of block A*
L16535 11111* NOTE Mux-18 of block B*
L16540 10111* NOTE Mux-17 of block A*
L16545 11111* NOTE Mux-17 of block B*
L16550 11111* NOTE Mux-16 of block A*
L16555 11111* NOTE Mux-16 of block B*
L16560 11111* NOTE Mux-15 of block A*
L16565 11011* NOTE Mux-15 of block B*
L16570 11111* NOTE Mux-14 of block A*
L16575 11101* NOTE Mux-14 of block B*
L16580 11111* NOTE Mux-13 of block A*
L16585 11111* NOTE Mux-13 of block B*
L16590 11111* NOTE Mux-12 of block A*
L16595 11111* NOTE Mux-12 of block B*
L16600 11110* NOTE Mux-11 of block A*
L16605 11110* NOTE Mux-11 of block B*
L16610 11110* NOTE Mux-10 of block A*
L16615 11110* NOTE Mux-10 of block B*
L16620 10111* NOTE Mux-9 of block A*
L16625 10111* NOTE Mux-9 of block B*
L16630 11111* NOTE Mux-8 of block A*
L16635 11111* NOTE Mux-8 of block B*
L16640 11011* NOTE Mux-7 of block A*
L16645 11111* NOTE Mux-7 of block B*
L16650 01111* NOTE Mux-6 of block A*
L16655 01111* NOTE Mux-6 of block B*
L16660 11011* NOTE Mux-5 of block A*
L16665 11111* NOTE Mux-5 of block B*
L16670 11111* NOTE Mux-4 of block A*
L16675 11111* NOTE Mux-4 of block B*
L16680 11111* NOTE Mux-3 of block A*
L16685 11111* NOTE Mux-3 of block B*
L16690 11011* NOTE Mux-2 of block A*
L16695 11011* NOTE Mux-2 of block B*
L16700 11110* NOTE Mux-1 of block A*
L16705 11110* NOTE Mux-1 of block B*
L16710 11111* NOTE Mux-0 of block A*
L16715 11110* NOTE Mux-0 of block B*
NOTE 6 global OE
0 0 0*
L16720 11101* NOTE GOE5*
L16725 11101* NOTE GOE4*
L16730 11110* NOTE GOE3*
L16735 11110* NOTE GOE2*
L16740 11101* NOTE GOE1*
L16745 11110* NOTE GOE0*
*
NOTE device configuration bits*
NOTE 0 0 0 0*
L16750 01110000010011111011000111111111*
NOTE Special Purpose Bits (JTAG) *
L16782 1111*
NOTE UES bits*
L16786 1111111111111111*
NOTE Reserved bits *
L16802 000000*
C9221*
0000

Binary file not shown.

3668
firmware/8mb/8mb.svf Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,360 @@
 Version 4.45
JEDEC file for: ATF1502 PLCC44
Created on: Sat Jan 05 22:53:52 2008
*
QF16808* QP44 * F0*
NOTE
0 0 0 0 0 *
L192
1111111111111111
1111111111111111111111111111111111011111
1111111111111111111111110111111111111111* NOTE PT 3 of MC 1(LAB A) *
L288
1111111111111111
1111111111111111111111111111111111101111
1111111111111111011111111111111111111111* NOTE PT 2 of MC 1(LAB A) *
L576
1111111111111111
1111111111111111111111111111111111101111
1111111111111111111111111110111111111111* NOTE PT 2 of MC 2(LAB A) *
L672
1111111111111111
1111111111111111111111111111111111011111
1111111111111111111111101111111111111111* NOTE PT 3 of MC 2(LAB A) *
L960
1111111111111111
1111111111111111111111111111111111111111
1110111111111111111111111111111111111111* NOTE PT 5 of MC 3(LAB A) *
L1056
1111111111111111
1111111111111111111111111111111111111111
1111111111110111111111111111111111111111* NOTE PT 4 of MC 3(LAB A) *
L1152
1111111111111111
1111111111111111111111111111111111111111
1111011101111111111111111111111111111111* NOTE PT 3 of MC 3(LAB A) *
L1248
1111111111111111
1111111111111111111111111111111111111111
1111011111111111111111110111111111111111* NOTE PT 2 of MC 3(LAB A) *
L1536
1111111111111111
1101111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 2 of MC 4(LAB A) *
L2112
1111111111111111
1111111111111111111111111111111111111111
1101011110111011111111111011111111111111* NOTE PT 3 of MC 5(LAB A) *
L2208
1111111111111111
1111111111111111111111111111111111111111
1101111110111011111111101011111111111111* NOTE PT 2 of MC 5(LAB A) *
L2496
1111111111111111
1111111111111111111111111111111111111111
1101111110111011111111101011111111111111* NOTE PT 2 of MC 6(LAB A) *
L2592
1111111111111111
1111111111111111111111111111111111111111
1101011110111011111111111011111111111111* NOTE PT 3 of MC 6(LAB A) *
L2688
1111111111111111
1111111111111111111111111111111111111111
1101101110110111111111011011111111111111* NOTE PT 4 of MC 6(LAB A) *
L2976
1111111111111111
1111111111111111111111111111111111111111
1101101110110111111111011011111111111111* NOTE PT 4 of MC 7(LAB A) *
L3072
1111111111111111
1111111111111111111111111111111111111111
1101011110111011111111111011111111111111* NOTE PT 3 of MC 7(LAB A) *
L3168
1111111111111111
1111111111111111111111111111111111111111
1101111110111011111111101011111111111111* NOTE PT 2 of MC 7(LAB A) *
L3456
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 2 of MC 8(LAB A) *
L4032
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 3 of MC 9(LAB A) *
L4128
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 2 of MC 9(LAB A) *
L4416
1111111111111111
1111111111111111111111101111111111111111
1111111111111111111111111111111111111111* NOTE PT 2 of MC 10(LAB A) *
L4512
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 3 of MC 10(LAB A) *
L5088
1111111111111111
1101111111111111111111111111111111111111
1111111111111111111101111111111111110111* NOTE PT 2 of MC 11(LAB A) *
L5376
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 2 of MC 12(LAB A) *
L5472
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 3 of MC 12(LAB A) *
L5568
1111111111111111
1111111111110111111101111111111111111111
0111111111111111111111111111111111111011* NOTE PT 4 of MC 12(LAB A) *
L6048
1111111111111111
1101111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 2 of MC 13(LAB A) *
L6336
1111111111111111
1111011111011110111111111111111111111111
1111110111011101011111111101111011101111* NOTE PT 2 of MC 14(LAB A) *
L6816
1111111111111111
1111111111111111111111111111111111110111
1111111111111111111111111111111111111111* NOTE PT 4 of MC 15(LAB A) *
L7008
1111111111111111
1111011111011111111111111111111111111111
1101010110010101011111111101111011101111* NOTE PT 2 of MC 15(LAB A) *
L7296
1111111111111111
1111111111111001111111111111111111111111
0111111111111111111111111111111111111011* NOTE PT 2 of MC 16(LAB A) *
L7392
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111110111* NOTE PT 3 of MC 16(LAB A) *
L7488
1111111111111111
1111111111111101111110111111111111111111
0111111111111111111111111111111111111011* NOTE PT 4 of MC 16(LAB A) *
L7680
1111111111111111
1110111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 5 of MC 17(LAB B) *
L7776
1111111111111111
1111101111111111111110111111011111111111
1111111111111111111111111111111111101111* NOTE PT 4 of MC 17(LAB B) *
L7872
1111111111111111
1111101111111111111110111111011111111111
1111111111111111111111111111111011111111* NOTE PT 3 of MC 17(LAB B) *
L7968
1111111111111111
1111011111111111111110111111011111111111
1111111111111111111111111111110111011111* NOTE PT 2 of MC 17(LAB B) *
L8256
1111111111111111
1111011111111111111111101111111111111111
1111111111111111111111111111110111011111* NOTE PT 2 of MC 18(LAB B) *
L8352
1111111111111111
0110111111111111111111111111111011111111
1111111111111111111101111111111111111111* NOTE PT 3 of MC 18(LAB B) *
L8640
1111111111111111
1110111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 5 of MC 19(LAB B) *
L8736
1111111111111111
1111101111111011111111111111011111111111
1111111111111111111111111111111111101111* NOTE PT 4 of MC 19(LAB B) *
L8832
1111111111111111
1111101111111011111111111111011111111111
1111111111111111111111111111111011111111* NOTE PT 3 of MC 19(LAB B) *
L8928
1111111111111111
1111011111111011111111111111011111111111
1111111111111111111111111111110111011111* NOTE PT 2 of MC 19(LAB B) *
L9792
1111111111111111
0110111111111111111111111111111011111111
1111111111111111111110111111111111111111* NOTE PT 3 of MC 21(LAB B) *
L9888
1111111111111111
1111101111111111111111101111111111111111
1111111111111111111111111111111011101111* NOTE PT 2 of MC 21(LAB B) *
L10176
1111111111111111
1111101111111111111111101111111111111111
1111111111111111111111111111111011011111* NOTE PT 2 of MC 22(LAB B) *
L10272
1111111111111111
0110111111111111111111111111110111111111
1111111111111111111101111111111111111111* NOTE PT 3 of MC 22(LAB B) *
L10752
1111111111111111
0110111111111111111111111111110111111111
1111111111111111111110111111111111111111* NOTE PT 3 of MC 23(LAB B) *
L10848
1111111111111111
1111101111111111111111101111111111111111
1111111111111111111111111111110111101111* NOTE PT 2 of MC 23(LAB B) *
L12096
1111111111111111
1111111111111111111111111111111111111111
1111111111111111111111111111111111111111* NOTE PT 2 of MC 26(LAB B) *
L12192
1111111111111111
1111111111111111111111011111111111111111
1111111111111111111111111111111111111111* NOTE PT 3 of MC 26(LAB B) *
NOTE macrocell configurations
0 0 0 0 *
L15360 1111111111111111*
L15376 10111101110110011000001010000110* NOTE S16,S12 of block A *
L15408 00000000011001000000000000000000* NOTE S14,S11 of block A *
L15440 1111111111111111*
L15456 10011001100110011001100110011001* NOTE S9 ,S6 of block A *
L15488 00000010000000000000010000000110* NOTE S13,S10 of block A *
L15520 1111111111111111*
L15536 00000100000000000010011000100110* NOTE S20,S18 of block A *
L15568 00000000000000000000000000000000* NOTE S8 ,S21 of block A *
L15600 1111111111111111*
L15616 11001100110011111111111100111111* NOTE S7 ,S19 of block A *
L15648 11111100111111000000000000100100* NOTE S22,S5 of block A *
L15680 1111111111111111*
L15696 11111111111111111111111111111111* NOTE S23,S4 of block A *
L15728 11111110111111100110011001110010* NOTE S3 ,S15 of block A *
L15760 1111111111111111*
L15776 00000000000000000011111100111111* NOTE S0 ,S1 of block A *
L15808 11111001100110011001100110011001* NOTE S17 ,S2 of block A *
L15840 1111111111111111*
L15856 11111111111110111110011011000100* NOTE S16,S12 of block B *
L15888 01100100011001000000000000000000* NOTE S14,S11 of block B *
L15920 1111111111111111*
L15936 10011001100110011001100110011001* NOTE S9 ,S6 of block B *
L15968 00000001000000011000100110011001* NOTE S13,S10 of block B *
L16000 1111111111111111*
L16016 00000000000000000010011000100110* NOTE S20,S18 of block B *
L16048 00000011000000111100111111111111* NOTE S8 ,S21 of block B *
L16080 1111111111111111*
L16096 11111111111100111111111111111111* NOTE S7 ,S19 of block B *
L16128 11111110111111100101011001100110* NOTE S22,S5 of block B *
L16160 1111111111111111*
L16176 11111111111111111111111111111111* NOTE S23,S4 of block B *
L16208 11111110111111100110011001100110* NOTE S3 ,S15 of block B *
L16240 1111111111111111*
L16256 00000000000011000011111100111111* NOTE S0 ,S1 of block B *
L16288 11111101111111011011100110011001* NOTE S17 ,S2 of block B *
NOTE UIM for block A and B*
NOTE 0 0 0*
L16320 10111* NOTE Mux-39 of block A*
L16325 10111* NOTE Mux-39 of block B*
L16330 11110* NOTE Mux-38 of block A*
L16335 11111* NOTE Mux-38 of block B*
L16340 01111* NOTE Mux-37 of block A*
L16345 01111* NOTE Mux-37 of block B*
L16350 11111* NOTE Mux-36 of block A*
L16355 11111* NOTE Mux-36 of block B*
L16360 01111* NOTE Mux-35 of block A*
L16365 01111* NOTE Mux-35 of block B*
L16370 11111* NOTE Mux-34 of block A*
L16375 11111* NOTE Mux-34 of block B*
L16380 01111* NOTE Mux-33 of block A*
L16385 11111* NOTE Mux-33 of block B*
L16390 11101* NOTE Mux-32 of block A*
L16395 11111* NOTE Mux-32 of block B*
L16400 11011* NOTE Mux-31 of block A*
L16405 11111* NOTE Mux-31 of block B*
L16410 10111* NOTE Mux-30 of block A*
L16415 10111* NOTE Mux-30 of block B*
L16420 10111* NOTE Mux-29 of block A*
L16425 10111* NOTE Mux-29 of block B*
L16430 01111* NOTE Mux-28 of block A*
L16435 11111* NOTE Mux-28 of block B*
L16440 01111* NOTE Mux-27 of block A*
L16445 11111* NOTE Mux-27 of block B*
L16450 11011* NOTE Mux-26 of block A*
L16455 11111* NOTE Mux-26 of block B*
L16460 01111* NOTE Mux-25 of block A*
L16465 11111* NOTE Mux-25 of block B*
L16470 11011* NOTE Mux-24 of block A*
L16475 11111* NOTE Mux-24 of block B*
L16480 01111* NOTE Mux-23 of block A*
L16485 11111* NOTE Mux-23 of block B*
L16490 11101* NOTE Mux-22 of block A*
L16495 11111* NOTE Mux-22 of block B*
L16500 11011* NOTE Mux-21 of block A*
L16505 11111* NOTE Mux-21 of block B*
L16510 10111* NOTE Mux-20 of block A*
L16515 11111* NOTE Mux-20 of block B*
L16520 10111* NOTE Mux-19 of block A*
L16525 10111* NOTE Mux-19 of block B*
L16530 11011* NOTE Mux-18 of block A*
L16535 11111* NOTE Mux-18 of block B*
L16540 10111* NOTE Mux-17 of block A*
L16545 11111* NOTE Mux-17 of block B*
L16550 11111* NOTE Mux-16 of block A*
L16555 11111* NOTE Mux-16 of block B*
L16560 11111* NOTE Mux-15 of block A*
L16565 11011* NOTE Mux-15 of block B*
L16570 11111* NOTE Mux-14 of block A*
L16575 11101* NOTE Mux-14 of block B*
L16580 11111* NOTE Mux-13 of block A*
L16585 11111* NOTE Mux-13 of block B*
L16590 11111* NOTE Mux-12 of block A*
L16595 11111* NOTE Mux-12 of block B*
L16600 11110* NOTE Mux-11 of block A*
L16605 11110* NOTE Mux-11 of block B*
L16610 11110* NOTE Mux-10 of block A*
L16615 11110* NOTE Mux-10 of block B*
L16620 10111* NOTE Mux-9 of block A*
L16625 10111* NOTE Mux-9 of block B*
L16630 11111* NOTE Mux-8 of block A*
L16635 11111* NOTE Mux-8 of block B*
L16640 11011* NOTE Mux-7 of block A*
L16645 11111* NOTE Mux-7 of block B*
L16650 01111* NOTE Mux-6 of block A*
L16655 01111* NOTE Mux-6 of block B*
L16660 11011* NOTE Mux-5 of block A*
L16665 11111* NOTE Mux-5 of block B*
L16670 11111* NOTE Mux-4 of block A*
L16675 11111* NOTE Mux-4 of block B*
L16680 11111* NOTE Mux-3 of block A*
L16685 11111* NOTE Mux-3 of block B*
L16690 11011* NOTE Mux-2 of block A*
L16695 11011* NOTE Mux-2 of block B*
L16700 11110* NOTE Mux-1 of block A*
L16705 11110* NOTE Mux-1 of block B*
L16710 11111* NOTE Mux-0 of block A*
L16715 11110* NOTE Mux-0 of block B*
NOTE 6 global OE
0 0 0*
L16720 11101* NOTE GOE5*
L16725 11101* NOTE GOE4*
L16730 11110* NOTE GOE3*
L16735 11110* NOTE GOE2*
L16740 11101* NOTE GOE1*
L16745 11110* NOTE GOE0*
*
NOTE device configuration bits*
NOTE 0 0 0 0*
L16750 01110000010011111011000111111111*
NOTE Special Purpose Bits (JTAG) *
L16782 1111*
NOTE UES bits*
L16786 1111111111111111*
NOTE Reserved bits *
L16802 000000*
CCA0D*
0000

Binary file not shown.

72
firmware/README.md Normal file
View File

@ -0,0 +1,72 @@
This board uses the same firmware as the original project by lvd. It has been copied here for convenience, but it is unmodified.
The firmware was originally developed for Altera EPM7032SLC44 CPLDs, these use the .POF file. You can flash it with `quartus_pgm` and one of the cheap USB Blaster programmer clones you can find everywhere.
Atmel/Microchip makes compatible devices under the ATF1502 series, so the ATF1502AS10JC44 can be used as an alternative, which is easier to find nowadays. It can be programmed with the .JED file using the [ATDH1150USB](https://www.microchip.com/DevelopmentTools/ProductDetails/ATDH1150USB) programmer.
The bottom line is that you will only find the ATF1502AS10JC44 on the market, but you will need to use a >50€ programmer (only once!) to program it, which doesn't sound reasonable. Besides, all the tools mentioned above are Windows-only, so if you are a Linux user like me, you're pretty screwed. Luckily, there is a solution that allows flashing the Atmel chip with the cheap USB Blaster clones. I have developed and tested it under Linux, but it should also work on Windows and OS X.
## Flashing the firmware
You will need the firmware in SVF format (either `4mb.svf` or `8mb.svf`, choose according to how you assembled your board) and the [U2JTAG software](http://urjtag.sourceforge.net). Connect your USB Blaster to the IDC connector on the board and plug it into an USB port on your PC. Then run urjtag as follows:
sukko@shockwave firmware $ sudo jtag
```
UrJTAG 2018.09 #
Copyright (C) 2002, 2003 ETC s.r.o.
Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors
UrJTAG is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
There is absolutely no warranty for UrJTAG.
warning: UrJTAG may damage your hardware!
Type "quit" to exit, "help" for help.
jtag> cable UsbBlaster
Connected to libftdi driver.
```
This means that your USB Blaster was detected correctly. Now have it scan the JTAG chain:
```
jtag> detect
IR length: 10
Chain length: 1
Device Id: 00000001010100000010000000111111 (0x0150203F)
Manufacturer: Atmel (0x03F)
Part(0): ATF1502ASV (0x1502)
Stepping: A
Filename: /usr/share/urjtag/atmel/atf15xx/atf1502as
```
This means that the CPLD was found and it is ready to be programmed. If you get no output at this step, try disconnecting and reconnecting the USB Blaster or power to the board. Then start the flashing:
```
jtag> svf 8mb.svf progress stop
warning: unimplemented mode 'ABSENT' for TRST
detail: Parsing 3660/3668 ( 99%)detail:
detail: Scanned device output matched expected TDO values.
```
If you get the above output, the flashing was successful and you can start using your board. If instead you get something like:
```
jtag> svf 8mb.svf
warning: unimplemented mode 'ABSENT' for TRST
Error svf: mismatch at position 64 for TDO
in input file between line 2196 col 1 and line 2198 col 32
```
Then there was an error during the flashing, check your wiring, power and try again.
## Tinkering with the firmware
The firmware was developed with quartus 7.2, somewhat totally old and outdated, but never got any problems with it. I DO NOT recommend using quartus 6.x as I caught it generating wrong designs (in a way, nothing is working and when you swap to quartus 7.2 not touching you project, everything is working back).
If you want to move to something newer, it seems that quartus 10.x and 11.x are still supporting EPM7000S chips. Starting from quartus 12.x there's no more support for that devices.
### POF => JED
Quartus will produce a .POF file. This can be converted to a .JED file for Atmel devices through [Microchip's POF2JED utility](https://www.microchip.com/design-centers/programmable-logic/spld-cpld/tools/software/pof2jed).
### JED => SVF
An SVF file can be produced using [Microchip's ATMISP tool](https://www.microchip.com/design-centers/programmable-logic/spld-cpld/tools/software/atmisp), which is Windows-only unfortunately.
*Thanks a lot to lvd for providing most of the above information and helping me come up with the Linux flashing procedure.*

270
firmware/source/a600_8mb.v Normal file
View File

@ -0,0 +1,270 @@
module a600_8mb( cpu_a21,cpu_a22,cpu_a23,
cpu_a1, cpu_a2, cpu_a3, cpu_a4, cpu_a5, cpu_a6,
cpu_a16,cpu_a17,cpu_a18,cpu_a19,cpu_a20,
cpu_d12,cpu_d13,cpu_d14,cpu_d15,
cpu_nas,cpu_nlds,cpu_nuds,cpu_clk,
cpu_nreset,
dram_nras0,dram_nras1,dram_nras2,dram_nras3, dram_nlcas,dram_nucas,
dram_ma0,dram_ma1,
mux_switch
);
input cpu_a21,cpu_a22,cpu_a23; // cpu high addresses
input cpu_a1, cpu_a2, cpu_a3, cpu_a4, cpu_a5, cpu_a6; // cpu low addresses for autoconfig
input cpu_a16,cpu_a17,cpu_a18,cpu_a19,cpu_a20; // cpu high addresses for autoconfig
inout cpu_d12,cpu_d13,cpu_d14,cpu_d15; // autoconfig data in-out
reg cpu_d12,cpu_d13,cpu_d14,cpu_d15;
input cpu_nas,cpu_nlds,cpu_nuds; // cpu bus control signals
input cpu_clk; // cpu clock
input cpu_nreset; // cpu system reset
output dram_nras0,dram_nras1,dram_nras2,dram_nras3;
reg dram_nras0,dram_nras1,dram_nras2,dram_nras3; // /RAS dram signals
output dram_nlcas,dram_nucas;
reg dram_nlcas,dram_nucas; // /CAS dram signals
output dram_ma0,dram_ma1;
reg dram_ma0,dram_ma1; // DRAM MAx addresses
output mux_switch;
reg mux_switch; // external MUX switching
reg [3:0] datout; // data out
wire [7:0] high_addr;
wire [5:0] low_addr;
reg which_ras[0:3]; // which /RAS signal to activate (based on a21-a23)
reg mem_selected;
reg rfsh_ras,rfsh_cas; // refresh /RAS, /CAS generators
reg access_ras,access_cas; // normal access /RAS, /CAS generators
reg read_cycle; // if current cycle is read cycle
reg write_cycle;
reg autoconf_on;
reg cpu_nas_z; // cpu /AS with 1 clock latency
reg [1:0] rfsh_select; // for cycling refresh over every of four chips
assign high_addr = {cpu_a23,cpu_a22,cpu_a21,cpu_a20,cpu_a19,cpu_a18,cpu_a17,cpu_a16};
assign low_addr = {cpu_a6,cpu_a5,cpu_a4,cpu_a3,cpu_a2,cpu_a1};
// chip selector decoder
always @*
begin
casex( high_addr )
8'b001xxxxx: // $200000-$3fffff
begin
{which_ras[0],which_ras[1],which_ras[2],which_ras[3]} <= 4'b1000; // /RAS0
mem_selected <= 1'b1;
end
8'b010xxxxx: // $400000-$5fffff
begin
{which_ras[0],which_ras[1],which_ras[2],which_ras[3]} <= 4'b0100; // /RAS1
mem_selected <= 1'b1;
end
// remove this two CASE sections below for 4Mb only decoding (do not remove "default:"!)
8'b011xxxxx: // $600000-$7fffff
begin
{which_ras[0],which_ras[1],which_ras[2],which_ras[3]} <= 4'b0010; // /RAS2
mem_selected <= 1'b1;
end
8'b100xxxxx: // $800000-$9fffff
begin
{which_ras[0],which_ras[1],which_ras[2],which_ras[3]} <= 4'b0001; // /RAS3
mem_selected <= 1'b1;
end
default:
begin
{which_ras[0],which_ras[1],which_ras[2],which_ras[3]} <= 4'b0000; // nothing
mem_selected <= 1'b0;
end
endcase
end
// normal cycle generator
always @(posedge cpu_clk,posedge cpu_nas)
begin
if( cpu_nas==1 )
begin // /AS=1
access_ras <= 0;
access_cas <= 0;
end
else
begin // /AS=0, positive clock
access_ras <= 1;
access_cas <= access_ras; // one clock later
end
end
// MUX switcher generator
always @(negedge cpu_clk,negedge access_ras)
begin
if( access_ras==0 )
begin // reset on no access_ras
mux_switch <= 0;
end
else
begin // set to 1 on negedge after beginning of access_ras
mux_switch <= 1;
end
end
// refresh cycle generator
always @(negedge cpu_clk)
begin
if( cpu_nas==1 ) // /AS negated
begin
rfsh_cas <= ~rfsh_cas;
end
else // /AS asserted
begin
rfsh_cas <= 0;
end
if( (rfsh_cas == 1'b0) && (cpu_nas==1) )
begin
rfsh_select <= rfsh_select + 2'b01;
end
end
always @*
begin
rfsh_ras <= rfsh_cas & cpu_clk;
end
// output signals generator
always @*
begin
dram_nras0 <= ~( ( which_ras[0] & access_ras ) | ((rfsh_select==2'b00)?rfsh_ras:1'b0) );
dram_nras1 <= ~( ( which_ras[1] & access_ras ) | ((rfsh_select==2'b01)?rfsh_ras:1'b0) );
dram_nras2 <= ~( ( which_ras[2] & access_ras ) | ((rfsh_select==2'b10)?rfsh_ras:1'b0) );
dram_nras3 <= ~( ( which_ras[3] & access_ras ) | ((rfsh_select==2'b11)?rfsh_ras:1'b0) );
dram_nlcas <= ~( ( ~cpu_nlds & access_cas & mem_selected ) | rfsh_cas );
dram_nucas <= ~( ( ~cpu_nuds & access_cas & mem_selected ) | rfsh_cas );
end
// DRAM MAx multiplexor
always @*
begin
if( mux_switch==0 )
{ dram_ma0,dram_ma1 } <= { cpu_a1,cpu_a2 };
else // mux_switch==1
{ dram_ma0,dram_ma1 } <= { cpu_a20,cpu_a19 };
end
// make clocked cpu_nas_z
always @(posedge cpu_clk)
begin
cpu_nas_z <= cpu_nas;
end
// detect if current cycle is read or write cycle
always @(posedge cpu_clk, posedge cpu_nas)
begin
if( cpu_nas==1 ) // async reset on end of /AS strobe
begin
read_cycle <= 0; // end of cycles
write_cycle <= 0;
end
else // sync beginning of cycle
begin
if( cpu_nas==0 && cpu_nas_z==1 ) // beginning of /AS strobe
begin
if( (cpu_nlds&cpu_nuds)==0 )
read_cycle <= 1;
else
write_cycle <= 1;
end
end
end
// autoconfig data forming
always @*
begin
case( low_addr )
6'b000000: // $00
datout <= 4'b1110;
6'b000001: // $02
datout <= 4'b0000; // 0111 for 4mb, 0000 for 8mb
6'b000010: // $04
datout <= 4'hE;
6'b000011: // $06
datout <= 4'hE;
6'b000100: // $08
datout <= 4'h3;
6'b000101: // $0a
datout <= 4'hF;
6'b001000: // $10
datout <= 4'hE;
6'b001001: // $12
datout <= 4'hE;
6'b001010: // $14
datout <= 4'hE;
6'b001011: // $16
datout <= 4'hE;
6'b100000: // $40
datout <= 4'b0000;
6'b100001: // $42
datout <= 4'b0000;
default:
datout <= 4'b1111;
endcase
end
// out autoconfig data
always @*
begin
if( read_cycle==1 && high_addr==8'hE8 && autoconf_on==1 )
{cpu_d15,cpu_d14,cpu_d13,cpu_d12} <= datout;
else
{cpu_d15,cpu_d14,cpu_d13,cpu_d12} <= 4'bZZZZ;
end
// autoconfig cycle on/off
always @(posedge write_cycle,negedge cpu_nreset)
begin
if( cpu_nreset==0 ) // reset - begin autoconf
autoconf_on <= 1;
else
begin
if( high_addr==8'hE8 && low_addr[5:2]==4'b1001 ) // $E80048..$E8004E
autoconf_on <= 0;
end
end
endmodule