diff --git a/doc/xschem_man/xschem_man.html b/doc/xschem_man/xschem_man.html index 2f7ace3c..549865ab 100644 --- a/doc/xschem_man/xschem_man.html +++ b/doc/xschem_man/xschem_man.html @@ -78,6 +78,7 @@
  • [Video] See logic propagation of nets live in xschem without using a backend simulator
  • [Video] View Ngspice/Xyce simulation data inside XSCHEM
  • [Video] Live annotation of simulation values into the schematic
  • +
  • [Video] Setting up a Xyce simulation, viewing results and doing math on graphs
  • [Video] Probe xschem nets into the GAW waveform viewer
  • [Video] Probe xschem nets into the BESPICE waveform viewer
  • [Video] Creating a symbol
  • diff --git a/src/save.c b/src/save.c index 94760efb..6b1c8667 100644 --- a/src/save.c +++ b/src/save.c @@ -761,20 +761,22 @@ int plot_raw_custom_data(int sweep_idx, int first, int last, const char *expr) if(stackptr2 > 1) { /* 2 argument operators */ switch(stack1[i].i) { case PLUS: - stack2[stackptr2 - 2] = stack2[stackptr2 - 2] + stack2[stackptr2 - 1]; + stack2[stackptr2 - 2] = stack2[stackptr2 - 2] + stack2[stackptr2 - 1]; stackptr2--; break; case MINUS: - stack2[stackptr2 - 2] = stack2[stackptr2 - 2] - stack2[stackptr2 - 1]; + stack2[stackptr2 - 2] = stack2[stackptr2 - 2] - stack2[stackptr2 - 1]; stackptr2--; break; case MULT: - stack2[stackptr2 - 2] = stack2[stackptr2 - 2] * stack2[stackptr2 - 1]; + stack2[stackptr2 - 2] = stack2[stackptr2 - 2] * stack2[stackptr2 - 1]; stackptr2--; break; case DIVIS: if(stack2[stackptr2 - 1]) { - stack2[stackptr2 - 2] = stack2[stackptr2 - 2] / stack2[stackptr2 - 1]; + stack2[stackptr2 - 2] = stack2[stackptr2 - 2] / stack2[stackptr2 - 1]; + } else if(stack2[stackptr2 - 2] == 0.0) { + stack2[stackptr2 - 2] = 0; } else { stack2[stackptr2 - 2] = y[p - 1]; } diff --git a/src/xschem.tcl b/src/xschem.tcl index c68a53b5..e3983950 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -657,6 +657,9 @@ proc sim_is_ngspice {} { return 0 } +proc sim_is_Xyce {} { + return [sim_is_xyce] +} proc sim_is_xyce {} { global sim