diff --git a/figures/adc.svg b/figures/adc.svg
new file mode 100644
index 0000000..87904aa
--- /dev/null
+++ b/figures/adc.svg
@@ -0,0 +1,254 @@
+
+
+
\ No newline at end of file
diff --git a/figures/adc.tex b/figures/adc.tex
new file mode 100644
index 0000000..404abfe
--- /dev/null
+++ b/figures/adc.tex
@@ -0,0 +1,164 @@
+\documentclass[border=5pt]{standalone}
+\usepackage{circuitikz}
+
+\begin{document}
+
+\newcommand{\wedgedown}{+(-0.15,0) -- +(0,-0.15) -- +(0.15,0)}
+
+\begin{circuitikz}
+ \draw (0, 0) node[above]{$V_{+}$} to[short, *-]++ (1, 0) coordinate (sh1_left);
+ \draw (0, -4) node[above]{$V_{-}$} to[short, *-]++ (1, 0) coordinate (sh2_left);
+
+ % Sample & Hold
+ \node [muxdemux,
+ muxdemux def={Lh=4, NL=2, Rh=4, NR=2, NT=1, NB=0, w=6},
+ draw only top pins={},
+ draw only left pins={1},
+ draw only right pins={1},
+ anchor=lpin 1
+ ](sh1) at (sh1_left) {};
+ \node [above] at ($(sh1.btpin 1) + (-1, 0)$) {S\&H};
+
+ \draw (sh1.blpin 1) to[switch]++ (2, 0) coordinate (sh1_c)
+ to (sh1.brpin 1);
+ \draw (sh1_c) to[C]++ (0, -1) node[ground]{};
+
+ \node [muxdemux,
+ muxdemux def={Lh=4, NL=2, Rh=4, NR=2, NT=1, NB=0, w=6},
+ draw only top pins={},
+ draw only left pins={1},
+ draw only right pins={1},
+ anchor=lpin 1
+ ](sh2) at (sh2_left) {};
+ \node [above] at ($(sh2.btpin 1) + (-1, 0)$) {S\&H};
+
+ \draw (sh2.blpin 1) to[switch]++ (2, 0) coordinate (sh2_c)
+ to (sh2.brpin 1);
+ \draw (sh2_c) to[C]++ (0, -1) node[ground]{};
+
+ % DAC -
+ \node [muxdemux,
+ muxdemux def={Lh=8, NL=2, Rh=8, NR=2, NT=1, NB=1, w=10, inset w=0.5, inset Lh=3.0, inset Rh=2.0},
+ draw only top pins={},
+ anchor=lpin 1
+ ] (dac2) at ($(sh2.rpin 1) + (1, 0)$) {};
+
+ \node [above] at ($(dac2.btpin 1) + (-2, 0)$) {DAC};
+
+ \coordinate (dac2_cap_j) at ($(dac2.btpin 1) + (0, -0.5)$);
+ \coordinate (dac2_tj) at ($(dac2_cap_j)!0.5!(dac2.btpin 1)$);
+ \coordinate (dac2_outset_left) at ($(dac2.brpin 1) + (-0.5, 0)$);
+
+ \draw (dac2.blpin 1) to (dac2.blpin 1 -| dac2.inset right)
+ |- (dac2_tj)
+ -| (dac2.brpin 1 -| dac2_outset_left)
+ to (dac2.brpin 1);
+ \draw (dac2_tj) to (dac2_cap_j);
+
+ \draw (dac2_cap_j) to++ (-2, 0)
+ to[C]++ (0, -2) node[spdt, rotate=-90, anchor=in](d1){} node[right]{$D_1$};
+ \coordinate (dac2_left_cap) at (d1.out 1);
+ \draw (dac2_cap_j) ++ (-1, 0)
+ to[C]++ (0, -2) node[spdt, rotate=-90, anchor=in](d2){} node[right]{$D_2$};
+ \draw (dac2_cap_j) ++ (0, 0)
+ to[C]++ (0, -2) node[spdt, rotate=-90, anchor=in](d3){} node[right]{$D_3$};
+ \draw (dac2_cap_j) ++ (1, 0)
+ ++ (0, -1) node{\ldots};
+ \draw (dac2_cap_j) to++ (2, 0)
+ to[C]++ (0, -2) node[spdt, rotate=-90, anchor=in](d12){} node[right]{$D_{12}$};
+ \coordinate (dac2_right_cap) at (d12.out 1);
+
+ \coordinate (dac2_bj) at ($(d1.out 1 -| dac2.bbpin 1)!0.5!(dac2.bbpin 1)$);
+ \draw (d1.out 1 |- dac2_bj) to (dac2_bj) to (d12.out 1 |- dac2_bj);
+
+ \draw (d1.out 1) to (d1.out 1 |- dac2_bj);
+ \draw (d2.out 1) to (d2.out 1 |- dac2_bj);
+ \draw (d3.out 1) to (d3.out 1 |- dac2_bj);
+ \draw (d12.out 1) to (d12.out 1 |- dac2_bj);
+
+ \draw (d1.out 2) to (d12.out 2) |- (dac2.brpin 2);
+ \node [ground] at (dac2.rpin 2){};
+
+ \coordinate (dac2_sw_j) at ($(dac2_left_cap)!0.5!(dac2_right_cap)$);
+
+ \draw (dac2_bj) to (dac2.bbpin 1);
+ \node [below] at (dac2.bpin 1){$V_{ref}$};
+
+ % DAC +
+ \node [muxdemux,
+ muxdemux def={Lh=8, NL=2, Rh=8, NR=2, NT=1, NB=1, w=10, inset w=0.5, inset Lh=3.0, inset Rh=2.0},
+ draw only bottom pins={},
+ anchor=lpin 2
+ ] (dac1) at ($(sh1.rpin 1) + (1, 0)$) {};
+
+ \node [above] at ($(dac1.btpin 1) + (-2, 0)$) {DAC};
+
+ \coordinate (dac1_cap_j) at ($(dac1.bbpin 1) + (0, 0.5)$);
+ \coordinate (dac1_bj) at ($(dac1_cap_j)!0.5!(dac1.bbpin 1)$);
+ \coordinate (dac1_outset_left) at ($(dac1.brpin 2) + (-0.5, 0)$);
+
+ \draw (dac1.blpin 2) to (dac1.blpin 2 -| dac1.inset right)
+ |- (dac1_bj)
+ -| (dac1.brpin 2 -| dac1_outset_left)
+ to (dac1.brpin 2);
+ \draw (dac1_bj) to (dac1_cap_j);
+
+ \draw (dac1_cap_j) to++ (-2, 0)
+ to[C]++ (0, 2) node[spdt, rotate=90, anchor=in](d1){} node[right]{$D_1$};
+ \coordinate (dac_left_cap) at (d1.out 1);
+ \draw (dac1_cap_j) ++ (-1, 0)
+ to[C]++ (0, 2) node[spdt, rotate=90, anchor=in](d2){} node[right]{$D_2$};
+ \draw (dac1_cap_j) ++ (0, 0)
+ to[C]++ (0, 2) node[spdt, rotate=90, anchor=in](d3){} node[right]{$D_3$};
+ \draw (dac1_cap_j) ++ (1, 0)
+ ++ (0, 1) node{\ldots};
+ \draw (dac1_cap_j) to++ (2, 0)
+ to[C]++ (0, 2) node[spdt, rotate=90, anchor=in](d12){} node[right]{$D_{12}$};
+ \coordinate (dac1_right_cap) at (d12.out 1);
+
+ \coordinate (dac1_tj) at ($(d1.out 1 -| dac1.btpin 1)!0.5!(dac1.btpin 1)$);
+ \draw (d1.out 1 |- dac1_tj) to (dac1_tj) to (d12.out 1 |- dac1_tj);
+ \draw (dac1_tj) to (dac1.btpin 1);
+ \node [above] at (dac1.tpin 1) {$V_{ref}$};
+
+ \draw (d1.out 1) to (d1.out 1 |- dac1_tj);
+ \draw (d2.out 1) to (d2.out 1 |- dac1_tj);
+ \draw (d3.out 1) to (d3.out 1 |- dac1_tj);
+ \draw (d12.out 1) to (d12.out 1 |- dac1_tj);
+
+ \draw (d1.out 2) to (d12.out 2) |- (dac1.brpin 1);
+ \node [ground] at (dac1.rpin 1){};
+
+ % Comparator
+ \node [op amp, yscale=-1, scale=1.5](comp) at ($(dac1.rpin 2)!0.5!(dac2.rpin 1) + (2, 0)$) {};
+ \draw (dac1.rpin 2) |- (comp.+);
+ \draw (dac2.rpin 1) |- (comp.-);
+
+ % SAR
+ \node [muxdemux,
+ muxdemux def={Lh=8, NL=1, Rh=8, NR=1, NT=2, NB=0},
+ anchor=lpin 1
+ ] (sar) at ($(comp.out) + (0.5, 0)$) {SAR};
+ \draw (sar.btpin 1) \wedgedown;
+ \node [above] at (sar.tpin 1) {CLK};
+ \node [above] at (sar.tpin 2) {RST};
+
+ \coordinate (sar_j) at ($(sar.rpin 1) + (0.5, 0)$);
+ \draw (sar.rpin 1) to (sar_j);
+
+ \draw (sh1.rpin 1) to (dac1.lpin 2);
+ \draw (sh2.rpin 1) to (dac2.lpin 1);
+
+ \draw (dac2.lpin 2) to++ (0, -2) coordinate (temp)
+ to (temp -| sar_j)
+ |- (sar_j);
+ \draw (dac1.lpin 1) to++ (0, 2) coordinate (temp)
+ to (temp -| sar_j)
+ |- (sar_j);
+ \draw (comp.out) to (sar.lpin 1);
+ \draw (sar_j) to[multiwire=12, -*]++ (2, 0) node[above]{$V_{out}$};
+
+\end{circuitikz}
+
+\end{document}
+
diff --git a/figures/bootstrap_sw.svg b/figures/bootstrap_sw.svg
new file mode 100644
index 0000000..e12891d
--- /dev/null
+++ b/figures/bootstrap_sw.svg
@@ -0,0 +1,129 @@
+
+
+
\ No newline at end of file
diff --git a/figures/bootstrap_sw.tex b/figures/bootstrap_sw.tex
new file mode 100644
index 0000000..3ed1ef4
--- /dev/null
+++ b/figures/bootstrap_sw.tex
@@ -0,0 +1,68 @@
+\documentclass[border=5pt]{standalone}
+\usepackage{circuitikz}
+
+\begin{document}
+
+\begin{circuitikz}
+\coordinate (origin) at (0, 0);
+
+\node [nmos, xscale=-1] (m1) at (0.5, -1.5){};
+\node [nmos] (m2) at ($(m1) + (2.5, 0)$){};
+
+\draw (m1.drain) to (m1.drain |- origin);
+\draw (m2.drain) to (m2.drain |- origin);
+
+\draw (m1.gate) to (m2.source);
+\draw (m2.gate) to (m1.source);
+
+\node [nmos] (m3) at ($(m2) + (1.5, 0)$){};
+\draw (m3.drain) to (m3.drain |- origin);
+\draw (m2.gate) to++ (0, 1) coordinate (temp)
+ to (temp -| m3.gate)
+ to (m3.gate);
+
+\draw (m1.source) to[C]++ (0, -2) coordinate (c1);
+\draw (m2.source) to[C]++ (0, -2) node[not port, anchor=out, rotate=-90, scale=-1] (not) {};
+\draw (not.in) to++ (0, -1) coordinate (not_in)
+ to (not_in -| c1) coordinate(phi_j)
+ to[short, -*] (phi_j -| origin) node[above]{$\bar{\Phi}$};
+\draw (c1) to (phi_j);
+
+\draw (m3.source) to[C]++ (0, -2)
+ to++ (0, -1) node[nmos, anchor=drain](m4){};
+\draw (not_in) -| (m4.gate);
+\node [ground] at (m4.source){};
+
+\draw (m4.drain) ++ (2.5, 0) node[nmos, anchor=source](m6){};
+\node [pmos, anchor=drain](m5) at (m6.drain){};
+
+\draw (m5.gate) to (m6.gate);
+
+\draw ($(m5.gate)!0.5!(m6.gate)$) to[short, -*]++ (-0.5, 0) node[left]{$\Phi$};
+\draw (m5.source) to (m5.source |- origin);
+
+\draw (m6.drain) to++ (1, 0) node[nmos, anchor=drain, xscale=-1](m8){}
+ to++ (0, 1) node[nmos, anchor=gate, rotate=90](m7){};
+\draw (m7.drain) |- (m3.source);
+
+\draw (m8.gate) to++ (0.5, 0) node[nmos, anchor=gate, rotate=-90](m9){}
+ to++ (2, 0) node[nmos, anchor=gate, rotate=-90](m10){};
+
+\draw (m4.drain) to (m8.source) |- (m9.source);
+
+\draw (m9.drain) to (m10.source);
+\draw ($(m9.drain)!0.5!(m10.source)$) to[short, -*]++ (0, -1) node[below] {$V_{in}$};
+\draw (m10.drain) to[short, -*]++ (0, -1) node[below] {$V_{out}$};
+
+\node [nmos, anchor=source, rotate=-90](m11) at (m7.source){};
+\draw (m11.gate) to (m11.gate |- origin);
+
+\node [nmos, anchor=source, rotate=-90](m12) at (m11.drain){};
+\draw (m12.gate) to[short, -*]++ (1.5, 0) coordinate (phi_right) node[above]{$\bar{\Phi}$};
+\node [ground] at (m12.drain){};
+
+\draw (origin) node[above]{$V_{DD}$} to[short, *-*] (origin -| phi_right);
+
+\end{circuitikz}
+
+\end{document}
diff --git a/figures/cdac.svg b/figures/cdac.svg
new file mode 100644
index 0000000..7ff1a50
--- /dev/null
+++ b/figures/cdac.svg
@@ -0,0 +1,191 @@
+
+
+
\ No newline at end of file
diff --git a/figures/cdac.tex b/figures/cdac.tex
new file mode 100644
index 0000000..e7dbdf9
--- /dev/null
+++ b/figures/cdac.tex
@@ -0,0 +1,26 @@
+\documentclass[border=5pt]{standalone}
+\usepackage{circuitikz}
+
+\begin{document}
+
+\begin{circuitikz}
+ \draw (-2, 0) to[C=$C_u$]++ (0, -2) node[ground]{};
+ \draw (0, 0) to[C=$C_u$]++ (0, -2) to[switch, l=$D_1$]++ (0, -2) coordinate(end_1);
+ \draw (2, 0) to[C=$2C_u$]++ (0, -2) to[switch, l=$D_2$]++ (0, -2);
+ \draw (4, 0) to[C=$4C_u$]++ (0, -2) to[switch, l=$D_3$]++ (0, -2);
+ \draw (6, 0) to[C=$8C_u$]++ (0, -2) to[switch, l=$D_4$]++ (0, -2);
+ \draw (8, 0) to[C=$16C_u$]++ (0, -2) to[switch, l=$D_5$]++ (0, -2);
+ \draw (10, 0) to[C=$32C_u$]++ (0, -2) to[switch, l=$D_6$]++ (0, -2);
+
+ \draw (12, 0) to[C=$C_u$]++ (0, -2) to[switch, l=$D_7$]++ (0, -2);
+ \draw (14, 0) to[C=$2C_u$]++ (0, -2) to[switch, l=$D_8$]++ (0, -2);
+ \draw (16, 0) to[C=$4C_u$]++ (0, -2) to[switch, l=$D_9$]++ (0, -2);
+ \draw (18, 0) to[C=$8C_u$]++ (0, -2) to[switch, l=$D_{10}$]++ (0, -2);
+ \draw (20, 0) to[C=$16C_u$]++ (0, -2) to[switch, l=$D_{11}$]++ (0, -2);
+ \draw (22, 0) to[C=$32C_u$]++ (0, -2) to[switch, l=$D_{12}$]++ (0, -2) coordinate(end_2);
+
+ \draw (-2, 0) to (10, 0) to[C=$\frac{64}{63}C_u$]++ (2, 0) to (22, 0) to[short,-*]++ (1, 0) node[right]{$V_o$};
+ \draw (end_1) to (end_2) to[short, -*]++ (1, 0) node[right]{$V_{ref}$};
+\end{circuitikz}
+
+\end{document}
diff --git a/spice/cdac.spice b/spice/cdac.spice
index 9d60a13..a299020 100644
--- a/spice/cdac.spice
+++ b/spice/cdac.spice
@@ -1,7 +1,8 @@
* CDAC Simulation
.include "sscs-chipathon-sar-adc/gf180mcu-pdk/libraries/gf180mcu_fd_pr/latest/models/ngspice/design.ngspice"
-.lib "sscs-chipathon-sar-adc/gf180mcu-pdk/libraries/gf180mcu_fd_pr/latest/models/ngspice/sm141064.ngspice" typical mimcap_typical
+.lib "sscs-chipathon-sar-adc/gf180mcu-pdk/libraries/gf180mcu_fd_pr/latest/models/ngspice/sm141064.ngspice" typical
+.lib "sscs-chipathon-sar-adc/gf180mcu-pdk/libraries/gf180mcu_fd_pr/latest/models/ngspice/sm141064.ngspice" mimcap_typical
.param width=10u