Added "class" parameters to each of the devices defined in the
sky130 and gf180mcu device generator scripts for magic.  This aids
tools in determining how to handle specific generated cells, for
example, for placement and routing.  The feature does not have any
immediate use in any existing tool.
diff --git a/gf180mcu/magic/gf180mcu.tcl b/gf180mcu/magic/gf180mcu.tcl
index 2a77413..756337d 100644
--- a/gf180mcu/magic/gf180mcu.tcl
+++ b/gf180mcu/magic/gf180mcu.tcl
@@ -677,14 +677,14 @@
 
 proc gf180mcu::diode_nd2ps_03v3_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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	elc 1 erc 1 etc 1 ebc 1 doverlap 0 full_metal 1 \
 	compatible {diode_nd2ps_03v3 diode_nd2ps_06v0}}
 }
 
 proc gf180mcu::diode_pd2nw_03v3_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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	elc 1 erc 1 etc 1 ebc 1 \
 	glc 1 grc 1 gtc 0 gbc 0 doverlap 0 full_metal 1 \
 	compatible {diode_pd2nw_03v3 diode_pd2nw_06v0}}
@@ -692,7 +692,7 @@
 
 proc gf180mcu::diode_nd2ps_06v0_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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	elc 1 erc 1 etc 1 ebc 1 doverlap 0 \
 	full_metal 1 \
 	compatible {diode_nd2ps_03v3 diode_nd2ps_06v0}}
@@ -700,7 +700,7 @@
 
 proc gf180mcu::diode_pd2nw_06v0_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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	elc 1 erc 1 etc 1 ebc 1 \
 	glc 1 grc 1 gtc 0 gbc 0 doverlap 0 \
 	full_metal 1 \
@@ -1054,6 +1054,7 @@
 #ifdef MIM
 proc gf180mcu::cap_mim_2p0fF_defaults {} {
     return {w 5.00 l 5.00 val 50.000 carea 25.00 cperi 20.00 \
+		class capacitor \
 		nx 1 ny 1 dummy 0 square 0 lmin 5.00 wmin 5.00 \
 		lmax 100.0 wmax 100.0 dc 0 bconnect 1 tconnect 1}
 }
