Created a new set of IRSIM parameter files that correspond to IRSIM
development to support multiple transistor types and multiple
power supply voltages for digital simulation.
diff --git a/sky130/Makefile.in b/sky130/Makefile.in
index cdaf902..0baaf20 100644
--- a/sky130/Makefile.in
+++ b/sky130/Makefile.in
@@ -477,8 +477,8 @@
 OPENLANE_COMMON = config.tcl tracks.info no_synth.cells drc_exclude.cells
 OPENLANE_COMMON += tribuff_map.v latch_map.v mux2_map.v mux4_map.v fa_map.v rca_map.v csa_map.v
 
-# Corners defined in IRSIM parameter files (this should be wild-carded!)
-IRSIM_CORNERS = 1v62_27 1v62_n40 1v62_n5 1v80_125 1v80_27 1v80_n40 1v80_n5 1v98_125 1v98_27 1v98_n40 1v98_n5
+# Corners defined in IRSIM parameter files (wild-carded)
+IRSIM_CORNERS = `ls irsim/*.prm | cut -c14-`
 
 # Where cpp syntax is followed, this is equivalent to cpp, but it does not
 # mangle non-C source files under the belief that they are actually C code.
@@ -901,8 +901,8 @@
 	mkdir -p ${IRSIM_STAGING_$*}
 	rm -f ${IRSIM_STAGING_$*}/${SKY130$*}_*.prm
 	for corner in ${IRSIM_CORNERS} ; do \
-	    cat irsim/header.txt irsim/sky130_$$corner.prm > \
-		${IRSIM_STAGING_$*}/${SKY130$*}_$$corner.prm ; \
+	    cat irsim/header.txt irsim/sky130_$$corner > \
+		${IRSIM_STAGING_$*}/${SKY130$*}_$$corner ; \
 	done
 
 xcircuit-%: xcircuit/${TECH}.xcircuitrc
diff --git a/sky130/irsim/README b/sky130/irsim/README
index 43d24c1..4050204 100644
--- a/sky130/irsim/README
+++ b/sky130/irsim/README
@@ -1,65 +1,96 @@
-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.
+Script to generate valid IRSIM .prm files for the sky130 process
+
+2/7/2022:  Added "device" lines to header.txt for compability between the
+subcircuit devices used by the sky130 process, and IRSIM version 9.7.115,
+which adds the parsing for the new "device" syntax in the parameter file.
+
+1/1/2022:  Taking advantage of the new code added by Jason Liang for
+the GSoC internship.  IRSIM now supports multiple transistor models at
+multiple power supply voltages, so all sky130 devices can be represented
+. . .  but also need to be characterized.
+
 ------------------------------------------------------------------------
-Following directions from the irsim web page. . . 
+Prerequisites:
 
-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.  
+    Requires ngspice and an installation of the SkyWater sky130 open
+    PDK from open_pdks.
 
-Get characteristics from SPICE, cell sky130_fd_sc_hd__nand2_1
+Instructions:
 
-    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
+    This script has already been run and the parameter files generated,
+    so that they can simply be installed into libs.tech/irsim/.  If
+    you want to regenerate all of the parameter files, then do:
 
-    Using 50fF for loading cap (essentially irrelevant)
+	run_all.py
 
-Writing these values into "config.txt" (but not using).
+    and everything should be automatically handled.  File
+    "circuit_template.spi" assumes that the PDK is already installed
+    in ${PDK_ROOT)=/usr/share/pdk, so modify this file if open_pdks
+    has been configured to install into a different location.
 
-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.
+------------------------------------------------------------------------
+NOTES:
+------------------------------------------------------------------------
 
-Added ".save all".
+The script generally follows the instructions for generating a parameter
+file found on the IRSIM web page at opencircuitdesign.com.  The exception
+is for the "dynamic-high" resistance for nFET devices and the
+"dynamic-low" resistance for pFET devices.  These values are very rarely
+used, since nFETs pulling a net high or pFETs pulling a net low are not
+often used in CMOS circuits (typically found in hysteretic buffers or
+certain kinds of low-transistor-count XOR gates).  Since the devices are
+not in saturation in these situations, a resistance is a poor model for
+the device.  As such, probably any value is as good as any other.  The
+(arbitrary) method used is to find the time that it takes for the signal
+to reach 80% of the final value in the simulation (where the transistor
+is in deep subthreshold), and extrapolate the time to reach half of Vdd.
+This results (when divided by the load capacitance) in a resistance value
+that is in a sane intermediate range and suffices for simulation purposes.
 
-Spice models are in 
+The template netlist does all measurements internally to ngspice, so there
+is no need for a post-processing tool such as the one included in the
+IRSIM repository to generate the resistance outputs, and raw SPICE output
+files are not generated.  The python script collects ngspice output and
+uses it to generate the IRSIM parameter files.
 
-    ~/projects/efabless/tech/SW/sky130A/libs.tech/ngspice/sky130.lib.spice
+Parameter files are generated for nominal voltage and nominal voltage
++/- 10%, temperatures at -40, 27, and 125 degrees C, and at slow, fast,
+and typical corners.  Voltages in the parameter filename are shown as
+"high", "low", and "nom", since the parameter file contains both 1.8V
+and 3.3V transistors.
 
-Note that the raw file reader expects an ASCII raw file, which in ngspice
-requires in ".spiceinit":
+Spice models are included into a testbench netlist from: 
 
-    set filetype=ascii
+    ${PDK_ROOT}/sky130A/libs.tech/ngspice/sky130.lib.spice
 
-Running:
+Basic parameters in the header:
 
-    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:
+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. . . 
+Transistor devices characterized for IRSIM:
 
