Transition from OpenLane to LibreLane

Signed-off-by: Leo Moser <leomoser99@gmail.com>
diff --git a/common/README b/common/README
index 521f84c..2bcb4e7 100644
--- a/common/README
+++ b/common/README
@@ -69,7 +69,7 @@
 	netgen	    netgen
 	klayout	    klayout
 	qflow	    qflow
-	openlane    openlane
+	librelane    librelane
 		
     Current IP library file formats supported in this version of open_pdks*:
 	Format	    Directory name
diff --git a/gf180mcu/Makefile.in b/gf180mcu/Makefile.in
index 89d4a28..2757966 100644
--- a/gf180mcu/Makefile.in
+++ b/gf180mcu/Makefile.in
@@ -309,7 +309,7 @@
 QFLOWTOP = libs.tech/qflow
 IRSIMTOP = libs.tech/irsim
 KLAYOUTTOP = libs.tech/klayout
-OPENLANETOP = libs.tech/openlane
+LIBRELANETOP = libs.tech/librelane
 XSCHEMTOP = libs.tech/xschem
 XCIRCUITTOP = libs.tech/xcircuit
 NGSPICETOP = libs.tech/ngspice
@@ -321,7 +321,7 @@
 IRSIMPATH = ${IRSIMTOP}
 QFLOWPATH = ${QFLOWTOP}
 KLAYOUTPATH = ${KLAYOUTTOP}
-OPENLANEPATH = ${OPENLANETOP}
+LIBRELANEPATH = ${LIBRELANETOP}
 XSCHEMPATH = ${XSCHEMTOP}
 XCIRCUITPATH = ${XCIRCUITTOP}
 NGSPICEPATH = ${NGSPICETOP}
@@ -331,7 +331,7 @@
 IRSIMTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${IRSIMTOP}
 QFLOWTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${QFLOWTOP}
 KLAYOUTTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${KLAYOUTTOP}
-OPENLANETOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${OPENLANETOP}
+LIBRELANETOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${LIBRELANETOP}
 XSCHEMTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${XSCHEMTOP}
 XCIRCUITTOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${XCIRCUITTOP}
 NGSPICETOP_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${NGSPICETOP}
@@ -341,7 +341,7 @@
 IRSIM_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${IRSIMPATH}
 QFLOW_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${QFLOWPATH}
 KLAYOUT_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${KLAYOUTPATH}
-OPENLANE_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${OPENLANEPATH}
+LIBRELANE_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${LIBRELANEPATH}
 XSCHEM_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${XSCHEMPATH}
 XCIRCUIT_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${XCIRCUITPATH}
 NGSPICE_STAGING_A = ${STAGING_PATH}/${GF180MCUA}/${NGSPICEPATH}
@@ -351,7 +351,7 @@
 IRSIMTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${IRSIMTOP}
 QFLOWTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${QFLOWTOP}
 KLAYOUTTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${KLAYOUTTOP}
-OPENLANETOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${OPENLANETOP}
+LIBRELANETOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${LIBRELANETOP}
 XSCHEMTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${XSCHEMTOP}
 XCIRCUITTOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${XCIRCUITTOP}
 NGSPICETOP_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${NGSPICETOP}
@@ -361,7 +361,7 @@
 IRSIM_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${IRSIMPATH}
 QFLOW_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${QFLOWPATH}
 KLAYOUT_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${KLAYOUTPATH}
-OPENLANE_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${OPENLANEPATH}
+LIBRELANE_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${LIBRELANEPATH}
 XSCHEM_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${XSCHEMPATH}
 XCIRCUIT_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${XCIRCUITPATH}
 NGSPICE_STAGING_B = ${STAGING_PATH}/${GF180MCUB}/${NGSPICEPATH}
@@ -371,7 +371,7 @@
 IRSIMTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${IRSIMTOP}
 QFLOWTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${QFLOWTOP}
 KLAYOUTTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${KLAYOUTTOP}
-OPENLANETOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${OPENLANETOP}
+LIBRELANETOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${LIBRELANETOP}
 XSCHEMTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${XSCHEMTOP}
 XCIRCUITTOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${XCIRCUITTOP}
 NGSPICETOP_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${NGSPICETOP}
@@ -381,7 +381,7 @@
 IRSIM_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${IRSIMPATH}
 QFLOW_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${QFLOWPATH}
 KLAYOUT_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${KLAYOUTPATH}
-OPENLANE_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${OPENLANEPATH}
+LIBRELANE_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${LIBRELANEPATH}
 XSCHEM_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${XSCHEMPATH}
 XCIRCUIT_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${XCIRCUITPATH}
 NGSPICE_STAGING_C = ${STAGING_PATH}/${GF180MCUC}/${NGSPICEPATH}
@@ -391,7 +391,7 @@
 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}
+LIBRELANETOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${LIBRELANETOP}
 XSCHEMTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XSCHEMTOP}
 XCIRCUITTOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XCIRCUITTOP}
 NGSPICETOP_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NGSPICETOP}
@@ -401,7 +401,7 @@
 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}
+LIBRELANE_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${LIBRELANEPATH}
 XSCHEM_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XSCHEMPATH}
 XCIRCUIT_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${XCIRCUITPATH}
 NGSPICE_STAGING_D = ${STAGING_PATH}/${GF180MCUD}/${NGSPICEPATH}
@@ -423,10 +423,10 @@
 C_FULLSTACK = 5LM_1TM_9K
 D_FULLSTACK = 5LM_1TM_11K
 
-# Openlane has a number of files that are common to all digital
+# LibreLane 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 drc_exclude.cells
+LIBRELANE_COMMON = config.tcl tracks.info no_synth.cells drc_exclude.cells
 
 # 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.
@@ -456,10 +456,10 @@
         TOOLS += klayout
 endif
 
-# OPENLANE_DISABLED = 0 | 1
-OPENLANE_DISABLED = @OPENLANE_DISABLED@
-ifneq (${OPENLANE_DISABLED}, 1)
-        TOOLS += openlane
+# LIBRELANE_DISABLED = 0 | 1
+LIBRELANE_DISABLED = @LIBRELANE_DISABLED@
+ifneq (${LIBRELANE_DISABLED}, 1)
+        TOOLS += librelane
 endif
 
 # QFLOW_DISABLED = 0 | 1
@@ -849,57 +849,57 @@
 	./custom/scripts/fix_xschemrc.py ${XSCHEM_STAGING_$*}/xschemrc \
 		${GF180MCU$*} 2>&1 | tee -a ${GF180MCU$*}_make.log || true
 
