use of de.neemann.digital.hdl.hgs.HGSEvalException in project Digital by hneemann.
the class ReferenceToStruct method set.
@Override
public void set(Context context, Object value) throws HGSEvalException {
final HGSMap hgsMap = Value.toMap(parent.get(context));
if (hgsMap.hgsMapGet(name) == null)
throw new HGSEvalException("Value '" + name + "' not declared in struct!");
hgsMap.hgsMapPut(name, value);
}
use of de.neemann.digital.hdl.hgs.HGSEvalException in project Digital by hneemann.
the class VHDLGenerator method export.
/**
* Exports the given circuit
*
* @param circuit the circuit to export
* @return this for chained calls
* @throws IOException IOException
*/
public VHDLGenerator export(Circuit circuit) throws IOException {
try {
if (!circuit.getAttributes().get(Keys.ROMMANAGER).isEmpty())
throw new HDLException(Lang.get("err_centralDefinedRomsAreNotSupported"));
BoardInterface board = BoardProvider.getInstance().getBoard(circuit);
HDLClockIntegrator clockIntegrator = null;
if (board != null && useClockIntegration)
clockIntegrator = board.getClockIntegrator();
HDLModel model = new HDLModel(library).create(circuit, clockIntegrator);
for (HDLCircuit hdlCircuit : model) hdlCircuit.applyDefaultOptimizations();
model.renameLabels(new VHDLRenaming());
out.println("-- generated by Digital. Don't modify this file!");
out.println("-- Any changes will be lost if this file is regenerated.");
new VHDLCreator(out).printHDLCircuit(model.getMain());
File outFile = out.getFile();
if (outFile != null) {
testBenches = new VHDLTestBenchCreator(circuit, model).write(outFile).getTestFileWritten();
if (board != null)
board.writeFiles(outFile, model);
}
return this;
} catch (PinException | NodeException | HDLException | HGSEvalException e) {
throw new IOException(Lang.get("err_vhdlExporting"), e);
}
}
use of de.neemann.digital.hdl.hgs.HGSEvalException in project Digital by hneemann.
the class ReferenceToStruct method declareVar.
@Override
public void declareVar(Context context, Object initial) throws HGSEvalException {
final HGSMap hgsMap = Value.toMap(parent.get(context));
if (hgsMap.hgsMapGet(name) != null)
throw new HGSEvalException("Value '" + name + "' redeclared in struct!");
hgsMap.hgsMapPut(name, initial);
}
Aggregations