Finally corrected all of the eight diode types, which had a lot of
typos left over from the conversion from s8 to sky130.
diff --git a/sky130/magic/sky130.tcl b/sky130/magic/sky130.tcl
index da9f1de..a2a4cb1 100644
--- a/sky130/magic/sky130.tcl
+++ b/sky130/magic/sky130.tcl
@@ -723,8 +723,8 @@
#------------------------------------------------------------------
# NOTE: sky130_fd_pr__diode_pw2nd_05v5_lvt,
-# sky130_fd_pr__diode_pw2nd_05v5_nvt, sky130_fd_pr__pd2nw_05v5_lvt,
-# and sky130_fd_pr__pd2nw_11v0 are all considered parasitic diodes.
+# sky130_fd_pr__diode_pw2nd_05v5_nvt, sky130_fd_pr__diode_pd2nw_05v5_lvt,
+# and sky130_fd_pr__diode_pd2nw_11v0 are all considered parasitic diodes.
# They may be generated by invoking the build procedure on the
# command line. To enable them in the PDK, add them to the
# appropriate compatible {} list.
@@ -735,7 +735,7 @@
nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
compatible {sky130_fd_pr__diode_pw2nd_05v5 sky130_fd_pr__diode_pw2nd_05v5_lvt \
- sky130_fd_pr__diode_pw2nd_11v0 sky130_fd_pr__diode_pw2nd_05v5_nvt} \
+ sky130_fd_pr__diode_pw2nd_05v5_nvt sky130_fd_pr__diode_pw2nd_11v0} \
full_metal 1}
}
@@ -744,47 +744,7 @@
nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
compatible {sky130_fd_pr__diode_pw2nd_05v5 sky130_fd_pr__diode_pw2nd_05v5_lvt \
- sky130_fd_pr__diode_pw2nd_11v0 sky130_fd_pr__diode_pw2nd_05v5_nvt} \
- full_metal 1}
-}
-
-proc sky130::sky130_fd_pr__pd2nw_05v5_defaults {} {
- return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
- nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
- elc 1 erc 1 etc 1 ebc 1 \
- glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
- compatible {sky130_fd_pr__diode_pd2nw_05v5 sky130_fd_pr__diode_pd2nw_05v5_lvt \
- sky130_fd_pr__diode_pd2nw_11v0 sky130_fd_pr__diode_pd2nw_11v0} \
- full_metal 1}
-}
-
-proc sky130::sky130_fd_pr__pd2nw_05v5_lvt_defaults {} {
- return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
- nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
- elc 1 erc 1 etc 1 ebc 1 \
- glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
- compatible {sky130_fd_pr__diode_pd2nw_05v5 sky130_fd_pr__diode_pd2nw_05v5_lvt \
- sky130_fd_pr__diode_pd2nw_11v0 sky130_fd_pr__diode_pd2nw_11v0} \
- full_metal 1}
-}
-
-proc sky130::sky130_fd_pr__pd2nw_11v0_defaults {} {
- return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
- nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
- elc 1 erc 1 etc 1 ebc 1 \
- glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
- compatible {sky130_fd_pr__diode_pd2nw_05v5 sky130_fd_pr__diode_pd2nw_05v5_lvt \
- sky130_fd_pr__diode_pd2nw_11v0 sky130_fd_pr__diode_pd2nw_11v0} \
- full_metal 1}
-}
-
-
-proc sky130::sky130_fd_pr__diode_pw2nd_11v0_defaults {} {
- return {w 0.45 l 0.45 area 0.2024 peri 1.8 \
- nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
- elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
- compatible {sky130_fd_pr__diode_pw2nd_05v5 sky130_fd_pr__diode_pw2nd_05v5_lvt \
- sky130_fd_pr__diode_pw2nd_11v0 sky130_fd_pr__diode_pw2nd_05v5_nvt} \
+ sky130_fd_pr__diode_pw2nd_05v5_nvt sky130_fd_pr__diode_pw2nd_11v0} \
full_metal 1}
}
@@ -793,16 +753,57 @@
nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
compatible {sky130_fd_pr__diode_pw2nd_05v5 sky130_fd_pr__diode_pw2nd_05v5_lvt \
- sky130_fd_pr__diode_pw2nd_11v0 sky130_fd_pr__diode_pw2nd_05v5_nvt} \
+ sky130_fd_pr__diode_pw2nd_05v5_nvt sky130_fd_pr__diode_pw2nd_11v0} \
full_metal 1}
+}
-proc sky130::sky130_fd_pr__pd2nw_11v0_defaults {} {
+proc sky130::sky130_fd_pr__diode_pw2nd_11v0_defaults {} {
+ return {w 0.45 l 0.45 area 0.2024 peri 1.8 \
+ nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+ elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
+ compatible {sky130_fd_pr__diode_pw2nd_05v5 sky130_fd_pr__diode_pw2nd_05v5_lvt \
+ sky130_fd_pr__diode_pw2nd_05v5_nvt sky130_fd_pr__diode_pw2nd_11v0} \
+ full_metal 1}
+}
+
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_defaults {} {
+ return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
+ nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+ elc 1 erc 1 etc 1 ebc 1 \
+ glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
+ compatible {sky130_fd_pr__diode_pd2nw_05v5 sky130_fd_pr__diode_pd2nw_05v5_lvt \
+ sky130_fd_pr__diode_pd2nw_05v5_hvt sky130_fd_pr__diode_pd2nw_11v0} \
+ full_metal 1}
+}
+
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_lvt_defaults {} {
+ return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
+ nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+ elc 1 erc 1 etc 1 ebc 1 \
+ glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
+ compatible {sky130_fd_pr__diode_pd2nw_05v5 sky130_fd_pr__diode_pd2nw_05v5_lvt \
+ sky130_fd_pr__diode_pd2nw_05v5_hvt sky130_fd_pr__diode_pd2nw_11v0} \
+ full_metal 1}
+}
+
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_hvt_defaults {} {
+ return {w 0.45 l 0.45 area 0.2025 peri 1.8 \
+ nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
+ elc 1 erc 1 etc 1 ebc 1 \
+ glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
+ compatible {sky130_fd_pr__diode_pd2nw_05v5 sky130_fd_pr__diode_pd2nw_05v5_lvt \
+ sky130_fd_pr__diode_pd2nw_05v5_hvt sky130_fd_pr__diode_pd2nw_11v0} \
+ full_metal 1}
+}
+
+
+proc sky130::sky130_fd_pr__diode_pd2nw_11v0_defaults {} {
return {w 0.45 l 0.45 area 0.2024 peri 1.8 \
nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 \
elc 1 erc 1 etc 1 ebc 1 \
glc 1 grc 1 gtc 1 gbc 1 doverlap 0 \
compatible {sky130_fd_pr__diode_pd2nw_05v5 sky130_fd_pr__diode_pd2nw_05v5_lvt \
- sky130_fd_pr__diode_pd2nw_11v0 sky130_fd_pr__diode_pd2nw_11v0} \
+ sky130_fd_pr__diode_pd2nw_05v5_hvt sky130_fd_pr__diode_pd2nw_11v0} \
full_metal 1}
}
@@ -816,15 +817,7 @@
return [sky130::diode_convert $parameters]
}
-proc sky130::sky130_fd_pr__pd2nw_05v5_convert {parameters} {
- return [sky130::diode_convert $parameters]
-}
-
-proc sky130::sky130_fd_pr__pd2nw_05v5_lvt_convert {parameters} {
- return [sky130::diode_convert $parameters]
-}
-
-proc sky130::sky130_fd_pr__pd2nw_11v0_convert {parameters} {
+proc sky130::sky130_fd_pr__diode_pw2nd_05v5_nvt_convert {parameters} {
return [sky130::diode_convert $parameters]
}
@@ -832,11 +825,19 @@
return [sky130::diode_convert $parameters]
}
-proc sky130::sky130_fd_pr__diode_pw2nd_05v5_nvt_convert {parameters} {
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_convert {parameters} {
return [sky130::diode_convert $parameters]
}
-proc sky130::sky130_fd_pr__pd2nw_11v0_convert {parameters} {
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_lvt_convert {parameters} {
+ return [sky130::diode_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_hvt_convert {parameters} {
+ return [sky130::diode_convert $parameters]
+}
+
+proc sky130::sky130_fd_pr__diode_pd2nw_11v0_convert {parameters} {
return [sky130::diode_convert $parameters]
}
@@ -850,28 +851,28 @@
sky130::diode_dialog sky130_fd_pr__diode_pw2nd_05v5_lvt $parameters
}
-proc sky130::sky130_fd_pr__pd2nw_05v5_dialog {parameters} {
- sky130::diode_dialog sky130_fd_pr__pd2nw_05v5 $parameters
-}
-
-proc sky130::sky130_fd_pr__pd2nw_05v5_lvt_dialog {parameters} {
- sky130::diode_dialog sky130_fd_pr__pd2nw_05v5_lvt $parameters
-}
-
-proc sky130::sky130_fd_pr__pd2nw_11v0_dialog {parameters} {
- sky130::diode_dialog sky130_fd_pr__pd2nw_11v0 $parameters
+proc sky130::sky130_fd_pr__diode_pw2nd_05v5_nvt_dialog {parameters} {
+ sky130::diode_dialog sky130_fd_pr__diode_pw2nd_05v5_nvt $parameters
}
proc sky130::sky130_fd_pr__diode_pw2nd_11v0_dialog {parameters} {
sky130::diode_dialog sky130_fd_pr__diode_pw2nd_11v0 $parameters
}
-proc sky130::sky130_fd_pr__diode_pw2nd_05v5_nvt_dialog {parameters} {
- sky130::diode_dialog sky130_fd_pr__diode_pw2nd_05v5_nvt $parameters
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_dialog {parameters} {
+ sky130::diode_dialog sky130_fd_pr__diode_pd2nw_05v5 $parameters
}
-proc sky130::sky130_fd_pr__pd2nw_11v0_dialog {parameters} {
- sky130::diode_dialog sky130_fd_pr__pd2nw_11v0 $parameters
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_lvt_dialog {parameters} {
+ sky130::diode_dialog sky130_fd_pr__diode_pd2nw_05v5_lvt $parameters
+}
+
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_hvt_dialog {parameters} {
+ sky130::diode_dialog sky130_fd_pr__diode_pd2nw_05v5_hvt $parameters
+}
+
+proc sky130::sky130_fd_pr__diode_pd2nw_11v0_dialog {parameters} {
+ sky130::diode_dialog sky130_fd_pr__diode_pd2nw_11v0 $parameters
}
#----------------------------------------------------------------
@@ -884,15 +885,7 @@
sky130::diode_check $parameters
}
-proc sky130::sky130_fd_pr__pd2nw_05v5_check {parameters} {
- sky130::diode_check $parameters
-}
-
-proc sky130::sky130_fd_pr__pd2nw_05v5_lvt_check {parameters} {
- sky130::diode_check $parameters
-}
-
-proc sky130::sky130_fd_pr__pd2nw_11v0_check {parameters} {
+proc sky130::sky130_fd_pr__diode_pw2nd_05v5_nvt_check {parameters} {
sky130::diode_check $parameters
}
@@ -900,11 +893,19 @@
sky130::diode_check $parameters
}
-proc sky130::sky130_fd_pr__diode_pw2nd_05v5_nvt_check {parameters} {
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_check {parameters} {
sky130::diode_check $parameters
}
-proc sky130::sky130_fd_pr__pd2nw_11v0_check {parameters} {
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_lvt_check {parameters} {
+ sky130::diode_check $parameters
+}
+
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_hvt_check {parameters} {
+ sky130::diode_check $parameters
+}
+
+proc sky130::sky130_fd_pr__diode_pd2nw_11v0_check {parameters} {
sky130::diode_check $parameters
}
@@ -1118,7 +1119,8 @@
#----------------------------------------------------------------
# NOTE: Use ppd instead of psd so that there is additional
# diffusion around the contact, allowing more space for the
-# implant (likewise sky130_fd_pr__pd2nw_05v5_lvt and sky130_fd_pr__pd2nw_11v0).
+# implant (likewise sky130_fd_pr__diode_pd2nw_05v5_lvt and
+# sky130_fd_pr__diode_pd2nw_11v0).
proc sky130::sky130_fd_pr__diode_pw2nd_05v5_lvt_draw {parameters} {
@@ -1142,9 +1144,55 @@
return [sky130::diode_draw $drawdict]
}
+proc sky130::sky130_fd_pr__diode_pw2nd_05v5_nvt_draw {parameters} {
+
+ # Set a local variable for each rule in ruleset
+ foreach key [dict keys $sky130::ruleset] {
+ set $key [dict get $sky130::ruleset $key]
+ }
+
+ set newdict [dict create \
+ dev_type nndiode \
+ dev_contact_type nndic \
+ end_type mvpsd \
+ end_contact_type mvpsc \
+ end_sub_type psub \
+ dev_spacing 0.37 \
+ dev_surround ${diff_surround} \
+ end_spacing 0.30 \
+ end_surround ${diff_surround} \
+ ]
+ set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+ return [sky130::diode_draw $drawdict]
+}
+
+proc sky130::sky130_fd_pr__diode_pw2nd_11v0_draw {parameters} {
+
+ # Set a local variable for each rule in ruleset
+ foreach key [dict keys $sky130::ruleset] {
+ set $key [dict get $sky130::ruleset $key]
+ }
+
+ set newdict [dict create \
+ dev_type mvndiode \
+ dev_contact_type mvndic \
+ end_type mvpsd \
+ end_contact_type mvpsc \
+ end_sub_type psub \
+ diff_spacing 0.37 \
+ dev_spacing 0.39 \
+ dev_surround ${diff_surround} \
+ end_spacing 0.36 \
+ end_surround ${diff_surround} \
+ ]
+ set drawdict [dict merge $sky130::ruleset $newdict $parameters]
+ return [sky130::diode_draw $drawdict]
+}
+
+
#----------------------------------------------------------------
-proc sky130::sky130_fd_pr__pd2nw_05v5_draw {parameters} {
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_draw {parameters} {
# Set a local variable for each rule in ruleset
foreach key [dict keys $sky130::ruleset] {
@@ -1172,7 +1220,7 @@
#----------------------------------------------------------------
-proc sky130::sky130_fd_pr__pd2nw_05v5_lvt_draw {parameters} {
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_lvt_draw {parameters} {
# Set a local variable for each rule in ruleset
foreach key [dict keys $sky130::ruleset] {
@@ -1200,7 +1248,7 @@
#----------------------------------------------------------------
-proc sky130::sky130_fd_pr__pd2nw_11v0_draw {parameters} {
+proc sky130::sky130_fd_pr__diode_pd2nw_05v5_hvt_draw {parameters} {
# Set a local variable for each rule in ruleset
foreach key [dict keys $sky130::ruleset] {
@@ -1226,58 +1274,10 @@
return [sky130::diode_draw $drawdict]
}
-#----------------------------------------------------------------
-
-proc sky130::sky130_fd_pr__diode_pw2nd_11v0_draw {parameters} {
-
- # Set a local variable for each rule in ruleset
- foreach key [dict keys $sky130::ruleset] {
- set $key [dict get $sky130::ruleset $key]
- }
-
- set newdict [dict create \
- dev_type mvndiode \
- dev_contact_type mvndic \
- end_type mvpsd \
- end_contact_type mvpsc \
- end_sub_type psub \
- diff_spacing 0.37 \
- dev_spacing 0.39 \
- dev_surround ${diff_surround} \
- end_spacing 0.36 \
- end_surround ${diff_surround} \
- ]
- set drawdict [dict merge $sky130::ruleset $newdict $parameters]
- return [sky130::diode_draw $drawdict]
-}
-
-
-proc sky130::sky130_fd_pr__diode_pw2nd_05v5_nvt_draw {parameters} {
-
- # Set a local variable for each rule in ruleset
- foreach key [dict keys $sky130::ruleset] {
- set $key [dict get $sky130::ruleset $key]
- }
-
- set newdict [dict create \
- dev_type nndiode \
- dev_contact_type nndic \
- end_type mvpsd \
- end_contact_type mvpsc \
- end_sub_type psub \
- dev_spacing 0.37 \
- dev_surround ${diff_surround} \
- end_spacing 0.30 \
- end_surround ${diff_surround} \
- ]
- set drawdict [dict merge $sky130::ruleset $newdict $parameters]
- return [sky130::diode_draw $drawdict]
-}
-
#----------------------------------------------------------------
-proc sky130::sky130_fd_pr__pd2nw_11v0_draw {parameters} {
+proc sky130::sky130_fd_pr__diode_pd2nw_11v0_draw {parameters} {
# Set a local variable for each rule in ruleset
foreach key [dict keys $sky130::ruleset] {
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index e9d0b99..966123e 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -57,13 +57,13 @@
# sky130_fd_pr__nfet_g5v0d10v5 mvnfet thickox nFET
# sky130_fd_pr__nfet_01v8_nvt mvnnfet thickox native nFET
# sky130_fd_pr__diode_pw2nd_05v5 ndiode n+ diff diode
+# sky130_fd_pr__diode_pw2nd_05v5_lvt ndiodelvt low Vt n+ diff diode
+# sky130_fd_pr__diode_pw2nd_05v5_nvt nndiode diode with nndiff
# sky130_fd_pr__diode_pw2nd_11v0 mvndiode thickox n+ diff diode
# sky130_fd_pr__diode_pd2nw_05v5 pdiode p+ diff diode
+# sky130_fd_pr__diode_pd2nw_05v5_lvt pdiodelvt low Vt p+ diff diode
+# sky130_fd_pr__diode_pd2nw_05v5_hvt pdiodehvt high Vt p+ diff diode
# sky130_fd_pr__diode_pd2nw_11v0 mvpdiode thickox p+ diff diode
-# sky130_fd_pr__diode_pw2nd_nvt nndiode diode with nndiff
-# sky130_fd_pr__diode_pw2nd_lvt ndiodelvt low Vt n+ diff diode
-# sky130_fd_pr__diode_pd2nw_lvt pdiodelvt low Vt p+ diff diode
-# sky130_fd_pr__diode_pd2nw_hvt pdiodehvt high Vt p+ diff diode
# sky130_fd_pr__npn_05v0 pbase NPN in deep nwell
# sky130_fd_pr__npn_11v0 pbase thick oxide gated NPN
# sky130_fd_pr__pnp_05v0 nbase PNP
@@ -6200,22 +6200,22 @@
device subcircuit sky130_fd_pr__diode_pd2nw_05v5 *pdiode \
nwell a=area
- device msubcircuit sky130_fd_pr__diode_pw2nd_05v5 *ndiode \
- pwell,space/w a=area
+ device subcircuit sky130_fd_pr__diode_pd2nw_05v5_lvt *pdiodelvt \
+ nwell a=area
+ device subcircuit sky130_fd_pr_diode_pd2nw_05v5_hvt *pdiodehvt \
+ nwell a=area
device subcircuit sky130_fd_pr__diode_pd2nw_11v0 *mvpdiode \
nwell a=area
+
+ device msubcircuit sky130_fd_pr__diode_pw2nd_05v5 *ndiode \
+ pwell,space/w a=area
+ device msubcircuit sky130_fd_pr__diode_pw2nd_05v5_lvt *ndiodelvt \
+ pwell,space/w a=area
+ device msubcircuit sky130_fd_pr__diode_pw2nd_05v5_nvt *nndiode \
+ pwell,space/w a=area
device msubcircuit sky130_fd_pr__diode_pw2nd_11v0 *mvndiode \
pwell,space/w a=area
- # These are parasitic devices
- device msubcircuit sky130_fd_pr__diode_pw2nd_lvt *ndiodelvt \
- pwell,space/w a=area
- device subcircuit sky130_fd_pr__diode_pd2nw_lvt *pdiodelvt \
- nwell a=area
- device subcircuit sky130_fd_pr_diode_pd2nw_hvt *pdiodehvt \
- nwell a=area
- device msubcircuit sky130_fd_pr__diode_pw2nd_nvt *nndiode \
- pwell,space/w a=area
#ifdef MIM
device csubcircuit sky130_fd_pr__cap_mim_m3_1 *mimcap *m3 w=w l=l
@@ -6283,16 +6283,15 @@
device resistor mrdp_hv mvpdiffres *mvpdiff
device resistor sky130_fd_pr__res_iso_pw rpw pwell
- device pdiode sky130_fd_pr__diode_pd2nw_05v5 *pdiode nwell a=area
device ndiode sky130_fd_pr__diode_pw2nd_05v5 *ndiode pwell,space/w a=area
- device pdiode sky130_fd_pr__diode_pd2nw_11v0 *mvpdiode nwell a=area
+ device ndiode sky130_fd_pr__diode_pw2nd_05v5_lvt *ndiodelvt pwell,space/w a=area
+ device ndiode sky130_fd_pr__diode_pw2nd_05v5_nvt *nndiode pwell,space/w a=area
device ndiode sky130_fd_pr__diode_pw2nd_11v0 *mvndiode pwell,space/w a=area
- # These are parasitic devices
- device ndiode sky130_fd_pr__diode_pw2nd_05v5_lvt *ndiodelvt pwell,space/w a=area
+ device pdiode sky130_fd_pr__diode_pd2nw_05v5 *pdiode nwell a=area
device pdiode sky130_fd_pr__diode_pd2nw_05v5_lvt *pdiodelvt nwell a=area
device pdiode sky130_fd_pr__diode_pd2nw_05v5_hvt *pdiodehvt nwell a=area
- device ndiode sky130_fd_pr__diode_pw2nd_05v5_nvt *nndiode pwell,space/w a=area
+ device pdiode sky130_fd_pr__diode_pd2nw_11v0 *mvpdiode nwell a=area
device bjt sky130_fd_pr__npn_05v5 npn dnwell *ndiff space/w error a2=area
device bjt sky130_fd_pr__pnp_05v5 pnp pwell,space/w *pdiff a2=area