Updated VERSION along with pull request #107 from Manar Abdelaty.
Also revised the Makefile.in file to loop over install files for
openlane instead of enumerating each one.
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index 32feebe..e256282 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -249,6 +249,12 @@
SKY130A_DEFS += -DMAGIC_CURRENT=${MAGICTOP}/current
+# Openlane has a number of files that are common to all digital
+# standard cell libraries, so these are collected in one definition
+# here:
+OPENLANE_COMMON = config.tcl tracks.info no_synth.cells
+OPENLANE_COMMON += tribuff_map.v latch_map.v mux2_map.v mux4_map.v fa_map.v rca_map.v
+
# Where cpp syntax is followed, this is equivalent to cpp, but it does not
# mangle non-C source files under the belief that they are actually C code.
CPP = ../common/preproc.py
@@ -419,82 +425,57 @@
mkdir -p ${OPENLANE_STAGING_A}/sky130_osu_sc_t18
rm -f ${OPENLANE_STAGING_A}/common_pdn.info
rm -f ${OPENLANE_STAGING_A}/config.tcl
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/config.tcl
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/tracks.info
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/no_synth.cells
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/config.tcl
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/tracks.info
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/no_synth.cells
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/config.tcl
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/tracks.info
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/no_synth.cells
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/config.tcl
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/tracks.info
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/no_synth.cells
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/config.tcl
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/tracks.info
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/no_synth.cells
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/config.tcl
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/tracks.info
- rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/no_synth.cells
- rm -f ${OPENLANE_STAGING_A}/sky130_osu_sc_t18/config.tcl
- rm -f ${OPENLANE_STAGING_A}/sky130_osu_sc_t18/tracks.info
+ for file in ${OPENLANE_COMMON} ; do \
+ rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ rm -f ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ rm -f ${OPENLANE_STAGING_A}/sky130_osu_sc_t18/$$file ; \
+ done
+
cp -r openlane/custom_cells ${OPENLANE_STAGING_A}
${CPP} ${SKY130A_DEFS} openlane/common_pdn.tcl > ${OPENLANE_STAGING_A}/common_pdn.tcl
${CPP} ${SKY130A_DEFS} openlane/config.tcl > ${OPENLANE_STAGING_A}/config.tcl
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/config.tcl
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/tracks.info
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/no_synth.cells
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/tribuff_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/latch_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/mux2_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/mux4_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/fa_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/fa_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/rca_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/rca_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/config.tcl
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/tracks.info
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/no_synth.cells
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/tribuff_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/latch_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/mux2_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/mux4_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/fa_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/fa_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/rca_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/rca_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/config.tcl
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/tracks.info
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/no_synth.cells
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/tribuff_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/latch_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/mux2_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/mux4_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/fa_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/fa_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/rca_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/rca_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/config.tcl
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/tracks.info
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/no_synth.cells
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/tribuff_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/latch_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/mux2_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/mux4_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/fa_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/fa_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/rca_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/rca_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/config.tcl
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/tracks.info
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/no_synth.cells
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/tribuff_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/latch_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/mux2_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/fa_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/fa_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/rca_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/rca_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/config.tcl
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/tracks.info
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/no_synth.cells
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/tribuff_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/latch_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/mux2_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/mux4_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/fa_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/fa_map.v
- ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/rca_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/rca_map.v
+
+ for file in ${OPENLANE_COMMON} ; do \
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/$$file > \
+ ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/$$file > \
+ ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/$$file > \
+ ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/$$file > \
+ ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/$$file > \
+ ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/$$file ; \
+ done
+ for file in ${OPENLANE_COMMON} ; do \
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/$$file > \
+ ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/$$file ; \
+ done
+
${CPP} ${SKY130A_DEFS} openlane/sky130_osu_sc_t18/config.tcl > ${OPENLANE_STAGING_A}/sky130_osu_sc_t18/config.tcl
${CPP} ${SKY130A_DEFS} openlane/sky130_osu_sc_t18/tracks.info > ${OPENLANE_STAGING_A}/sky130_osu_sc_t18/tracks.info
diff --git a/sky130/README b/sky130/README
index 3afe686..4463d30 100644
--- a/sky130/README
+++ b/sky130/README
@@ -196,6 +196,7 @@
qflow/ qflow scripts and graywolf setup files.
klayout/ setup files for klayout
openlane/ setup files for openlane
+ ngspice/ base model files and libraries for ngspice
libs.ref/ foundry data
@@ -224,9 +225,7 @@
sky130_fd_io/ Standard I/O
- sky130_fd_pr_base/ Primitive devices w/fixed layout
- sky130_fd_pr_rf/ RF primitive devices w/fixed layout
- sky130_fd_pr_rf2/ Additional RF primitive devices w/fixed layout
+ sky130_fd_pr/ Primitive devices w/fixed layout
The target installation destinations assume the directory structure above. Changing
this requires editing the source files.