Initial commit of public repository open_pdks.
diff --git a/sky130/sky130gds.tech b/sky130/sky130gds.tech
new file mode 100644
index 0000000..8beebdc
--- /dev/null
+++ b/sky130/sky130gds.tech
@@ -0,0 +1,689 @@
+tech
+    format 32
+    TECHNAME-GDS
+end
+
+version
+    version REVISION
+    description "SkyWater S8: Vendor GDS layers"
+end
+
+planes
+ p1
+ p2
+ p3
+ p4
+ p5
+ p6
+ p7
+ p8
+ p9
+ p10
+ p11
+ p12
+ p13
+ p14
+ p15
+ p16
+ p17
+ p18
+ p19
+ p20
+ p21
+ p22
+ p23
+ p24
+ p25
+ p26
+ p27
+ p28
+ p29
+ p30
+ p31
+ p32
+ p33
+ p34
+ p35
+ p36
+ p37
+ p38
+ p39
+ p40
+ p41
+ p42
+end
+
+types
+ p1  NWELL,l1
+ p1  NWELLT,l60
+ p1  NWELLP,l62
+ p2  DNWELL,l2
+ p3  DIFF,l3
+ p3  TAP,l4
+ p4  LVTN,l5
+ p4  HVTP,l6
+ p5  HVI,l7
+ p6  TUNM,l8
+ p7  POLY,l9
+ p7  POLYP,l63
+ p7  POLYT,l70
+ p8  NPC,l10
+ p9  PSDM,l11
+ p9  NSDM,l12
+ p10 LICON1,l13
+ p11 LI1,l14
+ p11 LI1T,l15
+ p11 LI1P,l16
+ p12 MCON,l17
+ p12 MET1,l18
+ p12 MET1T,l19
+ p12 MET1P,l20
+ p13 VIA1,l21
+ p13 MET2,l22
+ p13 MET2T,l23
+ p13 MET2P,l24
+ p14 VIA2,l25
+ p14 MET3,l26
+ p14 MET3T,l27
+ p14 MET3P,l28
+ p15 VIA3,l29
+ p15 MET4,l30
+ p15 MET4T,l31
+ p15 MET4P,l32
+ p16 VIA4,l33
+ p16 MET5,l34
+ p16 MET5T,l35
+ p16 MET5P,l36
+ p17 PAD,l37
+ p17 PADT,l38
+ p17 PADP,l39
+ p18 AREAID,l40
+ p19 TEXT,l41
+ p20 HVTR,l42
+ p21 NCM,l43
+ p22 RPM,l44
+ p23 NSM,l45
+ p24 RDL,l46
+ p25 VHVI,l47
+ p26 LDNTM,l48
+ p26 HVNTM,l49
+ p27 PMM,l50
+ p28 PNP,l51
+ p29 CAP,l52
+ p30 IND,l53
+ p31 PWRES,l54
+ p32 POLYRES,l55
+ p33 DIFFRES,l56
+ p34 DIODE,l57
+ p35 POLYM,l58
+ p36 COREID,l59
+ p37 PWELLT,l61
+ p37 PWELLP,l64
+ p38 CFOMDROP,l65
+ p39 CLI1MADD,l66
+ p40 CNTMADD,l67
+ p41 CP1MADD,l68
+ p42 BOUND,l69
+end
+
+contact
+end
+
+styles
+    styletype	mos
+ l1   nwell
+ l2   cwell
+ l3   ndiffusion
+ l4   pdiffusion
+ l5   implant1
+ l6   implant2
+ l7   implant3
+ l8   subcircuit
+ l9    polysilicon
+ l10   implant4
+ l11   pdop_stripes
+ l12   ndop_stripes
+ l13   obsmetal1 contact_X'es
+ l14   metal1
+ l15   metal1
+ l16   metal1
+ l17   metal1 metal2 via1
+ l18   metal2
+ l19   metal2
+ l20   metal2
+ l21   metal2 metal3 via2
+ l22   metal3
+ l23   metal3
+ l24   metal3
+ l25   metal3 metal4 via3
+ l26   metal4
+ l27   metal4
+ l28   metal4
+ l29   metal4 metal5 via4
+ l30   metal5
+ l31   metal5
+ l32   metal5
+ l33   metal5 metal6 via5
+ l34   metal6
+ l35   metal6
+ l36   metal6
+ l37   overglass
+ l38   overglass
+ l39   overglass
+ l40   subcircuit
+ l41   comment
+ l42   implant1
+ l43   mim_top
+ l44   mim_bottom
+ l45   ntransistor_stripes
+ l46   metal7
+ l47   electrode
+ l48   nwell_field_implant
+ l49   hvndiff_mask
+ l50   poly_light
+ l51   mvpdiff
+ l52   mvndiff
+ l53   hvpdiff
+ l54   cwellnsc
+ l55   poly_resist poly_resist_stripes
+ l56   ptransistor_stripes
+ l57   hvpdiff_mask
+ l58   poly_resist
+ l59   subcircuit
+ l60   nwell
+ l61   pwell
+ l62   nwell
+ l63   polysilicon
+ l64   pwell
+ l65   implant1
+ l66   implant2
+ l67   implant3
+ l68   implant4
+ l69   subcircuit
+ l70   polysilicon
+end
+
+compose
+   paint  MCON    MET1  MCON
+   paint  VIA1    MET2  VIA1
+   paint  VIA2    MET3  VIA2
+   paint  VIA3    MET4  VIA3
+   paint  VIA4    MET5  VIA4
+end
+
+connect
+end
+
+cifoutput
+style gdsii
+  scalefactor 50 nanometers
+  options calma-permissive-labels
+ layer  NWELL NWELL,NWELLT,NWELLP
+ calma 64 20
+
+ layer NWELLT
+ labels NWELLT noport
+ calma 64 16
+
+ layer NWELLP
+ labels NWELLP port
+ calma 64 5
+
+ layer  DNWELL DNWELL
+ labels DNWELL 
+ calma 64 18
+
+ layer  DIFF DIFF
+ labels DIFF 
+ calma 65 20
+
+ layer  TAP TAP
+ labels TAP 
+ calma 65 44
+
+ layer  POLY POLY,POLYP,POLYT
+ calma 66 20
+
+ layer POLYT
+ labels POLYT noport
+ calma 66 16
+
+ layer POLYP
+ labels POLYP port
+ calma 66 5
+
+ layer  LVTN LVTN
+ labels LVTN 
+ calma 125 44
+
+ layer  HVTP HVTP
+ labels HVTP 
+ calma 78 44
+
+ layer  HVI HVI
+ labels HVI 
+ calma 75 20
+
+ layer  TUNM TUNM
+ labels TUNM 
+ calma 80 20
+
+ layer  NPC NPC
+ labels NPC 
+ calma 95 20
+
+ layer  PSDM PSDM
+ labels PSDM 
+ calma 94 20
+
+ layer  NSDM NSDM
+ labels NSDM 
+ calma 93 44
+
+ layer  LICON1 LICON1
+ labels LICON1 
+ calma 66 44
+
+ # Note: LICON1 not on LI1 plane, may not be coincident with LI1.
+ layer  LI1 LI1,LI1T,LI1P
+ calma 67 20
+
+ layer  LI1T
+ labels LI1T noport
+ calma 67 16
+
+ layer  LI1P
+ labels LI1P port
+ calma 67 5
+
+ layer  MET1 MET1,MET1T,MET1P,MCON
+ calma 68 20
+
+ layer  MET1T
+ labels MET1T noport
+ calma 68 16
+
+ layer  MET1P
+ labels MET1P port
+ calma 68 5
+
+ layer  MCON MCON
+ labels MCON 
+ calma 67 44
+
+ layer  MET2 MET2,MET2T,MET2P,VIA1
+ calma 69 20
+
+ layer  MET2T
+ labels MET2T noport
+ calma 69 16
+
+ layer  MET2P
+ labels MET2P port
+ calma 69 5
+
+ layer  VIA1 VIA1
+ labels VIA1 
+ calma 68 44
+
+ layer  MET3 MET3,MET3T,MET3P,VIA2
+ calma 70 20
+
+ layer  MET3T
+ labels MET3T noport
+ calma 70 16
+
+ layer  MET3P
+ labels MET3P port
+ calma 70 5
+
+ layer  VIA2 VIA2
+ labels VIA2 
+ calma 69 44
+
+ layer  MET4 MET4,MET4T,MET4P,VIA3
+ calma 71 20
+
+ layer  MET4T
+ labels MET4T noport
+ calma 71 16
+
+ layer  MET4P
+ labels MET4P port
+ calma 71 5
+
+ layer  VIA3 VIA3
+ labels VIA3 
+ calma 70 44
+
+ layer  MET5 MET5,MET5T,MET5P,VIA4
+ calma 72 20
+
+ layer  MET5T
+ labels MET5T noport
+ calma 72 16
+
+ layer  MET5P
+ labels MET5P port
+ calma 72 5
+
+ layer  VIA4 VIA4
+ labels VIA4 
+ calma 71 44
+
+ layer  PAD PAD,PADT,PADP
+ calma 76 20
+
+ layer  PADT
+ labels PADT noport
+ calma 76 16
+
+ layer  PADP
+ labels PADP port
+ calma 76 5
+
+ layer  AREAID AREAID
+ labels AREAID
+ calma 81 4
+
+ layer  TEXT TEXT
+ labels TEXT
+ calma 83 44
+
+ layer HVTR HVTR
+ labels HVTR
+ calma 18 20
+
+ layer NCM NCM
+ labels NCM
+ calma 92 44
+
+ layer RPM RPM
+ labels RPM
+ calma 86 20
+
+ layer NSM NSM
+ labels NSM
+ calma 61 20
+
+ layer RDL RDL
+ labels RDL
+ calma 74 20
+
+ layer VHVI VHVI
+ labels VHVI
+ calma 74 21
+
+ layer LDNTM LDNTM
+ labels LDNTM
+ calma 11 44
+
+ layer HVNTM HVNTM
+ labels HVNTM
+ calma 125 20
+
+ layer PMM PMM
+ labels PMM
+ calma 85 44
+
+ layer PNP PNP
+ labels PNP
+ calma 82 44
+
+ layer CAP CAP
+ labels CAP
+ calma 82 64
+
+ layer IND IND
+ labels IND
+ calma 82 24
+
+ layer PWRES PWRES
+ labels PWRES
+ calma 64 13
+
+ layer POLYRES POLYRES
+ labels POLYRES
+ calma 66 13
+
+ layer DIFFRES DIFFRES
+ labels DIFFRES
+ calma 65 13
+
+ layer DIODE DIODE
+ labels DIODE
+ calma 81 23
+
+ layer POLYM POLYM
+ labels POLYM
+ calma 66 83
+
+ layer COREID COREID
+ labels COREID
+ calma 81 2
+
+ layer PWELLT PWELLT
+ labels PWELLT noport
+ calma 122 16
+
+ layer PWELLP PWELLP
+ labels PWELLP port
+ calma 64 59
+
+ layer CFOMDROP CFOMDROP
+ labels CFOMDROP
+ calma 22 22
+
+ layer CLI1MADD CLI1MADD
+ labels CLI1MADD
+ calma 115 43
+
+ layer CNTMADD CNTMADD
+ labels CNTMADD
+ calma 22 21
+
+ layer CP1MADD CP1MADD
+ labels CP1MADD
+ calma 33 43
+
+ layer BOUND BOUND
+ labels BOUND
+ calma 235 4
+end
+
+cifinput
+style ProgName
+  scalefactor 50 nanometers
+ layer l1  NWELL
+ layer l2  DNWELL
+ layer l3  DIFF
+ layer l4  TAP
+ layer l5  LVTN
+ layer l6  HVTP
+ layer l7  HVI
+ layer l8  TUNM
+ layer l9  POLY
+ layer l10 NPC
+ layer l11 PSDM
+ layer l12 NSDM
+ layer l13 LICON1
+ layer l14 LI1
+ layer l15 LI1T
+ layer l16 LI1P
+ layer l17 MCON
+ layer l18 MET1
+ layer l19 MET1T
+ layer l20 MET1P
+ layer l21 VIA1
+ layer l22 MET2
+ layer l23 MET2T
+ layer l24 MET2P
+ layer l25 VIA2
+ layer l26 MET3
+ layer l27 MET3T
+ layer l28 MET3P
+ layer l29 VIA3
+ layer l30 MET4
+ layer l31 MET4T
+ layer l32 MET4P
+ layer l33 VIA4
+ layer l34 MET5
+ layer l35 MET5T
+ layer l36 MET5P
+ layer l37 PAD
+ layer l38 PADT
+ layer l39 PADP
+ layer l40 AREAID
+ layer l41 TEXT
+ layer l42 HVTR
+ layer l43 NCM
+ layer l44 RPM
+ layer l45 NSM
+ layer l46 RDL
+ layer l47 VHVI
+ layer l48 LDNTM
+ layer l49 HVNTM
+ layer l50 PMM
+ layer l51 PNP
+ layer l52 CAP
+ layer l53 IND
+ layer l54 PWRES
+ layer l55 POLYRES
+ layer l56 DIFFRES
+ layer l57 DIODE
+ layer l58 POLYM
+ layer l59 COREID
+ layer l60 NWELLT
+ layer l61 PWELLT
+ layer l62 NWELLP
+ layer l63 POLYP
+ layer l64 PWELLP
+ layer l65 CFOMDROP
+ layer l66 CLI1MADD
+ layer l67 CNTMADD
+ layer l68 CP1MADD
+ layer l69 BOUND
+ layer l70 POLYT
+ calma NWELL  64 20
+ calma DNWELL 64 18
+ calma DIFF   65 20
+ calma TAP    65 44
+ calma LVTN  125 44
+ calma HVTP   78 44
+ calma HVI    75 20
+ calma TUNM   80 20
+ calma POLY   66 20
+ calma NPC    95 20
+ calma PSDM   94 20
+ calma NSDM   93 44
+ calma LICON1 66 44
+ calma LI1    67 20
+ calma LI1T   67 16
+ calma LI1P   67 5
+ calma MCON   67 44
+ calma MET1   68 20
+ calma MET1T  68 16
+ calma MET1P  68 5
+ calma VIA1   68 44
+ calma MET2   69 20
+ calma MET2T  69 16
+ calma MET2P  69 5
+ calma VIA2   69 44
+ calma MET3   70 20
+ calma MET3T  70 16
+ calma MET3P  70 5
+ calma VIA3   70 44
+ calma MET4   71 20
+ calma MET4T  71 16
+ calma MET4P  71 5
+ calma VIA4   71 44
+ calma MET5   72 20
+ calma MET5T  72 16
+ calma MET5P  72 5
+ calma PAD    76 20
+ calma PADT   76 16
+ calma PADP   76 5
+ calma AREAID 81 4
+ calma TEXT   83 44
+ calma HVTR   18 20
+ calma NCM    92 44
+ calma RPM    86 20
+ calma NSM    61 20
+ calma RDL    74 20
+ calma VHVI   74 21
+ calma LDNTM  11 44
+ calma HVNTM 125 20
+ calma PMM    85 44
+ calma PNP    82 44
+ calma CAP    82 64
+ calma IND    82 24
+ calma PWRES  64 13
+ calma POLYRES 66 13
+ calma DIFFRES 65 13
+ calma DIODE  81 23
+ calma POLYM  66 83
+ calma COREID 81 2
+ calma NWELLT  64 16
+ calma PWELLT 122 16
+ calma NWELLP  64 5
+ calma POLYP  66 5
+ calma PWELLP 64 59
+ calma CFOMDROP 22 22
+ calma CLI1MADD 115 43
+ calma CNTMADD  22 21
+ calma CP1MADD  33 43
+ calma BOUND  235 4
+ calma POLYT  66 16
+end
+ 
+mzrouter
+end
+
+drc
+end
+
+extract
+style default
+ planeorder p1 0
+ planeorder p2 1
+ planeorder p3 2
+ planeorder p4 3
+ planeorder p5 4
+ planeorder p6 5
+ planeorder p7 6
+ planeorder p8 7
+ planeorder p9 8
+ planeorder p10 9
+ planeorder p11 10
+ planeorder p12 11
+ planeorder p13 12
+ planeorder p14 13
+ planeorder p15 14
+ planeorder p16 15
+ planeorder p17 16
+ planeorder p18 17
+ planeorder p19 18
+ planeorder p20 19
+ planeorder p21 20
+ planeorder p22 21
+ planeorder p23 22
+ planeorder p24 23
+ planeorder p25 24
+ planeorder p26 25
+ planeorder p27 26
+ planeorder p28 27
+ planeorder p29 28
+ planeorder p30 29
+ planeorder p31 30
+ planeorder p32 31
+ planeorder p33 32
+ planeorder p34 33
+ planeorder p35 34
+ planeorder p36 35
+ planeorder p37 36
+ planeorder p38 37
+ planeorder p39 38
+ planeorder p40 39
+ planeorder p41 40
+ planeorder p42 41
+end