added LDNMOSand LDPMOS devices and resloved DRC errors for diodes
diff --git a/gf180mcu/magic/gf180mcu.tcl b/gf180mcu/magic/gf180mcu.tcl
index b7bb5d6..4632459 100644
--- a/gf180mcu/magic/gf180mcu.tcl
+++ b/gf180mcu/magic/gf180mcu.tcl
@@ -103,6 +103,11 @@
    magic::add_toolkit_command $layoutframe "diode_pd2nw_03v3 - p-diode" "magic::gencell gf180mcu::diode_pd2nw_03v3" pdk1
 
    magic::add_toolkit_separator	$layoutframe pdk1
+   magic::add_toolkit_command $layoutframe "ldnmos - nMOSFET" "magic::gencell gf180mcu::nfet_10v0_asym" pdk1
+   magic::add_toolkit_command $layoutframe "ldpmos - nMOSFET" "magic::gencell gf180mcu::pfet_10v0_asym" pdk1
+ 
+
+   magic::add_toolkit_separator	$layoutframe pdk1
    magic::add_toolkit_command $layoutframe "npn_10p00x10p00  (3.3V) - 10.0um x 10.0um " "magic::gencell gf180mcu::npn_10p00x10p00" pdk1
    magic::add_toolkit_command $layoutframe "npn_05p00x05p00  (3.3V) - 5.0um x 5.0um " "magic::gencell gf180mcu::npn_05p00x05p00" pdk1
    magic::add_toolkit_command $layoutframe "npn_10p00x10p00  (3.3V) - 10.0um x 10.0um " "magic::gencell gf180mcu::npn_00p54x04p00" pdk1
@@ -692,6 +697,7 @@
 	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
 	elc 1 erc 1 etc 1 ebc 1 \
 	glc 1 grc 1 gtc 0 gbc 0 doverlap 0 \
+    full_metal 1 \
 	compatible {diode_pd2nw_03v3 diode_pd2nw_06v0}}
 }
 
@@ -935,9 +941,9 @@
 	    dev_contact_type	ndic \
 	    end_type		psd \
 	    end_contact_type	psc \
-	    end_contact_size	0.16 \
+	    end_contact_size	0.25 \
 	    end_sub_type	pwell \
-	    dev_spacing		0.25 \
+	    dev_spacing		0.30 \
 	    dev_surround	${diff_surround} \
 	    end_spacing		${diff_spacing} \
 	    end_surround	${diff_surround} \
@@ -961,12 +967,12 @@
 	    dev_contact_type	pdic \
 	    end_type		nsd \
 	    end_contact_type	nsc \
-	    end_contact_size	0.16 \
+	    end_contact_size	0.25 \
 	    end_sub_type	nwell \
 	    plus_diff_type	psd \
 	    plus_contact_type	psc \
 	    sub_type		pwell \
-	    dev_spacing		0.25 \
+	    dev_spacing		0.30 \
 	    dev_surround	${diff_surround} \
 	    end_spacing		${diff_spacing} \
 	    end_surround	${diff_surround} \
@@ -993,9 +999,9 @@
 	    end_type		mvpsd \
 	    end_contact_type	mvpsc \
 	    end_sub_type	pwell \
-	    dev_spacing		0.25 \
+	    dev_spacing		0.40 \
 	    dev_surround	${diff_surround} \
-	    end_spacing		0.36 \
+	    end_spacing		0.17 \
 	    end_surround	${diff_surround} \
     ]
     set drawdict [dict merge $gf180mcu::ruleset $newdict $parameters]
@@ -1021,10 +1027,11 @@
 	    end_type		mvnsd \
 	    end_contact_type	mvnsc \
 	    end_sub_type	nwell \
+        sub_surround    0.16 \
 	    plus_diff_type	mvpsd \
 	    plus_contact_type	mvpsc \
 	    sub_type		pwell \
-	    dev_spacing		${diff_spacing} \
+	    dev_spacing		0.36 \
 	    dev_surround	${diff_surround} \
 	    end_spacing		${diff_spacing} \
 	    end_surround	${diff_surround} \
@@ -3254,6 +3261,20 @@
 		compatible {nfet_03v3 nfet_06v0 nfet_06v0_nvt}}
 }
 
