Adding all diode devices without testing
diff --git a/BCDLite/klayout/lvs/rule_decks/diode_connection.lvs b/BCDLite/klayout/lvs/rule_decks/diode_connection.lvs
index e32069b..29764e1 100644
--- a/BCDLite/klayout/lvs/rule_decks/diode_connection.lvs
+++ b/BCDLite/klayout/lvs/rule_decks/diode_connection.lvs
@@ -20,18 +20,29 @@
 
 logger.info('Starting LVS DIODE CONNECTIONS')
 
+#=====================
+# --- NP 1P8 DIODE ---
+#=====================
+
 # diode_nd2ps_01v8: Model for 1.8V P+/Nwell diode (outside DNWELL) [np_1p8]
 connect(diode_nd2ps_01v8_terminal_n, contact)
 
 # diode_nd2ps_01v8_dn: Model for 1.8V N+/Psub diode (inside DNWELL) [np_1p8_dw]
 connect(diode_nd2ps_01v8_dn_terminal_n, contact)
 
+#=====================
+# --- PN 1P8 DIODE ---
+#=====================
+
 # diode_pd2nw_01v8: Model for 1.8V P+/Nwell diode (outside DNWELL) [pn_1p8]
 connect(diode_pd2nw_01v8_terminal_p, contact)
 
 # diode_pd2nw_01v8_dn: Model for 1.8V P+/Nwell diode (inside DNWELL) [pn_1p8_dw]
 connect(diode_pd2nw_01v8_dn_terminal_p, contact)
 
+#=====================
+# --- NP 6P0 DIODE ---
+#=====================
 
 # diode_nd2ps_06v0: Model for 6V N+/Pwell diode (outside DNWELL) [np_6p0]
 connect(diode_nd2ps_06v0_terminal_n, contact)
@@ -39,17 +50,81 @@
 # diode_nd2ps_06v0_dn: Model for 6V N+/Psub diode (inside DNWELL) [np_6p0_dw]
 connect(diode_nd2ps_06v0_dn_terminal_n, contact)
 
+#=====================
+# --- PN 6P0 DIODE ---
+#=====================
+
 # diode_pd2nw_06v0: Model for 6V P+/Nwell diode (outside DNWELL) [pn_6p0]
 connect(diode_pd2nw_06v0_terminal_p, contact)
 
 # diode_pd2nw_06v0_dn: Model for 6V P+/Nwell diode (inside DNWELL) [pn_6p0_dw]
 connect(diode_pd2nw_06v0_dn_terminal_p, contact)
 
+#======================
+# --- NWP 6P0 DIODE ---
+#======================
+
+# diode_nw2ps_06v0: Model for Nwell/Psub diode (applicable for both 1.8V/6V) [nwp_6p0]
+connect(diode_nw2ps_06v0_terminal_n, contact)
+connect(diode_nw2ps_06v0_terminal_p, contact)
+
+#====================
+# --- DNWPW DIODE ---
+#====================
+
+# diode_pw2dw: Model for LVPWELL/DNWELL diode (applicable for both 1.8V/6V) [dnwpw]
+connect(diode_pw2dw_terminal_p, contact)
+
+#======================
+# --- DNWPWHV DIODE ---
+#======================
+
+# diode_pw2dw_hv: Model for NW/PWHV diode (10V diode) [dnwpwhv]
+connect(diode_pw2dw_hv_terminal_n, contact)
+connect(diode_pw2dw_hv_terminal_p, contact)
+
+#=======================
+# --- DPWHVDNW DIODE ---
+#=======================
+
+# diode_pw2dnw_hv: Model for PWHV/DNW diode [dpwhvdnw]
+connect(diode_pw2dnw_hv_terminal_n, contact)
+connect(diode_pw2dnw_hv_terminal_p, contact)
+
+#======================
+# --- NP 30P0 DIODE ---
+#======================
+
+# diode_nd2ps_30v0: Model for HVNDDD/Psub diode [np_30p0]
+connect(diode_nd2ps_30v0_terminal_n, contact)
+connect(diode_nd2ps_30v0_terminal_p, contact)
+
+#======================
+# --- PN 30P0 DIODE ---
+#======================
+
+# diode_pd2nw_30v0: Model for HVPDDD/DNWELL diode [np_30p0]
+connect(diode_pd2nw_30v0_terminal_n, contact)
+
+#====================
+# --- DNWPS DIODE ---
+#====================
+
+# diode_dw2ps: Model for DNWELL/Psub diode(1.8V/6V) [dnwps]
+connect(diode_dw2ps_terminal_p, contact)
+
+#=================
+# --- SC DIODE ---
+#=================
 
 # diode_sc: Model for schottky diode [sc_diode]
 connect(sc_diode_terminal_n, contact)
 connect(sc_diode_terminal_p, schottky_diode)
 
