Open PDKs Version 1.0

Installing Open_PDKs version 1.0 for Google/SkyWater

Prerequisites

  1. Google/Skywater Open PDK Distribution
    Open PDKs 1.0 is distributed with installation scripts and files for use with the Google/SkyWater sky130 130nm open PDK. The files for this open PDK are publicly distributed on the site github.com:google/skywater-pdk. The primary prerequisite for Open PDKs is this repository. Clone the repository and follow the instructions for the essential preparation of the PDK, since it requires a build to generate some of the larger files that are too big for the git repository.

    This repository may go in any convenient location. The Open PDKs Makefile suggests the target location ~/projects/foundry/skywater-pdk but any location will do as long as the definition for SKYWATER_PATH in the Makefile is set appropriately.

    Per the README file (open_pdks/sky130/README), the instructions for obtaining the Google/SkyWater open PDK repository files is as follows:

    1. git clone https://github.com/google/skywater-pdk
    2. cd skywater-pdk
    3. git submodule init libraries/sky130_fd_sc_hd/latest
    4. git submodule init libraries/sky130_fd_sc_hdll/latest
    5. git submodule init libraries/sky130_fd_sc_hs/latest
    6. git submodule init libraries/sky130_fd_sc_ms/latest
    7. git submodule init libraries/sky130_fd_sc_ls/latest
    8. git submodule init libraries/sky130_fd_sc_lp/latest
    9. git submodule init libraries/sky130_fd_sc_hvl/latest
    10. git submodule update
    11. make timing
    The purpose of doing the "git submodule init" on individual submodules is to avoid pulling the files for any but the latest version of each digital standard cell library. The open_pdks installation process will use only the latest libraries, so any older library versions are just wasting disk space and compute cycles.
    Note: As of this writing (July 11, 2020), the last two of the libraries (LP and HVL) are not available in the repository, and will generate an error message when doing "git submodule init". The install instructions will be updated when these become available.
  2. EDA Tools
    For installing files to use with the Magic layout tool, Magic must be installed. Obtain Magic from github.com:RTimothyEdwards/magic and follow the compile and install instructions. Note that pre-packaged versions of magic are likely to be out of date, as at least verson 8.3.25 is required.

Installation

After the skywater-pdk files are installed, cd to the top level directory in open_pdks.

There are two methods for installation: Local and Distribution. Use Local installation if you are installing on a single host computer. Use Distribution installation if you are installing into a respository (such as git) that will be distributed to multiple hosts.

  1. Set paths and definitions:
    As of version 1.0.21, open_pdks has an autoconf setup. From the open_pdks top-level directory, run:
    ./configure --with-sky130-source=source_path --with-local-path=local_path [--with-dist-path=dist_path] [--with-link-targets=source|none] [--with-ef-style]
    where:

    source_path
    is the location of the Google/SkyWater repository cloned from github, down to the "libraries" subdirectory.
    local_path
    is the path to the target run-time install directory. This is used in both the local and distribution installations. For a distribution installation, this is the local name of the path to the PDK after it has been distributed to the host computers.
    dist_path
    is the path to the target distribution install directory. Setting this option implies a distribution installation, in which files will be copied into a location such as a git repository from which they will be distributed to different systems.


    The configuration options are as follows:

    --with-sky130-source=path
    This value comes directly from the --with-sky130-source= option in the configuration script. Modify this variable to point to the location of the Google/SkyWater repository cloned from github, down to the "libraries" subdirectory. This option is mandatory.

    --with-ef-style
    Specify this option for an efabless-style file structure. The main difference when using "ef-style" is that the file directory hierarchy is swapped with respect to the IP library and the file format; so ef-style uses, e.g., "gds/sky130_fd_sc_hd/" while the standard style uses "sky130_fd_sc_hd/gds/". Otherwise, there are only minor differences in these two styles, namely for version tracking of the Magic setup files, and the location of the technology LEF file.

    -with-link-targets= source|none
    "none" or "source". "none" copies files from the source directories to the target. "source" makes symbolic links to the source directories. Use "source" only if doing a local install, and the source foundry data will not be deleted. Default value if not specified:: none

    --with-sky130-local-path=path
    This is the path to the target run-time install directory. This is used in both the local and distribution installations. For a distribution installation, this is the local name of the path to the PDK after it has been distributed to the host computers. This option is mandatory.

    --with-sky130-dist-path
    The path to the location of the installed files prior to distribution. This will most likely be a git or similar repo. If this option is not specified, then installation will be local only.
  2. Generate files in staging location:
    Run:
    cd sky130
    make
    This will pre-process the setup files to create the PDK-specific files for the sky130A PDK, and process all vendor files, and place everything in a local staging area.
  3. Migrate files to installation location:
    For a local or distributed install, do:
    make install
    For a local install (--with-sky130-dist-path not specified in "configure"): This copies all files from the staging area into the destination as specified by the "--with-sky130-local-path" option value in "configure". All pointers to absolute paths in the files are changed to match the local path.

    For a distributed install (--with-sky130-dist-path specified in "configure"): This copies all files from the staging area into the destination as specified by the "--with-sky130-dist-path" option value in "configure". All pointers to absolute paths in the files are changed to match the local path as specified by the "--with-sky130-local-path" option value. The assumption is that the distributed path is a repository (such as a git repo) that is cloned to multiple hosts, and the destination on the hosts where it is distributed is the local path.

email:

Last updated: August 5, 2020 at 12:40pm