diff --git a/src/main/java/de/neemann/digital/builder/ATF150x/ATFDevice.java b/src/main/java/de/neemann/digital/builder/ATF150x/ATFDevice.java index 089d66d51..34e2f2213 100644 --- a/src/main/java/de/neemann/digital/builder/ATF150x/ATFDevice.java +++ b/src/main/java/de/neemann/digital/builder/ATF150x/ATFDevice.java @@ -36,6 +36,21 @@ public enum ATFDevice { 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 25, 27, 28, 30, 31, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44), + ATF1504PLCC84(1504, 83, "plcc84", new PL() + .pi(1, 84) + .e(14, 23, 62, 71) //JTAG + .e(7, 19, 32, 42, 47, 59, 72, 82)//GND + .e(3, 43)//V_CCINT + .e(13, 26, 38, 53, 66, 78)//V_CCIO + .pins()), + ATF1504TQFP100(1504, 43, "t100", "tqfp100", new PL(). + pi(1, 100) + .e(4, 15, 62, 73) //JTAG + .e(11, 26, 38, 43, 59, 74, 86, 95)//GND + .e(39, 91)//V_CCINT + .e(3, 18, 34, 51, 66, 82)//V_CCIO + .e(1, 2, 5, 7, 22, 24, 27, 28, 49, 50, 53, 55, 70, 72, 77, 78) //NC + .pins()), ATF1508PLCC84(1508, 81, "plcc84", 4, 5, 6, 8, 9, 10, 11, 12, // A 15, 16, 17, 18, 20, 21, 22, 24, // B @@ -44,7 +59,35 @@ public enum ATFDevice { 46, 48, 49, 50, 51, 52, 54, 55, // E 56, 57, 58, 60, 61, 63, 64, 65, // F 67, 68, 69, 70, 73, 74, 75, 76, // G - 77, 79, 80); // H + 77, 79, 80), // H + ATF1508PQFP100(1508, 43, "q100", "pqfp100", new PL(). + pi(1, 100) + .e(6, 17, 64, 75)//JTAG + .e(13, 28, 40, 45, 61, 76, 88, 97) // GND + .e(41, 93)//V_CCINT + .e(5, 20, 36, 53, 68, 84)//V_CCIO + .pins()), + ATF1508TQFP100(1508, 43, "t100", "tqfp100", new PL(). + pi(1, 100) + .e(4, 15, 62, 73)//JTAG + .e(11, 26, 38, 43, 59, 74, 86, 95) // GND + .e(39, 91)//V_CCINT + .e(3, 18, 34, 51, 66, 82)//V_CCIO + .pins()), + ATF1508PQFP160(1508, 43, "q160", "pqfp160", new PL(). + pi(1, 160) + .e(9, 22, 99, 112) //JTAG + .e(17, 42, 60, 66, 95, 113, 138, 148) // GND + .e(61, 143) //V_CCINT + .e(8, 26, 55, 79, 104, 133) //V_CCIO + .e(1, 2, 3, 4, 5, 6, 7, 34, 35, 36, + 37, 38, 39, 40, 44, 45, 46, + 47, 74, 75, 76, 77, 81, 82, + 83, 84, 85, 86, 87, 114, + 115, 116, 117, 118, 119, + 120, 124, 125, 126, 127, + 154, 155, 156, 157) // NC + .pins()); //CHECKSTYLE.ON: JavadocVariable private final int deviceNumber; diff --git a/src/main/java/de/neemann/digital/builder/ATF150x/PL.java b/src/main/java/de/neemann/digital/builder/ATF150x/PL.java new file mode 100644 index 000000000..8e62d5d8b --- /dev/null +++ b/src/main/java/de/neemann/digital/builder/ATF150x/PL.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2021 Helmut Neemann. + * Use of this source code is governed by the GPL v3 license + * that can be found in the LICENSE file. + */ +package de.neemann.digital.builder.ATF150x; + +import java.util.ArrayList; + +public class PL { + + private final ArrayList pinList; + + public PL() { + pinList = new ArrayList<>(); + } + + public PL p(int... p) { + for (int j : p) pinList.add(j); + return this; + } + + public PL e(int... p) { + for (int j : p) pinList.remove((Object) j); + return this; + } + + public PL pi(int a, int b) { + for (int i = a; i <= b; i++) + pinList.add(i); + return this; + } + + public int[] pins() { + int[] pins = new int[pinList.size()]; + for (int i = 0; i < pinList.size(); i++) + pins[i] = pinList.get(i); + return pins; + } +}