Title: SkyWater SKY130 PROCESS DESIGN KIT (PDK) RELEASE NOTES

Purpose/Scope
=============

The SkyWater SKY130 PDK Release Notes contain information regarding the release of this PDK.
--------------------------------------------------------------------------------------------

What has changed V1.3.0
-----------------------

20v Devices added to library: condiodeHvPsub, n20nativevhviso1, n20vhviso1, and p20vhv1.

Associated changes include:

a. Layers uhvi, pwbm, pwde (drawing); cpwbm, cpwdem (mask); areaid (extDrain20),

and areaid (low_vt) added to layermaps, DRC/LVS decks, etc.

b. DRC/Calibre/s8_drcRules changed to add 20V rules:

Updated rules r_113_X.2 and r_114_X.2

Added rules r_928_uhvi.1, r_929_uhvi.2, r_931_uhvi.3, r_928_uhvi.4, r_928_uhvi.5, r_928_uhvi.6, r_928_pwbm.1, r_929_pwbm.2, r_923_pwbm.3, r_923_pwbm.4, r_924_pwbm.5, r_928_pwde.1, r_929_pwde.2, r_923_pwde.3, r_923_pwde.4, r_923_pwde.5, r_923_pwde.6, r_923_dnwell.3a, r_923_dnwell.3d, r_924_dnwell.3b, r_924_dnwell.3c, r_923_nwell.5a, r_923_nwell.5b, r_924_difftap.26, and r_396_ultv.3.

c. LVS/Calibre/source.cdl has new subckts: condiodeHvPsub, p20vhv1, n20vhviso1,

and n20nativevhviso1.

d. PEX/xRC/extLvsRules_s8_5lm updated to add abovementioned layers and rules for 20V

device extraction.

Sonos model now available through the s8phirs-10r nfet instantiation, CDF callbacks updated.

Spectre models updated, to include Sonos models in design_wrapper.lib, and improve voltage coefficients in 2K poly resistor.

For details on SKY130 PDK usage, please consult the PDK User’s Guide. For details on SKY130 IP libraries, please consult the IP documentation for scs8hs, scs8ls, scs8ms, scs8hd, etc.

Critical Requirements Summary
=============================

This document is divided into several sections, detailed in Section 8. Each subsection is a summary of changes in a SKY130 PDK release.

Operating Procedures and ResPonsibilities
=========================================

Release Notes Overview for this release: V1.3.0
-----------------------------------------------

The SkyWater SKY130 PDK Release Notes contain information regarding the release of this PDK.

What’s changed V1.3.0:

20v Devices added to library: condiodeHvPsub, n20nativevhviso1, n20vhviso1, and p20vhv1.

Associated changes include:

a. Layers uhvi, pwbm, pwde (drawing); cpwbm, cpwdem (mask); areaid (extDrain20), and areaid (low_vt) added to layermaps, DRC/LVS decks, etc.
b. DRC/Calibre/s8_drcRules changed to add 20V rules:

   - Updated rules r_113_X.2 and r_114_X.2
   - Added rules r_928_uhvi.1, r_929_uhvi.2, r_931_uhvi.3, r_928_uhvi.4, r_928_uhvi.5, r_928_uhvi.6, r_928_pwbm.1, r_929_pwbm.2, r_923_pwbm.3, r_923_pwbm.4, r_924_pwbm.5, r_928_pwde.1, r_929_pwde.2, r_923_pwde.3, r_923_pwde.4, r_923_pwde.5, r_923_pwde.6, r_923_dnwell.3a, r_923_dnwell.3d, r_924_dnwell.3b, r_924_dnwell.3c, r_923_nwell.5a, r_923_nwell.5b, r_924_difftap.26, and r_396_ultv.3.

c. LVS/Calibre/source.cdl has new subckts: condiodeHvPsub, p20vhv1, n20vhviso1, and n20nativevhviso1.
d. PEX/xRC/extLvsRules_s8_5lm updated to add abovementioned layers and rules for 20V device extraction.