-openlane-%: openlane/config.tcl openlane/gf180mcu_fd_sc_mcu7t5v0/config.tcl openlane/gf180mcu_fd_sc_mcu9t5v0/config.tcl
-	mkdir -p ${OPENLANETOP_STAGING_$*}
-	mkdir -p ${OPENLANE_STAGING_$*}
-	rm -rf ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0
-	rm -rf ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0
-	mkdir ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0
-	mkdir ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0
-	for file in ${OPENLANE_COMMON} ; do \
-		rm -f ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0/$$file ; \
+librelane-%: librelane/config.tcl librelane/gf180mcu_fd_sc_mcu7t5v0/config.tcl librelane/gf180mcu_fd_sc_mcu9t5v0/config.tcl
+	mkdir -p ${LIBRELANETOP_STAGING_$*}
+	mkdir -p ${LIBRELANE_STAGING_$*}
+	rm -rf ${LIBRELANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0
+	rm -rf ${LIBRELANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0
+	mkdir ${LIBRELANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0
+	mkdir ${LIBRELANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0
+	for file in ${LIBRELANE_COMMON} ; do \
+		rm -f ${LIBRELANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-		rm -f ${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+		rm -f ${LIBRELANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0/$$file ; \
 	done
-	${CPP} ${GF180MCU$*_DEFS} openlane/config.tcl ${OPENLANE_STAGING_$*}/config.tcl
+	${CPP} ${GF180MCU$*_DEFS} librelane/config.tcl ${LIBRELANE_STAGING_$*}/config.tcl
 
-	for file in ${OPENLANE_COMMON} ; do \
-		${CPP} -quiet ${GF180MCU$*_DEFS} openlane/gf180mcu_fd_sc_mcu7t5v0/$$file \
-			${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+		${CPP} -quiet ${GF180MCU$*_DEFS} librelane/gf180mcu_fd_sc_mcu7t5v0/$$file \
+			${LIBRELANE_STAGING_$*}/gf180mcu_fd_sc_mcu7t5v0/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-		${CPP} -quiet ${GF180MCU$*_DEFS} openlane/gf180mcu_fd_sc_mcu9t5v0/$$file \
-			${OPENLANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+		${CPP} -quiet ${GF180MCU$*_DEFS} librelane/gf180mcu_fd_sc_mcu9t5v0/$$file \
+			${LIBRELANE_STAGING_$*}/gf180mcu_fd_sc_mcu9t5v0/$$file ; \
 	done
 
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.min.*
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.nom.*
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.max.*
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.gf180mcu$*.min.*
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.gf180mcu$*.nom.*
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.gf180mcu$*.max.*
 
-	if test -f openlane/rules.openrcx.gf180mcu$*.min.magic ; then \
-		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.min.magic \
-		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.min.magic ;\
+	if test -f librelane/rules.openrcx.gf180mcu$*.min.magic ; then \
+		${CPP} ${GF180MCU$*_DEFS} librelane/rules.openrcx.gf180mcu$*.min.magic \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.gf180mcu$*.min.magic ;\
 	fi
-	if test -f openlane/rules.openrcx.gf180mcu$*.nom.magic ; then \
-		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.nom.magic \
-		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.nom.magic ;\
+	if test -f librelane/rules.openrcx.gf180mcu$*.nom.magic ; then \
+		${CPP} ${GF180MCU$*_DEFS} librelane/rules.openrcx.gf180mcu$*.nom.magic \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.gf180mcu$*.nom.magic ;\
 	fi
-	if test -f openlane/rules.openrcx.gf180mcu$*.max.magic ; then \
-		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.max.magic \
-		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.max.magic ;\
+	if test -f librelane/rules.openrcx.gf180mcu$*.max.magic ; then \
+		${CPP} ${GF180MCU$*_DEFS} librelane/rules.openrcx.gf180mcu$*.max.magic \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.gf180mcu$*.max.magic ;\
 	fi
-	if test -f openlane/rules.openrcx.gf180mcu$*.min ; then \
-		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.min \
-		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.min ;\
+	if test -f librelane/rules.openrcx.gf180mcu$*.min ; then \
+		${CPP} ${GF180MCU$*_DEFS} librelane/rules.openrcx.gf180mcu$*.min \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.gf180mcu$*.min ;\
 	fi
-	if test -f openlane/rules.openrcx.gf180mcu$*.nom ; then \
-		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.nom \
-		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.nom ;\
+	if test -f librelane/rules.openrcx.gf180mcu$*.nom ; then \
+		${CPP} ${GF180MCU$*_DEFS} librelane/rules.openrcx.gf180mcu$*.nom \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.gf180mcu$*.nom ;\
 	fi
-	if test -f openlane/rules.openrcx.gf180mcu$*.max ; then \
-		${CPP} ${GF180MCU$*_DEFS} openlane/rules.openrcx.gf180mcu$*.max \
-		${OPENLANE_STAGING_$*}/rules.openrcx.gf180mcu$*.max ;\
+	if test -f librelane/rules.openrcx.gf180mcu$*.max ; then \
+		${CPP} ${GF180MCU$*_DEFS} librelane/rules.openrcx.gf180mcu$*.max \
+		${LIBRELANE_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 ocd-sram-build-A digital-osu-build-A digital-avalon-build-A
@@ -1300,11 +1300,11 @@
 	cp -rp ${AVALON_REF_SOURCE}/spice ${STAGING_PATH}/${GF180MCU$*}/libs.ref/gf180mcu_as_sc_mcu7t3v3
 
 	# This library is done the right way and has its own librelane setup.
-	mkdir -p ${OPENLANETOP_STAGING_$*}
-	mkdir -p ${OPENLANE_STAGING_$*}
-	rm -rf ${OPENLANE_STAGING_$*}/gf180mcu_as_sc_mcu7t3v3
-	mkdir ${OPENLANE_STAGING_$*}/gf180mcu_as_sc_mcu7t3v3
-	cp -rp ${AVALON_TECH_SOURCE}/librelane/gf180mcu_as_sc_mcu7t3v3 ${OPENLANE_STAGING_$*}
+	mkdir -p ${LIBRELANETOP_STAGING_$*}
+	mkdir -p ${LIBRELANE_STAGING_$*}
+	rm -rf ${LIBRELANE_STAGING_$*}/gf180mcu_as_sc_mcu7t3v3
+	mkdir ${LIBRELANE_STAGING_$*}/gf180mcu_as_sc_mcu7t3v3
+	cp -rp ${AVALON_TECH_SOURCE}/librelane/gf180mcu_as_sc_mcu7t3v3 ${LIBRELANE_STAGING_$*}
 
 io-%:
 	# Install custom additions to the I/O pad library
diff --git a/gf180mcu/openlane/config.tcl b/gf180mcu/librelane/config.tcl
similarity index 86%
rename from gf180mcu/openlane/config.tcl
rename to gf180mcu/librelane/config.tcl
index 6e45d30..3c5121f 100644
--- a/gf180mcu/openlane/config.tcl
+++ b/gf180mcu/librelane/config.tcl
@@ -40,31 +40,31 @@
 
 
 # Latch mapping
-set ::env(SYNTH_LATCH_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/latch_map.v"
+set ::env(SYNTH_LATCH_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/latch_map.v"
 
 # Tri-state buffer mapping
-set ::env(TRISTATE_BUFFER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/tribuff_map.v"
+set ::env(TRISTATE_BUFFER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/tribuff_map.v"
 
 # Full adder mapping
-set ::env(FULL_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/fa_map.v"
+set ::env(FULL_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/fa_map.v"
 
 # Ripple carry adder mapping
-set ::env(RIPPLE_CARRY_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/rca_map.v"
+set ::env(RIPPLE_CARRY_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/rca_map.v"
 
 # Carry select adder mapping
-set ::env(CARRY_SELECT_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/csa_map.v"
+set ::env(CARRY_SELECT_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/csa_map.v"
 
 # Default No Synth List
-set ::env(NO_SYNTH_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
+set ::env(NO_SYNTH_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
 
 # Default DRC Exclude List
-set ::env(DRC_EXCLUDE_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/drc_exclude.cells"
+set ::env(DRC_EXCLUDE_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/drc_exclude.cells"
 
 # DRC Exclude List for Optimization library
-set ::env(DRC_EXCLUDE_CELL_LIST_OPT) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY_OPT)/drc_exclude.cells"
+set ::env(DRC_EXCLUDE_CELL_LIST_OPT) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY_OPT)/drc_exclude.cells"
 
 # Open-RCX Rules File
-set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rcx_rules.info"
+set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rcx_rules.info"
 
 # Floorplanning
 ## Layer Info
@@ -101,9 +101,9 @@
 set ::env(FP_PDN_CORE_RING_HOFFSET) 6
 
 # Timing
-set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).nom"
-set ::env(RCX_RULES_MIN) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).min"
-set ::env(RCX_RULES_MAX) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).max"
+set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).nom"
+set ::env(RCX_RULES_MIN) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).min"
+set ::env(RCX_RULES_MAX) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).max"
 
 # Routing
 set ::env(METAL_LAYER_NAMES) "Metal1 Metal2 Metal3 Metal4 Metal5"
@@ -113,7 +113,7 @@
 set ::env(GRT_LAYER_ADJUSTMENTS) "0,0,0,0,0"
 
 ## Tracks info
-set ::env(TRACKS_INFO_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/tracks.info"
+set ::env(TRACKS_INFO_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/tracks.info"
 
 # Signoff
 ## Magic
diff --git a/gf180mcu/openlane/gf180mcu_fd_sc_mcu7t5v0/config.tcl b/gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/config.tcl
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_fd_sc_mcu7t5v0/config.tcl
rename to gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/config.tcl
diff --git a/gf180mcu/openlane/gf180mcu_fd_sc_mcu7t5v0/drc_exclude.cells b/gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/drc_exclude.cells
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_fd_sc_mcu7t5v0/drc_exclude.cells
rename to gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/drc_exclude.cells
diff --git a/gf180mcu/openlane/gf180mcu_fd_sc_mcu7t5v0/no_synth.cells b/gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/no_synth.cells
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_fd_sc_mcu7t5v0/no_synth.cells
rename to gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/no_synth.cells
diff --git a/gf180mcu/openlane/gf180mcu_fd_sc_mcu7t5v0/tracks.info b/gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/tracks.info
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_fd_sc_mcu7t5v0/tracks.info
rename to gf180mcu/librelane/gf180mcu_fd_sc_mcu7t5v0/tracks.info
diff --git a/gf180mcu/openlane/gf180mcu_fd_sc_mcu9t5v0/config.tcl b/gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/config.tcl
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_fd_sc_mcu9t5v0/config.tcl
rename to gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/config.tcl
diff --git a/gf180mcu/openlane/gf180mcu_fd_sc_mcu9t5v0/no_synth.cells b/gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/no_synth.cells
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_fd_sc_mcu9t5v0/no_synth.cells
rename to gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/no_synth.cells
diff --git a/gf180mcu/openlane/gf180mcu_fd_sc_mcu9t5v0/tracks.info b/gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/tracks.info
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_fd_sc_mcu9t5v0/tracks.info
rename to gf180mcu/librelane/gf180mcu_fd_sc_mcu9t5v0/tracks.info
diff --git a/gf180mcu/openlane/gf180mcu_osu_sc_gp12t3v3/config.tcl b/gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/config.tcl
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_osu_sc_gp12t3v3/config.tcl
rename to gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/config.tcl
diff --git a/gf180mcu/openlane/gf180mcu_osu_sc_gp12t3v3/drc_exclude.cells b/gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/drc_exclude.cells
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_osu_sc_gp12t3v3/drc_exclude.cells
rename to gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/drc_exclude.cells
diff --git a/gf180mcu/openlane/gf180mcu_osu_sc_gp12t3v3/no_synth.cells b/gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/no_synth.cells
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_osu_sc_gp12t3v3/no_synth.cells
rename to gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/no_synth.cells
diff --git a/gf180mcu/openlane/gf180mcu_osu_sc_gp12t3v3/tracks.info b/gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/tracks.info
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_osu_sc_gp12t3v3/tracks.info
rename to gf180mcu/librelane/gf180mcu_osu_sc_gp12t3v3/tracks.info
diff --git a/gf180mcu/openlane/gf180mcu_osu_sc_gp9t3v3/config.tcl b/gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/config.tcl
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_osu_sc_gp9t3v3/config.tcl
rename to gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/config.tcl
diff --git a/gf180mcu/openlane/gf180mcu_osu_sc_gp9t3v3/drc_exclude.cells b/gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/drc_exclude.cells
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_osu_sc_gp9t3v3/drc_exclude.cells
rename to gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/drc_exclude.cells
diff --git a/gf180mcu/openlane/gf180mcu_osu_sc_gp9t3v3/no_synth.cells b/gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/no_synth.cells
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_osu_sc_gp9t3v3/no_synth.cells
rename to gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/no_synth.cells
diff --git a/gf180mcu/openlane/gf180mcu_osu_sc_gp9t3v3/tracks.info b/gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/tracks.info
similarity index 100%
rename from gf180mcu/openlane/gf180mcu_osu_sc_gp9t3v3/tracks.info
rename to gf180mcu/librelane/gf180mcu_osu_sc_gp9t3v3/tracks.info
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuC.max b/gf180mcu/librelane/rules.openrcx.gf180mcuC.max
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuC.max
rename to gf180mcu/librelane/rules.openrcx.gf180mcuC.max
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuC.max.magic b/gf180mcu/librelane/rules.openrcx.gf180mcuC.max.magic
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuC.max.magic
rename to gf180mcu/librelane/rules.openrcx.gf180mcuC.max.magic
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuC.min b/gf180mcu/librelane/rules.openrcx.gf180mcuC.min
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuC.min
rename to gf180mcu/librelane/rules.openrcx.gf180mcuC.min
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuC.min.magic b/gf180mcu/librelane/rules.openrcx.gf180mcuC.min.magic
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuC.min.magic
rename to gf180mcu/librelane/rules.openrcx.gf180mcuC.min.magic
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuC.nom b/gf180mcu/librelane/rules.openrcx.gf180mcuC.nom
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuC.nom
rename to gf180mcu/librelane/rules.openrcx.gf180mcuC.nom
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuC.nom.magic b/gf180mcu/librelane/rules.openrcx.gf180mcuC.nom.magic
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuC.nom.magic
rename to gf180mcu/librelane/rules.openrcx.gf180mcuC.nom.magic
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuD.max b/gf180mcu/librelane/rules.openrcx.gf180mcuD.max
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuD.max
rename to gf180mcu/librelane/rules.openrcx.gf180mcuD.max
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuD.max.magic b/gf180mcu/librelane/rules.openrcx.gf180mcuD.max.magic
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuD.max.magic
rename to gf180mcu/librelane/rules.openrcx.gf180mcuD.max.magic
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuD.min b/gf180mcu/librelane/rules.openrcx.gf180mcuD.min
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuD.min
rename to gf180mcu/librelane/rules.openrcx.gf180mcuD.min
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuD.min.magic b/gf180mcu/librelane/rules.openrcx.gf180mcuD.min.magic
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuD.min.magic
rename to gf180mcu/librelane/rules.openrcx.gf180mcuD.min.magic
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuD.nom b/gf180mcu/librelane/rules.openrcx.gf180mcuD.nom
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuD.nom
rename to gf180mcu/librelane/rules.openrcx.gf180mcuD.nom
diff --git a/gf180mcu/openlane/rules.openrcx.gf180mcuD.nom.magic b/gf180mcu/librelane/rules.openrcx.gf180mcuD.nom.magic
similarity index 100%
rename from gf180mcu/openlane/rules.openrcx.gf180mcuD.nom.magic
rename to gf180mcu/librelane/rules.openrcx.gf180mcuD.nom.magic
diff --git a/scripts/configure b/scripts/configure
index f0f2a72..97d4d32 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -651,7 +651,7 @@
 XCIRCUIT_DISABLED
 XSCHEM_DISABLED
 QFLOW_DISABLED
-OPENLANE_DISABLED
+LIBRELANE_DISABLED
 IRSIM_DISABLED
 NETGEN_DISABLED
 MAGIC_DISABLED
@@ -725,7 +725,7 @@
 enable_magic
 enable_netgen
 enable_irsim
-enable_openlane
+enable_librelane
 enable_qflow
 enable_xschem
 enable_xcircuit
@@ -1405,8 +1405,8 @@
                 Enable or disable irsim setup [default=enabled]
 
 
-  --enable-openlane
-                Enable or disable openlane setup [default=enabled]
+  --enable-librelane
+                Enable or disable librelane setup [default=enabled]
 
 
   --enable-qflow
@@ -2623,8 +2623,8 @@
 # Set variables for tool setups
 
 
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Found tools: klayout magic netgen irsim openlane qflow xschem xcircuit" >&5
-printf "%s\n" "$as_me: Found tools: klayout magic netgen irsim openlane qflow xschem xcircuit" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Found tools: klayout magic netgen irsim librelane qflow xschem xcircuit" >&5
+printf "%s\n" "$as_me: Found tools: klayout magic netgen irsim librelane qflow xschem xcircuit" >&6;}
 
 
 
@@ -2694,13 +2694,13 @@
 
 
 
-        OPENLANE_DISABLED=0
-        # Check whether --enable-openlane was given.
-if test ${enable_openlane+y}
+        LIBRELANE_DISABLED=0
+        # Check whether --enable-librelane was given.
+if test ${enable_librelane+y}
 then :
-  enableval=$enable_openlane;
+  enableval=$enable_librelane;
                 if test "$enableval" == "no" -o "$enableval" == "NO"; then
-                    OPENLANE_DISABLED=1
+                    LIBRELANE_DISABLED=1
                 fi
 
 
@@ -4236,8 +4236,8 @@
 
 
 
-{ 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;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Tools enabled for PDK setup installation: klayout magic netgen irsim librelane qflow xschem xcircuit" >&5
+printf "%s\n" "$as_me: Tools enabled for PDK setup installation: klayout magic netgen irsim librelane qflow xschem xcircuit" >&6;}
 
 # Check for "--with-reference"
 USE_REFERENCE=0
diff --git a/scripts/tools.txt b/scripts/tools.txt
index 82c5603..8c88836 100644
--- a/scripts/tools.txt
+++ b/scripts/tools.txt
@@ -2,7 +2,7 @@
 magic
 netgen
 irsim
-openlane
+librelane
 qflow
 xschem
 xcircuit
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index 2060565..ac7515d 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -54,8 +54,8 @@
 #	--disable-qflow
 #		Do not install setup files for the qflow synthesis flow.
 #
-#	--disable-openlane
-#		Do not install setup files for the openlane sythesis flow.
+#	--disable-librelane
+#		Do not install setup files for the librelane sythesis flow.
 #
 #	--disable-klayout
 #		Do not install setup files for the klayout layout tool.
@@ -465,7 +465,7 @@
 IRSIMTOP = libs.tech/irsim
 QFLOWTOP = libs.tech/qflow
 KLAYOUTTOP = libs.tech/klayout
-OPENLANETOP = libs.tech/openlane
+LIBRELANETOP = libs.tech/librelane
 XSCHEMTOP = libs.tech/xschem
 XCIRCUITTOP = libs.tech/xcircuit
 NGSPICETOP = libs.tech/ngspice
@@ -478,7 +478,7 @@
 IRSIMPATH = ${IRSIMTOP}
 QFLOWPATH = ${QFLOWTOP}
 KLAYOUTPATH = ${KLAYOUTTOP}
-OPENLANEPATH = ${OPENLANETOP}
+LIBRELANEPATH = ${LIBRELANETOP}
 XSCHEMPATH = ${XSCHEMTOP}
 XCIRCUITPATH = ${XCIRCUITTOP}
 NGSPICEPATH = ${NGSPICETOP}
@@ -488,7 +488,7 @@
 IRSIMTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${IRSIMTOP}
 QFLOWTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWTOP}
 KLAYOUTTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTTOP}
-OPENLANETOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANETOP}
+LIBRELANETOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${LIBRELANETOP}
 XSCHEMTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XSCHEMTOP}
 XCIRCUITTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XCIRCUITTOP}
 NGSPICETOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NGSPICETOP}
@@ -498,7 +498,7 @@
 IRSIM_STAGING_A = ${STAGING_PATH}/${SKY130A}/${IRSIMPATH}
 QFLOW_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWPATH}
 KLAYOUT_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTPATH}
-OPENLANE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANEPATH}
+LIBRELANE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${LIBRELANEPATH}
 XSCHEM_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XSCHEMPATH}
 XCIRCUIT_STAGING_A = ${STAGING_PATH}/${SKY130A}/${XCIRCUITPATH}
 NGSPICE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NGSPICEPATH}
@@ -508,7 +508,7 @@
 IRSIMTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${IRSIMTOP}
 QFLOWTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${QFLOWTOP}
 KLAYOUTTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${KLAYOUTTOP}
-OPENLANETOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${OPENLANETOP}
+LIBRELANETOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${LIBRELANETOP}
 XSCHEMTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${XSCHEMTOP}
 XCIRCUITTOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${XCIRCUITTOP}
 NGSPICETOP_STAGING_B = ${STAGING_PATH}/${SKY130B}/${NGSPICETOP}
@@ -518,7 +518,7 @@
 IRSIM_STAGING_B = ${STAGING_PATH}/${SKY130B}/${IRSIMPATH}
 QFLOW_STAGING_B = ${STAGING_PATH}/${SKY130B}/${QFLOWPATH}
 KLAYOUT_STAGING_B = ${STAGING_PATH}/${SKY130B}/${KLAYOUTPATH}
-OPENLANE_STAGING_B = ${STAGING_PATH}/${SKY130B}/${OPENLANEPATH}
+LIBRELANE_STAGING_B = ${STAGING_PATH}/${SKY130B}/${LIBRELANEPATH}
 XSCHEM_STAGING_B = ${STAGING_PATH}/${SKY130B}/${XSCHEMPATH}
 XCIRCUIT_STAGING_B = ${STAGING_PATH}/${SKY130B}/${XCIRCUITPATH}
 NGSPICE_STAGING_B = ${STAGING_PATH}/${SKY130B}/${NGSPICEPATH}
@@ -526,11 +526,11 @@
 SKY130A_DEFS += -DMAGIC_CURRENT=${MAGICCURRENT}
 SKY130B_DEFS += -DMAGIC_CURRENT=${MAGICCURRENT}
 
-# Openlane has a number of files that are common to all digital
+# LibreLane 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 drc_exclude.cells
-OPENLANE_COMMON += tribuff_map.v latch_map.v mux2_map.v mux4_map.v fa_map.v rca_map.v csa_map.v
+LIBRELANE_COMMON = config.tcl tracks.info no_synth.cells drc_exclude.cells
+LIBRELANE_COMMON += tribuff_map.v latch_map.v mux2_map.v mux4_map.v fa_map.v rca_map.v csa_map.v
 
 # Corners defined in IRSIM parameter files (wild-carded)
 IRSIM_CORNERS = `ls irsim/*.prm | cut -c14-`
@@ -561,10 +561,10 @@
         TOOLS += klayout
 endif
 
-# OPENLANE_DISABLED = 0 | 1
-OPENLANE_DISABLED = @OPENLANE_DISABLED@
-ifneq (${OPENLANE_DISABLED}, 1)
-        TOOLS += openlane
+# LIBRELANE_DISABLED = 0 | 1
+LIBRELANE_DISABLED = @LIBRELANE_DISABLED@
+ifneq (${LIBRELANE_DISABLED}, 1)
+        TOOLS += librelane
 endif
 
 # QFLOW_DISABLED = 0 | 1
@@ -1247,114 +1247,114 @@
 		fi ; \
 	fi
 
-openlane-%: openlane/config.tcl openlane/sky130_fd_sc_hd/config.tcl openlane/sky130_fd_sc_hs/config.tcl openlane/sky130_fd_sc_ms/config.tcl openlane/sky130_fd_sc_ls/config.tcl openlane/sky130_fd_sc_hdll/config.tcl openlane/sky130_osu_sc_t18/config.tcl
-	mkdir -p ${OPENLANETOP_STAGING_$*}
-	mkdir -p ${OPENLANE_STAGING_$*}
-	rm -rf ${OPENLANE_STAGING_$*}/custom_cells/*
-	mkdir -p ${OPENLANE_STAGING_$*}/sky130_fd_sc_hd
-	mkdir -p ${OPENLANE_STAGING_$*}/sky130_fd_sc_hs
-	mkdir -p ${OPENLANE_STAGING_$*}/sky130_fd_sc_ls
-	mkdir -p ${OPENLANE_STAGING_$*}/sky130_fd_sc_ms
-	mkdir -p ${OPENLANE_STAGING_$*}/sky130_fd_sc_hdll
-	mkdir -p ${OPENLANE_STAGING_$*}/sky130_fd_sc_hvl
-	mkdir -p ${OPENLANE_STAGING_$*}/sky130_osu_sc_t18
-	rm -f ${OPENLANE_STAGING_$*}/common_pdn.info
-	rm -f ${OPENLANE_STAGING_$*}/config.tcl
-	for file in ${OPENLANE_COMMON} ; do \
-	    rm -f ${OPENLANE_STAGING_$*}/sky130_fd_sc_hd/$$file ; \
+librelane-%: librelane/config.tcl librelane/sky130_fd_sc_hd/config.tcl librelane/sky130_fd_sc_hs/config.tcl librelane/sky130_fd_sc_ms/config.tcl librelane/sky130_fd_sc_ls/config.tcl librelane/sky130_fd_sc_hdll/config.tcl librelane/sky130_osu_sc_t18/config.tcl
+	mkdir -p ${LIBRELANETOP_STAGING_$*}
+	mkdir -p ${LIBRELANE_STAGING_$*}
+	rm -rf ${LIBRELANE_STAGING_$*}/custom_cells/*
+	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hd
+	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hs
+	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_ls
+	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_ms
+	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hdll
+	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hvl
+	mkdir -p ${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18
+	rm -f ${LIBRELANE_STAGING_$*}/common_pdn.info
+	rm -f ${LIBRELANE_STAGING_$*}/config.tcl
+	for file in ${LIBRELANE_COMMON} ; do \
+	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hd/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    rm -f ${OPENLANE_STAGING_$*}/sky130_fd_sc_hs/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hs/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    rm -f ${OPENLANE_STAGING_$*}/sky130_fd_sc_hdll/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hdll/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    rm -f ${OPENLANE_STAGING_$*}/sky130_fd_sc_ls/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_ls/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    rm -f ${OPENLANE_STAGING_$*}/sky130_fd_sc_ms/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_ms/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    rm -f ${OPENLANE_STAGING_$*}/sky130_fd_sc_hvl/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    rm -f ${LIBRELANE_STAGING_$*}/sky130_fd_sc_hvl/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    rm -f ${OPENLANE_STAGING_$*}/sky130_osu_sc_t18/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    rm -f ${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18/$$file ; \
 	done
 
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.min.magic
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.nom.magic
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.max.magic
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.magic
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.magic
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.magic
 
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.min.spef_extractor
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.nom.spef_extractor
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.max.spef_extractor
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.spef_extractor
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.spef_extractor
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.spef_extractor
 
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.min.calibre
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.nom.calibre
-	rm -f ${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.max.calibre
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.calibre
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.calibre
+	rm -f ${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.calibre
 
-	cp -r openlane/custom_cells ${OPENLANE_STAGING_$*}
-	cp -r openlane/cvc ${OPENLANE_STAGING_$*}
-	${CPP} ${SKY130$*_DEFS} openlane/config.tcl ${OPENLANE_STAGING_$*}/config.tcl
+	cp -r librelane/custom_cells ${LIBRELANE_STAGING_$*}
+	cp -r librelane/cvc ${LIBRELANE_STAGING_$*}
+	${CPP} ${SKY130$*_DEFS} librelane/config.tcl ${LIBRELANE_STAGING_$*}/config.tcl
 
-	${CPP} ${SKY130$*_DEFS} openlane/rules.openrcx.sky130$*.min.magic \
-		${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.min.magic
-	${CPP} ${SKY130$*_DEFS} openlane/rules.openrcx.sky130$*.nom.magic \
-		${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.nom.magic
-	${CPP} ${SKY130$*_DEFS} openlane/rules.openrcx.sky130$*.max.magic \
-		${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.max.magic
+	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.min.magic \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.magic
+	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.nom.magic \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.magic
+	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.max.magic \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.magic
 
-	${CPP} ${SKY130$*_DEFS} openlane/rules.openrcx.sky130$*.min.spef_extractor \
-		${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.min.spef_extractor
-	${CPP} ${SKY130$*_DEFS} openlane/rules.openrcx.sky130$*.nom.spef_extractor \
-		${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.nom.spef_extractor
-	${CPP} ${SKY130$*_DEFS} openlane/rules.openrcx.sky130$*.max.spef_extractor \
-		${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.max.spef_extractor
+	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.min.spef_extractor \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.spef_extractor
+	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.nom.spef_extractor \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.spef_extractor
+	${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.max.spef_extractor \
+		${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.spef_extractor
 
 	# Only install the calibre-derived rule files if they exist in the source
-	if test -f openlane/rules.openrcx.sky130$*.min.calibre ; then \
-		${CPP} ${SKY130$*_DEFS} openlane/rules.openrcx.sky130$*.min.calibre \
-			${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.min.calibre ;\
+	if test -f librelane/rules.openrcx.sky130$*.min.calibre ; then \
+		${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.min.calibre \
+			${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.min.calibre ;\
 	fi
-	if test -f openlane/rules.openrcx.sky130$*.nom.calibre ; then \
-		${CPP} ${SKY130$*_DEFS} openlane/rules.openrcx.sky130$*.nom.calibre \
-			${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.nom.calibre ;\
+	if test -f librelane/rules.openrcx.sky130$*.nom.calibre ; then \
+		${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.nom.calibre \
+			${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.nom.calibre ;\
 	fi
-	if test -f openlane/rules.openrcx.sky130$*.max.calibre ; then \
-		${CPP} ${SKY130$*_DEFS} openlane/rules.openrcx.sky130$*.max.calibre \
-			${OPENLANE_STAGING_$*}/rules.openrcx.sky130$*.max.calibre ;\
+	if test -f librelane/rules.openrcx.sky130$*.max.calibre ; then \
+		${CPP} ${SKY130$*_DEFS} librelane/rules.openrcx.sky130$*.max.calibre \
+			${LIBRELANE_STAGING_$*}/rules.openrcx.sky130$*.max.calibre ;\
 	fi
 
-	for file in ${OPENLANE_COMMON} ; do \
-	    ${CPP} -quiet ${SKY130$*_DEFS} openlane/sky130_fd_sc_hd/$$file \
-		${OPENLANE_STAGING_$*}/sky130_fd_sc_hd/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_hd/$$file \
+		${LIBRELANE_STAGING_$*}/sky130_fd_sc_hd/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    ${CPP} -quiet ${SKY130$*_DEFS} openlane/sky130_fd_sc_hs/$$file \
-		${OPENLANE_STAGING_$*}/sky130_fd_sc_hs/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_hs/$$file \
+		${LIBRELANE_STAGING_$*}/sky130_fd_sc_hs/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    ${CPP} -quiet ${SKY130$*_DEFS} openlane/sky130_fd_sc_ms/$$file \
-		${OPENLANE_STAGING_$*}/sky130_fd_sc_ms/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_ms/$$file \
+		${LIBRELANE_STAGING_$*}/sky130_fd_sc_ms/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    ${CPP} -quiet ${SKY130$*_DEFS} openlane/sky130_fd_sc_ls/$$file \
-		${OPENLANE_STAGING_$*}/sky130_fd_sc_ls/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_ls/$$file \
+		${LIBRELANE_STAGING_$*}/sky130_fd_sc_ls/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    ${CPP} -quiet ${SKY130$*_DEFS} openlane/sky130_fd_sc_hdll/$$file \
-		${OPENLANE_STAGING_$*}/sky130_fd_sc_hdll/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_hdll/$$file \
+		${LIBRELANE_STAGING_$*}/sky130_fd_sc_hdll/$$file ; \
 	done
-	for file in ${OPENLANE_COMMON} ; do \
-	    ${CPP} -quiet ${SKY130$*_DEFS} openlane/sky130_fd_sc_hvl/$$file \
-		${OPENLANE_STAGING_$*}/sky130_fd_sc_hvl/$$file ; \
+	for file in ${LIBRELANE_COMMON} ; do \
+	    ${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_fd_sc_hvl/$$file \
+		${LIBRELANE_STAGING_$*}/sky130_fd_sc_hvl/$$file ; \
 	done
 
-	${CPP} -quiet ${SKY130$*_DEFS} openlane/sky130_osu_sc_t18/config.tcl \
-		${OPENLANE_STAGING_$*}/sky130_osu_sc_t18/config.tcl
-	${CPP} -quiet ${SKY130$*_DEFS} openlane/sky130_osu_sc_t18/tracks.info \
-		${OPENLANE_STAGING_$*}/sky130_osu_sc_t18/tracks.info
+	${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_osu_sc_t18/config.tcl \
+		${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18/config.tcl
+	${CPP} -quiet ${SKY130$*_DEFS} librelane/sky130_osu_sc_t18/tracks.info \
+		${LIBRELANE_STAGING_$*}/sky130_osu_sc_t18/tracks.info
 
 # NOTE: ReRAM is not in variant A so there is no reram-build-A.
 vendor-A: primitive-build-A io-build-A sram-build-A sram-space-build-A digital-hd-build-A digital-hvl-build-A digital-hdll-build-A digital-lp-build-A digital-hs-build-A digital-ms-build-A digital-ls-build-A alpha-build-A osu-t12-build-A osu-t15-build-A osu-t18-build-A
diff --git a/sky130/README b/sky130/README
index a2cf395..ce0bf1f 100644
--- a/sky130/README
+++ b/sky130/README
@@ -368,7 +368,7 @@
 		    netgen/		netgen setup file
 		    qflow/		qflow scripts and graywolf setup files.
 		    klayout/		setup files for klayout
-		    openlane/		setup and supplementary files for openlane
+		    librelane/		setup and supplementary files for librelane
 		    ngspice/		base model files and libraries for ngspice
 		    xschem/		setup files for xschem
 		    irsim/		setup and parameter files for IRSIM
diff --git a/sky130/openlane/config.tcl b/sky130/librelane/config.tcl
similarity index 79%
rename from sky130/openlane/config.tcl
rename to sky130/librelane/config.tcl
index 78af13a..a18f5c0 100755
--- a/sky130/openlane/config.tcl
+++ b/sky130/librelane/config.tcl
@@ -48,14 +48,14 @@
 # Optimization library slowest corner
 set tmp $::env(STD_CELL_LIBRARY)
 set ::env(STD_CELL_LIBRARY) $::env(STD_CELL_LIBRARY_OPT)
-source "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY_OPT)/config.tcl"
+source "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY_OPT)/config.tcl"
 set ::env(LIB_SLOWEST_OPT) $::env(LIB_SLOWEST)
 set ::env(STD_CELL_LIBRARY) $tmp
-source "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/config.tcl"
+source "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/config.tcl"
 
 set ::env(GPIO_PADS_LEF_CORE_SIDE) "\
-	$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/custom_cells/lef/sky130_fd_io_core.lef\
-	$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/custom_cells/lef/sky130_ef_io_core.lef\
+	$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/custom_cells/lef/sky130_fd_io_core.lef\
+	$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/custom_cells/lef/sky130_ef_io_core.lef\
 "
 
 # magic setup
@@ -78,40 +78,40 @@
 set ::env(FP_TAPCELL_DIST) 13
 
 # Tracks info
-set ::env(TRACKS_INFO_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/tracks.info"
+set ::env(TRACKS_INFO_FILE) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/tracks.info"
 
 # Latch mapping
-set ::env(SYNTH_LATCH_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/latch_map.v"
+set ::env(SYNTH_LATCH_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/latch_map.v"
 
 # Tri-state buffer mapping
-set ::env(TRISTATE_BUFFER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/tribuff_map.v"
+set ::env(TRISTATE_BUFFER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/tribuff_map.v"
 
 # Full adder mapping
-set ::env(FULL_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/fa_map.v"
+set ::env(FULL_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/fa_map.v"
 
 # Ripple carry adder mapping
-set ::env(RIPPLE_CARRY_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/rca_map.v"
+set ::env(RIPPLE_CARRY_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/rca_map.v"
 
 # Carry select adder mapping
-set ::env(CARRY_SELECT_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/csa_map.v"
+set ::env(CARRY_SELECT_ADDER_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/csa_map.v"
 
 # Default No Synth List
-set ::env(NO_SYNTH_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
+set ::env(NO_SYNTH_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
 
 # Default DRC Exclude List
-set ::env(DRC_EXCLUDE_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/drc_exclude.cells"
+set ::env(DRC_EXCLUDE_CELL_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/drc_exclude.cells"
 
 # DRC Exclude List for Optimization library
-set ::env(DRC_EXCLUDE_CELL_LIST_OPT) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY_OPT)/drc_exclude.cells"
+set ::env(DRC_EXCLUDE_CELL_LIST_OPT) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY_OPT)/drc_exclude.cells"
 
 # Open-RCX Rules File
-set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).nom.spef_extractor"
-set ::env(RCX_RULES_MIN) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).min.spef_extractor"
-set ::env(RCX_RULES_MAX) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).max.spef_extractor"
-if { [file exists "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).nom.calibre"] } {
-	set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).nom.calibre"
-	set ::env(RCX_RULES_MIN) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).min.calibre"
-	set ::env(RCX_RULES_MAX) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/rules.openrcx.$::env(PDK).max.calibre"
+set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).nom.spef_extractor"
+set ::env(RCX_RULES_MIN) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).min.spef_extractor"
+set ::env(RCX_RULES_MAX) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).max.spef_extractor"
+if { [file exists "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).nom.calibre"] } {
+	set ::env(RCX_RULES) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).nom.calibre"
+	set ::env(RCX_RULES_MIN) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).min.calibre"
+	set ::env(RCX_RULES_MAX) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/rules.openrcx.$::env(PDK).max.calibre"
 }
 
 # Extra PDN configs
@@ -157,5 +157,5 @@
 set ::env(RT_CLOCK_MIN_LAYER) "met3"
 
 # CVC
-set ::env(CVC_SCRIPTS_DIR) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/cvc"
+set ::env(CVC_SCRIPTS_DIR) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/cvc"
 
diff --git a/sky130/openlane/custom_cells/lef/sky130_ef_io_core.lef b/sky130/librelane/custom_cells/lef/sky130_ef_io_core.lef
similarity index 100%
rename from sky130/openlane/custom_cells/lef/sky130_ef_io_core.lef
rename to sky130/librelane/custom_cells/lef/sky130_ef_io_core.lef
diff --git a/sky130/openlane/custom_cells/lef/sky130_ef_io_core.sh b/sky130/librelane/custom_cells/lef/sky130_ef_io_core.sh
similarity index 79%
rename from sky130/openlane/custom_cells/lef/sky130_ef_io_core.sh
rename to sky130/librelane/custom_cells/lef/sky130_ef_io_core.sh
index 4dab81f..84f7252 100644
--- a/sky130/openlane/custom_cells/lef/sky130_ef_io_core.sh
+++ b/sky130/librelane/custom_cells/lef/sky130_ef_io_core.sh
@@ -1,22 +1,22 @@
-$OPENLANE_ROOT/scripts/rectify_above.py -1.5 \
+$LIBRELANE_ROOT/scripts/rectify_above.py -1.5 \
 	sky130_ef_io__gpiov2_pad < ../../../../libs.ref/sky130_fd_io/lef/sky130_ef_io.lef |
-	$OPENLANE_ROOT/scripts/obs_above.py -1.35 0.16 0.16 \
+	$LIBRELANE_ROOT/scripts/obs_above.py -1.35 0.16 0.16 \
 	sky130_ef_io__gpiov2_pad > sky130_ef_io.obs.gpiov2.lef.tmp
 
-# $OPENLANE_ROOT/scripts/rectify_above.py 0 \
+# $LIBRELANE_ROOT/scripts/rectify_above.py 0 \
 # 	sky130_ef_io__com_bus_slice_20um \
 # 	sky130_ef_io__com_bus_slice_10um \
 # 	sky130_ef_io__com_bus_slice_5um \
 # 	sky130_ef_io__com_bus_slice_1um \
 # 	sky130_ef_io__corner_pad < sky130_ef_io.obs.gpiov2.lef.tmp |
-# 	$OPENLANE_ROOT/scripts/obs_above.py 0 0 0 \
+# 	$LIBRELANE_ROOT/scripts/obs_above.py 0 0 0 \
 # 	sky130_ef_io__com_bus_slice_20um \
 # 	sky130_ef_io__com_bus_slice_10um \
 # 	sky130_ef_io__com_bus_slice_5um \
 # 	sky130_ef_io__com_bus_slice_1um \
 # 	sky130_ef_io__corner_pad > sky130_ef_io.rect.obs.corner.lef.tmp
 
-$OPENLANE_ROOT/scripts/rectify_above.py 0 \
+$LIBRELANE_ROOT/scripts/rectify_above.py 0 \
 	sky130_ef_io__vccd_hvc_pad \
 	sky130_ef_io__vdda_hvc_pad \
 	sky130_ef_io__vdda_hvc_clamped_pad \
@@ -28,7 +28,7 @@
 	sky130_ef_io__vssio_hvc_pad \
 	sky130_ef_io__vssio_hvc_clamped_pad \
 	< sky130_ef_io.obs.gpiov2.lef.tmp |
-	$OPENLANE_ROOT/scripts/obs_above.py 0 0 0 \
+	$LIBRELANE_ROOT/scripts/obs_above.py 0 0 0 \
 	sky130_ef_io__vccd_hvc_pad \
 	sky130_ef_io__vdda_hvc_pad \
 	sky130_ef_io__vdda_hvc_clamped_pad \
@@ -41,7 +41,7 @@
 	sky130_ef_io__vssio_hvc_clamped_pad \
 	> sky130_ef_io.rect.obs.hvc.lef.tmp
 
-$OPENLANE_ROOT/scripts/rectify_above.py 1.4 \
+$LIBRELANE_ROOT/scripts/rectify_above.py 1.4 \
 	sky130_ef_io__vccd_lvc_pad \
 	sky130_ef_io__vccd_lvc_clamped_pad \
 	sky130_ef_io__vccd_lvc_clamped2_pad \
@@ -52,7 +52,7 @@
 	sky130_ef_io__vssd_lvc_clamped2_pad \
 	sky130_ef_io__vddio_lvc_pad \
 	sky130_ef_io__vssio_lvc_pad < sky130_ef_io.rect.obs.hvc.lef.tmp |
-	$OPENLANE_ROOT/scripts/obs_above.py 1.4 0 0 \
+	$LIBRELANE_ROOT/scripts/obs_above.py 1.4 0 0 \
 	sky130_ef_io__vccd_lvc_pad \
 	sky130_ef_io__vccd_lvc_clamped_pad \
 	sky130_ef_io__vccd_lvc_clamped2_pad \
@@ -65,7 +65,7 @@
 	sky130_ef_io__vssio_lvc_pad > sky130_ef_io.rect.obs.lvc.lef.tmp
 
 # clean up
-$OPENLANE_ROOT/scripts/remove_empty_pins.py < sky130_ef_io.rect.obs.lvc.lef.tmp |
-	$OPENLANE_ROOT/scripts/remove_empty_ports.py > sky130_ef_io_core.lef
+$LIBRELANE_ROOT/scripts/remove_empty_pins.py < sky130_ef_io.rect.obs.lvc.lef.tmp |
+	$LIBRELANE_ROOT/scripts/remove_empty_ports.py > sky130_ef_io_core.lef
 
 rm *.tmp
diff --git a/sky130/openlane/custom_cells/lef/sky130_fd_io_core.lef b/sky130/librelane/custom_cells/lef/sky130_fd_io_core.lef
similarity index 100%
rename from sky130/openlane/custom_cells/lef/sky130_fd_io_core.lef
rename to sky130/librelane/custom_cells/lef/sky130_fd_io_core.lef
diff --git a/sky130/librelane/custom_cells/lef/sky130_fd_io_core.sh b/sky130/librelane/custom_cells/lef/sky130_fd_io_core.sh
new file mode 100644
index 0000000..5ebc29c
--- /dev/null
+++ b/sky130/librelane/custom_cells/lef/sky130_fd_io_core.sh
@@ -0,0 +1,8 @@
+$LIBRELANE_ROOT/scripts/rectify_above.py 1.635 sky130_fd_io__top_xres4v2 < ../../../../libs.ref/sky130_fd_io/lef/sky130_fd_io.lef |
+	$LIBRELANE_ROOT/scripts/obs_above.py 1.635 0 0 sky130_fd_io__top_xres4v2 > sky130_fd_io_core.lef.tmp
+
+# clean up
+$LIBRELANE_ROOT/scripts/remove_empty_pins.py < sky130_fd_io_core.lef.tmp |
+	$LIBRELANE_ROOT/scripts/remove_empty_ports.py > sky130_fd_io_core.lef
+
+rm *.tmp
diff --git a/sky130/openlane/cvc/cdl.awk b/sky130/librelane/cvc/cdl.awk
similarity index 100%
rename from sky130/openlane/cvc/cdl.awk
rename to sky130/librelane/cvc/cdl.awk
diff --git a/sky130/openlane/cvc/cvcrc b/sky130/librelane/cvc/cvcrc
similarity index 100%
rename from sky130/openlane/cvc/cvcrc
rename to sky130/librelane/cvc/cvcrc
diff --git a/sky130/openlane/cvc/models b/sky130/librelane/cvc/models
similarity index 100%
rename from sky130/openlane/cvc/models
rename to sky130/librelane/cvc/models
diff --git a/sky130/openlane/cvc/power.awk b/sky130/librelane/cvc/power.awk
similarity index 100%
rename from sky130/openlane/cvc/power.awk
rename to sky130/librelane/cvc/power.awk
diff --git a/sky130/openlane/rules.openrcx.sky130A.max.calibre b/sky130/librelane/rules.openrcx.sky130A.max.calibre
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130A.max.calibre
rename to sky130/librelane/rules.openrcx.sky130A.max.calibre
diff --git a/sky130/openlane/rules.openrcx.sky130A.max.magic b/sky130/librelane/rules.openrcx.sky130A.max.magic
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130A.max.magic
rename to sky130/librelane/rules.openrcx.sky130A.max.magic
diff --git a/sky130/openlane/rules.openrcx.sky130A.max.spef_extractor b/sky130/librelane/rules.openrcx.sky130A.max.spef_extractor
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130A.max.spef_extractor
rename to sky130/librelane/rules.openrcx.sky130A.max.spef_extractor
diff --git a/sky130/openlane/rules.openrcx.sky130A.min.calibre b/sky130/librelane/rules.openrcx.sky130A.min.calibre
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130A.min.calibre
rename to sky130/librelane/rules.openrcx.sky130A.min.calibre
diff --git a/sky130/openlane/rules.openrcx.sky130A.min.magic b/sky130/librelane/rules.openrcx.sky130A.min.magic
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130A.min.magic
rename to sky130/librelane/rules.openrcx.sky130A.min.magic
diff --git a/sky130/openlane/rules.openrcx.sky130A.min.spef_extractor b/sky130/librelane/rules.openrcx.sky130A.min.spef_extractor
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130A.min.spef_extractor
rename to sky130/librelane/rules.openrcx.sky130A.min.spef_extractor
diff --git a/sky130/openlane/rules.openrcx.sky130A.nom.calibre b/sky130/librelane/rules.openrcx.sky130A.nom.calibre
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130A.nom.calibre
rename to sky130/librelane/rules.openrcx.sky130A.nom.calibre
diff --git a/sky130/openlane/rules.openrcx.sky130A.nom.magic b/sky130/librelane/rules.openrcx.sky130A.nom.magic
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130A.nom.magic
rename to sky130/librelane/rules.openrcx.sky130A.nom.magic
diff --git a/sky130/openlane/rules.openrcx.sky130A.nom.spef_extractor b/sky130/librelane/rules.openrcx.sky130A.nom.spef_extractor
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130A.nom.spef_extractor
rename to sky130/librelane/rules.openrcx.sky130A.nom.spef_extractor
diff --git a/sky130/openlane/rules.openrcx.sky130B.max.magic b/sky130/librelane/rules.openrcx.sky130B.max.magic
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130B.max.magic
rename to sky130/librelane/rules.openrcx.sky130B.max.magic
diff --git a/sky130/openlane/rules.openrcx.sky130B.max.spef_extractor b/sky130/librelane/rules.openrcx.sky130B.max.spef_extractor
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130B.max.spef_extractor
rename to sky130/librelane/rules.openrcx.sky130B.max.spef_extractor
diff --git a/sky130/openlane/rules.openrcx.sky130B.min.magic b/sky130/librelane/rules.openrcx.sky130B.min.magic
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130B.min.magic
rename to sky130/librelane/rules.openrcx.sky130B.min.magic
diff --git a/sky130/openlane/rules.openrcx.sky130B.min.spef_extractor b/sky130/librelane/rules.openrcx.sky130B.min.spef_extractor
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130B.min.spef_extractor
rename to sky130/librelane/rules.openrcx.sky130B.min.spef_extractor
diff --git a/sky130/openlane/rules.openrcx.sky130B.nom.magic b/sky130/librelane/rules.openrcx.sky130B.nom.magic
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130B.nom.magic
rename to sky130/librelane/rules.openrcx.sky130B.nom.magic
diff --git a/sky130/openlane/rules.openrcx.sky130B.nom.spef_extractor b/sky130/librelane/rules.openrcx.sky130B.nom.spef_extractor
similarity index 100%
rename from sky130/openlane/rules.openrcx.sky130B.nom.spef_extractor
rename to sky130/librelane/rules.openrcx.sky130B.nom.spef_extractor
diff --git a/sky130/openlane/sky130_fd_sc_hd/config.tcl b/sky130/librelane/sky130_fd_sc_hd/config.tcl
similarity index 96%
rename from sky130/openlane/sky130_fd_sc_hd/config.tcl
rename to sky130/librelane/sky130_fd_sc_hd/config.tcl
index bffdd3e..37c4402 100755
--- a/sky130/openlane/sky130_fd_sc_hd/config.tcl
+++ b/sky130/librelane/sky130_fd_sc_hd/config.tcl
@@ -8,10 +8,10 @@
 set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
 
 # MUX4 mapping
-set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
 
 # MUX2 mapping
-set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
+set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
 
 # Placement site for core cells
 # This can be found in the technology lef
diff --git a/sky130/openlane/sky130_fd_sc_hd/csa_map.v b/sky130/librelane/sky130_fd_sc_hd/csa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/csa_map.v
rename to sky130/librelane/sky130_fd_sc_hd/csa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hd/drc_exclude.cells b/sky130/librelane/sky130_fd_sc_hd/drc_exclude.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/drc_exclude.cells
rename to sky130/librelane/sky130_fd_sc_hd/drc_exclude.cells
diff --git a/sky130/openlane/sky130_fd_sc_hd/fa_map.v b/sky130/librelane/sky130_fd_sc_hd/fa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/fa_map.v
rename to sky130/librelane/sky130_fd_sc_hd/fa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hd/latch_map.v b/sky130/librelane/sky130_fd_sc_hd/latch_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/latch_map.v
rename to sky130/librelane/sky130_fd_sc_hd/latch_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hd/mux2_map.v b/sky130/librelane/sky130_fd_sc_hd/mux2_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/mux2_map.v
rename to sky130/librelane/sky130_fd_sc_hd/mux2_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hd/mux4_map.v b/sky130/librelane/sky130_fd_sc_hd/mux4_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/mux4_map.v
rename to sky130/librelane/sky130_fd_sc_hd/mux4_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hd/no_synth.cells b/sky130/librelane/sky130_fd_sc_hd/no_synth.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/no_synth.cells
rename to sky130/librelane/sky130_fd_sc_hd/no_synth.cells
diff --git a/sky130/openlane/sky130_fd_sc_hd/rca_map.v b/sky130/librelane/sky130_fd_sc_hd/rca_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/rca_map.v
rename to sky130/librelane/sky130_fd_sc_hd/rca_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hd/tracks.info b/sky130/librelane/sky130_fd_sc_hd/tracks.info
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/tracks.info
rename to sky130/librelane/sky130_fd_sc_hd/tracks.info
diff --git a/sky130/openlane/sky130_fd_sc_hd/tribuff_map.v b/sky130/librelane/sky130_fd_sc_hd/tribuff_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hd/tribuff_map.v
rename to sky130/librelane/sky130_fd_sc_hd/tribuff_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hdll/config.tcl b/sky130/librelane/sky130_fd_sc_hdll/config.tcl
similarity index 98%
rename from sky130/openlane/sky130_fd_sc_hdll/config.tcl
rename to sky130/librelane/sky130_fd_sc_hdll/config.tcl
index 45ca095..8ff1459 100755
--- a/sky130/openlane/sky130_fd_sc_hdll/config.tcl
+++ b/sky130/librelane/sky130_fd_sc_hdll/config.tcl
@@ -8,7 +8,7 @@
 set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
 
 # MUX2 mapping
-set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
+set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
 
 # Placement site for core cells
 # This can be found in the technology lef
diff --git a/sky130/openlane/sky130_fd_sc_hdll/csa_map.v b/sky130/librelane/sky130_fd_sc_hdll/csa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hdll/csa_map.v
rename to sky130/librelane/sky130_fd_sc_hdll/csa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hdll/drc_exclude.cells b/sky130/librelane/sky130_fd_sc_hdll/drc_exclude.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hdll/drc_exclude.cells
rename to sky130/librelane/sky130_fd_sc_hdll/drc_exclude.cells
diff --git a/sky130/openlane/sky130_fd_sc_hdll/fa_map.v b/sky130/librelane/sky130_fd_sc_hdll/fa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hdll/fa_map.v
rename to sky130/librelane/sky130_fd_sc_hdll/fa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hdll/latch_map.v b/sky130/librelane/sky130_fd_sc_hdll/latch_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hdll/latch_map.v
rename to sky130/librelane/sky130_fd_sc_hdll/latch_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hdll/mux2_map.v b/sky130/librelane/sky130_fd_sc_hdll/mux2_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hdll/mux2_map.v
rename to sky130/librelane/sky130_fd_sc_hdll/mux2_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hdll/no_synth.cells b/sky130/librelane/sky130_fd_sc_hdll/no_synth.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hdll/no_synth.cells
rename to sky130/librelane/sky130_fd_sc_hdll/no_synth.cells
diff --git a/sky130/openlane/sky130_fd_sc_hdll/rca_map.v b/sky130/librelane/sky130_fd_sc_hdll/rca_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hdll/rca_map.v
rename to sky130/librelane/sky130_fd_sc_hdll/rca_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hdll/tracks.info b/sky130/librelane/sky130_fd_sc_hdll/tracks.info
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hdll/tracks.info
rename to sky130/librelane/sky130_fd_sc_hdll/tracks.info
diff --git a/sky130/openlane/sky130_fd_sc_hdll/tribuff_map.v b/sky130/librelane/sky130_fd_sc_hdll/tribuff_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hdll/tribuff_map.v
rename to sky130/librelane/sky130_fd_sc_hdll/tribuff_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hs/config.tcl b/sky130/librelane/sky130_fd_sc_hs/config.tcl
similarity index 95%
rename from sky130/openlane/sky130_fd_sc_hs/config.tcl
rename to sky130/librelane/sky130_fd_sc_hs/config.tcl
index 99cdff3..8c7322d 100755
--- a/sky130/openlane/sky130_fd_sc_hs/config.tcl
+++ b/sky130/librelane/sky130_fd_sc_hs/config.tcl
@@ -8,10 +8,10 @@
 set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
 
 # MUX4 mapping
-set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
 
 # MUX2 mapping
-set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
+set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
 
 # Placement site for core cells
 # This can be found in the technology lef
diff --git a/sky130/openlane/sky130_fd_sc_hs/csa_map.v b/sky130/librelane/sky130_fd_sc_hs/csa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/csa_map.v
rename to sky130/librelane/sky130_fd_sc_hs/csa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hs/drc_exclude.cells b/sky130/librelane/sky130_fd_sc_hs/drc_exclude.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/drc_exclude.cells
rename to sky130/librelane/sky130_fd_sc_hs/drc_exclude.cells
diff --git a/sky130/openlane/sky130_fd_sc_hs/fa_map.v b/sky130/librelane/sky130_fd_sc_hs/fa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/fa_map.v
rename to sky130/librelane/sky130_fd_sc_hs/fa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hs/latch_map.v b/sky130/librelane/sky130_fd_sc_hs/latch_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/latch_map.v
rename to sky130/librelane/sky130_fd_sc_hs/latch_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hs/mux2_map.v b/sky130/librelane/sky130_fd_sc_hs/mux2_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/mux2_map.v
rename to sky130/librelane/sky130_fd_sc_hs/mux2_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hs/mux4_map.v b/sky130/librelane/sky130_fd_sc_hs/mux4_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/mux4_map.v
rename to sky130/librelane/sky130_fd_sc_hs/mux4_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hs/no_synth.cells b/sky130/librelane/sky130_fd_sc_hs/no_synth.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/no_synth.cells
rename to sky130/librelane/sky130_fd_sc_hs/no_synth.cells
diff --git a/sky130/openlane/sky130_fd_sc_hs/rca_map.v b/sky130/librelane/sky130_fd_sc_hs/rca_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/rca_map.v
rename to sky130/librelane/sky130_fd_sc_hs/rca_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hs/tracks.info b/sky130/librelane/sky130_fd_sc_hs/tracks.info
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/tracks.info
rename to sky130/librelane/sky130_fd_sc_hs/tracks.info
diff --git a/sky130/openlane/sky130_fd_sc_hs/tribuff_map.v b/sky130/librelane/sky130_fd_sc_hs/tribuff_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hs/tribuff_map.v
rename to sky130/librelane/sky130_fd_sc_hs/tribuff_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hvl/config.tcl b/sky130/librelane/sky130_fd_sc_hvl/config.tcl
similarity index 96%
rename from sky130/openlane/sky130_fd_sc_hvl/config.tcl
rename to sky130/librelane/sky130_fd_sc_hvl/config.tcl
index 1421f6e..4550f89 100644
--- a/sky130/openlane/sky130_fd_sc_hvl/config.tcl
+++ b/sky130/librelane/sky130_fd_sc_hvl/config.tcl
@@ -11,10 +11,10 @@
 set ::env(GND_PIN_VOLTAGE) "0.00"
 
 # MUX4 mapping
-set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
 
 # MUX2 mapping
-set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
+set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
 
 # Placement site for core cells
 # This can be found in the technology lef
diff --git a/sky130/openlane/sky130_fd_sc_hvl/csa_map.v b/sky130/librelane/sky130_fd_sc_hvl/csa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hvl/csa_map.v
rename to sky130/librelane/sky130_fd_sc_hvl/csa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hvl/fa_map.v b/sky130/librelane/sky130_fd_sc_hvl/fa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hvl/fa_map.v
rename to sky130/librelane/sky130_fd_sc_hvl/fa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hvl/latch_map.v b/sky130/librelane/sky130_fd_sc_hvl/latch_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hvl/latch_map.v
rename to sky130/librelane/sky130_fd_sc_hvl/latch_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hvl/mux2_map.v b/sky130/librelane/sky130_fd_sc_hvl/mux2_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hvl/mux2_map.v
rename to sky130/librelane/sky130_fd_sc_hvl/mux2_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hvl/mux4_map.v b/sky130/librelane/sky130_fd_sc_hvl/mux4_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hvl/mux4_map.v
rename to sky130/librelane/sky130_fd_sc_hvl/mux4_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hvl/rca_map.v b/sky130/librelane/sky130_fd_sc_hvl/rca_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hvl/rca_map.v
rename to sky130/librelane/sky130_fd_sc_hvl/rca_map.v
diff --git a/sky130/openlane/sky130_fd_sc_hvl/tracks.info b/sky130/librelane/sky130_fd_sc_hvl/tracks.info
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hvl/tracks.info
rename to sky130/librelane/sky130_fd_sc_hvl/tracks.info
diff --git a/sky130/openlane/sky130_fd_sc_hvl/tribuff_map.v b/sky130/librelane/sky130_fd_sc_hvl/tribuff_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_hvl/tribuff_map.v
rename to sky130/librelane/sky130_fd_sc_hvl/tribuff_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ls/config.tcl b/sky130/librelane/sky130_fd_sc_ls/config.tcl
similarity index 96%
rename from sky130/openlane/sky130_fd_sc_ls/config.tcl
rename to sky130/librelane/sky130_fd_sc_ls/config.tcl
index 49cc541..c344d3b 100755
--- a/sky130/openlane/sky130_fd_sc_ls/config.tcl
+++ b/sky130/librelane/sky130_fd_sc_ls/config.tcl
@@ -8,10 +8,10 @@
 set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
 
 # MUX4 mapping
-set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
 
 # MUX2 mapping
-set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
+set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
 
 # Placement site for core cells
 # This can be found in the technology lef
diff --git a/sky130/openlane/sky130_fd_sc_ls/csa_map.v b/sky130/librelane/sky130_fd_sc_ls/csa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/csa_map.v
rename to sky130/librelane/sky130_fd_sc_ls/csa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ls/drc_exclude.cells b/sky130/librelane/sky130_fd_sc_ls/drc_exclude.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/drc_exclude.cells
rename to sky130/librelane/sky130_fd_sc_ls/drc_exclude.cells
diff --git a/sky130/openlane/sky130_fd_sc_ls/fa_map.v b/sky130/librelane/sky130_fd_sc_ls/fa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/fa_map.v
rename to sky130/librelane/sky130_fd_sc_ls/fa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ls/latch_map.v b/sky130/librelane/sky130_fd_sc_ls/latch_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/latch_map.v
rename to sky130/librelane/sky130_fd_sc_ls/latch_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ls/mux2_map.v b/sky130/librelane/sky130_fd_sc_ls/mux2_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/mux2_map.v
rename to sky130/librelane/sky130_fd_sc_ls/mux2_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ls/mux4_map.v b/sky130/librelane/sky130_fd_sc_ls/mux4_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/mux4_map.v
rename to sky130/librelane/sky130_fd_sc_ls/mux4_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ls/no_synth.cells b/sky130/librelane/sky130_fd_sc_ls/no_synth.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/no_synth.cells
rename to sky130/librelane/sky130_fd_sc_ls/no_synth.cells
diff --git a/sky130/openlane/sky130_fd_sc_ls/rca_map.v b/sky130/librelane/sky130_fd_sc_ls/rca_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/rca_map.v
rename to sky130/librelane/sky130_fd_sc_ls/rca_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ls/tracks.info b/sky130/librelane/sky130_fd_sc_ls/tracks.info
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/tracks.info
rename to sky130/librelane/sky130_fd_sc_ls/tracks.info
diff --git a/sky130/openlane/sky130_fd_sc_ls/tribuff_map.v b/sky130/librelane/sky130_fd_sc_ls/tribuff_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ls/tribuff_map.v
rename to sky130/librelane/sky130_fd_sc_ls/tribuff_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ms/config.tcl b/sky130/librelane/sky130_fd_sc_ms/config.tcl
similarity index 95%
rename from sky130/openlane/sky130_fd_sc_ms/config.tcl
rename to sky130/librelane/sky130_fd_sc_ms/config.tcl
index 840e595..15b0fd7 100755
--- a/sky130/openlane/sky130_fd_sc_ms/config.tcl
+++ b/sky130/librelane/sky130_fd_sc_ms/config.tcl
@@ -8,10 +8,10 @@
 set ::env(LIB_TYPICAL) $::env(LIB_SYNTH)
 
 # MUX4 mapping
-set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux4_map.v"
 
 # MUX2 mapping
-set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
+set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/librelane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
 
 # Placement site for core cells
 # This can be found in the technology lef
diff --git a/sky130/openlane/sky130_fd_sc_ms/csa_map.v b/sky130/librelane/sky130_fd_sc_ms/csa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/csa_map.v
rename to sky130/librelane/sky130_fd_sc_ms/csa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ms/drc_exclude.cells b/sky130/librelane/sky130_fd_sc_ms/drc_exclude.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/drc_exclude.cells
rename to sky130/librelane/sky130_fd_sc_ms/drc_exclude.cells
diff --git a/sky130/openlane/sky130_fd_sc_ms/fa_map.v b/sky130/librelane/sky130_fd_sc_ms/fa_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/fa_map.v
rename to sky130/librelane/sky130_fd_sc_ms/fa_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ms/latch_map.v b/sky130/librelane/sky130_fd_sc_ms/latch_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/latch_map.v
rename to sky130/librelane/sky130_fd_sc_ms/latch_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ms/mux2_map.v b/sky130/librelane/sky130_fd_sc_ms/mux2_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/mux2_map.v
rename to sky130/librelane/sky130_fd_sc_ms/mux2_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ms/mux4_map.v b/sky130/librelane/sky130_fd_sc_ms/mux4_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/mux4_map.v
rename to sky130/librelane/sky130_fd_sc_ms/mux4_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ms/no_synth.cells b/sky130/librelane/sky130_fd_sc_ms/no_synth.cells
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/no_synth.cells
rename to sky130/librelane/sky130_fd_sc_ms/no_synth.cells
diff --git a/sky130/openlane/sky130_fd_sc_ms/rca_map.v b/sky130/librelane/sky130_fd_sc_ms/rca_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/rca_map.v
rename to sky130/librelane/sky130_fd_sc_ms/rca_map.v
diff --git a/sky130/openlane/sky130_fd_sc_ms/tracks.info b/sky130/librelane/sky130_fd_sc_ms/tracks.info
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/tracks.info
rename to sky130/librelane/sky130_fd_sc_ms/tracks.info
diff --git a/sky130/openlane/sky130_fd_sc_ms/tribuff_map.v b/sky130/librelane/sky130_fd_sc_ms/tribuff_map.v
similarity index 100%
rename from sky130/openlane/sky130_fd_sc_ms/tribuff_map.v
rename to sky130/librelane/sky130_fd_sc_ms/tribuff_map.v
diff --git a/sky130/openlane/sky130_osu_sc_t18/config.tcl b/sky130/librelane/sky130_osu_sc_t18/config.tcl
similarity index 100%
rename from sky130/openlane/sky130_osu_sc_t18/config.tcl
rename to sky130/librelane/sky130_osu_sc_t18/config.tcl
diff --git a/sky130/openlane/sky130_osu_sc_t18/tracks.info b/sky130/librelane/sky130_osu_sc_t18/tracks.info
similarity index 100%
rename from sky130/openlane/sky130_osu_sc_t18/tracks.info
rename to sky130/librelane/sky130_osu_sc_t18/tracks.info
diff --git a/sky130/openlane/custom_cells/lef/sky130_fd_io_core.sh b/sky130/openlane/custom_cells/lef/sky130_fd_io_core.sh
deleted file mode 100644
index daa4aa8..0000000
--- a/sky130/openlane/custom_cells/lef/sky130_fd_io_core.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-$OPENLANE_ROOT/scripts/rectify_above.py 1.635 sky130_fd_io__top_xres4v2 < ../../../../libs.ref/sky130_fd_io/lef/sky130_fd_io.lef |
-	$OPENLANE_ROOT/scripts/obs_above.py 1.635 0 0 sky130_fd_io__top_xres4v2 > sky130_fd_io_core.lef.tmp
-
-# clean up
-$OPENLANE_ROOT/scripts/remove_empty_pins.py < sky130_fd_io_core.lef.tmp |
-	$OPENLANE_ROOT/scripts/remove_empty_ports.py > sky130_fd_io_core.lef
-
-rm *.tmp