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!