-NOTE:  2/7/2022:  Added "device" lines to header.txt for compability between the
-subcircuit devices used by the sky130 process, and IRSIM version 9.7.113, which
-adds the parsing for the new "device" syntax in the parameter file.
+        sky130_fd_pr__nfet_01v8
+        sky130_fd_pr__nfet_01v8_lvt
+        sky130_fd_pr__pfet_01v8
+        sky130_fd_pr__pfet_01v8_lvt
+        sky130_fd_pr__pfet_01v8_hvt
+        sky130_fd_pr__special_nfet_latch
+        sky130_fd_pr__special_nfet_pass
+        sky130_fd_pr__special_pfet_pass
+        sky130_fd_pr__pfet_g5v0d10v5
+        sky130_fd_pr__nfet_g5v0d10v5
+        sky130_fd_pr__nfet_05v0_nvt
+
+Transistor devices *not* characterized for IRSIM:
+
+        sky130_fd_pr__pfet_01v8_mvt
+        sky130_fd_pr__nfet_03v3_nvt
+        sky130_fd_pr__nfet_01v8_nvt
+        sky130_fd_pr__nfet_20v0_nvt
+        sky130_fd_pr__nfet_20v0
+        sky130_fd_pr__pfet_20v0
+        sky130_fd_pr__esd_nfet_g5v0d10v5
+        sky130_fd_pr__esd_pfet_g5v0d10v5
+
diff --git a/sky130/irsim/circuit_template.spi b/sky130/irsim/circuit_template.spi
new file mode 100644
index 0000000..3ee095d
--- /dev/null
+++ b/sky130/irsim/circuit_template.spi
@@ -0,0 +1,116 @@
+*
+* spice test file template for generating .prm files.
+*
+* Make appropriate variable name substitutions:
+*
+* Process corner = CORNER
+* Power supply voltage = FULL_VOLTAGE
+* Half power supply voltage = HALF_VOLTAGE
+* N-type FET device name = DEVICENAME_N
+* P-type FET device name = DEVICENAME_P
+* Width of N-type FET = WIDTH_N
+* Width of P-type FET = WIDTH_P
+* Length of N-type FET = LENGTH_N
+* Length of P-type FET = LENGTH_P
+* Load capacitance (in fF) = LOADCAP
+*
+.lib /usr/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice CORNER
+*
+.option TEMP=TEMPERATURE
+*
+* out1 - Output of Inverter to measure step response.
+*
+X0 out1 in1 GND GND DEVICENAME_N L=LENGTH_N W=WIDTH_N
+X1 out1 in1 VDD VDD DEVICENAME_P L=LENGTH_P W=WIDTH_P
+*
+* out2 - Output of Inverter driven by out1 to determine slow-input effect.
+*
+X6 out2 out1 GND GND DEVICENAME_N L=LENGTH_N W=WIDTH_N
+X7 out2 out1 VDD VDD DEVICENAME_P L=LENGTH_P W=WIDTH_P
+*
+* out3 - Output of a DEVICENAME_N pulling up to determine dynamic-high resistance.
+*
+X2 out3 in2 VDD GND DEVICENAME_N L=LENGTH_N W=WIDTH_N
+*
+* out4 - Output of a DEVICENAME_P pulling down to determine dynamic-low resistance.
+*
+X3 out4 in3 GND VDD DEVICENAME_P L=LENGTH_P W=WIDTH_P
+*
+* loading capacitors
+*
+C0 out1 GND LOADCAPf
+C1 out2 GND LOADCAPf
+C2 out3 GND LOADCAPf
+C3 out4 GND LOADCAPf
+
+VDD VDD 0 DC FULL_VOLTAGE
+* VGnd GND 0 DC 0
+RGnd GND 0 0.01
+Vmid mid 0 DC HALF_VOLTAGE
+
+Vin1 in1 0 0 pwl (0ns 0 0.1ns FULL_VOLTAGE 40ns FULL_VOLTAGE 40.1ns 0)
+Vin2 in2 0 0 pwl (0ns 0 0.1ns FULL_VOLTAGE)
+Vin3 in3 0 5 pwl (0ns FULL_VOLTAGE 0.1ns 0)
+
+.ic V(out4)=FULL_VOLTAGE
+
+.control
+tran 0.01ns 80ns
+* Measure when input signal crosses half Vdd (rising)
+meas tran tr when V(in1)=HALF_VOLTAGE rise=1
+* Measure when input signal crosses half Vdd (falling)
+meas tran tf when V(in1)=HALF_VOLTAGE fall=1
+* Measure when first output falls to half Vdd
+meas tran t1hl when V(out1)=HALF_VOLTAGE fall=1
+* Measure when first output rises to half Vdd
+meas tran t1lh when V(out1)=HALF_VOLTAGE rise=1
+* Measure when second output rises to half Vdd
+meas tran t2lh when V(out2)=HALF_VOLTAGE rise=1
+* Measure when second output falls to half Vdd
+meas tran t2hl when V(out2)=HALF_VOLTAGE fall=1
+
+* NOTE:  An nFET driving a node high and a pFET driving a node
+* low are not in saturation and there is no value of R that is
+* appropriate.  However, this configuration is rarely used in
+* CMOS circuits.  Find the value at the end of the simulation,
+* compute 80% that value, and extrapolate the rise time.
+meas tran tr2 when V(in2)=HALF_VOLTAGE rise=1
+meas tran tor2 max V(out3)
+let tr2h=tor2*0.8
+meas tran tnr1 when V(out3)=tr2h rise=1
+let tnr=tnr1*(HALF_VOLTAGE/tr2h)
+
+meas tran tf2 when V(in3)=HALF_VOLTAGE fall=1
+meas tran tof2 min V(out4)
+let tf2h=FULL_VOLTAGE-(FULL_VOLTAGE-tof2)*0.8
+meas tran tpf1 when V(out4)=tf2h fall=1
+let tpf=tpf1*(tf2h/HALF_VOLTAGE)
+
+* Compute rise and fall times
+let out1_tphl=t1hl-tr
+let out1_tplh=t1lh-tf
+let out2_tphl=t2hl-t1lh
+let out2_tplh=t2lh-t1hl
+let out3_tplh=tnr-tr2
+let out4_tphl=tpf-tf2
+
+* Compute dynamic and static resistances
+let ndynl=out1_tphl/LOADCAPf
+let pdynh=out1_tplh/LOADCAPf
+let nstat=(out2_tphl*out2_tphl-out1_tphl*out1_tphl)/(out1_tplh*LOADCAPf)
+let pstat=(out2_tplh*out2_tplh-out1_tplh*out1_tplh)/(out1_tphl*LOADCAPf)
+let ndynh=out3_tplh/LOADCAPf
+let pdynl=out4_tphl/LOADCAPf
+
+* Output values
+print ndynl
+print ndynh
+print nstat
+print pdynl
+print pdynh
+print pstat
+
+quit
+
+.endc
+.end
diff --git a/sky130/irsim/ckt_1v62_125.spi b/sky130/irsim/ckt_1v62_125.spi
deleted file mode 100644
index 58d0137..0000000
--- a/sky130/irsim/ckt_1v62_125.spi
+++ /dev/null
@@ -1,48 +0,0 @@
-*
-* 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
deleted file mode 100644
index c2b9141..0000000
--- a/sky130/irsim/ckt_1v62_27.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 97cb4ac..0000000
--- a/sky130/irsim/ckt_1v62_n40.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 7c709f5..0000000
--- a/sky130/irsim/ckt_1v62_n5.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 5b776d0..0000000
--- a/sky130/irsim/ckt_1v80_125.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 547d667..0000000
--- a/sky130/irsim/ckt_1v80_27.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 4deccb6..0000000
--- a/sky130/irsim/ckt_1v80_n40.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 6e3982f..0000000
--- a/sky130/irsim/ckt_1v80_n5.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 3ceed73..0000000
--- a/sky130/irsim/ckt_1v98_125.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 779a48b..0000000
--- a/sky130/irsim/ckt_1v98_27.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 2186b28..0000000
--- a/sky130/irsim/ckt_1v98_n40.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index ced2f12..0000000
--- a/sky130/irsim/ckt_1v98_n5.spi
+++ /dev/null
@@ -1,49 +0,0 @@
-*
-* 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
deleted file mode 100644
index 4fd6813..0000000
--- a/sky130/irsim/config.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-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
deleted file mode 100755
index 08b2b15..0000000
--- a/sky130/irsim/findr
+++ /dev/null
Binary files differ
diff --git a/sky130/irsim/getres b/sky130/irsim/getres
deleted file mode 100755
index 113ebec..0000000
--- a/sky130/irsim/getres
+++ /dev/null
@@ -1,60 +0,0 @@
-#! /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
index 73cccce..60e1dd5 100644
--- a/sky130/irsim/header.txt
+++ b/sky130/irsim/header.txt
@@ -21,26 +21,37 @@
 
 device nfet sky130_fd_pr__nfet_01v8
 device nfet sky130_fd_pr__nfet_01v8_lvt
