Rescinded the change to the sky130 tech file for magic from
open_pdks version 1.0.353 in which the port and plain text
GDS layers were swapped. This turned out to work in magic for
some reason, but was not the correct solution, as the underlying
problem was that magic did not have a way to separate the GDS
layers for TEXTTYPE and DATATYPE for the text and material
belonging to the same pin (most foundries use the same types
for both). Instead, worked out a method in magic version
8.3.357 that can take the original tech file syntax and
interpret it correctly, and read and write different types for
text and data on the same pin (or the same types, if so
specified).
diff --git a/VERSION b/VERSION
index 2bbd629..012da15 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.378
+1.0.379
diff --git a/sky130/magic/sky130.tech b/sky130/magic/sky130.tech
index fdb9f84..4e2a74d 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -831,24 +831,24 @@
calma 64 20
layer WELLTXT
- labels allnwell noport
- calma 64 16
+ labels allnwell
+ calma 64 5
layer WELLPIN
labels allnwell port
- calma 64 5
+ calma 64 16
#----------------------------------------------------------------
# SUB (text/port only)
#----------------------------------------------------------------
layer SUBTXT
- labels pwell noport
- calma 122 16
+ labels pwell
+ calma 64 59
layer SUBPIN
labels pwell port
- calma 64 59
+ calma 122 16
#----------------------------------------------------------------
# DIFF
@@ -858,23 +858,23 @@
calma 65 20
layer DIFFTXT
- labels allnactivenontap,allpactivenontap noport
- calma 65 16
+ labels allnactivenontap,allpactivenontap
+ calma 65 6
layer DIFFPIN
labels allnactivenontap,allpactivenontap port
- calma 65 6
+ calma 65 16
#----------------------------------------------------------------
# TAP
#----------------------------------------------------------------
layer TAP allnactivetap,allpactivetap
- labels allnactivetap,allpactivetap noport
+ labels allnactivetap,allpactivetap port
calma 65 44
- layer TAPPIN
- labels allnactivetap,allpactivetap port
+ layer TAPTXT
+ labels allnactivetap,allpactivetap
calma 65 5
#----------------------------------------------------------------
@@ -1094,12 +1094,12 @@
calma 66 20
layer POLYTXT
- labels allpoly noport
- calma 66 16
+ labels allpoly
+ calma 66 5
layer POLYPIN
labels allpoly port
- calma 66 5
+ calma 66 16
layer POLYFILL polyfill
labels polyfill
@@ -1220,12 +1220,12 @@
calma 67 20
layer LITXT
- labels *locali,coreli noport
- calma 67 16
+ labels *locali,coreli
+ calma 67 5
layer LIPIN
labels *locali,coreli port
- calma 67 5
+ calma 67 16
layer LIRES rli
labels rli
@@ -1249,12 +1249,12 @@
calma 68 20
layer MET1TXT
- labels allm1 noport
- calma 68 16
+ labels allm1
+ calma 68 5
layer MET1PIN
labels allm1 port
- calma 68 5
+ calma 68 16
layer MET1RES rm1
labels rm1
@@ -1289,12 +1289,12 @@
calma 69 20
layer MET2TXT
- labels allm2 noport
- calma 69 16
+ labels allm2
+ calma 69 5
layer MET2PIN
labels allm2 port
- calma 69 5
+ calma 69 16
layer MET2RES rm2
labels rm2
@@ -1318,12 +1318,12 @@
calma 70 20
layer MET3TXT
- labels allm3 noport
- calma 70 16
+ labels allm3
+ calma 70 5
layer MET3PIN
labels allm3 port
- calma 70 5
+ calma 70 16
layer MET3RES rm3
labels rm3
@@ -1351,12 +1351,12 @@
calma 71 20
layer MET4TXT
- labels allm4 noport
- calma 71 16
+ labels allm4
+ calma 71 5
layer MET4PIN
labels allm4 port
- calma 71 5
+ calma 71 16
layer MET4RES rm4
labels rm4
@@ -1383,12 +1383,12 @@
calma 72 20
layer MET5TXT
- labels allm5 noport
- calma 72 16
+ labels allm5
+ calma 72 5
layer MET5PIN
labels allm5 port
- calma 72 5
+ calma 72 16
layer MET5RES rm5
labels rm5
@@ -1408,12 +1408,12 @@
calma 74 20
layer RDLTXT
- labels *metrdl noport
- calma 74 16
+ labels *metrdl
+ calma 74 5
layer RDLPIN
labels *metrdl port
- calma 74 5
+ calma 74 16
layer PI1 *metrdl
and padl,glass
@@ -2382,7 +2382,7 @@
# or else magic will scale below the allowed layout grid size
#-----------------------------------------------------------------------
-style sky130 variants (),(vendor),(legacy)
+style sky130 variants (),(vendor)
scalefactor 10 nanometers
gridlimit 5
@@ -2418,20 +2418,13 @@
and PNPID
labels NWELL
labels WELLPIN port
- variants (),(vendor)
labels WELLTXT text
- variants (legacy)
- labels WELLTXT port
- variants *
layer nwell NWELL,WELLTXT,WELLPIN
and-not PNPID
labels NWELL
labels WELLPIN port
- variants (),(vendor)
labels WELLTXT text
- variants (legacy)
- labels WELLTXT port
variants *
templayer nwellarea NWELL
@@ -2457,11 +2450,7 @@
grow 420
shrink 420
labels SUBPIN port
- variants (),(vendor)
labels SUBTXT text
- variants (legacy)
- labels SUBTXT port
- variants *
layer dnwell DNWELL
labels DNWELL
@@ -2492,10 +2481,7 @@
copyup ndifcheck
labels DIFF
labels DIFFPIN port
- variants (),(vendor)
labels DIFFTXT text
- variants (legacy)
- labels DIFFTXT port
variants *
layer ndiff ndiffarea
@@ -2515,11 +2501,7 @@
copyup ndifcheck
labels DIFF
labels DIFFPIN port
- variants (),(vendor)
labels DIFFTXT text
- variants (legacy)
- labels DIFFTXT port
- variants *
layer mvndiff mvndiffarea
@@ -2568,11 +2550,7 @@
copyup pdifcheck
labels DIFF
labels DIFFPIN port
- variants (),(vendor)
labels DIFFTXT text
- variants (legacy)
- labels DIFFTXT port
- variants *
layer pdiff pdiffarea
@@ -2616,11 +2594,7 @@
copyup mvpdifcheck
labels DIFF
labels DIFFPIN port
- variants (),(vendor)
labels DIFFTXT text
- variants (legacy)
- labels DIFFTXT port
- variants *
layer mvpdiff mvpdiffarea
@@ -2762,11 +2736,7 @@
and-not DIFFRES
labels DIFF
labels DIFFPIN port
- variants (),(vendor)
labels DIFFTXT text
- variants (legacy)
- labels DIFFTXT port
- variants *
layer pdiffres DIFFRES
and PSDM
@@ -2862,12 +2832,12 @@
layer nsd nsdarea
labels TAP
- layer nsd TAP,TAPPIN
+ layer nsd TAP,TAPTXT
and NSDM
and-not POLY
and-not HVI,hvcheck
labels TAP
- labels TAPPIN port
+ labels TAPTXT text
layer corenvar TAP
and NSDM
@@ -2899,7 +2869,7 @@
and-not POLY
and-not HVI,hvcheck
labels TAP
- labels TAPPIN port
+ labels TAPTXT text
layer corepvar TAP
and PSDM
@@ -2917,11 +2887,7 @@
and mvpfetexpand
labels DIFF
labels DIFFPIN port
- variants (),(vendor)
labels DIFFTXT text
- variants (legacy)
- labels DIFFTXT port
- variants *
layer mvpdiffres DIFFRES
and PSDM
@@ -2987,11 +2953,11 @@
layer mvnsd mvnsdarea
labels TAP
- layer mvnsd TAP,TAPPIN
+ layer mvnsd TAP,TAPTXT
and NSDM
and HVI,hvcheck
labels TAP
- labels TAPPIN port
+ labels TAPTXT text
templayer mvnsdexpand mvnsdarea
grow 500
@@ -3012,11 +2978,11 @@
layer mvpsd mvpsdarea
labels DIFF
- layer mvpsd TAP,TAPPIN
+ layer mvpsd TAP,TAPTXT
and PSDM
and HVI,hvcheck
labels TAP
- labels TAPPIN port
+ labels TAPTXT text
templayer mvpsdexpand mvpsdarea
grow 500
@@ -3117,11 +3083,7 @@
layer poly polyarea
labels POLY
labels POLYPIN port
- variants (),(vendor)
labels POLYTXT text
- variants (legacy)
- labels POLYTXT port
- variants *
# Copy (non-resistor) poly areas up for contact checks
templayer xpolycheck polycheck
@@ -3518,22 +3480,14 @@
and COREID
labels LI
labels LIPIN port
- variants (),(vendor)
labels LITXT text
- variants (legacy)
- labels LITXT port
- variants *
layer locali LI,LITXT,LIPIN
and-not LIRES,LISHORT
and-not COREID
labels LI
labels LIPIN port
- variants (),(vendor)
labels LITXT text
- variants (legacy)
- labels LITXT port
- variants *
layer rli LI
and LIRES,LISHORT
@@ -3554,11 +3508,7 @@
and-not MET1RES,MET1SHORT
labels MET1
labels MET1PIN port
- variants (),(vendor)
labels MET1TXT text
- variants (legacy)
- labels MET1TXT port
- variants *
layer rm1 MET1
and MET1RES,MET1SHORT
@@ -3626,11 +3576,7 @@
and-not MET2RES,MET2SHORT
labels MET2
labels MET2PIN port
- variants (),(vendor)
labels MET2TXT text
- variants (legacy)
- labels MET2TXT port
- variants *
layer rm2 MET2
and MET2RES,MET2SHORT
@@ -3653,11 +3599,7 @@
and-not MET3RES,MET3SHORT
labels MET3
labels MET3PIN port
- variants (),(vendor)
labels MET3TXT text
- variants (legacy)
- labels MET3TXT port
- variants *
layer rm3 MET3
and MET3RES,MET3SHORT
@@ -3685,11 +3627,7 @@
and-not MET4RES,MET4SHORT
labels MET4
labels MET4PIN port
- variants (),(vendor)
labels MET4TXT text
- variants (legacy)
- labels MET4TXT port
- variants *
layer rm4 MET4
and MET4RES,MET4SHORT
@@ -3702,11 +3640,7 @@
and-not MET5RES,MET5SHORT
labels MET5
labels MET5PIN port
- variants (),(vendor)
labels MET5TXT text
- variants (legacy)
- labels MET5TXT port
- variants *
layer rm5 MET5
and MET5RES,MET5SHORT
@@ -3733,11 +3667,7 @@
layer metrdl RDL,RDLTXT,RDLPIN
labels RDL
labels RDLPIN port
- variants (),(vendor)
labels RDLTXT text
- variants (legacy)
- labels RDLTXT port
- variants *
#endif
# Find diffusion not covered in
@@ -3949,11 +3879,7 @@
layer glass GLASS,PADTXT,PADPIN
labels GLASS
labels PADPIN port
- variants (),(vendor)
labels PADTXT text
- variants (legacy)
- labels PADTXT port
- variants *
templayer boundary BOUND,STDCELL,PADCELL
boundary
@@ -4094,22 +4020,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
@@ -4140,21 +4066,21 @@
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 RDLTXT 74 16
+ calma RDLPIN 74 16
#endif
calma BOUND 235 4