fixes a cupl export bug, see #707

This commit is contained in:
hneemann 2021-04-13 16:22:41 +02:00
parent d79c5c80e9
commit 51b4ed90f4
4 changed files with 24 additions and 14 deletions

View File

@ -6,7 +6,6 @@
package de.neemann.digital.builder.ATF150x; package de.neemann.digital.builder.ATF150x;
import de.neemann.digital.builder.Gal16v8.CuplExporter; import de.neemann.digital.builder.Gal16v8.CuplExporter;
import de.neemann.digital.builder.PinMap;
import java.io.IOException; import java.io.IOException;
import java.io.Writer; import java.io.Writer;
@ -38,8 +37,9 @@ public class ATF150xCuplExporter extends CuplExporter {
* @param pins the bidirectional pins * @param pins the bidirectional pins
*/ */
public ATF150xCuplExporter(String username, Date date, String devName, int clockPin, int[] pins) { public ATF150xCuplExporter(String username, Date date, String devName, int clockPin, int[] pins) {
super(username, date, devName, new PinMap() super(username, date, devName);
.setAvailBidirectional(pins)); getPinMapping()
.setAvailBidirectional(pins);
setClockPin(clockPin); setClockPin(clockPin);
setCreateNodes(true); setCreateNodes(true);
} }

View File

@ -16,7 +16,7 @@ import java.util.HashMap;
*/ */
public class CleanNameBuilder implements BuilderInterface<CleanNameBuilder> { public class CleanNameBuilder implements BuilderInterface<CleanNameBuilder> {
private final BuilderInterface parent; private BuilderInterface parent;
private final Filter filter; private final Filter filter;
private final HashMap<String, String> nameMap; private final HashMap<String, String> nameMap;
@ -93,6 +93,15 @@ public class CleanNameBuilder implements BuilderInterface<CleanNameBuilder> {
}; };
} }
/**
* Sets the parent builder.
*
* @param parent the parents builder
*/
public void setParent(BuilderInterface parent) {
this.parent = parent;
}
/** /**
* Filter interface * Filter interface
*/ */

View File

@ -34,7 +34,7 @@ public class CuplExporter implements ExpressionExporter<CuplExporter> {
private final String username; private final String username;
private final Date date; private final Date date;
private final BuilderCollector builder; private final BuilderCollector builder;
private final BuilderInterface cleanNameBuilder; private final CleanNameBuilder cleanNameBuilder;
private final PinMap pinMap; private final PinMap pinMap;
private final String devName; private final String devName;
@ -57,9 +57,10 @@ public class CuplExporter implements ExpressionExporter<CuplExporter> {
* @param date date * @param date date
*/ */
public CuplExporter(String username, 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) .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<CuplExporter> {
* @param username user name * @param username user name
* @param date creation date * @param date creation date
* @param devName device name * @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.username = username;
this.date = date; this.date = date;
this.devName = devName; this.devName = devName;
this.pinMap = pinMap; cleanNameBuilder = new CleanNameBuilder(null);
this.pinMap = cleanNameBuilder.createPinMap();
builder = new CuplBuilder(pinMap); builder = new CuplBuilder(pinMap);
cleanNameBuilder = new CleanNameBuilder(builder); cleanNameBuilder.setParent(builder);
} }
/** /**

View File

@ -6,7 +6,6 @@
package de.neemann.digital.builder.Gal22v10; package de.neemann.digital.builder.Gal22v10;
import de.neemann.digital.builder.Gal16v8.CuplExporter; import de.neemann.digital.builder.Gal16v8.CuplExporter;
import de.neemann.digital.builder.PinMap;
import java.io.IOException; import java.io.IOException;
import java.io.Writer; import java.io.Writer;
@ -31,9 +30,10 @@ public class Gal22v10CuplExporter extends CuplExporter {
* @param date date * @param date date
*/ */
public Gal22v10CuplExporter(String username, 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) .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 @Override