-device nfet sky130_fd_pr__nfet_g5v0d10v5
 device pfet sky130_fd_pr__pfet_01v8
 device pfet sky130_fd_pr__pfet_01v8_lvt
-device pfet sky130_fd_pr__pfet_01v8_mvt
 device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
 device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
 ; Capacitor values are in pF/centimicron^2
 device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
 device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
 ; Resistor values are in ohms/square
 device resistor sky130_res_high_po_0p35   320
 device resistor sky130_res_high_po_0p69   320
 device resistor sky130_res_high_po_1p41   320
 device resistor sky130_res_high_po_2p85   320
 device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
 device resistor sky130_res_xhigh_po_0p35 2000
 device resistor sky130_res_xhigh_po_0p69 2000
 device resistor sky130_res_xhigh_po_1p41 2000
 device resistor sky130_res_xhigh_po_2p85 2000
 device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
 device resistor sky130_res_generic_nd     120
 device resistor sky130_res_generic_pd     197
 
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
diff --git a/sky130/irsim/resists b/sky130/irsim/resists
deleted file mode 100644
index c6111ce..0000000
--- a/sky130/irsim/resists
+++ /dev/null
@@ -1,7 +0,0 @@
-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.py b/sky130/irsim/run_all.py
new file mode 100755
index 0000000..6d81084
--- /dev/null
+++ b/sky130/irsim/run_all.py
@@ -0,0 +1,310 @@
+#!/usr/bin/env python3
+#
+# 
+import os
+import re
+import sys
+import subprocess
+
+#---------------------------------------------------------------------------
+# usage:  run_all.py [-nosim] [-keep]
+#
+# Run ngspice simulations on all major transistor devices in the process
+# (excluding high-voltage > 3V devices) at all corners, and generate
+# IRSIM parameter files for each corner.
+#
+# The "-nosim" option assumes that simulation output files have been
+# saved, and will run the parser to generate the parameterf files from
+# the existing ngspice output files.
+#
+# The "-keep" option will retain the ngspice input and output files
+# after each parameter file has been generated.  Otherwise, they will
+# be removed.
+#---------------------------------------------------------------------------
+
+#---------------------------------------------------------------------------
+# Devices must be paired P and N for each test.  There are some redundant
+# devices below where one type exists that does not have a corresponding
+# device in the opposite type.  In cases of redundancy, the first results
+# computed will be the ones used for that device.  The third item in each
+# list is the voltage range to use for the device, and determines which
+# voltages are used for max/min/typ simulations.
+#---------------------------------------------------------------------------
+ 
+#---------------------------------------------------------------------------
+# NOTE:  This method requires IRSIM 9.7.114, which supports multiple
+# transistor device parameters and multiple supply voltages.
+#---------------------------------------------------------------------------
+ 
+#---------------------------------------------------------------------------
+# To do:  Speed this up by using multiprocessing
+#---------------------------------------------------------------------------
+
+# Parse options
+
+keep = False
+nosim = False
+
+options = []
+arguments = []
+for item in sys.argv[1:]:
+    if item.find('-', 0) == 0:
+        options.append(item)
+    else:
+        arguments.append(item)
+
+if len(arguments) > 0:
+    print("Usage:  run_all.py [-nosim] [-keep]")
+    sys.exit(1)
+
+if '-keep' in options:
+    keep = True
+    print("Keep mode:  Retaining all intermediate files.")
+
+if '-nosim' in options:
+    nosim = True
+    print("No-sim mode:  Not running any simulations.")
+
+if '-help' in options:
+    print("Usage:  run_all.py [-nosim] [-keep]")
+    sys.exit(0)
+
+#---------------------------------------------------------------------------
+# Each entry in "devices" list has 9 items:
+#  [test-text, pFET-name, nFET-name, voltage-range,
+#   p-length, p-width, n-length, n-width, load-cap]
+#---------------------------------------------------------------------------
+ 
+devices = [
+	[
+	   "1.8V devices",
+	   "sky130_fd_pr__pfet_01v8", "sky130_fd_pr__nfet_01v8",
+	   "1v8", 0.15, 1.0, 0.15, 1.0, 250
+	],
+	[
+	   "1.8V LVT devices",
+	   "sky130_fd_pr__pfet_01v8_lvt", "sky130_fd_pr__nfet_01v8_lvt",
+	   "1v8", 0.35, 1.0, 0.15, 1.0, 250
+	],
+	[
+	   "1.8V HVT pFET",
+	   "sky130_fd_pr__pfet_01v8_hvt", "sky130_fd_pr__nfet_01v8",
+	   "1v8", 0.45, 1.0, 0.15, 1.0, 250
+	],
+	[
+	   "SRAM latching FETs",
+	   "sky130_fd_pr__special_pfet_pass", "sky130_fd_pr__special_nfet_latch",
+	   "1v8", 0.15, 0.14, 0.15, 0.21, 100
+	],
+	[
+	   "SRAM pass nFET",
+	   "sky130_fd_pr__special_pfet_pass", "sky130_fd_pr__special_nfet_pass",
+	   "1v8", 0.15, 0.14, 0.15, 0.14, 100
+	],
+	[
+	   "3.3V devices",
+	   "sky130_fd_pr__pfet_g5v0d10v5", "sky130_fd_pr__nfet_g5v0d10v5",
+	   "3v3", 0.50, 1.0, 0.50, 1.0, 250
+	],
+	[
+	   "5.0V native nFET",
+	   "sky130_fd_pr__pfet_g5v0d10v5", "sky130_fd_pr__nfet_05v0_nvt",
+	   "3v3", 0.50, 1.0, 0.90, 1.0, 250
+	]
+]
+
+voltages1v8 = [ 1.62, 1.80, 1.98 ]
+
+voltages3v3 = [ 2.97, 3.30, 3.63 ]
+
+vnames = [ 'low', 'nom', 'high' ]
+
+temps = [ -40, 27, 125 ]
+
+corners = [ "ss", "tt", "ff" ]
+
+# Read the parameter file header and save the contents
+
+header = []
+with open('header.txt', 'r') as ifile:
+    hlines = ifile.read().splitlines()
+
+for corner in corners:
+    for temp in temps:
+        tname = str(temp).replace('-', 'n')
+        for vidx in range(0,3):
+            vname = vnames[vidx]
+
+            generated_files = []
+            ndevtypes = []
+            pdevtypes = []
+
+            ndynh = {}
+            ndynl = {}
+            pdynh = {}
+            pdynl = {}
+            nstat = {}
+            pstat = {}
+
+            for devidx in range(0, len(devices)):
+                devicepair = devices[devidx]
+                devset = devicepair[0]
+                if len(devicepair) != 9:
+                    print('Error:  Bad entry for device set ' + devset + '.\n')
+                    continue
+                ptype = devicepair[1]
+                ntype = devicepair[2]
+                vtype = devicepair[3]
+                plength = devicepair[4]
+                pwidth = devicepair[5]
+                nlength = devicepair[6]
+                nwidth = devicepair[7]
+                loadcap = devicepair[8]
+
+                if ntype not in ndevtypes:
+                    ndevtypes.append(ntype)
+                if ptype not in pdevtypes:
+                    pdevtypes.append(ptype)
+
+                if vtype == '1v8':
+                    volt = voltages1v8[vidx]
+                else:
+                    volt = voltages3v3[vidx]
+
+                if not nosim:
+
+                    # Read template and generate SPICE simulation netlist
+                    newlines = []
+                    with open('circuit_template.spi', 'r') as ifile:
+                        template = ifile.read().splitlines()
+                        for line in template:
+                            outline = re.sub('CORNER', corner, line)
+                            outline = re.sub('FULL_VOLTAGE', str(volt), outline)
+                            outline = re.sub('HALF_VOLTAGE', str(volt / 2.0), outline)
+                            outline = re.sub('TEMPERATURE', str(temp), outline)
+                            outline = re.sub('DEVICENAME_N', ntype, outline)
+                            outline = re.sub('DEVICENAME_P', ptype, outline)
+                            outline = re.sub('WIDTH_N', str(nwidth), outline)
+                            outline = re.sub('WIDTH_P', str(pwidth), outline)
+                            outline = re.sub('LENGTH_N', str(nlength), outline)
+                            outline = re.sub('LENGTH_P', str(plength), outline)
+                            outline = re.sub('LOADCAP', str(loadcap), outline)
+                            newlines.append(outline)
+
+                    simname = 'sky130_' + corner + '_' + vname + '_' + tname + '_devpair' + str(devidx) + '.spice'
+
+                    with open(simname, 'w') as ofile:
+                        for line in newlines:
+                            print(line, file=ofile)
+
+                    generated_files.append(simname)
+
+                    # Run ngspice simulation
+
+                    print('** Running simulation on ' + devset + '(file ' + simname + ')')
+                    print('** Conditions: temp=' + tname + ' corner=' + corner
+				+ ' volt=' + vname)
+                    p = subprocess.run(['ngspice', simname],
+				stdout = subprocess.PIPE,
+				universal_newlines = True)
+			
+                    if p.stdout:
+                        parameters = p.stdout.splitlines()
+              
+                        for parameter in parameters:
+                            valueline = parameter.split()
+                            if len(valueline) < 3:
+                                continue
+                            if valueline[0] == 'ndynh':
+                                try:
+                                    ndynh[ntype]
+                                except:
+                                    ndynh[ntype] = valueline[2]
+                            elif valueline[0] == 'pdynh':
+                                try:
+                                    pdynh[ptype]
+                                except:
+                                    pdynh[ptype] = valueline[2]
+                            elif valueline[0] == 'ndynl':
+                                try:
+                                    ndynl[ntype]
+                                except:
+                                    ndynl[ntype] = valueline[2]
+                            elif valueline[0] == 'pdynl':
+                                try:
+                                    pdynl[ptype]
+                                except:
+                                    pdynl[ptype] = valueline[2]
+                            elif valueline[0] == 'nstat':
+                                try:
+                                    nstat[ntype]
+                                except:
+                                    nstat[ntype] = valueline[2]
+                            elif valueline[0] == 'pstat':
+                                try:
+                                    pstat[ptype]
+                                except:
+                                    pstat[ptype] = valueline[2]
+                else:
+                    print('** No file ' + outname + '; skipping.')
+                        
+            paramfile = 'sky130_' + corner + '_' + vname + '_' + tname + '.prm'
+
+            with open(paramfile, 'w') as ofile:
+                for line in hlines:
+                    print(line, file=ofile)
+
+                # Now output information for every device
+                print('', file=ofile)
+
+                for device in ndevtypes:
+                    devicepair = next(item for item in devices if item[2] == device)
+                    if not devicepair:
+                        print('Error:  Bad entry for nFET device ' + device + '.\n')
+                        continue
+                    devset = devicepair[0]
+                    if len(devicepair) != 9:
+                        print('Error:  Bad entry for device set ' + devset + '.\n')
+                        continue
+                    ntype = devicepair[2]
+                    vtype = devicepair[3]
+                    nlength = devicepair[6]
+                    nwidth = devicepair[7]
+                    loadcap = devicepair[8]
+
+                    print('; C=' + str(loadcap) + ', N(w=' + str(nwidth) + ', l=' + str(nlength) + ')', file=ofile)
+                    print('resistance ' + ntype + ' dynamic-high   ' + str(nwidth) + '    ' + str(nlength) + '  ' + ndynh[ntype], file=ofile)
+                    print('resistance ' + ntype + ' dynamic-low    ' + str(nwidth) + '    ' + str(nlength) + '  ' + ndynl[ntype], file=ofile)
+                    print('resistance ' + ntype + ' static         ' + str(nwidth) + '    ' + str(nlength) + '  ' + nstat[ntype], file=ofile)
+                    print('', file=ofile)
+
+                for device in pdevtypes:
+                    devicepair = next(item for item in devices if item[1] == device)
+                    if not devicepair:
+                        print('Error:  Bad entry for pFET device ' + device + '.\n')
+                        continue
+                    devset = devicepair[0]
+                    if len(devicepair) != 9:
+                        print('Error:  Bad entry for device set ' + devset + '.\n')
+                        continue
+                    ptype = devicepair[1]
+                    vtype = devicepair[3]
+                    plength = devicepair[4]
+                    pwidth = devicepair[5]
+                    loadcap = devicepair[8]
+
+                    print('; C=' + str(loadcap) + ', P(w=' + str(pwidth) + ', l=' + str(plength) + ')', file=ofile)
+                    print('resistance ' + ptype + ' dynamic-high   ' + str(pwidth) + '    ' + str(plength) + '  ' + pdynh[ptype], file=ofile)
+                    print('resistance ' + ptype + ' dynamic-low    ' + str(pwidth) + '    ' + str(plength) + '  ' + pdynl[ptype], file=ofile)
+                    print('resistance ' + ptype + ' static         ' + str(pwidth) + '    ' + str(plength) + '  ' + pstat[ptype], file=ofile)
+                    print('', file=ofile)
+            
+            if not keep:
+                print('**Removing generated intermediate files.')
+                for file in generated_files:
+                    try:
+                        os.remove(file)
+                    except:
+                        pass
+
+sys.exit(0)
diff --git a/sky130/irsim/run_all.sh b/sky130/irsim/run_all.sh
deleted file mode 100755
index 5bb7bb1..0000000
--- a/sky130/irsim/run_all.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/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/sky130_1v62_27.prm b/sky130/irsim/sky130_1v62_27.prm
deleted file mode 100644
index 111491f..0000000
--- a/sky130/irsim/sky130_1v62_27.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index b9245ff..0000000
--- a/sky130/irsim/sky130_1v62_n40.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index 904231f..0000000
--- a/sky130/irsim/sky130_1v62_n5.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index b88a3c5..0000000
--- a/sky130/irsim/sky130_1v80_125.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index 5794946..0000000
--- a/sky130/irsim/sky130_1v80_27.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index 896a95a..0000000
--- a/sky130/irsim/sky130_1v80_n40.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index 5c33f27..0000000
--- a/sky130/irsim/sky130_1v80_n5.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index f626170..0000000
--- a/sky130/irsim/sky130_1v98_125.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index dccd563..0000000
--- a/sky130/irsim/sky130_1v98_27.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index dbb0df1..0000000
--- a/sky130/irsim/sky130_1v98_n40.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index 368fb9d..0000000
--- a/sky130/irsim/sky130_1v98_n5.prm
+++ /dev/null
@@ -1,7 +0,0 @@
-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_ff_high_125.prm b/sky130/irsim/sky130_ff_high_125.prm
new file mode 100644
index 0000000..808d85f
--- /dev/null
+++ b/sky130/irsim/sky130_ff_high_125.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  6.355782e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.866832e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  2.202940e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  5.078669e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.757090e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  1.364326e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  3.091104e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  8.883328e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  8.572828e+03
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  4.196786e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.147470e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  1.354716e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.229869e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.903076e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  3.985902e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.422829e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  5.368956e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.827869e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  3.582760e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  1.428544e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  3.162022e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  4.703080e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  1.686439e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  3.521083e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.296700e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  5.687897e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  1.477727e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  2.996500e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.152770e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  4.599933e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  9.726600e+03
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.079723e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.046133e+04
+
diff --git a/sky130/irsim/sky130_ff_high_27.prm b/sky130/irsim/sky130_ff_high_27.prm
new file mode 100644
index 0000000..516e798
--- /dev/null
+++ b/sky130/irsim/sky130_ff_high_27.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  5.237482e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.638648e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  1.906106e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  4.179235e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.500954e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  1.173935e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  2.556232e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  7.469575e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  7.480494e+03
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  3.455878e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  9.417317e+03
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  1.097942e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.020486e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.183576e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  3.262036e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.152874e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.341768e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.005527e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  3.671560e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  1.382305e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  3.192867e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  4.475800e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  1.647031e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  3.137782e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.387536e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  5.716570e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  1.532972e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  2.765100e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.058863e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  4.269911e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  8.696400e+03
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  2.716673e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  8.806130e+03
+
diff --git a/sky130/irsim/sky130_ff_high_n40.prm b/sky130/irsim/sky130_ff_high_n40.prm
new file mode 100644
index 0000000..dcf7d91
--- /dev/null
+++ b/sky130/irsim/sky130_ff_high_n40.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  4.493381e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.496302e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  1.723388e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  3.662399e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.361476e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  1.079072e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  2.130196e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  6.626060e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  6.668279e+03
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  2.837953e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  8.108135e+03
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  9.140293e+03
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  8.998057e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  3.815560e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  2.903014e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  9.661760e+03
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  3.732337e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.502366e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  3.769560e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  1.300321e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  3.268051e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  4.268400e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  1.518774e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  2.806963e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.490072e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  5.564387e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  1.567407e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  2.577660e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  9.506514e+04
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  3.905899e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  7.864520e+03
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  2.377289e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  7.610100e+03
+
diff --git a/sky130/irsim/sky130_ff_low_125.prm b/sky130/irsim/sky130_ff_low_125.prm
new file mode 100644
index 0000000..07bad64
--- /dev/null
+++ b/sky130/irsim/sky130_ff_low_125.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.065881e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.217380e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  3.731868e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  7.566071e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  2.005400e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.421307e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  4.392912e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.064247e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.458857e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  5.776462e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.399812e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  2.146258e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.465615e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  5.485040e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  5.250842e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.530519e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  5.861204e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.508220e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  4.343800e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.141932e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  4.801116e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  5.508840e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.184907e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  4.799900e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.977692e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  8.514366e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  2.574272e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  4.145570e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.633797e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  7.165644e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.164904e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.824837e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.367471e+04
+
diff --git a/sky130/irsim/sky130_ff_low_27.prm b/sky130/irsim/sky130_ff_low_27.prm
new file mode 100644
index 0000000..74dd236
--- /dev/null
+++ b/sky130/irsim/sky130_ff_low_27.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  8.635499e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.971208e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  3.436158e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  6.090272e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.736202e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.181903e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  3.759561e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  8.989063e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.374737e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  4.978655e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.152229e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  1.852812e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.221977e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.669352e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  4.445704e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.259537e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.716276e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.822546e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  4.569240e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.187068e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  5.296218e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  5.243360e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.269954e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  4.614932e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.380192e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  9.348031e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  3.069206e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  4.046810e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.585022e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  7.220511e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.051672e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.454832e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.194554e+04
+
diff --git a/sky130/irsim/sky130_ff_low_n40.prm b/sky130/irsim/sky130_ff_low_n40.prm
new file mode 100644
index 0000000..a49dfd9
--- /dev/null
+++ b/sky130/irsim/sky130_ff_low_n40.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  7.354406e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.808904e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  3.296186e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  5.251611e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.586080e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.063013e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  3.152369e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  7.953958e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.297773e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  4.162709e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  9.874460e+03
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  1.624428e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.066881e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.244376e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  4.006076e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.060222e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.022632e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.377197e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  4.858880e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.109703e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  5.728145e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  4.967960e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.175708e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  4.368463e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.845928e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  9.762693e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  3.487459e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  3.924290e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.478718e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  7.013354e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  9.544920e+03
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.058758e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.049811e+04
+
diff --git a/sky130/irsim/sky130_ff_nom_125.prm b/sky130/irsim/sky130_ff_nom_125.prm
new file mode 100644
index 0000000..2cb17b3
--- /dev/null
+++ b/sky130/irsim/sky130_ff_nom_125.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  7.975051e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.010210e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  2.791638e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  6.026571e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.860176e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  1.781226e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  3.618255e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  9.610100e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.092623e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  4.865428e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.249857e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  1.678370e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.329965e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  5.154448e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  4.503383e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.474249e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  5.594648e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.698016e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  3.876000e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  1.723087e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  3.840356e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  5.013800e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  1.908267e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  4.083533e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.563484e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  6.851236e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  1.890072e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  3.461570e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.356470e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  5.631658e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.055888e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.405789e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.180689e+04
+
diff --git a/sky130/irsim/sky130_ff_nom_27.prm b/sky130/irsim/sky130_ff_nom_27.prm
new file mode 100644
index 0000000..9df496f
--- /dev/null
+++ b/sky130/irsim/sky130_ff_nom_27.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  6.492999e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.774130e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  2.490685e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  4.902839e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.598635e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  1.568222e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  3.029712e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  8.089438e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  9.863680e+03
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  4.079521e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.026020e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  1.398790e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.104771e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.392428e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  3.737154e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.202445e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.511748e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.933687e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  4.005200e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  1.702125e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  4.027720e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  4.754280e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  1.914945e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  3.770862e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.749324e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  7.144515e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  2.078895e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  3.266230e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.274823e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  5.407483e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  9.469520e+03
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.034763e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.008847e+04
+
diff --git a/sky130/irsim/sky130_ff_nom_n40.prm b/sky130/irsim/sky130_ff_nom_n40.prm
new file mode 100644
index 0000000..1ee9c3f
--- /dev/null
+++ b/sky130/irsim/sky130_ff_nom_n40.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  5.533198e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.623414e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  2.311000e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  4.264200e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.454733e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  1.461178e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  2.523819e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  7.163954e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  9.015361e+03
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  3.368497e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  8.810188e+03
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  1.190996e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  9.693872e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  3.999960e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  3.341106e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.009268e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  3.863776e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.453116e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  4.163240e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  1.613058e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  4.214512e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  4.505880e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  1.794504e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  3.465301e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.951336e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  7.140378e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  2.217254e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  3.087960e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.161590e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  5.064356e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  8.569240e+03
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  2.667533e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  8.770237e+03
+
diff --git a/sky130/irsim/sky130_ss_high_125.prm b/sky130/irsim/sky130_ss_high_125.prm
new file mode 100644
index 0000000..ffd51e5
--- /dev/null
+++ b/sky130/irsim/sky130_ss_high_125.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.131264e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.435654e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  4.418256e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  7.725067e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  2.136872e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.598903e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  5.717015e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.570834e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  2.610336e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  6.906004e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.966940e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  3.366549e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.823791e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  6.534824e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  7.032134e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.791618e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  6.630688e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  3.107582e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  5.730400e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.541976e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  6.538170e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  7.202520e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.667391e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  6.004869e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.049968e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  8.252984e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  2.696586e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  6.536080e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  2.074270e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  1.059523e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.349536e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  4.437390e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.687259e+04
+
diff --git a/sky130/irsim/sky130_ss_high_27.prm b/sky130/irsim/sky130_ss_high_27.prm
new file mode 100644
index 0000000..eedb3f8
--- /dev/null
+++ b/sky130/irsim/sky130_ss_high_27.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  9.501364e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.088056e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  3.882206e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  6.299391e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.838123e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.257726e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  4.879829e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.377947e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  2.486943e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  6.230134e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.794308e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  3.238605e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.453575e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  5.388920e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  5.656515e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.444315e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  5.281472e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.276622e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  6.298040e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.636549e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  7.275408e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  7.104240e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.622204e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  5.602412e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.039788e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  7.555881e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  2.516608e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  6.726050e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  2.008743e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  1.126153e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.185548e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.872875e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.414394e+04
+
diff --git a/sky130/irsim/sky130_ss_high_n40.prm b/sky130/irsim/sky130_ss_high_n40.prm
new file mode 100644
index 0000000..b3b6000
--- /dev/null
+++ b/sky130/irsim/sky130_ss_high_n40.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  7.866005e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.867214e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  3.540358e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  5.352335e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.657739e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.057744e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  4.150090e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.261238e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  2.399205e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  5.490831e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.682700e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  3.153467e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.213294e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.781548e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  4.882597e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.201229e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.485600e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.748898e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  6.763240e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.609571e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  7.804501e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  6.965040e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.425498e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  5.174292e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.026036e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  6.711070e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  2.331223e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  6.876680e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.891660e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  1.163394e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.048200e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.342015e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.193099e+04
+
diff --git a/sky130/irsim/sky130_ss_low_125.prm b/sky130/irsim/sky130_ss_low_125.prm
new file mode 100644
index 0000000..6fa2951
--- /dev/null
+++ b/sky130/irsim/sky130_ss_low_125.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  2.012839e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  3.183592e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  8.160095e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  1.267892e+04
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  2.572211e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  4.990970e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  9.315069e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  2.044650e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  5.584694e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  1.106741e+05
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  2.531724e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  6.796740e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  2.286029e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  7.653464e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  1.014807e+04
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.946737e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  7.298216e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.716323e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  7.632440e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  3.830500e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  1.058786e+04
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  8.693840e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  3.635589e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  9.092003e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  3.545480e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  1.228167e+05
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  5.249201e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  1.031702e+05
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  3.118979e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  2.004266e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.677724e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  5.589299e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  2.327038e+04
+
diff --git a/sky130/irsim/sky130_ss_low_27.prm b/sky130/irsim/sky130_ss_low_27.prm
new file mode 100644
index 0000000..122e3ce
--- /dev/null
+++ b/sky130/irsim/sky130_ss_low_27.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.780344e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.773893e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  7.824694e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  1.024764e+04
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  2.245165e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  4.557576e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  8.407953e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.824233e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  5.927841e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  1.050503e+05
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  2.345860e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  7.122643e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.842555e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  6.292432e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  8.485566e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.596275e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  5.792360e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.044169e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  9.125440e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  4.242047e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  1.331835e+04
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  8.707560e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  3.785726e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  9.225716e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  4.005572e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  1.239154e+05
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  5.806430e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  1.202761e+05
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  3.301818e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  2.450193e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.503712e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  5.017049e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  2.054089e+04
+
diff --git a/sky130/irsim/sky130_ss_low_n40.prm b/sky130/irsim/sky130_ss_low_n40.prm
new file mode 100644
index 0000000..299dfc7
--- /dev/null
+++ b/sky130/irsim/sky130_ss_low_n40.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.556871e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.489453e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  7.813395e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  8.639513e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  2.038604e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  4.330448e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  7.420769e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.681723e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  6.297746e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  9.624619e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  2.218331e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  7.505954e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.522073e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  5.546128e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  7.440011e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.335027e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.883052e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.592365e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  1.066228e+04
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  4.409640e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  1.583670e+04
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  8.599200e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  3.635650e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  9.053810e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  4.429540e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  1.204837e+05
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  6.150021e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  1.380988e+05
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  3.380226e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  2.879039e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.344584e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  4.402824e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.784540e+04
+
diff --git a/sky130/irsim/sky130_ss_nom_125.prm b/sky130/irsim/sky130_ss_nom_125.prm
new file mode 100644
index 0000000..d74b624
--- /dev/null
+++ b/sky130/irsim/sky130_ss_nom_125.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.464188e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.732055e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  5.833161e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  9.577039e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  2.313102e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  3.517004e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  7.084214e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.756940e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  3.687917e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  8.509659e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  2.186929e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  4.629754e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  2.017994e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  7.009664e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  8.291349e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.864814e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  6.933896e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.949879e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  6.479680e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  3.071224e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  8.159430e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  7.777320e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  3.084444e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  7.308968e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.608808e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  9.916700e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  3.628127e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  7.928750e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  2.499779e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  1.403125e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.489416e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  4.939923e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.952327e+04
+
diff --git a/sky130/irsim/sky130_ss_nom_27.prm b/sky130/irsim/sky130_ss_nom_27.prm
new file mode 100644
index 0000000..c787e7c
--- /dev/null
+++ b/sky130/irsim/sky130_ss_nom_27.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.253553e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.356375e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  5.326227e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  7.750195e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  2.002269e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  3.129267e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  6.167735e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.549979e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  3.669642e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  7.820264e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  2.005916e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  4.607778e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.614325e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  5.769496e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  6.781009e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.514280e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  5.511388e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.187205e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  7.360280e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  3.269455e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  9.554537e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  7.692000e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  3.108082e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  7.086696e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.709360e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  9.442307e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  3.624777e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  8.530360e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  2.508576e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  1.570014e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.318316e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  4.363857e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.672925e+04
+
diff --git a/sky130/irsim/sky130_ss_nom_n40.prm b/sky130/irsim/sky130_ss_nom_n40.prm
new file mode 100644
index 0000000..b26a140
--- /dev/null
+++ b/sky130/irsim/sky130_ss_nom_n40.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.055885e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.108863e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  5.037245e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  6.549100e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.810986e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.909423e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  5.294805e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.421414e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  3.669032e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  6.971007e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.886202e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  4.621273e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.340015e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  5.103148e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  5.888093e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.262023e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.663780e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.690729e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  8.159880e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  3.293494e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  1.067330e+04
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  7.536600e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.917178e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  6.731210e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.771920e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  8.659643e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  3.527663e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  9.050620e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  2.433497e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  1.692553e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.170044e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.791398e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.427962e+04
+
diff --git a/sky130/irsim/sky130_tt_high_125.prm b/sky130/irsim/sky130_tt_high_125.prm
new file mode 100644
index 0000000..f888b32
--- /dev/null
+++ b/sky130/irsim/sky130_tt_high_125.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  8.506946e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.102336e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  3.129041e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  6.236967e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.914918e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  1.904558e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  3.932510e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.110007e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.389355e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  5.170447e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.430549e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  2.072893e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.479649e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  5.598244e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  5.222054e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.587094e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  5.932544e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.958307e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  4.273960e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  1.850425e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  4.295087e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  5.681720e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.085890e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  4.403767e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.532024e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  6.645878e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  1.914742e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  3.973390e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.430089e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  6.098272e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.133060e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.667798e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.304853e+04
+
diff --git a/sky130/irsim/sky130_tt_high_27.prm b/sky130/irsim/sky130_tt_high_27.prm
new file mode 100644
index 0000000..3e05c12
--- /dev/null
+++ b/sky130/irsim/sky130_tt_high_27.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  7.113448e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.830180e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  2.729063e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  5.122383e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.649493e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  1.654249e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  3.330929e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  9.602190e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.266842e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  4.434748e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.233200e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  1.810499e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.205428e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.710652e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  4.244521e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.283123e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.764232e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.132055e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  4.583040e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  1.890751e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  4.705659e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  5.502720e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.039686e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  4.024641e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.629768e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  6.541908e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  1.923181e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  3.878190e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.344617e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  6.069660e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.004664e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.217465e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.095580e+04
+
diff --git a/sky130/irsim/sky130_tt_high_n40.prm b/sky130/irsim/sky130_tt_high_n40.prm
new file mode 100644
index 0000000..1c56f2a
--- /dev/null
+++ b/sky130/irsim/sky130_tt_high_n40.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  6.005983e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.658032e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  2.482004e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  4.428267e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.495791e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  1.514850e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  2.801898e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  8.705151e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.175457e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  3.767001e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.106126e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  1.617590e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.038668e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.249004e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  3.726166e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.071746e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.074080e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.615169e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  4.835880e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  1.851285e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  5.007399e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  5.317800e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  1.878630e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  3.657709e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.727996e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  6.235817e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  1.909319e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  3.797770e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.233560e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  5.930932e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  8.992040e+03
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  2.795426e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  9.359869e+03
+
diff --git a/sky130/irsim/sky130_tt_low_125.prm b/sky130/irsim/sky130_tt_low_125.prm
new file mode 100644
index 0000000..f8f7992
--- /dev/null
+++ b/sky130/irsim/sky130_tt_low_125.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.472075e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.606093e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  5.521241e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  9.777653e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  2.239366e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  3.494522e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  5.966013e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.370268e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  2.636384e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  7.673663e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.791670e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  3.691411e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.807625e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  6.394300e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  7.206115e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.715941e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  6.502828e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.609332e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  5.445480e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.799389e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  6.677279e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  6.735080e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.782733e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  6.346165e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.500120e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  1.001530e+05
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  3.531582e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  5.762810e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  2.107820e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  1.036693e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.380632e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  4.590595e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.754128e+04
+
diff --git a/sky130/irsim/sky130_tt_low_27.prm b/sky130/irsim/sky130_tt_low_27.prm
new file mode 100644
index 0000000..1414d2c
--- /dev/null
+++ b/sky130/irsim/sky130_tt_low_27.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.254919e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.301315e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  5.191075e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  7.895262e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.956279e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  3.173237e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  5.264863e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.196408e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  2.619871e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  6.897150e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.554685e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  3.464194e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.483393e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  5.364768e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  6.075678e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.409907e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  5.198732e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.930718e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  6.221080e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  3.036205e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  8.135149e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  6.561320e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.885200e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  6.280217e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  3.016032e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  1.081405e+05
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  4.134889e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  6.078670e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  2.124309e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  1.138225e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.241976e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  4.131818e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.539438e+04
+
diff --git a/sky130/irsim/sky130_tt_low_n40.prm b/sky130/irsim/sky130_tt_low_n40.prm
new file mode 100644
index 0000000..ffda99c
--- /dev/null
+++ b/sky130/irsim/sky130_tt_low_n40.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.089297e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.094268e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  5.071839e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  6.734317e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.786553e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  3.004277e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  4.499195e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.086505e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  2.595774e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  5.993165e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.393807e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  3.283248e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.264759e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.815360e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  5.407877e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.183422e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.411548e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.480458e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  6.981480e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  3.091924e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  9.409188e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  6.331800e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.756862e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  6.047760e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  3.591852e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  1.116447e+05
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  4.624817e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  6.333380e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  2.058587e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  1.201225e+05
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.119328e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.640328e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.345405e+04
+
diff --git a/sky130/irsim/sky130_tt_nom_125.prm b/sky130/irsim/sky130_tt_nom_125.prm
new file mode 100644
index 0000000..bb50eb9
--- /dev/null
+++ b/sky130/irsim/sky130_tt_nom_125.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  1.085102e+04
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.305034e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  4.042943e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  7.571718e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  2.047939e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.524005e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  4.728732e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.215305e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.858875e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  6.180012e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.574458e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  2.698619e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.618159e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  5.939220e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  6.028634e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.648241e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  6.192768e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.817008e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  4.740400e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.240156e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  5.260571e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  6.087120e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.390064e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  5.240725e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  1.902780e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  8.032137e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  2.513235e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  4.669390e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.710157e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  7.738915e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.239412e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  4.070794e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.491942e+04
+
diff --git a/sky130/irsim/sky130_tt_nom_27.prm b/sky130/irsim/sky130_tt_nom_27.prm
new file mode 100644
index 0000000..3005bfd
--- /dev/null
+++ b/sky130/irsim/sky130_tt_nom_27.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  9.114628e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  2.018281e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  3.649577e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  6.155554e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.775042e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.240383e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  4.063478e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  1.054420e+04
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.759177e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  5.395513e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.359646e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  2.430272e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.321012e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.989140e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  4.976523e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.341762e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.960580e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  2.053864e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  5.210600e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.343309e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  6.027103e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  5.887920e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.397328e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  4.969914e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.119276e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  8.215590e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  2.688224e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  4.692210e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.653438e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  8.007236e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  1.104584e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.610454e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.275922e+04
+
diff --git a/sky130/irsim/sky130_tt_nom_n40.prm b/sky130/irsim/sky130_tt_nom_n40.prm
new file mode 100644
index 0000000..703c94a
--- /dev/null
+++ b/sky130/irsim/sky130_tt_nom_n40.prm
@@ -0,0 +1,113 @@
+;
+; 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
+
+device nfet sky130_fd_pr__nfet_01v8
+device nfet sky130_fd_pr__nfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8
+device pfet sky130_fd_pr__pfet_01v8_lvt
+device pfet sky130_fd_pr__pfet_01v8_hvt
+device nfet sky130_fd_pr__special_nfet_latch
+device nfet sky130_fd_pr__special_nfet_pass
+device pfet sky130_fd_pr__special_pfet_pass
+device pfet sky130_fd_pr__pfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_g5v0d10v5
+device nfet sky130_fd_pr__nfet_05v0_nvt
+
+; Capacitor values are in pF/centimicron^2
+device capacitor sky130_fd_pr__cap_mim_m3_1 2.0E-7
+device capacitor sky130_fd_pr__cap_mim_m3_2 2.0E-7
+
+; Resistor values are in ohms/square
+device resistor sky130_res_high_po_0p35   320
+device resistor sky130_res_high_po_0p69   320
+device resistor sky130_res_high_po_1p41   320
+device resistor sky130_res_high_po_2p85   320
+device resistor sky130_res_high_po_5p73   320
+device resistor sky130_res_high_po	  320
+device resistor sky130_res_xhigh_po_0p35 2000
+device resistor sky130_res_xhigh_po_0p69 2000
+device resistor sky130_res_xhigh_po_1p41 2000
+device resistor sky130_res_xhigh_po_2p85 2000
+device resistor sky130_res_xhigh_po_5p73 2000
+device resistor sky130_res_xhigh_po	 2000
+device resistor sky130_res_generic_nd     120
+device resistor sky130_res_generic_pd     197
+
+; Diode
+device diode sky130_fd_pr__diode_pw2nd_05v5
+
+; Transistor device parameters
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8 dynamic-high   1.0    0.15  7.748068e+03
+resistance sky130_fd_pr__nfet_01v8 dynamic-low    1.0    0.15  1.831476e+03
+resistance sky130_fd_pr__nfet_01v8 static         1.0    0.15  3.422109e+03
+
+; C=250, N(w=1.0, l=0.15)
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-high   1.0    0.15  5.283442e+03
+resistance sky130_fd_pr__nfet_01v8_lvt dynamic-low    1.0    0.15  1.614680e+03
+resistance sky130_fd_pr__nfet_01v8_lvt static         1.0    0.15  2.084185e+03
+
+; C=100, N(w=0.21, l=0.15)
+resistance sky130_fd_pr__special_nfet_latch dynamic-high   0.21    0.15  3.425195e+04
+resistance sky130_fd_pr__special_nfet_latch dynamic-low    0.21    0.15  9.559500e+03
+resistance sky130_fd_pr__special_nfet_latch static         0.21    0.15  1.676186e+04
+
+; C=100, N(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_nfet_pass dynamic-high   0.14    0.15  4.610981e+04
+resistance sky130_fd_pr__special_nfet_pass dynamic-low    0.14    0.15  1.218463e+04
+resistance sky130_fd_pr__special_nfet_pass static         0.14    0.15  2.223305e+04
+
+; C=250, N(w=1.0, l=0.5)
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-high   1.0    0.5  1.132166e+04
+resistance sky130_fd_pr__nfet_g5v0d10v5 dynamic-low    1.0    0.5  4.490000e+03
+resistance sky130_fd_pr__nfet_g5v0d10v5 static         1.0    0.5  4.391463e+03
+
+; C=250, N(w=1.0, l=0.9)
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-high   1.0    0.9  1.122695e+04
+resistance sky130_fd_pr__nfet_05v0_nvt dynamic-low    1.0    0.9  4.226124e+03
+resistance sky130_fd_pr__nfet_05v0_nvt static         1.0    0.9  1.563743e+03
+
+; C=250, P(w=1.0, l=0.15)
+resistance sky130_fd_pr__pfet_01v8 dynamic-high   1.0    0.15  5.628080e+03
+resistance sky130_fd_pr__pfet_01v8 dynamic-low    1.0    0.15  2.326056e+04
+resistance sky130_fd_pr__pfet_01v8 static         1.0    0.15  6.634841e+03
+
+; C=250, P(w=1.0, l=0.35)
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-high   1.0    0.35  5.666200e+03
+resistance sky130_fd_pr__pfet_01v8_lvt dynamic-low    1.0    0.35  2.240883e+04
+resistance sky130_fd_pr__pfet_01v8_lvt static         1.0    0.35  4.642489e+03
+
+; C=250, P(w=1.0, l=0.45)
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-high   1.0    0.45  2.335552e+04
+resistance sky130_fd_pr__pfet_01v8_hvt dynamic-low    1.0    0.45  8.067380e+04
+resistance sky130_fd_pr__pfet_01v8_hvt static         1.0    0.45  2.795110e+04
+
+; C=100, P(w=0.14, l=0.15)
+resistance sky130_fd_pr__special_pfet_pass dynamic-high   0.14    0.15  4.692480e+04
+resistance sky130_fd_pr__special_pfet_pass dynamic-low    0.14    0.15  1.546763e+05
+resistance sky130_fd_pr__special_pfet_pass static         0.14    0.15  8.046645e+04
+
+; C=250, P(w=1.0, l=0.5)
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-high   1.0    0.5  9.906280e+03
+resistance sky130_fd_pr__pfet_g5v0d10v5 dynamic-low    1.0    0.5  3.154140e+04
+resistance sky130_fd_pr__pfet_g5v0d10v5 static         1.0    0.5  1.099553e+04
+