+#====================
+# --- ZENER DIODE ---
+#====================
+
 # diode_zener: Model for zener diode outside DNWELL [zener_diode]
 connect(diode_zener_terminal_n, contact)
 connect(diode_zener_terminal_p, zener)
@@ -57,3 +132,11 @@
 # diode_zener_dn: Model for zener diode inside DNWELL [zener_diode_dw]
 connect(diode_zener_dn_terminal_n, contact)
 connect(diode_zener_dn_terminal_p, zener)
+
+#===================
+# --- POLY DIODE ---
+#===================
+
+# diode_poly: Model for poly diode [poly_diode]
+connect(diode_poly_terminal_n, contact)
+connect(diode_poly_terminal_p, contact)
diff --git a/BCDLite/klayout/lvs/rule_decks/diode_derivations.lvs b/BCDLite/klayout/lvs/rule_decks/diode_derivations.lvs
index cc2e1b7..df31374 100644
--- a/BCDLite/klayout/lvs/rule_decks/diode_derivations.lvs
+++ b/BCDLite/klayout/lvs/rule_decks/diode_derivations.lvs
@@ -24,63 +24,27 @@
 # ------ DIODE DERIVATIONS ------
 #================================
 
-didoe_exclude_layers = resistor.join(esd).join(sab).join(fusewindow_d)
-                       .join(polyfuse).join(piscap).join(v5_xtor)
-                       .join(drc_bjt).join(nat).join(fhres).join(dni)
-                       .join(mos_cap_mk).join(mvpsd).join(elmd_mk)
-                       .join(elmd2_mk).join(lvs_rf).join(lvs_source)
-                       .join(mk_35v).join(lvs_35v).join(esd_hbm_mk)
-                       .join(mos_mk_type1).join(swfet_mk).join(hvpolyrs)
+#======================
+# --- DIODE EXCLUDE ---
+#======================
 
-diode_nd2ps_01v8_exclude = didoe_exclude_layers.join(nwell).join(dualgate2_d)
-                          .join(poly2).join(pplus).join(pwhv)
-                          .join(schottky_diode).join(zener).join(res_mk)
-                          .join(mvsd).join(hvnddd).join(hvpddd)
-                          .join(ldmos_xtor)
+diode_exclude = resistor.join(esd).join(sab).join(fusewindow_d)
+                        .join(polyfuse).join(piscap).join(v5_xtor)
+                        .join(drc_bjt).join(nat).join(fhres).join(dni)
+                        .join(mos_cap_mk).join(mvpsd).join(elmd_mk)
+                        .join(elmd2_mk).join(lvs_rf).join(lvs_source)
+                        .join(mk_35v).join(lvs_35v).join(esd_hbm_mk)
+                        .join(mos_mk_type1).join(swfet_mk).join(hvpolyrs)
 
-diode_pd2nw_01v8_exclude = didoe_exclude_layers.join(lvpwell).join(dualgate2_d)
-                          .join(poly2).join(nplus).join(pwhv)
-                          .join(schottky_diode).join(zener).join(res_mk)
-                          .join(mvsd).join(hvnddd).join(hvpddd)
-                          .join(ldmos_xtor)                 
+diode_nd2ps_pd2nw_exclude = diode_exclude.join(poly2).join(pwhv)
+                                         .join(schottky_diode).join(zener).join(res_mk)
+                                         .join(mvsd).join(hvnddd).join(hvpddd)
+                                         .join(ldmos_xtor)                          
+#=====================
+# --- NP 1P8 DIODE ---
+#=====================
 
