Added IRSIM parameter files to libs.tech/irsim/ as part of the installation.
diff --git a/sky130/irsim/README b/sky130/irsim/README
new file mode 100644
index 0000000..f527873
--- /dev/null
+++ b/sky130/irsim/README
@@ -0,0 +1,61 @@
+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. . .
diff --git a/sky130/irsim/ckt_1v62_125.spi b/sky130/irsim/ckt_1v62_125.spi
new file mode 100644
index 0000000..58d0137
--- /dev/null
+++ b/sky130/irsim/ckt_1v62_125.spi
@@ -0,0 +1,48 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/SW/sky130A/libs.tech/ngspice/sky130.lib.spice tt
+*
+.option TEMP=125
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND sky130_fd_pr__nfet_01v8 L=0.15u W=0.65u
+X1 out1 in1 VDD VDD sky130_fd_pr__pfet_01v8_lvt L=0.15u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND sky130_fd_pr__nfet_01v8 L=0.15u W=0.65u
+X7 out2 out1 VDD VDD sky130_fd_pr__pfet_01v8_lvt L=0.15u W=1.0u
+*
+* out3 - Output of an nfet_01v8 pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND sky130_fd_pr__nfet_01v8 L=0.15u W=0.65u
+*
+* out4 - Output of a pfet_01v8_lvt pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD sky130_fd_pr__pfet_01v8_lvt L=0.15u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.62
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.62 40ns 1.62 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.62)
+Vin3 in3 0 5 pwl (0ns 1.62 0.1ns 0)
+
+.ic V(out4)=1.62
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v62_27.spi b/sky130/irsim/ckt_1v62_27.spi
new file mode 100644
index 0000000..c2b9141
--- /dev/null
+++ b/sky130/irsim/ckt_1v62_27.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=27
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.62
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.62 40ns 1.62 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.62)
+Vin3 in3 0 5 pwl (0ns 1.62 0.1ns 0)
+
+.ic V(out4)=1.62
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v62_n40.spi b/sky130/irsim/ckt_1v62_n40.spi
new file mode 100644
index 0000000..97cb4ac
--- /dev/null
+++ b/sky130/irsim/ckt_1v62_n40.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=-40
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 10f
+C1 out2 GND 10f
+C2 out3 GND 10f
+C3 out4 GND 10f
+
+VDD VDD 0 DC 1.62
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.62 40ns 1.62 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.62)
+Vin3 in3 0 5 pwl (0ns 1.62 0.1ns 0)
+
+.ic V(out4)=1.62
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v62_n5.spi b/sky130/irsim/ckt_1v62_n5.spi
new file mode 100644
index 0000000..7c709f5
--- /dev/null
+++ b/sky130/irsim/ckt_1v62_n5.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=-5
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 10f
+C1 out2 GND 10f
+C2 out3 GND 10f
+C3 out4 GND 10f
+
+VDD VDD 0 DC 1.62
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.62 40ns 1.62 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.62)
+Vin3 in3 0 5 pwl (0ns 1.62 0.1ns 0)
+
+.ic V(out4)=1.62
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v80_125.spi b/sky130/irsim/ckt_1v80_125.spi
new file mode 100644
index 0000000..5b776d0
--- /dev/null
+++ b/sky130/irsim/ckt_1v80_125.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=125
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.8
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.8 40ns 1.8 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.8)
+Vin3 in3 0 5 pwl (0ns 1.8 0.1ns 0)
+
+.ic V(out4)=1.8
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v80_27.spi b/sky130/irsim/ckt_1v80_27.spi
new file mode 100644
index 0000000..547d667
--- /dev/null
+++ b/sky130/irsim/ckt_1v80_27.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=27
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.8
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.8 40ns 1.8 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.8)
+Vin3 in3 0 5 pwl (0ns 1.8 0.1ns 0)
+
+.ic V(out4)=1.8
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v80_n40.spi b/sky130/irsim/ckt_1v80_n40.spi
new file mode 100644
index 0000000..4deccb6
--- /dev/null
+++ b/sky130/irsim/ckt_1v80_n40.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=-40
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.8
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.8 40ns 1.8 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.8)
+Vin3 in3 0 5 pwl (0ns 1.8 0.1ns 0)
+
+.ic V(out4)=1.8
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v80_n5.spi b/sky130/irsim/ckt_1v80_n5.spi
new file mode 100644
index 0000000..6e3982f
--- /dev/null
+++ b/sky130/irsim/ckt_1v80_n5.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=-5
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.8
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.8 40ns 1.8 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.8)
+Vin3 in3 0 5 pwl (0ns 1.8 0.1ns 0)
+
+.ic V(out4)=1.8
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v98_125.spi b/sky130/irsim/ckt_1v98_125.spi
new file mode 100644
index 0000000..3ceed73
--- /dev/null
+++ b/sky130/irsim/ckt_1v98_125.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=125
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.98
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.98 40ns 1.98 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.98)
+Vin3 in3 0 5 pwl (0ns 1.98 0.1ns 0)
+
+.ic V(out4)=1.98
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v98_27.spi b/sky130/irsim/ckt_1v98_27.spi
new file mode 100644
index 0000000..779a48b
--- /dev/null
+++ b/sky130/irsim/ckt_1v98_27.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=27
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.98
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.98 40ns 1.98 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.98)
+Vin3 in3 0 5 pwl (0ns 1.98 0.1ns 0)
+
+.ic V(out4)=1.98
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v98_n40.spi b/sky130/irsim/ckt_1v98_n40.spi
new file mode 100644
index 0000000..2186b28
--- /dev/null
+++ b/sky130/irsim/ckt_1v98_n40.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=-40
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.98
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.98 40ns 1.98 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.98)
+Vin3 in3 0 5 pwl (0ns 1.98 0.1ns 0)
+
+.ic V(out4)=1.98
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/ckt_1v98_n5.spi b/sky130/irsim/ckt_1v98_n5.spi
new file mode 100644
index 0000000..ced2f12
--- /dev/null
+++ b/sky130/irsim/ckt_1v98_n5.spi
@@ -0,0 +1,49 @@
+*
+* spice test file for generating .prm files.
+*
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s
+.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm
+*
+.option TEMP=-5
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND ne L=0.18u W=0.8u
+X1 out1 in1 VDD VDD pe L=0.18u W=1.0u
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND ne L=0.18u W=0.8u
+X7 out2 out1 VDD VDD pe L=0.18u W=1.0u
+*
+* out3 - Output of a ne pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND ne L=0.18u W=0.8u
+*
+* out4 - Output of a pe pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD pe L=0.18u W=1.0u
+*
+* loading capacitors
+*
+C0 out1 GND 50f
+C1 out2 GND 50f
+C2 out3 GND 50f
+C3 out4 GND 50f
+
+VDD VDD 0 DC 1.98
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC 0.9
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.98 40ns 1.98 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.98)
+Vin3 in3 0 5 pwl (0ns 1.98 0.1ns 0)
+
+.ic V(out4)=1.98
+
+.tran 0.01ns 80ns
+
+.save all
+
+.end
diff --git a/sky130/irsim/config.txt b/sky130/irsim/config.txt
new file mode 100644
index 0000000..4fd6813
--- /dev/null
+++ b/sky130/irsim/config.txt
@@ -0,0 +1,8 @@
+#
+set pwith = 1.0 # width of p-device in um
+set plen = 0.15 # length of p-device in um
+set nwith = 0.65 # width of n-device in um
+set nlen = 0.15 # length of n-device in um
+set cap = 50 # loading capacitance in fF
+
+
diff --git a/sky130/irsim/findr b/sky130/irsim/findr
new file mode 100755
index 0000000..08b2b15
--- /dev/null
+++ b/sky130/irsim/findr
Binary files differ
diff --git a/sky130/irsim/getres b/sky130/irsim/getres
new file mode 100755
index 0000000..113ebec
--- /dev/null
+++ b/sky130/irsim/getres
@@ -0,0 +1,60 @@
+#! /bin/csh
+
+set spice = /usr/local/bin/ngspice
+
+if( $#argv != 3 ) then
+ echo "usage: getres nmodel_file pmodel_file dev_file"
+ exit 1
+endif
+
+if( ! -f $1 ) then
+ echo "can't open spice nfet model file '"$1"'"
+ exit 1
+endif
+
+if( ! -f $2 ) then
+ echo "can't open spice pfet model file '"$2"'"
+ exit 1
+endif
+
+if( -f $argv[3] ) then
+ source $argv[3]
+else
+ echo "can't open device configuration file '"$argv[3]"'"
+ exit 1
+endif
+
+set nmos = `grep -i "\.MODEL" $1 | grep -i NMOS`
+set pmos = `grep -i "\.MODEL" $1 | grep -i PMOS`
+
+if( $#nmos == 0 ) then
+ echo "can't find nmos .MODEL card in '"$1"'"
+ exit 1
+endif
+if( $#pmos == 0 ) then
+ echo "can't find pmos .MODEL card in '"$1"'"
+ exit 1
+endif
+
+cat $1 ckt.spi > tmp.spi
+
+ed - <<end tmp.spi >& /dev/null
+g/N_FET/s/N_FET/$nmos[2]/g
+g/P_FET/s/P_FET/$pmos[2]/g
+g/C_LOAD/s/C_LOAD/$cap/g
+g/N_WITH/s/N_WITH/$nwith/g
+g/N_LEN/s/N_LEN/$nlen/g
+g/P_WITH/s/P_WITH/$pwith/g
+g/P_LEN/s/P_LEN/$plen/g
+w
+q
+end
+
+$spice -n -b -r spi.out tmp.spi
+
+if( $status != 0 ) then
+ echo "something went wrong with spice, look at 'tmp.spi'"
+ exit 1
+endif
+
+./findr -c $cap -n $nwith,$nlen -p $pwith,$plen spi.out |& tee resists
diff --git a/sky130/irsim/header.txt b/sky130/irsim/header.txt
new file mode 100644
index 0000000..03e1494
--- /dev/null
+++ b/sky130/irsim/header.txt
@@ -0,0 +1,21 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
diff --git a/sky130/irsim/resists b/sky130/irsim/resists
new file mode 100644
index 0000000..c6111ce
--- /dev/null
+++ b/sky130/irsim/resists
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 1512.0
+resistance n-channel dynamic-low 0.8 0.2 865.0
+resistance n-channel static 0.8 0.2 1.0
+
+resistance p-channel dynamic-high 1.0 0.2 2493.0
+resistance p-channel dynamic-low 1.0 0.2 4062.0
+resistance p-channel static 1.0 0.2 597.0
diff --git a/sky130/irsim/run_all.sh b/sky130/irsim/run_all.sh
new file mode 100755
index 0000000..5bb7bb1
--- /dev/null
+++ b/sky130/irsim/run_all.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+# -40C vdd=1.62V
+/usr/local/bin/ngspice -b -r spi_1v62_n40.out ckt_1v62_n40.spi
+./findr -c 10 -n 0.8,0.18 -p 1.0,0.18 spi_1v62_n40.out |& tee sky130_1v62_n40.prm
+
+# -40C vdd=1.80V
+/usr/local/bin/ngspice -b -r spi_1v80_n40.out ckt_1v80_n40.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v80_n40.out |& tee sky130_1v80_n40.prm
+
+# -40C vdd=1.98V
+/usr/local/bin/ngspice -b -r spi_1v98_n40.out ckt_1v98_n40.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v98_n40.out |& tee sky130_1v98_n40.prm
+
+# -5C vdd=1.62V
+/usr/local/bin/ngspice -b -r spi_1v62_n5.out ckt_1v62_n5.spi
+./findr -c 10 -n 0.8,0.18 -p 1.0,0.18 spi_1v62_n5.out |& tee sky130_1v62_n5.prm
+
+# -5C vdd=1.80V
+/usr/local/bin/ngspice -b -r spi_1v80_n5.out ckt_1v80_n5.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v80_n5.out |& tee sky130_1v80_n5.prm
+
+# -5C vdd=1.98V
+/usr/local/bin/ngspice -b -r spi_1v98_n5.out ckt_1v98_n5.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v98_n5.out |& tee sky130_1v98_n5.prm
+
+# 27C vdd=1.62V
+/usr/local/bin/ngspice -b -r spi_1v62_27.out ckt_1v62_27.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v62_27.out |& tee sky130_1v62_27.prm
+
+# 27C vdd=1.8V
+/usr/local/bin/ngspice -b -r spi_1v80_27.out ckt_1v80_27.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v80_27.out |& tee sky130_1v80_27.prm
+
+# 27C vdd=1.98V
+/usr/local/bin/ngspice -b -r spi_1v98_27.out ckt_1v98_27.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v98_27.out |& tee sky130_1v98_27.prm
+
+# 125C vdd=1.62V
+/usr/local/bin/ngspice -b -r spi_1v62_125.out ckt_1v62_125.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v62_125.out |& tee sky130_1v62_125.prm
+
+# 125C vdd=1.8V
+/usr/local/bin/ngspice -b -r spi_1v80_125.out ckt_1v80_125.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v80_125.out |& tee sky130_1v80_125.prm
+
+# 125C vdd=1.98V
+/usr/local/bin/ngspice -b -r spi_1v98_125.out ckt_1v98_125.spi
+./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v98_125.out |& tee sky130_1v98_125.prm
+
diff --git a/sky130/irsim/sky130A_1v62_27.prm b/sky130/irsim/sky130A_1v62_27.prm
new file mode 100644
index 0000000..c2907a5
--- /dev/null
+++ b/sky130/irsim/sky130A_1v62_27.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 40227.0
+resistance n-channel dynamic-low 0.8 0.2 3549.0
+resistance n-channel static 0.8 0.2 4518.0
+
+resistance p-channel dynamic-high 1.0 0.2 8694.0
+resistance p-channel dynamic-low 1.0 0.2 662526.0
+resistance p-channel static 1.0 0.2 5762.0
diff --git a/sky130/irsim/sky130A_1v62_n40.prm b/sky130/irsim/sky130A_1v62_n40.prm
new file mode 100644
index 0000000..6fe1485
--- /dev/null
+++ b/sky130/irsim/sky130A_1v62_n40.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 108132.0
+resistance n-channel dynamic-low 0.8 0.2 6704.0
+resistance n-channel static 0.8 0.2 2838.0
+
+resistance p-channel dynamic-high 1.0 0.2 14294.0
+resistance p-channel dynamic-low 1.0 0.2 5584975.0
+resistance p-channel static 1.0 0.2 -8337.0
diff --git a/sky130/irsim/sky130A_1v62_n5.prm b/sky130/irsim/sky130A_1v62_n5.prm
new file mode 100644
index 0000000..90cd9bc
--- /dev/null
+++ b/sky130/irsim/sky130A_1v62_n5.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 65335.0
+resistance n-channel dynamic-low 0.8 0.2 6857.0
+resistance n-channel static 0.8 0.2 2987.0
+
+resistance p-channel dynamic-high 1.0 0.2 14543.0
+resistance p-channel dynamic-low 1.0 0.2 1684744.0
+resistance p-channel static 1.0 0.2 -7823.0
diff --git a/sky130/irsim/sky130A_1v80_125.prm b/sky130/irsim/sky130A_1v80_125.prm
new file mode 100644
index 0000000..4462782
--- /dev/null
+++ b/sky130/irsim/sky130A_1v80_125.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 14005.0
+resistance n-channel dynamic-low 0.8 0.2 3516.0
+resistance n-channel static 0.8 0.2 3719.0
+
+resistance p-channel dynamic-high 1.0 0.2 7852.0
+resistance p-channel dynamic-low 1.0 0.2 73111.0
+resistance p-channel static 1.0 0.2 5295.0
diff --git a/sky130/irsim/sky130A_1v80_27.prm b/sky130/irsim/sky130A_1v80_27.prm
new file mode 100644
index 0000000..0505c58
--- /dev/null
+++ b/sky130/irsim/sky130A_1v80_27.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 18174.0
+resistance n-channel dynamic-low 0.8 0.2 3195.0
+resistance n-channel static 0.8 0.2 3335.0
+
+resistance p-channel dynamic-high 1.0 0.2 7482.0
+resistance p-channel dynamic-low 1.0 0.2 204714.0
+resistance p-channel static 1.0 0.2 4204.0
diff --git a/sky130/irsim/sky130A_1v80_n40.prm b/sky130/irsim/sky130A_1v80_n40.prm
new file mode 100644
index 0000000..0d67be8
--- /dev/null
+++ b/sky130/irsim/sky130A_1v80_n40.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 27589.0
+resistance n-channel dynamic-low 0.8 0.2 3019.0
+resistance n-channel static 0.8 0.2 3101.0
+
+resistance p-channel dynamic-high 1.0 0.2 7192.0
+resistance p-channel dynamic-low 1.0 0.2 913408.0
+resistance p-channel static 1.0 0.2 3520.0
diff --git a/sky130/irsim/sky130A_1v80_n5.prm b/sky130/irsim/sky130A_1v80_n5.prm
new file mode 100644
index 0000000..0260997
--- /dev/null
+++ b/sky130/irsim/sky130A_1v80_n5.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 21254.0
+resistance n-channel dynamic-low 0.8 0.2 3106.0
+resistance n-channel static 0.8 0.2 3220.0
+
+resistance p-channel dynamic-high 1.0 0.2 7350.0
+resistance p-channel dynamic-low 1.0 0.2 371015.0
+resistance p-channel static 1.0 0.2 3867.0
diff --git a/sky130/irsim/sky130A_1v98_125.prm b/sky130/irsim/sky130A_1v98_125.prm
new file mode 100644
index 0000000..a6992c6
--- /dev/null
+++ b/sky130/irsim/sky130A_1v98_125.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 10002.0
+resistance n-channel dynamic-low 0.8 0.2 3230.0
+resistance n-channel static 0.8 0.2 2957.0
+
+resistance p-channel dynamic-high 1.0 0.2 7027.0
+resistance p-channel dynamic-low 1.0 0.2 44348.0
+resistance p-channel static 1.0 0.2 4191.0
diff --git a/sky130/irsim/sky130A_1v98_27.prm b/sky130/irsim/sky130A_1v98_27.prm
new file mode 100644
index 0000000..635cd07
--- /dev/null
+++ b/sky130/irsim/sky130A_1v98_27.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 10925.0
+resistance n-channel dynamic-low 0.8 0.2 2949.0
+resistance n-channel static 0.8 0.2 2583.0
+
+resistance p-channel dynamic-high 1.0 0.2 6683.0
+resistance p-channel dynamic-low 1.0 0.2 82493.0
+resistance p-channel static 1.0 0.2 3232.0
diff --git a/sky130/irsim/sky130A_1v98_n40.prm b/sky130/irsim/sky130A_1v98_n40.prm
new file mode 100644
index 0000000..3047588
--- /dev/null
+++ b/sky130/irsim/sky130A_1v98_n40.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 12455.0
+resistance n-channel dynamic-low 0.8 0.2 2795.0
+resistance n-channel static 0.8 0.2 2364.0
+
+resistance p-channel dynamic-high 1.0 0.2 6425.0
+resistance p-channel dynamic-low 1.0 0.2 216474.0
+resistance p-channel static 1.0 0.2 2648.0
diff --git a/sky130/irsim/sky130A_1v98_n5.prm b/sky130/irsim/sky130A_1v98_n5.prm
new file mode 100644
index 0000000..b3b05c9
--- /dev/null
+++ b/sky130/irsim/sky130A_1v98_n5.prm
@@ -0,0 +1,28 @@
+;
+; configuration file for sky130 (0.13um process)
+;
+
+lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron)
+
+capga .00832 ; gate capacitance, pF/micron^2
+
+capda 0.0012
+capdp 0.0013
+cappda 0.00260
+cappdp 0.00090
+
+lowthresh 0.5 ; logic low threshold as a normalized voltage
+highthresh 0.5 ; logic high threshold as a normalized voltage
+
+cntpullup 0 ; irrelevant, cmos technology; no depletion transistors
+diffperim 0 ; don't include diffusion perimeters for sidewall cap.
+subparea 0 ; poly over transistor won't count as part pf bulk-poly cap.
+diffext 0 ; diffusion extension for each transistor
+
+resistance n-channel dynamic-high 0.8 0.2 11492.0
+resistance n-channel dynamic-low 0.8 0.2 2872.0
+resistance n-channel static 0.8 0.2 2474.0
+
+resistance p-channel dynamic-high 1.0 0.2 6564.0
+resistance p-channel dynamic-low 1.0 0.2 119412.0
+resistance p-channel static 1.0 0.2 2943.0
diff --git a/sky130/irsim/sky130_1v62_27.prm b/sky130/irsim/sky130_1v62_27.prm
new file mode 100644
index 0000000..111491f
--- /dev/null
+++ b/sky130/irsim/sky130_1v62_27.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 40227.0
+resistance n-channel dynamic-low 0.8 0.2 3549.0
+resistance n-channel static 0.8 0.2 4518.0
+
+resistance p-channel dynamic-high 1.0 0.2 8694.0
+resistance p-channel dynamic-low 1.0 0.2 662526.0
+resistance p-channel static 1.0 0.2 5762.0
diff --git a/sky130/irsim/sky130_1v62_n40.prm b/sky130/irsim/sky130_1v62_n40.prm
new file mode 100644
index 0000000..b9245ff
--- /dev/null
+++ b/sky130/irsim/sky130_1v62_n40.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 108132.0
+resistance n-channel dynamic-low 0.8 0.2 6704.0
+resistance n-channel static 0.8 0.2 2838.0
+
+resistance p-channel dynamic-high 1.0 0.2 14294.0
+resistance p-channel dynamic-low 1.0 0.2 5584975.0
+resistance p-channel static 1.0 0.2 -8337.0
diff --git a/sky130/irsim/sky130_1v62_n5.prm b/sky130/irsim/sky130_1v62_n5.prm
new file mode 100644
index 0000000..904231f
--- /dev/null
+++ b/sky130/irsim/sky130_1v62_n5.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 65335.0
+resistance n-channel dynamic-low 0.8 0.2 6857.0
+resistance n-channel static 0.8 0.2 2987.0
+
+resistance p-channel dynamic-high 1.0 0.2 14543.0
+resistance p-channel dynamic-low 1.0 0.2 1684744.0
+resistance p-channel static 1.0 0.2 -7823.0
diff --git a/sky130/irsim/sky130_1v80_125.prm b/sky130/irsim/sky130_1v80_125.prm
new file mode 100644
index 0000000..b88a3c5
--- /dev/null
+++ b/sky130/irsim/sky130_1v80_125.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 14005.0
+resistance n-channel dynamic-low 0.8 0.2 3516.0
+resistance n-channel static 0.8 0.2 3719.0
+
+resistance p-channel dynamic-high 1.0 0.2 7852.0
+resistance p-channel dynamic-low 1.0 0.2 73111.0
+resistance p-channel static 1.0 0.2 5295.0
diff --git a/sky130/irsim/sky130_1v80_27.prm b/sky130/irsim/sky130_1v80_27.prm
new file mode 100644
index 0000000..5794946
--- /dev/null
+++ b/sky130/irsim/sky130_1v80_27.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 18174.0
+resistance n-channel dynamic-low 0.8 0.2 3195.0
+resistance n-channel static 0.8 0.2 3335.0
+
+resistance p-channel dynamic-high 1.0 0.2 7482.0
+resistance p-channel dynamic-low 1.0 0.2 204714.0
+resistance p-channel static 1.0 0.2 4204.0
diff --git a/sky130/irsim/sky130_1v80_n40.prm b/sky130/irsim/sky130_1v80_n40.prm
new file mode 100644
index 0000000..896a95a
--- /dev/null
+++ b/sky130/irsim/sky130_1v80_n40.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 27589.0
+resistance n-channel dynamic-low 0.8 0.2 3019.0
+resistance n-channel static 0.8 0.2 3101.0
+
+resistance p-channel dynamic-high 1.0 0.2 7192.0
+resistance p-channel dynamic-low 1.0 0.2 913408.0
+resistance p-channel static 1.0 0.2 3520.0
diff --git a/sky130/irsim/sky130_1v80_n5.prm b/sky130/irsim/sky130_1v80_n5.prm
new file mode 100644
index 0000000..5c33f27
--- /dev/null
+++ b/sky130/irsim/sky130_1v80_n5.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 21254.0
+resistance n-channel dynamic-low 0.8 0.2 3106.0
+resistance n-channel static 0.8 0.2 3220.0
+
+resistance p-channel dynamic-high 1.0 0.2 7350.0
+resistance p-channel dynamic-low 1.0 0.2 371015.0
+resistance p-channel static 1.0 0.2 3867.0
diff --git a/sky130/irsim/sky130_1v98_125.prm b/sky130/irsim/sky130_1v98_125.prm
new file mode 100644
index 0000000..f626170
--- /dev/null
+++ b/sky130/irsim/sky130_1v98_125.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 10002.0
+resistance n-channel dynamic-low 0.8 0.2 3230.0
+resistance n-channel static 0.8 0.2 2957.0
+
+resistance p-channel dynamic-high 1.0 0.2 7027.0
+resistance p-channel dynamic-low 1.0 0.2 44348.0
+resistance p-channel static 1.0 0.2 4191.0
diff --git a/sky130/irsim/sky130_1v98_27.prm b/sky130/irsim/sky130_1v98_27.prm
new file mode 100644
index 0000000..dccd563
--- /dev/null
+++ b/sky130/irsim/sky130_1v98_27.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 10925.0
+resistance n-channel dynamic-low 0.8 0.2 2949.0
+resistance n-channel static 0.8 0.2 2583.0
+
+resistance p-channel dynamic-high 1.0 0.2 6683.0
+resistance p-channel dynamic-low 1.0 0.2 82493.0
+resistance p-channel static 1.0 0.2 3232.0
diff --git a/sky130/irsim/sky130_1v98_n40.prm b/sky130/irsim/sky130_1v98_n40.prm
new file mode 100644
index 0000000..dbb0df1
--- /dev/null
+++ b/sky130/irsim/sky130_1v98_n40.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 12455.0
+resistance n-channel dynamic-low 0.8 0.2 2795.0
+resistance n-channel static 0.8 0.2 2364.0
+
+resistance p-channel dynamic-high 1.0 0.2 6425.0
+resistance p-channel dynamic-low 1.0 0.2 216474.0
+resistance p-channel static 1.0 0.2 2648.0
diff --git a/sky130/irsim/sky130_1v98_n5.prm b/sky130/irsim/sky130_1v98_n5.prm
new file mode 100644
index 0000000..368fb9d
--- /dev/null
+++ b/sky130/irsim/sky130_1v98_n5.prm
@@ -0,0 +1,7 @@
+resistance n-channel dynamic-high 0.8 0.2 11492.0
+resistance n-channel dynamic-low 0.8 0.2 2872.0
+resistance n-channel static 0.8 0.2 2474.0
+
+resistance p-channel dynamic-high 1.0 0.2 6564.0
+resistance p-channel dynamic-low 1.0 0.2 119412.0
+resistance p-channel static 1.0 0.2 2943.0