@@ -1774,7 +1775,7 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::nwell_defaults {} {
-    return {w 2.000 l 10.00 m 1 nx 1 wmin 2.000 lmin 2.00 \
+    return {w 2.000 l 10.00 m 1 nx 1 wmin 2.000 lmin 2.00 class resistor \
 	 	rho 1680 val 8400 dummy 0 dw 0.25 term 1.0 snake 0 \
 		glc 1 grc 1 gtc 0 gbc 0 roverlap 0 endcov 100 \
 		full_metal 1}
@@ -1786,7 +1787,7 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::ppolyf_u_defaults {} {
-    return {w 0.80 l 1.00 m 1 nx 1 wmin 0.80 lmin 1.00 \
+    return {w 0.80 l 1.00 m 1 nx 1 wmin 0.80 lmin 1.00 class resistor \
 		rho 315 val 394 dummy 0 dw 0.07 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 \
 		glc 1 grc 1 gtc 0 gbc 0 roverlap 0 endcov 100 \
@@ -1794,7 +1795,7 @@
 }
 
 proc gf180mcu::npolyf_u_defaults {} {
-    return {w 0.80 l 1.00 m 1 nx 1 wmin 0.80 lmin 1.00 \
+    return {w 0.80 l 1.00 m 1 nx 1 wmin 0.80 lmin 1.00 class resistor \
 		rho 300 val 375 dummy 0 dw 0.09 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 \
 		glc 1 grc 1 gtc 0 gbc 0 roverlap 0 endcov 100 \
@@ -1807,7 +1808,7 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::ppolyf_s_defaults {} {
-    return {w 0.80 l 1.00 m 1 nx 1 wmin 0.80 lmin 1.00 \
+    return {w 0.80 l 1.00 m 1 nx 1 wmin 0.80 lmin 1.00 class resistor \
 		rho 7 val 8.75 dummy 0 dw 0.01 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 \
 		glc 1 grc 1 gtc 0 gbc 0 roverlap 0 endcov 100 \
@@ -1815,7 +1816,7 @@
 }
 
 proc gf180mcu::npolyf_s_defaults {} {
-    return {w 0.80 l 1.00 m 1 nx 1 wmin 0.80 lmin 1.00 \
+    return {w 0.80 l 1.00 m 1 nx 1 wmin 0.80 lmin 1.00 class resistor \
 		rho 7 val 8.75 dummy 0 dw 0.01 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 \
 		glc 1 grc 1 gtc 0 gbc 0 roverlap 0 endcov 100 \
@@ -1828,7 +1829,7 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::nplus_u_defaults {} {
-    return {w 1.000 l 1.000 m 1 nx 1 wmin 1.00 lmin 1.00 \
+    return {w 1.000 l 1.000 m 1 nx 1 wmin 1.00 lmin 1.00 class resistor \
 		rho 85 val 85.0 dummy 0 dw 0.05 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 \
 		glc 1 grc 1 gtc 0 gbc 0 roverlap 0 endcov 100 \
@@ -1841,7 +1842,7 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::pplus_u_defaults {} {
-    return {w 1.000 l 1.000 m 1 nx 1 wmin 1.00 lmin 1.00 \
+    return {w 1.000 l 1.000 m 1 nx 1 wmin 1.00 lmin 1.00 class resistor \
 		rho 128 val 128.0 dummy 0 dw 0.02 term 0.0 \
 		sterm 0.0 caplen 0.60 snake 0 \
 		glc 1 grc 1 gtc 0 gbc 0 roverlap 0 endcov 100 \
@@ -1854,7 +1855,7 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::rm1_defaults {} {
-    return {w 0.160 l 0.160 m 1 nx 1 wmin 0.16 lmin 0.16 \
+    return {w 0.160 l 0.160 m 1 nx 1 wmin 0.16 lmin 0.16 class resistor \
 		rho 0.076 val 0.076 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
@@ -1865,7 +1866,7 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::rm2_defaults {} {
-    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 \
+    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 class resistor \
 		rho 0.053 val 0.053 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
@@ -1877,7 +1878,7 @@
 
 #ifdef METALS3 || METALS4 || METALS5 || METALS6
 proc gf180mcu::rm3_defaults {} {
-    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 \
+    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 class resistor \
 		rho 0.053 val 0.053 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
@@ -1885,21 +1886,21 @@
 
 #ifdef METALS4 || METALS5 || METALS6
 proc gf180mcu::rm4_defaults {} {
-    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 \
+    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 class resistor \
 		rho 0.053 val 0.053 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
 #endif (METALS4 || METALS5 || METALS6)
 #ifdef METALS5 || METALS6
 proc gf180mcu::rm5_defaults {} {
-    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 \
+    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 class resistor \
 		rho 0.053 val 0.053 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
 #endif (METALS5 || METALS6)
 #ifdef METALS6
 proc gf180mcu::rmtp_defaults {} {
-    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 \
+    return {w 0.200 l 0.200 m 1 nx 1 wmin 0.20 lmin 0.20 class resistor \
 		rho 0.053 val 0.053 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
@@ -1913,7 +1914,7 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::ppolyf_u_1k_defaults {} {
-    return {w 1.000 l 2.000 m 1 nx 1 wmin 1.000 lmin 1.000 \
+    return {w 1.000 l 2.000 m 1 nx 1 wmin 1.000 lmin 1.000 class resistor \
 		rho 1000 val 2000 dummy 0 dw 0.0 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 \
 		glc 1 grc 1 gtc 0 gbc 0 roverlap 0 endcov 100 \
@@ -1922,7 +1923,7 @@
 }
 
 proc gf180mcu::ppolyf_u_1k_6p0_defaults {} {
-    return {w 1.000 l 2.000 m 1 nx 1 wmin 1.000 lmin 1.000 \
+    return {w 1.000 l 2.000 m 1 nx 1 wmin 1.000 lmin 1.000 class resistor \
 		rho 1000 val 2000 dummy 0 dw 0.0 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 \
 		glc 1 grc 1 gtc 0 gbc 0 roverlap 0 endcov 100 \
@@ -3226,7 +3227,7 @@
     return {w 0.220 l 0.280 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.28 wmin 0.22 \
-		full_metal 1 \
+		class mosfet full_metal 1 \
 		compatible {pfet_03v3 pfet_06v0}}
 }
 
@@ -3234,7 +3235,7 @@
     return {w 0.3 l 0.5 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.5 wmin 0.3 \
-		full_metal 1 \
+		class mosfet full_metal 1 \
 		compatible {pfet_03v3 pfet_06v0}}
 }
 
@@ -3242,7 +3243,7 @@
     return {w 0.220 l 0.280 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.28 wmin 0.22 \
-		full_metal 1 \
+		class mosfet full_metal 1 \
 		compatible {pfet_03v3_dss pfet_06v0_dss}}
 }
 
@@ -3250,7 +3251,7 @@
     return {w 0.3 l 0.5 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.5 wmin 0.3 \
-		full_metal 1 \
+		class mosfet full_metal 1 \
 		compatible {pfet_03v3_dss pfet_06v0_dss}}
 }
 #----------------------------------------------------------------
@@ -3262,7 +3263,7 @@
     return {w 0.220 l 0.280 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.28 wmin 0.22 \
-		full_metal 1 \
+		class mosfet full_metal 1 \
 		compatible {nfet_03v3 nfet_06v0 nfet_06v0_nvt}}
 }
 
@@ -3270,7 +3271,7 @@
     return {w 0.3 l 0.6 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.6 wmin 0.3 \
-		full_metal 1 \
+		class mosfet full_metal 1 \
 		compatible {nfet_03v3 nfet_06v0 nfet_06v0_nvt}}
 }
 
@@ -3278,7 +3279,7 @@
     return {w 0.8 l 1.8 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 1.8 wmin 0.8 \
-		full_metal 1 \
+		class mosfet full_metal 1 \
 		compatible {nfet_03v3 nfet_06v0 nfet_06v0_nvt}}
 }
 
@@ -3293,14 +3294,14 @@
     return {w 4.0 l 0.6 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.6 wmin 4.0 \
-		full_metal 1 }
+		class mosfet full_metal 1 }
 }
 
 proc gf180mcu::nfet_03v3_dss_defaults {} {
     return {w 0.220 l 0.280 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.28 wmin 0.22 \
-		full_metal 1 \
+		class mosfet full_metal 1 \
 		compatible {nfet_03v3_dss nfet_06v0_dss}}
 }
 
@@ -3308,7 +3309,7 @@
     return {w 0.3 l 0.6 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.6 wmin 0.3 \
-		full_metal 1 \
+		class mosfet full_metal 1 \
 		compatible {nfet_03v3_dss nfet_06v0_dss}}
 }
 
@@ -3321,14 +3322,14 @@
     return {w 1.0 l 1.0 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.28 wmin 0.22 \
-		full_metal 1 compatible {nmoscap_3p3 nmoscap_6p0}}
+		class mosfet full_metal 1 compatible {nmoscap_3p3 nmoscap_6p0}}
 }
 
 proc gf180mcu::nmoscap_6p0_defaults {} {
     return {w 1.0 l 1.0 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 0 gbc 0 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.28 wmin 0.3 \
-		full_metal 1 compatible {nmoscap_3p3 nmoscap_6p0}}
+		class mosfet full_metal 1 compatible {nmoscap_3p3 nmoscap_6p0}}
 }
 
 #----------------------------------------------------------------
@@ -4607,19 +4608,19 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::npn_05p00x05p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 15.29 ystep 22.92}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 15.29 ystep 22.92 class bjt}
 }
 
 proc gf180mcu::npn_00p54x02p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 13.55 ystep 14.95}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 13.55 ystep 14.95 class bjt}
 }
 
 proc gf180mcu::npn_10p00x10p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 23.04 ystep 23.04}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 23.04 ystep 23.04 class bjt}
 }
 
 proc gf180mcu::npn_00p54x10p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 16.94 ystep 16.94}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 16.94 ystep 16.94 class bjt}
 }
 
 proc gf180mcu::eFuse_defaults {} {
@@ -4627,27 +4628,27 @@
 }
 
 proc gf180mcu::npn_00p54x04p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 13.92 ystep 16.96}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 13.92 ystep 16.96 class bjt}
 }
 
 proc gf180mcu::npn_00p54x08p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 12.36 ystep 21.22}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 12.36 ystep 21.22 class bjt}
 }
 
 proc gf180mcu::pnp_05p00x05p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 8.25 ystep 8.25}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 8.25 ystep 8.25 class bjt}
 }
 
 proc gf180mcu::pnp_05p00x00p42_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 3.69 ystep 8.25}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 3.69 ystep 8.25 class bjt}
 }
 
 proc gf180mcu::pnp_10p00x10p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 13.25 ystep 13.25}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 13.25 ystep 13.25 class bjt}
 }
 
 proc gf180mcu::pnp_10p00x00p42_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 3.75 ystep 13.25}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 3.75 ystep 13.25 class bjt}
 }
 
 #----------------------------------------------------------------