-diode_nd2ps_06v0_exclude = didoe_exclude_layers.join(nwell).join(poly2)
-                          .join(pplus).join(pwhv).join(schottky_diode)
-                          .join(zener).join(res_mk).join(mvsd)
-                          .join(hvnddd).join(hvpddd).join(ldmos_xtor)
-
-diode_pd2nw_06v0_exclude = didoe_exclude_layers.join(lvpwell).join(poly2)
-                          .join(nplus).join(pwhv).join(schottky_diode)
-                          .join(zener).join(res_mk).join(mvsd)
-                          .join(hvnddd).join(hvpddd).join(ldmos_xtor)                 
-
-diode_nw2ps_06v0_exclude = didoe_exclude_layers.join(dnwell).join(lvpwell)
-                          .join(poly2).join(pwhv).join(schottky_diode)
-                          .join(zener).join(res_mk).join(mvsd)
-                          .join(hvnddd).join(hvpddd).join(ldmos_xtor)
-
-diode_pw2dw_exclude = didoe_exclude_layers.join(nwell).join(poly2)
-                     .join(nplus).join(pwhv).join(schottky_diode)
-                     .join(zener).join(res_mk).join(mvsd)
-                     .join(hvnddd).join(hvpddd).join(ldmos_xtor) 
-
-diode_pw2dw_hv_exclude = didoe_exclude_layers.join(lvpwell).join(poly2)
-                        .join(pplus).join(schottky_diode).join(zener)
-                        .join(res_mk).join(hvnddd).join(hvpddd)
-                        .join(nwell)
-
-diode_pw2dnw_hv_exclude = didoe_exclude_layers.join(lvpwell).join(poly2)
-                         .join(nplus).join(schottky_diode).join(zener)
-                         .join(res_mk).join(hvnddd).join(hvpddd)
-                         .join(nwell)
-
-diode_sc_exclude = didoe_exclude_layers.join(lvpwell).join(poly2)
-                  .join(pplus).join(zener).join(res_mk)
-                  .join(hvnddd).join(hvpddd).join(ldmos_xtor)
-
-diode_zener_exclude = didoe_exclude_layers.join(lvpwell).join(poly2)
-                     .join(pplus).join(zener).join(res_mk)
-                     .join(hvnddd).join(hvpddd).join(ldmos_xtor)
+diode_nd2ps_01v8_exclude = diode_nd2ps_pd2nw_exclude.join(nwell).join(pplus).join(dualgate2_d)
 
 # diode_nd2ps_01v8: Model for 1.8V P+/Nwell diode (outside DNWELL) [np_1p8]
 diode_nd2ps_01v8_terminal_n = ncomp.and(diode_mk).not(dnwell).not(diode_nd2ps_01v8_exclude)
@@ -88,12 +52,23 @@
 # diode_nd2ps_01v8_dn: Model for 1.8V N+/Psub diode (inside DNWELL) [np_1p8_dw]
 diode_nd2ps_01v8_dn_terminal_n = ncomp.and(diode_mk).and(dnwell).not(diode_nd2ps_01v8_exclude)
 
+#=====================
+# --- PN 1P8 DIODE ---
+#=====================
+
+diode_pd2nw_01v8_exclude = diode_nd2ps_pd2nw_exclude.join(lvpwell).join(nplus).join(dualgate2_d)                                           
+
 # diode_pd2nw_01v8: Model for 1.8V P+/Nwell diode (outside DNWELL) [pn_1p8]
 diode_pd2nw_01v8_terminal_p = pcomp.and(diode_mk).not(dnwell).not(diode_nd2ps_01v8_exclude)
 
 # diode_pd2nw_01v8_dn: Model for 1.8V P+/Nwell diode (inside DNWELL) [pn_1p8_dw]
 diode_pd2nw_01v8_dn_terminal_p = pcomp.and(diode_mk).and(dnwell).not(diode_nd2ps_01v8_exclude)
 
