A number of changes, mostly to the SPICE libraries and netlists in support
of Xyce (without compromising support for ngspice).  Also:  Additional Monte
Carlo parameters were found in PSPICE format in the models and have been
converted to something ngspice-compatible.  The 11V NPN GDS cell name was
changed to allow correct extraction from magic and prevent shadowing the
model name.  The Monte Carlo switch parameter behavior was changed again to
make a separate set of library sections for mismatch-enabled corners vs.
the original corners, which have been configured to have mismatch disabled.
This avoids any requirement to add a parameter definition to every testbench
for sky130.  Xyce compatibility includes changing '$' comments to ';', which
is also ngspice compatible, and adding the library section name after '.endl',
which is also ngspice-compatible.  Complete Xyce support requires a change
to the all.spice file and calls to function agauss(), the solution to which
has not yet been determined.
diff --git a/sky130/custom/scripts/xyce_hack.py b/sky130/custom/scripts/xyce_hack.py
new file mode 100755
index 0000000..480e3ae
--- /dev/null
+++ b/sky130/custom/scripts/xyce_hack.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+#
+#--------------------------------------------------------------------
+# Workaround for the problem that xyce does not like having "vt"
+# as a subcircuit parameter name, because it is a xyce reserved
+# name.  Change the parameter name in the one file that uses it.
+# This script is not robust, and depends on the fact that the
+# one file that declares "vt" does not have any corner model files,
+# and the characters "vt" do not appear in any other context.
+#--------------------------------------------------------------------
+
+import os
+import re
+import sys
+
+if len(sys.argv) <= 1:
+    print('Usage: xyce_hack.py <path_to_file>')
+    sys.exit(1)
+
+else:
+    infile_name = sys.argv[1]
+
+    filepath = os.path.split(infile_name)[0]
+    outfile_name = os.path.join(filepath, 'temp')
+
+    infile = open(infile_name, 'r')
+    outfile = open(outfile_name, 'w')
+
+    line_number = 0
+    replaced_something = False
+    for line in infile:
+        line_number += 1
+
+        if 'vt' in line:
+            newline = re.sub('vt', 'local_vt', line)
+            replaced_something = True
+        else:
+            newline = line
+
+        outfile.write(newline)
+
+    infile.close()
+    outfile.close()
+    if replaced_something:
+        print("Something was replaced in '{}'".format(infile_name))
+        os.rename(outfile_name, infile_name)
+    else:
+        print("Nothing was replaced in '{}'.".format(infile_name))
+        os.remove(outfile_name)
+