Added IRSIM parameter files to libs.tech/irsim/ as part of the installation.
diff --git a/scripts/configure b/scripts/configure index 9b9bd8d..a199e50 100755 --- a/scripts/configure +++ b/scripts/configure
@@ -594,6 +594,7 @@ MAGIC QFLOW_DISABLED OPENLANE_DISABLED +IRSIM_DISABLED NETGEN_DISABLED MAGIC_DISABLED KLAYOUT_DISABLED @@ -658,6 +659,7 @@ enable_klayout enable_magic enable_netgen +enable_irsim enable_openlane enable_qflow enable_osu_lib @@ -1294,6 +1296,10 @@ Enable or disable netgen [default=enabled] + --enable-irsim + Enable or disable irsim [default=enabled] + + --enable-openlane Enable or disable openlane [default=enabled] @@ -1315,6 +1321,8 @@ Enable or disable magic [default=enabled] --enable-netgen --disable-netgen Enable or disable netgen [default=enabled] + --enable-irsim --disable-irsim + Enable or disable irsim [default=enabled] --enable-openlane --disable-openlane Enable or disable openlane [default=enabled] --enable-qflow --disable-qflow @@ -2284,8 +2292,8 @@ # Set variables for tool setups -{ $as_echo "$as_me:${as_lineno-$LINENO}: Found tools: klayout magic netgen openlane qflow" >&5 -$as_echo "$as_me: Found tools: klayout magic netgen openlane qflow" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: Found tools: klayout magic netgen irsim openlane qflow" >&5 +$as_echo "$as_me: Found tools: klayout magic netgen irsim openlane qflow" >&6;} @@ -2336,6 +2344,21 @@ + IRSIM_DISABLED=0 + # Check whether --enable-irsim was given. +if test "${enable_irsim+set}" = set; then : + enableval=$enable_irsim; + if test "$enableval" == "no" -o "$enableval" == "NO"; then + IRSIM_DISABLED=1 + fi + + +fi + + + + + OPENLANE_DISABLED=0 # Check whether --enable-openlane was given. if test "${enable_openlane+set}" = set; then : @@ -2689,8 +2712,8 @@ -{ $as_echo "$as_me:${as_lineno-$LINENO}: Tools enabled for PDK setup installation: klayout magic netgen openlane qflow" >&5 -$as_echo "$as_me: Tools enabled for PDK setup installation: klayout magic netgen openlane qflow" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: Tools enabled for PDK setup installation: klayout magic netgen irsim openlane qflow" >&5 +$as_echo "$as_me: Tools enabled for PDK setup installation: klayout magic netgen irsim openlane qflow" >&6;} @@ -2738,6 +2761,20 @@ + IRSIM_DISABLED=0 + # Check whether --enable-irsim was given. +if test "${enable_irsim+set}" = set; then : + enableval=$enable_irsim; + if test "$enableval" == "no" -o "$enableval" == "NO"; then + IRSIM_DISABLED=1 + fi + +fi + + + + + OPENLANE_DISABLED=0 # Check whether --enable-openlane was given. if test "${enable_openlane+set}" = set; then :
diff --git a/scripts/tools.txt b/scripts/tools.txt index c679f92..60e9fe0 100644 --- a/scripts/tools.txt +++ b/scripts/tools.txt
@@ -1,5 +1,6 @@ klayout magic netgen +irsim openlane -qflow \ No newline at end of file +qflow
diff --git a/sky130/Makefile.in b/sky130/Makefile.in index 0ebb5fc..e86e1e9 100644 --- a/sky130/Makefile.in +++ b/sky130/Makefile.in
@@ -59,6 +59,9 @@ # --disable-netgen # Do not install setup files for the netgen LVS tool. # +# --disable-irsim +# Do not install setup files for the IRSIM simulation tool. +# # --disable-qflow # Do not install setup files for the qflow synthesis flow. # @@ -212,6 +215,7 @@ MAGICTOP = libs.tech/magic NETGENTOP = libs.tech/netgen +IRSIMTOP = libs.tech/irsim QFLOWTOP = libs.tech/qflow KLAYOUTTOP = libs.tech/klayout OPENLANETOP = libs.tech/openlane @@ -222,20 +226,23 @@ MAGICPATH = ${MAGICTOP} endif -# Currently, netgen, qflow, and klayout do not use revisioning (needs to change!) +# Currently, netgen, qflow, irsim, and klayout do not use revisioning (needs to change!) NETGENPATH = ${NETGENTOP} +IRSIMPATH = ${IRSIMTOP} QFLOWPATH = ${QFLOWTOP} KLAYOUTPATH = ${KLAYOUTTOP} OPENLANEPATH = ${OPENLANETOP} MAGICTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${MAGICTOP} NETGENTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NETGENTOP} +IRSIMTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${IRSIMTOP} QFLOWTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWTOP} KLAYOUTTOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTTOP} OPENLANETOP_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANETOP} MAGIC_STAGING_A = ${STAGING_PATH}/${SKY130A}/${MAGICPATH} NETGEN_STAGING_A = ${STAGING_PATH}/${SKY130A}/${NETGENPATH} +IRSIM_STAGING_A = ${STAGING_PATH}/${SKY130A}/${IRSIMPATH} QFLOW_STAGING_A = ${STAGING_PATH}/${SKY130A}/${QFLOWPATH} KLAYOUT_STAGING_A = ${STAGING_PATH}/${SKY130A}/${KLAYOUTPATH} OPENLANE_STAGING_A = ${STAGING_PATH}/${SKY130A}/${OPENLANEPATH} @@ -287,6 +294,12 @@ TOOLS += netgen endif +# IRSIM_DISABLED = 0 | 1 +IRSIM_DISABLED = @IRSIM_DISABLED@ +ifneq (${IRSIM_DISABLED}, 1) + TOOLS += irsim +endif + all: all-a @@ -376,6 +389,12 @@ ${CPP} ${SKY130A_DEFS} netgen/${TECH}_setup.tcl > ${NETGEN_STAGING_A}/${SKY130A}_setup.tcl (cd ${NETGEN_STAGING_A} ; ln -s ${SKY130A}_setup.tcl setup.tcl) +irsim-a: irsim/ + mkdir -p ${IRSIMTOP_STAGING_A} + mkdir -p ${IRSIM_STAGING_A} + rm -f ${IRSIM_STAGING_A}/${SKY130A}_*.prm + cp irsim/${SKY130A}_*.prm ${IRSIM_STAGING_A}/ + klayout-a: klayout/${TECH}.lyp klayout/${TECH}.lyt mkdir -p ${KLAYOUTTOP_STAGING_A} mkdir -p ${KLAYOUT_STAGING_A}
diff --git a/sky130/irsim/README b/sky130/irsim/README new file mode 100644 index 0000000..f527873 --- /dev/null +++ b/sky130/irsim/README
@@ -0,0 +1,61 @@ +Attempting to get a valid IRSIM .prm file for the sky130 process +Specifically for the sky130_fd_sc_hd library, but should work with all of +them except for sky130_fd_sc_hvl. +------------------------------------------------------------------------ +Following directions from the irsim web page. . . + +Get the "getres" script from ~/gitsrc/irsim/lib/calibrate_spice3/ +Change "spice" (with path) to "ngspice" (with path) +Added string.h, stdlib.h, and malloc.h to findr.c to make it compile, +and compiled it. + +Get characteristics from SPICE, cell sky130_fd_sc_hd__nand2_1 + + P device (sky130_fd_pr__pfet_01v8_lvt): 1.00um wide, 0.15um long + N device (sky130_fd_pr__nfet_01v8): 0.65um wide, 0.15um long + + Using 50fF for loading cap (essentially irrelevant) + +Writing these values into "config.txt" (but not using). + +Copy "ckt.spi" to local directory +Substitute values by hand (obvious) +Use ".lib" to get models (sky130.lib.spice) with corner "tt" +Convert "M" to "X" on devices. + +Changed voltage source on ground to 0.01 ohm resistor because ngspice +doesn't like shorted voltage sources. + +Added ".save all". + +Spice models are in + + ~/projects/efabless/tech/SW/sky130A/libs.tech/ngspice/sky130.lib.spice + +Note that the raw file reader expects an ASCII raw file, which in ngspice +requires in ".spiceinit": + + set filetype=ascii + +Running: + + ngspice -b -r spi.out ckt.spi + +Do *not* use "-n" because that suppresses the reading of the .spiceinit file. + +Run: + + ./findr -c 100 -n 0.8,0.18 -p 1.0,0.18 spi.out |& tee resists + +Had to change "findr.c" to replace "vdd" with "v(vdd)" and the same for all +the vouts. + +Success! + +Now: Redo this at all nine corners for low-typ-high voltage and low-typ-high temp. + +Add header. sky130 gate thickness, from sky130_fd_pr__nfet_01v8 model is 4.15E-9 m, +so: + Cox = Eox / Tox = 8.854E-12 F/m * 3.9 / 4.15E-9 = 8.32E-3 F/m^2 = pF/um^2 + +The other cap values need to be looked up and corrected. . .
diff --git a/sky130/irsim/ckt_1v62_125.spi b/sky130/irsim/ckt_1v62_125.spi new file mode 100644 index 0000000..58d0137 --- /dev/null +++ b/sky130/irsim/ckt_1v62_125.spi
@@ -0,0 +1,48 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/SW/sky130A/libs.tech/ngspice/sky130.lib.spice tt +* +.option TEMP=125 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND sky130_fd_pr__nfet_01v8 L=0.15u W=0.65u +X1 out1 in1 VDD VDD sky130_fd_pr__pfet_01v8_lvt L=0.15u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND sky130_fd_pr__nfet_01v8 L=0.15u W=0.65u +X7 out2 out1 VDD VDD sky130_fd_pr__pfet_01v8_lvt L=0.15u W=1.0u +* +* out3 - Output of an nfet_01v8 pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND sky130_fd_pr__nfet_01v8 L=0.15u W=0.65u +* +* out4 - Output of a pfet_01v8_lvt pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD sky130_fd_pr__pfet_01v8_lvt L=0.15u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.62 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.62 40ns 1.62 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.62) +Vin3 in3 0 5 pwl (0ns 1.62 0.1ns 0) + +.ic V(out4)=1.62 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v62_27.spi b/sky130/irsim/ckt_1v62_27.spi new file mode 100644 index 0000000..c2b9141 --- /dev/null +++ b/sky130/irsim/ckt_1v62_27.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=27 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.62 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.62 40ns 1.62 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.62) +Vin3 in3 0 5 pwl (0ns 1.62 0.1ns 0) + +.ic V(out4)=1.62 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v62_n40.spi b/sky130/irsim/ckt_1v62_n40.spi new file mode 100644 index 0000000..97cb4ac --- /dev/null +++ b/sky130/irsim/ckt_1v62_n40.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=-40 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 10f +C1 out2 GND 10f +C2 out3 GND 10f +C3 out4 GND 10f + +VDD VDD 0 DC 1.62 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.62 40ns 1.62 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.62) +Vin3 in3 0 5 pwl (0ns 1.62 0.1ns 0) + +.ic V(out4)=1.62 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v62_n5.spi b/sky130/irsim/ckt_1v62_n5.spi new file mode 100644 index 0000000..7c709f5 --- /dev/null +++ b/sky130/irsim/ckt_1v62_n5.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=-5 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 10f +C1 out2 GND 10f +C2 out3 GND 10f +C3 out4 GND 10f + +VDD VDD 0 DC 1.62 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.62 40ns 1.62 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.62) +Vin3 in3 0 5 pwl (0ns 1.62 0.1ns 0) + +.ic V(out4)=1.62 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v80_125.spi b/sky130/irsim/ckt_1v80_125.spi new file mode 100644 index 0000000..5b776d0 --- /dev/null +++ b/sky130/irsim/ckt_1v80_125.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=125 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.8 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.8 40ns 1.8 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.8) +Vin3 in3 0 5 pwl (0ns 1.8 0.1ns 0) + +.ic V(out4)=1.8 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v80_27.spi b/sky130/irsim/ckt_1v80_27.spi new file mode 100644 index 0000000..547d667 --- /dev/null +++ b/sky130/irsim/ckt_1v80_27.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=27 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.8 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.8 40ns 1.8 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.8) +Vin3 in3 0 5 pwl (0ns 1.8 0.1ns 0) + +.ic V(out4)=1.8 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v80_n40.spi b/sky130/irsim/ckt_1v80_n40.spi new file mode 100644 index 0000000..4deccb6 --- /dev/null +++ b/sky130/irsim/ckt_1v80_n40.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=-40 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.8 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.8 40ns 1.8 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.8) +Vin3 in3 0 5 pwl (0ns 1.8 0.1ns 0) + +.ic V(out4)=1.8 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v80_n5.spi b/sky130/irsim/ckt_1v80_n5.spi new file mode 100644 index 0000000..6e3982f --- /dev/null +++ b/sky130/irsim/ckt_1v80_n5.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=-5 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.8 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.8 40ns 1.8 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.8) +Vin3 in3 0 5 pwl (0ns 1.8 0.1ns 0) + +.ic V(out4)=1.8 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v98_125.spi b/sky130/irsim/ckt_1v98_125.spi new file mode 100644 index 0000000..3ceed73 --- /dev/null +++ b/sky130/irsim/ckt_1v98_125.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=125 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.98 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.98 40ns 1.98 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.98) +Vin3 in3 0 5 pwl (0ns 1.98 0.1ns 0) + +.ic V(out4)=1.98 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v98_27.spi b/sky130/irsim/ckt_1v98_27.spi new file mode 100644 index 0000000..779a48b --- /dev/null +++ b/sky130/irsim/ckt_1v98_27.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=27 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.98 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.98 40ns 1.98 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.98) +Vin3 in3 0 5 pwl (0ns 1.98 0.1ns 0) + +.ic V(out4)=1.98 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v98_n40.spi b/sky130/irsim/ckt_1v98_n40.spi new file mode 100644 index 0000000..2186b28 --- /dev/null +++ b/sky130/irsim/ckt_1v98_n40.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=-40 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.98 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.98 40ns 1.98 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.98) +Vin3 in3 0 5 pwl (0ns 1.98 0.1ns 0) + +.ic V(out4)=1.98 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/ckt_1v98_n5.spi b/sky130/irsim/ckt_1v98_n5.spi new file mode 100644 index 0000000..ced2f12 --- /dev/null +++ b/sky130/irsim/ckt_1v98_n5.spi
@@ -0,0 +1,49 @@ +* +* spice test file for generating .prm files. +* +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/param.lib 3s +.lib /home/tim/projects/efabless/tech/XFAB/EFXH018D/libs.tech/models/lpmos/xh018.lib tm +* +.option TEMP=-5 +* +* out1 - Output of Inverter to measure step response. +* +X0 out1 in1 GND GND ne L=0.18u W=0.8u +X1 out1 in1 VDD VDD pe L=0.18u W=1.0u +* +* out2 - Output of Inverter driven by out1 to determine slow-input effect. +* +X6 out2 out1 GND GND ne L=0.18u W=0.8u +X7 out2 out1 VDD VDD pe L=0.18u W=1.0u +* +* out3 - Output of a ne pulling up to determine dynamic-high resistance. +* +X2 out3 in2 VDD GND ne L=0.18u W=0.8u +* +* out4 - Output of a pe pulling down to determine dynamic-low resistance. +* +X3 out4 in3 GND VDD pe L=0.18u W=1.0u +* +* loading capacitors +* +C0 out1 GND 50f +C1 out2 GND 50f +C2 out3 GND 50f +C3 out4 GND 50f + +VDD VDD 0 DC 1.98 +* VGnd GND 0 DC 0 +RGnd GND 0 0.01 +Vmid mid 0 DC 0.9 + +Vin1 in1 0 0 pwl (0ns 0 0.1ns 1.98 40ns 1.98 40.1ns 0) +Vin2 in2 0 0 pwl (0ns 0 0.1ns 1.98) +Vin3 in3 0 5 pwl (0ns 1.98 0.1ns 0) + +.ic V(out4)=1.98 + +.tran 0.01ns 80ns + +.save all + +.end
diff --git a/sky130/irsim/config.txt b/sky130/irsim/config.txt new file mode 100644 index 0000000..4fd6813 --- /dev/null +++ b/sky130/irsim/config.txt
@@ -0,0 +1,8 @@ +# +set pwith = 1.0 # width of p-device in um +set plen = 0.15 # length of p-device in um +set nwith = 0.65 # width of n-device in um +set nlen = 0.15 # length of n-device in um +set cap = 50 # loading capacitance in fF + +
diff --git a/sky130/irsim/findr b/sky130/irsim/findr new file mode 100755 index 0000000..08b2b15 --- /dev/null +++ b/sky130/irsim/findr Binary files differ
diff --git a/sky130/irsim/getres b/sky130/irsim/getres new file mode 100755 index 0000000..113ebec --- /dev/null +++ b/sky130/irsim/getres
@@ -0,0 +1,60 @@ +#! /bin/csh + +set spice = /usr/local/bin/ngspice + +if( $#argv != 3 ) then + echo "usage: getres nmodel_file pmodel_file dev_file" + exit 1 +endif + +if( ! -f $1 ) then + echo "can't open spice nfet model file '"$1"'" + exit 1 +endif + +if( ! -f $2 ) then + echo "can't open spice pfet model file '"$2"'" + exit 1 +endif + +if( -f $argv[3] ) then + source $argv[3] +else + echo "can't open device configuration file '"$argv[3]"'" + exit 1 +endif + +set nmos = `grep -i "\.MODEL" $1 | grep -i NMOS` +set pmos = `grep -i "\.MODEL" $1 | grep -i PMOS` + +if( $#nmos == 0 ) then + echo "can't find nmos .MODEL card in '"$1"'" + exit 1 +endif +if( $#pmos == 0 ) then + echo "can't find pmos .MODEL card in '"$1"'" + exit 1 +endif + +cat $1 ckt.spi > tmp.spi + +ed - <<end tmp.spi >& /dev/null +g/N_FET/s/N_FET/$nmos[2]/g +g/P_FET/s/P_FET/$pmos[2]/g +g/C_LOAD/s/C_LOAD/$cap/g +g/N_WITH/s/N_WITH/$nwith/g +g/N_LEN/s/N_LEN/$nlen/g +g/P_WITH/s/P_WITH/$pwith/g +g/P_LEN/s/P_LEN/$plen/g +w +q +end + +$spice -n -b -r spi.out tmp.spi + +if( $status != 0 ) then + echo "something went wrong with spice, look at 'tmp.spi'" + exit 1 +endif + +./findr -c $cap -n $nwith,$nlen -p $pwith,$plen spi.out |& tee resists
diff --git a/sky130/irsim/header.txt b/sky130/irsim/header.txt new file mode 100644 index 0000000..03e1494 --- /dev/null +++ b/sky130/irsim/header.txt
@@ -0,0 +1,21 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor +
diff --git a/sky130/irsim/resists b/sky130/irsim/resists new file mode 100644 index 0000000..c6111ce --- /dev/null +++ b/sky130/irsim/resists
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 1512.0 +resistance n-channel dynamic-low 0.8 0.2 865.0 +resistance n-channel static 0.8 0.2 1.0 + +resistance p-channel dynamic-high 1.0 0.2 2493.0 +resistance p-channel dynamic-low 1.0 0.2 4062.0 +resistance p-channel static 1.0 0.2 597.0
diff --git a/sky130/irsim/run_all.sh b/sky130/irsim/run_all.sh new file mode 100755 index 0000000..5bb7bb1 --- /dev/null +++ b/sky130/irsim/run_all.sh
@@ -0,0 +1,50 @@ +#!/bin/sh + +# -40C vdd=1.62V +/usr/local/bin/ngspice -b -r spi_1v62_n40.out ckt_1v62_n40.spi +./findr -c 10 -n 0.8,0.18 -p 1.0,0.18 spi_1v62_n40.out |& tee sky130_1v62_n40.prm + +# -40C vdd=1.80V +/usr/local/bin/ngspice -b -r spi_1v80_n40.out ckt_1v80_n40.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v80_n40.out |& tee sky130_1v80_n40.prm + +# -40C vdd=1.98V +/usr/local/bin/ngspice -b -r spi_1v98_n40.out ckt_1v98_n40.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v98_n40.out |& tee sky130_1v98_n40.prm + +# -5C vdd=1.62V +/usr/local/bin/ngspice -b -r spi_1v62_n5.out ckt_1v62_n5.spi +./findr -c 10 -n 0.8,0.18 -p 1.0,0.18 spi_1v62_n5.out |& tee sky130_1v62_n5.prm + +# -5C vdd=1.80V +/usr/local/bin/ngspice -b -r spi_1v80_n5.out ckt_1v80_n5.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v80_n5.out |& tee sky130_1v80_n5.prm + +# -5C vdd=1.98V +/usr/local/bin/ngspice -b -r spi_1v98_n5.out ckt_1v98_n5.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v98_n5.out |& tee sky130_1v98_n5.prm + +# 27C vdd=1.62V +/usr/local/bin/ngspice -b -r spi_1v62_27.out ckt_1v62_27.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v62_27.out |& tee sky130_1v62_27.prm + +# 27C vdd=1.8V +/usr/local/bin/ngspice -b -r spi_1v80_27.out ckt_1v80_27.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v80_27.out |& tee sky130_1v80_27.prm + +# 27C vdd=1.98V +/usr/local/bin/ngspice -b -r spi_1v98_27.out ckt_1v98_27.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v98_27.out |& tee sky130_1v98_27.prm + +# 125C vdd=1.62V +/usr/local/bin/ngspice -b -r spi_1v62_125.out ckt_1v62_125.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v62_125.out |& tee sky130_1v62_125.prm + +# 125C vdd=1.8V +/usr/local/bin/ngspice -b -r spi_1v80_125.out ckt_1v80_125.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v80_125.out |& tee sky130_1v80_125.prm + +# 125C vdd=1.98V +/usr/local/bin/ngspice -b -r spi_1v98_125.out ckt_1v98_125.spi +./findr -c 50 -n 0.8,0.18 -p 1.0,0.18 spi_1v98_125.out |& tee sky130_1v98_125.prm +
diff --git a/sky130/irsim/sky130A_1v62_27.prm b/sky130/irsim/sky130A_1v62_27.prm new file mode 100644 index 0000000..c2907a5 --- /dev/null +++ b/sky130/irsim/sky130A_1v62_27.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 40227.0 +resistance n-channel dynamic-low 0.8 0.2 3549.0 +resistance n-channel static 0.8 0.2 4518.0 + +resistance p-channel dynamic-high 1.0 0.2 8694.0 +resistance p-channel dynamic-low 1.0 0.2 662526.0 +resistance p-channel static 1.0 0.2 5762.0
diff --git a/sky130/irsim/sky130A_1v62_n40.prm b/sky130/irsim/sky130A_1v62_n40.prm new file mode 100644 index 0000000..6fe1485 --- /dev/null +++ b/sky130/irsim/sky130A_1v62_n40.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 108132.0 +resistance n-channel dynamic-low 0.8 0.2 6704.0 +resistance n-channel static 0.8 0.2 2838.0 + +resistance p-channel dynamic-high 1.0 0.2 14294.0 +resistance p-channel dynamic-low 1.0 0.2 5584975.0 +resistance p-channel static 1.0 0.2 -8337.0
diff --git a/sky130/irsim/sky130A_1v62_n5.prm b/sky130/irsim/sky130A_1v62_n5.prm new file mode 100644 index 0000000..90cd9bc --- /dev/null +++ b/sky130/irsim/sky130A_1v62_n5.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 65335.0 +resistance n-channel dynamic-low 0.8 0.2 6857.0 +resistance n-channel static 0.8 0.2 2987.0 + +resistance p-channel dynamic-high 1.0 0.2 14543.0 +resistance p-channel dynamic-low 1.0 0.2 1684744.0 +resistance p-channel static 1.0 0.2 -7823.0
diff --git a/sky130/irsim/sky130A_1v80_125.prm b/sky130/irsim/sky130A_1v80_125.prm new file mode 100644 index 0000000..4462782 --- /dev/null +++ b/sky130/irsim/sky130A_1v80_125.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 14005.0 +resistance n-channel dynamic-low 0.8 0.2 3516.0 +resistance n-channel static 0.8 0.2 3719.0 + +resistance p-channel dynamic-high 1.0 0.2 7852.0 +resistance p-channel dynamic-low 1.0 0.2 73111.0 +resistance p-channel static 1.0 0.2 5295.0
diff --git a/sky130/irsim/sky130A_1v80_27.prm b/sky130/irsim/sky130A_1v80_27.prm new file mode 100644 index 0000000..0505c58 --- /dev/null +++ b/sky130/irsim/sky130A_1v80_27.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 18174.0 +resistance n-channel dynamic-low 0.8 0.2 3195.0 +resistance n-channel static 0.8 0.2 3335.0 + +resistance p-channel dynamic-high 1.0 0.2 7482.0 +resistance p-channel dynamic-low 1.0 0.2 204714.0 +resistance p-channel static 1.0 0.2 4204.0
diff --git a/sky130/irsim/sky130A_1v80_n40.prm b/sky130/irsim/sky130A_1v80_n40.prm new file mode 100644 index 0000000..0d67be8 --- /dev/null +++ b/sky130/irsim/sky130A_1v80_n40.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 27589.0 +resistance n-channel dynamic-low 0.8 0.2 3019.0 +resistance n-channel static 0.8 0.2 3101.0 + +resistance p-channel dynamic-high 1.0 0.2 7192.0 +resistance p-channel dynamic-low 1.0 0.2 913408.0 +resistance p-channel static 1.0 0.2 3520.0
diff --git a/sky130/irsim/sky130A_1v80_n5.prm b/sky130/irsim/sky130A_1v80_n5.prm new file mode 100644 index 0000000..0260997 --- /dev/null +++ b/sky130/irsim/sky130A_1v80_n5.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 21254.0 +resistance n-channel dynamic-low 0.8 0.2 3106.0 +resistance n-channel static 0.8 0.2 3220.0 + +resistance p-channel dynamic-high 1.0 0.2 7350.0 +resistance p-channel dynamic-low 1.0 0.2 371015.0 +resistance p-channel static 1.0 0.2 3867.0
diff --git a/sky130/irsim/sky130A_1v98_125.prm b/sky130/irsim/sky130A_1v98_125.prm new file mode 100644 index 0000000..a6992c6 --- /dev/null +++ b/sky130/irsim/sky130A_1v98_125.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 10002.0 +resistance n-channel dynamic-low 0.8 0.2 3230.0 +resistance n-channel static 0.8 0.2 2957.0 + +resistance p-channel dynamic-high 1.0 0.2 7027.0 +resistance p-channel dynamic-low 1.0 0.2 44348.0 +resistance p-channel static 1.0 0.2 4191.0
diff --git a/sky130/irsim/sky130A_1v98_27.prm b/sky130/irsim/sky130A_1v98_27.prm new file mode 100644 index 0000000..635cd07 --- /dev/null +++ b/sky130/irsim/sky130A_1v98_27.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 10925.0 +resistance n-channel dynamic-low 0.8 0.2 2949.0 +resistance n-channel static 0.8 0.2 2583.0 + +resistance p-channel dynamic-high 1.0 0.2 6683.0 +resistance p-channel dynamic-low 1.0 0.2 82493.0 +resistance p-channel static 1.0 0.2 3232.0
diff --git a/sky130/irsim/sky130A_1v98_n40.prm b/sky130/irsim/sky130A_1v98_n40.prm new file mode 100644 index 0000000..3047588 --- /dev/null +++ b/sky130/irsim/sky130A_1v98_n40.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 12455.0 +resistance n-channel dynamic-low 0.8 0.2 2795.0 +resistance n-channel static 0.8 0.2 2364.0 + +resistance p-channel dynamic-high 1.0 0.2 6425.0 +resistance p-channel dynamic-low 1.0 0.2 216474.0 +resistance p-channel static 1.0 0.2 2648.0
diff --git a/sky130/irsim/sky130A_1v98_n5.prm b/sky130/irsim/sky130A_1v98_n5.prm new file mode 100644 index 0000000..b3b05c9 --- /dev/null +++ b/sky130/irsim/sky130A_1v98_n5.prm
@@ -0,0 +1,28 @@ +; +; configuration file for sky130 (0.13um process) +; + +lambda 0.005 ; length scaling, microns (1 lambda = 1 centimicron) + +capga .00832 ; gate capacitance, pF/micron^2 + +capda 0.0012 +capdp 0.0013 +cappda 0.00260 +cappdp 0.00090 + +lowthresh 0.5 ; logic low threshold as a normalized voltage +highthresh 0.5 ; logic high threshold as a normalized voltage + +cntpullup 0 ; irrelevant, cmos technology; no depletion transistors +diffperim 0 ; don't include diffusion perimeters for sidewall cap. +subparea 0 ; poly over transistor won't count as part pf bulk-poly cap. +diffext 0 ; diffusion extension for each transistor + +resistance n-channel dynamic-high 0.8 0.2 11492.0 +resistance n-channel dynamic-low 0.8 0.2 2872.0 +resistance n-channel static 0.8 0.2 2474.0 + +resistance p-channel dynamic-high 1.0 0.2 6564.0 +resistance p-channel dynamic-low 1.0 0.2 119412.0 +resistance p-channel static 1.0 0.2 2943.0
diff --git a/sky130/irsim/sky130_1v62_27.prm b/sky130/irsim/sky130_1v62_27.prm new file mode 100644 index 0000000..111491f --- /dev/null +++ b/sky130/irsim/sky130_1v62_27.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 40227.0 +resistance n-channel dynamic-low 0.8 0.2 3549.0 +resistance n-channel static 0.8 0.2 4518.0 + +resistance p-channel dynamic-high 1.0 0.2 8694.0 +resistance p-channel dynamic-low 1.0 0.2 662526.0 +resistance p-channel static 1.0 0.2 5762.0
diff --git a/sky130/irsim/sky130_1v62_n40.prm b/sky130/irsim/sky130_1v62_n40.prm new file mode 100644 index 0000000..b9245ff --- /dev/null +++ b/sky130/irsim/sky130_1v62_n40.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 108132.0 +resistance n-channel dynamic-low 0.8 0.2 6704.0 +resistance n-channel static 0.8 0.2 2838.0 + +resistance p-channel dynamic-high 1.0 0.2 14294.0 +resistance p-channel dynamic-low 1.0 0.2 5584975.0 +resistance p-channel static 1.0 0.2 -8337.0
diff --git a/sky130/irsim/sky130_1v62_n5.prm b/sky130/irsim/sky130_1v62_n5.prm new file mode 100644 index 0000000..904231f --- /dev/null +++ b/sky130/irsim/sky130_1v62_n5.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 65335.0 +resistance n-channel dynamic-low 0.8 0.2 6857.0 +resistance n-channel static 0.8 0.2 2987.0 + +resistance p-channel dynamic-high 1.0 0.2 14543.0 +resistance p-channel dynamic-low 1.0 0.2 1684744.0 +resistance p-channel static 1.0 0.2 -7823.0
diff --git a/sky130/irsim/sky130_1v80_125.prm b/sky130/irsim/sky130_1v80_125.prm new file mode 100644 index 0000000..b88a3c5 --- /dev/null +++ b/sky130/irsim/sky130_1v80_125.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 14005.0 +resistance n-channel dynamic-low 0.8 0.2 3516.0 +resistance n-channel static 0.8 0.2 3719.0 + +resistance p-channel dynamic-high 1.0 0.2 7852.0 +resistance p-channel dynamic-low 1.0 0.2 73111.0 +resistance p-channel static 1.0 0.2 5295.0
diff --git a/sky130/irsim/sky130_1v80_27.prm b/sky130/irsim/sky130_1v80_27.prm new file mode 100644 index 0000000..5794946 --- /dev/null +++ b/sky130/irsim/sky130_1v80_27.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 18174.0 +resistance n-channel dynamic-low 0.8 0.2 3195.0 +resistance n-channel static 0.8 0.2 3335.0 + +resistance p-channel dynamic-high 1.0 0.2 7482.0 +resistance p-channel dynamic-low 1.0 0.2 204714.0 +resistance p-channel static 1.0 0.2 4204.0
diff --git a/sky130/irsim/sky130_1v80_n40.prm b/sky130/irsim/sky130_1v80_n40.prm new file mode 100644 index 0000000..896a95a --- /dev/null +++ b/sky130/irsim/sky130_1v80_n40.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 27589.0 +resistance n-channel dynamic-low 0.8 0.2 3019.0 +resistance n-channel static 0.8 0.2 3101.0 + +resistance p-channel dynamic-high 1.0 0.2 7192.0 +resistance p-channel dynamic-low 1.0 0.2 913408.0 +resistance p-channel static 1.0 0.2 3520.0
diff --git a/sky130/irsim/sky130_1v80_n5.prm b/sky130/irsim/sky130_1v80_n5.prm new file mode 100644 index 0000000..5c33f27 --- /dev/null +++ b/sky130/irsim/sky130_1v80_n5.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 21254.0 +resistance n-channel dynamic-low 0.8 0.2 3106.0 +resistance n-channel static 0.8 0.2 3220.0 + +resistance p-channel dynamic-high 1.0 0.2 7350.0 +resistance p-channel dynamic-low 1.0 0.2 371015.0 +resistance p-channel static 1.0 0.2 3867.0
diff --git a/sky130/irsim/sky130_1v98_125.prm b/sky130/irsim/sky130_1v98_125.prm new file mode 100644 index 0000000..f626170 --- /dev/null +++ b/sky130/irsim/sky130_1v98_125.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 10002.0 +resistance n-channel dynamic-low 0.8 0.2 3230.0 +resistance n-channel static 0.8 0.2 2957.0 + +resistance p-channel dynamic-high 1.0 0.2 7027.0 +resistance p-channel dynamic-low 1.0 0.2 44348.0 +resistance p-channel static 1.0 0.2 4191.0
diff --git a/sky130/irsim/sky130_1v98_27.prm b/sky130/irsim/sky130_1v98_27.prm new file mode 100644 index 0000000..dccd563 --- /dev/null +++ b/sky130/irsim/sky130_1v98_27.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 10925.0 +resistance n-channel dynamic-low 0.8 0.2 2949.0 +resistance n-channel static 0.8 0.2 2583.0 + +resistance p-channel dynamic-high 1.0 0.2 6683.0 +resistance p-channel dynamic-low 1.0 0.2 82493.0 +resistance p-channel static 1.0 0.2 3232.0
diff --git a/sky130/irsim/sky130_1v98_n40.prm b/sky130/irsim/sky130_1v98_n40.prm new file mode 100644 index 0000000..dbb0df1 --- /dev/null +++ b/sky130/irsim/sky130_1v98_n40.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 12455.0 +resistance n-channel dynamic-low 0.8 0.2 2795.0 +resistance n-channel static 0.8 0.2 2364.0 + +resistance p-channel dynamic-high 1.0 0.2 6425.0 +resistance p-channel dynamic-low 1.0 0.2 216474.0 +resistance p-channel static 1.0 0.2 2648.0
diff --git a/sky130/irsim/sky130_1v98_n5.prm b/sky130/irsim/sky130_1v98_n5.prm new file mode 100644 index 0000000..368fb9d --- /dev/null +++ b/sky130/irsim/sky130_1v98_n5.prm
@@ -0,0 +1,7 @@ +resistance n-channel dynamic-high 0.8 0.2 11492.0 +resistance n-channel dynamic-low 0.8 0.2 2872.0 +resistance n-channel static 0.8 0.2 2474.0 + +resistance p-channel dynamic-high 1.0 0.2 6564.0 +resistance p-channel dynamic-low 1.0 0.2 119412.0 +resistance p-channel static 1.0 0.2 2943.0