Added the Open Circuit Design 3.3V SRAM to the list of supported
libraries (optional) for GF180MCU.
diff --git a/VERSION b/VERSION
index cb704f4..fc4d3ab 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.558
+1.0.559
diff --git a/gf180mcu/Makefile.in b/gf180mcu/Makefile.in
index e978e1e..64774b7 100644
--- a/gf180mcu/Makefile.in
+++ b/gf180mcu/Makefile.in
@@ -154,6 +154,7 @@
 GF180MCU_AS_SC_PATH = @GF180MCU_AS_SC_PATH@
 GF180MCU_OCD_IO_PATH = @GF180MCU_OCD_IO_PATH@
 GF180MCU_OCD_ALPHA_PATH = @GF180MCU_OCD_ALPHA_PATH@
+GF180MCU_OCD_SRAM_PATH = @GF180MCU_OCD_IP_SRAM_PATH@
 
 USE_REFERENCE = @USE_REFERENCE@
 
@@ -184,6 +185,7 @@
 PDK_LIB_OSU_SC =   ${OSU_URL}/globalfoundries-pdk-libs-gf180mcu_osu_sc
 PDK_LIB_AS_SC =    ${AVALON_URL}/gf180mcu_as_sc_mcu7t3v3
 PDK_LIB_OCD_IO =   ${OCD_URL}/gf180mcu_ocd_io
+PDK_LIB_OCD_SRAM = ${OCD_URL}/gf180mcu_ocd_ip_sram
 PDK_LIB_OCD_ALPHA =${OCD_URL}/gf180mcu_ocd_alpha
 
 # NOTE:  Install destination is the git repository of the technology platform.
@@ -263,6 +265,11 @@
 else
     COMMIT_DEFS += -DFD_IP_SRAM_COMMIT=$(shell cd ${GF180MCU_SRAM_PATH} ; git rev-parse HEAD)
 endif
+ifeq (${GF180MCU_OCD_SRAM_PATH},)
+    COMMIT_DEFS += -DOCD_IP_SRAM_COMMIT="unknown"
+else
+    COMMIT_DEFS += -DOCD_IP_SRAM_COMMIT=$(shell cd ${GF180MCU_OCD_SRAM_PATH} ; git rev-parse HEAD)
+endif
 ifeq (${GF180MCU_OSU_SC_PATH},)
     COMMIT_DEFS += -DOSU_SC_COMMIT="unknown"
 else
@@ -496,7 +503,7 @@
 	../common/save_commit_refs.py ${COMMIT_DEFS} ${TECH}.json
 
 # Handle prerequisites
-prerequisites: pr-repo pv-repo io-repo sc-7t-repo sc-9t-repo sram-repo osu-sc-repo avalon-sc-repo ocd-io-repo ocd-alpha-repo
+prerequisites: pr-repo pv-repo io-repo sc-7t-repo sc-9t-repo sram-repo ocd-sram-repo osu-sc-repo avalon-sc-repo ocd-io-repo ocd-alpha-repo
 
 pr-repo:
 	if test "x${REFERENCE_JSON}" != "x"; then \
@@ -569,13 +576,26 @@
 	fi ; \
 	if test "x${GF180MCU_SRAM_PATH}" != "x" ; then \
 		if test -d "${GF180MCU_SRAM_PATH}" ; then \
-			echo "Using existing installation of primitive library from ${GF180MCU_SRAM_PATH}" ; \
+			echo "Using existing installation of 5V SRAM library from ${GF180MCU_SRAM_PATH}" ; \
 		else \
-			echo "Downloading primitive library from ${GF180MCU_SRAM_PATH}" ; \
+			echo "Downloading 5V SRAM library from ${GF180MCU_SRAM_PATH}" ; \
 			../scripts/download.sh ${PDK_LIB_SRAM} ${GF180MCU_SRAM_PATH} $${FD_IP_SRAM_COMMIT}; \
 		fi ; \
 	fi
 
