Swapped the PIN and TXT layer purposes so that they match the
"usual" use in the SkyWater GDS files. Note that the SkyWater
standard cells are done in a weird way with the pin geometry on
a PIN purpose but the pin text on a TXT purpose. The cifinput
style sky130(vendor) will work to read in these schizophrenic
labels. Magic will not write out this kind of pin label, but
the Calibre deck appears to be able to handle what magic writes
out.
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index c77c272..570b509 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -751,11 +751,11 @@
layer WELLTXT
labels allnwell noport
- calma 64 16
+ calma 64 5
layer WELLPIN
labels allnwell port
- calma 64 5
+ calma 64 16
#----------------------------------------------------------------
# SUB (text/port only)
@@ -763,28 +763,39 @@
layer SUBTXT
labels pwell noport
- calma 122 16
+ calma 64 59
layer SUBPIN
labels pwell port
- calma 64 59
+ calma 122 16
#----------------------------------------------------------------
# DIFF
#----------------------------------------------------------------
layer DIFF allnactivenontap,allpactivenontap,allactiveres
- labels allnactivenontap,allpactivenontap
calma 65 20
+ layer DIFFTXT
+ labels allnactivenontap,allpactivenontap noport
+ calma 65 6
+
+ layer DIFFPIN
+ labels allnactivenontap,allpactivenontap port
+ calma 65 16
+
#----------------------------------------------------------------
# TAP
#----------------------------------------------------------------
layer TAP allnactivetap,allpactivetap
- labels allnactivetap,allpactivetap
+ labels allnactivetap,allpactivetap port
calma 65 44
+ layer TAPTXT
+ labels allnactivetap,allpactivetap noport
+ calma 65 5
+
#----------------------------------------------------------------
# FOM
#----------------------------------------------------------------
@@ -991,11 +1002,11 @@
layer POLYTXT
labels allpoly noport
- calma 66 16
+ calma 66 5
layer POLYPIN
labels allpoly port
- calma 66 5
+ calma 66 16
layer POLYFILL polyfill
labels polyfill
@@ -1117,11 +1128,11 @@
layer LITXT
labels *locali,coreli noport
- calma 67 16
+ calma 67 5
layer LIPIN
labels *locali,coreli port
- calma 67 5
+ calma 67 16
layer LIRES rli
labels rli
@@ -1146,11 +1157,11 @@
layer MET1TXT
labels allm1 noport
- calma 68 16
+ calma 68 5
layer MET1PIN
labels allm1 port
- calma 68 5
+ calma 68 16
layer MET1RES rm1
labels rm1
@@ -1175,11 +1186,11 @@
layer MET2TXT
labels allm2 noport
- calma 69 16
+ calma 69 5
layer MET2PIN
labels allm2 port
- calma 69 5
+ calma 69 16
layer MET2RES rm2
labels rm2
@@ -1204,11 +1215,11 @@
layer MET3TXT
labels allm3 noport
- calma 70 16
+ calma 70 5
layer MET3PIN
labels allm3 port
- calma 70 5
+ calma 70 16
layer MET3RES rm3
labels rm3
@@ -1237,11 +1248,11 @@
layer MET4TXT
labels allm4 noport
- calma 71 16
+ calma 71 5
layer MET4PIN
labels allm4 port
- calma 71 5
+ calma 71 16
layer MET4RES rm4
labels rm4
@@ -1269,11 +1280,11 @@
layer MET5TXT
labels allm5 noport
- calma 72 16
+ calma 72 5
layer MET5PIN
labels allm5 port
- calma 72 5
+ calma 72 16
layer MET5RES rm5
labels rm5
@@ -1294,11 +1305,11 @@
layer RDLTXT
labels *metrdl noport
- calma 74 16
+ calma 74 5
layer RDLPIN
labels *metrdl port
- calma 74 5
+ calma 74 16
layer PI1 *metrdl
and padl,glass
@@ -2303,7 +2314,6 @@
labels DIFFTXT text
variants *
labels DIFFPIN port
- labels TAPPIN port
layer ndiff ndiffarea
@@ -2669,12 +2679,12 @@
layer nsd nsdarea
labels TAP
- layer nsd TAP,TAPPIN
+ layer nsd TAP,TAPTXT
and NSDM
and-not POLY
and-not HVI
labels TAP
- labels TAPPIN port
+ labels TAPTXT text
layer corenvar TAP
and NSDM
@@ -2701,12 +2711,12 @@
layer psd psdarea
labels TAP
- layer psd TAP,TAPPIN
+ layer psd TAP
and PSDM
and-not POLY
and-not HVI
labels TAP
- labels TAPPIN port
+ labels TAPTXT text
layer corepvar TAP
and PSDM
@@ -2789,11 +2799,11 @@
layer mvnsd mvnsdarea
labels TAP
- layer mvnsd TAP,TAPPIN
+ layer mvnsd TAP,TAPTXT
and NSDM
and HVI
labels TAP
- labels TAPPIN port
+ labels TAPTXT text
templayer mvnsdexpand mvnsdarea
grow 500
@@ -2814,11 +2824,11 @@
layer mvpsd mvpsdarea
labels DIFF
- layer mvpsd TAP,TAPPIN
+ layer mvpsd TAP,TAPTXT
and PSDM
and HVI
labels TAP
- labels TAPPIN port
+ labels TAPTXT text
templayer mvpsdexpand mvpsdarea
grow 500
@@ -3393,7 +3403,10 @@
#endif (MIM)
templayer m2cbase VIA1
- grow 55
+ and-not COREID
+ grow 5
+ or VIA1
+ grow 50
layer m2c m2cbase
grow 30
@@ -3844,22 +3857,22 @@
#endif
calma GLASS 76 20
- calma SUBPIN 64 59
- calma PADPIN 76 5
- calma DIFFPIN 65 6
- calma TAPPIN 65 5
- calma WELLPIN 64 5
- calma LIPIN 67 5
- calma POLYPIN 66 5
- calma MET1PIN 68 5
- calma MET2PIN 69 5
- calma MET3PIN 70 5
+ calma SUBTXT 64 59
+ calma PADTXT 76 5
+ calma DIFFTXT 65 6
+ calma TAPTXT 65 5
+ calma WELLTXT 64 5
+ calma LITXT 67 5
+ calma POLYTXT 66 5
+ calma MET1TXT 68 5
+ calma MET2TXT 69 5
+ calma MET3TXT 70 5
#ifdef METAL5
- calma MET4PIN 71 5
- calma MET5PIN 72 5
+ calma MET4TXT 71 5
+ calma MET5TXT 72 5
#endif
#ifdef REDISTRIBUTION
- calma RDLPIN 74 5
+ calma RDLTXT 74 5
#endif
calma LIRES 67 13
@@ -3890,18 +3903,18 @@
calma MET5SHORT 72 15
#endif
- calma SUBTXT 122 16
- calma PADTXT 76 16
- calma DIFFTXT 65 16
- calma POLYTXT 66 16
- calma WELLTXT 64 16
- calma LITXT 67 16
- calma MET1TXT 68 16
- calma MET2TXT 69 16
- calma MET3TXT 70 16
+ calma SUBPIN 122 16
+ calma PADPIN 76 16
+ calma DIFFPIN 65 16
+ calma POLYPIN 66 16
+ calma WELLPIN 64 16
+ calma LIPIN 67 16
+ calma MET1PIN 68 16
+ calma MET2PIN 69 16
+ calma MET3PIN 70 16
#ifdef METAL5
- calma MET4TXT 71 16
- calma MET5TXT 72 16
+ calma MET4PIN 71 16
+ calma MET5PIN 72 16
#endif
#ifdef REDISTRIBUTION
calma RDLPIN 74 16