diff --git a/src/main/java/de/neemann/digital/toolchain/Configuration.java b/src/main/java/de/neemann/digital/toolchain/Configuration.java index c27569d35..56eb56bca 100644 --- a/src/main/java/de/neemann/digital/toolchain/Configuration.java +++ b/src/main/java/de/neemann/digital/toolchain/Configuration.java @@ -8,11 +8,15 @@ package de.neemann.digital.toolchain; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.StaxDriver; import de.neemann.digital.builder.tt2.OSExecute; +import de.neemann.digital.core.NodeException; import de.neemann.digital.core.element.Keys; import de.neemann.digital.core.wiring.Clock; import de.neemann.digital.draw.elements.Circuit; +import de.neemann.digital.draw.elements.PinException; import de.neemann.digital.draw.elements.VisualElement; import de.neemann.digital.draw.library.ElementLibrary; +import de.neemann.digital.draw.library.ElementNotFoundException; +import de.neemann.digital.draw.model.ModelCreator; import de.neemann.digital.gui.SaveAsHelper; import de.neemann.digital.gui.StatusInterface; import de.neemann.digital.hdl.hgs.*; @@ -234,7 +238,13 @@ public final class Configuration { return name; } - private HDLModel writeHDL(String hdl, File digFile) throws IOException, HGSEvalException { + private HDLModel writeHDL(String hdl, File digFile) throws IOException, HGSEvalException, ElementNotFoundException, PinException, NodeException { + + // Creates the simulation model to ensure the circuit is error free. + new ModelCreator(circuitProvider.getCurrentCircuit(), libraryProvider.getCurrentLibrary()) + .createModel(false) + .close(); + switch (hdl) { case "verilog": File verilogFile = SaveAsHelper.checkSuffix(digFile, "v"); diff --git a/src/test/java/de/neemann/digital/toolchain/ConfigurationTest.java b/src/test/java/de/neemann/digital/toolchain/ConfigurationTest.java index 7c6a822d1..7bb48e16f 100644 --- a/src/test/java/de/neemann/digital/toolchain/ConfigurationTest.java +++ b/src/test/java/de/neemann/digital/toolchain/ConfigurationTest.java @@ -123,7 +123,7 @@ public class ConfigurationTest extends TestCase { @Override public void showError(Command command, Exception e) { - throw new RuntimeException(command.getName(), e); + fail(e.getMessage()); } void clear() {