mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-26 22:41:59 -04:00
added support for ATF1504 in PLCC44
This commit is contained in:
parent
f304de898c
commit
ffc5807e54
@ -18,7 +18,7 @@ public class ATF1502CuplExporter extends Gal16v8CuplExporter {
|
||||
* Creates a new project name
|
||||
*/
|
||||
public ATF1502CuplExporter() {
|
||||
this(System.getProperty("user.name"), new Date());
|
||||
this(System.getProperty("user.name"), new Date(), "f1502ispplcc44");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -27,8 +27,8 @@ public class ATF1502CuplExporter extends Gal16v8CuplExporter {
|
||||
* @param username user name
|
||||
* @param date date
|
||||
*/
|
||||
public ATF1502CuplExporter(String username, Date date) {
|
||||
super(username, date, "f1502ispplcc44", new PinMap()
|
||||
public ATF1502CuplExporter(String username, Date date, String type) {
|
||||
super(username, date, type, new PinMap()
|
||||
.setAvailBidirectional(4, 5, 6, 8, 9, 11, 12, 14, 16, 17,
|
||||
18, 19, 20, 21, 24, 25, 26, 27, 28,
|
||||
29, 31, 33, 34, 36, 37, 38, 39, 40));
|
||||
|
@ -0,0 +1,19 @@
|
||||
package de.neemann.digital.builder.ATF1502;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Creates a CUPL file
|
||||
*
|
||||
* @author hneemann
|
||||
*/
|
||||
public class ATF1504CuplExporter extends ATF1502CuplExporter {
|
||||
|
||||
/**
|
||||
* Creates a new project name
|
||||
*/
|
||||
public ATF1504CuplExporter() {
|
||||
super(System.getProperty("user.name"), new Date(), "f1504ispplcc44");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package de.neemann.digital.builder.ATF1502;
|
||||
|
||||
/**
|
||||
* Creates a TT2 file suitable for the ATF1502
|
||||
*
|
||||
* @author hneemann
|
||||
*/
|
||||
public class ATF1504TT2Exporter extends ATF1502TT2Exporter {
|
||||
|
||||
/**
|
||||
* Creates a new project name
|
||||
*/
|
||||
public ATF1504TT2Exporter() {
|
||||
super();
|
||||
setDevice("f1502ispplcc44");
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -11,6 +11,18 @@ import java.io.*;
|
||||
* Created by hneemann on 10.03.17.
|
||||
*/
|
||||
public class CreateCHN implements ExpressionToFileExporter.PostProcess {
|
||||
|
||||
private final String device;
|
||||
|
||||
/**
|
||||
* create a new instance
|
||||
*
|
||||
* @param device the device name used in the chn file
|
||||
*/
|
||||
public CreateCHN(String device) {
|
||||
this.device = device;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File execute(File file) throws IOException {
|
||||
File chnFile = Main.checkSuffix(file, "chn");
|
||||
@ -18,7 +30,7 @@ public class CreateCHN implements ExpressionToFileExporter.PostProcess {
|
||||
try (Writer chn = new OutputStreamWriter(new FileOutputStream(chnFile), "UTF-8")) {
|
||||
chn.write("1 4 1 0 \r\n"
|
||||
+ "\r\n"
|
||||
+ "ATF1502AS\r\n"
|
||||
+ device + "\r\n"
|
||||
+ "10\r\n"
|
||||
+ "1\r\n");
|
||||
chn.write(file.getPath());
|
||||
|
@ -15,7 +15,7 @@ import java.util.ArrayList;
|
||||
* Starts a fitter to create a JEDEC file.
|
||||
* Created by hneemann on 10.03.17.
|
||||
*/
|
||||
public class StartFitter implements ExpressionToFileExporter.PostProcess {
|
||||
public class StartATF1502Fitter implements ExpressionToFileExporter.PostProcess {
|
||||
private final JDialog parent;
|
||||
private final File fitterExe;
|
||||
|
||||
@ -24,9 +24,19 @@ public class StartFitter implements ExpressionToFileExporter.PostProcess {
|
||||
*
|
||||
* @param parent the parent dialog
|
||||
*/
|
||||
public StartFitter(JDialog parent) {
|
||||
public StartATF1502Fitter(JDialog parent) {
|
||||
this(parent, Settings.getInstance().get(Keys.SETTINGS_ATF1502_FITTER));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new instance
|
||||
*
|
||||
* @param parent the parent dialog
|
||||
* @param fitterExe fitter executable
|
||||
*/
|
||||
public StartATF1502Fitter(JDialog parent, File fitterExe) {
|
||||
this.parent = parent;
|
||||
this.fitterExe = Settings.getInstance().get(Keys.SETTINGS_ATF1502_FITTER);
|
||||
this.fitterExe = fitterExe;
|
||||
}
|
||||
|
||||
@Override
|
@ -0,0 +1,26 @@
|
||||
package de.neemann.digital.builder.tt2;
|
||||
|
||||
import de.neemann.digital.core.element.Keys;
|
||||
import de.neemann.digital.gui.Settings;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* StartATF1504Fitter start the fitter for ATF1504
|
||||
* Created by hneemann on 12.03.17.
|
||||
*/
|
||||
public class StartATF1504Fitter extends StartATF1502Fitter {
|
||||
/**
|
||||
* Creates a new intance
|
||||
*
|
||||
* @param parent the parent dialog
|
||||
*/
|
||||
public StartATF1504Fitter(JDialog parent) {
|
||||
super(parent, getATF1504(Settings.getInstance().get(Keys.SETTINGS_ATF1502_FITTER)));
|
||||
}
|
||||
|
||||
private static File getATF1504(File file) {
|
||||
return new File(file.getParentFile(), "fit1504.exe");
|
||||
}
|
||||
}
|
@ -15,9 +15,7 @@ import de.neemann.digital.analyse.expression.modify.NOr;
|
||||
import de.neemann.digital.analyse.expression.modify.TwoInputs;
|
||||
import de.neemann.digital.analyse.format.TruthTableFormatterLaTeX;
|
||||
import de.neemann.digital.analyse.quinemc.BoolTableByteArray;
|
||||
import de.neemann.digital.builder.ATF1502.ATF1502CuplExporter;
|
||||
import de.neemann.digital.builder.ATF1502.ATF1502TT2Exporter;
|
||||
import de.neemann.digital.builder.ATF1502.CreateCHN;
|
||||
import de.neemann.digital.builder.ATF1502.*;
|
||||
import de.neemann.digital.builder.*;
|
||||
import de.neemann.digital.builder.Gal16v8.Gal16v8CuplExporter;
|
||||
import de.neemann.digital.builder.Gal16v8.Gal16v8JEDECExporter;
|
||||
@ -25,7 +23,8 @@ import de.neemann.digital.builder.Gal22v10.Gal22v10CuplExporter;
|
||||
import de.neemann.digital.builder.Gal22v10.Gal22v10JEDECExporter;
|
||||
import de.neemann.digital.builder.circuit.CircuitBuilder;
|
||||
import de.neemann.digital.builder.jedec.FuseMapFillerException;
|
||||
import de.neemann.digital.builder.tt2.StartFitter;
|
||||
import de.neemann.digital.builder.tt2.StartATF1502Fitter;
|
||||
import de.neemann.digital.builder.tt2.StartATF1504Fitter;
|
||||
import de.neemann.digital.draw.elements.Circuit;
|
||||
import de.neemann.digital.draw.shapes.ShapeFactory;
|
||||
import de.neemann.digital.gui.Main;
|
||||
@ -441,12 +440,31 @@ public class TableDialog extends JDialog {
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
createHardware(
|
||||
new ExpressionToFileExporter(new ATF1502TT2Exporter())
|
||||
.addProcessingStep(new StartFitter(TableDialog.this))
|
||||
.addProcessingStep(new CreateCHN()), filename, "tt2");
|
||||
.addProcessingStep(new StartATF1502Fitter(TableDialog.this))
|
||||
.addProcessingStep(new CreateCHN("ATF1502AS")), filename, "tt2");
|
||||
}
|
||||
}.setToolTip(Lang.get("menu_table_createTT2_tt")).createJMenuItem());
|
||||
hardware.add(atf1502);
|
||||
|
||||
JMenu atf1504 = new JMenu("ATF1504");
|
||||
atf1504.add(new ToolTipAction(Lang.get("menu_table_createCUPL")) {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
createCUPL(new ATF1504CuplExporter());
|
||||
}
|
||||
}.setToolTip(Lang.get("menu_table_createCUPL_tt")).createJMenuItem());
|
||||
atf1504.add(new ToolTipAction(Lang.get("menu_table_createTT2")) {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent actionEvent) {
|
||||
createHardware(
|
||||
new ExpressionToFileExporter(new ATF1504TT2Exporter())
|
||||
.addProcessingStep(new StartATF1504Fitter(TableDialog.this))
|
||||
.addProcessingStep(new CreateCHN("ATF1504AS")), filename, "tt2");
|
||||
}
|
||||
}.setToolTip(Lang.get("menu_table_createTT2_tt")).createJMenuItem());
|
||||
hardware.add(atf1504);
|
||||
|
||||
|
||||
|
||||
createMenu.add(hardware);
|
||||
|
||||
|
@ -24,7 +24,7 @@ public class ATF1502CuplExporterTest extends TestCase {
|
||||
Expression y0s = not(y0);
|
||||
Expression y1s = or(and(not(y0), y1), and(y0, not(y1)));
|
||||
|
||||
ATF1502CuplExporter ce = new ATF1502CuplExporter("user", new Date(0));
|
||||
ATF1502CuplExporter ce = new ATF1502CuplExporter("user", new Date(0), "f1502ispplcc44");
|
||||
ce.setProjectName("test");
|
||||
ce.getBuilder()
|
||||
.addSequential("Y_0", y0s)
|
||||
|
Loading…
x
Reference in New Issue
Block a user