Git Product home page Git Product logo

sky130_klayout_pdk's Introduction

Skywater 130nm Technology PDK for KLayout

License: Apache 2.0

This package contains the Skywater 130nm PDK for KLayout.

Contents

  • sky130.lyt : technology and connections description
  • sky130.lyp : layers color and shape description
  • sky130.map : layer mapping of def/lef shapes
  • DRC : DRC deck, located at mpw_precheck
  • LVS : LVS script, located at lvs/lvs_sky130.lylvs
  • PCells : devices generators

Usage

Installation

You have two options for using this package:

  1. Clone this repository
  2. Install the complete sky130 PDK from open_pdks either manually or with volare. The PDK also includes this package.

When you start KLayout, you must reference this package. This can be done by setting the environment variable KLAYOUT_HOME. For example, inside this repository:

KLAYOUT_HOME=./sky130_tech klayout -e

PCells

If you would like to use the PCells, you need to install gdsfactory in your system-wide Python package installation. This can be as simple as running the following:

pip install --upgrade gdsfactory

Important

If you are using a Linux distribution that discourages the installation of system-wide Python packages through pip, you need to pass --break-system-packages.

sky130_klayout_pdk's People

Contributors

atorkmabrains avatar donn avatar gatecat avatar hpretl avatar kareefardi avatar martinjankoehler avatar mkkassem avatar mole99 avatar rtimothyedwards avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

sky130_klayout_pdk's Issues

Instance from sky130 pdk not visible in Klayout

Expected Behavior

@atorkmabrains Should be able to instantiate devices from sky130 pdk into klayout

Actual Behavior

Instances from sky130 pdk are not available in klayout when invoked as per steps in this repo.

Steps to Reproduce the Problem

  1. Clone this repo to local.
  2. Invoke klayout as per steps given in this repo.
  3. Issue faced is shown in attached screenshot.

image

Specifications

  • Version: klayout 0.28.5
  • Platform: Ubuntu 22.04.2 LTS

'sub' layer not connected to GND

LVS script wasn't able to connect 'sub' layer to global GND, as this had layer had no polygons in them. Due to this 'ptap_conn' was also unable to connect to GND. This gives rise to LVS being unclean, even when they actually match.

XML error when loading lvs macros

Expected Behavior

lvs macro are being loaded without error.

Actual Behavior

The following error occur on startup when loading lvs macros:

ERROR: Reading /home/proppy/mixed-signal-sky130a-env/share/pdk/sky130A/libs.tech/klayout/lvs/sky130.lylvs: XML parser error: not well-formed (invalid token) in line 31, column 48

This is likely due to character not being escaped in the license text included in the LVS XML, see:

# along with this program. If not, see <https://www.gnu.org/licenses/>.

Failing CI

The CI has been failing on various LVS jobs for over a year now.

Is this expected or is it a regression? And what can we do to fix it?

Error message by klayout as it does not find the `.lyp` file

Expected Behavior

klayout starts w/o error message.

Actual Behavior

When klayout is started with klayout -e -nn $PDKPATH/libs.tech/klayout/tech/$PDK.lyt -l $PDKPATH/libs.tech/klayout/tech/$PDK.lyp example.gds then the following error message is shown:

Warning: Initialization of layers failed: Unable to open file: /headless/.klayout/tech/sky130/sky130.lyp (errno=2)

When looking into the .lyt file, the following can be seen:

<base-path>$(appdata_path)/tech/sky130</base-path>
 <original-base-path>$(appdata_path)/tech/sky130</original-base-path>
 <layer-properties_file>sky130.lyp</layer-properties_file>

Question:

  • Why the reference here to appdata_path? The agreed quasi-standard is to use $PDK_ROOT and $PDK.
  • Why the reference to sky130.lyp and not to sky130A.lyp or sky130B.lyp?

Steps to Reproduce the Problem

Install our Docker (https://github.com/iic-jku/iic-osic-tools) and try it. See also iic-jku/IIC-OSIC-TOOLS#6

Specifications

See Docker VM.

Layers missing in /sky130_tech/tech/sky130/sky130.lyp file

These layers are in the post tapeout Caravel layout. They need to be added to the sky130.lyp file.

layer datatype purpose
23 28 added cfom waffles
28 28 added cp1m waffles
34 28 added cmm3 waffles
36 28 added cmm1 waffles
41 28 added cmm2 waffles
51 28 added cmm4 waffles
56 28 added cli1m waffles
59 28 added cmm5 waffles
79 20 URPM
83 44 text drawing
235 0 open source ram cell core areaid
236 0 boundary

These layers are in the proprietary IP we just received. They also need to be added to the sky130.lyp file
layer datatype purpose
235 252 boundary
235 250 boundary

pymacros module import error: gdsfactory.types is missing

Expected Behavior

sky130_tech/tech/sky130/pymacros/sky130.lym macro to properly load on klayout startup with technology installed.

Actual Behavior

Python module import error:
image

Steps to Reproduce the Problem

  1. Update gdsfactory to a recent version pip install --upgrade gdsfactory
  2. Start klayout, install the sky130 technology
  3. Start again, the import error is reported

Specifications

  • Volare PDK Version: ├── PRE-RELEASE 31f6da2663f392b7472bdba39c1746170d293290 (2024.05.25) (enabled)
  • Platform: MacOS 10.14 and Ubuntu
  • Python: 3.12.3
  • gdsfactory 7.27.0
  • klayout: 0.29.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.