Master PDK generator for gf180mcu
---------------------------------

Run "make" to generate all files for each PDK.

This make script takes the source files and generates files for local (efabless)
PDK names "gf180mcuA", "gf180mcuB", etc.

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

These are based on a subset of the 15 supported process variants shown in the
Global Foundries documentation.  See the Makefile for a complete description.

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, general user use (limited DRC, no 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 PDK_ROOT is the name of the PDK;  e.g.,

	    gf180mcuA/	3-metal backend stack
	    gf180mcuB/	4-metal backend stack
	    gf180mcuC/	5-metal backend stack (9K)
	    gf180mcuD/	5-metal backend stack (11K)

(Again, see the Makefile for the complete description.)

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.
		    ngspice/		SPICE models (ngspice compatible)

		libs.ref/		foundry data

		    gf180mcu_fd_pr/	primitive devices w/fixed layout
		    gf180mcu_fd_sc_7t/	Digital standard cells (7 track height)
		    gf180mcu_fd_sc_9t/	Digital standard cells (9 track height)
		    gf180mcu_fd_io/	I/O pad cells
		    gf180mcu_fd_sram/	SRAM macros
		    gf180mcu_fd_nvram/	NVRAM macros

Each subdirectory of libs.ref is further divided into sections based on the
file type.  These sections include one or more of:

		    cdl/		CDL netlists
		    doc/		Foundry documentation
		    gds/		GDS files
		    lef/		LEF macro files
		    lib/		Liberty 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

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

