1
0
mirror of https://github.com/cclassic/model-ghdl synced 2024-11-22 08:35:05 +01:00

Changed startup behavior of GtkWave to improve usability

This commit is contained in:
Markus Koch 2015-01-19 20:07:58 +01:00
parent e269810c6a
commit 0a243ddd1e

View File

@ -2,6 +2,7 @@
#include <string> #include <string>
#include <unistd.h> #include <unistd.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
#include <vector> #include <vector>
#include <fstream> #include <fstream>
@ -150,22 +151,36 @@ int main(int argc, char **argv) {
} }
string cargs = "cd " + string(tempdir) + "; ghdl -m --ieee=synopsys --warn-no-vital-generic --workdir=" + string(tempdir) + " --work=" + work + " " + top; //bool ex = false;
if (run(cargs)) { //while (!ex) {
cerr << "Error: Compilation failed." << endl; string cargs = "cd " + string(tempdir) + "; ghdl -m --ieee=synopsys --warn-no-vital-generic --workdir=" + string(tempdir) + " --work=" + work + " " + top;
} if (run(cargs)) {
else { cerr << "Error: Compilation failed." << endl;
cargs = ""; run("zenity --error --text \"Compilation failed.\"");
if (run("cd " + string(tempdir) + "; ./" + top + " --stop-time=" + getSimulationTime() + " --vcd=" + top + ".vcd")) {
cerr << "Error: Simulation failed." << endl;
} }
else { else {
if (run("gtkwave " + string(tempdir) + "/" + top + ".vcd")) { cargs = "";
cerr << "Error: GtkWave failed."; string st = getSimulationTime();
if (st != "") {
if (run("cd " + string(tempdir) + "; ./" + top + " --stop-time=" + st + " --vcd=" + top + ".vcd")) {
cerr << "Error: Simulation failed." << endl;
}
else {
string wv = "gtkwave " + string(tempdir) + "/" + top + ".vcd &";
if (run("pidof gtkwave")) {
if (system(wv.c_str())) {
cerr << "Error: GtkWave failed.";
}
else {
cout << "GtkWave started." << endl;
}
}
}
} }
} }
} //}
//cout << "Simulation ended." << endl;
return 0; return 0;
} }