+proc gf180mcu::nfet_10v0_asym_defaults {} {
+    return {w 1.0 l 1.0 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 1.0 wmin 1.0 \
+		full_metal 1 }
+}
+
+proc gf180mcu::pfet_10v0_asym_defaults {} {
+    return {w 1.0 l 1.0 m 1 nf 1 diffcov 100 polycov 100 \
+		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
+		topc 1 botc 1 poverlap 0 doverlap 1 lmin 1.0 wmin 1.0 \
+		full_metal 1 }
+}
+
 #----------------------------------------------------------------
 # mosvc: Specify all user-editable default values and those
 # needed by nmoscap_3p3_check
@@ -3334,6 +3355,15 @@
     return [gf180mcu::mos_convert $parameters]
 }
 
+proc gf180mcu::nfet_10v0_asym_convert {parameters} {
+    return [gf180mcu::mos_convert $parameters]
+}
+
+proc gf180mcu::pfet_10v0_asym_convert {parameters} {
+    return [gf180mcu::mos_convert $parameters]
+}
+
+
 #----------------------------------------------------------------
 # mos: Interactively specifies the fixed layout parameters
 #----------------------------------------------------------------
@@ -3409,6 +3439,14 @@
     gf180mcu::mos_dialog nmoscap_6p0 $parameters
 }
 
+proc gf180mcu::nfet_10v0_asym_dialog {parameters} {
+    gf180mcu::mos_dialog nfet_10v0_asym $parameters
+}
+
+proc gf180mcu::pfet_10v0_asym_dialog {parameters} {
+    gf180mcu::mos_dialog pfet_10v0_asym $parameters
+}
+
 #----------------------------------------------------------------
 # getbox:  Get the current cursor box, in microns
 #----------------------------------------------------------------
@@ -4137,6 +4175,55 @@
     set drawdict [dict merge $gf180mcu::ruleset $newdict $parameters]
     return [gf180mcu::mos_draw $drawdict]
 }
+#-----------------------
+# 10V LDNMOS
+#-----------------------
+
+proc gf180mcu::nfet_10v0_asym_draw {parameters} {
+    set newdict [dict create \
+	    diff_poly_space	0.30 \
+	    diff_gate_space	0.30 \
+	    diff_spacing	0.36 \
+	    gate_type		mvnfet \
+	    diff_type 		mvndiff \
+	    diff_contact_type	mvndc \
+	    drain_diff_type	ldndiff \
+	    drain_diff_contact_type ldndiffc \
+	    plus_diff_type	mvpsd \
+	    plus_contact_type	mvpsc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		pwell \
+	    sub_surround	0.16 \
+    ]
+    set drawdict [dict merge $gf180mcu::ruleset $newdict $parameters]
+    return [gf180mcu::mos_draw $drawdict]
+}
+
+#-----------------------
+# 10V LDPMOS
+#-----------------------
+
+proc gf180mcu::pfet_10v0_asym_draw {parameters} {
+    set newdict [dict create \
+	    diff_poly_space	0.30 \
+	    diff_gate_space	0.30 \
+	    diff_spacing	0.36 \
+	    gate_type		mvpfet \
+	    diff_type 		mvpdiff \
+	    diff_contact_type	mvpdc \
+	    drain_diff_type	ldpdiff \
+	    drain_diff_contact_type ldpdiffc \
+	    plus_diff_type	mvnsd \
+	    plus_contact_type	mvnsc \
+	    poly_type		poly \
+	    poly_contact_type	pc \
+	    sub_type		nwell \
+        sub_surround    0.16 \
+    ]
+    set drawdict [dict merge $gf180mcu::ruleset $newdict $parameters]
+    return [gf180mcu::mos_draw $drawdict]
+}
 
 #------------------------
 # MOS varactor (3.3V)
@@ -4321,6 +4408,14 @@
    return [gf180mcu::mos_check $parameters]
 }
 
+proc gf180mcu::nfet_10v0_asym_check {parameters} {
+   return [gf180mcu::mos_check $parameters]
+}
+
+proc gf180mcu::pfet_10v0_asym_check {parameters} {
+   return [gf180mcu::mos_check $parameters]
+}
+
 #----------------------------------------------------------------
 # Bipolar: Specify all user-editable default values
 #