There are continued problems with simulating various devices, but
the installation is generally correct.
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index d61de44..949cf86 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -353,14 +353,14 @@
vendor-a:
# Install device subcircuits from vendor files
${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
- -ngspice sky130_fd_pr/latest/models/* filter=custom/scripts/rename.py \
+ -ngspice sky130_fd_pr/latest/models/* filter=custom/scripts/rename_models.py \
|& tee -a ${SKY130A}_install.log
# Install base device library from vendor files
${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
-gds %l/latest/cells/*/*.gds compile-only \
-cdl %l/latest/cells/*/*.cdl compile-only \
-lef %l/latest/cells/*/*.magic.lef compile-only \
- -spice %l/latest/cells/*/*.spice \
+ -spice %l/latest/cells/*/*.spice filter=custom/scripts/rename_cells.py \
-library primitive sky130_fd_pr |& tee -a ${SKY130A}_install.log
# Install SkyWater I/O pad library
# Purposely ignoring "-lef sky130_fd_io/latest/lef/*.lef" and making our own LEF views
diff --git a/sky130/custom/scripts/rename.py b/sky130/custom/scripts/rename_cells.py
similarity index 75%
copy from sky130/custom/scripts/rename.py
copy to sky130/custom/scripts/rename_cells.py
index ebef2ea..1daa8ea 100755
--- a/sky130/custom/scripts/rename.py
+++ b/sky130/custom/scripts/rename_cells.py
@@ -1,10 +1,10 @@
#!/bin/env python3
#
-# rename ---
+# rename_cells ---
#
-# This script renames include paths from SPICE files in the models
-# (libs.tech/ngspice) directory that point to the original ../cells/
-# directory, to point to the correct location in libs.ref/sky130_fd_pr/spice/
+# This script renames include paths from SPICE files in the cells
+# (libs.ref/sky130_fd_pr) directory that point to other cells
+# directories, to point to the correct location in libs.ref/sky130_fd_pr/spice/
#
#
# This script is a filter to be run by setting the name of this script as
@@ -22,7 +22,7 @@
spitext = inFile.read()
spilines = spitext.splitlines()
except:
- print('rename.py: failed to open ' + fnmIn + ' for reading.', file=sys.stderr)
+ print('rename_cells.py: failed to open ' + fnmIn + ' for reading.', file=sys.stderr)
return 1
# Process input with regexp
@@ -32,8 +32,9 @@
for line in spilines:
- # Fix: Replace "../cells/<name>/" with "../../libs.ref/sky130_fd_pr/spice/"
- fixedline = re.sub('../cells/[^/]+/', '../../libs.ref/sky130_fd_pr/spice/', line)
+ # These substitutions are for files originating from cells/*/*.spice
+ fixedline = re.sub('\.\./\.\./models/', '../../libs.tech/ngspice/', line)
+ fixedline = re.sub('\.\./[^/\.]+/', '', fixedline)
fixedlines.append(fixedline)
if fixedline != line:
@@ -57,7 +58,7 @@
for i in fixedlines:
print(i, file=outFile)
except:
- print('rename.py: failed to open ' + outname + ' for writing.', file=sys.stderr)
+ print('rename_cells.py: failed to open ' + outname + ' for writing.', file=sys.stderr)
return 1
diff --git a/sky130/custom/scripts/rename.py b/sky130/custom/scripts/rename_models.py
similarity index 87%
rename from sky130/custom/scripts/rename.py
rename to sky130/custom/scripts/rename_models.py
index ebef2ea..1be4c2b 100755
--- a/sky130/custom/scripts/rename.py
+++ b/sky130/custom/scripts/rename_models.py
@@ -1,6 +1,6 @@
#!/bin/env python3
#
-# rename ---
+# rename_models ---
#
# This script renames include paths from SPICE files in the models
# (libs.tech/ngspice) directory that point to the original ../cells/
@@ -22,7 +22,7 @@
spitext = inFile.read()
spilines = spitext.splitlines()
except:
- print('rename.py: failed to open ' + fnmIn + ' for reading.', file=sys.stderr)
+ print('rename_models.py: failed to open ' + fnmIn + ' for reading.', file=sys.stderr)
return 1
# Process input with regexp
@@ -33,8 +33,7 @@
for line in spilines:
# Fix: Replace "../cells/<name>/" with "../../libs.ref/sky130_fd_pr/spice/"
- fixedline = re.sub('../cells/[^/]+/', '../../libs.ref/sky130_fd_pr/spice/', line)
-
+ fixedline = re.sub('\.\./cells/[^/]+/', '../../libs.ref/sky130_fd_pr/spice/', line)
fixedlines.append(fixedline)
if fixedline != line:
modified = True
@@ -57,7 +56,7 @@
for i in fixedlines:
print(i, file=outFile)
except:
- print('rename.py: failed to open ' + outname + ' for writing.', file=sys.stderr)
+ print('rename_models.py: failed to open ' + outname + ' for writing.', file=sys.stderr)
return 1