Sonos model now available through the s8phirs-10r nfet instantiation, CDF callbacks updated.

Spectre models updated, to include Sonos models in design_wrapper.lib, and improve voltage coefficients in 2K poly resistor.

For details on SKY130 PDK usage, please consult the PDK User’s Guide. For details on SKY130 IP libraries, please consult the IP documentation.

V1.3.0 Updates and Known Limitations (2019/09/27)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The V1.3.0 PDK release is an update of the the SkyWater Foundry SKY130 PDK.

**Virtuoso Library**
~~~~~~~~~~~~~~~~~~~~

20V Devices condiodeHvPsub, n20nativevhviso1, n20vhviso1, and p20vhv1 are added in this release.

**Supported Tool Versions**
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Table 1: Supported tool versions for SKY130 PDK V1.3.0

+------------------+--------------+
| **Tool**         | **Version**  |
+------------------+--------------+
| Cadence Spectre  | 18.1.0       |
+------------------+--------------+
| Cadence Virtuoso | ic617.715    |
+------------------+--------------+
| Mentor Calibre   | 2017.2_37.39 |
+------------------+--------------+

The following tools are not supported in the V1.3.0 SKY130 PDK:

-  Synopsys HSPICE
-  Electromigration
-  Reliability / Device aging models

V1.1.0 Updates and Known Limitations (2019/04/12)
-------------------------------------------------

The V1.1.0 PDK release is an update of the V1.0.0 release of the SkyWater Foundry SKY130 PDK. Any updates are documented in this section.

.. _virtuoso-library-1:

**Virtuoso Library**
~~~~~~~~~~~~~~~~~~~~

The use of the hrpoly device (high precision resistor) has been added back. This is the “res3” cell found in the s8phirs_10r library. The PDK tech file has been updated adding an additional mask to generate the RRPM mask. The layoutXL is currently not supported for the HRpoly.

**V1.0.0 Updates and Known Limitations (2018/06/22)**
-----------------------------------------------------

The V1.0.0 PDK is the second alpha release of the SkyWater SKY130 Foundry PDK. This release has been tested on a limited set of test structures and contains known issues. Any known limitations with the PDK are documented in the Release Notes (i.e. this document).

.. _supported-tool-versions-1:

**Supported Tool Versions**
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Table 2: Supported tool versions for SKY130 PDK V1.0.0

+------------------+--------------+
| **Tool**         | **Version**  |
+------------------+--------------+
| Cadence Spectre  | 17.10.160    |
+------------------+--------------+
| Cadence Virtuoso | ic617.715    |
+------------------+--------------+
| Mentor Calibre   | 2017.2_37.39 |
+------------------+--------------+

The following tools are not supported in the V1.0.0 SKY130 PDK:

-  Synopsys HSPICE

-  Electromigration

-  Reliability / Device aging models

**V1.0.0 Bug List**
~~~~~~~~~~~~~~~~~~~

Bugtracking software is used to track tasks related to PDK and IP development. The term “bug” refers to a tracked item, and does not necessarily indicate a problem that is being fixed.

Table 3 lists the bugs that were addressed in this PDK release.

Table 3: Bugs addressed in V1.0.0

