Added parameter handling in extraction of MOSFET devices for source
and drain area and perimeter.
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index 2dc5417..f310d50 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -4975,32 +4975,42 @@
 variants (),(si)
 
  device msubcircuit sky130_fd_pr__pfet_01v8 pfet,scpfet \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__special_pfet_pass ppu \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__pfet_01v8_lvt pfetlvt \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__pfet_01v8_mvt pfetmvt \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__pfet_01v8_hvt pfethvt,scpfethvt \
-	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w
+	*pdiff,pdiffres *pdiff,pdiffres nwell error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
 
  device msubcircuit sky130_fd_pr__nfet_01v8 nfet,scnfet \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__special_nfet_latch npd \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__special_nfet_pass npass \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__nfet_01v8_lvt nfetlvt \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_bs_flash__special_sonosfet_star nsonos \
-	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w
+	*ndiff,ndiffres *ndiff,ndiffres pwell,space/w error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device subcircuit sky130_fd_pr__cap_var_lvt varactor \
-	*nndiff nwell error l=l w=w
+	*nndiff nwell error l=l w=w a1=as a2=ad p1=ps p2=pd
  device subcircuit sky130_fd_pr__cap_var_hvt varhvt \
-	*nndiff nwell error l=l w=w
+	*nndiff nwell error l=l w=w a1=as a2=ad p1=ps p2=pd
  device subcircuit sky130_fd_pr__cap_var mvvaractor \
-	*mvnndiff nwell error l=l w=w
+	*mvnndiff nwell error l=l w=w a1=as a2=ad p1=ps p2=pd
 
  # Bipolars
  device msubcircuit sky130_fd_pr__npn_05v0 npn dnwell *ndiff space/w error a2=area
@@ -5014,22 +5024,27 @@
 
  # Extended drain devices (must appear before the regular devices)
  device msubcircuit sky130_fd_pr__nfet_20v0_nvt mvnnfet *mvndiff,mvndiffres \
-	dnwell pwell,space/w error l=l w=w
+	dnwell pwell,space/w error l=l w=w a1=as a2=ad p1=ps p2=pd
  device msubcircuit sky130_fd_pr__nfet_20v0 mvnfet *mvndiff,mvndiffres \
-	dnwell pwell,space/w error l=l w=w
+	dnwell pwell,space/w error l=l w=w a1=as a2=ad p1=ps p2=pd
  device msubcircuit sky130_fd_pr__pfet_20v0 mvpfet *mvpdiff,mvpdiffres \
-	pwell,space/w nwell error l=l w=w
+	pwell,space/w nwell error l=l w=w a1=as a2=ad p1=ps p2=pd
 
  device msubcircuit sky130_fd_pr__pfet_g5v0d10v5 mvpfet \
-	*mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w
+	*mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__nfet_g5v0d10v5 mvnfet \
-	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
+	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__nfet_05v0_nvt mvnnfet \
-	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
+	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__esd_nfet_g5v0d10v5 mvnfetesd \
-	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w
+	*mvndiff,mvndiffres *mvndiff,mvndiffres pwell,space/w error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
  device msubcircuit sky130_fd_pr__esd_pfet_g5v0d10v5 mvpfetesd \
-	*mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w
+	*mvpdiff,mvpdiffres *mvpdiff,mvpdiffres nwell error l=l w=w \
+	a1=as p1=ps a2=ad p2=pd
 
  device resistor sky130_fd_pr__res_generic_l1 rli1 *li,coreli
  device resistor sky130_fd_pr__res_generic_m1 rmetal1 *metal1