added new unsalicided drain devices
diff --git a/gf180mcu/magic/gf180mcu.tcl b/gf180mcu/magic/gf180mcu.tcl
index 532f983..6de2076 100644
--- a/gf180mcu/magic/gf180mcu.tcl
+++ b/gf180mcu/magic/gf180mcu.tcl
@@ -99,13 +99,18 @@
magic::add_toolkit_command $layoutframe "pmos - pMOSFET" "magic::gencell gf180mcu::pfet_03v3" pdk1
magic::add_toolkit_separator $layoutframe pdk1
- magic::add_toolkit_command $layoutframe "diode_nd2ps_03v3 - n-diode" "magic::gencell gf180mcu::diode_nd2ps_03v3" pdk1
- magic::add_toolkit_command $layoutframe "diode_pd2nw_03v3 - p-diode" "magic::gencell gf180mcu::diode_pd2nw_03v3" pdk1
+ magic::add_toolkit_command $layoutframe "nfet_03v3_dss - mosfet (unsalicided drain)" "magic::gencell gf180mcu::nfet_03v3_dss" pdk1
+ magic::add_toolkit_command $layoutframe "pfet_03v3_dss - mosfet (unsalicided drain)" "magic::gencell gf180mcu::pfet_03v3_dss" pdk1
+ magic::add_toolkit_command $layoutframe "nfet_06v0_dss - mosfet (unsalicided drain, thick oxide)" "magic::gencell gf180mcu::nfet_06v0_dss" pdk1
+ magic::add_toolkit_command $layoutframe "pfet_06v0_dss - mosfet (unsalicided drain, thick oxide)" "magic::gencell gf180mcu::pfet_06v0_dss" pdk1
- magic::add_toolkit_separator $layoutframe 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 "diode_nd2ps_03v3 - n-diode" "magic::gencell gf180mcu::diode_nd2ps_03v3" pdk1
+ 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 "npn_10p00x10p00 (3.3V) - 10.0um x 10.0um " "magic::gencell gf180mcu::npn_10p00x10p00" pdk1
@@ -3232,6 +3237,21 @@
compatible {pfet_03v3 pfet_06v0}}
}
+proc gf180mcu::pfet_03v3_dss_defaults {} {
+ return {w 0.220 l 0.280 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 0.28 wmin 0.22 \
+ full_metal 1 \
+ compatible {pfet_03v3_dss}}
+}
+
+proc gf180mcu::pfet_06v0_dss_defaults {} {
+ return {w 0.3 l 0.5 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 0.5 wmin 0.3 \
+ full_metal 1 \
+ compatible {pfet_06v0_dss}}
+}
#----------------------------------------------------------------
# nmos: Specify all user-editable default values and those
# needed by nmos_check
@@ -3275,6 +3295,22 @@
full_metal 1 }
}
+proc gf180mcu::nfet_03v3_dss_defaults {} {
+ return {w 0.220 l 0.280 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 0.28 wmin 0.22 \
+ full_metal 1 \
+ compatible {nfet_03v3_dss}}
+}
+
+proc gf180mcu::nfet_06v0_dss_defaults {} {
+ return {w 0.3 l 0.6 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 0.6 wmin 0.3 \
+ full_metal 1 \
+ compatible {nfet_06v0_dss}}
+}
+
#----------------------------------------------------------------
# mosvc: Specify all user-editable default values and those
# needed by nmoscap_3p3_check
@@ -3363,6 +3399,21 @@
return [gf180mcu::mos_convert $parameters]
}
+proc gf180mcu::nfet_03v3_dss_convert {parameters} {
+ return [gf180mcu::mos_convert $parameters]
+}
+
+proc gf180mcu::pfet_03v3_dss_convert {parameters} {
+ return [gf180mcu::mos_convert $parameters]
+}
+
+proc gf180mcu::nfet_06v0_dss_convert {parameters} {
+ return [gf180mcu::mos_convert $parameters]
+}
+
+proc gf180mcu::pfet_06v0_dss_convert {parameters} {
+ return [gf180mcu::mos_convert $parameters]
+}
#----------------------------------------------------------------
# mos: Interactively specifies the fixed layout parameters
@@ -3447,6 +3498,21 @@
gf180mcu::mos_dialog pfet_10v0_asym $parameters
}
+proc gf180mcu::nfet_03v3_dss_dialog {parameters} {
+ gf180mcu::mos_dialog nfet_03v3_dss $parameters
+}
+
+proc gf180mcu::nfet_06v0_dss_dialog {parameters} {
+ gf180mcu::mos_dialog nfet_06v0_dss $parameters
+}
+
+proc gf180mcu::pfet_03v3_dss_dialog {parameters} {
+ gf180mcu::mos_dialog pfet_03v3_dss $parameters
+}
+
+proc gf180mcu::pfet_06v0_dss_dialog {parameters} {
+ gf180mcu::mos_dialog pfet_06v0_dss $parameters
+}
#----------------------------------------------------------------
# getbox: Get the current cursor box, in microns
#----------------------------------------------------------------
@@ -4175,6 +4241,87 @@
set drawdict [dict merge $gf180mcu::ruleset $newdict $parameters]
return [gf180mcu::mos_draw $drawdict]
}
+#-------------------
+# nMOS dss 3.0V
+#-------------------
+proc gf180mcu::nfet_03v3_dss_draw {parameters} {
+ set newdict [dict create \
+ gate_type nfet \
+ diff_type ndiffres \
+ diff_contact_type ndc \
+ plus_diff_type psd \
+ plus_contact_type psc \
+ poly_type poly \
+ poly_contact_type pc \
+ sub_type pwell \
+ sub_surround 0.12 \
+ ]
+ set drawdict [dict merge $gf180mcu::ruleset $newdict $parameters]
+ return [gf180mcu::mos_draw $drawdict]
+}
+
+proc gf180mcu::pfet_03v3_dss_draw {parameters} {
+ set newdict [dict create \
+ gate_type pfet \
+ diff_type pdiffres \
+ diff_contact_type pdc \
+ plus_diff_type nsd \
+ plus_contact_type nsc \
+ poly_type poly \
+ poly_contact_type pc \
+ dev_surround 0.43 \
+ sub_type nwell \
+ ]
+ set drawdict [dict merge $gf180mcu::ruleset $newdict $parameters]
+ return [gf180mcu::mos_draw $drawdict]
+}
+
+#-------------------
+# pMOS 6.0V
+#-------------------
+
+proc gf180mcu::pfet_06v0_dss_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 mvpdiffres \
+ diff_contact_type mvpdc \
+ plus_diff_type mvnsd \
+ plus_contact_type mvnsc \
+ poly_type poly \
+ poly_contact_type pc \
+ sub_surround 0.16 \
+ dev_surround 0.43 \
+ sub_type nwell \
+ ]
+ set drawdict [dict merge $gf180mcu::ruleset $newdict $parameters]
+ return [gf180mcu::mos_draw $drawdict]
+}
+
+#-------------------
+# nMOS 6.0V dss
+#-------------------
+
+proc gf180mcu::nfet_06v0_dss_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 mvndiffres \
+ diff_contact_type mvndc \
+ 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 LDNMOS
#-----------------------
@@ -4416,6 +4563,22 @@
return [gf180mcu::mos_check $parameters]
}
+proc gf180mcu::nfet_03v3_dss_check {parameters} {
+ return [gf180mcu::mos_check $parameters]
+}
+
+proc gf180mcu::nfet_06v0_dss_check {parameters} {
+ return [gf180mcu::mos_check $parameters]
+}
+
+proc gf180mcu::pfet_03v3_dss_check {parameters} {
+ return [gf180mcu::mos_check $parameters]
+}
+
+proc gf180mcu::pfet_06v0_dss_check {parameters} {
+ return [gf180mcu::mos_check $parameters]
+}
+
#----------------------------------------------------------------
# Bipolar: Specify all user-editable default values
#