diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/README b/README
index 24fc238..5e5356d 100644
--- a/README
+++ b/README
@@ -6,6 +6,10 @@
 Written by Tim Edwards 2019 / 2020 for efabless (efabless.com)
 and Open Circuit Design (opencircuitdesign.com)
 
+URL: http://opencircuitdesign.com/open_pdks
+
+Distributed under the Apache-2.0 license (see file LICENSE).
+
 ----------------------------------------------------------------------------------
 
 Introduction:
diff --git a/README.md b/README.md
index 12651e0..b71f842 100644
--- a/README.md
+++ b/README.md
@@ -29,9 +29,18 @@
 
 -----------------------------------------
 
+License:
+
+Open_PDKs is open-source software distributed under the Apache-2.0 license.
+See file LICENSE for the complete license text.
+
+-----------------------------------------
+
 Instructions:
 
 There is a top-level Makefile but generally it is recommended to cd
 to the directory for the target foundry process and follow the instructions
 in the README file there.
 
+Also see the website at http://opencircuitdesign.com/open_pdks
+
diff --git a/VERSION b/VERSION
index ee90284..238d6e8 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.4
+1.0.7
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..0772cd4 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/sky130_fd_sc_hd/latest
+	git submodule init libraries/sky130_fd_sc_hdll/latest
+	git submodule init libraries/sky130_fd_sc_hs/latest
+	git submodule init libraries/sky130_fd_sc_ms/latest
+	git submodule init libraries/sky130_fd_sc_ls/latest
+	git submodule init libraries/sky130_fd_sc_lp/latest
+	git submodule init libraries/sky130_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/magic/sky130.tech b/sky130/magic/sky130.tech
index 48552e8..4da410e 100644
--- a/sky130/magic/sky130.tech
+++ b/sky130/magic/sky130.tech
@@ -29,7 +29,7 @@
 end
 
 #----------------------------------------------------------
-# Status 7/5/20: Rev 1 (alpha):
+# Status 7/10/20: Rev 1 (alpha):
 # First public release
 #--------------------------------------------------------------
 
@@ -3239,8 +3239,8 @@
  spacing v3 v3 80 touching_ok "Via3 spacing < %d (Via3 2 - 2 * Via3 4)"
  surround v3/m3 *m3 30 directional \
 	"Metal3 overlap of Via3 in one direction < %d (Via3 5 - Via3 4)"
- surround v3/m4 *m4 5 directional \
-	"Metal4 overlap of Via3 in one direction < %d (Met4 3 - Via3 4)"
+ surround v3/m4 *m4 5 absence_illegal \
+	"Metal4 overlap of Via3 < %d (Met4 3 - Via3 4)"
 
  exact_overlap v3/m3
 
@@ -3658,9 +3658,9 @@
 # planes from the planeorder stack, take care of the reflexive sideoverlap
 # definitions, and generally clean up the section and make it more readable.
 #
-# Also uses "units microns" statement, so all parasitic capacitance values
-# are taken directly from the source document PDS_035_03, in units of
-# aF/um^2 for area caps and aF/um for perimeter and sidewall caps.
+# Also uses "units microns" statement.  All values are taken from the
+# document PEX/xRC/cap_models.  Fringe capacitance values are approximated.
+# Units are aF/um^2 for area caps and aF/um for perimeter and sidewall caps.
 #-------------------------------------------------------------------------
 # Remember that device capacitances to substrate are taken care of by the
 # models.  Thus, active and poly definitions ignore all "fet" types.
@@ -3691,143 +3691,180 @@
 #poly
 # Do not extract parasitics from resistors
 # defaultsidewall    allpolynonfet active  22
-# defaultareacap     allpolynonfet active  105
+# defaultareacap     allpolynonfet active  106
 # defaultperimeter   allpolynonfet active   57
 
- defaultsidewall    *poly active  63
- defaultareacap     *poly active nwell,obswell,pwell well  63
- defaultperimeter   *poly active nwell,obswell,pwell well  16
+ defaultsidewall    *poly active  23
+ defaultareacap     *poly active nwell,obswell,pwell well  106
+ defaultperimeter   *poly active nwell,obswell,pwell well  55
 
 #locali
