| <?xml version="1.0" encoding="utf-8"?> |
| <technology> |
| <name>sky130A</name> |
| <description>SkyWater 130nm technology</description> |
| <group/> |
| <dbu>0.001</dbu> |
| <base-path>$(appdata_path)/tech/sky130A</base-path> |
| <layer-properties_file>sky130A.lyp</layer-properties_file> |
| <add-other-layers>true</add-other-layers> |
| <reader-options> |
| <gds2> |
| <box-mode>1</box-mode> |
| <allow-big-records>true</allow-big-records> |
| <allow-multi-xy-records>true</allow-multi-xy-records> |
| </gds2> |
| <common> |
| <create-other-layers>true</create-other-layers> |
| <layer-map>layer_map()</layer-map> |
| <enable-properties>true</enable-properties> |
| <enable-text-objects>true</enable-text-objects> |
| </common> |
| <lefdef> |
| <read-all-layers>true</read-all-layers> |
| <layer-map>layer_map('areaid.analog : 81/79';'areaid.core : 81/2';'areaid.critCorner : 81/51';'areaid.critSid : 81/52';'areaid.deadZon : 81/50';'areaid.dieCut : 81/11';'areaid.diode : 81/23';'areaid.esd : 81/19';'areaid.etest : 81/101';'areaid.extendedDrain : 81/57';'areaid.frame : 81/3';'areaid.frameRect : 81/12';'areaid.hvnwell : 81/63';'areaid.injection : 81/17';'areaid.lowTapDensity : 81/14';'areaid.lvNative : 81/60';'areaid.moduleCut : 81/10';'areaid.notCritSide : 81/15';'areaid.opcDrop : 81/54';'areaid.photo : 81/81';'areaid.rdlprobepad : 81/27';'areaid.rfdiode : 81/125';'areaid.seal : 81/1';'areaid.sigPadDiff : 81/6';'areaid.sigPadMetNtr : 81/8';'areaid.sigPadWell : 81/7';'areaid.standardc : 81/4';'areaid.substrateCut : 81/53';'areaid.waffleWindow : 81/13';'blanking.drawing : 124/40';'bump.drawing : 127/22';'capacitor.drawing : 82/64';'cbump.mask : 101/0';'cctm1.drawing : 101/44';'cctm1.mask : 35/0';'cctm1.maskAdd : 101/43';'cctm1.maskDrop : 101/42';'ccu1m.mask : 93/0';'cdnm.drawing : 110/20';'cdnm.mask : 48/0';'cdnm.maskAdd : 110/21';'cdnm.maskDrop : 110/22';'cfom.drawing : 22/20';'cfom.mask : 23/0';'cfom.maskAdd : 22/21';'cfom.maskDrop : 22/22';'cfom.waffleDrop : 22/24';'chvntm.drawing : 38/20';'chvntm.mask : 39/0';'chvntm.maskAdd : 38/21';'chvntm.maskDrop : 38/22';'chvtpm.drawing : 88/44';'chvtpm.mask : 97/0';'chvtpm.maskAdd : 97/43';'chvtpm.maskDrop : 97/42';'chvtrm.drawing : 98/44';'chvtrm.mask : 98/0';'chvtrm.maskAdd : 98/43';'chvtrm.maskDrop : 98/42';'cldntm.drawing : 11/20';'cldntm.mask : 11/0';'cli1m.drawing : 115/44';'cli1m.mask : 56/0';'cli1m.maskAdd : 115/43';'cli1m.maskDrop : 115/42';'clicm1.drawing : 106/44';'clicm1.mask : 43/0';'clicm1.maskAdd : 106/43';'clicm1.maskDrop : 106/42';'clvom.drawing : 45/20';'clvom.mask : 46/0';'clvom.maskAdd : 45/21';'clvom.maskDrop : 45/22';'clvtnm.drawing : 25/44';'clvtnm.mask : 25/0';'clvtnm.maskAdd : 25/43';'clvtnm.maskDrop : 25/42';'cmm1.drawing : 62/20';'cmm1.mask : 36/0';'cmm1.maskAdd : 62/21';'cmm1.maskDrop : 62/22';'cmm1.waffleDrop : 62/24';'cmm2.drawing : 105/44';'cmm2.mask : 41/0';'cmm2.maskAdd : 105/43';'cmm2.maskDrop : 105/42';'cmm2.waffleDrop : 105/52';'cmm3.drawing : 107/20';'cmm3.mask : 34/0';'cmm3.maskAdd : 107/21';'cmm3.maskDrop : 107/22';'cmm3.waffleDrop : 107/24';'cmm4.mask : 51/0';'cmm4.maskAdd : 112/43';'cmm4.maskDrop : 112/42';'cmm4.waffleDrop : 112/4';'cmm5.mask : 59/0';'cmm5.waffleDrop : 117/4';'cncm.drawing : 96/44';'cncm.mask : 17/0';'cnpc.drawing : 44/20';'cnpc.mask : 49/0';'cnpc.maskAdd : 44/43';'cnpc.maskDrop : 44/42';'cnsdm.drawing : 29/20';'cnsdm.mask : 30/0';'cnsdm.maskAdd : 29/21';'cnsdm.maskDrop : 29/22';'cnsm.mask : 22/0';'cntm.drawing : 26/20';'cntm.mask : 27/0';'cntm.maskAdd : 26/21';'cntm.maskDrop : 26/22';'cnwm.drawing : 109/44';'cnwm.mask : 21/0';'cnwm.maskAdd : 109/43';'cnwm.maskDrop : 109/42';'conom.drawing : 87/44';'conom.mask : 88/0';'conom.maskAdd : 87/43';'conom.maskDrop : 87/42';'cp1m.drawing : 33/44';'cp1m.mask : 28/0';'cp1m.maskAdd : 33/43';'cp1m.maskDrop : 33/42';'cp1m.waffleDrop : 33/24';'cpbo.mask : 99/0';'cpdm.drawing : 104/44';'cpdm.mask : 37/0';'cpdm.maskAdd : 104/43';'cpdm.maskDrop : 104/42';'cpmm2.mask : 94/0';'cpmm.drawing : 91/44';'cpsdm.drawing : 31/20';'cpsdm.mask : 32/0';'cpsdm.maskAdd : 31/21';'cpsdm.maskDrop : 31/22';'crpm.drawing : 53/44';'crpm.mask : 96/0';'crpm.maskAdd : 53/43';'crpm.maskDrop : 53/42';'crrpm.mask : 102/0';'ctunm.drawing : 96/20';'ctunm.mask : 20/0';'ctunm.maskAdd : 96/21';'ctunm.maskDrop : 96/22';'cubm.mask : 100/0';'cviam2.drawing : 108/20';'cviam2.mask : 44/0';'cviam2.maskAdd : 108/21';'cviam2.maskDrop : 108/22';'cviam3.drawing : 112/20';'cviam3.mask : 50/0';'cviam3.maskAdd : 112/21';'cviam3.maskDrop : 112/22';'cviam4.drawing : 117/20';'cviam4.mask : 58/0';'cviam4.maskAdd : 117/21';'cviam4.maskDrop : 117/22';'cviam.drawing : 105/20';'cviam.mask : 40/0';'cviam.maskAdd : 105/21';'cviam.maskDrop : 105/22';'diff.boundary : 65/4';'diff.cut : 65/14';'diff.drawing : 65/20';'diff.hv : 65/8';'diff.label : 65/6';'diff.net : 65/23';'diff.pin : 65/16';'diff.res : 65/13';'dnwell.drawing : 64/18';'fom.dummy : 22/23';'hvi.drawing : 75/20';'hvntm.drawing : 125/20';'hvtp.drawing : 78/44';'hvtr.drawing : 18/20';'inductor.drawing : 82/24';'inductor.label : 82/25';'inductor.term1 : 82/26';'inductor.term2 : 82/27';'inductor.term3 : 82/28';'ldntm.drawing : 11/44';'li1.blockage : 67/10';'li1.boundary : 67/4';'li1.cut : 67/14';'li1.drawing : 67/20';'li1.label : 67/5';'li1.net : 67/23';'li1.pin : 67/16';'li1.probe : 67/25';'li1.res : 67/13';'li1.short : 67/15';'licon1.boundary : 66/60';'licon1.drawing : 66/44';'licon1.net : 66/41';'licon1.pin : 66/58';'lvtn.drawing : 125/44';'marker.error : 83/6';'marker.warning : 83/7';'mcon.boundary : 67/60';'mcon.drawing : 67/44';'mcon.blockage : 67/44';'mcon.net : 67/41';'mcon.pin : 67/48';'met1.blockage : 68/10';'met1.boundary : 68/4';'met1.cut : 68/14';'met1.drawing : 68/20';'met1.label : 68/5';'met1.net : 68/23';'met1.option1 : 68/32';'met1.option2 : 68/33';'met1.option3 : 68/34';'met1.option4 : 68/35';'met1.option5 : 68/36';'met1.option6 : 68/37';'met1.option7 : 68/38';'met1.option8 : 68/39';'met1.pin : 68/16';'met1.probe : 68/25';'met1.psa1 : 68/88';'met1.psa2 : 68/89';'met1.psa3 : 68/90';'met1.psa4 : 68/91';'met1.psa5 : 68/92';'met1.psa6 : 68/93';'met1.res : 68/13';'met1.short : 68/15';'met2.blockage : 69/10';'met2.boundary : 69/4';'met2.cut : 69/14';'met2.drawing : 69/20';'met2.label : 69/5';'met2.net : 69/23';'met2.option1 : 69/32';'met2.option2 : 69/33';'met2.option3 : 69/34';'met2.option4 : 69/35';'met2.option5 : 69/36';'met2.option6 : 69/37';'met2.option7 : 69/38';'met2.option8 : 69/39';'met2.pin : 69/16';'met2.probe : 69/25';'met2.psa1 : 69/88';'met2.psa2 : 69/89';'met2.psa3 : 69/90';'met2.psa4 : 69/91';'met2.psa5 : 69/92';'met2.psa6 : 69/93';'met2.res : 69/13';'met2.short : 69/15';'met3.blockage : 70/10';'met3.boundary : 70/4';'met3.cut : 70/14';'met3.drawing : 70/20';'met3.fuse : 70/17';'met3.label : 70/5';'met3.net : 70/23';'met3.option1 : 70/32';'met3.option2 : 70/33';'met3.option3 : 70/34';'met3.option4 : 70/35';'met3.option5 : 70/36';'met3.option6 : 70/37';'met3.option7 : 70/38';'met3.option8 : 70/39';'met3.pin : 70/16';'met3.probe : 70/25';'met3.psa1 : 70/88';'met3.psa2 : 70/89';'met3.psa3 : 70/90';'met3.psa4 : 70/91';'met3.psa5 : 70/92';'met3.psa6 : 70/93';'met3.res : 70/13';'met3.short : 70/15';'met4.blockage : 71/10';'met4.boundary : 71/4';'met4.cut : 71/14';'met4.drawing : 71/20';'met4.fuse : 71/17';'met4.label : 71/5';'met4.net : 71/23';'met4.option1 : 71/32';'met4.option2 : 71/33';'met4.option3 : 71/34';'met4.option4 : 71/35';'met4.option5 : 71/36';'met4.option6 : 71/37';'met4.option7 : 71/38';'met4.option8 : 71/39';'met4.pin : 71/16';'met4.probe : 71/25';'met4.psa1 : 71/88';'met4.psa2 : 71/89';'met4.psa3 : 71/90';'met4.psa4 : 71/91';'met4.psa5 : 71/92';'met4.psa6 : 71/93';'met4.res : 71/13';'met4.short : 71/15';'met5.blockage : 72/10';'met5.boundary : 72/4';'met5.cut : 72/14';'met5.drawing : 72/20';'met5.fuse : 72/17';'met5.label : 72/5';'met5.net : 72/23';'met5.option1 : 72/32';'met5.option2 : 72/33';'met5.option3 : 72/34';'met5.option4 : 72/35';'met5.option5 : 72/36';'met5.option6 : 72/37';'met5.option7 : 72/38';'met5.option8 : 72/39';'met5.pin : 72/16';'met5.probe : 72/25';'met5.psa1 : 72/88';'met5.psa2 : 72/89';'met5.psa3 : 72/90';'met5.psa4 : 72/91';'met5.psa5 : 72/92';'met5.psa6 : 72/93';'met5.res : 72/13';'met5.short : 72/15';'ncm.drawing : 92/44';'npc.drawing : 95/20';'npn.drawing : 82/20';'npn.label : 82/5';'nsdm.drawing : 93/44';'nsm.drawing : 61/20';'nwell.drawing : 64/20';'nwell.label : 64/5';'nwell.net : 84/23';'nwell.pin : 64/16';'overlap.boundary : 90/4';'overlap.drawing : 90/20';'pad.drawing : 76/20';'pad.label : 76/5';'pad.pin : 76/16';'padCenter.drawing : 81/20';'pmm2.drawing : 77/20';'pmm.drawing : 85/44';'pnp.drawing : 82/44';'pnp.label : 82/59';'poly.boundary : 66/4';'poly.cut : 66/14';'poly.drawing : 66/20';'poly.gate : 66/9';'poly.label : 66/5';'poly.model : 66/83';'poly.net : 66/23';'poly.pin : 66/16';'poly.probe : 66/25';'poly.res : 66/13';'poly.short : 66/15';'prBoundary.boundary : 235/4';'prBoundary.drawing : 235/0';'prune.drawing : 84/44';'psdm.drawing : 94/20';'pwell.cut : 64/14';'pwell.drawing : 64/44';'pwell.label : 64/59';'pwell.pin : 122/16';'pwell.res : 64/13';'pwelliso.label : 44/5';'pwelliso.pin : 44/16';'rdl.cut : 74/14';'rdl.drawing : 74/20';'rdl.label : 74/5';'rdl.option1 : 89/32';'rdl.option2 : 89/33';'rdl.option3 : 89/34';'rdl.option4 : 89/35';'rdl.option5 : 89/36';'rdl.option6 : 89/37';'rdl.option7 : 89/38';'rdl.option8 : 89/39';'rdl.pin : 74/16';'rdl.psa1 : 74/88';'rdl.psa2 : 74/89';'rdl.psa3 : 74/90';'rdl.psa4 : 74/91';'rdl.psa5 : 74/92';'rdl.psa6 : 74/93';'rdl.res : 74/13';'rdl.short : 74/15';'rpm.drawing : 86/20';'rrpm.drawing : 102/20';'tap.boundary : 65/60';'tap.drawing : 65/44';'tap.label : 65/5';'tap.net : 65/41';'tap.pin : 65/48';'target.drawing : 76/44';'text.drawing : 83/44';'tunm.drawing : 80/20';'ubm.drawing : 127/21';'vhvi.drawing : 74/21';'via2.boundary : 69/60';'via2.drawing : 69/44';'via2.net : 69/41';'via2.pin : 69/58';'via3.boundary : 70/60';'via3.drawing : 70/44';'via3.net : 70/41';'via3.pin : 70/48';'via4.boundary : 71/60';'via4.drawing : 71/44';'via4.net : 71/41';'via4.pin : 71/48';'via.boundary : 68/60';'via.drawing : 68/44';'via.net : 68/41';'via.pin : 68/58')</layer-map> |
| <dbu>0.001</dbu> |
| <produce-net-names>true</produce-net-names> |
| <net-property-name>#1</net-property-name> |
| <produce-inst-names>true</produce-inst-names> |
| <inst-property-name>#1</inst-property-name> |
| <produce-pin-names>false</produce-pin-names> |
| <pin-property-name>#1</pin-property-name> |
| <produce-cell-outlines>true</produce-cell-outlines> |
| <cell-outline-layer>prBoundary.boundary</cell-outline-layer> |
| <produce-placement-blockages>true</produce-placement-blockages> |
| <placement-blockage-layer>PLACEMENT_BLK</placement-blockage-layer> |
| <produce-regions>true</produce-regions> |
| <region-layer>REGIONS</region-layer> |
| <produce-via-geometry>true</produce-via-geometry> |
| <special-via_geometry-suffix-string>.drawing</special-via_geometry-suffix-string> |
| <special-via_geometry-datatype-string>44</special-via_geometry-datatype-string> |
| <produce-pins>true</produce-pins> |
| <special-pins-suffix-string>.pin</special-pins-suffix-string> |
| <special-pins-datatype-string>16</special-pins-datatype-string> |
| <produce-lef-pins>true</produce-lef-pins> |
| <special-lef_pins-suffix-string>.pin</special-lef_pins-suffix-string> |
| <special-lef_pins-datatype-string>16</special-lef_pins-datatype-string> |
| <produce-fills>false</produce-fills> |
| <special-fills-suffix-string>.FILL</special-fills-suffix-string> |
| <special-fills-datatype-string>5</special-fills-datatype-string> |
| <produce-obstructions>false</produce-obstructions> |
| <obstructions-suffix>.blockage</obstructions-suffix> |
| <obstructions-datatype>10</obstructions-datatype> |
| <produce-blockages>true</produce-blockages> |
| <blockages-suffix>.blockage</blockages-suffix> |
| <blockages-datatype>10</blockages-datatype> |
| <produce-labels>true</produce-labels> |
| <labels-suffix>.label</labels-suffix> |
| <labels-datatype>5</labels-datatype> |
| <produce-lef-labels>true</produce-lef-labels> |
| <lef-labels-suffix>.label</lef-labels-suffix> |
| <lef-labels-datatype>5</lef-labels-datatype> |
| <produce-routing>true</produce-routing> |
| <special-routing-suffix-string>.drawing</special-routing-suffix-string> |
| <special-routing-datatype-string>20</special-routing-datatype-string> |
| <produce-special-routing>true</produce-special-routing> |
| <routing-suffix-string>.drawing</routing-suffix-string> |
| <routing-datatype-string>20</routing-datatype-string> |
| <via-cellname-prefix>VIA_</via-cellname-prefix> |
| <read-lef-with-def>true</read-lef-with-def> |
| <macro-resolution-mode>default</macro-resolution-mode> |
| <separate-groups>false</separate-groups> |
| <map-file/> |
| </lefdef> |
| <dxf> |
| <dbu>0.001</dbu> |
| <unit>1</unit> |
| <text-scaling>100</text-scaling> |
| <circle-points>100</circle-points> |
| <circle-accuracy>0</circle-accuracy> |
| <contour-accuracy>0</contour-accuracy> |
| <polyline-mode>0</polyline-mode> |
| <render-texts-as-polygons>false</render-texts-as-polygons> |
| <keep-other-cells>false</keep-other-cells> |
| <keep-layer-names>false</keep-layer-names> |
| <create-other-layers>true</create-other-layers> |
| <layer-map>layer_map()</layer-map> |
| </dxf> |
| <cif> |
| <wire-mode>0</wire-mode> |
| <dbu>0.001</dbu> |
| <layer-map>layer_map()</layer-map> |
| <create-other-layers>true</create-other-layers> |
| <keep-layer-names>false</keep-layer-names> |
| </cif> |
| <mag> |
| <lambda>1</lambda> |
| <dbu>0.001</dbu> |
| <layer-map>layer_map()</layer-map> |
| <create-other-layers>true</create-other-layers> |
| <keep-layer-names>false</keep-layer-names> |
| <merge>true</merge> |
| <lib-paths> |
| </lib-paths> |
| </mag> |
| </reader-options> |
| <writer-options> |
| <gds2> |
| <write-timestamps>true</write-timestamps> |
| <write-cell-properties>false</write-cell-properties> |
| <write-file-properties>false</write-file-properties> |
| <no-zero-length-paths>false</no-zero-length-paths> |
| <multi-xy-records>false</multi-xy-records> |
| <resolve-skew-arrays>false</resolve-skew-arrays> |
| <max-vertex-count>8000</max-vertex-count> |
| <max-cellname-length>32000</max-cellname-length> |
| <libname>LIB</libname> |
| </gds2> |
| <oasis> |
| <compression-level>2</compression-level> |
| <write-cblocks>false</write-cblocks> |
| <strict-mode>false</strict-mode> |
| <write-std-properties>1</write-std-properties> |
| <subst-char>*</subst-char> |
| <permissive>false</permissive> |
| </oasis> |
| <cif> |
| <polygon-mode>0</polygon-mode> |
| </cif> |
| <cif> |
| <dummy-calls>false</dummy-calls> |
| <blank-separator>false</blank-separator> |
| </cif> |
| <mag> |
| <lambda>0</lambda> |
| <tech/> |
| <write-timestamp>true</write-timestamp> |
| </mag> |
| </writer-options> |
| <d25> |
| <src># Provide z stack information here |
| # |
| # Each line is one layer. The specification consists of a layer specification, a colon and arguments. |
| # The arguments are named (like "x=...") or in serial. Parameters are separated by comma or blanks. |
| # Named arguments are: |
| # |
| # zstart The lower z position of the extruded layer in µm |
| # zstop The upper z position of the extruded layer in µm |
| # height The height of the extruded layer in µm |
| # |
| # 'height', 'zstart' and 'zstop' can be used in any combination. If no value is given for 'zstart', |
| # the upper level of the previous layer will be used. |
| # |
| # If a single unnamed parameter is given, it corresponds to 'height'. Two parameters correspond to |
| # 'zstart' and 'zstop'. |
| # |
| # Examples: |
| # 1: 0.5 1.5 # extrude layer 1/0 from 0.5 to 1.5 vertically |
| # 1/0: 0.5 1.5 # same with explicit datatype |
| # 1: zstop=1.5, zstart=0.5 # same with named parameters |
| # 1: height=1.0, zstop=1.5 # same with z stop minus height |
| # 1: 1.0 zstop=1.5 # same with height as unnamed parameter |
| # |
| # VARIABLES |
| # |
| # You can declare variables with: |
| # var name = value |
| # |
| # You can use variables inside numeric expressions. |
| # Example: |
| # var hmetal = 0.48 |
| # 7/0: 0.5 0.5+hmetal*2 # 2x thick metal |
| # |
| # You cannot use variables inside layer specifications currently. |
| # |
| # CONDITIONALS |
| # |
| # You can enable or disable branches of the table using 'if', 'else', 'elseif' and 'end': |
| # Example: |
| # var thick_m1 = true |
| # if thickm1 |
| # 1: 0.5 1.5 |
| # else |
| # 1: 0.5 1.2 |
| # end |
| |
| </src> |
| </d25> |
| <connectivity> |
| <connection>li1,67/44,met1</connection> |
| <connection>met1,68/44,met2</connection> |
| <connection>met2,69/44,met3</connection> |
| <connection>met3,70/44,met4</connection> |
| <connection>met4,71/44,met5</connection> |
| <symbols>li1='67/20+67/5+67/16'</symbols> |
| <symbols>met1='68/20+68/5+68/16'</symbols> |
| <symbols>met2='69/20+69/5+69/16'</symbols> |
| <symbols>met3='70/20+70/5+70/16'</symbols> |
| <symbols>met4='71/20+71/5+71/16'</symbols> |
| <symbols>met5='72/20-72/15+72/5+72/16'</symbols> |
| </connectivity> |
| </technology> |