+---------+----------------+-----------------------------------------------------------------------+
| **Bug** | **Component**  | **Summary**                                                           |
+---------+----------------+-----------------------------------------------------------------------+
| 903     | Cadence Models | missing resistance parameters for MiM model                           |
+---------+----------------+-----------------------------------------------------------------------+
| 904     | Cadence Models | fix cmimc callbacks                                                   |
+---------+----------------+-----------------------------------------------------------------------+
| 1147    | Cadence Models | FET as/ad/ps/pd/nrs/nrd                                               |
+---------+----------------+-----------------------------------------------------------------------+
| 1233    | Cadence Models | Support xcmvpp_hd5_4x2 vppcap                                         |
+---------+----------------+-----------------------------------------------------------------------+
| 870     | Cadence PDK    | Migrate MiM cap from c9                                               |
+---------+----------------+-----------------------------------------------------------------------+
| 1020    | Cadence PDK    | List of vpp caps for LayoutXL support                                 |
+---------+----------------+-----------------------------------------------------------------------+
| 1144    | Cadence PDK    | Add body contacts to FETs                                             |
+---------+----------------+-----------------------------------------------------------------------+
| 1149    | Cadence PDK    | Fix vppcap capacitance/mfactor form                                   |
+---------+----------------+-----------------------------------------------------------------------+
| 1150    | Cadence PDK    | Fix cap_int3 capacitance/mfactor form                                 |
+---------+----------------+-----------------------------------------------------------------------+
| 1200    | Cadence PDK    | Create libinit.il to initialize PDK                                   |
+---------+----------------+-----------------------------------------------------------------------+
| 1228    | Cadence PDK    | Methodology to call libInit.il without calling BOOT.il multiple times |
+---------+----------------+-----------------------------------------------------------------------+
| 1037    | DRC            | Run PERC decks on digital cell                                        |
+---------+----------------+-----------------------------------------------------------------------+
| 1039    | DRC            | Test softRules                                                        |
+---------+----------------+-----------------------------------------------------------------------+
| 1188    | DRC            | Update latchupRules deck with variable power and ground net names     |
+---------+----------------+-----------------------------------------------------------------------+
| 1240    | LVS            | Create LVS netlist instructions for varactor                          |
+---------+----------------+-----------------------------------------------------------------------+

.. _virtuoso-library-2:

**Virtuoso Library**
~~~~~~~~~~~~~~~~~~~~

The following is a list of known issues with the Cadence Virtuoso Library:

-  nfet and pfet device options include fixed layout RF devices. These are not supported in this release.

-  When initiate LayoutXL, warning VIA-3201 appears. This will be addressed in a future release.

**Models**
~~~~~~~~~~

The following is a list of known issues with the simulation models:

-  The poly resistor (res3) models xrhpoly_\* may cause convergence issues when driven by ideal current sources generating voltage drops greater than 10V. The solution to this is under investigation.

-  For the BJT model parameters, only betadc and vbe have ETD specifications.

-  BJT parasitics re, rb, rc do not move with corners.

-  Resistors do not have mismatch montecarlo.

**Parasitic Extraction**
~~~~~~~~~~~~~~~~~~~~~~~~

The following is a list of known issues with Calibre xRC:

-  Creation of xRC extracted views is not supported in V1.0.0. This will be supported in a future release.

**V.0.1.2 Updates and Known Limitations (2018/05/15)**
------------------------------------------------------

The V0.1.2 PDK release is a hotfix of the second alpha release of the SkyWater Foundry SKY130 PDK. Any updates are documented in this section, and all other items are as in Section 8.5: V.0.1.1 Updates and Known Limitations (2018/05/01) and Section 8.6: V0.1.0 Updates and Known Limitations (2018/04/30).

This interim release addressed a number of items, namely:

-  Updating the DRC rundeck to match sonos and fnpass device dimensions so the s8fmlt top cells pass DRC.

-  Providing a .simrc for condiode netlisting so that s8fmlt passes LVS. This is detailed in the V0.1.2 User’s Guide.

-  Enabling a user to include a custom file in LVS and PEX using the new runsets. There is more information on this in the V0.1.2 User’s Guide.

**V0.1.2 Bug List**
~~~~~~~~~~~~~~~~~~~

Table 4 lists the bugs that were addressed in this PDK release.

Table 4: Bugs addressed in V0.1.2

+---------+---------------+----------------------------------+
| **Bug** | **Component** | **Summary**                      |
+---------+---------------+----------------------------------+
| 1133    | Libraries     | Investigate W/L Issues in s8fmlt |
+---------+---------------+----------------------------------+
| 1181    | Libraries     | LVS for s8fmlt 8k, 16k, 32k      |
+---------+---------------+----------------------------------+

