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