- defaultsidewall    allm1 metal1       113
- defaultareacap     allm1 metal1 nwell,obswell,pwell well  37
- defaultperimeter   allm1 metal1 nwell,obswell,pwell well  8
- defaultoverlap     allm1 metal1 nwell well 37
+ defaultsidewall    allli locali       33
+ defaultareacap     allli locali nwell,obswell,pwell well  37
+ defaultperimeter   allli locali nwell,obswell,pwell well  55
+ defaultoverlap     allli locali nwell well 37
 
 #locali->diff
- defaultoverlap     allm1 metal1 allactivenonfet active 36
- defaultsideoverlap allm1 metal1 allactivenonfet active 9
+ defaultoverlap     allli locali allactivenonfet active 37
+ defaultsideoverlap allli locali allactivenonfet active 55
 
 #locali->poly
- defaultoverlap     allm1 metal1 allpolynonres active 46
- defaultsideoverlap allm1 metal1 allpolynonres active 10
+ defaultoverlap     allli locali allpolynonres active 94
+ defaultsideoverlap allli locali allpolynonres active 52
+ defaultsideoverlap *poly active allli locali 25
 
 #metal1
- defaultsidewall    allm1 metal1       113
- defaultareacap     allm1 metal1 nwell,obswell,pwell well  17
- defaultperimeter   allm1 metal1 nwell,obswell,pwell well  8
+ defaultsidewall    allm1 metal1      45
+ defaultareacap     allm1 metal1 nwell,obswell,pwell well  26
+ defaultperimeter   allm1 metal1 nwell,obswell,pwell well  41
  defaultoverlap     allm1 metal1 nwell well 26
 
-#metal1->locali
- defaultoverlap     allm1 metal1 allactivenonfet active 36
- defaultsideoverlap allm1 metal1 allactivenonfet active 9
-
 #metal1->diff
- defaultoverlap     allm1 metal1 allactivenonfet active 36
- defaultsideoverlap allm1 metal1 allactivenonfet active 9
+ defaultoverlap     allm1 metal1 allactivenonfet active 26
+ defaultsideoverlap allm1 metal1 allactivenonfet active 41
 
 #metal1->poly
- defaultoverlap     allm1 metal1 allpolynonres active 46
- defaultsideoverlap allm1 metal1 allpolynonres active 10
+ defaultoverlap     allm1 metal1 allpolynonres active 45
+ defaultsideoverlap allm1 metal1 allpolynonres active 47
+ defaultsideoverlap *poly active allm1 metal1 17
+
+#metal1->locali
+ defaultoverlap     allm1 metal1 allli locali 114
+ defaultsideoverlap allm1 metal1 allli locali 59
+ defaultsideoverlap allli locali allm1 metal1 35
 
 #metal2
- defaultsidewall    allm2 metal2      101
- defaultareacap     allm2 metal2 nwell,obswell,pwell well 12
- defaultperimeter   allm2 metal2 nwell,obswell,pwell well 6
- defaultoverlap     allm2 metal2 nwell well 13
+ defaultsidewall    allm2 metal2      50
+ defaultareacap     allm2 metal2 nwell,obswell,pwell well 17
+ defaultperimeter   allm2 metal2 nwell,obswell,pwell well 41
+ defaultoverlap     allm2 metal2 nwell well 38
 
 #metal2->diff
- defaultoverlap     allm2 metal2 allactivenonfet active 14
- defaultsideoverlap allm2 metal2 allactivenonfet active 7
+ defaultoverlap     allm2 metal2 allactivenonfet active 17
+ defaultsideoverlap allm2 metal2 allactivenonfet active 41
 
 #metal2->poly
- defaultoverlap     allm2 metal2 allpolynonres active 16
- defaultsideoverlap allm2 metal2 allpolynonres active 7
+ defaultoverlap     allm2 metal2 allpolynonres active 24
+ defaultsideoverlap allm2 metal2 allpolynonres active 41
+ defaultsideoverlap *poly active allm2 metal2 11
+
+#metal2->locali
+ defaultoverlap     allm2 metal2 allli locali 38
+ defaultsideoverlap allm2 metal2 allli locali 46
+ defaultsideoverlap allli locali allm2 metal2 22
 
 #metal2->metal1
