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