Add yosys mux mapping.
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index b47cbcb..334d040 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -447,31 +447,42 @@
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/no_synth.cells
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/tribuff_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/latch_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/mux2_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hd/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hd/mux4_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/config.tcl
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/tracks.info
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/no_synth.cells
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/tribuff_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/latch_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/mux2_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hs/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hs/mux4_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/config.tcl
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/tracks.info
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/no_synth.cells
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/tribuff_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/latch_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/mux2_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ms/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ms/mux4_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/config.tcl
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/tracks.info
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/no_synth.cells
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/tribuff_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/latch_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/mux2_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_ls/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_ls/mux4_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/config.tcl
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/tracks.info
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/no_synth.cells
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/tribuff_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/latch_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hdll/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hdll/mux2_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/config.tcl > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/config.tcl
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/tracks.info > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/tracks.info
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/no_synth.cells > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/no_synth.cells
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/tribuff_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/tribuff_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/latch_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/latch_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/mux2_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/mux2_map.v
+ ${CPP} ${SKY130A_DEFS} openlane/sky130_fd_sc_hvl/mux4_map.v > ${OPENLANE_STAGING_A}/sky130_fd_sc_hvl/mux4_map.v
${CPP} ${SKY130A_DEFS} openlane/sky130_osu_sc_t18/config.tcl > ${OPENLANE_STAGING_A}/sky130_osu_sc_t18/config.tcl
${CPP} ${SKY130A_DEFS} openlane/sky130_osu_sc_t18/tracks.info > ${OPENLANE_STAGING_A}/sky130_osu_sc_t18/tracks.info
diff --git a/sky130/openlane/sky130_fd_sc_hd/config.tcl b/sky130/openlane/sky130_fd_sc_hd/config.tcl
index 5dd15e8..c78bb07 100755
--- a/sky130/openlane/sky130_fd_sc_hd/config.tcl
+++ b/sky130/openlane/sky130_fd_sc_hd/config.tcl
@@ -16,6 +16,12 @@
# Default No Synth List
set ::env(NO_SYNTH_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
+# MUX4 mapping
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::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"
+
# Placement site for core cells
# This can be found in the technology lef
set ::env(PLACE_SITE) "unithd"
diff --git a/sky130/openlane/sky130_fd_sc_hd/mux2_map.v b/sky130/openlane/sky130_fd_sc_hd/mux2_map.v
new file mode 100644
index 0000000..c9bb257
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hd/mux2_map.v
@@ -0,0 +1,13 @@
+module \$_MUX_ (
+ output Y,
+ input A,
+ input B,
+ input S
+ );
+ sky130_fd_sc_hd__mux2_4 _TECHMAP_MUX (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .S(S)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_hd/mux4_map.v b/sky130/openlane/sky130_fd_sc_hd/mux4_map.v
new file mode 100644
index 0000000..633fc65
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hd/mux4_map.v
@@ -0,0 +1,19 @@
+module \$_MUX4_ (
+ output Y,
+ input A,
+ input B,
+ input C,
+ input D,
+ input S,
+ input T
+ );
+ sky130_fd_sc_hd__mux4_4 _TECHMAP_MUX4 (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .A2(C),
+ .A3(D),
+ .S0(S),
+ .S1(T)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_hd/no_synth.cells b/sky130/openlane/sky130_fd_sc_hd/no_synth.cells
index 9ff479c..b59a93e 100644
--- a/sky130/openlane/sky130_fd_sc_hd/no_synth.cells
+++ b/sky130/openlane/sky130_fd_sc_hd/no_synth.cells
@@ -212,14 +212,12 @@
sky130_fd_sc_hd__maj3_4
sky130_fd_sc_hd__mux2_1
sky130_fd_sc_hd__mux2_2
-sky130_fd_sc_hd__mux2_4
sky130_fd_sc_hd__mux2_8
sky130_fd_sc_hd__mux2i_1
sky130_fd_sc_hd__mux2i_2
sky130_fd_sc_hd__mux2i_4
sky130_fd_sc_hd__mux4_1
sky130_fd_sc_hd__mux4_2
-sky130_fd_sc_hd__mux4_4
sky130_fd_sc_hd__nand2_1
sky130_fd_sc_hd__nand2_2
sky130_fd_sc_hd__nand2_8
diff --git a/sky130/openlane/sky130_fd_sc_hdll/config.tcl b/sky130/openlane/sky130_fd_sc_hdll/config.tcl
index 4d9d8a0..a2fc1e9 100755
--- a/sky130/openlane/sky130_fd_sc_hdll/config.tcl
+++ b/sky130/openlane/sky130_fd_sc_hdll/config.tcl
@@ -16,6 +16,9 @@
# Default No Synth List
set ::env(NO_SYNTH_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
+# MUX2 mapping
+set ::env(SYNTH_MUX_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/mux2_map.v"
+
# Placement site for core cells
# This can be found in the technology lef
set ::env(PLACE_SITE) "unithd"
diff --git a/sky130/openlane/sky130_fd_sc_hdll/mux2_map.v b/sky130/openlane/sky130_fd_sc_hdll/mux2_map.v
new file mode 100644
index 0000000..51f8d8b
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hdll/mux2_map.v
@@ -0,0 +1,13 @@
+module \$_MUX_ (
+ output Y,
+ input A,
+ input B,
+ input S
+ );
+ sky130_fd_sc_hdll__mux2_4 _TECHMAP_MUX (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .S(S)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_hdll/no_synth.cells b/sky130/openlane/sky130_fd_sc_hdll/no_synth.cells
index 169b533..8014154 100644
--- a/sky130/openlane/sky130_fd_sc_hdll/no_synth.cells
+++ b/sky130/openlane/sky130_fd_sc_hdll/no_synth.cells
@@ -209,7 +209,6 @@
sky130_fd_sc_hdll__maj3_2
sky130_fd_sc_hdll__mux2_1
sky130_fd_sc_hdll__mux2_2
-sky130_fd_sc_hdll__mux2_4
sky130_fd_sc_hdll__mux2_8
sky130_fd_sc_hdll__mux2i_1
sky130_fd_sc_hdll__mux2i_2
diff --git a/sky130/openlane/sky130_fd_sc_hs/config.tcl b/sky130/openlane/sky130_fd_sc_hs/config.tcl
index 7f39025..0a26d27 100755
--- a/sky130/openlane/sky130_fd_sc_hs/config.tcl
+++ b/sky130/openlane/sky130_fd_sc_hs/config.tcl
@@ -16,6 +16,12 @@
# Default No Synth List
set ::env(NO_SYNTH_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
+# MUX4 mapping
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::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"
+
# Placement site for core cells
# This can be found in the technology lef
set ::env(PLACE_SITE) "unit"
diff --git a/sky130/openlane/sky130_fd_sc_hs/mux2_map.v b/sky130/openlane/sky130_fd_sc_hs/mux2_map.v
new file mode 100644
index 0000000..7f2fd61
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hs/mux2_map.v
@@ -0,0 +1,13 @@
+module \$_MUX_ (
+ output Y,
+ input A,
+ input B,
+ input S
+ );
+ sky130_fd_sc_hs__mux2_4 _TECHMAP_MUX (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .S(S)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_hs/mux4_map.v b/sky130/openlane/sky130_fd_sc_hs/mux4_map.v
new file mode 100644
index 0000000..5084c7f
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hs/mux4_map.v
@@ -0,0 +1,19 @@
+module \$_MUX4_ (
+ output Y,
+ input A,
+ input B,
+ input C,
+ input D,
+ input S,
+ input T
+ );
+ sky130_fd_sc_hs__mux4_4 _TECHMAP_MUX4 (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .A2(C),
+ .A3(D),
+ .S0(S),
+ .S1(T)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_hs/no_synth.cells b/sky130/openlane/sky130_fd_sc_hs/no_synth.cells
index 9865b02..35a5e4c 100644
--- a/sky130/openlane/sky130_fd_sc_hs/no_synth.cells
+++ b/sky130/openlane/sky130_fd_sc_hs/no_synth.cells
@@ -207,7 +207,6 @@
sky130_fd_sc_hs__maj3_2
sky130_fd_sc_hs__mux2_1
sky130_fd_sc_hs__mux2_2
-sky130_fd_sc_hs__mux2_4
sky130_fd_sc_hs__mux2_8
sky130_fd_sc_hs__mux2i_1
sky130_fd_sc_hs__mux2i_2
diff --git a/sky130/openlane/sky130_fd_sc_hvl/config.tcl b/sky130/openlane/sky130_fd_sc_hvl/config.tcl
index f9870a5..211a102 100644
--- a/sky130/openlane/sky130_fd_sc_hvl/config.tcl
+++ b/sky130/openlane/sky130_fd_sc_hvl/config.tcl
@@ -22,6 +22,12 @@
# Default No Synth List
set ::env(NO_SYNTH_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
+# MUX4 mapping
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::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"
+
# Placement site for core cells
# This can be found in the technology lef
set ::env(PLACE_SITE) "unithv"
diff --git a/sky130/openlane/sky130_fd_sc_hvl/mux2_map.v b/sky130/openlane/sky130_fd_sc_hvl/mux2_map.v
new file mode 100644
index 0000000..25edcc1
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hvl/mux2_map.v
@@ -0,0 +1,13 @@
+module \$_MUX_ (
+ output Y,
+ input A,
+ input B,
+ input S
+ );
+ sky130_fd_sc_hvl__mux2_1 _TECHMAP_MUX (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .S(S)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_hvl/mux4_map.v b/sky130/openlane/sky130_fd_sc_hvl/mux4_map.v
new file mode 100644
index 0000000..224f0ba
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_hvl/mux4_map.v
@@ -0,0 +1,19 @@
+module \$_MUX4_ (
+ output Y,
+ input A,
+ input B,
+ input C,
+ input D,
+ input S,
+ input T
+ );
+ sky130_fd_sc_hvl__mux4_1 _TECHMAP_MUX4 (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .A2(C),
+ .A3(D),
+ .S0(S),
+ .S1(T)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_ls/config.tcl b/sky130/openlane/sky130_fd_sc_ls/config.tcl
index a35808d..2edb61f 100755
--- a/sky130/openlane/sky130_fd_sc_ls/config.tcl
+++ b/sky130/openlane/sky130_fd_sc_ls/config.tcl
@@ -16,6 +16,12 @@
# Default No Synth List
set ::env(NO_SYNTH_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
+# MUX4 mapping
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::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"
+
# Placement site for core cells
# This can be found in the technology lef
set ::env(PLACE_SITE) "unit"
diff --git a/sky130/openlane/sky130_fd_sc_ls/mux2_map.v b/sky130/openlane/sky130_fd_sc_ls/mux2_map.v
new file mode 100644
index 0000000..5d49c5e
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ls/mux2_map.v
@@ -0,0 +1,13 @@
+module \$_MUX_ (
+ output Y,
+ input A,
+ input B,
+ input S
+ );
+ sky130_fd_sc_ls__mux2_4 _TECHMAP_MUX (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .S(S)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_ls/mux4_map.v b/sky130/openlane/sky130_fd_sc_ls/mux4_map.v
new file mode 100644
index 0000000..bb3e33f
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ls/mux4_map.v
@@ -0,0 +1,19 @@
+module \$_MUX4_ (
+ output Y,
+ input A,
+ input B,
+ input C,
+ input D,
+ input S,
+ input T
+ );
+ sky130_fd_sc_ls__mux4_4 _TECHMAP_MUX4 (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .A2(C),
+ .A3(D),
+ .S0(S),
+ .S1(T)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_ls/no_synth.cells b/sky130/openlane/sky130_fd_sc_ls/no_synth.cells
index 74a94a3..24d3ad1 100644
--- a/sky130/openlane/sky130_fd_sc_ls/no_synth.cells
+++ b/sky130/openlane/sky130_fd_sc_ls/no_synth.cells
@@ -212,7 +212,6 @@
sky130_fd_sc_ls__maj3_2
sky130_fd_sc_ls__mux2_1
sky130_fd_sc_ls__mux2_2
-sky130_fd_sc_ls__mux2_4
sky130_fd_sc_ls__mux2_8
sky130_fd_sc_ls__mux2i_1
sky130_fd_sc_ls__mux2i_2
diff --git a/sky130/openlane/sky130_fd_sc_ms/config.tcl b/sky130/openlane/sky130_fd_sc_ms/config.tcl
index b32d358..1794639 100755
--- a/sky130/openlane/sky130_fd_sc_ms/config.tcl
+++ b/sky130/openlane/sky130_fd_sc_ms/config.tcl
@@ -16,6 +16,11 @@
# Default No Synth List
set ::env(NO_SYNTH_LIST) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::env(STD_CELL_LIBRARY)/no_synth.cells"
+# MUX4 mapping
+set ::env(SYNTH_MUX4_MAP) "$::env(PDK_ROOT)/$::env(PDK)/libs.tech/openlane/$::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"
# Placement site for core cells
# This can be found in the technology lef
diff --git a/sky130/openlane/sky130_fd_sc_ms/mux2_map.v b/sky130/openlane/sky130_fd_sc_ms/mux2_map.v
new file mode 100644
index 0000000..e3bc623
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ms/mux2_map.v
@@ -0,0 +1,13 @@
+module \$_MUX_ (
+ output Y,
+ input A,
+ input B,
+ input S
+ );
+ sky130_fd_sc_ms__mux2_4 _TECHMAP_MUX (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .S(S)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_ms/mux4_map.v b/sky130/openlane/sky130_fd_sc_ms/mux4_map.v
new file mode 100644
index 0000000..952cab8
--- /dev/null
+++ b/sky130/openlane/sky130_fd_sc_ms/mux4_map.v
@@ -0,0 +1,19 @@
+module \$_MUX4_ (
+ output Y,
+ input A,
+ input B,
+ input C,
+ input D,
+ input S,
+ input T
+ );
+ sky130_fd_sc_ms__mux4_4 _TECHMAP_MUX4 (
+ .X(Y),
+ .A0(A),
+ .A1(B),
+ .A2(C),
+ .A3(D),
+ .S0(S),
+ .S1(T)
+ );
+endmodule
\ No newline at end of file
diff --git a/sky130/openlane/sky130_fd_sc_ms/no_synth.cells b/sky130/openlane/sky130_fd_sc_ms/no_synth.cells
index eaca2f5..8030886 100644
--- a/sky130/openlane/sky130_fd_sc_ms/no_synth.cells
+++ b/sky130/openlane/sky130_fd_sc_ms/no_synth.cells
@@ -207,7 +207,6 @@
sky130_fd_sc_ms__maj3_2
sky130_fd_sc_ms__mux2_1
sky130_fd_sc_ms__mux2_2
-sky130_fd_sc_ms__mux2_4
sky130_fd_sc_ms__mux2_8
sky130_fd_sc_ms__mux2i_1
sky130_fd_sc_ms__mux2i_2