There are no additional limitations in V0.1.2.

**V.0.1.1 Updates and Known Limitations (2018/05/01)**
------------------------------------------------------

The V0.1.1 PDK is a minor update of the SkyWater SKY130 Foundry PDK. This release has been tested on a limited set of test structures and may have issues. Any known limitations with the PDK are documented in the Release Notes (i.e. this document).

.. _supported-tool-versions-2:

**Supported Tool Versions**
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Table 5: Supported tool versions for SKY130 PDK V0.1.1

+------------------+--------------+
| **Tool**         | **Version**  |
+------------------+--------------+
| Cadence Spectre  | 17.10.160    |
+------------------+--------------+
| Cadence Virtuoso | ic617.715    |
+------------------+--------------+
| Mentor Calibre   | 2017.2_37.39 |
+------------------+--------------+

The following tools are not supported in the V0.1.1 SKY130 PDK:

-  Synopsys HSPICE

-  Electromigration

-  Reliability / Device aging models

**V0.1.1 Bug List**
~~~~~~~~~~~~~~~~~~~

Bugtracking software is used to track tasks related to PDK and IP development. The term “bug” refers to a tracked item, and does not necessarily indicate a problem that is being fixed.

Table 6 lists the bugs that were addressed in this PDK release.

Table 6: Bugs addressed in V0.1.1

+---------+---------------+---------------------------------------------------------------------+
| **Bug** | **Component** | **Summary**                                                         |
+---------+---------------+---------------------------------------------------------------------+
| 1154    | LVS           | LVS rundeck updated with LVS SPICE REPLICATE DEVICES YES            |
+---------+---------------+---------------------------------------------------------------------+
| 1133    | DRC           | DRC rundeck updated to include sonos_e, sonos_p, and fnpass devices |
+---------+---------------+---------------------------------------------------------------------+

**CLDRC**
~~~~~~~~~

The CLDRC rundeck will be used only by the Foundry. This issue will no longer be tracked in the PDK Release Notes.

**V0.1.0 Updates and Known Limitations (2018/04/30)**
-----------------------------------------------------

The V0.1.0 PDK is the second alpha release of the SkyWater SKY130 Foundry PDK. This release has been tested on a limited set of test structures and contains known issues. Any known limitations with the PDK are documented in the Release Notes (i.e. this document).

.. _supported-tool-versions-3:

**Supported Tool Versions**
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Table 7: Supported tool versions for SKY130 PDK V0.1.0

+------------------+--------------+
| **Tool**         | **Version**  |
+------------------+--------------+
| Cadence Spectre  | 17.10.160    |
+------------------+--------------+
| Cadence Virtuoso | ic617.715    |
+------------------+--------------+
| Mentor Calibre   | 2017.2_37.39 |
+------------------+--------------+

The following tools are not supported in the V0.1.0 SKY130 PDK:

-  Synopsys HSPICE

-  Electromigration

-  Reliability / Device aging models

**V0.1.0 Bug List**
~~~~~~~~~~~~~~~~~~~

Bugtracking software is used to track tasks related to PDK and IP development. The term “bug” refers to a tracked item, and does not necessarily indicate a problem that is being fixed.

Table 8 lists the bugs that were addressed in this PDK release.

Table 8: Bugs addressed in V0.1.0