diff --git a/sky130/magic/sky130.tcl b/sky130/magic/sky130.tcl
index ccd780b..4f49f09 100644
--- a/sky130/magic/sky130.tcl
+++ b/sky130/magic/sky130.tcl
@@ -1164,7 +1164,7 @@
 
 proc sky130::sky130_fd_pr__diode_pw2nd_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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	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} \
@@ -1173,7 +1173,7 @@
 
 proc sky130::sky130_fd_pr__diode_pw2nd_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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	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} \
@@ -1182,7 +1182,7 @@
 
 proc sky130::sky130_fd_pr__diode_pw2nd_05v5_nvt_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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	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} \
@@ -1191,7 +1191,7 @@
 
 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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	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} \
@@ -1199,12 +1199,12 @@
 }
 
 proc sky130::sky130_fd_pr__photodiode_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 xstep 8.0 ystep 8.0}
+    return {nx 1 ny 1 deltax 0 deltay 0 xstep 8.0 ystep 8.0 class diode}
 }
 
 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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	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 \
@@ -1214,7 +1214,7 @@
 
 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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	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 \
@@ -1224,7 +1224,7 @@
 
 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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	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 \
@@ -1235,7 +1235,7 @@
 
 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 \
+	nx 1 ny 1 dummy 0 lmin 0.45 wmin 0.45 class diode \
 	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 \
