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