Fixed the sky130 Makefile, which recently accidentally got committed with a recipe intended for the continuous models, which exist only in a private repository. The error prevents open_pdks from building and installing libs.tech/ngspice/.
diff --git a/VERSION b/VERSION index 7681bff..aeffd51 100644 --- a/VERSION +++ b/VERSION
@@ -1 +1 @@ -1.0.314 +1.0.315
diff --git a/sky130/Makefile.in b/sky130/Makefile.in index 6b6bebe..f509275 100644 --- a/sky130/Makefile.in +++ b/sky130/Makefile.in
@@ -1151,65 +1151,6 @@ fi primitive-%: - # Install device models from custom files - ${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130$*} \ - -ngspice sky130_fd_pr/combined_models/* \ - 2>&1 | tee -a ${SKY130$*}_make.log - # Install device layouts from custom sources - ${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130$*} \ - -gds sky130_fd_pr/*.gds \ - options=custom/scripts/gds_import_setup.tcl \ - -library primitive sky130_fd_pr 2>&1 | tee -a ${SKY130$*}_make.log - # Install base device library from vendor files. - ${STAGE} -source ${SKYWATER_LIBS_PATH} -target ${STAGING_PATH}/${SKY130$*} \ - -gds %l/latest/cells/*/*.gds \ - no-copy=custom/sky130_fd_pr/*.gds \ - include=custom/sky130_fd_pr/*.gds \ - compile-only \ - options=custom/scripts/gds_import_setup.tcl \ - -lef %l/latest/cells/*/*.magic.lef compile-only \ - -spice %l/latest/cells/*/*.spice filter=custom/scripts/rename_cells.py \ - -library primitive sky130_fd_pr 2>&1 | tee -a ${SKY130$*}_make.log - - # Custom: Patch the models to remove the substrate pin from the PNP - # device, which has no independent substrate pin (collector=substrate) - ${PATCH} -p4 -f -d ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE} \ - < custom/patches/sky130_fd_pr_3.patch \ - 2>&1 | tee -a ${SKY130$*}_make.log || true - - # Fix up the PNP model file before running the next modification - head -15 ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/sky130_fd_pr__pnp_05v5_W3p40L3p40.model.spice > ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/temp - tail -39 ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/sky130_fd_pr__pnp_05v5_W3p40L3p40.model.spice >> ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/temp - mv ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/temp ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/sky130_fd_pr__pnp_05v5_W3p40L3p40.model.spice - # Custom: Parse the (commented out) statistics blocks and generate - # ngspice-compatible monte carlo parameters for mismatch and process - ./custom/scripts/mismatch_params.py ${EF_FORMAT} -variant=${SKY130$*} \ - 2>&1 | tee -a ${SKY130$*}_make.log || true - ./custom/scripts/process_params.py ${EF_FORMAT} -variant=${SKY130$*} \ - 2>&1 | tee -a ${SKY130$*}_make.log || true - # Custom: Change vt to local_vt in one file for Xyce compatibilty - ./custom/scripts/xyce_hack.py \ - ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/sky130_fd_pr__res_iso_pw.model.spice \ - 2>&1 | tee -a ${SKY130$*}_make.log || true - # Custom: Remove ACM model parameters from BSIM3 devices - ./custom/scripts/xyce_hack2.py \ - ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/sky130_fd_pr__special_nfet_pass.pm3.spice \ - 2>&1 | tee -a ${SKY130$*}_make.log || true - ./custom/scripts/xyce_hack2.py \ - ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/sky130_fd_pr__special_pfet_pass.pm3.spice \ - 2>&1 | tee -a ${SKY130$*}_make.log || true - ./custom/scripts/xyce_hack2.py \ - ${STAGING_PATH}/${SKY130$*}/libs.ref/${PR_SPICE}/sky130_fd_pr__special_nfet_latch.pm3.spice \ - 2>&1 | tee -a ${SKY130$*}_make.log || true - - # Custom: Add special device ID layers to bipolar layouts in magic - # to make the extraction models correct. - ./custom/scripts/add_bipolar_ids.py ${EF_FORMAT} -variant=${SKY130$*} \ - 2>&1 | tee -a ${SKY130$*}_make.log || true - -primitive-legacy-%: - # This is the former recipe for primitive-% and has been superceded - # by the combined device models found in custom/sky130_fd_pr/. # Install device subcircuits from vendor files ${STAGE} -source ${SKYWATER_LIBS_PATH} -target ${STAGING_PATH}/${SKY130$*} \ -ngspice sky130_fd_pr/latest/models/* \