Removed the custom technology LEF files, as these have been added
to the Google/SkyWater git repository. Added more complete
instructions for cloning and installing the Google/SkyWater
repository. Modified the Makefile and qflow setup file for use
with the technology LEF files from the repo.
diff --git a/sky130/Makefile b/sky130/Makefile
index dfda37a..adcaa9a 100644
--- a/sky130/Makefile
+++ b/sky130/Makefile
@@ -332,13 +332,14 @@
-library general sky130_fd_io |& tee -a ${SKY130A}_install.log
# Install all SkyWater digital standard cells.
${STAGE} -source ${SKYWATER_PATH} -target ${STAGING_PATH}/${SKY130A} \
- -spice %l/v%v/cells/*/*.spice compile-only \
- -cdl %l/v%v/cells/*/*.cdl ignore=topography compile-only \
- -lef %l/v%v/cells/*/*.lef compile-only \
- -doc %l/v%v/cells/*/*.pdf \
- -lib %l/v%v/timing/*.lib \
- -gds %l/v%v/cells/*/*.gds compile-only \
- -verilog %l/v%v/cells/*/*.v exclude=*.*.v compile-only \
+ -techlef %l/latest/tech/*.tlef \
+ -spice %l/latest/cells/*/*.spice compile-only \
+ -cdl %l/latest/cells/*/*.cdl ignore=topography compile-only \
+ -lef %l/latest/cells/*/*.lef compile-only \
+ -doc %l/latest/cells/*/*.pdf \
+ -lib %l/latest/timing/*.lib \
+ -gds %l/latest/cells/*/*.gds compile-only \
+ -verilog %l/latest/cells/*/*.v exclude=*.*.v compile-only \
-library digital sky130_fd_sc_hd \
-library digital sky130_fd_sc_hdll \
-library digital sky130_fd_sc_hvl \
@@ -359,25 +360,6 @@
${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
-ngspice models/*.lib rename ${SKY130A}.lib \
|& tee -a ${SKY130A}_install.log
- # Install custom additions to digital libraries
- ${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
- -techlef techLEF/sky130_fd_sc_hd_tech.lef \
- -library digital sky130_fd_sc_hd |& tee -a ${SKY130A}_install.log
- ${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
- -techlef techLEF/sky130_fd_sc_hd_tech.lef \
- rename sky130_fd_sc_hdll_tech.lef \
- -library digital sky130_fd_sc_hdll |& tee -a ${SKY130A}_install.log
- ${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
- -techlef techLEF/sky130_fd_sc_hs_tech.lef \
- -library digital sky130_fd_sc_hs |& tee -a ${SKY130A}_install.log
- ${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
- -techlef techLEF/sky130_fd_sc_hs_tech.lef \
- rename sky130_fd_sc_ms_tech.lef \
- -library digital sky130_fd_sc_ms |& tee -a ${SKY130A}_install.log
- ${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
- -techlef techLEF/sky130_fd_sc_hs_tech.lef \
- rename sky130_fd_sc_ls_tech.lef \
- -library digital sky130_fd_sc_ls |& tee -a ${SKY130A}_install.log
# Install custom additions to I/O pad library
${STAGE} -source ./custom -target ${STAGING_PATH}/${SKY130A} \
-gds %l/gds/*.gds \
diff --git a/sky130/README b/sky130/README
index ebbdb8b..34d89ae 100644
--- a/sky130/README
+++ b/sky130/README
@@ -26,7 +26,33 @@
git clone https://github.com/google/skywater-pdk
- Then follow the instructions below.
+ Note that many of the files in the PDK are too large for a single git
+ repository, and so each IP library in the PDK has been placed in a
+ submodule. There are multiple versions of each library, and it is
+ nearly certain that you will only want to deal with the "latest" version
+ of each. To make sure you have the submodules for the latest version of
+ each supported IP library, do:
+
+ cd skywater-pdk
+ git submodule init libraries/sky_fd_sc_hd/latest
+ git submodule init libraries/sky_fd_sc_hdll/latest
+ git submodule init libraries/sky_fd_sc_hs/latest
+ git submodule init libraries/sky_fd_sc_ms/latest
+ git submodule init libraries/sky_fd_sc_ls/latest
+ git submodule init libraries/sky_fd_sc_lp/latest
+ git submodule init libraries/sky_fd_sc_hvl/latest
+ git submodule update
+
+ The liberty (.lib) files are the largest of all and so individual files
+ are too large for the git repo and need to be assembled by script. To
+ do that, do:
+
+ make timing
+
+ That installs all of the Google/Skywater files.
+
+ Then follow the instructions below for generating the additional files
+ for supporting the open source EDA tool flows.
2. EDA tools:
diff --git a/sky130/custom/techLEF/sky130_fd_sc_hd_tech.lef b/sky130/custom/techLEF/sky130_fd_sc_hd_tech.lef
deleted file mode 100644
index d5e0b31..0000000
--- a/sky130/custom/techLEF/sky130_fd_sc_hd_tech.lef
+++ /dev/null
@@ -1,746 +0,0 @@
-VERSION 5.7 ;
-BUSBITCHARS "[]" ;
-DIVIDERCHAR "/" ;
-UNITS
- TIME NANOSECONDS 1 ;
- CAPACITANCE PICOFARADS 1 ;
- RESISTANCE OHMS 1 ;
- DATABASE MICRONS 1000 ;
-END UNITS
-MANUFACTURINGGRID 0.005 ;
-
-SITE unithd
- SYMMETRY Y ;
- CLASS CORE ;
- SIZE 0.460 BY 2.720 ;
-END unithd
-
-LAYER li1
- TYPE ROUTING ;
- DIRECTION VERTICAL ;
-
- PITCH 0.46 0.34 ;
- OFFSET 0.23 0.17 ;
-
- WIDTH 0.170 ; # LI 1
- # SPACING 0.170 ; # LI 2
- SPACINGTABLE
- PARALLELRUNLENGTH 0
- WIDTH 0 0.170000 ;
- AREA 0.0561 ; # LI 6
- THICKNESS 0.10 ;
-
- RESISTANCE RPERSQ 12.2 ;
-
- ANTENNAMODEL OXIDE1 ;
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 75.0 ) ( 0.0125 75.0 ) ( 0.0225 85.125 ) ( 22.5 10200.0 ) ) ;
-
-
-END li1
-
-LAYER mcon
- TYPE CUT ;
- WIDTH 0.17 ; # Mcon 1
- SPACING 0.19 ; # Mcon 2
- ENCLOSURE BELOW 0.0 0.0 ; # Mcon 4
- ENCLOSURE ABOVE 0.030 0.060 ; # Met1 4 / Met1 5
-
- DCCURRENTDENSITY AVERAGE 0.36 ; # mA per via Iavg_max at Tj = 90oC
- ANTENNADIFFAREARATIO PWL ( ( 0.0 3.0 ) ( 0.0125 3.0 ) ( 0.0225 3.405 ) ( 22.5 408.0 ) ) ;
-
-END mcon
-
-LAYER met1
- TYPE ROUTING ;
- DIRECTION HORIZONTAL ;
-
- PITCH 0.34 ;
- OFFSET 0.17 ;
-
- WIDTH 0.140 ; # Met1 1
- #SPACING 0.140 ; # Met1 2
- #SPACING 0.280 RANGE 3.001 100 ; # Met1 3b
- SPACINGTABLE
- PARALLELRUNLENGTH 0.000
- WIDTH 0.000 0.140000
- WIDTH 3.000000 0.280000
- ;
- AREA 0.083 ; # Met1 6
- THICKNESS 0.35 ;
-
- ANTENNAMODEL OXIDE1 ;
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
-
- EDGECAPACITANCE 1.79E-6 ;
- CAPACITANCE CPERSQDIST 25.8E-6 ;
- DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 6.1 ; # mA/um Irms_max at Tj = 90oC
- MAXIMUMDENSITY 70.0 ;
- DENSITYCHECKWINDOW 700.0 700.0 ;
- DENSITYCHECKSTEP 70.0 ;
-
- RESISTANCE RPERSQ 0.125 ;
-END met1
-
-LAYER via
- TYPE CUT ;
- WIDTH 0.15 ; # Via 1a
- SPACING 0.17 ; # Via 2
- ENCLOSURE BELOW 0.055 0.085 ; # Via 4a / Via 5a
- ENCLOSURE ABOVE 0.055 0.085 ; # Met2 4 / Met2 5
- ANTENNADIFFAREARATIO PWL ( ( 0.0 6.0 ) ( 0.0125 6.0 ) ( 0.0225 6.81 ) ( 22.5 816.0 ) ) ;
- DCCURRENTDENSITY AVERAGE 0.29 ; # mA per via Iavg_max at Tj = 90oC
-END via
-
-LAYER met2
- TYPE ROUTING ;
- DIRECTION VERTICAL ;
-
- PITCH 0.46 ;
- OFFSET 0.23 ;
-
- WIDTH 0.140 ; # Met2 1
- #SPACING 0.140 ; # Met2 2
- #SPACING 0.280 RANGE 3.001 100 ; # Met2 3b
- SPACINGTABLE
- PARALLELRUNLENGTH 0.000
- WIDTH 0.000 0.140000
- WIDTH 3.000000 0.28000 ;
- AREA 0.0676 ; # Met2 6
- THICKNESS 0.35 ;
-
- ANTENNAMODEL OXIDE1 ;
- CAPACITANCE CPERSQDIST 17.5E-6 ;
- DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 6.1 ; # mA/um Irms_max at Tj = 90oC
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 400.0 ) ( 0.0125 400.0 ) ( 0.0225 2609.0 ) ( 22.5 11600.0 ) ) ;
-
- MAXIMUMDENSITY 70.0 ;
- DENSITYCHECKWINDOW 700.0 700.0 ;
- DENSITYCHECKSTEP 70.0 ;
- RESISTANCE RPERSQ 0.125 ;
-END met2
-
-LAYER via2
- TYPE CUT ;
- WIDTH 0.20 ; # Via2 1
- SPACING 0.20 ; # Via2 2
- ENCLOSURE BELOW 0.040 0.085 ; # Via2 4
- ENCLOSURE ABOVE 0.065 0.065 ; # Met3 4
- ANTENNADIFFAREARATIO PWL ( ( 0.0 6.0 ) ( 0.0125 6.0 ) ( 0.0225 6.81 ) ( 22.5 816.0 ) ) ;
- DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC
-
-END via2
-
-LAYER met3
- TYPE ROUTING ;
- DIRECTION HORIZONTAL ;
-
- PITCH 0.68 ;
- OFFSET 0.34 ;
-
- WIDTH 0.300 ; # Met3 1
- #SPACING 0.300 ; # Met3 2
- SPACINGTABLE
- PARALLELRUNLENGTH 0
- WIDTH 0 0.30
- WIDTH 3.0 0.40 ;
- AREA 0.240 ; # Met3 6
- THICKNESS 0.8 ;
-
- EDGECAPACITANCE 1.86E-6 ;
- CAPACITANCE CPERSQDIST 12.6E-6 ;
- DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 14.9 ; # mA/um Irms_max at Tj = 90oC
-
- ANTENNAMODEL OXIDE1 ;
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 400.0 ) ( 0.0125 400.0 ) ( 0.0225 2609.0 ) ( 22.5 11600.0 ) ) ;
-
- MAXIMUMDENSITY 70.0 ;
- DENSITYCHECKWINDOW 700.0 700.0 ;
- DENSITYCHECKSTEP 70.0 ;
- RESISTANCE RPERSQ 0.047 ;
-END met3
-
-LAYER via3
- TYPE CUT ;
-
- WIDTH 0.20 ; # Via3 1
- SPACING 0.20 ; # Via3 2
- ENCLOSURE BELOW 0.060 0.090 ; # Via3 4 / Via3 5
- ENCLOSURE ABOVE 0.065 0.065 ; # Met4 3
- ANTENNADIFFAREARATIO PWL ( ( 0.0 6.0 ) ( 0.0125 6.0 ) ( 0.0225 6.81 ) ( 22.5 816.0 ) ) ;
- DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC
-END via3
-
-LAYER met4
- TYPE ROUTING ;
- DIRECTION VERTICAL ;
-
- PITCH 0.92 ;
- OFFSET 0.46 ;
-
- WIDTH 0.300 ; # Met4 1
- #SPACING 0.300 ; # Met4 2
-
- SPACINGTABLE
- PARALLELRUNLENGTH 0
- WIDTH 0 0.30
- WIDTH 3.0 0.40 ;
- AREA 0.240 ; # Met4 4a
-
- THICKNESS 0.8 ;
-
- EDGECAPACITANCE 1.29E-6 ;
- CAPACITANCE CPERSQDIST 8.67E-6 ;
- DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 14.9 ; # mA/um Irms_max at Tj = 90oC
- ANTENNAMODEL OXIDE1 ;
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 400.0 ) ( 0.0125 400.0 ) ( 0.0225 2609.0 ) ( 22.5 11600.0 ) ) ;
-
- MAXIMUMDENSITY 70.0 ;
- DENSITYCHECKWINDOW 700.0 700.0 ;
- DENSITYCHECKSTEP 70.0 ;
- RESISTANCE RPERSQ 0.047 ;
-END met4
-
-LAYER via4
- TYPE CUT ;
-
- WIDTH 0.80 ; # Via4 1
- SPACING 0.80 ; # Via4 2
- ENCLOSURE BELOW 0.190 0.190 ; # Via4 4
- ENCLOSURE ABOVE 0.310 0.310 ; # Met5 3
- ANTENNADIFFAREARATIO PWL ( ( 0.0 6.0 ) ( 0.0125 6.0 ) ( 0.0225 6.81 ) ( 22.5 816.0 ) ) ;
- DCCURRENTDENSITY AVERAGE 2.49 ; # mA per via Iavg_max at Tj = 90oC
-END via4
-
-LAYER met5
- TYPE ROUTING ;
- DIRECTION HORIZONTAL ;
-
- PITCH 3.4 ;
- OFFSET 1.7 ;
-
- WIDTH 1.600 ; # Met5 1
- #SPACING 1.600 ; # Met5 2
- SPACINGTABLE
- PARALLELRUNLENGTH 0
- WIDTH 0 1.600 ;
- AREA 4.000 ; # Met5 4
-
- THICKNESS 1.2 ;
-
- ANTENNAMODEL OXIDE1 ;
- EDGECAPACITANCE 4.96E-6 ;
- CAPACITANCE CPERSQDIST 6.48E-6 ;
- DCCURRENTDENSITY AVERAGE 10.17 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 22.34 ; # mA/um Irms_max at Tj = 90oC
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.0 400.0 ) ( 0.0125 400.0 ) ( 0.0225 2609.0 ) ( 22.5 11600.0 ) ) ;
-
- RESISTANCE RPERSQ 0.0285 ;
-END met5
-
-### Routing via cells section ###
-# Plus via rule, metals are along the prefered direction
-VIA L1M1_PR DEFAULT
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER li1 ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER met1 ;
- RECT -0.145000 -0.115000 0.145000 0.115000 ;
-END L1M1_PR
-
-VIARULE L1M1_PR GENERATE
- LAYER li1 ;
- ENCLOSURE 0.000000 0.000000 ;
- LAYER met1 ;
- ENCLOSURE 0.060000 0.030000 ;
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- SPACING 0.360000 BY 0.360000 ;
-END L1M1_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA L1M1_PR_R DEFAULT
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER li1 ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER met1 ;
- RECT -0.115000 -0.145000 0.115000 0.145000 ;
-END L1M1_PR_R
-
-VIARULE L1M1_PR_R GENERATE
- LAYER li1 ;
- ENCLOSURE 0.000000 0.000000 ;
- LAYER met1 ;
- ENCLOSURE 0.030000 0.060000 ;
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- SPACING 0.360000 BY 0.360000 ;
-END L1M1_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA L1M1_PR_M DEFAULT
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER li1 ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER met1 ;
- RECT -0.115000 -0.145000 0.115000 0.145000 ;
-END L1M1_PR_M
-
-VIARULE L1M1_PR_M GENERATE
- LAYER li1 ;
- ENCLOSURE 0.000000 0.000000 ;
- LAYER met1 ;
- ENCLOSURE 0.030000 0.060000 ;
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- SPACING 0.360000 BY 0.360000 ;
-END L1M1_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA L1M1_PR_MR DEFAULT
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER li1 ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER met1 ;
- RECT -0.145000 -0.115000 0.145000 0.115000 ;
-END L1M1_PR_MR
-
-VIARULE L1M1_PR_MR GENERATE
- LAYER li1 ;
- ENCLOSURE 0.000000 0.000000 ;
- LAYER met1 ;
- ENCLOSURE 0.060000 0.030000 ;
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- SPACING 0.360000 BY 0.360000 ;
-END L1M1_PR_MR
-
-# Centered via rule, we really do not want to use it
-VIA L1M1_PR_C DEFAULT
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER li1 ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- LAYER met1 ;
- RECT -0.145000 -0.145000 0.145000 0.145000 ;
-END L1M1_PR_C
-
-VIARULE L1M1_PR_C GENERATE
- LAYER li1 ;
- ENCLOSURE 0.000000 0.000000 ;
- LAYER met1 ;
- ENCLOSURE 0.060000 0.060000 ;
- LAYER mcon ;
- RECT -0.085000 -0.085000 0.085000 0.085000 ;
- SPACING 0.360000 BY 0.360000 ;
-END L1M1_PR_C
-
-# Plus via rule, metals are along the prefered direction
-VIA M1M2_PR DEFAULT
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- LAYER met1 ;
- RECT -0.160000 -0.130000 0.160000 0.130000 ;
- LAYER met2 ;
- RECT -0.130000 -0.160000 0.130000 0.160000 ;
-END M1M2_PR
-
-VIARULE M1M2_PR GENERATE
- LAYER met1 ;
- ENCLOSURE 0.085000 0.055000 ;
- LAYER met2 ;
- ENCLOSURE 0.055000 0.085000 ;
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- SPACING 0.320000 BY 0.320000 ;
-END M1M2_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA M1M2_PR_R DEFAULT
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- LAYER met1 ;
- RECT -0.130000 -0.160000 0.130000 0.160000 ;
- LAYER met2 ;
- RECT -0.160000 -0.130000 0.160000 0.130000 ;
-END M1M2_PR_R
-
-VIARULE M1M2_PR_R GENERATE
- LAYER met1 ;
- ENCLOSURE 0.055000 0.085000 ;
- LAYER met2 ;
- ENCLOSURE 0.085000 0.055000 ;
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- SPACING 0.320000 BY 0.320000 ;
-END M1M2_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA M1M2_PR_M DEFAULT
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- LAYER met1 ;
- RECT -0.160000 -0.130000 0.160000 0.130000 ;
- LAYER met2 ;
- RECT -0.160000 -0.130000 0.160000 0.130000 ;
-END M1M2_PR_M
-
-VIARULE M1M2_PR_M GENERATE
- LAYER met1 ;
- ENCLOSURE 0.085000 0.055000 ;
- LAYER met2 ;
- ENCLOSURE 0.085000 0.055000 ;
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- SPACING 0.320000 BY 0.320000 ;
-END M1M2_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA M1M2_PR_MR DEFAULT
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- LAYER met1 ;
- RECT -0.130000 -0.160000 0.130000 0.160000 ;
- LAYER met2 ;
- RECT -0.130000 -0.160000 0.130000 0.160000 ;
-END M1M2_PR_MR
-
-VIARULE M1M2_PR_MR GENERATE
- LAYER met1 ;
- ENCLOSURE 0.055000 0.085000 ;
- LAYER met2 ;
- ENCLOSURE 0.055000 0.085000 ;
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- SPACING 0.320000 BY 0.320000 ;
-END M1M2_PR_MR
-
-# Centered via rule, we really do not want to use it
-VIA M1M2_PR_C DEFAULT
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- LAYER met1 ;
- RECT -0.160000 -0.160000 0.160000 0.160000 ;
- LAYER met2 ;
- RECT -0.160000 -0.160000 0.160000 0.160000 ;
-END M1M2_PR_C
-
-VIARULE M1M2_PR_C GENERATE
- LAYER met1 ;
- ENCLOSURE 0.085000 0.085000 ;
- LAYER met2 ;
- ENCLOSURE 0.085000 0.085000 ;
- LAYER via ;
- RECT -0.075000 -0.075000 0.075000 0.075000 ;
- SPACING 0.320000 BY 0.320000 ;
-END M1M2_PR_C
-
-# Plus via rule, metals are along the prefered direction
-VIA M2M3_PR DEFAULT
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met2 ;
- RECT -0.140000 -0.185000 0.140000 0.185000 ;
- LAYER met3 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M2M3_PR
-
-VIARULE M2M3_PR GENERATE
- LAYER met2 ;
- ENCLOSURE 0.040000 0.085000 ;
- LAYER met3 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M2M3_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA M2M3_PR_R DEFAULT
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met2 ;
- RECT -0.185000 -0.140000 0.185000 0.140000 ;
- LAYER met3 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M2M3_PR_R
-
-VIARULE M2M3_PR_R GENERATE
- LAYER met2 ;
- ENCLOSURE 0.085000 0.040000 ;
- LAYER met3 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M2M3_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA M2M3_PR_M DEFAULT
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met2 ;
- RECT -0.140000 -0.185000 0.140000 0.185000 ;
- LAYER met3 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M2M3_PR_M
-
-VIARULE M2M3_PR_M GENERATE
- LAYER met2 ;
- ENCLOSURE 0.040000 0.085000 ;
- LAYER met3 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M2M3_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA M2M3_PR_MR DEFAULT
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met2 ;
- RECT -0.185000 -0.140000 0.185000 0.140000 ;
- LAYER met3 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M2M3_PR_MR
-
-VIARULE M2M3_PR_MR GENERATE
- LAYER met2 ;
- ENCLOSURE 0.085000 0.040000 ;
- LAYER met3 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M2M3_PR_MR
-
-# Centered via rule, we really do not want to use it
-VIA M2M3_PR_C DEFAULT
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met2 ;
- RECT -0.185000 -0.185000 0.185000 0.185000 ;
- LAYER met3 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M2M3_PR_C
-
-VIARULE M2M3_PR_C GENERATE
- LAYER met2 ;
- ENCLOSURE 0.085000 0.085000 ;
- LAYER met3 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M2M3_PR_C
-
-# Plus via rule, metals are along the prefered direction
-VIA M3M4_PR DEFAULT
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met3 ;
- RECT -0.190000 -0.160000 0.190000 0.160000 ;
- LAYER met4 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M3M4_PR
-
-VIARULE M3M4_PR GENERATE
- LAYER met3 ;
- ENCLOSURE 0.090000 0.060000 ;
- LAYER met4 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M3M4_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA M3M4_PR_R DEFAULT
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met3 ;
- RECT -0.160000 -0.190000 0.160000 0.190000 ;
- LAYER met4 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M3M4_PR_R
-
-VIARULE M3M4_PR_R GENERATE
- LAYER met3 ;
- ENCLOSURE 0.060000 0.090000 ;
- LAYER met4 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M3M4_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA M3M4_PR_M DEFAULT
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met3 ;
- RECT -0.190000 -0.160000 0.190000 0.160000 ;
- LAYER met4 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M3M4_PR_M
-
-VIARULE M3M4_PR_M GENERATE
- LAYER met3 ;
- ENCLOSURE 0.090000 0.060000 ;
- LAYER met4 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M3M4_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA M3M4_PR_MR DEFAULT
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met3 ;
- RECT -0.160000 -0.190000 0.160000 0.190000 ;
- LAYER met4 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M3M4_PR_MR
-
-VIARULE M3M4_PR_MR GENERATE
- LAYER met3 ;
- ENCLOSURE 0.060000 0.090000 ;
- LAYER met4 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M3M4_PR_MR
-
-# Centered via rule, we really do not want to use it
-VIA M3M4_PR_C DEFAULT
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met3 ;
- RECT -0.190000 -0.190000 0.190000 0.190000 ;
- LAYER met4 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M3M4_PR_C
-
-VIARULE M3M4_PR_C GENERATE
- LAYER met3 ;
- ENCLOSURE 0.090000 0.090000 ;
- LAYER met4 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M3M4_PR_C
-
-# Plus via rule, metals are along the prefered direction
-VIA M4M5_PR DEFAULT
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- LAYER met4 ;
- RECT -0.590000 -0.590000 0.590000 0.590000 ;
- LAYER met5 ;
- RECT -0.710000 -0.710000 0.710000 0.710000 ;
-END M4M5_PR
-
-VIARULE M4M5_PR GENERATE
- LAYER met4 ;
- ENCLOSURE 0.190000 0.190000 ;
- LAYER met5 ;
- ENCLOSURE 0.310000 0.310000 ;
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- SPACING 1.600000 BY 1.600000 ;
-END M4M5_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA M4M5_PR_R DEFAULT
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- LAYER met4 ;
- RECT -0.590000 -0.590000 0.590000 0.590000 ;
- LAYER met5 ;
- RECT -0.710000 -0.710000 0.710000 0.710000 ;
-END M4M5_PR_R
-
-VIARULE M4M5_PR_R GENERATE
- LAYER met4 ;
- ENCLOSURE 0.190000 0.190000 ;
- LAYER met5 ;
- ENCLOSURE 0.310000 0.310000 ;
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- SPACING 1.600000 BY 1.600000 ;
-END M4M5_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA M4M5_PR_M DEFAULT
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- LAYER met4 ;
- RECT -0.590000 -0.590000 0.590000 0.590000 ;
- LAYER met5 ;
- RECT -0.710000 -0.710000 0.710000 0.710000 ;
-END M4M5_PR_M
-
-VIARULE M4M5_PR_M GENERATE
- LAYER met4 ;
- ENCLOSURE 0.190000 0.190000 ;
- LAYER met5 ;
- ENCLOSURE 0.310000 0.310000 ;
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- SPACING 1.600000 BY 1.600000 ;
-END M4M5_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA M4M5_PR_MR DEFAULT
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- LAYER met4 ;
- RECT -0.590000 -0.590000 0.590000 0.590000 ;
- LAYER met5 ;
- RECT -0.710000 -0.710000 0.710000 0.710000 ;
-END M4M5_PR_MR
-
-VIARULE M4M5_PR_MR GENERATE
- LAYER met4 ;
- ENCLOSURE 0.190000 0.190000 ;
- LAYER met5 ;
- ENCLOSURE 0.310000 0.310000 ;
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- SPACING 1.600000 BY 1.600000 ;
-END M4M5_PR_MR
-
-# Centered via rule, we really do not want to use it
-VIA M4M5_PR_C DEFAULT
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- LAYER met4 ;
- RECT -0.590000 -0.590000 0.590000 0.590000 ;
- LAYER met5 ;
- RECT -0.710000 -0.710000 0.710000 0.710000 ;
-END M4M5_PR_C
-
-VIARULE M4M5_PR_C GENERATE
- LAYER met4 ;
- ENCLOSURE 0.190000 0.190000 ;
- LAYER met5 ;
- ENCLOSURE 0.310000 0.310000 ;
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- SPACING 1.600000 BY 1.600000 ;
-END M4M5_PR_C
-### end of single via cells ###
-
-END LIBRARY
diff --git a/sky130/custom/techLEF/sky130_fd_sc_hs_tech.lef b/sky130/custom/techLEF/sky130_fd_sc_hs_tech.lef
deleted file mode 100644
index 900e425..0000000
--- a/sky130/custom/techLEF/sky130_fd_sc_hs_tech.lef
+++ /dev/null
@@ -1,713 +0,0 @@
-
-NAMESCASESENSITIVE ON ;
-BUSBITCHARS "[]" ;
-DIVIDERCHAR "/" ;
-UNITS
- TIME NANOSECONDS 1 ;
- CAPACITANCE PICOFARADS 1 ;
- RESISTANCE OHMS 1 ;
- DATABASE MICRONS 1000 ;
-END UNITS
-MANUFACTURINGGRID 0.005 ;
-
-SITE unit
- SYMMETRY Y ;
- CLASS CORE ;
- SIZE 0.480 BY 3.400 ;
-END unit
-
-###### Starting overlap layers #####
-# ******** Layer OverlapCheck, type blockage, number 90 **************
-LAYER OverlapCheck
- TYPE OVERLAP ;
-END OverlapCheck
-
-###### Starting routing layers - metal and via #####
-# ******** Layer li1, type routing, number 56 **************
-LAYER li1
- TYPE ROUTING ;
- DIRECTION VERTICAL ;
- PITCH 0.48 ;
- MINWIDTH 0.170000 ;
- WIDTH 0.170000 ;
- AREA 0.028900 ;
- SPACINGTABLE
- PARALLELRUNLENGTH 0
- WIDTH 0 0.170000 ;
- THICKNESS 0.100000 ;
- EDGECAPACITANCE 3.26E-6 ;
- CAPACITANCE CPERSQDIST 36.9E-6 ;
- RESISTANCE RPERSQ 12.2 ;
-# DCCURRENTDENSITY AVERAGE (no limit on this layer) ;
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 75.000000 ) ( 0.012500 75.000000 ) ( 0.022500 85.125000 ) ( 22.500000 10200.000000 ) ) ;
-END li1
-
-# ******** Layer mcon, type routing, number 35 **************
-LAYER mcon
- TYPE CUT ;
- SPACING 0.190000 ;
- WIDTH 0.170000 ;
- ANTENNADIFFAREARATIO PWL ( ( 0.000000 3.000000 ) ( 0.012500 3.000000 ) ( 0.022500 3.405000 ) ( 22.500000 408.000000 ) ) ;
- DCCURRENTDENSITY AVERAGE 0.36 ; # mA per via Iavg_max at Tj = 90oC
- ENCLOSURE BELOW 0.000000 0.000000 ;
- ENCLOSURE ABOVE 0.000000 0.000000 ;
-END mcon
-
-# ******** Layer met1, type routing, number 36 **************
-LAYER met1
- TYPE ROUTING ;
- DIRECTION HORIZONTAL ;
- PITCH 0.37 ;
- MINENCLOSEDAREA 0.140000 ;
- MINWIDTH 0.140000 ;
- WIDTH 0.140000 ;
- AREA 0.083000 ;
- SPACINGTABLE
- PARALLELRUNLENGTH 0.000
- WIDTH 0.000 0.140000
- WIDTH 3.000000 0.280000
- ;
- THICKNESS 0.350000 ;
- EDGECAPACITANCE 1.79E-6 ;
- CAPACITANCE CPERSQDIST 25.8E-6 ;
- RESISTANCE RPERSQ 0.125 ;
- DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 6.1 ; # mA/um Irms_max at Tj = 90oC
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
-END met1
-
-# ******** Layer via, type routing, number 40 **************
-LAYER via1
- TYPE CUT ;
- SPACING 0.170000 ;
- WIDTH 0.150000 ;
- ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ;
- DCCURRENTDENSITY AVERAGE 0.29 ; # mA per via Iavg_max at Tj = 90oC
- ENCLOSURE BELOW 0.000000 0.000000 ;
- ENCLOSURE ABOVE 0.000000 0.000000 ;
-END via1
-
-# ******** Layer met2, type routing, number 41 **************
-LAYER met2
- TYPE ROUTING ;
- DIRECTION VERTICAL ;
- PITCH 0.48 ;
- MINENCLOSEDAREA 0.140000 ;
- MINWIDTH 0.140000 ;
- WIDTH 0.140000 ;
- AREA 0.067600 ;
- SPACINGTABLE
- PARALLELRUNLENGTH 0.000
- WIDTH 0.000 0.140000
- WIDTH 3.000000 0.280000
- ;
- THICKNESS 0.350000 ;
- EDGECAPACITANCE 1.22E-6 ;
- CAPACITANCE CPERSQDIST 17.5E-6 ;
- RESISTANCE RPERSQ 0.125 ;
- DCCURRENTDENSITY AVERAGE 2.8 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 6.1 ; # mA/um Irms_max at Tj = 90oC
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
-END met2
-
-# ******** Layer via2, type routing, number 44 **************
-LAYER via2
- TYPE CUT ;
- SPACING 0.200000 ;
- WIDTH 0.200000 ;
- ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ;
- DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC
- ENCLOSURE BELOW 0.000000 0.000000 ;
- ENCLOSURE ABOVE 0.000000 0.000000 ;
-END via2
-
-# ******** Layer met3, type routing, number 34 **************
-LAYER met3
- TYPE ROUTING ;
- DIRECTION HORIZONTAL ;
- PITCH 0.666 ;
- MINWIDTH 0.300000 ;
- WIDTH 0.300000 ;
- AREA 0.240000 ;
- SPACINGTABLE
- PARALLELRUNLENGTH 0.000
- WIDTH 0.000 0.300000
- WIDTH 3.000000 0.400000
- ;
- THICKNESS 0.800000 ;
- EDGECAPACITANCE 1.86E-6 ;
- CAPACITANCE CPERSQDIST 12.6E-6 ;
- RESISTANCE RPERSQ 0.047 ;
- DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 14.9 ; # mA/um Irms_max at Tj = 90oC
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
-END met3
-
-# ******** Layer via3, type routing, number 70 **************
-LAYER via3
- TYPE CUT ;
- SPACING 0.200000 ;
- WIDTH 0.200000 ;
- ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ;
- DCCURRENTDENSITY AVERAGE 0.48 ; # mA per via Iavg_max at Tj = 90oC
- ENCLOSURE BELOW 0.000000 0.000000 ;
- ENCLOSURE ABOVE 0.000000 0.000000 ;
-END via3
-
-# ******** Layer met4, type routing, number 71 **************
-LAYER met4
- TYPE ROUTING ;
- DIRECTION VERTICAL ;
- PITCH 0.96 ;
- MINWIDTH 0.300000 ;
- WIDTH 0.300000 ;
- AREA 0.240000 ;
- SPACINGTABLE
- PARALLELRUNLENGTH 0.000
- WIDTH 0.000 0.300000
- WIDTH 3.000000 0.400000
- ;
- THICKNESS 0.800000 ;
- EDGECAPACITANCE 1.29E-6 ;
- CAPACITANCE CPERSQDIST 8.67E-6 ;
- RESISTANCE RPERSQ 0.047 ;
- DCCURRENTDENSITY AVERAGE 6.8 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 14.9 ; # mA/um Irms_max at Tj = 90oC
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
-END met4
-
-# ******** Layer via4, type routing, number 58 **************
-LAYER via4
- TYPE CUT ;
- SPACING 0.800000 ;
- WIDTH 0.800000 ;
- ANTENNADIFFAREARATIO PWL ( ( 0.000000 6.000000 ) ( 0.012500 6.000000 ) ( 0.022500 6.810000 ) ( 22.500000 816.000000 ) ) ;
- DCCURRENTDENSITY AVERAGE 2.49 ; # mA per via Iavg_max at Tj = 90oC
- ENCLOSURE BELOW 0.000000 0.000000 ;
- ENCLOSURE ABOVE 0.000000 0.000000 ;
-END via4
-
-# ******** Layer met5, type routing, number 72 **************
-LAYER met5
- TYPE ROUTING ;
- DIRECTION HORIZONTAL ;
- PITCH 3.3 ;
- MINWIDTH 1.600000 ;
- WIDTH 1.600000 ;
- AREA 2.560000 ;
- SPACINGTABLE
- PARALLELRUNLENGTH 0
- WIDTH 0 1.600000 ;
- THICKNESS 1.200000 ;
- EDGECAPACITANCE 4.96E-6 ;
- CAPACITANCE CPERSQDIST 6.48E-6 ;
- RESISTANCE RPERSQ 0.047 ;
- DCCURRENTDENSITY AVERAGE 10.17 ; # mA/um Iavg_max at Tj = 90oC
- ACCURRENTDENSITY RMS 22.34 ; # mA/um Irms_max at Tj = 90oC
- ANTENNADIFFSIDEAREARATIO PWL ( ( 0.000000 400.000000 ) ( 0.012500 400.000000 ) ( 0.022500 2609.000000 ) ( 22.500000 11600.000000 ) ) ;
-END met5
-
-###### completed routing layers - metal and via #####
-
-### Routing via cells section ###
-# Plus via rule, metals are along the prefered direction
-VIA L1M1_PR DEFAULT
- LAYER mcon ;
- RECT -0.085 -0.085 0.085 0.085 ;
- LAYER li1 ;
- RECT -0.085 -0.165 0.085 0.165 ;
- LAYER met1 ;
- RECT -0.16 -0.13 0.16 0.13 ;
-END L1M1_PR
-
-VIARULE L1M1_PR GENERATE
- LAYER li1 ;
- ENCLOSURE 0.000 0.080 ;
- LAYER met1 ;
- ENCLOSURE 0.030 0.060 ;
- LAYER mcon ;
- RECT -0.085 -0.085 0.085 0.085 ;
- SPACING 0.360 BY 0.360 ;
-END L1M1_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA L1M1_PR_R DEFAULT
- LAYER mcon ;
- RECT -0.085 -0.085 0.085 0.085 ;
- LAYER li1 ;
- RECT -0.165 -0.085 0.165 0.085 ;
- LAYER met1 ;
- RECT -0.13 -0.16 0.13 0.16 ;
-END L1M1_PR_R
-
-VIARULE L1M1_PR_R GENERATE
- LAYER li1 ;
- ENCLOSURE 0.000 0.080 ;
- LAYER met1 ;
- ENCLOSURE 0.030 0.060 ;
- LAYER mcon ;
- RECT -0.085 -0.085 0.085 0.085 ;
- SPACING 0.360 BY 0.360 ;
-END L1M1_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA L1M1_PR_M DEFAULT
- LAYER mcon ;
- RECT -0.085 -0.085 0.085 0.085 ;
- LAYER li1 ;
- RECT -0.085 -0.165 0.085 0.165 ;
- LAYER met1 ;
- RECT -0.13 -0.16 0.13 0.16 ;
-END L1M1_PR_M
-
-VIARULE L1M1_PR_M GENERATE
- LAYER li1 ;
- ENCLOSURE 0.000 0.080 ;
- LAYER met1 ;
- ENCLOSURE 0.030 0.060 ;
- LAYER mcon ;
- RECT -0.085 -0.085 0.085 0.085 ;
- SPACING 0.360 BY 0.360 ;
-END L1M1_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA L1M1_PR_MR DEFAULT
- LAYER mcon ;
- RECT -0.085 -0.085 0.085 0.085 ;
- LAYER li1 ;
- RECT -0.165 -0.085 0.165 0.085 ;
- LAYER met1 ;
- RECT -0.16 -0.13 0.16 0.13 ;
-END L1M1_PR_MR
-
-VIARULE L1M1_PR_MR GENERATE
- LAYER li1 ;
- ENCLOSURE 0.000 0.080 ;
- LAYER met1 ;
- ENCLOSURE 0.030 0.060 ;
- LAYER mcon ;
- RECT -0.085 -0.085 0.085 0.085 ;
- SPACING 0.360 BY 0.360 ;
-END L1M1_PR_MR
-
-# Centered via rule, we really do not want to use it
-# VIA L1M1_PR_C DEFAULT
-# LAYER mcon ;
-# RECT -0.085000 -0.085000 0.085000 0.085000 ;
-# LAYER li1 ;
-# RECT -0.085000 -0.085000 0.085000 0.085000 ;
-# LAYER met1 ;
-# RECT -0.145000 -0.145000 0.145000 0.145000 ;
-# END L1M1_PR_C
-
-# VIARULE L1M1_PR_C GENERATE
-# LAYER li1 ;
-# ENCLOSURE 0.000000 0.000000 ;
-# LAYER met1 ;
-# ENCLOSURE 0.060000 0.060000 ;
-# LAYER mcon ;
-# RECT -0.085000 -0.085000 0.085000 0.085000 ;
-# SPACING 0.360000 BY 0.360000 ;
-# END L1M1_PR_C
-
-# Plus via rule, metals are along the prefered direction
-VIA M1M2_PR DEFAULT
- LAYER via1 ;
- RECT -0.075 -0.075 0.075 0.075 ;
- LAYER met1 ;
- RECT -0.16 -0.13 0.16 0.13 ;
- LAYER met2 ;
- RECT -0.13 -0.16 0.13 0.16 ;
-END M1M2_PR
-
-VIARULE M1M2_PR GENERATE
- LAYER met1 ;
- ENCLOSURE 0.055 0.085 ;
- LAYER met2 ;
- ENCLOSURE 0.055 0.085 ;
- LAYER via1 ;
- RECT -0.075 -0.075 0.075 0.075 ;
- SPACING 0.320 BY 0.320 ;
-END M1M2_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA M1M2_PR_R DEFAULT
- LAYER via1 ;
- RECT -0.075 -0.075 0.075 0.075 ;
- LAYER met1 ;
- RECT -0.13 -0.16 0.13 0.16 ;
- LAYER met2 ;
- RECT -0.16 -0.13 0.16 0.13 ;
-END M1M2_PR_R
-
-VIARULE M1M2_PR_R GENERATE
- LAYER met1 ;
- ENCLOSURE 0.055 0.085 ;
- LAYER met2 ;
- ENCLOSURE 0.055 0.085 ;
- LAYER via1 ;
- RECT -0.075 -0.075 0.075 0.075 ;
- SPACING 0.320 BY 0.320 ;
-END M1M2_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA M1M2_PR_M DEFAULT
- LAYER via1 ;
- RECT -0.075 -0.075 0.075 0.075 ;
- LAYER met1 ;
- RECT -0.16 -0.13 0.16 0.13 ;
- LAYER met2 ;
- RECT -0.16 -0.13 0.16 0.13 ;
-END M1M2_PR_M
-
-VIARULE M1M2_PR_M GENERATE
- LAYER met1 ;
- ENCLOSURE 0.055 0.085 ;
- LAYER met2 ;
- ENCLOSURE 0.055 0.085 ;
- LAYER via1 ;
- RECT -0.075 -0.075 0.075 0.075 ;
- SPACING 0.320 BY 0.320 ;
-END M1M2_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA M1M2_PR_MR DEFAULT
- LAYER via1 ;
- RECT -0.075 -0.075 0.075 0.075 ;
- LAYER met1 ;
- RECT -0.13 -0.16 0.13 0.16 ;
- LAYER met2 ;
- RECT -0.13 -0.16 0.13 0.16 ;
-END M1M2_PR_MR
-
-VIARULE M1M2_PR_MR GENERATE
- LAYER met1 ;
- ENCLOSURE 0.055 0.085 ;
- LAYER met2 ;
- ENCLOSURE 0.055 0.085 ;
- LAYER via1 ;
- RECT -0.075 -0.075 0.075 0.075 ;
- SPACING 0.320 BY 0.320 ;
-END M1M2_PR_MR
-
-# # Centered via rule, we really do not want to use it
-# VIA M1M2_PR_C DEFAULT
-# LAYER via ;
-# RECT -0.075000 -0.075000 0.075000 0.075000 ;
-# LAYER met1 ;
-# RECT -0.160000 -0.160000 0.160000 0.160000 ;
-# LAYER met2 ;
-# RECT -0.160000 -0.160000 0.160000 0.160000 ;
-# END M1M2_PR_C
-
-# VIARULE M1M2_PR_C GENERATE
-# LAYER met1 ;
-# ENCLOSURE 0.085000 0.085000 ;
-# LAYER met2 ;
-# ENCLOSURE 0.085000 0.085000 ;
-# LAYER via ;
-# RECT -0.075000 -0.075000 0.075000 0.075000 ;
-# SPACING 0.320000 BY 0.320000 ;
-# END M1M2_PR_C
-
-# Plus via rule, metals are along the prefered direction
-VIA M2M3_PR DEFAULT
- LAYER via2 ;
- RECT -0.1 -0.1 0.1 0.1 ;
- LAYER met2 ;
- RECT -0.14 -0.185 0.14 0.185 ;
- LAYER met3 ;
- RECT -0.165 -0.165 0.165 0.165 ;
-END M2M3_PR
-
-VIARULE M2M3_PR GENERATE
- LAYER met2 ;
- ENCLOSURE 0.040 0.085 ;
- LAYER met3 ;
- ENCLOSURE 0.065 0.065 ;
- LAYER via2 ;
- RECT -0.1 -0.1 0.1 0.1 ;
- SPACING 0.40 BY 0.40 ;
-END M2M3_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA M2M3_PR_R DEFAULT
- LAYER via2 ;
- RECT -0.1 -0.1 0.1 0.1 ;
- LAYER met2 ;
- RECT -0.185 -0.14 0.185 0.14 ;
- LAYER met3 ;
- RECT -0.165 -0.165 0.165 0.165 ;
-END M2M3_PR_R
-
-VIARULE M2M3_PR_R GENERATE
- LAYER met2 ;
- ENCLOSURE 0.040 0.085 ;
- LAYER met3 ;
- ENCLOSURE 0.065 0.065 ;
- LAYER via2 ;
- RECT -0.1 -0.1 0.1 0.1 ;
- SPACING 0.40 BY 0.40 ;
-END M2M3_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA M2M3_PR_M DEFAULT
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met2 ;
- RECT -0.140000 -0.185000 0.140000 0.185000 ;
- LAYER met3 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M2M3_PR_M
-
-VIARULE M2M3_PR_M GENERATE
- LAYER met2 ;
- ENCLOSURE 0.040000 0.085000 ;
- LAYER met3 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M2M3_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA M2M3_PR_MR DEFAULT
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met2 ;
- RECT -0.185000 -0.140000 0.185000 0.140000 ;
- LAYER met3 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M2M3_PR_MR
-
-VIARULE M2M3_PR_MR GENERATE
- LAYER met2 ;
- ENCLOSURE 0.085000 0.040000 ;
- LAYER met3 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via2 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M2M3_PR_MR
-
-# # Centered via rule, we really do not want to use it
-# VIA M2M3_PR_C DEFAULT
-# LAYER via2 ;
-# RECT -0.100000 -0.100000 0.100000 0.100000 ;
-# LAYER met2 ;
-# RECT -0.185000 -0.185000 0.185000 0.185000 ;
-# LAYER met3 ;
-# RECT -0.165000 -0.165000 0.165000 0.165000 ;
-# END M2M3_PR_C
-
-# VIARULE M2M3_PR_C GENERATE
-# LAYER met2 ;
-# ENCLOSURE 0.085000 0.085000 ;
-# LAYER met3 ;
-# ENCLOSURE 0.065000 0.065000 ;
-# LAYER via2 ;
-# RECT -0.100000 -0.100000 0.100000 0.100000 ;
-# SPACING 0.400000 BY 0.400000 ;
-# END M2M3_PR_C
-
-# Plus via rule, metals are along the prefered direction
-VIA M3M4_PR DEFAULT
- LAYER via3 ;
- RECT -0.1 -0.1 0.1 0.1 ;
- LAYER met3 ;
- RECT -0.19 -0.16 0.19 0.16 ;
- LAYER met4 ;
- RECT -0.165 -0.165 0.165 0.165 ;
-END M3M4_PR
-
-VIARULE M3M4_PR GENERATE
- LAYER met3 ;
- ENCLOSURE 0.06 0.09 ;
- LAYER met4 ;
- ENCLOSURE 0.065 0.065 ;
- LAYER via3 ;
- RECT -0.1 -0.1 0.1 0.1 ;
- SPACING 0.40 BY 0.40 ;
-END M3M4_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA M3M4_PR_R DEFAULT
- LAYER via3 ;
- RECT -0.1 -0.1 0.1 0.1 ;
- LAYER met3 ;
- RECT -0.16 -0.19 0.16 0.19 ;
- LAYER met4 ;
- RECT -0.165 -0.165 0.165 0.165 ;
-END M3M4_PR_R
-
-VIARULE M3M4_PR_R GENERATE
- LAYER met3 ;
- ENCLOSURE 0.06 0.09 ;
- LAYER met4 ;
- ENCLOSURE 0.065 0.065 ;
- LAYER via3 ;
- RECT -0.1 -0.1 0.1 0.1 ;
- SPACING 0.40 BY 0.40 ;
-END M3M4_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA M3M4_PR_M DEFAULT
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met3 ;
- RECT -0.190000 -0.160000 0.190000 0.160000 ;
- LAYER met4 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M3M4_PR_M
-
-VIARULE M3M4_PR_M GENERATE
- LAYER met3 ;
- ENCLOSURE 0.090000 0.060000 ;
- LAYER met4 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M3M4_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA M3M4_PR_MR DEFAULT
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- LAYER met3 ;
- RECT -0.160000 -0.190000 0.160000 0.190000 ;
- LAYER met4 ;
- RECT -0.165000 -0.165000 0.165000 0.165000 ;
-END M3M4_PR_MR
-
-VIARULE M3M4_PR_MR GENERATE
- LAYER met3 ;
- ENCLOSURE 0.060000 0.090000 ;
- LAYER met4 ;
- ENCLOSURE 0.065000 0.065000 ;
- LAYER via3 ;
- RECT -0.100000 -0.100000 0.100000 0.100000 ;
- SPACING 0.400000 BY 0.400000 ;
-END M3M4_PR_MR
-
-# # Centered via rule, we really do not want to use it
-# VIA M3M4_PR_C DEFAULT
-# LAYER via3 ;
-# RECT -0.100000 -0.100000 0.100000 0.100000 ;
-# LAYER met3 ;
-# RECT -0.190000 -0.190000 0.190000 0.190000 ;
-# LAYER met4 ;
-# RECT -0.165000 -0.165000 0.165000 0.165000 ;
-# END M3M4_PR_C
-
-# VIARULE M3M4_PR_C GENERATE
-# LAYER met3 ;
-# ENCLOSURE 0.090000 0.090000 ;
-# LAYER met4 ;
-# ENCLOSURE 0.065000 0.065000 ;
-# LAYER via3 ;
-# RECT -0.100000 -0.100000 0.100000 0.100000 ;
-# SPACING 0.400000 BY 0.400000 ;
-# END M3M4_PR_C
-
-# Plus via rule, metals are along the prefered direction
-VIA M4M5_PR DEFAULT
- LAYER via4 ;
- RECT -0.4 -0.4 0.4 0.4 ;
- LAYER met4 ;
- RECT -0.59 -0.59 0.59 0.59 ;
- LAYER met5 ;
- RECT -0.71 -0.71 0.71 0.71 ;
-END M4M5_PR
-
-VIARULE M4M5_PR GENERATE
- LAYER met4 ;
- ENCLOSURE 0.190 0.190 ;
- LAYER met5 ;
- ENCLOSURE 0.310 0.310 ;
- LAYER via4 ;
- RECT -0.4 -0.4 0.4 0.4 ;
- SPACING 1.60 BY 1.60 ;
-END M4M5_PR
-
-# Plus via rule, metals are along the non prefered direction
-VIA M4M5_PR_R DEFAULT
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- LAYER met4 ;
- RECT -0.590000 -0.590000 0.590000 0.590000 ;
- LAYER met5 ;
- RECT -0.710000 -0.710000 0.710000 0.710000 ;
-END M4M5_PR_R
-
-VIARULE M4M5_PR_R GENERATE
- LAYER met4 ;
- ENCLOSURE 0.190000 0.190000 ;
- LAYER met5 ;
- ENCLOSURE 0.310000 0.310000 ;
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- SPACING 1.600000 BY 1.600000 ;
-END M4M5_PR_R
-
-# Minus via rule, lower layer metal is along prefered direction
-VIA M4M5_PR_M DEFAULT
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- LAYER met4 ;
- RECT -0.590000 -0.590000 0.590000 0.590000 ;
- LAYER met5 ;
- RECT -0.710000 -0.710000 0.710000 0.710000 ;
-END M4M5_PR_M
-
-VIARULE M4M5_PR_M GENERATE
- LAYER met4 ;
- ENCLOSURE 0.190000 0.190000 ;
- LAYER met5 ;
- ENCLOSURE 0.310000 0.310000 ;
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- SPACING 1.600000 BY 1.600000 ;
-END M4M5_PR_M
-
-# Minus via rule, upper layer metal is along prefered direction
-VIA M4M5_PR_MR DEFAULT
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- LAYER met4 ;
- RECT -0.590000 -0.590000 0.590000 0.590000 ;
- LAYER met5 ;
- RECT -0.710000 -0.710000 0.710000 0.710000 ;
-END M4M5_PR_MR
-
-VIARULE M4M5_PR_MR GENERATE
- LAYER met4 ;
- ENCLOSURE 0.190000 0.190000 ;
- LAYER met5 ;
- ENCLOSURE 0.310000 0.310000 ;
- LAYER via4 ;
- RECT -0.400000 -0.400000 0.400000 0.400000 ;
- SPACING 1.600000 BY 1.600000 ;
-END M4M5_PR_MR
-
-# # Centered via rule, we really do not want to use it
-# VIA M4M5_PR_C DEFAULT
-# LAYER via4 ;
-# RECT -0.400000 -0.400000 0.400000 0.400000 ;
-# LAYER met4 ;
-# RECT -0.590000 -0.590000 0.590000 0.590000 ;
-# LAYER met5 ;
-# RECT -0.710000 -0.710000 0.710000 0.710000 ;
-# END M4M5_PR_C
-
-# VIARULE M4M5_PR_C GENERATE
-# LAYER met4 ;
-# ENCLOSURE 0.190000 0.190000 ;
-# LAYER met5 ;
-# ENCLOSURE 0.310000 0.310000 ;
-# LAYER via4 ;
-# RECT -0.400000 -0.400000 0.400000 0.400000 ;
-# SPACING 1.600000 BY 1.600000 ;
-# END M4M5_PR_C
-
-END LIBRARY
diff --git a/sky130/qflow/sky130.sh b/sky130/qflow/sky130.sh
index 9d8e6ac..b60054b 100644
--- a/sky130/qflow/sky130.sh
+++ b/sky130/qflow/sky130.sh
@@ -32,9 +32,9 @@
#ifdef METAL5
#ifdef EF_FORMAT
-set techleffile=STAGING_PATH/TECHNAME/libs.ref/techLEF/LIBRARY/LIBRARY_tech.lef
+set techleffile=STAGING_PATH/TECHNAME/libs.ref/techLEF/LIBRARY/LIBRARY.tlef
#else (!EF_FORMAT)
-set techleffile=STAGING_PATH/TECHNAME/libs.ref/LIBRARY/techlef/LIBRARY_tech.lef
+set techleffile=STAGING_PATH/TECHNAME/libs.ref/LIBRARY/techlef/LIBRARY.tlef
#endif (!EF_FORMAT)
#else
# NOTE: There is no technology LEF file for the 3-metal stack!