------------------------------------
open_pdks
----------------------------------------
Master PDK generator for SkyWater Sky130
Hybrid 180nm / 130nm foundry process
for open source EDA tools
----------------------------------------

-------------------------------------------------------------------------------
Prerequisites:

1. Foundry source files:

    Obtain sources for the SkyWater sky130 130nm process from the git repository at
    the following location:

	 https://github.com/google/skywater-pdk

    This repository may go in any convenient location.  The 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.

    So cd to the target location parent directory (e.g., "cd ~/projects/foundry")
    and run the following command:

	 git clone https://github.com/google/skywater-pdk

    Note that many of the files in the PDK are too large for a single git
    repository, and so each IP library in the PDK has been placed in a
    submodule.  There are multiple versions of each library, and it is
    nearly certain that you will only want to deal with the "latest" version
    of each.  To make sure you have the submodules for the latest version of
    each supported IP library, do:

	cd skywater-pdk
	git submodule init libraries/sky130_fd_sc_hd/latest
	git submodule init libraries/sky130_fd_sc_hdll/latest
	git submodule init libraries/sky130_fd_sc_hs/latest
	git submodule init libraries/sky130_fd_sc_ms/latest
	git submodule init libraries/sky130_fd_sc_ls/latest
	git submodule init libraries/sky130_fd_sc_lp/latest
	git submodule init libraries/sky130_fd_sc_hvl/latest
	git submodule update

    The liberty (.lib) files are the largest of all and so individual files
    are too large for the git repo and need to be assembled by script.  To
    do that, do:

	make timing

    That installs all of the Google/Skywater files.

    Then follow the instructions below for generating the additional files
    for supporting the open source EDA tool flows.

2. EDA tools:

    For installing files to use with the Magic layout tool, Magic must be installed.
    Obtain Magic from:

	https://github.com/RTimothyEdwards/magic

-------------------------------------------------------------------------------
Installation:

    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.

Step 1:

    Run "configure" to set the paths to the Google/SkyWater source
    repository and to set the path to the install location.  Note that
    the configure script is located in the open_pdks top level directory,
    not in the foundry subdirctory, and must be run from the top level
    directory.  Configure options are as follows:

	--with-sky130-source=/path/to/sky130/source
                          "location of the source files for sky130"
	--with-local-path=/path/to/install/pdks
                          "location where the PDKs will be installed"

    NOTE:  The intention of the configure file is to not have to hand-edit
    the Makefile.  However, the development of the configure script is
    currently ongoing and unfinished, so for now the Makefile should be
    checked and edited after running configure.

Step 2:

    All other steps are run in the sky130/ subdirectory.

    cd to the sky130/ subdirectory and edit the Makefile to set the following
    definitions for your host system:

	EF_STYLE = Select "1" for an efabless-style file structure, "0"
			otherwise. There are some differences in
			these two styles, the most important of which being
			that the order of directories for the IP libraries
			is <file_format>/<library_name> instead of
			<library_name>/<file_format>. Other differences
			include version tracking of the Magic setup files
			and the location of the technology LEF file.

	LINK_TARGETS = "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.  For distribution installations, LINK_TARGETS
			must be set to "none".

	LOCAL_PATH = The path to the target 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 should have been set by the
			option --with-local-path= passed to configure).

	DIST_PATH = The path to the location of the installed files prior to
			distribution.  This will most likely be a git or similar
			repo.

Step 3:
	Run:

	    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.

Step 4:
	For a local install, do:

	    make install-local

	This copies all files from the staging area into the destination
	as specified by the variable LOCAL_PATH in the Makefile.  All
	pointers to absolute paths in the files are changed to match
	LOCAL_PATH.

	For a distribution install, do:

	    make install-dist

	This copies all files from the staging area into the destination
	as specified by the variable DIST_PATH in the Makefile.  All
	pointers to absolute paths in the files are changed to match
	LOCAL_PATH.  The assumption is that DIST_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
	LOCAL_PATH.

-------------------------------------------------------------------------------
Summary:

    The Makefile script takes the source files and generates files for local
    PDK names "SKY130A", "SKY130B", etc.  (Note there is currently only one
    PDK variant "A".)

    The definition of each PDK is made in the Makefile using defines; e.g.,
	-DMETAL5, etc.

    The make script makes use of the python script "preproc.py" (in the ../common
    directory) to parse each source file for "#ifdef ..."-type macros.  The syntax
    is similar to that used by the C preprocessor (cpp) but does not assume C
    language syntax in the input file, so is generally better to use than cpp
    (has less unexpected/unintentional behavior).  See comments in the preproc.py
    script for a full list of macros that it accepts (short list: #ifdef, #ifndef,
    #define, #include, and boolean operators ||, &&, and !). 

    Files generated:
	.tech		techfile for magic (full DRC, extract, GDS)
	-GDS.tech	techfile for magic, vendor mask layers
	.tcl		PDK script for magic
	-BindKeys	key binding script for magic partly matching Cadence defaults
	.magicrc	magic startup script (copy to local directory as .magicrc)
	_setup.tcl	netgen setup script for LVS
	.sh		qflow master setup script, standard 1.8V digital
	.par		graywolf setup file, standard 1.8V digital

    The installation directory below LOCAL_PATH is the name of the PDK;  e.g.,

	    sky130A/		5-metal stack with MiM cap and redistribution layer

    The installation directory hierarchy below the PDK name looks like the following:

		libs.tech/		technology and setup files

		    magic/		magic techfiles, startup file, PDK script,
					and key binding script.
		    netgen/		netgen setup file
		    qflow/		qflow scripts and graywolf setup files.
		    klayout/		setup files for klayout
		    openlane/		setup files for openlane

		libs.ref/		foundry data

		    cdl/		CDL netlists
		    doc/		Foundry documentation
		    gds/		GDS files
		    lef/		LEF macro files
		    lib/		Timing files
		    mag/		Magic files derived from GDS
		    maglef/		Magic files derived from LEF macros
		    spice/		SPICE netlists (ngspice compatible)
		    techlef/		LEF technology files
		    verilog/		verilog modules

    Each subdirectory of libs.ref is further divided into sections based on the
    IP type.  The section names are largely foundry-dependent.  For SkyWater Sky130,
    these sections include one or more of:

			sky130_fd_sc_hd/		1.8V digital logic (high density)
			sky130_fd_sc_hdll/		1.8V digital logic (high density low leakage)
			sky130_fd_sc_hs/		1.8V digital logic (high speed)
			sky130_fd_sc_hvl/		3.3V digital logic
			sky130_fd_sc_lp/		1.8V digital logic (low power)
			sky130_fd_sc_ls/		1.8V digital logic (low speed)
			sky130_fd_sc_ms/		3.3V digital logic (medium speed)

			sky130_fd_io/			Standard I/O

			sky130_fd_pr_base/		Primitive devices w/fixed layout
			sky130_fd_pr_rf/		RF primitive devices w/fixed layout
			sky130_fd_pr_rf2/		Additional RF primitive devices w/fixed layout

    The target installation destinations assume the directory structure above.  Changing
    this requires editing the source files.