+ocd-sram-repo:
+	if test "x${REFERENCE_JSON}" != "x"; then \
+		OCD_IP_SRAM_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_ocd_ip_sram | grep -v COMMIT | cut -d'"' -f4` ; \
+	fi ; \
+	if test "x${GF180MCU_OCD_SRAM_PATH}" != "x" ; then \
+		if test -d "${GF180MCU_OCD_SRAM_PATH}" ; then \
+			echo "Using existing installation of 3.3V SRAM library from ${GF180MCU_OCD_SRAM_PATH}" ; \
+		else \
+			echo "Downloading 3.3V SRAM library from ${GF180MCU_OCD_SRAM_PATH}" ; \
+			../scripts/download.sh ${PDK_LIB_OCD_SRAM} ${GF180MCU_OCD_SRAM_PATH} $${OCD_IP_SRAM_COMMIT}; \
+		fi ; \
+	fi
+
 osu-sc-repo:
 	if test "x${REFERENCE_JSON}" != "x"; then \
 		OSU_SC_COMMIT=`cat ${REFERENCE_JSON} | grep gf180mcu_osu_sc_gf12t3v3 | grep -v COMMIT | cut -d'"' -f4` ; \
@@ -630,7 +650,7 @@
 
 
 # Update prerequisites
-update: update-pr-repo update-pv-repo update-io-repo update-sc-7t-repo update-sc-9t-repo update-sram-repo update-osu-sc-repo update-avalon-sc-repo update-ocd-io-repo
+update: update-pr-repo update-pv-repo update-io-repo update-sc-7t-repo update-sc-9t-repo update-sram-repo update-ocd-sram-repo update-osu-sc-repo update-avalon-sc-repo update-ocd-io-repo
 
 update-pr-repo:
 	if test "x${GF180MCU_PR_PATH}" != "x" ; then \
@@ -664,10 +684,16 @@
 
 update-sram-repo:
 	if test "x${GF180MCU_SRAM_PATH}" != "x" ; then \
-		echo "Updating GF180MCU SRAM macro library from ${PDK_LIB_SRAM}" ; \
+		echo "Updating GF180MCU 5V SRAM macro library from ${PDK_LIB_SRAM}" ; \
 		../scripts/update.sh ${GF180MCU_SRAM_PATH} ; \
 	fi
 
+update-ocd-sram-repo:
+	if test "x${GF180MCU_OCD_SRAM_PATH}" != "x" ; then \
+		echo "Updating GF180MCU Open Circuit Design 3.3V SRAM macro library from ${PDK_LIB_OCD_SRAM}" ; \
+		../scripts/update.sh ${GF180MCU_OCD_SRAM_PATH} ; \
+	fi
+
 update-osu-sc-repo:
 	if test "x${GF180MCU_OSU_SC_PATH}" != "x" ; then \
 		echo "Updating GF180MCU OSU 3.3V standard cell library from ${PDK_LIB_OSU_SC}" ; \
@@ -864,13 +890,13 @@
 		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.max ;\
 	fi
 
-vendor-A: primitive-build-A digital-7t5v0-build-A digital-9t5v0-build-A io-build-A ocd-io-build-A ocd-alpha-build-A sram-build-A digital-osu-build-A digital-avalon-build-A
+vendor-A: primitive-build-A digital-7t5v0-build-A digital-9t5v0-build-A io-build-A ocd-io-build-A ocd-alpha-build-A sram-build-A ocd-sram-build-A digital-osu-build-A digital-avalon-build-A
 
-vendor-B: primitive-build-B digital-7t5v0-build-B digital-9t5v0-build-B io-build-B ocd-io-build-B ocd-alpha-build-B sram-build-B digital-osu-build-B digital-avalon-build-B
+vendor-B: primitive-build-B digital-7t5v0-build-B digital-9t5v0-build-B io-build-B ocd-io-build-B ocd-alpha-build-B sram-build-B ocd-sram-build-B digital-osu-build-B digital-avalon-build-B
 
-vendor-C: primitive-build-C digital-7t5v0-build-C digital-9t5v0-build-C io-build-C ocd-io-build-C ocd-alpha-build-C sram-build-C digital-osu-build-C digital-avalon-build-C
+vendor-C: primitive-build-C digital-7t5v0-build-C digital-9t5v0-build-C io-build-C ocd-io-build-C ocd-alpha-build-C sram-build-C ocd-sram-build-C digital-osu-build-C digital-avalon-build-C
 
-vendor-D: primitive-build-D digital-7t5v0-build-D digital-9t5v0-build-D io-build-D ocd-io-build-D ocd-alpha-build-D sram-build-D digital-osu-build-D digital-avalon-build-D
+vendor-D: primitive-build-D digital-7t5v0-build-D digital-9t5v0-build-D io-build-D ocd-io-build-D ocd-alpha-build-D sram-build-D ocd-sram-build-D digital-osu-build-D digital-avalon-build-D
 
 primitive-build-%:
 	if test "x${GF180MCU_PR_PATH}" != "x" ; then \
@@ -923,11 +949,19 @@
 sram-build-%:
 	if test "x${GF180MCU_SRAM_PATH}" != "x" ; then \
 		if test -d ${GF180MCU_SRAM_PATH} ; then \
-			echo "Building SRAM libraries" ;\
+			echo "Building 5V SRAM libraries" ;\
 			make sram-$* ;\
 		fi ;\
 	fi
 
+ocd-sram-build-%:
+	if test "x${GF180MCU_OCD_SRAM_PATH}" != "x" ; then \
+		if test -d ${GF180MCU_OCD_SRAM_PATH} ; then \
+			echo "Building Open Circuit Design 3.3V SRAM libraries" ;\
+			make ocd-sram-$* ;\
+		fi ;\
+	fi
+
 digital-osu-build-%:
 	if test "x${GF180MCU_OSU_SC_PATH}" != "x" ; then \
 		if test -d ${GF180MCU_OSU_SC_PATH} ; then \
@@ -1412,7 +1446,7 @@
 		${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_ocd_alpha_small/scripts
 
 sram-%:
-	# Install SRAM macros from vendor files
+	# Install 5V SRAM macros from vendor files
 	${STAGE} -source ${GF180MCU_SRAM_PATH} \
 		-target ${STAGING_PATH}/${GF180MCU$*} \
 		-cdl cells/*/*.cdl noconvert \
@@ -1431,6 +1465,17 @@
 	${REMOVELAB} ${STAGING_PATH}/${GF180MCU$*} gf180mcu_fd_ip_sram \
 		rarray4_\* BL\* -mag
 
+ocd-sram-%:
+	# Install Open Circuit Design 3.3V SRAM macros from vendor files
+	${STAGE} -source ${GF180MCU_OCD_SRAM_PATH} \
+		-target ${STAGING_PATH}/${GF180MCU$*} \
+		-lib cells/*/*.lib \
+		-spice cells/*/*.spice \
+		-gds cells/*/*.gds \
+		-lef cells/*/*.lef \
+		-verilog cells/*/*.v \
+		-library general gf180mcu_ocd_ip_sram 2>&1 | tee -a ${GF180MCU$*}_make.log
+
 install: $(foreach var, ${VARIANTS}, install-$(var))
 
 install-A:
diff --git a/gf180mcu/gf180mcu.json b/gf180mcu/gf180mcu.json
index e3c2fe6..d8c07ce 100644
--- a/gf180mcu/gf180mcu.json
+++ b/gf180mcu/gf180mcu.json
@@ -81,6 +81,7 @@
     },
     "memory": {
         "gf180mcu_fd_ip_sram": "FD_IP_SRAM_COMMIT"
+        "gf180mcu_ocd_ip_sram": "OCD_IP_SRAM_COMMIT"
     },
     "other": {
 	"gf180mcu_ocd_alpha": "OCD_ALPHA_COMMIT"
@@ -94,7 +95,7 @@
         "magic": "MAGIC_COMMIT"
     },
     "reference": {
-        "open_pdks": "2ae2b2d4c5d737d904aced51d293de498754046e",
+        "open_pdks": "0da75e73164cb90ca1eb1cab4803922e384e2b9d",
         "magic": "c87e5baff4df799bec95f05406f7e97ab67e2c4f",
         "gf180mcu_pdk": "a897aa30369d3bcec87d9d50ce9b01f320f854ef",
         "gf180mcu_fd_pr": "739f508876db86bd7d3403f1fe056dedfeaabdab",
@@ -106,6 +107,7 @@
         "gf180mcu_as_sc_mcu7t3v3": "51f4e2a6d9692f3f8982dffaf7c012272a4b4ca3",
         "gf180mcu_ocd_io": "289e06e35aea55761b998cb6d13f7e70694f05fe",
         "gf180mcu_ocd_alpha": "076bab7ac11118e1aa810ccf75e5c297b5501fcc",
+        "gf180mcu_ocd_ip_sram": "94c94dc6bad6140c22ff00bdd4f92266db432343",
         "gf180mcu_osu_sc_gf12t3v3": "aa2fa8cd1bcb8fe98669acd05c0b0c65879268b3",
         "gf180mcu_osu_sc_gf9t3v3": "aa2fa8cd1bcb8fe98669acd05c0b0c65879268b3"
     }
diff --git a/gf180mcu/magic/gf180mcu.magicrc b/gf180mcu/magic/gf180mcu.magicrc
index 0960e6b..cf35d86 100644
--- a/gf180mcu/magic/gf180mcu.magicrc
+++ b/gf180mcu/magic/gf180mcu.magicrc
@@ -59,4 +59,5 @@
 addpath ${PDK_ROOT}/TECHNAME/libs.ref/gf180mcu_fd_ip_sram/${MAGTYPE}
 addpath ${PDK_ROOT}/TECHNAME/libs.ref/gf180mcu_as_sc_mcu7t3v3/${MAGTYPE}
 addpath ${PDK_ROOT}/TECHNAME/libs.ref/gf180mcu_ocd_io/${MAGTYPE}
+addpath ${PDK_ROOT}/TECHNAME/libs.ref/gf180mcu_ocd_ip_sram/${MAGTYPE}
 
diff --git a/scripts/configure b/scripts/configure
index 04062d2..567946f 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -615,6 +615,7 @@
 ENABLED_TECHS
 EF_STYLE
 USE_REFERENCE
+GF180MCU_OCD_IP_SRAM_PATH
 GF180MCU_OCD_IO_PATH
 GF180MCU_AS_SC_PATH
 GF180MCU_OSU_SC_PATH
@@ -756,6 +757,7 @@
 enable_osu_sc_gf180mcu
 enable_avalon_sc_gf180mcu
 enable_ocd_io_gf180mcu
+enable_ocd_sram_gf180mcu
 with_reference
 with_ef_style
 '
@@ -1504,6 +1506,9 @@
   --enable-ocd-io-gf180mcu[=path]
                           Install gf180mcu_ocd_io. If path is omitted, the repository
                           will be downloaded. [default=enabled]
+  --enable-ocd-sram-gf180mcu[=path]
+                          Install gf180mcu_ocd_ip_sram. If path is omitted, the repository
+                          will be downloaded. [default=enabled]
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -4138,6 +4143,50 @@
 
 
 
+
+
+
+    # echo target targetvar flag location
+
+    GF180MCU_OCD_IP_SRAM_PATH=""
+
+    # Check whether --enable-ocd-sram-gf180mcu was given.
+if test ${enable_ocd_sram_gf180mcu+y}
+then :
+  enableval=$enable_ocd_sram_gf180mcu;
+            if test "$enableval" == "yes" -o "$enableval" == "YES"; then
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Package 'gf180mcu_ocd_ip_sram' will be installed automatically during make." >&5
+printf "%s\n" "$as_me: Package 'gf180mcu_ocd_ip_sram' will be installed automatically during make." >&6;}
+        	export GF180MCU_OCD_IP_SRAM_PATH=../sources/gf180mcu_ocd_ip_sram
+            elif test "$enableval" == "no" -o "$enableval" == "NO"; then
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Disabling package 'gf180mcu_ocd_ip_sram'" >&5
+printf "%s\n" "$as_me: Disabling package 'gf180mcu_ocd_ip_sram'" >&6;}
+    		export GF180MCU_OCD_IP_SRAM_PATH=""
+            else
+                GF180MCU_OCD_IP_SRAM_PATH=$enableval
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Enabling package 'gf180mcu_ocd_ip_sram' at $GF180MCU_OCD_IP_SRAM_PATH" >&5
+printf "%s\n" "$as_me: Enabling package 'gf180mcu_ocd_ip_sram' at $GF180MCU_OCD_IP_SRAM_PATH" >&6;}
+            fi
+            GF180MCU_OCD_IP_SRAM_PATH=`realpath $GF180MCU_OCD_IP_SRAM_PATH`
+
+else case e in #(
+  e)
+            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Package 'gf180mcu_ocd_ip_sram' will be installed automatically during make." >&5
+printf "%s\n" "$as_me: Package 'gf180mcu_ocd_ip_sram' will be installed automatically during make." >&6;}
+	    GF180MCU_OCD_IP_SRAM_PATH=../sources/gf180mcu_ocd_ip_sram
+
+     ;;
+esac
+fi
+
+
+
+
+
+
+
+
+
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Tools enabled for PDK setup installation: klayout magic netgen irsim openlane qflow xschem xcircuit" >&5
 printf "%s\n" "$as_me: Tools enabled for PDK setup installation: klayout magic netgen irsim openlane qflow xschem xcircuit" >&6;}
 
diff --git a/scripts/configure.ac b/scripts/configure.ac
index 86bc355..00d8624 100755
--- a/scripts/configure.ac
+++ b/scripts/configure.ac
@@ -265,6 +265,7 @@
 M4_GEN_INSTALLATION(gf180mcu_osu_sc, osu-sc-gf180mcu, ../sources)
 M4_GEN_INSTALLATION(gf180mcu_as_sc, avalon-sc-gf180mcu, ../sources)
 M4_GEN_INSTALLATION(gf180mcu_ocd_io, ocd-io-gf180mcu, ../sources)
+M4_GEN_INSTALLATION(gf180mcu_ocd_ip_sram, ocd-sram-gf180mcu, ../sources)
 
 AC_DEFUN([M4_GEN_WITH_TOOLS], [
     m4_foreach_w(tool, $1, [
diff --git a/sky130/sky130.json b/sky130/sky130.json
index 866c299..78c9de0 100644
--- a/sky130/sky130.json
+++ b/sky130/sky130.json
@@ -94,7 +94,7 @@
         "magic": "MAGIC_COMMIT"
     },
     "reference": {
-        "open_pdks": "2ae2b2d4c5d737d904aced51d293de498754046e",
+        "open_pdks": "0da75e73164cb90ca1eb1cab4803922e384e2b9d",
         "magic": "c87e5baff4df799bec95f05406f7e97ab67e2c4f",
         "sky130_fd_pr": "c996d0e7417d7574714079050e2768da70f7fdca",
         "sky130_fd_io": "e60737bf624df95c211fe99c007ddec78e3e081d",