blob: 00e422209f197b4e0d7467a4707373f83467d7d1 [file] [log] [blame]
# Copyright 2020 The SkyWater PDK Authors
#
# 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
#
# https://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.
#
# SPDX-License-Identifier: Apache-2.0
VERSION 5.7 ;
BUSBITCHARS "[]" ;
DIVIDERCHAR "/" ;
UNITS
TIME NANOSECONDS 1 ;
CAPACITANCE PICOFARADS 1 ;
RESISTANCE OHMS 1 ;
DATABASE MICRONS 1000 ;
END UNITS
MANUFACTURINGGRID 0.005 ;
# High density, single height
SITE unithd
SYMMETRY Y ;
CLASS CORE ;
SIZE 0.46 BY 2.72 ;
END unithd
# High density, double height
SITE unithddbl
SYMMETRY Y ;
CLASS CORE ;
SIZE 0.46 BY 5.44 ;
END unithddbl
LAYER li1
TYPE ROUTING ;
DIRECTION VERTICAL ;
PITCH 0.46 0.34 ;
OFFSET 0.23 0.17 ;
WIDTH 0.17 ; # LI 1
# SPACING 0.17 ; # LI 2
SPACINGTABLE
PARALLELRUNLENGTH 0
WIDTH 0 0.17 ;
AREA 0.0561 ; # LI 6
THICKNESS 0.1 ;
RESISTANCE RPERSQ 12.2 ;
ANTENNAMODEL OXIDE1 ;
ANTENNADIFFSIDEAREARATIO PWL ( ( 0 75 ) ( 0.0125 75 ) ( 0.0225 85.125 ) ( 22.5 10200 ) ) ;
END li1
LAYER mcon
TYPE CUT ;
WIDTH 0.17 ; # Mcon 1
SPACING 0.19 ; # Mcon 2
ENCLOSURE BELOW 0 0 ; # Mcon 4
ENCLOSURE ABOVE 0.03 0.06 ; # Met1 4 / Met1 5
ANTENNADIFFAREARATIO PWL ( ( 0 3 ) ( 0.0125 3 ) ( 0.0225 3.405 ) ( 22.5 408 ) ) ;
DCCURRENTDENSITY AVERAGE 0.36 ; # mA per via Iavg_max at Tj = 90oC
END mcon
LAYER met1
TYPE ROUTING ;
DIRECTION HORIZONTAL ;
PITCH 0.34 ;
OFFSET 0.17 ;
WIDTH 0.14 ; # Met1 1
# SPACING 0.14 ; # Met1 2
# SPACING 0.28 RANGE 3.001 100 ; # Met1 3b
SPACINGTABLE
PARALLELRUNLENGTH 0
WIDTH 0 0.14
WIDTH 3 0.28 ;
AREA 0.083 ; # Met1 6
THICKNESS 0.35 ;
ANTENNAMODEL OXIDE1 ;
ANTENNADIFFSIDEAREARATIO PWL ( ( 0 400 ) ( 0.0125 400 ) ( 0.0225 2609 ) ( 22.5 11600 ) ) ;
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 ;
DENSITYCHECKWINDOW 700 700 ;
DENSITYCHECKSTEP 70 ;
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 6 ) ( 0.0125 6 ) ( 0.0225 6.81 ) ( 22.5 816 ) ) ;
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.14 ; # Met2 1
# SPACING 0.14 ; # Met2 2
# SPACING 0.28 RANGE 3.001 100 ; # Met2 3b
SPACINGTABLE
PARALLELRUNLENGTH 0
WIDTH 0 0.14
WIDTH 3 0.28 ;
AREA 0.0676 ; # Met2 6
THICKNESS 0.35 ;
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
ANTENNAMODEL OXIDE1 ;
ANTENNADIFFSIDEAREARATIO PWL ( ( 0 400 ) ( 0.0125 400 ) ( 0.0225 2609 ) ( 22.5 11600 ) ) ;
MAXIMUMDENSITY 70 ;
DENSITYCHECKWINDOW 700 700 ;
DENSITYCHECKSTEP 70 ;
END met2
# ******** Layer via2, type routing, number 44 **************
LAYER via2
TYPE CUT ;
WIDTH 0.2 ; # Via2 1
SPACING 0.2 ; # Via2 2
ENCLOSURE BELOW 0.04 0.085 ; # Via2 4
ENCLOSURE ABOVE 0.065 0.065 ; # Met3 4
ANTENNADIFFAREARATIO PWL ( ( 0 6 ) ( 0.0125 6 ) ( 0.0225 6.81 ) ( 22.5 816 ) ) ;
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.3 ; # Met3 1
# SPACING 0.3 ; # Met3 2
SPACINGTABLE
PARALLELRUNLENGTH 0
WIDTH 0 0.3
WIDTH 3 0.4 ;
AREA 0.24 ; # Met3 6
THICKNESS 0.8 ;
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
ANTENNAMODEL OXIDE1 ;
ANTENNADIFFSIDEAREARATIO PWL ( ( 0 400 ) ( 0.0125 400 ) ( 0.0225 2609 ) ( 22.5 11600 ) ) ;
MAXIMUMDENSITY 70 ;
DENSITYCHECKWINDOW 700 700 ;
DENSITYCHECKSTEP 70 ;
END met3
LAYER via3
TYPE CUT ;
WIDTH 0.2 ; # Via3 1
SPACING 0.2 ; # Via3 2
ENCLOSURE BELOW 0.06 0.09 ; # Via3 4 / Via3 5
ENCLOSURE ABOVE 0.065 0.065 ; # Met4 3
ANTENNADIFFAREARATIO PWL ( ( 0 6 ) ( 0.0125 6 ) ( 0.0225 6.81 ) ( 22.5 816 ) ) ;
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.3 ; # Met4 1
# SPACING 0.3 ; # Met4 2
SPACINGTABLE
PARALLELRUNLENGTH 0
WIDTH 0 0.3
WIDTH 3 0.4 ;
AREA 0.24 ; # Met4 4a
THICKNESS 0.8 ;
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
ANTENNAMODEL OXIDE1 ;
ANTENNADIFFSIDEAREARATIO PWL ( ( 0 400 ) ( 0.0125 400 ) ( 0.0225 2609 ) ( 22.5 11600 ) ) ;
MAXIMUMDENSITY 70 ;
DENSITYCHECKWINDOW 700 700 ;
DENSITYCHECKSTEP 70 ;
END met4
LAYER via4
TYPE CUT ;
WIDTH 0.8 ; # Via4 1
SPACING 0.8 ; # Via4 2
ENCLOSURE BELOW 0.19 0.19 ; # Via4 4
ENCLOSURE ABOVE 0.31 0.31 ; # Met5 3
ANTENNADIFFAREARATIO PWL ( ( 0 6 ) ( 0.0125 6 ) ( 0.0225 6.81 ) ( 22.5 816 ) ) ;
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.6 ; # Met5 1
#SPACING 1.6 ; # Met5 2
SPACINGTABLE
PARALLELRUNLENGTH 0
WIDTH 0 1.6 ;
AREA 4 ; # Met5 4
THICKNESS 1.2 ;
EDGECAPACITANCE 4.96E-6 ;
CAPACITANCE CPERSQDIST 6.48E-6 ;
RESISTANCE RPERSQ 0.0285 ;
DCCURRENTDENSITY AVERAGE 10.17 ; # mA/um Iavg_max at Tj = 90oC
ACCURRENTDENSITY RMS 22.34 ; # mA/um Irms_max at Tj = 90oC
ANTENNAMODEL OXIDE1 ;
ANTENNADIFFSIDEAREARATIO PWL ( ( 0 400 ) ( 0.0125 400 ) ( 0.0225 2609 ) ( 22.5 11600 ) ) ;
END met5
### 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.085 0.085 0.085 ;
LAYER met1 ;
RECT -0.145 -0.115 0.145 0.115 ;
END L1M1_PR
VIARULE L1M1_PR GENERATE
LAYER li1 ;
ENCLOSURE 0 0 ;
LAYER met1 ;
ENCLOSURE 0.06 0.03 ;
LAYER mcon ;
RECT -0.085 -0.085 0.085 0.085 ;
SPACING 0.36 BY 0.36 ;
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.085 -0.085 0.085 0.085 ;
LAYER met1 ;
RECT -0.115 -0.145 0.115 0.145 ;
END L1M1_PR_R
VIARULE L1M1_PR_R GENERATE
LAYER li1 ;
ENCLOSURE 0 0 ;
LAYER met1 ;
ENCLOSURE 0.03 0.06 ;
LAYER mcon ;
RECT -0.085 -0.085 0.085 0.085 ;
SPACING 0.36 BY 0.36 ;
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.085 0.085 0.085 ;
LAYER met1 ;
RECT -0.115 -0.145 0.115 0.145 ;
END L1M1_PR_M
VIARULE L1M1_PR_M GENERATE
LAYER li1 ;
ENCLOSURE 0 0 ;
LAYER met1 ;
ENCLOSURE 0.03 0.06 ;
LAYER mcon ;
RECT -0.085 -0.085 0.085 0.085 ;
SPACING 0.36 BY 0.36 ;
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.085 -0.085 0.085 0.085 ;
LAYER met1 ;
RECT -0.145 -0.115 0.145 0.115 ;
END L1M1_PR_MR
VIARULE L1M1_PR_MR GENERATE
LAYER li1 ;
ENCLOSURE 0 0 ;
LAYER met1 ;
ENCLOSURE 0.06 0.03 ;
LAYER mcon ;
RECT -0.085 -0.085 0.085 0.085 ;
SPACING 0.36 BY 0.36 ;
END L1M1_PR_MR
# Centered via rule, we really do not want to use it
VIA L1M1_PR_C DEFAULT
LAYER mcon ;
RECT -0.085 -0.085 0.085 0.085 ;
LAYER li1 ;
RECT -0.085 -0.085 0.085 0.085 ;
LAYER met1 ;
RECT -0.145 -0.145 0.145 0.145 ;
END L1M1_PR_C
VIARULE L1M1_PR_C GENERATE
LAYER li1 ;
ENCLOSURE 0 0 ;
LAYER met1 ;
ENCLOSURE 0.06 0.06 ;
LAYER mcon ;
RECT -0.085 -0.085 0.085 0.085 ;
SPACING 0.36 BY 0.36 ;
END L1M1_PR_C
# Plus via rule, metals are along the prefered direction
VIA M1M2_PR DEFAULT
LAYER via ;
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.085 0.055 ;
LAYER met2 ;
ENCLOSURE 0.055 0.085 ;
LAYER via ;
RECT -0.075 -0.075 0.075 0.075 ;
SPACING 0.32 BY 0.32 ;
END M1M2_PR
# Plus via rule, metals are along the non prefered direction
VIA M1M2_PR_R DEFAULT
LAYER via ;
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.085 0.055 ;
LAYER via ;
RECT -0.075 -0.075 0.075 0.075 ;
SPACING 0.32 BY 0.32 ;
END M1M2_PR_R
# Minus via rule, lower layer metal is along prefered direction
VIA M1M2_PR_M DEFAULT
LAYER via ;
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.085 0.055 ;
LAYER met2 ;
ENCLOSURE 0.085 0.055 ;
LAYER via ;
RECT -0.075 -0.075 0.075 0.075 ;
SPACING 0.32 BY 0.32 ;
END M1M2_PR_M
# Minus via rule, upper layer metal is along prefered direction
VIA M1M2_PR_MR DEFAULT
LAYER via ;
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 via ;
RECT -0.075 -0.075 0.075 0.075 ;
SPACING 0.32 BY 0.32 ;
END M1M2_PR_MR
# Centered via rule, we really do not want to use it
VIA M1M2_PR_C DEFAULT
LAYER via ;
RECT -0.075 -0.075 0.075 0.075 ;
LAYER met1 ;
RECT -0.16 -0.16 0.16 0.16 ;
LAYER met2 ;
RECT -0.16 -0.16 0.16 0.16 ;
END M1M2_PR_C
VIARULE M1M2_PR_C GENERATE
LAYER met1 ;
ENCLOSURE 0.085 0.085 ;
LAYER met2 ;
ENCLOSURE 0.085 0.085 ;
LAYER via ;
RECT -0.075 -0.075 0.075 0.075 ;
SPACING 0.32 BY 0.32 ;
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.04 0.085 ;
LAYER met3 ;
ENCLOSURE 0.065 0.065 ;
LAYER via2 ;
RECT -0.1 -0.1 0.1 0.1 ;
SPACING 0.4 BY 0.4 ;
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.085 0.04 ;
LAYER met3 ;
ENCLOSURE 0.065 0.065 ;
LAYER via2 ;
RECT -0.1 -0.1 0.1 0.1 ;
SPACING 0.4 BY 0.4 ;
END M2M3_PR_R
# Minus via rule, lower layer metal is along prefered direction
VIA M2M3_PR_M 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_M
VIARULE M2M3_PR_M GENERATE
LAYER met2 ;
ENCLOSURE 0.04 0.085 ;
LAYER met3 ;
ENCLOSURE 0.065 0.065 ;
LAYER via2 ;
RECT -0.1 -0.1 0.1 0.1 ;
SPACING 0.4 BY 0.4 ;
END M2M3_PR_M
# Minus via rule, upper layer metal is along prefered direction
VIA M2M3_PR_MR 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_MR
VIARULE M2M3_PR_MR GENERATE
LAYER met2 ;
ENCLOSURE 0.085 0.04 ;
LAYER met3 ;
ENCLOSURE 0.065 0.065 ;
LAYER via2 ;
RECT -0.1 -0.1 0.1 0.1 ;
SPACING 0.4 BY 0.4 ;
END M2M3_PR_MR
# Centered via rule, we really do not want to use it
VIA M2M3_PR_C DEFAULT
LAYER via2 ;
RECT -0.1 -0.1 0.1 0.1 ;
LAYER met2 ;
RECT -0.185 -0.185 0.185 0.185 ;
LAYER met3 ;
RECT -0.165 -0.165 0.165 0.165 ;
END M2M3_PR_C
VIARULE M2M3_PR_C GENERATE
LAYER met2 ;
ENCLOSURE 0.085 0.085 ;
LAYER met3 ;
ENCLOSURE 0.065 0.065 ;
LAYER via2 ;
RECT -0.1 -0.1 0.1 0.1 ;
SPACING 0.4 BY 0.4 ;
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.09 0.06 ;
LAYER met4 ;
ENCLOSURE 0.065 0.065 ;
LAYER via3 ;
RECT -0.1 -0.1 0.1 0.1 ;
SPACING 0.4 BY 0.4 ;
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.4 BY 0.4 ;
END M3M4_PR_R
# Minus via rule, lower layer metal is along prefered direction
VIA M3M4_PR_M 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_M
VIARULE M3M4_PR_M GENERATE
LAYER met3 ;
ENCLOSURE 0.09 0.06 ;
LAYER met4 ;
ENCLOSURE 0.065 0.065 ;
LAYER via3 ;
RECT -0.1 -0.1 0.1 0.1 ;
SPACING 0.4 BY 0.4 ;
END M3M4_PR_M
# Minus via rule, upper layer metal is along prefered direction
VIA M3M4_PR_MR 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_MR
VIARULE M3M4_PR_MR 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.4 BY 0.4 ;
END M3M4_PR_MR
# Centered via rule, we really do not want to use it
VIA M3M4_PR_C DEFAULT
LAYER via3 ;
RECT -0.1 -0.1 0.1 0.1 ;
LAYER met3 ;
RECT -0.19 -0.19 0.19 0.19 ;
LAYER met4 ;
RECT -0.165 -0.165 0.165 0.165 ;
END M3M4_PR_C
VIARULE M3M4_PR_C GENERATE
LAYER met3 ;
ENCLOSURE 0.09 0.09 ;
LAYER met4 ;
ENCLOSURE 0.065 0.065 ;
LAYER via3 ;
RECT -0.1 -0.1 0.1 0.1 ;
SPACING 0.4 BY 0.4 ;
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.19 0.19 ;
LAYER met5 ;
ENCLOSURE 0.31 0.31 ;
LAYER via4 ;
RECT -0.4 -0.4 0.4 0.4 ;
SPACING 1.6 BY 1.6 ;
END M4M5_PR
# Plus via rule, metals are along the non prefered direction
VIA M4M5_PR_R 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_R
VIARULE M4M5_PR_R GENERATE
LAYER met4 ;
ENCLOSURE 0.19 0.19 ;
LAYER met5 ;
ENCLOSURE 0.31 0.31 ;
LAYER via4 ;
RECT -0.4 -0.4 0.4 0.4 ;
SPACING 1.6 BY 1.6 ;
END M4M5_PR_R
# Minus via rule, lower layer metal is along prefered direction
VIA M4M5_PR_M 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_M
VIARULE M4M5_PR_M GENERATE
LAYER met4 ;
ENCLOSURE 0.19 0.19 ;
LAYER met5 ;
ENCLOSURE 0.31 0.31 ;
LAYER via4 ;
RECT -0.4 -0.4 0.4 0.4 ;
SPACING 1.6 BY 1.6 ;
END M4M5_PR_M
# Minus via rule, upper layer metal is along prefered direction
VIA M4M5_PR_MR 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_MR
VIARULE M4M5_PR_MR GENERATE
LAYER met4 ;
ENCLOSURE 0.19 0.19 ;
LAYER met5 ;
ENCLOSURE 0.31 0.31 ;
LAYER via4 ;
RECT -0.4 -0.4 0.4 0.4 ;
SPACING 1.6 BY 1.6 ;
END M4M5_PR_MR
# Centered via rule, we really do not want to use it
VIA M4M5_PR_C 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_C
VIARULE M4M5_PR_C GENERATE
LAYER met4 ;
ENCLOSURE 0.19 0.19 ;
LAYER met5 ;
ENCLOSURE 0.31 0.31 ;
LAYER via4 ;
RECT -0.4 -0.4 0.4 0.4 ;
SPACING 1.6 BY 1.6 ;
END M4M5_PR_C
### end of single via cells ###
END LIBRARY