+#=====================
+# --- NP 6P0 DIODE ---
+#=====================
+
+diode_nd2ps_06v0_exclude = diode_nd2ps_pd2nw_exclude.join(nwell).join(pplus)
 
 # diode_nd2ps_06v0: Model for 6V N+/Pwell diode (outside DNWELL) [np_6p0]
 diode_nd2ps_06v0_terminal_n = ncomp.and(diode_mk).and(dualgate2_d)
@@ -103,6 +78,12 @@
 diode_nd2ps_06v0_dn_terminal_n = ncomp.and(diode_mk).and(dualgate2_d)
                                 .and(dnwell).not(diode_nd2ps_06v0_exclude)
 
+#=====================
+# --- PN 6P0 DIODE ---
+#=====================
+
+diode_pd2nw_06v0_exclude = diode_nd2ps_pd2nw_exclude.join(lvpwell).join(nplus)
+
 # diode_pd2nw_06v0: Model for 6V P+/Nwell diode (outside DNWELL) [pn_6p0]
 diode_pd2nw_06v0_terminal_p = pcomp.and(diode_mk).and(dualgate2_d)
                              .not(dnwell).not(diode_pd2nw_06v0_exclude)
@@ -111,14 +92,33 @@
 diode_pd2nw_06v0_dn_terminal_p = pcomp.and(diode_mk).and(dualgate2_d)
                                 .and(dnwell).not(diode_pd2nw_06v0_exclude)
 
-                             
+#======================
+# --- NWP 6P0 DIODE ---
+#======================
+
+diode_nw2ps_06v0_exclude = diode_nd2ps_pd2nw_exclude.join(dnwell).join(lvpwell)
+
 # diode_nw2ps_06v0: Model for Nwell/Psub diode (applicable for both 1.8V/6V) [nwp_6p0]
 diode_nw2ps_06v0_terminal_p = pcomp.and(well_diode_mk).not(diode_nw2ps_06v0_exclude)
 diode_nw2ps_06v0_terminal_n = well_diode_mk.covering(nwell.covering(ncomp)).not(diode_nw2ps_06v0_exclude)
 
+#====================
+# --- DNWPW DIODE ---
+#====================
+
+diode_pw2dw_exclude = diode_nd2ps_pd2nw_exclude.join(nwell).join(nplus)
+
 # diode_pw2dw: Model for LVPWELL/DNWELL diode (applicable for both 1.8V/6V) [dnwpw]
 diode_pw2dw_terminal_p = lvpwell.interacting(pcomp).and(well_diode_mk).not(diode_pw2dw_exclude)
 
+#======================
+# --- DNWPWHV DIODE ---
+#======================
+
+diode_pw2dw_hv_exclude = diode_exclude.join(lvpwell).join(poly2)
+                                      .join(pplus).join(schottky_diode).join(zener)
+                                      .join(res_mk).join(hvnddd).join(hvpddd)
+                                      .join(nwell)
 
 # diode_pw2dw_hv: Model for NW/PWHV diode (10V diode) [dnwpwhv]
 dnwell_hv = dnwell.and(dualgate2_d)
@@ -126,16 +126,74 @@
 diode_pw2dw_hv_terminal_n = well_diode_mk.covering(dnwell_hv.covering(ncomp)).and(ldmos_xtor)
                            .interacting(mvsd).not(diode_pw2dw_hv_exclude)
 
+#=======================
+# --- DPWHVDNW DIODE ---
+#=======================
+
+diode_pw2dnw_hv_exclude = diode_exclude.join(lvpwell).join(poly2)
+                                       .join(nplus).join(schottky_diode).join(zener)
+                                       .join(res_mk).join(hvnddd).join(hvpddd)
+                                       .join(nwell)
+
 # diode_pw2dnw_hv: Model for PWHV/DNW diode [dpwhvdnw]
 diode_pw2dnw_hv_terminal_p = pwhv.and(well_diode_mk).and(ldmos_xtor).not(diode_pw2dnw_hv_exclude)
 diode_pw2dnw_hv_terminal_n = well_diode_mk.covering(dnwell_hv.covering(pcomp)).and(ldmos_xtor)
                            .interacting(mvsd).not(diode_pw2dnw_hv_exclude)
 
