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.