More corrections to the magic tech file and netgen setup file in
support of primitive devices.  The magic tech file requires the
use of magic version 8.3.352 to allow the syntax for the salicide
block extended source/drain FET devices in GF180MCU.
diff --git a/VERSION b/VERSION
index 0f55df9..12e7049 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.372
+1.0.373
diff --git a/gf180mcu/magic/gf180mcu.tech b/gf180mcu/magic/gf180mcu.tech
index 0b34391..01a6d96 100644
--- a/gf180mcu/magic/gf180mcu.tech
+++ b/gf180mcu/magic/gf180mcu.tech
@@ -21,7 +21,7 @@
 version
  version REVISION
  description "Global Foundries 180mcu: open PDK rules and DRC"
- requires magic-8.3.348
+ requires magic-8.3.352
 end
 
 #-----------------------------------------------------
@@ -1169,26 +1169,18 @@
 #-----------------------------------------------------
 
  layer SBLK
+	bloat-all rnd *nfet
+	bloat-all rpd *pfet
+	bloat-all mvrnd *mvnfet
+	bloat-all mvrpd *mvpfet
+	and allfets
+	grow 220
  	bloat-or allsblkdev * 0 space/a 220
  	grow 	215
  	shrink 	215
 	mask-hints SBLK
  	calma 	49 0
 
- # sblk from rdn/rdp of esd fet 
- # assume that the diff in only 0.05um
- layer SBLK rdp
-	grow 100
-	and pfet
-	grow 400
- 	calma 	49 0
-
- layer SBLK rdn
-	grow 250
-	and nfet
-	grow 400
- 	calma 	49 0
-	
 #-----------------------------------------------------
 # RESDEF MARK
 #-----------------------------------------------------
@@ -1233,7 +1225,7 @@
 #-----------------------------------------------------
 # MOSCAP MARK
 #-----------------------------------------------------
- layer MOSCAP nvar,mvvar,pvar,mvpvar,ncap,pcap,mvncap,mvpcap
+ layer MOSCAP nvar,mvnvar,pvar,mvpvar,ncap,pcap,mvncap,mvpcap
  calma 166 5
 
 #ifdef HRPOLY1K
@@ -4552,16 +4544,25 @@
 #
 # **The top metal may be any of metal3 to metaltp, depending on the stackup
 
- device msubcircuit pfet_03v3 pfet pdiff,pdc pdiff,pdc allnwell error l=l w=w
- device msubcircuit nfet_03v3 nfet ndiff,ndc ndiff,ndc allpsub error l=l w=w
- device msubcircuit pfet_06v0 mvpfet mvpdiff,mvpdc mvpdiff,mvpdc allnwell error l=l w=w
- device msubcircuit nfet_06v0 mvnfet mvndiff,mvndc mvndiff,mvndc allpsub error l=l w=w
- device msubcircuit pfet_03v3_dss pfet pdiffres pdiffres allnwell error l=l w=w
- device msubcircuit nfet_03v3_dss nfet ndiffres ndiffres allpsub error l=l w=w
- device msubcircuit pfet_06v0_dss mvpfet mvpdiffres mvpdiffres allnwell error l=l w=w
- device msubcircuit nfet_06v0_dss mvnfet mvndiffres mvndiffres allpsub error l=l w=w
+ device msubcircuit pfet_03v3 pfet pdiff,pdc pdiff,pdc allnwell error \
+	l=l w=w a1=as p1=ps a2=ad p2=pd
+ device msubcircuit nfet_03v3 nfet ndiff,ndc ndiff,ndc allpsub error \
+	l=l w=w a1=as p1=ps a2=ad p2=pd
+ device msubcircuit pfet_06v0 mvpfet mvpdiff,mvpdc mvpdiff,mvpdc allnwell error \
+	l=l w=w a1=as p1=ps a2=ad p2=pd
+ device msubcircuit nfet_06v0 mvnfet mvndiff,mvndc mvndiff,mvndc allpsub error \
+	l=l w=w a1=as p1=ps a2=ad p2=pd
+ device msubcircuit pfet_03v3_dss pfet pdiffres pdiffres allnwell error \
+	l=l w=w a1=as p1=ps a2=ad p2=pd
+ device msubcircuit nfet_03v3_dss nfet ndiffres ndiffres allpsub error \
+	l=l w=w a1=as p1=ps a2=ad p2=pd
+ device msubcircuit pfet_06v0_dss mvpfet mvpdiffres mvpdiffres allnwell error \
+	l=l w=w a1=as p1=ps a2=ad p2=pd
+ device msubcircuit nfet_06v0_dss mvnfet mvndiffres mvndiffres allpsub error \
+	l=l w=w a1=as p1=ps a2=ad p2=pd
  device msubcircuit nfet_06v0_nvt mvnnfet mvndiff,mvndiffres,mvndc \
