Merge branch 'master' of 192.168.0.7:/home/tim/gitsrc/open_pdks/
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!