
# Diagram [A] - The many diodes potential diodes.
#
#                                                Vin
#                              /-----------------^-----------------\
#                              |                                   |
# GND <----+-----------+    +--^--+              Vo             +--^--+    +------------+---> VDD
#          |           |    +#####+    /---------^---------\    +#####+    |            |
#          |           |   /-------\   |                   |   /-------\   |            |
# +----+---^---+--+----^----+-----+----^----+---+-----+----^----+-----+----^----+--+----^----+--+-+
# |    |       |  |         |     |         |   |     |         |     |         |  |         |  | |
# |    |   P+  |  |   N+    |     |   N+    |   |     |    P+   |     |   P+    |  |   N+    |  | |
# |    |       |  |         |     |         |   |     |         |     |         |  |         |  | |
# |    |       |  |   [1]   |     |   [1]   |   |     |   [2]   |     |   [2]   |  |         |  | |
# |    |       |  |   ▁╻▁   |     |   ▁╻▁   |   |     |    ╻    |     |    ╻    |  |         |  | |
# |    +-------+  +---◢■◣---+     +---◢■◣---+   |     +---◥■◤---+     +---◥■◤---+  +---------+  | |
# |                    ╹               ╹        |         ▔╹▔             ▔╹▔                   | |
# |                                             |  [3]                              N-Well      | |
# |          P Substrate                        |  ▁╻▁                                          | |
# |                                             +--◢■◣------------------------------------------+ |
# |                                                 ╹                                             |
# |                                                                                               |
# +------------------------------------------------------------------------------------------------
#
# Diode [1] - Parasitic diode between psub  and ndiff
# Diode [2] - Parasitic diode between pdiff and nwell
# Diode [3] - Parasitic diode between psub  and nwell


# Diagram [N] - `ndiode` -- Intentional Diode between pwell and ndiff
#
#                |               |                    #
#                |               |                    #
# --+----+--+----^----+-----+----^----+--+-----+----- #
#   |    |  |         |     |         |  |     |      #
#   |    |  |   P+    |     |   N+    |  |     |      #
#   |    |  |         |     |         |  |     |      #
#   |    |  |         |     |   [1]   |  |     |      #
#   |    |  |         |     |   ▁╻▁   |  |     |      #
#   |    |  +---------+     +---◢■◣---+  |     |      #
#   |    |                       ╹       |     |      #
#   |    |  [2]       P-Well             |     |      #
#   |    |   ╻                           |     |      #
#   |    +--◥■◤--------------------------+     |      #
#   |       ▔╹▔                                |      #
#   |                                          |      #
#   |                [3]      Deep N-Well      |      #
#   |                ▁╻▁                       |      #
#   +----------------◢■◣-----------------------+      #
#                     ╹                               #
#                                 P Substrate         #
#                                                     #
# --------------------------------------------------- #
#
# [1] - ndiode - pwell to ndiff      -- intentional
# [2] -        - pwell to deep-nwell -- parastic
# [3] -        - psub  to deep-nwell -- parastic


# Diagram [P] - `pdiode` -- Intentional Diode between pdiff and nwell
#
#                |               |                    #
#                |               |                    #
# -------+--+----^----+-----+----^----+--+-----+----- #
#        |  |         |     |         |  |            #
#        |  |   P+    |     |   N+    |  |            #
#        |  |         |     |         |  |            #
#        |  |   [1]   |     |         |  |            #
#        |  |    ╻    |     |         |  |            #
#        |  +---◥■◤---+     +---------+  |            #
#        |      ▔╹▔                      |            #
#        |  [2]       N-Well             |            #
#        |  ▁╻▁                          |            #
#        +--◢■◣--------------------------+            #
#            ╹                                        #
#                                 P Substrate         #
#                                                     #
# --------------------------------------------------- #
#
# [1] - pdiode - pdiff to nwell   -- intentional
# [2] -        - psub to nwell    -- parastic




#           |             |                   |               |
#           |             |                   |               |
# +-+--+----^----+---+----^----+--+---+--+----^----+-----+----^----+--+-+
# | |  |         |   |         |  |   |  |         |     |         |  | |
# | |  |    P+   |   |   N+    |  |   |  |   P+    |     |   N+    |  | |
# | |  |         |   |         |  |   |  |         |     |         |  | |
# | |  |   [1]   |   |         |  |   |  |         |     |   [2]   |  | |
# | |  |    ╻    |   |         |  |   |  |         |     |   ▁╻▁   |  | |
# | |  +---◥■◤---+   +---------+  |   |  +---------+     +---◢■◣---+  | |
# | |      ▔╹▔                    |   |                       ╹       | |
# | |                  N-Well     |   |  [3]       P-Well             | |
# | |   ▁╻▁                       |   |   ╻                           | |
# | +---◢■◣----------+------------+---+--◥■◤-------------------+------+ |
# |      ╹           |                   ▔╹▔                   |        |
# |     [5]?         |                                         |        |
# |                  |               [4]        Deep N-Well    |        |
# |                  |               ▁╻▁                       |        |
# |                  +---------------◢■◣-----------------------+        |
# |                                   ╹                                 |
# |                                               P Substrate           |
# |                                                                     |
# +---------------------------------------------------------------------+


