From 06c9571eab87cda00d5aa8d50b9c7d543d7b86c2 Mon Sep 17 00:00:00 2001 From: Matthew Lister Date: Wed, 17 Jun 2020 10:06:56 +0100 Subject: [PATCH 1/2] added verilog exporter to current version re-implemented a slightly improved version of the verilog exporter for the current version of the master export code still a little messy and testing has been limited but operational --- src/logicsim/App.java | 17 + src/logicsim/CircuitPart.java | 6 +- src/logicsim/Gate.java | 4 - src/logicsim/HTMLHelp.java | 3 +- src/logicsim/LSFrame.java | 102 ++++- src/logicsim/LSPanel.java | 14 +- src/logicsim/LSToggleButton.java | 3 +- src/logicsim/Lang.java | 2 +- src/logicsim/Pin.java | 6 +- src/logicsim/VerilogCreator.java | 681 +++++++++++++++++++++++++++++++ src/logicsim/VerilogFile.java | 74 ++++ src/logicsim/Wire.java | 18 +- src/logicsim/XMLCreator.java | 4 +- 13 files changed, 888 insertions(+), 46 deletions(-) create mode 100644 src/logicsim/VerilogCreator.java create mode 100644 src/logicsim/VerilogFile.java diff --git a/src/logicsim/App.java b/src/logicsim/App.java index 6483e42..de4f50d 100755 --- a/src/logicsim/App.java +++ b/src/logicsim/App.java @@ -12,10 +12,13 @@ import java.util.Map; import java.util.Objects; +import javax.swing.JOptionPane; + public class App { public static final String APP_TITLE = "LogicSim"; public static final String CIRCUIT_FILE_SUFFIX = "lsc"; + public static final String VERILOG_FILE_SUFFIX = "v"; public static final String MODULE_FILE_SUFFIX = "lsm"; public static final String GRAPHICS_FORMAT = "png"; public static boolean Running_From_Jar = false; @@ -191,6 +194,20 @@ public static String getCircuitPath() { } return ""; } + + public static String getVerilogPath() { + File f = new File(""); + String fname = f.getAbsolutePath() + "/verilog/"; + f = new File(fname); + if (f != null && f.exists() && f.isDirectory()) { + return new String(f.getAbsolutePath() + "/"); + } else { + JOptionPane.showMessageDialog(null, + "Directory verilog not found.\nPlease run the program from its directory"); + System.exit(0); + } + return ""; + } public static Gate getGate(String type) { for (Category cat : cats) { diff --git a/src/logicsim/CircuitPart.java b/src/logicsim/CircuitPart.java index 3461063..97b03d2 100755 --- a/src/logicsim/CircuitPart.java +++ b/src/logicsim/CircuitPart.java @@ -60,10 +60,14 @@ public static int round(int num) { public static final String TEXT = "text"; - public String TEXT_DEFAULT = ""; + public String TEXT_DEFAULT = "