-                           
+#======================
+# --- NP 30P0 DIODE ---
+#======================
+
+diode_nd2ps_30v0_exclude = diode_exclude.join(dnwell).join(nwell)
+                                        .join(lvpwell).join(poly)
+
+# diode_nd2ps_30v0: Model for HVNDDD/Psub diode [np_30p0]
+diode_nd2ps_30v0_terminal_n = dualgate2_d.covering(hvnddd.and(diode_mk)).not(diode_nd2ps_30v0_exclude)
+diode_nd2ps_30v0_terminal_p = pcomp.and(diode_mk).not(diode_nd2ps_30v0_exclude)
+
+#======================
+# --- PN 30P0 DIODE ---
+#======================
+
+diode_pd2nw_30v0_exclude = diode_exclude.join(nwell).join(lvpwell).join(poly)
+
+# diode_pd2nw_30v0: Model for HVPDDD/DNWELL diode [np_30p0]
+diode_pd2nw_30v0_terminal_n = hvpddd.and(diode_mk).and(dualgate2_d).not(diode_pd2nw_30v0_exclude)
+
+#====================
+# --- DNWPS DIODE ---
+#====================
+
+# diode_dw2ps: Model for DNWELL/Psub diode(1.8V/6V) [dnwps]
+diode_dw2ps_exclude = diode_exclude.join(nwell).join(lvpwell)
+                                   .join(poly2).join(pwhv).join(schottky_diode)
+                                   .join(zener).join(mvsd).join(hvnddd)
+                                   .join(hvpddd).join(ldmos_xtor)
+
+diode_dw2ps_terminal_p = pcomp.and(dualgate2_d)and(dnwell).and(well_diode_mk)
+                              .not(diode_dw2ps_exclude)
+
+                              
+#=================
+# --- SC DIODE ---
+#=================
+
+diode_sc_exclude = diode_exclude.join(lvpwell).join(poly2)
+                                .join(pplus).join(zener).join(res_mk)
+                                .join(hvnddd).join(hvpddd).join(ldmos_xtor)
+                                
 # diode_sc: Model for schottky diode [sc_diode]
 diode_sc_terminal_n = ncomp.and(dnwell).and(schottky_diode).not(diode_sc_exclude)
 diode_sc_terminal_p = metal1.and(dnwell).not_interacting(diode_sc_terminal_n).not(diode_sc_exclude)
 
+#====================
+# --- ZENER DIODE ---
+#====================
+
+diode_zener_exclude = diode_exclude.join(lvpwell).join(poly2)
+                                   .join(pplus).join(zener).join(res_mk)
+                                   .join(hvnddd).join(hvpddd).join(ldmos_xtor)
+
 # diode_zener: Model for zener diode outside DNWELL [zener_diode]
 zener_mv = zener.and(dualgate2_d)
 diode_zener_terminal_n = ncomp.and(zener_mv).not(dnwell).not(diode_zener_exclude)
@@ -144,3 +202,25 @@
 # diode_zener_dn: Model for zener diode inside DNWELL [zener_diode_dw]
 diode_zener_dn_terminal_n = ncomp.and(zener_mv).and(dnwell).and(diode_mk).not(diode_zener_exclude)
 diode_zener_dn_terminal_p = nwell.and(zener_mv).and(dnwell).covering(pcomp).and(diode_mk).not(diode_zener_exclude)