- defaultoverlap     allm2 metal2 allm1 metal1 39
- defaultsideoverlap allm2 metal2 allm1 metal1 10
+ defaultoverlap     allm2 metal2 allm1 metal1 134
+ defaultsideoverlap allm2 metal2 allm1 metal1 67
+ defaultsideoverlap allm1 metal1 allm2 metal2 48
 
 #metal3
- defaultsidewall    allm3 metal3     102
- defaultoverlap     allm3 metal3 nwell well 8
- defaultareacap     allm3 metal3 nwell,obswell,pwell well 8
- defaultperimeter   allm3 metal3 nwell,obswell,pwell well 5
+ defaultsidewall    allm3 metal3     63
+ defaultoverlap     allm3 metal3 nwell well 12
+ defaultareacap     allm3 metal3 nwell,obswell,pwell well 12
+ defaultperimeter   allm3 metal3 nwell,obswell,pwell well 41
 
 #metal3->diff
- defaultoverlap     allm3 metal3 allactive active 9
- defaultsideoverlap allm3 metal3 allactive active 6
+ defaultoverlap     allm3 metal3 allactive active 12
+ defaultsideoverlap allm3 metal3 allactive active 41
 
 #metal3->poly
- defaultoverlap     allm3 metal3 allpolynonres active 10
- defaultsideoverlap allm3 metal3 allpolynonres active 6
+ defaultoverlap     allm3 metal3 allpolynonres active 16
+ defaultsideoverlap allm3 metal3 allpolynonres active 44
+ defaultsideoverlap *poly active allm3 metal3 9
+
+#metal3->locali
+ defaultoverlap     allm3 metal3 allli locali 21
+ defaultsideoverlap allm3 metal3 allli locali 47
+ defaultsideoverlap allli locali allm3 metal3 15
 
 #metal3->metal1
- defaultoverlap     allm3 metal3 allm1 metal1 15
- defaultsideoverlap allm3 metal3 allm1 metal1 7
+ defaultoverlap     allm3 metal3 allm1 metal1 35
+ defaultsideoverlap allm3 metal3 allm1 metal1 55
+ defaultsideoverlap allm1 metal1 allm3 metal3 27
 
 #metal3->metal2
- defaultoverlap     allm3 metal3 allm2 metal2 39
- defaultsideoverlap allm3 metal3 allm2 metal2 10
+ defaultoverlap     allm3 metal3 allm2 metal2 86
+ defaultsideoverlap allm3 metal3 allm2 metal2 70
+ defaultsideoverlap allm2 metal2 allm3 metal3 44
 
 #ifdef METAL5
 #metal4
- defaultsidewall    allm4 metal4       102
+ defaultsidewall    allm4 metal4       67
 # defaultareacap     alltopm metal4 well  6
  areacap     	    allm4/m4 8
  defaultoverlap     allm4 metal4 nwell well 8
- defaultperimeter   allm4 metal4 well  5
+ defaultperimeter   allm4 metal4 well  37
 
 #metal4->diff
- defaultoverlap     allm4 metal4 allactivenonfet active 7
- defaultsideoverlap allm4 metal4 allactivenonfet active 7
+ defaultoverlap     allm4 metal4 allactivenonfet active 8
+ defaultsideoverlap allm4 metal4 allactivenonfet active 37
 
 #metal4->poly
- defaultoverlap     allm4 metal4 allpolynonres active 7
- defaultsideoverlap allm4 metal4 allpolynonres active 5
+ defaultoverlap     allm4 metal4 allpolynonres active 10
+ defaultsideoverlap allm4 metal4 allpolynonres active 38
+ defaultsideoverlap *poly active allm4 metal4 6
+
+#metal4->locali
+ defaultoverlap     allm4 metal4 allli locali 12
+ defaultsideoverlap allm4 metal4 allli locali 40
+ defaultsideoverlap allli locali allm4 metal4 10
 
 #metal4->metal1
- defaultoverlap     allm4 metal4 allm1 metal1 9
- defaultsideoverlap allm4 metal4 allm1 metal1 6
+ defaultoverlap     allm4 metal4 allm1 metal1 15
+ defaultsideoverlap allm4 metal4 allm1 metal1 43
+ defaultsideoverlap allm1 metal1 allm4 metal4 16
 
 #metal4->metal2