@@ -1946,13 +1946,13 @@
 
 #ifdef MIM
 proc sky130::sky130_fd_pr__cap_mim_m3_1_defaults {} {
-    return {w 2.00 l 2.00 val 8.0 carea 2.00 cperi 0.19 \
+    return {w 2.00 l 2.00 val 8.0 carea 2.00 cperi 0.19 class capacitor \
 		nx 1 ny 1 dummy 0 square 0 lmin 2.00 wmin 2.00 \
 		lmax 30.0 wmax 30.0 dc 0 bconnect 1 tconnect 1 \
 		ccov 100}
 }
 proc sky130::sky130_fd_pr__cap_mim_m3_2_defaults {} {
-    return {w 2.00 l 2.00 val 8.0 carea 2.00 cperi 0.19 \
+    return {w 2.00 l 2.00 val 8.0 carea 2.00 cperi 0.19 class capacitor \
 		nx 1 ny 1 dummy 0 square 0 lmin 2.00 wmin 2.00 \
 		lmax 30.0 wmax 30.0 dc 0 bconnect 1 tconnect 1 \
 		ccov 100}
@@ -2753,7 +2753,7 @@
 #----------------------------------------------------------------
 
 proc sky130::sky130_fd_pr__res_iso_pw_defaults {} {
-    return {w 2.650 l 26.50 m 1 nx 1 wmin 2.650 lmin 26.50 \
+    return {w 2.650 l 26.50 m 1 nx 1 wmin 2.650 lmin 26.50 class resistor \
 	 	rho 3050 val 30502 dummy 0 dw 0.25 term 1.0 \
 		guard 1 endcov 100 full_metal 1 vias 1 \
 		viagb 0 viagt 0 viagl 0 viagr 0}
@@ -2765,7 +2765,7 @@
 #----------------------------------------------------------------
 
 proc sky130::sky130_fd_pr__res_generic_po_defaults {} {
-    return {w 0.330 l 1.650 m 1 nx 1 wmin 0.330 lmin 1.650 \
+    return {w 0.330 l 1.650 m 1 nx 1 wmin 0.330 lmin 1.650 class resistor \
 		rho 48.2 val 241 dummy 0 dw 0.0 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 guard 1 \
 		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
@@ -2775,7 +2775,7 @@
 
 # "term" is rho * 0.06, the distance between xpc edge and CONT.
 proc sky130::sky130_fd_pr__res_high_po_0p35_defaults {} {
-    return {w 0.350 l 0.50 m 1 nx 1 wmin 0.350 lmin 0.50 \
+    return {w 0.350 l 0.50 m 1 nx 1 wmin 0.350 lmin 0.50 class resistor \
 		rho 319.8 val 456.857 dummy 0 dw 0.0 term 194.82 \
 		sterm 0.0 caplen 0 guard 1 glc 1 grc 1 gtc 1 gbc 1 \
 		compatible {sky130_fd_pr__res_high_po_0p35 \
@@ -2785,7 +2785,7 @@
 		viagb 0 viagt 0 viagl 0 viagr 0}
 }
 proc sky130::sky130_fd_pr__res_high_po_0p69_defaults {} {
-    return {w 0.690 l 1.00 m 1 nx 1 wmin 0.690 lmin 0.50 \
+    return {w 0.690 l 1.00 m 1 nx 1 wmin 0.690 lmin 0.50 class resistor \
 		rho 319.8 val 463.480 dummy 0 dw 0.0 term 194.82 \
 		sterm 0.0 caplen 0 guard 1 glc 1 grc 1 gtc 1 gbc 1 \
 		compatible {sky130_fd_pr__res_high_po_0p35 \
@@ -2795,7 +2795,7 @@
 		viagb 0 viagt 0 viagl 0 viagr 0}
 }
 proc sky130::sky130_fd_pr__res_high_po_1p41_defaults {} {
-    return {w 1.410 l 2.00 m 1 nx 1 wmin 1.410 lmin 0.50 \
+    return {w 1.410 l 2.00 m 1 nx 1 wmin 1.410 lmin 0.50 class resistor \
 		rho 319.8 val 453.620 dummy 0 dw 0.0 term 194.82 \
 		sterm 0.0 caplen 0 guard 1 glc 1 grc 1 gtc 1 gbc 1 \
 		compatible {sky130_fd_pr__res_high_po_0p35 \
@@ -2805,7 +2805,7 @@
 		viagb 0 viagt 0 viagl 0 viagr 0}
 }
 proc sky130::sky130_fd_pr__res_high_po_2p85_defaults {} {
-    return {w 2.850 l 3.00 m 1 nx 1 wmin 2.850 lmin 0.50 \
+    return {w 2.850 l 3.00 m 1 nx 1 wmin 2.850 lmin 0.50 class resistor \
 		rho 319.8 val 336.630 dummy 0 dw 0.0 term 194.82 \
 		sterm 0.0 caplen 0 guard 1 glc 1 grc 1 gtc 1 gbc 1 \
 		compatible {sky130_fd_pr__res_high_po_0p35 \
@@ -2815,7 +2815,7 @@
 		viagb 0 viagt 0 viagl 0 viagr 0}
 }
 proc sky130::sky130_fd_pr__res_high_po_5p73_defaults {} {
-    return {w 5.730 l 6.00 m 1 nx 1 wmin 5.730 lmin 0.50 \
+    return {w 5.730 l 6.00 m 1 nx 1 wmin 5.730 lmin 0.50 class resistor \
 		rho 319.8 val 334.870 dummy 0 dw 0.0 term 194.82 \
 		sterm 0.0 caplen 0 guard 1 glc 1 grc 1 gtc 1 gbc 1 \
 		compatible {sky130_fd_pr__res_high_po_0p35 \
@@ -2827,7 +2827,7 @@
 
 # "term" is rho * 0.06, the distance between xpc edge and CONT.
 proc sky130::sky130_fd_pr__res_xhigh_po_0p35_defaults {} {
-    return {w 0.350 l 0.50 m 1 nx 1 wmin 0.350 lmin 0.50 \
+    return {w 0.350 l 0.50 m 1 nx 1 wmin 0.350 lmin 0.50 class resistor \
 		rho 2000 val 2875.143 dummy 0 dw 0.0 term 188.2 \
 		sterm 0.0 caplen 0 wmax 0.350 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 \
@@ -2838,7 +2838,7 @@
 		viagb 0 viagt 0 viagl 0 viagr 0}
 }
 proc sky130::sky130_fd_pr__res_xhigh_po_0p69_defaults {} {
-    return {w 0.690 l 1.00 m 1 nx 1 wmin 0.690 lmin 0.50 \
+    return {w 0.690 l 1.00 m 1 nx 1 wmin 0.690 lmin 0.50 class resistor \
 		rho 2000 val 2898.600 dummy 0 dw 0.0 term 188.2 \
 		sterm 0.0 caplen 0 wmax 0.690 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 \
@@ -2849,7 +2849,7 @@
 		viagb 0 viagt 0 viagl 0 viagr 0}
 }
 proc sky130::sky130_fd_pr__res_xhigh_po_1p41_defaults {} {
-    return {w 1.410 l 2.00 m 1 nx 1 wmin 1.410 lmin 0.50 \
+    return {w 1.410 l 2.00 m 1 nx 1 wmin 1.410 lmin 0.50 class resistor \
 		rho 2000 val 2836.900 dummy 0 dw 0.0 term 188.2 \
 		sterm 0.0 caplen 0 wmax 1.410 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 \
@@ -2860,7 +2860,7 @@
 		viagb 0 viagt 0 viagl 0 viagr 0}
 }
 proc sky130::sky130_fd_pr__res_xhigh_po_2p85_defaults {} {
-    return {w 2.850 l 3.00 m 1 nx 1 wmin 2.850 lmin 0.50 \
+    return {w 2.850 l 3.00 m 1 nx 1 wmin 2.850 lmin 0.50 class resistor \
 		rho 2000 val 2105.300 dummy 0 dw 0.0 term 188.2 \
 		sterm 0.0 caplen 0 wmax 2.850 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 \
@@ -2871,7 +2871,7 @@
 		viagb 0 viagt 0 viagl 0 viagr 0}
 }
 proc sky130::sky130_fd_pr__res_xhigh_po_5p73_defaults {} {
-    return {w 5.730 l 6.00 m 1 nx 1 wmin 5.730 lmin 0.50 \
+    return {w 5.730 l 6.00 m 1 nx 1 wmin 5.730 lmin 0.50 class resistor \
 		rho 2000 val 2094.200 dummy 0 dw 0.0 term 188.2 \
 		sterm 0.0 caplen 0 wmax 5.730 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 \
@@ -2888,7 +2888,7 @@
 #----------------------------------------------------------------
 
 proc sky130::sky130_fd_pr__res_generic_nd_defaults {} {
-    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 \
+    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 class resistor \
 		rho 120 val 600.0 dummy 0 dw 0.05 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 guard 1 \
 		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
@@ -2897,7 +2897,7 @@
 }
 
 proc sky130::sky130_fd_pr__res_generic_nd__hv_defaults {} {
-    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 \
+    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 class resistor \
 		rho 120 val 600.0 dummy 0 dw 0.02 term 0.0 \
 		sterm 0.0 caplen 0.4 snake 0 guard 1 \
 		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
@@ -2911,7 +2911,7 @@
 #----------------------------------------------------------------
 
 proc sky130::sky130_fd_pr__res_generic_pd_defaults {} {
-    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 \
+    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 class resistor \
 		rho 197 val 985.0 dummy 0 dw 0.02 term 0.0 \
 		sterm 0.0 caplen 0.60 snake 0 guard 1 \
 		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
@@ -2920,7 +2920,7 @@
 }
 
 proc sky130::sky130_fd_pr__res_generic_pd__hv_defaults {} {
-    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 \
+    return {w 0.420 l 2.100 m 1 nx 1 wmin 0.42 lmin 2.10 class resistor \
 		rho 197 val 985.0 dummy 0 dw 0.02 term 0.0 \
 		sterm 0.0 caplen 0.60 snake 0 guard 1 \
 		glc 1 grc 1 gtc 1 gbc 1 roverlap 0 endcov 100 \
@@ -2934,7 +2934,7 @@
 #----------------------------------------------------------------
 
 proc sky130::sky130_fd_pr__res_generic_l1_defaults {} {
-    return {w 0.170 l 0.170 m 1 nx 1 wmin 0.17 lmin 0.17 \
+    return {w 0.170 l 0.170 m 1 nx 1 wmin 0.17 lmin 0.17 class resistor \
 		rho 12.8 val 12.8 dummy 0 dw 0.0 term 0.0 snake 0 \
 		roverlap 0}
 }
@@ -2945,7 +2945,7 @@
 #----------------------------------------------------------------
 
 proc sky130::sky130_fd_pr__res_generic_m1_defaults {} {
-    return {w 0.140 l 0.140 m 1 nx 1 wmin 0.14 lmin 0.14 \
+    return {w 0.140 l 0.140 m 1 nx 1 wmin 0.14 lmin 0.14 class resistor \
 		rho 0.125 val 0.125 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
@@ -2956,7 +2956,7 @@
 #----------------------------------------------------------------
 
 proc sky130::sky130_fd_pr__res_generic_m2_defaults {} {
-    return {w 0.140 l 0.140 m 1 nx 1 wmin 0.14 lmin 0.14 \
+    return {w 0.140 l 0.140 m 1 nx 1 wmin 0.14 lmin 0.14 class resistor \
 		rho 0.125 val 0.125 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
@@ -2967,7 +2967,7 @@
 #----------------------------------------------------------------
 
 proc sky130::sky130_fd_pr__res_generic_m3_defaults {} {
-    return {w 0.300 l 0.300 m 1 nx 1 wmin 0.30 lmin 0.30 \
+    return {w 0.300 l 0.300 m 1 nx 1 wmin 0.30 lmin 0.30 class resistor \
 		rho 0.047 val 0.047 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
@@ -2979,12 +2979,12 @@
 
 #ifdef METAL5
 proc sky130::sky130_fd_pr__res_generic_m4_defaults {} {
-    return {w 0.300 l 0.300 m 1 nx 1 wmin 0.30 lmin 0.30 \
+    return {w 0.300 l 0.300 m 1 nx 1 wmin 0.30 lmin 0.30 class resistor \
 		rho 0.047 val 0.047 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
 proc sky130::sky130_fd_pr__res_generic_m5_defaults {} {
-    return {w 1.600 l 1.600 m 1 nx 1 wmin 1.60 lmin 1.60 \
+    return {w 1.600 l 1.600 m 1 nx 1 wmin 1.60 lmin 1.60 class resistor \
 		rho 0.029 val 0.029 dummy 0 dw 0.0 term 0.0 \
 		roverlap 0}
 }
@@ -5207,7 +5207,7 @@
     return {w 0.42 l 0.15 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
-		compatible {sky130_fd_pr__pfet_01v8 \
+		class mosfet compatible {sky130_fd_pr__pfet_01v8 \
 		sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt \
 		sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 \
 		viasrc 100 viadrn 100 viagate 100 \
@@ -5218,7 +5218,7 @@
     return {w 0.42 l 0.35 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.35 wmin 0.42 \
-		compatible {sky130_fd_pr__pfet_01v8 \
+		class mosfet compatible {sky130_fd_pr__pfet_01v8 \
 		sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt \
 		sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 \
 		viasrc 100 viadrn 100 viagate 100 \
@@ -5229,7 +5229,7 @@
     return {w 0.42 l 0.15 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
-		compatible {sky130_fd_pr__pfet_01v8 \
+		class mosfet compatible {sky130_fd_pr__pfet_01v8 \
 		sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt \
 		sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 \
 		viasrc 100 viadrn 100 viagate 100 \
@@ -5240,7 +5240,7 @@
     return {w 0.42 l 0.50 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.50 wmin 0.42 \
-		compatible {sky130_fd_pr__pfet_01v8 \
+		class mosfet compatible {sky130_fd_pr__pfet_01v8 \
 		sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt \
 		sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 \
 		viasrc 100 viadrn 100 viagate 100 \
@@ -5251,7 +5251,7 @@
     return {w 5.00 l 1.050 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 0 lmin 1.050 wmin 5.00 \
-		full_metal 1 viasrc 100 viadrn 100 viagate 100 \
+		class mosfet full_metal 1 viasrc 100 viadrn 100 viagate 100 \
 		viagb 0 viagr 0 viagl 0 viagt 0}
 }
 
@@ -5264,6 +5264,7 @@
     return {w 0.420 l 0.150 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
+		class mosfet \
 		compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt \
 		sky130_fd_bs_flash__special_sonosfet_star \
 		sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt \
@@ -5276,6 +5277,7 @@
     return {w 0.420 l 0.150 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
+		class mosfet \
 		compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt \
 		sky130_fd_bs_flash__special_sonosfet_star \
 		sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt \
@@ -5288,6 +5290,7 @@
     return {w 0.420 l 0.150 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 \
+		class mosfet \
 		compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt \
 		sky130_fd_bs_flash__special_sonosfet_star \
 		sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt \
@@ -5300,6 +5303,7 @@
     return {w 0.42 l 0.50 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.50 wmin 0.42 \
+		class mosfet \
 		compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt \
 		sky130_fd_bs_flash__special_sonosfet_star \
 		sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt \
@@ -5312,6 +5316,7 @@
     return {w 0.42 l 0.90 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.90 wmin 0.42 \
+		class mosfet \
 		compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt \
 		sky130_fd_bs_flash__special_sonosfet_star \
 		sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt \
@@ -5324,6 +5329,7 @@
     return {w 0.42 l 0.50 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.50 wmin 0.42 \
+		class mosfet \
 		compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt \
 		sky130_fd_bs_flash__special_sonosfet_star \
 		sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt \
@@ -5349,7 +5355,7 @@
     return {w 1.0 l 0.18 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.18 wmin 1.0 \
-		compatible {sky130_fd_pr__cap_var_lvt \
+		class mosfet compatible {sky130_fd_pr__cap_var_lvt \
 		sky130_fd_pr__cap_var_hvt sky130_fd_pr__cap_var} \
 		full_metal 1 viasrc 100 viadrn 100 viagate 100 \
 		viagb 0 viagr 0 viagl 0 viagt 0 gshield 1}
@@ -5359,7 +5365,7 @@
     return {w 1.0 l 0.18 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.18 wmin 1.0 \
-		compatible {sky130_fd_pr__cap_var_lvt \
+		class mosfet compatible {sky130_fd_pr__cap_var_lvt \
 		sky130_fd_pr__cap_var_hvt sky130_fd_pr__cap_var} \
 		full_metal 1 viasrc 100 viadrn 100 viagate 100 \
 		viagb 0 viagr 0 viagl 0 viagt 0 gshield 1}
@@ -5369,7 +5375,7 @@
     return {w 1.0 l 0.50 m 1 nf 1 diffcov 100 polycov 100 \
 		guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 \
 		topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.50 wmin 1.0 \
-		compatible {sky130_fd_pr__cap_var_lvt \
+		class mosfet compatible {sky130_fd_pr__cap_var_lvt \
 		sky130_fd_pr__cap_var_hvt sky130_fd_pr__cap_var} \
 		full_metal 1 viasrc 100 viadrn 100 viagate 100 \
 		viagb 0 viagr 0 viagl 0 viagt 0 gshield 1}
@@ -7376,44 +7382,44 @@
 # sky130_fd_pr__rf_test_coil3
 
 proc sky130::sky130_fd_pr__npn_05v5_W1p00L1p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 7.03}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 7.03 class bjt}
 }
 proc sky130::sky130_fd_pr__npn_05v5_W1p00L2p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 8.03}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 8.03 class bjt}
 }
 
 proc sky130::sky130_fd_pr__pnp_05v5_W0p68L0p68_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 3.72 ystep 3.72}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 3.72 ystep 3.72 class bjt}
 }
 
 proc sky130::sky130_fd_pr__pnp_05v5_W3p40L3p40_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.44 ystep 6.44}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 6.44 ystep 6.44 class bjt}
 }
 proc sky130::sky130_fd_pr__npn_11v0_W1p00L1p00_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 7.03}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 7.03 ystep 7.03 class bjt}
 }
 
 proc sky130::sky130_fd_pr__rf_test_coil1_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 258 ystep 258}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 258 ystep 258 class inductor}
 }
 proc sky130::sky130_fd_pr__rf_test_coil2_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 290 ystep 404}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 290 ystep 404 class inductor}
 }
 proc sky130::sky130_fd_pr__rf_test_coil3_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 290 ystep 404}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 290 ystep 404 class inductor}
 }
 
 proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2m3m4_shieldl1m5_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36 class capacitor}
 }
 proc sky130::sky130_fd_pr__cap_vpp_11p5x11p7_m1m2_noshield_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36 class capacitor}
 }
 proc sky130::sky130_fd_pr__cap_vpp_08p6x07p8_m1m2_shieldl1_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36 class capacitor}
 }
 proc sky130::sky130_fd_pr__cap_vpp_04p4x04p6_m1m2_shieldl1_defaults {} {
-    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36}
+    return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 11.08 ystep 11.36 class capacitor}
 }
 
 #----------------------------------------------------------------