docs: Adding example cell.
Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
diff --git a/docs/contents/libraries/sky130_fd_sc_ms b/docs/contents/libraries/sky130_fd_sc_ms
new file mode 120000
index 0000000..d754348
--- /dev/null
+++ b/docs/contents/libraries/sky130_fd_sc_ms
@@ -0,0 +1 @@
+../../../libraries/sky130_fd_sc_ms/latest
\ No newline at end of file
diff --git a/libraries/sky130_fd_sc_ms/latest b/libraries/sky130_fd_sc_ms/latest
new file mode 120000
index 0000000..5eb312c
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/latest
@@ -0,0 +1 @@
+v0.0.0
\ No newline at end of file
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/README.rst b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/README.rst
new file mode 100644
index 0000000..bd52d32
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/README.rst
@@ -0,0 +1,33 @@
+
+:cell_name:`sky130_fd_sc_ms__xor3`
+==================================
+
+.. list-table::
+ :header-rows: 1
+ :widths: 50 50
+
+ * - Without Power Pins
+ - With Power Pins
+
+ * -
+ .. no-license:: sky130_fd_sc_ms__xor3.blackbox.v
+ :language: verilog
+ :linenos:
+
+ -
+ .. no-license:: sky130_fd_sc_ms__xor3.pp.blackbox.v
+ :language: verilog
+ :linenos:
+
+ * -
+ .. image:: sky130_fd_sc_ms__xor3.symbol.svg
+ -
+ .. image:: sky130_fd_sc_ms__xor3.pp.symbol.svg
+
+ * - .. image:: sky130_fd_sc_ms__xor3.schematic.svg
+ - .. image:: sky130_fd_sc_ms__xor3.pp.schematic.svg
+
+ * - .. image:: sky130_fd_sc_ms__xor3.schematic.svg
+ - .. image:: sky130_fd_sc_ms__xor3.pp.schematic.svg
+
+
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.behavioral.pp.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.behavioral.pp.v
new file mode 100644
index 0000000..6b47ebb
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.behavioral.pp.v
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+*/
+
+
+`ifndef SKY130_FD_SC_MS__XOR3_BEHAVIORAL_PP_V
+`define SKY130_FD_SC_MS__XOR3_BEHAVIORAL_PP_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog simulation functional model.
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+// Import user defined primitives.
+`include "../../models/udp_pwrgood_pp_pg/sky130_fd_sc_ms__udp_pwrgood_pp_pg.v"
+
+`celldefine
+module sky130_fd_sc_ms__xor3 (
+ X ,
+ A ,
+ B ,
+ C ,
+ VPWR,
+ VGND,
+ VPB ,
+ VNB
+);
+
+ // Module ports
+ output X ;
+ input A ;
+ input B ;
+ input C ;
+ input VPWR;
+ input VGND;
+ input VPB ;
+ input VNB ;
+
+ // Local signals
+ wire xor0_out_X ;
+ wire pwrgood_pp0_out_X;
+
+ // Name Output Other arguments
+ xor xor0 (xor0_out_X , A, B, C );
+ sky130_fd_sc_ms__udp_pwrgood_pp$PG pwrgood_pp0 (pwrgood_pp0_out_X, xor0_out_X, VPWR, VGND);
+ buf buf0 (X , pwrgood_pp0_out_X );
+
+endmodule
+`endcelldefine
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_BEHAVIORAL_PP_V
\ No newline at end of file
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.behavioral.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.behavioral.v
new file mode 100644
index 0000000..92d45e1
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.behavioral.v
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+*/
+
+
+`ifndef SKY130_FD_SC_MS__XOR3_BEHAVIORAL_V
+`define SKY130_FD_SC_MS__XOR3_BEHAVIORAL_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog simulation functional model.
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+`celldefine
+module sky130_fd_sc_ms__xor3 (
+ X,
+ A,
+ B,
+ C
+);
+
+ // Module ports
+ output X;
+ input A;
+ input B;
+ input C;
+
+ // Module supplies
+ supply1 VPWR;
+ supply0 VGND;
+ supply1 VPB ;
+ supply0 VNB ;
+
+ // Local signals
+ wire xor0_out_X;
+
+ // Name Output Other arguments
+ xor xor0 (xor0_out_X, A, B, C );
+ buf buf0 (X , xor0_out_X );
+
+endmodule
+`endcelldefine
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_BEHAVIORAL_V
\ No newline at end of file
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.blackbox.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.blackbox.v
new file mode 100644
index 0000000..b198396
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.blackbox.v
@@ -0,0 +1,57 @@
+/**
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+`ifndef SKY130_FD_SC_MS__XOR3_BLACKBOX_V
+`define SKY130_FD_SC_MS__XOR3_BLACKBOX_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog stub definition (black box without power pins).
+ *
+ * WARNING: This file is autogenerated, do not modify directly!
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+(* blackbox *)
+module sky130_fd_sc_ms__xor3 (
+ X,
+ A,
+ B,
+ C
+);
+
+ output X;
+ input A;
+ input B;
+ input C;
+
+ // Voltage supply signals
+ supply1 VPWR;
+ supply0 VGND;
+ supply1 VPB ;
+ supply0 VNB ;
+
+endmodule
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_BLACKBOX_V
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.functional.pp.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.functional.pp.v
new file mode 100644
index 0000000..4a2b9ef
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.functional.pp.v
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+*/
+
+
+`ifndef SKY130_FD_SC_MS__XOR3_FUNCTIONAL_PP_V
+`define SKY130_FD_SC_MS__XOR3_FUNCTIONAL_PP_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog simulation functional model.
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+// Import user defined primitives.
+`include "../../models/udp_pwrgood_pp_pg/sky130_fd_sc_ms__udp_pwrgood_pp_pg.v"
+
+`celldefine
+module sky130_fd_sc_ms__xor3 (
+ X ,
+ A ,
+ B ,
+ C ,
+ VPWR,
+ VGND,
+ VPB ,
+ VNB
+);
+
+ // Module ports
+ output X ;
+ input A ;
+ input B ;
+ input C ;
+ input VPWR;
+ input VGND;
+ input VPB ;
+ input VNB ;
+
+ // Local signals
+ wire xor0_out_X ;
+ wire pwrgood_pp0_out_X;
+
+ // Name Output Other arguments
+ xor xor0 (xor0_out_X , A, B, C );
+ sky130_fd_sc_ms__udp_pwrgood_pp$PG pwrgood_pp0 (pwrgood_pp0_out_X, xor0_out_X, VPWR, VGND);
+ buf buf0 (X , pwrgood_pp0_out_X );
+
+endmodule
+`endcelldefine
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_FUNCTIONAL_PP_V
\ No newline at end of file
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.functional.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.functional.v
new file mode 100644
index 0000000..0f3372a
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.functional.v
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+*/
+
+
+`ifndef SKY130_FD_SC_MS__XOR3_FUNCTIONAL_V
+`define SKY130_FD_SC_MS__XOR3_FUNCTIONAL_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog simulation functional model.
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+`celldefine
+module sky130_fd_sc_ms__xor3 (
+ X,
+ A,
+ B,
+ C
+);
+
+ // Module ports
+ output X;
+ input A;
+ input B;
+ input C;
+
+ // Local signals
+ wire xor0_out_X;
+
+ // Name Output Other arguments
+ xor xor0 (xor0_out_X, A, B, C );
+ buf buf0 (X , xor0_out_X );
+
+endmodule
+`endcelldefine
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_FUNCTIONAL_V
\ No newline at end of file
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.pp.blackbox.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.pp.blackbox.v
new file mode 100644
index 0000000..c964bb8
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.pp.blackbox.v
@@ -0,0 +1,58 @@
+/**
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+`ifndef SKY130_FD_SC_MS__XOR3_PP_BLACKBOX_V
+`define SKY130_FD_SC_MS__XOR3_PP_BLACKBOX_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog stub definition (black box with power pins).
+ *
+ * WARNING: This file is autogenerated, do not modify directly!
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+(* blackbox *)
+module sky130_fd_sc_ms__xor3 (
+ X ,
+ A ,
+ B ,
+ C ,
+ VPWR,
+ VGND,
+ VPB ,
+ VNB
+);
+
+ output X ;
+ input A ;
+ input B ;
+ input C ;
+ input VPWR;
+ input VGND;
+ input VPB ;
+ input VNB ;
+endmodule
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_PP_BLACKBOX_V
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.pp.symbol.svg b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.pp.symbol.svg
new file mode 100644
index 0000000..c69dc71
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.pp.symbol.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created by Symbolator http://kevinpt.github.io/symbolator -->
+<svg xmlns="http://www.w3.org/2000/svg"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xml:space="preserve"
+width="191" height="295" viewBox="-25 -56 191.0 295.0" version="1.1">
+<style type="text/css">
+<![CDATA[
+.fnt1 { fill:#000000; font-family:Times; font-size:12pt; font-weight:normal; font-style:italic; }
+.fnt2 { fill:#000000; font-family:Helvetica; font-size:12pt; font-weight:normal; font-style:normal; }
+.fnt3 { fill:#000000; font-family:Helvetica; font-size:16pt; font-weight:bold; font-style:normal; }
+.fnt4 { fill:#000000; font-family:Helvetica; font-size:10pt; font-style:normal; }
+.label {fill:#000;
+ text-anchor:middle;
+ font-size:16pt; font-weight:bold; font-family:Sans;}
+.link {fill: #0D47A1;}
+.link:hover {fill: #0D47A1; text-decoration:underline;}
+.link:visited {fill: #4A148C;}
+]]>
+</style>
+<defs>
+
+</defs>
+<rect x="-25" y="-56" width="100%" height="100%" fill="white"/><g transform="translate(0,0)">
+<rect x="0" y="-21.0" width="140" height="105.0" stroke="#000000" fill="#CCFED2" stroke-width="1"/>
+<text class="fnt1" x="70.0" y="-5.0" text-anchor="middle" dy="5.5">Data Signals</text>
+<g transform="translate(0,19)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">A</text>
+</g>
+<g transform="translate(0,41)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">B</text>
+</g>
+<g transform="translate(0,63)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">C</text>
+</g>
+<g transform="translate(140,19)">
+<line x1="20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="-10" y="0" text-anchor="end" dy="5.5">X</text>
+</g>
+</g>
+<g transform="translate(0,105.0)">
+<rect x="0" y="-21.0" width="140" height="127.0" stroke="#000000" fill="#FFBBBB" stroke-width="1"/>
+<text class="fnt1" x="70.0" y="-5.0" text-anchor="middle" dy="5.5">Power</text>
+<g transform="translate(0,19)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">VPB</text>
+</g>
+<g transform="translate(0,41)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">VPWR</text>
+</g>
+<g transform="translate(0,63)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">VGND</text>
+</g>
+<g transform="translate(0,85)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">VNB</text>
+</g>
+</g>
+<rect x="1.0" y="-20.0" width="138.0" height="230.0" stroke="#000000" fill="none" stroke-width="3"/>
+<text class="fnt3" x="70.0" y="-30.0" text-anchor="middle" dy="-1.0">xor3</text>
+<text class="fnt4" x="70.0" y="230.0" text-anchor="middle" dy="1.0">sky130_fd_sc_ms</text>
+</svg>
\ No newline at end of file
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.pp.symbol.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.pp.symbol.v
new file mode 100644
index 0000000..1473fef
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.pp.symbol.v
@@ -0,0 +1,53 @@
+/**
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+`ifndef SKY130_FD_SC_MS__XOR3_PP_SYMBOL_V
+`define SKY130_FD_SC_MS__XOR3_PP_SYMBOL_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog stub (with power pins) for graphical symbol definition
+ * generation.
+ *
+ * WARNING: This file is autogenerated, do not modify directly!
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+(* blackbox *)
+module sky130_fd_sc_ms__xor3 (
+ //# {{data|Data Signals}}
+ input A ,
+ input B ,
+ input C ,
+ output X ,
+
+ //# {{power|Power}}
+ input VPB ,
+ input VPWR,
+ input VGND,
+ input VNB
+);
+endmodule
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_PP_SYMBOL_V
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.schematic.svg b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.schematic.svg
new file mode 100644
index 0000000..73ff300
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.schematic.svg
@@ -0,0 +1,75 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:s="https://github.com/nturley/netlistsvg" width="255" height="129">
+ <style>svg {
+ stroke:#000;
+ fill:none;
+ }
+ text {
+ fill:#000;
+ stroke:none;
+ font-size:10px;
+ font-weight: bold;
+ font-family: "Courier New", monospace;
+ }
+ .nodelabel {
+ text-anchor: middle;
+ }
+ .inputPortLabel {
+ text-anchor: end;
+ }
+ .splitjoinBody {
+ fill:#000;
+ }</style>
+ <g s:type="reduce_xor" transform="translate(77,27)" s:width="33" s:height="25" id="cell_$xor$../skywater-pdk-scratch-new/skywater-pdk/libraries/sky130_fd_sc_ms/v0.0.1/cells/xor3/sky130_fd_sc_ms__xor3.functional.v:52$1">
+ <s:alias val="$xor"/>
+ <s:alias val="$reduce_xor"/>
+ <s:alias val="$_XOR_"/>
+ <path d="M3,0 A30 25 0 0 1 3,25 A30 25 0 0 0 33,12.5 A30 25 0 0 0 3,0" class="cell_$xor$../skywater-pdk-scratch-new/skywater-pdk/libraries/sky130_fd_sc_ms/v0.0.1/cells/xor3/sky130_fd_sc_ms__xor3.functional.v:52$1"/>
+ <path d="M0,0 A30 25 0 0 1 0,25" class="cell_$xor$../skywater-pdk-scratch-new/skywater-pdk/libraries/sky130_fd_sc_ms/v0.0.1/cells/xor3/sky130_fd_sc_ms__xor3.functional.v:52$1"/>
+ <g s:x="3" s:y="5" s:pid="A"/>
+ <g s:x="3" s:y="20" s:pid="B"/>
+ <g s:x="33" s:y="12.5" s:pid="Y"/>
+ </g>
+ <g s:type="reduce_xor" transform="translate(145,34.5)" s:width="33" s:height="25" id="cell_$xor$../skywater-pdk-scratch-new/skywater-pdk/libraries/sky130_fd_sc_ms/v0.0.1/cells/xor3/sky130_fd_sc_ms__xor3.functional.v:52$2">
+ <s:alias val="$xor"/>
+ <s:alias val="$reduce_xor"/>
+ <s:alias val="$_XOR_"/>
+ <path d="M3,0 A30 25 0 0 1 3,25 A30 25 0 0 0 33,12.5 A30 25 0 0 0 3,0" class="cell_$xor$../skywater-pdk-scratch-new/skywater-pdk/libraries/sky130_fd_sc_ms/v0.0.1/cells/xor3/sky130_fd_sc_ms__xor3.functional.v:52$2"/>
+ <path d="M0,0 A30 25 0 0 1 0,25" class="cell_$xor$../skywater-pdk-scratch-new/skywater-pdk/libraries/sky130_fd_sc_ms/v0.0.1/cells/xor3/sky130_fd_sc_ms__xor3.functional.v:52$2"/>
+ <g s:x="3" s:y="5" s:pid="A"/>
+ <g s:x="3" s:y="20" s:pid="B"/>
+ <g s:x="33" s:y="12.5" s:pid="Y"/>
+ </g>
+ <g s:type="outputExt" transform="translate(213,37)" s:width="30" s:height="20" id="cell_X">
+ <text x="15" y="-4" class="nodelabel cell_X" s:attribute="ref">X</text>
+ <s:alias val="$_outputExt_"/>
+ <path d="M30,0 L30,20 L15,20 L0,10 L15,0 Z" class="cell_X"/>
+ <g s:x="0" s:y="10" s:pid="A"/>
+ </g>
+ <g s:type="inputExt" transform="translate(12,22)" s:width="30" s:height="20" id="cell_A">
+ <text x="15" y="-4" class="nodelabel cell_A" s:attribute="ref">A</text>
+ <s:alias val="$_inputExt_"/>
+ <path d="M0,0 L0,20 L15,20 L30,10 L15,0 Z" class="cell_A"/>
+ <g s:x="28" s:y="10" s:pid="Y"/>
+ </g>
+ <g s:type="inputExt" transform="translate(12,87)" s:width="30" s:height="20" id="cell_B">
+ <text x="15" y="-4" class="nodelabel cell_B" s:attribute="ref">B</text>
+ <s:alias val="$_inputExt_"/>
+ <path d="M0,0 L0,20 L15,20 L30,10 L15,0 Z" class="cell_B"/>
+ <g s:x="28" s:y="10" s:pid="Y"/>
+ </g>
+ <g s:type="inputExt" transform="translate(80,97)" s:width="30" s:height="20" id="cell_C">
+ <text x="15" y="-4" class="nodelabel cell_C" s:attribute="ref">C</text>
+ <s:alias val="$_inputExt_"/>
+ <path d="M0,0 L0,20 L15,20 L30,10 L15,0 Z" class="cell_C"/>
+ <g s:x="28" s:y="10" s:pid="Y"/>
+ </g>
+ <line x1="40" x2="80" y1="32" y2="32" class="net_3"/>
+ <line x1="40" x2="52" y1="97" y2="97" class="net_4"/>
+ <line x1="52" x2="52" y1="97" y2="47" class="net_4"/>
+ <line x1="52" x2="80" y1="47" y2="47" class="net_4"/>
+ <line x1="110" x2="148" y1="39.5" y2="39.5" class="net_6"/>
+ <line x1="108" x2="120" y1="107" y2="107" class="net_5"/>
+ <line x1="120" x2="120" y1="107" y2="54.5" class="net_5"/>
+ <line x1="120" x2="148" y1="54.5" y2="54.5" class="net_5"/>
+ <line x1="178" x2="213" y1="47" y2="47" class="net_2"/>
+</svg>
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.specify.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.specify.v
new file mode 100644
index 0000000..4d2849c
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.specify.v
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+*/
+
+specify
+if ((!B&!C)) (A +=> X) = (0:0:0,0:0:0);
+if ((!B&C)) (A -=> X) = (0:0:0,0:0:0);
+if ((B&!C)) (A -=> X) = (0:0:0,0:0:0);
+if ((B&C)) (A +=> X) = (0:0:0,0:0:0);
+if ((!A&!C)) (B +=> X) = (0:0:0,0:0:0);
+if ((!A&C)) (B -=> X) = (0:0:0,0:0:0);
+if ((A&!C)) (B -=> X) = (0:0:0,0:0:0);
+if ((A&C)) (B +=> X) = (0:0:0,0:0:0);
+if ((!A&!B)) (C +=> X) = (0:0:0,0:0:0);
+if ((!A&B)) (C -=> X) = (0:0:0,0:0:0);
+if ((A&!B)) (C -=> X) = (0:0:0,0:0:0);
+if ((A&B)) (C +=> X) = (0:0:0,0:0:0);
+endspecify
\ No newline at end of file
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.symbol.svg b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.symbol.svg
new file mode 100644
index 0000000..ec8a1bd
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.symbol.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created by Symbolator http://kevinpt.github.io/symbolator -->
+<svg xmlns="http://www.w3.org/2000/svg"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xml:space="preserve"
+width="191" height="168" viewBox="-25 -56 191.0 168.0" version="1.1">
+<style type="text/css">
+<![CDATA[
+.fnt1 { fill:#000000; font-family:Times; font-size:12pt; font-weight:normal; font-style:italic; }
+.fnt2 { fill:#000000; font-family:Helvetica; font-size:12pt; font-weight:normal; font-style:normal; }
+.fnt3 { fill:#000000; font-family:Helvetica; font-size:16pt; font-weight:bold; font-style:normal; }
+.fnt4 { fill:#000000; font-family:Helvetica; font-size:10pt; font-style:normal; }
+.label {fill:#000;
+ text-anchor:middle;
+ font-size:16pt; font-weight:bold; font-family:Sans;}
+.link {fill: #0D47A1;}
+.link:hover {fill: #0D47A1; text-decoration:underline;}
+.link:visited {fill: #4A148C;}
+]]>
+</style>
+<defs>
+
+</defs>
+<rect x="-25" y="-56" width="100%" height="100%" fill="white"/><g transform="translate(0,0)">
+<rect x="0" y="-21.0" width="140" height="105.0" stroke="#000000" fill="#CCFED2" stroke-width="1"/>
+<text class="fnt1" x="70.0" y="-5.0" text-anchor="middle" dy="5.5">Data Signals</text>
+<g transform="translate(0,19)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">A</text>
+</g>
+<g transform="translate(0,41)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">B</text>
+</g>
+<g transform="translate(0,63)">
+<line x1="-20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="10" y="0" text-anchor="normal" dy="5.5">C</text>
+</g>
+<g transform="translate(140,19)">
+<line x1="20" y1="0" x2="0" y2="0" stroke="#000000" fill="none" stroke-width="1"/>
+<text class="fnt2" x="-10" y="0" text-anchor="end" dy="5.5">X</text>
+</g>
+</g>
+<rect x="1.0" y="-20.0" width="138.0" height="103.0" stroke="#000000" fill="none" stroke-width="3"/>
+<text class="fnt3" x="70.0" y="-30.0" text-anchor="middle" dy="-1.0">xor3</text>
+<text class="fnt4" x="70.0" y="103.0" text-anchor="middle" dy="1.0">sky130_fd_sc_ms</text>
+</svg>
\ No newline at end of file
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.symbol.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.symbol.v
new file mode 100644
index 0000000..7abe57e
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.symbol.v
@@ -0,0 +1,54 @@
+/**
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+`ifndef SKY130_FD_SC_MS__XOR3_SYMBOL_V
+`define SKY130_FD_SC_MS__XOR3_SYMBOL_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog stub (without power pins) for graphical symbol definition
+ * generation.
+ *
+ * WARNING: This file is autogenerated, do not modify directly!
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+(* blackbox *)
+module sky130_fd_sc_ms__xor3 (
+ //# {{data|Data Signals}}
+ input A,
+ input B,
+ input C,
+ output X
+);
+
+ // Voltage supply signals
+ supply1 VPWR;
+ supply0 VGND;
+ supply1 VPB ;
+ supply0 VNB ;
+
+endmodule
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_SYMBOL_V
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.tb.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.tb.v
new file mode 100644
index 0000000..645ffed
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.tb.v
@@ -0,0 +1,104 @@
+/**
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+`ifndef SKY130_FD_SC_MS__XOR3_TB_V
+`define SKY130_FD_SC_MS__XOR3_TB_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Autogenerated test bench.
+ *
+ * WARNING: This file is autogenerated, do not modify directly!
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+`include "sky130_fd_sc_ms__xor3.v"
+
+module top();
+
+ // Inputs are registered
+ reg A;
+ reg B;
+ reg C;
+ reg VPWR;
+ reg VGND;
+ reg VPB;
+ reg VNB;
+
+ // Outputs are wires
+ wire X;
+
+ initial
+ begin
+ // Initial state is x for all inputs.
+ A = 1'bX;
+ B = 1'bX;
+ C = 1'bX;
+ VGND = 1'bX;
+ VNB = 1'bX;
+ VPB = 1'bX;
+ VPWR = 1'bX;
+
+ #20 A = 1'b0;
+ #40 B = 1'b0;
+ #60 C = 1'b0;
+ #80 VGND = 1'b0;
+ #100 VNB = 1'b0;
+ #120 VPB = 1'b0;
+ #140 VPWR = 1'b0;
+ #160 A = 1'b1;
+ #180 B = 1'b1;
+ #200 C = 1'b1;
+ #220 VGND = 1'b1;
+ #240 VNB = 1'b1;
+ #260 VPB = 1'b1;
+ #280 VPWR = 1'b1;
+ #300 A = 1'b0;
+ #320 B = 1'b0;
+ #340 C = 1'b0;
+ #360 VGND = 1'b0;
+ #380 VNB = 1'b0;
+ #400 VPB = 1'b0;
+ #420 VPWR = 1'b0;
+ #440 VPWR = 1'b1;
+ #460 VPB = 1'b1;
+ #480 VNB = 1'b1;
+ #500 VGND = 1'b1;
+ #520 C = 1'b1;
+ #540 B = 1'b1;
+ #560 A = 1'b1;
+ #580 VPWR = 1'bx;
+ #600 VPB = 1'bx;
+ #620 VNB = 1'bx;
+ #640 VGND = 1'bx;
+ #660 C = 1'bx;
+ #680 B = 1'bx;
+ #700 A = 1'bx;
+ end
+
+ sky130_fd_sc_ms__xor3 dut (.A(A), .B(B), .C(C), .VPWR(VPWR), .VGND(VGND), .VPB(VPB), .VNB(VNB), .X(X));
+
+endmodule
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_TB_V
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.v
new file mode 100644
index 0000000..7383dd3
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3.v
@@ -0,0 +1,54 @@
+/**
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+`ifndef SKY130_FD_SC_MS__XOR3_V
+`define SKY130_FD_SC_MS__XOR3_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog top module.
+ *
+ * WARNING: This file is autogenerated, do not modify directly!
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+`ifdef USE_POWER_PINS
+
+`ifdef FUNCTIONAL
+`include "sky130_fd_sc_ms__xor3.pp.functional.v"
+`else // FUNCTIONAL
+`include "sky130_fd_sc_ms__xor3.pp.behavioral.v"
+`endif // FUNCTIONAL
+
+`else // USE_POWER_PINS
+
+`ifdef FUNCTIONAL
+`include "sky130_fd_sc_ms__xor3.functional.v"
+`else // FUNCTIONAL
+`include "sky130_fd_sc_ms__xor3.behavioral.v"
+`endif // FUNCTIONAL
+
+`endif // USE_POWER_PINS
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_V
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3_1.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3_1.v
new file mode 100644
index 0000000..92c4a80
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3_1.v
@@ -0,0 +1,119 @@
+/**
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+`ifndef SKY130_FD_SC_MS__XOR3_1_V
+`define SKY130_FD_SC_MS__XOR3_1_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog wrapper for xor3 with size of 1 units.
+ *
+ * WARNING: This file is autogenerated, do not modify directly!
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+`include "sky130_fd_sc_ms__xor3.v"
+
+`ifdef USE_POWER_PINS
+/*********************************************************/
+
+`celldefine
+module sky130_fd_sc_ms__xor3_1 (
+ X ,
+ A ,
+ B ,
+ C ,
+ VPWR,
+ VGND,
+ VPB ,
+ VNB
+);
+
+ output X ;
+ input A ;
+ input B ;
+ input C ;
+ input VPWR;
+ input VGND;
+ input VPB ;
+ input VNB ;
+ sky130_fd_sc_ms__xor3 cell (
+ .X(X),
+ .A(A),
+ .B(B),
+ .C(C),
+ .VPWR(VPWR),
+ .VGND(VGND),
+ .VPB(VPB),
+ .VNB(VNB)
+ );
+
+endmodule
+`endcelldefine
+
+/*********************************************************/
+`else // If not USE_POWER_PINS
+/*********************************************************/
+
+`celldefine
+module sky130_fd_sc_ms__xor3_1 (
+ X ,
+ A ,
+ B ,
+ C ,
+ VPWR,
+ VGND,
+ VPB ,
+ VNB
+);
+
+ output X ;
+ input A ;
+ input B ;
+ input C ;
+ input VPWR;
+ input VGND;
+ input VPB ;
+ input VNB ;
+
+ // Voltage supply signals
+ supply1 VPWR;
+ supply0 VGND;
+ supply1 VPB ;
+ supply0 VNB ;
+
+ sky130_fd_sc_ms__xor3 cell (
+ .X(X),
+ .A(A),
+ .B(B),
+ .C(C)
+ );
+
+endmodule
+`endcelldefine
+
+/*********************************************************/
+`endif // USE_POWER_PINS
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_1_V
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3_2.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3_2.v
new file mode 100644
index 0000000..675d438
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3_2.v
@@ -0,0 +1,119 @@
+/**
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+`ifndef SKY130_FD_SC_MS__XOR3_2_V
+`define SKY130_FD_SC_MS__XOR3_2_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog wrapper for xor3 with size of 2 units.
+ *
+ * WARNING: This file is autogenerated, do not modify directly!
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+`include "sky130_fd_sc_ms__xor3.v"
+
+`ifdef USE_POWER_PINS
+/*********************************************************/
+
+`celldefine
+module sky130_fd_sc_ms__xor3_2 (
+ X ,
+ A ,
+ B ,
+ C ,
+ VPWR,
+ VGND,
+ VPB ,
+ VNB
+);
+
+ output X ;
+ input A ;
+ input B ;
+ input C ;
+ input VPWR;
+ input VGND;
+ input VPB ;
+ input VNB ;
+ sky130_fd_sc_ms__xor3 cell (
+ .X(X),
+ .A(A),
+ .B(B),
+ .C(C),
+ .VPWR(VPWR),
+ .VGND(VGND),
+ .VPB(VPB),
+ .VNB(VNB)
+ );
+
+endmodule
+`endcelldefine
+
+/*********************************************************/
+`else // If not USE_POWER_PINS
+/*********************************************************/
+
+`celldefine
+module sky130_fd_sc_ms__xor3_2 (
+ X ,
+ A ,
+ B ,
+ C ,
+ VPWR,
+ VGND,
+ VPB ,
+ VNB
+);
+
+ output X ;
+ input A ;
+ input B ;
+ input C ;
+ input VPWR;
+ input VGND;
+ input VPB ;
+ input VNB ;
+
+ // Voltage supply signals
+ supply1 VPWR;
+ supply0 VGND;
+ supply1 VPB ;
+ supply0 VNB ;
+
+ sky130_fd_sc_ms__xor3 cell (
+ .X(X),
+ .A(A),
+ .B(B),
+ .C(C)
+ );
+
+endmodule
+`endcelldefine
+
+/*********************************************************/
+`endif // USE_POWER_PINS
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_2_V
diff --git a/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3_4.v b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3_4.v
new file mode 100644
index 0000000..0e9db33
--- /dev/null
+++ b/libraries/sky130_fd_sc_ms/v0.0.0/cells/xor3/sky130_fd_sc_ms__xor3_4.v
@@ -0,0 +1,119 @@
+/**
+ * Copyright 2020 The SkyWater PDK Authors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+`ifndef SKY130_FD_SC_MS__XOR3_4_V
+`define SKY130_FD_SC_MS__XOR3_4_V
+
+/**
+ * xor3: 3-input exclusive OR.
+ *
+ * X = A ^ B ^ C
+ *
+ * Verilog wrapper for xor3 with size of 4 units.
+ *
+ * WARNING: This file is autogenerated, do not modify directly!
+ */
+
+`timescale 1ns / 1ps
+`default_nettype none
+
+`include "sky130_fd_sc_ms__xor3.v"
+
+`ifdef USE_POWER_PINS
+/*********************************************************/
+
+`celldefine
+module sky130_fd_sc_ms__xor3_4 (
+ X ,
+ A ,
+ B ,
+ C ,
+ VPWR,
+ VGND,
+ VPB ,
+ VNB
+);
+
+ output X ;
+ input A ;
+ input B ;
+ input C ;
+ input VPWR;
+ input VGND;
+ input VPB ;
+ input VNB ;
+ sky130_fd_sc_ms__xor3 cell (
+ .X(X),
+ .A(A),
+ .B(B),
+ .C(C),
+ .VPWR(VPWR),
+ .VGND(VGND),
+ .VPB(VPB),
+ .VNB(VNB)
+ );
+
+endmodule
+`endcelldefine
+
+/*********************************************************/
+`else // If not USE_POWER_PINS
+/*********************************************************/
+
+`celldefine
+module sky130_fd_sc_ms__xor3_4 (
+ X ,
+ A ,
+ B ,
+ C ,
+ VPWR,
+ VGND,
+ VPB ,
+ VNB
+);
+
+ output X ;
+ input A ;
+ input B ;
+ input C ;
+ input VPWR;
+ input VGND;
+ input VPB ;
+ input VNB ;
+
+ // Voltage supply signals
+ supply1 VPWR;
+ supply0 VGND;
+ supply1 VPB ;
+ supply0 VNB ;
+
+ sky130_fd_sc_ms__xor3 cell (
+ .X(X),
+ .A(A),
+ .B(B),
+ .C(C)
+ );
+
+endmodule
+`endcelldefine
+
+/*********************************************************/
+`endif // USE_POWER_PINS
+
+`default_nettype wire
+`endif // SKY130_FD_SC_MS__XOR3_4_V