Attempting to get a valid IRSIM .prm file for the sky130 process
Specifically for the sky130_fd_sc_hd library, but should work with all of
them except for sky130_fd_sc_hvl.
------------------------------------------------------------------------
Following directions from the irsim web page. . . 

Get the "getres" script from ~/gitsrc/irsim/lib/calibrate_spice3/
Change "spice" (with path) to "ngspice" (with path)
Added string.h, stdlib.h, and malloc.h to findr.c to make it compile,
and compiled it.  

Get characteristics from SPICE, cell sky130_fd_sc_hd__nand2_1

    P device (sky130_fd_pr__pfet_01v8_lvt): 1.00um wide, 0.15um long
    N device (sky130_fd_pr__nfet_01v8):	    0.65um wide, 0.15um long

    Using 50fF for loading cap (essentially irrelevant)

Writing these values into "config.txt" (but not using).

Copy "ckt.spi" to local directory
Substitute values by hand (obvious)
Use ".lib" to get models  (sky130.lib.spice) with corner "tt"
Convert "M" to "X" on devices.

Changed voltage source on ground to 0.01 ohm resistor because ngspice
doesn't like shorted voltage sources.

Added ".save all".

Spice models are in 

    ~/projects/efabless/tech/SW/sky130A/libs.tech/ngspice/sky130.lib.spice

Note that the raw file reader expects an ASCII raw file, which in ngspice
requires in ".spiceinit":

    set filetype=ascii

Running:

    ngspice -b -r spi.out ckt.spi

Do *not* use "-n" because that suppresses the reading of the .spiceinit file.

Run:

    ./findr -c 100 -n 0.8,0.18 -p 1.0,0.18 spi.out |& tee resists

Had to change "findr.c" to replace "vdd" with "v(vdd)" and the same for all
the vouts.

Success!

Now:  Redo this at all nine corners for low-typ-high voltage and low-typ-high temp.

Add header.  sky130 gate thickness, from sky130_fd_pr__nfet_01v8 model is 4.15E-9 m,
so:
	Cox = Eox / Tox  =  8.854E-12 F/m * 3.9 / 4.15E-9 = 8.32E-3 F/m^2 = pF/um^2

The other cap values need to be looked up and corrected. . . 
