From 51b4ed90f44989fc5a3b46765c15b76013bf0d09 Mon Sep 17 00:00:00 2001 From: hneemann Date: Tue, 13 Apr 2021 16:22:41 +0200 Subject: [PATCH] fixes a cupl export bug, see #707 --- .../builder/ATF150x/ATF150xCuplExporter.java | 6 +++--- .../neemann/digital/builder/CleanNameBuilder.java | 11 ++++++++++- .../digital/builder/Gal16v8/CuplExporter.java | 15 ++++++++------- .../builder/Gal22v10/Gal22v10CuplExporter.java | 6 +++--- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/de/neemann/digital/builder/ATF150x/ATF150xCuplExporter.java b/src/main/java/de/neemann/digital/builder/ATF150x/ATF150xCuplExporter.java index 3905d3b17..f0f5acfa6 100644 --- a/src/main/java/de/neemann/digital/builder/ATF150x/ATF150xCuplExporter.java +++ b/src/main/java/de/neemann/digital/builder/ATF150x/ATF150xCuplExporter.java @@ -6,7 +6,6 @@ package de.neemann.digital.builder.ATF150x; import de.neemann.digital.builder.Gal16v8.CuplExporter; -import de.neemann.digital.builder.PinMap; import java.io.IOException; import java.io.Writer; @@ -38,8 +37,9 @@ public class ATF150xCuplExporter extends CuplExporter { * @param pins the bidirectional pins */ public ATF150xCuplExporter(String username, Date date, String devName, int clockPin, int[] pins) { - super(username, date, devName, new PinMap() - .setAvailBidirectional(pins)); + super(username, date, devName); + getPinMapping() + .setAvailBidirectional(pins); setClockPin(clockPin); setCreateNodes(true); } diff --git a/src/main/java/de/neemann/digital/builder/CleanNameBuilder.java b/src/main/java/de/neemann/digital/builder/CleanNameBuilder.java index 2343ad4f9..6f3cf5412 100644 --- a/src/main/java/de/neemann/digital/builder/CleanNameBuilder.java +++ b/src/main/java/de/neemann/digital/builder/CleanNameBuilder.java @@ -16,7 +16,7 @@ import java.util.HashMap; */ public class CleanNameBuilder implements BuilderInterface { - private final BuilderInterface parent; + private BuilderInterface parent; private final Filter filter; private final HashMap nameMap; @@ -93,6 +93,15 @@ public class CleanNameBuilder implements BuilderInterface { }; } + /** + * Sets the parent builder. + * + * @param parent the parents builder + */ + public void setParent(BuilderInterface parent) { + this.parent = parent; + } + /** * Filter interface */ diff --git a/src/main/java/de/neemann/digital/builder/Gal16v8/CuplExporter.java b/src/main/java/de/neemann/digital/builder/Gal16v8/CuplExporter.java index 4b8ab8043..6ad7377a3 100644 --- a/src/main/java/de/neemann/digital/builder/Gal16v8/CuplExporter.java +++ b/src/main/java/de/neemann/digital/builder/Gal16v8/CuplExporter.java @@ -34,7 +34,7 @@ public class CuplExporter implements ExpressionExporter { private final String username; private final Date date; private final BuilderCollector builder; - private final BuilderInterface cleanNameBuilder; + private final CleanNameBuilder cleanNameBuilder; private final PinMap pinMap; private final String devName; @@ -57,9 +57,10 @@ public class CuplExporter implements ExpressionExporter { * @param date date */ public CuplExporter(String username, Date date) { - this(username, date, "g16v8a", new PinMap() + this(username, date, "g16v8a"); + getPinMapping() .setAvailInputs(2, 3, 4, 5, 6, 7, 8, 9) - .setAvailOutputs(12, 13, 14, 15, 16, 17, 18, 19)); + .setAvailOutputs(12, 13, 14, 15, 16, 17, 18, 19); } /** @@ -77,15 +78,15 @@ public class CuplExporter implements ExpressionExporter { * @param username user name * @param date creation date * @param devName device name - * @param pinMap the pin map to use */ - protected CuplExporter(String username, Date date, String devName, PinMap pinMap) { + protected CuplExporter(String username, Date date, String devName) { this.username = username; this.date = date; this.devName = devName; - this.pinMap = pinMap; + cleanNameBuilder = new CleanNameBuilder(null); + this.pinMap = cleanNameBuilder.createPinMap(); builder = new CuplBuilder(pinMap); - cleanNameBuilder = new CleanNameBuilder(builder); + cleanNameBuilder.setParent(builder); } /** diff --git a/src/main/java/de/neemann/digital/builder/Gal22v10/Gal22v10CuplExporter.java b/src/main/java/de/neemann/digital/builder/Gal22v10/Gal22v10CuplExporter.java index 35b7bd3e4..d73c36c31 100644 --- a/src/main/java/de/neemann/digital/builder/Gal22v10/Gal22v10CuplExporter.java +++ b/src/main/java/de/neemann/digital/builder/Gal22v10/Gal22v10CuplExporter.java @@ -6,7 +6,6 @@ package de.neemann.digital.builder.Gal22v10; import de.neemann.digital.builder.Gal16v8.CuplExporter; -import de.neemann.digital.builder.PinMap; import java.io.IOException; import java.io.Writer; @@ -31,9 +30,10 @@ public class Gal22v10CuplExporter extends CuplExporter { * @param date date */ public Gal22v10CuplExporter(String username, Date date) { - super(username, date, "g22v10", new PinMap() + super(username, date, "g22v10"); + getPinMapping() .setAvailInputs(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13) - .setAvailOutputs(14, 15, 16, 17, 18, 19, 20, 21, 22, 23)); + .setAvailOutputs(14, 15, 16, 17, 18, 19, 20, 21, 22, 23); } @Override