-	mvndiff,mvndiffres,mvndc allpsub error l=l w=w
+	mvndiff,mvndiffres,mvndc allpsub error \
+	l=l w=w a1=as p1=ps a2=ad p2=pd
  device subcircuit cap_nmos_03v3_b nvaractor *nndiff l=c_length w=c_width
  device subcircuit cap_nmos_06v0_b mvnvaractor *mvnndiff l=c_length w=c_width
  device subcircuit cap_pmos_03v3_b pvaractor *ppdiff l=c_length w=c_width
@@ -4625,13 +4626,13 @@
 #endif
 #endif (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
 
- device rsubcircuit ppolyf_s  rpps   *poly allpsub error l=r_length w=r_width
- device rsubcircuit npolyf_s  rnps   *poly allpsub error l=r_length w=r_width
- device rsubcircuit ppolyf_u  rpp    *poly allpsub error l=r_length w=r_width
- device rsubcircuit npolyf_u  rnp    *poly allpsub error l=r_length w=r_width
+ device rsubcircuit ppolyf_s  rpps   *poly allnwell,allpsub error l=r_length w=r_width
+ device rsubcircuit npolyf_s  rnps   *poly allnwell,allpsub error l=r_length w=r_width
+ device rsubcircuit ppolyf_u  rpp    *poly allnwell,allpsub error l=r_length w=r_width
+ device rsubcircuit npolyf_u  rnp    *poly allnwell,allpsub error l=r_length w=r_width
 #ifdef HRPOLY1K
- device rsubcircuit ppolyf_u_1k hires *poly allpsub error l=r_length w=r_width
- device rsubcircuit ppolyf_u_1k_6p0 mvhires *poly allpsub error l=r_length w=r_width
+ device rsubcircuit ppolyf_u_1k hires *poly allnwell,allpsub error l=r_length w=r_width
+ device rsubcircuit ppolyf_u_1k_6p0 mvhires *poly allnwell,allpsub error l=r_length w=r_width
 #endif (HRPOLY1K)
  device rsubcircuit pplus_u  rpd  *pdiff allnwell error l=r_length w=r_width
  device rsubcircuit nplus_u  rnd  *ndiff allpsub error l=r_length w=r_width
@@ -4641,11 +4642,17 @@
  device rsubcircuit nplus_u  mvndiffres *mvndiff allpsub error l=r_length w=r_width
  device rsubcircuit nwell rnw   nwell allpsub error l=r_length w=r_width
 
- device pdiode diode_pd2nw_03p3     *pdiode allnwell a=area p=pj
- device ndiode diode_nd2ps_03p3     *ndiode allpsub a=area p=pj
- device pdiode diode_pd2nw_06p0     *mvpdiode allnwell a=area p=pj
- device ndiode diode_nd2ps_06p0     *mvndiode allpsub a=area p=pj
- device ndiode diode_nd2ps_06p0_nvt *mvnndiode allpsub a=area p=pj
+ # The following absorbs the source/drain resistor into a *_dss FET device
+ device subcircuit Short mvndiffres *mvndiff mvnfet allpsub error
+ device subcircuit Short mvpdiffres *mvpdiff mvpfet allnwell error
+ device subcircuit Short ndiffres *ndiff nfet allpsub error
+ device subcircuit Short pdiffres *pdiff pfet allnwell error
+
+ device pdiode diode_pd2nw_03v3     *pdiode allnwell a=area p=pj
+ device ndiode diode_nd2ps_03v3     *ndiode allpsub a=area p=pj
+ device pdiode diode_pd2nw_06v0     *mvpdiode allnwell a=area p=pj
+ device ndiode diode_nd2ps_06v0     *mvndiode allpsub a=area p=pj
+ device ndiode diode_nd2ps_06v0_nvt *mvnndiode allpsub a=area p=pj
 
 #ifdef MIM
 #ifdef METALS6
diff --git a/gf180mcu/netgen/gf180mcu_setup.tcl b/gf180mcu/netgen/gf180mcu_setup.tcl
index 0f7dc31..41fd04e 100644
--- a/gf180mcu/netgen/gf180mcu_setup.tcl
+++ b/gf180mcu/netgen/gf180mcu_setup.tcl
@@ -1,5 +1,5 @@
 ###
-###     Source file gf013_setup.tcl
+###     Source file gf180mcu_setup.tcl
 ###     Process this file with the preproc.py processor
 ###
 #---------------------------------------------------------------
@@ -61,7 +61,7 @@
 	property "-circuit1 $dev" parallel {r_width add}
 	property "-circuit1 $dev" tolerance {r_length 0.01} {r_width 0.01}
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1 pm
+	property "-circuit1 $dev" delete par1 pm par r
     }
     if {[lsearch $cells2 $dev] >= 0} {
 	permute "-circuit2 $dev" 1 2
@@ -73,7 +73,7 @@
 	property "-circuit2 $dev" parallel {r_width add}
 	property "-circuit2 $dev" tolerance {r_length 0.01} {r_width 0.01}
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1 pm
+	property "-circuit2 $dev" delete par1 pm par r
     }
 }
 