+
+
+#===================
+# --- POLY DIODE ---
+#===================
+
+# diode_poly: Model for poly diode [poly_diode]
+diode_poly_exclude = comp.join(resistor).join(esd)
+                         .join(pwhv).join(polyfuse).join(fusewindow_d)
+                         .join(schottky_diode).join(piscap).join(zener)
+                         .join(res_mk).join(v5_xtor).join(nat)
+                         .join(fhres).join(mvsd).join(mvpsd)
+                         .join(elmd_mk).join(elmd2_mk).join(lvs_rf)
+                         .join(lvs_source).join(lvs_35v).join(mk_35v)
+                         .join(well_diode_mk).join(esd_hbm_mk).join(mos_mk_type1)
+                         .join(hvnddd).join(hvpddd).join(hvpolyrs)
+                         .join(ldmos_xtor)
+
+diode_poly_terminal_p = poly2.and(sab).interacting(nplus).interacting(pplus)
+                             .and(diode_mk).not(diode_poly_exclude)
+diode_poly_terminal_n = diode_mk.covering(diode_poly_terminal_p)
+
diff --git a/BCDLite/klayout/lvs/rule_decks/diode_extraction.lvs b/BCDLite/klayout/lvs/rule_decks/diode_extraction.lvs
index 8a03554..f26a537 100644
--- a/BCDLite/klayout/lvs/rule_decks/diode_extraction.lvs
+++ b/BCDLite/klayout/lvs/rule_decks/diode_extraction.lvs
@@ -20,6 +20,10 @@
 
 logger.info('Starting DIODE EXTRACTION')
 
+#=====================
+# --- NP 1P8 DIODE ---
+#=====================
+
 # diode_nd2ps_01v8: Model for 1.8V P+/Nwell diode (outside DNWELL) [np_1p8]
 logger.info('Extracting diode_nd2ps_01v8')
 extract_devices(diode('diode_nd2ps_01v8'), { 'N' => diode_nd2ps_01v8_terminal_n, 'P' => lvpwell_con })
@@ -28,6 +32,10 @@
 logger.info('Extracting diode_nd2ps_01v8_dn')
 extract_devices(diode('diode_nd2ps_01v8_dn'), { 'N' => diode_nd2ps_01v8_dn_terminal_n, 'P' => lvpwell_con })
 
+#=====================
+# --- PN 1P8 DIODE ---
+#=====================
+
 # diode_pd2nw_01v8: Model for 1.8V P+/Nwell diode (outside DNWELL) [pn_1p8]
 logger.info('Extracting diode_pd2nw_01v8')
 extract_devices(diode('diode_pd2nw_01v8'), { 'N' => nwell_con, 'P' => diode_pd2nw_01v8_terminal_p })
@@ -36,6 +44,9 @@
 logger.info('Extracting diode_pd2nw_01v8_dn')
 extract_devices(diode('diode_pd2nw_01v8_dn'), { 'N' => nwell_con, 'P' => diode_pd2nw_01v8_dn_terminal_p })
 
+#=====================
+# --- NP 6P0 DIODE ---
+#=====================
 
 # diode_nd2ps_06v0: Model for 6V N+/Pwell diode (outside DNWELL) [np_6p0]
 logger.info('Extracting diode_nd2ps_06v0')
@@ -45,6 +56,10 @@
 logger.info('Extracting diode_nd2ps_06v0_dn')
 extract_devices(diode('diode_nd2ps_06v0_dn'), { 'N' => diode_nd2ps_06v0_dn_terminal_n, 'P' => lvpwell_con })
 
+#=====================
+# --- PN 6P0 DIODE ---
+#=====================
+
 # diode_pd2nw_06v0: Model for 6V P+/Nwell diode (outside DNWELL) [pn_6p0]
 logger.info('Extracting diode_pd2nw_06v0')
 extract_devices(diode('diode_pd2nw_06v0'), { 'N' => nwell_con, 'P' => diode_pd2nw_06v0_terminal_p })
@@ -53,25 +68,87 @@
 logger.info('Extracting diode_pd2nw_06v0_dn')
 extract_devices(diode('diode_pd2nw_06v0_dn'), { 'N' => nwell_con, 'P' => diode_pd2nw_06v0_dn_terminal_p })
 
