Added IRSIM parameter files to libs.tech/irsim/ as part of the installation.
diff --git a/scripts/configure b/scripts/configure
index 9b9bd8d..a199e50 100755
--- a/scripts/configure
+++ b/scripts/configure
@@ -594,6 +594,7 @@
 MAGIC
 QFLOW_DISABLED
 OPENLANE_DISABLED
+IRSIM_DISABLED
 NETGEN_DISABLED
 MAGIC_DISABLED
 KLAYOUT_DISABLED
@@ -658,6 +659,7 @@
 enable_klayout
 enable_magic
 enable_netgen
+enable_irsim
 enable_openlane
 enable_qflow
 enable_osu_lib
@@ -1294,6 +1296,10 @@
                 Enable or disable netgen [default=enabled]
 
 
+  --enable-irsim
+                Enable or disable irsim [default=enabled]
+
+
   --enable-openlane
                 Enable or disable openlane [default=enabled]
 
@@ -1315,6 +1321,8 @@
                           Enable or disable magic [default=enabled]
   --enable-netgen --disable-netgen
                           Enable or disable netgen [default=enabled]
+  --enable-irsim --disable-irsim
+                          Enable or disable irsim [default=enabled]
   --enable-openlane --disable-openlane
                           Enable or disable openlane [default=enabled]
   --enable-qflow --disable-qflow
@@ -2284,8 +2292,8 @@
 # Set variables for tool setups
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Found tools: klayout magic netgen openlane qflow" >&5
-$as_echo "$as_me: Found tools: klayout magic netgen openlane qflow" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Found tools: klayout magic netgen irsim openlane qflow" >&5
+$as_echo "$as_me: Found tools: klayout magic netgen irsim openlane qflow" >&6;}
 
 
 
@@ -2336,6 +2344,21 @@
 
 
 
+        IRSIM_DISABLED=0
+        # Check whether --enable-irsim was given.
+if test "${enable_irsim+set}" = set; then :
+  enableval=$enable_irsim;
+                if test "$enableval" == "no" -o "$enableval" == "NO"; then
+                    IRSIM_DISABLED=1
+                fi
+
+
+fi
+
+
+
+
+
         OPENLANE_DISABLED=0
         # Check whether --enable-openlane was given.
 if test "${enable_openlane+set}" = set; then :
@@ -2689,8 +2712,8 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Tools enabled for PDK setup installation: klayout magic netgen openlane qflow" >&5
-$as_echo "$as_me: Tools enabled for PDK setup installation: klayout magic netgen openlane qflow" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Tools enabled for PDK setup installation: klayout magic netgen irsim openlane qflow" >&5
+$as_echo "$as_me: Tools enabled for PDK setup installation: klayout magic netgen irsim openlane qflow" >&6;}
 
 
 
@@ -2738,6 +2761,20 @@
 
 
 
+        IRSIM_DISABLED=0
+        # Check whether --enable-irsim was given.
+if test "${enable_irsim+set}" = set; then :
+  enableval=$enable_irsim;
+                if test "$enableval" == "no" -o "$enableval" == "NO"; then
+                    IRSIM_DISABLED=1
+                fi
+
+fi
+
+
+
+
+
         OPENLANE_DISABLED=0
         # Check whether --enable-openlane was given.
 if test "${enable_openlane+set}" = set; then :
diff --git a/scripts/tools.txt b/scripts/tools.txt
index c679f92..60e9fe0 100644
--- a/scripts/tools.txt
+++ b/scripts/tools.txt
@@ -1,5 +1,6 @@
 klayout
 magic
 netgen
+irsim
 openlane
-qflow
\ No newline at end of file
+qflow
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index 0ebb5fc..e86e1e9 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -59,6 +59,9 @@
 #	--disable-netgen
 #		Do not install setup files for the netgen LVS tool.
 #
+#	--disable-irsim
+#		Do not install setup files for the IRSIM simulation tool.
+#
 #	--disable-qflow
 #		Do not install setup files for the qflow synthesis flow.
 #
@@ -212,6 +215,7 @@
 
 MAGICTOP = libs.tech/magic
 NETGENTOP = libs.tech/netgen
+IRSIMTOP = libs.tech/irsim
 QFLOWTOP = libs.tech/qflow
 KLAYOUTTOP = libs.tech/klayout
 OPENLANETOP = libs.tech/openlane
@@ -222,20 +226,23 @@
     MAGICPATH = ${MAGICTOP}
 endif
 
-# Currently, netgen, qflow, and klayout do not use revisioning (needs to change!)
+# Currently, netgen, qflow, irsim, and klayout do not use revisioning (needs to change!)
 NETGENPATH = ${NETGENTOP}
+IRSIMPATH = ${IRSIMTOP}
 QFLOWPATH = ${QFLOWTOP}
 KLAYOUTPATH = ${KLAYOUTTOP}
 OPENLANEPATH = ${OPENLANETOP}
 
 MAGICTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${MAGICTOP}
 NETGENTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NETGENTOP}
+IRSIMTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${IRSIMTOP}
 QFLOWTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWTOP}
 KLAYOUTTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTTOP}
 OPENLANETOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANETOP}
 
 MAGIC_STAGING_A = ${STAGING_PATH}/${SKY130A}/${MAGICPATH}
 NETGEN_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NETGENPATH}
+IRSIM_STAGING_A = ${STAGING_PATH}/${SKY130A}/${IRSIMPATH}
 QFLOW_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWPATH}
 KLAYOUT_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTPATH}
 OPENLANE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANEPATH}
@@ -287,6 +294,12 @@
         TOOLS += netgen
 endif
 
+# IRSIM_DISABLED = 0 | 1
+IRSIM_DISABLED = @IRSIM_DISABLED@
+ifneq (${IRSIM_DISABLED}, 1)
+        TOOLS += irsim
+endif
+
 
 all: all-a
 
@@ -376,6 +389,12 @@
 	${CPP} ${SKY130A_DEFS} netgen/${TECH}_setup.tcl > ${NETGEN_STAGING_A}/${SKY130A}_setup.tcl
 	(cd ${NETGEN_STAGING_A} ; ln -s ${SKY130A}_setup.tcl setup.tcl)
 
+irsim-a: irsim/
+	mkdir -p ${IRSIMTOP_STAGING_A}
+	mkdir -p ${IRSIM_STAGING_A}
+	rm -f ${IRSIM_STAGING_A}/${SKY130A}_*.prm
+	cp irsim/${SKY130A}_*.prm ${IRSIM_STAGING_A}/
+
 klayout-a: klayout/${TECH}.lyp klayout/${TECH}.lyt
 	mkdir -p ${KLAYOUTTOP_STAGING_A}
 	mkdir -p ${KLAYOUT_STAGING_A}
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