@@ -114,7 +114,7 @@
 	property "-circuit1 $dev" parallel {r_width add}
 	property "-circuit1 $dev" tolerance {r_length 0.01} {r_width 0.01}
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1 pm
+	property "-circuit1 $dev" delete par1 pm par r
     }
     if {[lsearch $cells2 $dev] >= 0} {
 	permute "-circuit2 $dev" 1 2
@@ -126,7 +126,7 @@
 	property "-circuit2 $dev" parallel {r_width add}
 	property "-circuit2 $dev" tolerance {r_length 0.01} {r_width 0.01}
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1 pm
+	property "-circuit2 $dev" delete par1 pm par r
     }
 }
 
@@ -149,7 +149,9 @@
 	property "-circuit1 $dev" parallel {w add}
 	property "-circuit1 $dev" tolerance {w 0.01} {l 0.01}
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1 NRD NRS
+	property "-circuit1 $dev" delete par1 NRD NRS par
+	property "-circuit1 $dev" delete sa sb sd par dtemp nf
+	property "-circuit1 $dev" delete as ad ps pd
     }
     if {[lsearch $cells2 $dev] >= 0} {
 	permute "-circuit2 $dev" 1 3
@@ -158,7 +160,9 @@
 	property "-circuit2 $dev" parallel {w add}
 	property "-circuit2 $dev" tolerance {w 0.01} {l 0.01}
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1 NRD NRS
+	property "-circuit2 $dev" delete par1 NRD NRS par
+	property "-circuit2 $dev" delete sa sb sd par dtemp nf
+	property "-circuit2 $dev" delete as ad ps pd
     }
 }
 
@@ -181,7 +185,9 @@
 	property "-circuit1 $dev" parallel {w add}
 	property "-circuit1 $dev" tolerance {w 0.01} {l 0.01}
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1 NRD NRS
+	property "-circuit1 $dev" delete par1 NRD NRS
+	property "-circuit1 $dev" delete sa sb sd par dtemp nf
+	property "-circuit1 $dev" delete as ad ps pd
     }
     if {[lsearch $cells2 $dev] >= 0} {
 	property "-circuit2 $dev" parallel enable
@@ -190,6 +196,8 @@
 	property "-circuit2 $dev" tolerance {w 0.01} {l 0.01}
 	# Ignore these properties
 	property "-circuit2 $dev" delete par1 NRD NRS
+	property "-circuit2 $dev" delete sa sb sd par dtemp nf
+	property "-circuit2 $dev" delete as ad ps pd
     }
 }
 
@@ -214,7 +222,8 @@
 	property "-circuit1 $dev" parallel {c_width add}
 	property "-circuit1 $dev" tolerance {c_width 0.01} {c_length 0.01}
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1 NRD NRS
+	property "-circuit1 $dev" delete par1 NRD NRS
+	property "-circuit1 $dev" delete as ad ps pd
     }
     if {[lsearch $cells2 $dev] >= 0} {
 	property "-circuit2 $dev" parallel enable
@@ -223,6 +232,7 @@
 	property "-circuit2 $dev" tolerance {c_width 0.01} {c_length 0.01}
 	# Ignore these properties
 	property "-circuit2 $dev" delete par1 NRD NRS
+	property "-circuit2 $dev" delete as ad ps pd
     }
 }
 
@@ -231,12 +241,12 @@
 #-------------------------------------------
 
 set devices {}
-lappend devices diode_nd2ps_3p3
-lappend devices diode_pd2nw_3p3
-lappend devices diode_nd2ps_6p0
-lappend devices diode_pd2nw_6p0
-lappend devices diode_nw2pw_3p3
-lappend devices diode_nw2pw_6p0
+lappend devices diode_nd2ps_03v3
+lappend devices diode_pd2nw_03v3
+lappend devices diode_nd2ps_06v0
+lappend devices diode_pd2nw_06v0
+lappend devices diode_nw2pw_03v3
+lappend devices diode_nw2pw_06v0
 lappend devices diode_dnw2pw
 lappend devices diode_dnw2ps
 lappend devices sc_diode
@@ -247,7 +257,7 @@
 	property "-circuit1 $dev" merge {area add_critical}
 	property "-circuit1 $dev" tolerance {area 0.02}
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1 pj
+	property "-circuit1 $dev" delete par1 pj
     }
     if {[lsearch $cells2 $dev] >= 0} {
 	property "-circuit2 $dev" parallel enable
@@ -295,7 +305,7 @@
     if {[lsearch $cells1 $dev] >= 0} {
 	property "-circuit1 $dev" parallel enable
 	# Ignore these properties
-	property "-circuit2 $dev" delete par1
+	property "-circuit1 $dev" delete par1
     }
     if {[lsearch $cells2 $dev] >= 0} {
 	property "-circuit2 $dev" parallel enable