- defaultoverlap     allm4 metal4 allm2 metal2 15
- defaultsideoverlap allm4 metal4 allm2 metal2 7
+ defaultoverlap     allm4 metal4 allm2 metal2 20
+ defaultsideoverlap allm4 metal4 allm2 metal2 46
+ defaultsideoverlap allm2 metal2 allm4 metal4 22
 
 #metal4->metal3
- defaultoverlap     allm4 metal4 allm3 metal3 39
- defaultsideoverlap allm4 metal4 allm3 metal3 10
+ defaultoverlap     allm4 metal4 allm3 metal3 84
+ defaultsideoverlap allm4 metal4 allm3 metal3 71
+ defaultsideoverlap allm3 metal3 allm4 metal4 43
 
 #metal5
- defaultsidewall    allm5 metal5       103
+ defaultsidewall    allm5 metal5       127
 # defaultareacap     allm5 metal5 well  6
  areacap     	    allm5/m5 6
  defaultoverlap     allm5 metal5 nwell well 6
- defaultperimeter   allm5 metal5 well  5
+ defaultperimeter   allm5 metal5 well  39
 
 #metal5->diff
- defaultoverlap     allm5 metal5 allactivenonfet active 5
- defaultsideoverlap allm5 metal5 allactivenonfet active 5
+ defaultoverlap     allm5 metal5 allactivenonfet active 6
+ defaultsideoverlap allm5 metal5 allactivenonfet active 39
 
 #metal5->poly
- defaultoverlap     allm5 metal5 allpolynonres active 5
- defaultsideoverlap allm5 metal5 allpolynonres active 5
+ defaultoverlap     allm5 metal5 allpolynonres active 7
+ defaultsideoverlap allm5 metal5 allpolynonres active 40
+ defaultsideoverlap *poly active allm5 metal5 6
+
+#metal5->locali
+ defaultoverlap     allm5 metal5 allli locali 8
+ defaultsideoverlap allm5 metal5 allli locali 41
+ defaultsideoverlap allli locali allm5 metal5 8
 
 #metal5->metal1
- defaultoverlap     allm5 metal5 allm1 metal1 7
- defaultsideoverlap allm5 metal5 allm1 metal1 5
+ defaultoverlap     allm5 metal5 allm1 metal1 9
+ defaultsideoverlap allm5 metal5 allm1 metal1 43
+ defaultsideoverlap allm1 metal1 allm5 metal5 12
 
 #metal5->metal2
- defaultoverlap     allm5 metal5 allm2 metal2 9
- defaultsideoverlap allm5 metal5 allm2 metal2 6
+ defaultoverlap     allm5 metal5 allm2 metal2 11
+ defaultsideoverlap allm5 metal5 allm2 metal2 46
+ defaultsideoverlap allm2 metal2 allm5 metal5 16
 
 #metal5->metal3
- defaultoverlap     allm5 metal5 allm3 metal3 15
- defaultsideoverlap allm5 metal5 allm3 metal3 7
+ defaultoverlap     allm5 metal5 allm3 metal3 20
+ defaultsideoverlap allm5 metal5 allm3 metal3 54
+ defaultsideoverlap allm3 metal3 allm5 metal5 28
 
 #metal5->metal4
- defaultoverlap     allm5 metal5 allm4 metal4 39
- defaultsideoverlap allm5 metal5 allm4 metal4 10
+ defaultoverlap     allm5 metal5 allm4 metal4 68
+ defaultsideoverlap allm5 metal5 allm4 metal4 83
+ defaultsideoverlap allm4 metal4 allm5 metal5 47
 #endif (METAL5)
 
 # Devices:  Use document (...)
@@ -3956,7 +3993,7 @@
  contact v1  260 m1 0 30 m2  0 30  
  contact v2  280 m2 0 45 m3 25  0
 #ifdef METAL5
- contact v3  320 m3 0 30 m4  0  5
+ contact v3  320 m3 0 30 m4  5  5
  contact v4 1180 m4 0    m5 120 
 #endif (METAL5)
 
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!
