Merge pull request #89 from smunaut/add_layer
docs: Add CSV file with the GDS layer informations and comments
diff --git a/docs/rules/assumptions.rst b/docs/rules/assumptions.rst
index 93ac6be..0e48166 100644
--- a/docs/rules/assumptions.rst
+++ b/docs/rules/assumptions.rst
@@ -8,6 +8,8 @@
:width: 100%
:alt: SkyWater SKY130 Process Stack
+Details about the layers can be found in :ref:`SkyWater GDS Layers Information` page.
+
General
-------
diff --git a/docs/rules/gds_layers.csv b/docs/rules/gds_layers.csv
new file mode 100644
index 0000000..8f8dd14
--- /dev/null
+++ b/docs/rules/gds_layers.csv
@@ -0,0 +1,270 @@
+Layer name,Purpose,GDS layer:datatype,Description
+diff,"drawing, text",65:20,Active (diffusion) area (type opposite of well/substrate underneath)
+tap,drawing,65:44,"Active (diffusion) area (type equal to the well/substrate underneath) (i.e., N+ and P+)"
+nwell,drawing,64:20,N-well region
+dnwell,drawing,64:18,Deep n-well region
+pwbm,drawing,19:44,Regions (in UHVI) blocked from p-well implant (DE MOS devices only)
+pwde,drawing,124:20,Regions to receive p-well drain-extended implants
+hvtr,drawing,18:20,High-Vt RF transistor implant
+hvtp,drawing,78:44,High-Vt LVPMOS implant
+ldntm,drawing,11:44,N-tip implant on SONOS devices
+hvi,drawing,75:20,High voltage (5.0V) thick oxide gate regions
+tunm,drawing,80:20,SONOS device tunnel implant
+lvtn,drawing,125:44,Low-Vt NMOS device
+poly,"drawing, text",66:20,Polysilicon
+hvntm,drawing,125:20,High voltage N-tip implant
+nsdm,drawing,93:44,N+ source/drain implant
+psdm,drawing,94:20,P+ source/drain implant
+rpm,drawing,86:20,300 ohms/square polysilicon resistor implant
+urpm,drawing,79:20,2000 ohms/square polysilicon resistor implant
+npc,drawing,95:20,Nitride poly cut (under licon1 areas)
+licon1,drawing,66:44,Contact to local interconnect
+li1,"drawing, text",67:20,Local interconnect
+mcon,drawing,67:44,Contact from local interconnect to metal1
+met1,"drawing, text",68:20,Metal 1
+via,drawing,68:44,Contact from metal 1 to metal 2
+met2,"drawing, text",69:20,Metal 2
+via2,drawing,69:44,Contact from metal 2 to metal 3
+met3,"drawing, text",70:20,Metal 3
+via3,drawing,70:44,Contact from metal 3 to metal 4
+met4,"drawing, text",71:20,Metal 4
+via4,drawing,71:44,Contact from metal 4 to metal 5
+met5,"drawing, text",72:20,Metal 5
+pad,"drawing, text",76:20,Passivation cut (opening over pads)
+nsm,drawing,61:20,Nitride seal mask
+capm,drawing,89:44,MiM capacitor plate over metal 3
+cap2m,drawing,97:44,MiM capacitor plate over metal 4
+vhvi,drawing,74:21,12V nominal (16V max) node identifier
+uhvi,drawing,74:22,20V nominal node identifier
+npn,drawing,82:20,Base region identifier for NPN devices
+inductor,drawing,82:24,Identifier for inductor regions
+capacitor,drawing,82:64,Identifier for interdigitated (vertical parallel plate (vpp)) capacitors
+pnp,drawing,82:44,Base nwell region identifier for PNP devices
+LVS prune,drawing,84:44,Exemption from LVS check (used in e-test modules only)
+ncm,drawing,92:44,N-core implant
+padCenter,drawing,81:20,Pad center marker
+target,drawing,76:44,Metal fuse target
+,,,
+areaid.sl,identifier,81:1,Seal ring identifier
+areaid.ce,identifier,81:2,Memory (SRAM) core cell identifier
+areaid.fe,identifier,81:3,Pads in padframe identifier
+areaid.sc,identifier,81:4,Standard cell identifier
+areaid.sf,identifier,81:6,Signal pad diffusion identifier (for latchup DRC checks)
+areaid.sl,identifier,81:7,Signal pad well identifier (for latchup DRC checks)
+areaid.sr,identifier,81:8,Signal pad metal (for latchup DRC checks)
+areaid.mt,identifier,81:10,Location of e-test modules within the frame
+areaid.dt,identifier,81:11,Location of dice within the frame
+areaid.ft,identifier,81:12,Boundary of the frame
+areaid.ww,identifier,81:13,Waffle window (used to prevent waffle shifting)
+areaid.ld,identifier,81:14,Low tap density (15um between taps) area. Must be at least 50um from padframe
+areaid.ns,identifier,81:15,Non-critical side. Blocks stress DRC rules
+areaid.ij,identifier,81:17,Identification for areas susceptible to injection
+areaid.zr,identifier,81:18,Zener diode identifier
+areaid.ed,identifier,81:19,ESD device identifier
+areaid.de,identifier,81:23,Diode identifier
+areaid.rd,identifier,81:24,RDL probe pad (not used in this process)
+areaid.dn,identifier,81:50,Dead zone (used in seal ring only for stress DRC)
+areaid.cr,identifier,81:51,Critical corner (used in seal ring only for stress DRC)
+areaid.cd,identifier,81:52,Critical side (used in seal ring only for stress DRC)
+areaid.st,identifier,81:53,Substrate cut. Idendifies areas to be considered as isolated substrate
+areaid.op,identifier,81:54,OPC drop. Block automatic OPC (for fab blocks and lithocal structures)
+areaid.en,identifier,81:57,Extended drain identifier
+areaid.en20,identifier,81:58,20V Extended drain identifier
+areaid.le,identifier,81:60,3.3V native NMOS identifier (absence indicates a 5V native NMOS)
+areaid.hl,identifier,81:63,HV nwell. Identifies nwells with thin oxide devices connected to high voltage
+areaid.sd,identifier,81:70,subcircuit identifier (for LVS extraction)
+areaid.po,identifier,81:81,Photodiode device identifier
+areaid.it,identifier,81:84,IP exempt from DFM rules
+areaid.et,identifier,81:101,e-test module identifier
+areaid.lvt,identifier,81:108,Low-Vt identifier
+areaid.re,identifier,81:125,RF diode identifier
+,,,
+fom,dummy,22:23,
+,,,
+poly,gate,66:9,
+,,,
+poly,model,66:83,(Text type)
+,,,
+poly,resistor,66:13,
+diff,resistor,65:13,
+pwell,resistor,64:13,
+li1,resistor,67:13,
+,,,
+diff,high voltage,65:8,
+,,,
+met4,fuse,71:17,
+,,,
+inductor,terminal1,82:26,
+inductor,terminal2,82:27,
+inductor,terminal3,82:28,
+,,,
+li1,block,67:10,
+met1,block,68:10,
+met2,block,69:10,
+met3,block,70:10,
+met4,block,71:10,
+met5,block,72:10,
+,,,
+prBndry,boundary,235:4,
+diff,boundary,65:4,
+tap,boundary,65:60,
+mcon,boundary,67:60,
+poly,boundary,66:4,
+via,boundary,68:60,
+via2,boundary,69:60,
+via3,boundary,70:60,
+via4,boundary,71:60,
+,,,
+li1,label,67:5,(Text type)
+met1,label,68:5,(Text type)
+met2,label,69:5,(Text type)
+met3,label,70:5,(Text type)
+met4,label,71:5,(Text type)
+met5,label,72:5,(Text type)
+poly,label,66:5,(Text type)
+diff,label,65:6,(Text type)
+pwell,label,64:59,(Text and data type)
+pwelliso,label,44:5,(Text type)
+pad,label,76:5,(Text type)
+tap,label,65:5,
+nwell,label,64:5,
+inductor,label,82:25,
+,,,
+text,label,83:44,(Text type)
+,,,
+li1,net,67:23,(Text type)
+met1,net,68:23,(Text type)
+met2,net,69:23,(Text type)
+met3,net,70:23,(Text type)
+met4,net,71:23,(Text type)
+met5,net,72:23,(Text type)
+poly,net,66:23,(Text type)
+diff,net,65:23,(Text type)
+,,,
+li1,pin,67:16,(Text and data)
+met1,pin,68:16,(Text and data)
+met2,pin,69:16,(Text and data)
+met3,pin,70:16,(Text and data)
+met4,pin,71:16,(Text and data)
+met5,pin,72:16,(Text and data)
+poly,pin,66:16,(Text and data)
+diff,pin,65:16,(Text and data)
+nwell,pin,64:16,(Text type)
+pad,pin,76:16,(Text and data)
+pwell,pin,122:16,(Text and data)
+pwelliso,pin,44:16,(Text and data)
+,,,
+nwell,pin,64:0,(Text type)
+poly,pin,66:0,(Text type)
+li1,pin,67:0,(Text type)
+met1,pin,68:0,(Text type)
+met2,pin,69:0,(Text type)
+met3,pin,70:0,(Text type)
+met4,pin,71:0,(Text type)
+met5,pin,72:0,(Text type)
+pad,pin,76:0,(Text type)
+pwell,pin,122:0,(Text type)
+,,,
+diff,cut,65:14,
+poly,cut,66:14,
+li1,cut,67:14,
+met1,cut,68:14,
+met2,cut,69:14,
+met3,cut,70:14,
+met4,cut,71:14,
+met5,cut,72:14,
+pwell,cut,,
+,,,
+met5,probe,72:25,
+met4,probe,71:25,
+met3,probe,70:25,
+met2,probe,69:25,
+met1,probe,68:25,
+li1,probe,67:25,
+poly,probe,66:25,
+,,,
+poly,short,66:15,
+li1,short,67:15,
+met1,short,68:15,
+met2,short,69:15,
+met3,short,70:15,
+met4,short,71:15,
+met5,short,72:15,
+,,,
+Mask level data,,,
+,,,
+cncm,mask,17:0,N-core implant mask
+crpm,mask,96:0,Resistor Protect mask
+cpdm,mask,37:0,Pad mask
+cnsm,mask,22:0,Nitride seal mask
+cmm5,mask,59:0,Metal 5 mask
+cviam4,mask,58:0,Via 4 mask
+cmm4,mask,51:0,Metal 4 mask
+cviam3,mask,50:0,Via 3 mask
+cmm3,mask,34:0,Metal 3 mask
+cviam2,mask,44:0,Via 2 mask
+cmm2,mask,41:0,Metal 2 mask
+cviam,mask,40:0,Via mask
+cmm1,mask,36:0,Metal 1 mask
+ctm1,mask,35:0,Contact mask
+cli1m,mask,56:0,Local interconnect mask
+clicm1,mask,43:0,Local interconnect contact mask
+cpsdm,mask,32:0,P+ Implant mask
+cnsdm,mask,30:0,N+ Implant mask
+cldntm,mask,11:0,Lightly-doped N-tip implant mask
+cnpc,mask,49:0,Nitride poly cut mask
+chvntm,mask,39:0,High voltage N-tip implant mask
+cntm,mask,27:0,N-tip implant mask
+cp1m,mask,28:0,Poly 1 mask
+clvom,mask,46:0,Low Voltage oxide mask
+conom,mask,88:0,ONO Mask
+ctunm,mask,20:0,Tunnel mask
+chvtrm,mask,98:0,HLow VT PCh Radio mask
+chvtpm,mask,97:0,High Vt Pch mask
+clvtnm,mask,25:0,Low Vt Nch mask
+cnwm,mask,21:0,Nwell mask
+cdnm,mask,48:0,Deep nwell mask
+cfom,mask,23:0,Field oxide mask
+,,,
+cfom,drawing,22:20,
+clvtnm,drawing,25:44,
+chvtpm,drawing,88:44,
+conom,drawing,87:44,
+clvom,drawing,45:20,
+cntm,drawing,26:20,
+chvntm,drawing,38:20,
+cnpc,drawing,44:20,
+cnsdm,drawing,29:20,
+cpsdm,drawing,31:20,
+cli1m,drawing,115:44,
+cviam3,drawing,112:20,
+cviam4,drawing,117:20,
+cncm,drawing,96:44,
+,,,
+cntm,mask add,26:21,
+clvtnm,mask add,25:43,
+chvtpm,mask add,97:43,
+cli1m,mask add,115:43,
+clicm1,mask add,106:43,
+cpsdm,mask add,31:21,
+cnsdm,mask add,29:21,
+cp1m,mask add,33:43,
+cfom,mask add,22:21,
+,,,
+cntm,mask drop,26:22,
+clvtnm,mask drop,25:42,
+chvtpm,mask drop,97:42,
+cli1m,mask drop,115:42,
+clicm1,mask drop,106:42,
+cpsdm,mask drop,31:22,
+cnsdm,mask drop,29:22,
+cp1m,mask drop,33:42,
+cfom,mask drop,22:22,
+,,,
+cmm4,waffle drop,112:4,
+cmm3,waffle drop,107:24,
+cmm2,waffle drop,105:52,
+cmm1,waffle drop,62:24,
+cp1m,waffle drop,33:24,
+cfom,waffle drop,22:24,
+cmm5,waffle drop,117:4,
diff --git a/docs/rules/gds_layers.rst b/docs/rules/gds_layers.rst
new file mode 100644
index 0000000..158b722
--- /dev/null
+++ b/docs/rules/gds_layers.rst
@@ -0,0 +1,10 @@
+SkyWater GDS Layers Information
+===============================
+
+The :download:`gds_layers.csv file <./gds_layers.csv>` provides a raw list of the
+layers used in the process with name, description and the GDS layer and data type.
+
+.. csv-table:: Table - GDS Layers
+ :file: gds_layers.csv
+ :header-rows: 1
+ :widths: 10, 15, 10, 75