+#======================
+# --- NWP 6P0 DIODE ---
+#======================
 
 # diode_nw2ps_06v0: Model for Nwell/Psub diode (applicable for both 1.8V/6V) [nwp_6p0]
 logger.info('Extracting diode_nw2ps_06v0 diode')
 extract_devices(diode('diode_nw2ps_06v0'), { 'N' => diode_nw2ps_06v0_terminal_n, 'P' => diode_nw2ps_06v0_terminal_p })
 
+#====================
+# --- DNWPW DIODE ---
+#====================
+
 # diode_pw2dw: Model for LVPWELL/DNWELL diode (applicable for both 1.8V/6V) [dnwpw]
 logger.info('Extracting diode_pw2dw diode')
 extract_devices(diode('diode_pw2dw'), { 'N' => dnwell, 'P' => diode_pw2dw_terminal_p })
 
+#======================
+# --- DNWPWHV DIODE ---
+#======================
 
 # diode_pw2dw_hv: Model for NW/PWHV diode (10V diode) [dnwpwhv]
 logger.info('Extracting diode_pw2dw_hv diode')
 extract_devices(diode('diode_pw2dw_hv'), { 'N' => diode_pw2dw_hv_terminal_n, 'P' => diode_pw2dw_hv_terminal_p })
 
+#=======================
+# --- DPWHVDNW DIODE ---
+#=======================
+
 # diode_pw2dnw_hv: Model for PWHV/DNW diode [dpwhvdnw]
 logger.info('Extracting diode_pw2dnw_hv diode')
 extract_devices(diode('diode_pw2dnw_hv'), { 'N' => diode_pw2dnw_hv_terminal_n, 'P' => diode_pw2dnw_hv_terminal_p })
 
+#======================
+# --- NP 30P0 DIODE ---
+#======================
+
+# diode_nd2ps_30v0: Model for HVNDDD/Psub diode [np_30p0]
+logger.info('Extracting diode_nd2ps_30v0 diode')
+extract_devices(diode('diode_nd2ps_30v0'), { 'N' => diode_nd2ps_30v0_terminal_n, 'P' => diode_nd2ps_30v0_terminal_p })
+
+#======================
+# --- PN 30P0 DIODE ---
+#======================
+
+# diode_pd2nw_30v0: Model for HVPDDD/DNWELL diode [np_30p0]
+logger.info('Extracting diode_pd2nw_30v0 diode')
+extract_devices(diode('diode_pd2nw_30v0'), { 'N' => diode_pd2nw_30v0_terminal_n, 'P' => dnwell })
+
+#====================
+# --- DNWPS DIODE ---
+#====================
+
+# diode_dw2ps: Model for DNWELL/Psub diode(1.8V/6V) [dnwps]
+logger.info('Extracting diode_dw2ps diode')
+extract_devices(diode('diode_dw2ps'), { 'N' => dnwell, 'P' => diode_dw2ps_terminal_p })
+
+#=================
+# --- SC DIODE ---
+#=================
+
 # diode_sc: Model for schottky diode [sc_diode]
 logger.info('Extracting diode_sc diode')
 extract_devices(diode('diode_sc'), { 'N' => diode_sc_terminal_n, 'P' => schottky_diode })
 
+#====================
+# --- ZENER DIODE ---
+#====================
+
+# diode_zener: Model for zener diode outside DNWELL [zener_diode]
+logger.info('Extracting diode_zener diode')
+extract_devices(diode('diode_zener'), { 'N' => diode_zener_terminal_n, 'P' => zener })
+
+# diode_zener_dn: Model for zener diode inside DNWELL [zener_diode_dw]
+logger.info('Extracting diode_zener_dn diode')
+extract_devices(diode('diode_zener_dn'), { 'N' => diode_zener_dn_terminal_n, 'P' => zener })
+
+#===================
+# --- POLY DIODE ---
+#===================
+
+# diode_poly: Model for poly diode [poly_diode]
+logger.info('Extracting diode_poly diode')
+extract_devices(diode('diode_poly'), { 'N' => diode_poly_terminal_n, 'P' => diode_poly_terminal_p })
+