gf180mcu: add gf180mcuD variant for 5LM_1TM_11K
diff --git a/gf180mcu/.gitignore b/gf180mcu/.gitignore
index 1848907..0d32c34 100644
--- a/gf180mcu/.gitignore
+++ b/gf180mcu/.gitignore
@@ -2,4 +2,5 @@
gf180mcuA
gf180mcuB
gf180mcuC
+gf180mcuD
/Makefile
\ No newline at end of file
diff --git a/gf180mcu/Makefile.in b/gf180mcu/Makefile.in
index 77161b0..7f7b0ff 100644
--- a/gf180mcu/Makefile.in
+++ b/gf180mcu/Makefile.in
@@ -60,6 +60,7 @@
# gf180mcuA = METALS3 | MIM | THICKMET3P0 | HRPOLY1K
# gf180mcuB = METALS4 | MIM | THICKMET1P1 | HRPOLY1K
# gf180mcuC = METALS5 | MIM | THICKMET0P9 | HRPOLY1K
+# gf180mcuD = METALS5 | MIM | THICKMET1P1 | HRPOLY1K
#
# Written by Tim Edwards April 2022
# Efabless, Inc.
@@ -195,25 +196,30 @@
GF180MCUA = gf180mcuA
GF180MCUB = gf180mcuB
GF180MCUC = gf180mcuC
+GF180MCUD = gf180mcuD
DIST_LINK_TARGETS_A = ${LINK_TARGETS_A}
DIST_LINK_TARGETS_B = ${SHARED_PDKS_PATH}/${LINK_TARGETS_B}
DIST_LINK_TARGETS_C = ${SHARED_PDKS_PATH}/${LINK_TARGETS_C}
+DIST_LINK_TARGETS_D = ${SHARED_PDKS_PATH}/${LINK_TARGETS_D}
# Basic definitions for each process node
GF180MCUA_DEFS = -DTECHNAME=gf180mcuA -DREVISION=${REVISION}
GF180MCUB_DEFS = -DTECHNAME=gf180mcuB -DREVISION=${REVISION}
GF180MCUC_DEFS = -DTECHNAME=gf180mcuC -DREVISION=${REVISION}
+GF180MCUD_DEFS = -DTECHNAME=gf180mcuD -DREVISION=${REVISION}
# Module definitions for each process node (see top)
GF180MCUA_DEFS += -DMETALS3 -DMIM -DTHICKMET3P0 -DHRPOLY1K
GF180MCUB_DEFS += -DMETALS4 -DMIM -DTHICKMET1P1 -DHRPOLY1K
GF180MCUC_DEFS += -DMETALS5 -DMIM -DTHICKMET0P9 -DHRPOLY1K
+GF180MCUD_DEFS += -DMETALS5 -DMIM -DTHICKMET1P1 -DHRPOLY1K
# Add staging path
GF180MCUA_DEFS += -DSTAGING_PATH=${STAGING_PATH}
GF180MCUB_DEFS += -DSTAGING_PATH=${STAGING_PATH}
GF180MCUC_DEFS += -DSTAGING_PATH=${STAGING_PATH}
+GF180MCUD_DEFS += -DSTAGING_PATH=${STAGING_PATH}
# Get the timestamp of the open_pdks commit to use for stamping layouts.
OPEN_PDKS_TIMESTAMP = $(shell git log -1 --format="%ad" --date=raw | cut -d' ' -f1)
@@ -267,6 +273,7 @@
GF180MCUA_DEFS += -DEF_FORMAT
GF180MCUB_DEFS += -DEF_FORMAT
GF180MCUC_DEFS += -DEF_FORMAT
+ GF180MCUD_DEFS += -DEF_FORMAT
else
EF_FORMAT = -std_format
endif
@@ -358,19 +365,42 @@
XCIRCUIT_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${XCIRCUITPATH}
NGSPICE_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${NGSPICEPATH}
+MAGICTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${MAGICTOP}
+NETGENTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NETGENTOP}
+IRSIMTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${IRSIMTOP}
+QFLOWTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${QFLOWTOP}
+KLAYOUTTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${KLAYOUTTOP}
+OPENLANETOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${OPENLANETOP}
+XSCHEMTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XSCHEMTOP}
+XCIRCUITTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XCIRCUITTOP}
+NGSPICETOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NGSPICETOP}
+
+MAGIC_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${MAGICPATH}
+NETGEN_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NETGENPATH}
+IRSIM_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${IRSIMPATH}
+QFLOW_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${QFLOWPATH}
+KLAYOUT_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${KLAYOUTPATH}
+OPENLANE_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${OPENLANEPATH}
+XSCHEM_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XSCHEMPATH}
+XCIRCUIT_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XCIRCUITPATH}
+NGSPICE_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NGSPICEPATH}
+
GF180MCUA_DEFS += -DMAGIC_CURRENT=${MAGIC_CURRENT}
GF180MCUB_DEFS += -DMAGIC_CURRENT=${MAGIC_CURRENT}
GF180MCUC_DEFS += -DMAGIC_CURRENT=${MAGIC_CURRENT}
+GF180MCUD_DEFS += -DMAGIC_CURRENT=${MAGIC_CURRENT}
# These definitions are used by the build recipes
A_STACK = 3lm
B_STACK = 4lm
C_STACK = 5lm
+D_STACK = 5lm
# These definitions are used by the build recipes for the tech LEF
A_FULLSTACK = 3LM_1TM_30K
B_FULLSTACK = 4LM_1TM_11K
C_FULLSTACK = 5LM_1TM_9K
+D_FULLSTACK = 5LM_1TM_11K
# Openlane has a number of files that are common to all digital
# standard cell libraries, so these are collected in one definition
@@ -590,6 +620,8 @@
tools-C: $(addsuffix -C, $(TOOLS))
+tools-D: $(addsuffix -D, $(TOOLS))
+
magic-%: magic/${TECH}.tech magic/${TECH}gds.tech magic/${TECH}.magicrc magic/${TECH}.tcl
mkdir -p ${MAGICTOP_STAGING_$*}
mkdir -p ${MAGIC_STAGING_$*}
@@ -740,6 +772,8 @@
vendor-C: primitive-build-C digital-7t5v0-build-C digital-9t5v0-build-C io-build-C sram-build-C digital-osu-build-C
+vendor-D: primitive-build-D digital-7t5v0-build-D digital-9t5v0-build-D io-build-D sram-build-D digital-osu-build-D
+
primitive-build-%:
if test -d ${GF180MCU_PR_PATH} ; then \
echo "Building primitives library and simulation models" ;\
@@ -1083,6 +1117,15 @@
-link_from ${DIST_LINK_TARGETS_C} 2>&1 | tee -a ${GF180MCUC}_install.log
echo "Ended GF180MCU PDK migration on "`date` >> ${GF180MCUC}_install.log
+install-D: install-A
+ echo "Starting GF180MCU PDK migration on "`date` > ${GF180MCUD}_install.log
+ ${INSTALL} \
+ -source ${STAGING_PATH}/${GF180MCUD} \
+ -finalpath ${SHARED_PDKS_PATH}/${GF180MCUD} \
+ -variable PDKPATH \
+ -link_from ${DIST_LINK_TARGETS_C} 2>&1 | tee -a ${GF180MCUD}_install.log
+ echo "Ended GF180MCU PDK migration on "`date` >> ${GF180MCUD}_install.log
+
uninstall: $(foreach var, ${VARIANTS}, uninstall-$(var))
uninstall-A:
@@ -1106,6 +1149,13 @@
fi
echo "Finished GF180MCU PDK uninstall"
+uninstall-D:
+ echo "Uninstalling GF180MCU PDK from ${SHARED_PDKS_PATH}"
+ if test "x${SHARED_PDKS_PATH}" != "x" ; then \
+ ${RM} -rf ${SHARED_PDKS_PATH}/${GF180MCUD} ; \
+ fi
+ echo "Finished GF180MCU PDK uninstall"
+
clean: $(foreach var, ${VARIANTS}, clean-$(var))
clean-A:
@@ -1117,6 +1167,9 @@
clean-C:
${STAGE} -target ${STAGING_PATH}/${GF180MCUC} -clean
+clean-D:
+ ${STAGE} -target ${STAGING_PATH}/${GF180MCUD} -clean
+
veryclean: $(foreach var, ${VARIANTS}, veryclean-$(var))
veryclean-A: clean-A
@@ -1131,4 +1184,8 @@
${RM} ${GF180MCUC}_make.log
${RM} ${GF180MCUC}_install.log
+veryclean-D: clean-D
+ ${RM} ${GF180MCUD}_make.log
+ ${RM} ${GF180MCUD}_install.log
+
diff --git a/gf180mcu/README b/gf180mcu/README
index ecd3c95..2cb4f06 100644
--- a/gf180mcu/README
+++ b/gf180mcu/README
@@ -34,7 +34,8 @@
gf180mcuA/ 3-metal backend stack
gf180mcuB/ 4-metal backend stack
- gf180mcuC/ 5-metal backend stack
+ gf180mcuC/ 5-metal backend stack (9K)
+ gf180mcuC/ 5-metal backend stack (11K)
(Again, see the Makefile for the complete description.)