diff --git a/VERSION b/VERSION
index bd7c3ec..5f7bf9c 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.177
+1.0.178
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index cc3bce0..2e29af7 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -1006,18 +1006,13 @@
 sram-a:
 	# Install SRAM library.  NOTE:  SRAM macros share some of the same
 	# cell names, so use special option script gds_import_sram.tcl
+	# To do:  Add option to process each GDS file individually in magic,
+	# instead of all at once.
 	${STAGE} -source ${SRAM_PATH}/.. -target ${STAGING_PATH}/${SKY130A} \
 		-lef %l/*/*.lef \
 		-lib %l/*/*.lib \
 		-gds %l/*/*.gds options=custom/scripts/gds_import_sram.tcl \
-		-spice %l/*/sky130_sram_1kbyte_1rw1r_32x256_8.lvs.sp \
-			rename=sky130_sram_1kbyte_1rw1r_32x256_8.spice \
-		-spice %l/*/sky130_sram_2kbyte_1rw1r_32x512_8.lvs.sp \
-			rename=sky130_sram_2kbyte_1rw1r_32x512_8.spice \
-		-spice %l/*/sky130_sram_4kbyte_1rw1r_32x1024_8.lvs.sp \
-			rename=sky130_sram_4kbyte_1rw1r_32x1024_8.spice \
-		-spice %l/*/sram_1rw1r_32_256_8_sky130.lvs.sp \
-			rename=sram_1rw1r_32_256_8_sky130.spice \
+		-spice %l/*/*.lvs.sp filter=custom/scripts/sp_to_spice.py \
 		-verilog %l/*/*.v \
 		-library general sky130_sram_macros 2>&1 | tee -a ${SKY130A}_make.log
 
diff --git a/sky130/custom/scripts/gds_import_sram.tcl b/sky130/custom/scripts/gds_import_sram.tcl
index c84332f..f4c3ace 100644
--- a/sky130/custom/scripts/gds_import_sram.tcl
+++ b/sky130/custom/scripts/gds_import_sram.tcl
@@ -2,5 +2,5 @@
 # TXT purpose (5) as pins, which is unfortunately done in a lot of the
 # vendor GDS files.
 cif istyle sky130(vendor)
-# Ensure unique cell names when reading multiple GDS files.
-calma unique on
+# Ensure unique cell names when reading multiple GDS files
+calma unique true
diff --git a/sky130/custom/scripts/sp_to_spice.py b/sky130/custom/scripts/sp_to_spice.py
new file mode 100755
index 0000000..bbcc641
--- /dev/null
+++ b/sky130/custom/scripts/sp_to_spice.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+#
+# sp_to_spice ---
+#
+# This script runs as a filter to foundry_install.sh and converts file
+# names ending with ".sp" to ".spice".  If the file has multiple extensions
+# then all are stripped before adding ".spice".
+#
+# This script is a filter to be run by setting the name of this script as
+# the value to "filter=" for the model install in the sky130 Makefile.
+
+import os
+import sys
+
+def filter(inname):
+
+    filepath = os.path.split(inname)[0]
+    filename = os.path.split(inname)[1]
+
+    filebits = filename.split('.')
+    newname = filebits[0] + '.spice'
+    outname = os.path.join(filepath, newname)
+    if not os.path.isfile(inname):
+        print('No such file ' + inname)
+        return 1
+
+    print('Renaming file ' + filename + ' to ' + newname)
+    os.rename(inname, outname)
+    return 0
+
+if __name__ == '__main__':
+
+    # This script expects to get one argument, which is the input file.
+    # The script renames the file.
+
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item[1:])
+        else:
+            arguments.append(item)
+
+    if len(arguments) > 0:
+        infilename = arguments[0]
+    else:
+        sys.exit(1)
+
+    result = filter(infilename)
+    sys.exit(result)
