Initial commit of public repository open_pdks.
diff --git a/sky130/README b/sky130/README
new file mode 100644
index 0000000..00b9851
--- /dev/null
+++ b/sky130/README
@@ -0,0 +1,180 @@
+------------------------------------
+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 CYPRESS_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
+
+ Then follow the instructions below.
+
+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:
+
+ 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 only minor differences in
+ these two styles, namely for 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.
+
+ 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 2:
+ 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 3:
+ 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 (low power)
+ sky130_fd_sc_hvl/ 1.8V digital logic (low speed)
+ sky130_fd_sc_lp/ 1.8V digital logic (medium speed)
+ sky130_fd_sc_ls/ 1.8V digital logic (high speed)
+ sky130_fd_sc_ms/ 3.3V digital logic
+
+ 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.
+