+---------+----------------+------------------------------------------------------------------+
| **Bug** | **Component**  | **Summary**                                                      |
+---------+----------------+------------------------------------------------------------------+
| 1145    | Cadence PDK    | Clean up DEregUserTriggers/workarea error messages               |
+---------+----------------+------------------------------------------------------------------+
| 1021    | Cadence PDK    | fet layout pcell: map to fet symbolics, provide missing area IDs |
+---------+----------------+------------------------------------------------------------------+
| 1042    | Cadence PDK    | Input range checking on the resistors                            |
+---------+----------------+------------------------------------------------------------------+
| 1139    | Cadence Models | Remove ELDO models (and correct name from HSPICE)                |
+---------+----------------+------------------------------------------------------------------+
| 970     | Documentation  | Create SKY130 PDK User's Guide                                   |
+---------+----------------+------------------------------------------------------------------+
| 1148    | Documentation  | Document FET sa/sb/sd                                            |
+---------+----------------+------------------------------------------------------------------+
| 1061    | LVS            | SKY130 xRC enablement                                            |
+---------+----------------+------------------------------------------------------------------+
| 1152    | LVS            | Combine Calibre LVS and xRC decks for SKY130                     |
+---------+----------------+------------------------------------------------------------------+

.. _virtuoso-library-3:

**Virtuoso Library**
~~~~~~~~~~~~~~~~~~~~

The following is a list of known issues with the Cadence Virtuoso Library:

-  Layout XL is not supported for capacitors and BJTs. This will be made available in a future release.

-  res3 issues an invalid warning message when toggling between the model options. Fix is under investigation.

-  nfet and pfet device options include fixed layout RF devices. These are not supported in this release.

-  nfet with model nhvnative calculates invalid total width for some permutations. Fix is under investigation.

.. _models-1:

**Models**
~~~~~~~~~~

The following is a list of known issues with the simulation models:

-  The poly resistor (res3) models xrhpoly_\* may cause convergence issues when driven by ideal current sources generating voltage drops greater than 10V. The solution to this is under investigation.

-  For the BJT model parameters, only betadc and vbe have ETD specifications.

-  BJT parasitics re, rb, rc do not move with corners.

**LVS**
~~~~~~~

The following is a list of known issues with LVS:

-  The varactors (capbn_b) are missing sub-circuit definitions in LVS. This is under investigation.

.. _parasitic-extraction-1:

**Parasitic Extraction**
~~~~~~~~~~~~~~~~~~~~~~~~

The following is a list of known issues with Calibre xRC:

-  Creation of xRC extracted views is not supported in V0.1.0. This will be supported in a future release.

.. _cldrc-1:

**CLDRC**
~~~~~~~~~

The Calibre Created Layer DRC deck is not yet available in V0.1.0.

**V0.0.0 Updates and Known Limitations (2018/03/30)**
-----------------------------------------------------

The V0.0.0 PDK is the initial release of the SkyWater SKY130 Foundry PDK. This release has been tested on a limited set of test structures and contains known issues. Any known limitations with the PDK are documented in the Release Notes (i.e. this document).

.. _supported-tool-versions-4:

**Supported Tool Versions**
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Table 9: Supported tool versions for SKY130 PDK V0.0.0

+------------------+--------------+
| **Tool**         | **Version**  |
+------------------+--------------+
| Cadence Spectre  | 17.10.160    |
+------------------+--------------+
| Cadence Virtuoso | ic617.715    |
+------------------+--------------+
| Mentor Calibre   | 2017.2_37.39 |
+------------------+--------------+

The following tools are not supported in the V0.0.0 SKY130 PDK:

-  Synopsys HSPICE

-  Electromigration

-  Reliability / Device aging models

**V0.0.0 Bug List**
~~~~~~~~~~~~~~~~~~~

Bugtracking software is used to track tasks related to PDK and IP development. The term “bug” refers to a tracked item, and does not necessarily indicate a problem that is being fixed.

Table 10 lists the bugs that were addressed in this PDK release.

Table 10: Bugs addressed in V0.0.0

+---------+---------------+---------------------------------------------------------------------------+
| **Bug** | **Component** | **Summary**                                                               |
+---------+---------------+---------------------------------------------------------------------------+
| 905     | Cadence       | Fix callbacks issue with new hierarchy                                    |
+---------+---------------+---------------------------------------------------------------------------+
| 822     | Cadence       | Inspect Virtuoso techfiles, update for IC6                                |
+---------+---------------+---------------------------------------------------------------------------+
| 823     | Cadence       | Inspect tech library: categorize, determine what should be in s8phirs_10r |
+---------+---------------+---------------------------------------------------------------------------+
| 1051    | Cadence       | Fix techfile warnings in LayoutXL                                         |
+---------+---------------+---------------------------------------------------------------------------+
| 969     | Document      | Create SKY130 Release Notes                                               |
+---------+---------------+---------------------------------------------------------------------------+
| 940     | DRC           | Create DRC runset + documentation                                         |
+---------+---------------+---------------------------------------------------------------------------+
| 941     | LVS           | Create LVS runset + documentation                                         |
+---------+---------------+---------------------------------------------------------------------------+
| 1058    | LVS           | Digital cell: complete LVS                                                |
+---------+---------------+---------------------------------------------------------------------------+
| 1061    | LVS           | SKY130 xRC enablement                                                     |
+---------+---------------+---------------------------------------------------------------------------+
| 800     | PDK Build     | Update PDK build scripts to separate PDK and IP                           |
+---------+---------------+---------------------------------------------------------------------------+
| 875     | PDK Qual      | Model qualification: migrate C9 cap testbench                             |
+---------+---------------+---------------------------------------------------------------------------+
| 873     | PDK Qual      | Model qualification: migrate C9 FET testbench                             |
+---------+---------------+---------------------------------------------------------------------------+
| 874     | PDK Qual      | Model qualification: migrate C9 resistor testbench                        |
+---------+---------------+---------------------------------------------------------------------------+
| 1062    | PDK Qual      | SKY130 BJT simulations                                                    |
+---------+---------------+---------------------------------------------------------------------------+

.. _virtuoso-library-4:

Virtuoso Library
~~~~~~~~~~~~~~~~

The following is a list of known issues with the Cadence Virtuoso Library:

-  LayoutXL is not supported for capacitors, FETs, and BJTs. This will be made available in a future release.

-  Inductor and transistor layouts are not available. These will be made available in a future release.

-  res3 issues an invalid warning message when toggling between the model options. Fix is under investigation.

.. _models-2:

**Models**
~~~~~~~~~~

The following is a list of known issues with the simulation models:

-  The poly resistor (res3) models xrhpoly_\* may cause convergence issues when driven by ideal current sources generating large voltage drops. The cause and solution to this are under investigation.

-  For the BJT model parameters, only betadc and vbe have ETD specifications.

-  BJT parasitics re, rb, rc do not move with corners.

.. _parasitic-extraction-2:

**Parasitic Extraction**
~~~~~~~~~~~~~~~~~~~~~~~~

The following is a list of known issues with Calibre xRC:

-  Creation of xRC extracted views is not supported in V0.0.0. This will be supported in a future release.

-  Extraction of MOS parasitics is also not supported in xRC. This will be supported in a future release.

.. _cldrc-2:

**CLDRC**
~~~~~~~~~

The Calibre Created Layer DRC deck is not yet available in V0.0.0.

Quality Requirements
====================

Records
=======

Storage location and retention period for Document Control records is specified in procedure 00-00064 – Record Retention Policy and Procedures
----------------------------------------------------------------------------------------------------------------------------------------------

Document History
----------------

`Document History Query <http://change.SkyWatertechnology.com/changeMgmt-ecn/SQLReportServlet?report=ecn_history>`__

To access the document revision history, CTRL-click (click if PDF document) on the above link to bring up the web query page and enter the spec number in the dialog box and click on submit.

Preventive Maintenance
======================

Posting Sheets/Forms/Appendix
=============================

Appendix A

(This page is not yet in use. Replace this text with your own content. Do **not** delete this page.)

.. |notes0| image:: ./media/image1.jpeg
   :width: 0.19792in
   :height: 0.19792in
