Improve diode LEF files. * Add `USE` and `SHAPE` properties. * Remove `CORE` class. * Fix layer for power pins. Fixes https://github.com/google/skywater-pdk/issues/141. Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
diff --git a/cells/diode/sky130_fd_sc_hs__diode_2.lef b/cells/diode/sky130_fd_sc_hs__diode_2.lef new file mode 100644 index 0000000..d136835 --- /dev/null +++ b/cells/diode/sky130_fd_sc_hs__diode_2.lef
@@ -0,0 +1,83 @@ +# 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 ; + NOWIREEXTENSIONATPIN ON ; + DIVIDERCHAR "/" ; + BUSBITCHARS "[]" ; +MACRO sky130_fd_sc_hs__diode_2 + CLASS CORE ANTENNACELL ; + FOREIGN scs8hs_diode_2 ; + ORIGIN 0.000000 0.000000 ; + SIZE 0.960000 BY 3.330000 ; + SYMMETRY X Y ; + SITE unit ; + PIN DIODE + ANTENNADIFFAREA 0.641700 ; + ANTENNAGATEAREA 0.641700 ; + DIRECTION INPUT ; + USE SIGNAL ; + PORT + LAYER li1 ; + RECT 0.095000 0.265000 0.865000 3.065000 ; + END + END DIODE + PIN VGND + DIRECTION INOUT ; + SHAPE ABUTMENT ; + USE GROUND ; + PORT + LAYER met1 ; + RECT 0.000000 -0.245000 0.960000 0.245000 ; + END + END VGND + PIN VNB + DIRECTION INOUT ; + USE GROUND ; + PORT + LAYER pwell ; + RECT 0.000000 0.000000 0.960000 0.245000 ; + END + END VNB + PIN VPB + DIRECTION INOUT ; + USE POWER ; + PORT + LAYER nwell ; + RECT -0.190000 1.660000 1.150000 3.520000 ; + END + END VPB + PIN VPWR + DIRECTION INOUT ; + SHAPE ABUTMENT ; + USE POWER ; + PORT + LAYER met1 ; + RECT 0.000000 3.085000 0.960000 3.575000 ; + END + END VPWR + OBS + LAYER li1 ; + RECT 0.000000 -0.085000 0.960000 0.085000 ; + RECT 0.000000 3.245000 0.960000 3.415000 ; + LAYER mcon ; + RECT 0.155000 -0.085000 0.325000 0.085000 ; + RECT 0.155000 3.245000 0.325000 3.415000 ; + RECT 0.635000 -0.085000 0.805000 0.085000 ; + RECT 0.635000 3.245000 0.805000 3.415000 ; + END +END sky130_fd_sc_hs__diode_2 +END LIBRARY
diff --git a/cells/diode/sky130_fd_sc_hs__diode_2.magic.lef b/cells/diode/sky130_fd_sc_hs__diode_2.magic.lef index ab69d5c..84b360f 100644 --- a/cells/diode/sky130_fd_sc_hs__diode_2.magic.lef +++ b/cells/diode/sky130_fd_sc_hs__diode_2.magic.lef
@@ -19,43 +19,50 @@ DIVIDERCHAR "/" ; BUSBITCHARS "[]" ; MACRO sky130_fd_sc_hs__diode_2 - CLASS BLOCK ; + CLASS CORE ANTENNACELL ; FOREIGN sky130_fd_sc_hs__diode_2 ; ORIGIN 0.000000 0.000000 ; SIZE 0.960000 BY 3.330000 ; + SYMMETRY X Y ; + SITE unit ; PIN DIODE ANTENNADIFFAREA 0.641700 ; ANTENNAGATEAREA 0.641700 ; DIRECTION INPUT ; + USE SIGNAL ; PORT LAYER li1 ; RECT 0.095000 0.265000 0.865000 3.065000 ; END END DIODE - PIN VNB - DIRECTION INPUT ; - PORT - LAYER pwell ; - RECT 0.000000 0.000000 0.960000 0.245000 ; - END - END VNB - PIN VPB - DIRECTION INPUT ; - PORT - LAYER nwell ; - RECT -0.190000 1.660000 1.150000 3.520000 ; - END - END VPB PIN VGND - DIRECTION INPUT ; + DIRECTION INOUT ; + SHAPE ABUTMENT ; USE GROUND ; PORT LAYER met1 ; RECT 0.000000 -0.245000 0.960000 0.245000 ; END END VGND + PIN VNB + DIRECTION INOUT ; + USE GROUND ; + PORT + LAYER pwell ; + RECT 0.000000 0.000000 0.960000 0.245000 ; + END + END VNB + PIN VPB + DIRECTION INOUT ; + USE POWER ; + PORT + LAYER nwell ; + RECT -0.190000 1.660000 1.150000 3.520000 ; + END + END VPB PIN VPWR - DIRECTION INPUT ; + DIRECTION INOUT ; + SHAPE ABUTMENT ; USE POWER ; PORT LAYER met1 ;
diff --git a/cells/fill_diode/sky130_fd_sc_hs__fill_diode_2.lef b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_2.lef new file mode 100644 index 0000000..6342a0f --- /dev/null +++ b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_2.lef
@@ -0,0 +1,75 @@ +# 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 ; + NOWIREEXTENSIONATPIN ON ; + DIVIDERCHAR "/" ; + BUSBITCHARS "[]" ; +MACRO sky130_fd_sc_hs__fill_diode_2 + CLASS SPACER ; + FOREIGN scs8hs_fill_diode_2 ; + ORIGIN 0.000000 0.000000 ; + SIZE 0.960000 BY 3.330000 ; + SYMMETRY X Y ; + SITE unit ; + PIN VGND + DIRECTION INOUT ; + SHAPE ABUTMENT ; + USE GROUND ; + PORT + LAYER met1 ; + RECT 0.000000 -0.245000 0.960000 0.245000 ; + END + END VGND + PIN VNB + DIRECTION INOUT ; + USE GROUND ; + PORT + LAYER pwell ; + RECT 0.000000 0.000000 0.960000 0.245000 ; + END + END VNB + PIN VPB + DIRECTION INOUT ; + USE POWER ; + PORT + LAYER nwell ; + RECT -0.190000 1.660000 1.150000 3.520000 ; + END + END VPB + PIN VPWR + DIRECTION INOUT ; + SHAPE ABUTMENT ; + USE POWER ; + PORT + LAYER met1 ; + RECT 0.000000 3.085000 0.960000 3.575000 ; + END + END VPWR + OBS + LAYER li1 ; + RECT 0.000000 -0.085000 0.960000 0.085000 ; + RECT 0.000000 3.245000 0.960000 3.415000 ; + RECT 0.135000 0.085000 0.825000 0.580000 ; + RECT 0.135000 2.750000 0.825000 3.245000 ; + LAYER mcon ; + RECT 0.155000 -0.085000 0.325000 0.085000 ; + RECT 0.155000 3.245000 0.325000 3.415000 ; + RECT 0.635000 -0.085000 0.805000 0.085000 ; + RECT 0.635000 3.245000 0.805000 3.415000 ; + END +END sky130_fd_sc_hs__fill_diode_2 +END LIBRARY
diff --git a/cells/fill_diode/sky130_fd_sc_hs__fill_diode_2.magic.lef b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_2.magic.lef index 1d78786..e3942da 100644 --- a/cells/fill_diode/sky130_fd_sc_hs__fill_diode_2.magic.lef +++ b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_2.magic.lef
@@ -19,34 +19,40 @@ DIVIDERCHAR "/" ; BUSBITCHARS "[]" ; MACRO sky130_fd_sc_hs__fill_diode_2 - CLASS BLOCK ; + CLASS SPACER ; FOREIGN sky130_fd_sc_hs__fill_diode_2 ; ORIGIN 0.000000 0.000000 ; SIZE 0.960000 BY 3.330000 ; - PIN VNB - DIRECTION INPUT ; - PORT - LAYER pwell ; - RECT 0.000000 0.000000 0.960000 0.245000 ; - END - END VNB - PIN VPB - DIRECTION INPUT ; - PORT - LAYER nwell ; - RECT -0.190000 1.660000 1.150000 3.520000 ; - END - END VPB + SYMMETRY X Y ; + SITE unit ; PIN VGND - DIRECTION INPUT ; + DIRECTION INOUT ; + SHAPE ABUTMENT ; USE GROUND ; PORT LAYER met1 ; RECT 0.000000 -0.245000 0.960000 0.245000 ; END END VGND + PIN VNB + DIRECTION INOUT ; + USE GROUND ; + PORT + LAYER pwell ; + RECT 0.000000 0.000000 0.960000 0.245000 ; + END + END VNB + PIN VPB + DIRECTION INOUT ; + USE POWER ; + PORT + LAYER nwell ; + RECT -0.190000 1.660000 1.150000 3.520000 ; + END + END VPB PIN VPWR - DIRECTION INPUT ; + DIRECTION INOUT ; + SHAPE ABUTMENT ; USE POWER ; PORT LAYER met1 ;
diff --git a/cells/fill_diode/sky130_fd_sc_hs__fill_diode_4.lef b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_4.lef new file mode 100644 index 0000000..a88155a --- /dev/null +++ b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_4.lef
@@ -0,0 +1,79 @@ +# 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 ; + NOWIREEXTENSIONATPIN ON ; + DIVIDERCHAR "/" ; + BUSBITCHARS "[]" ; +MACRO sky130_fd_sc_hs__fill_diode_4 + CLASS SPACER ; + FOREIGN scs8hs_fill_diode_4 ; + ORIGIN 0.000000 0.000000 ; + SIZE 1.920000 BY 3.330000 ; + SYMMETRY X Y ; + SITE unit ; + PIN VGND + DIRECTION INOUT ; + SHAPE ABUTMENT ; + USE GROUND ; + PORT + LAYER met1 ; + RECT 0.000000 -0.245000 1.920000 0.245000 ; + END + END VGND + PIN VNB + DIRECTION INOUT ; + USE GROUND ; + PORT + LAYER pwell ; + RECT 0.000000 0.000000 1.920000 0.245000 ; + END + END VNB + PIN VPB + DIRECTION INOUT ; + USE POWER ; + PORT + LAYER nwell ; + RECT -0.190000 1.660000 2.110000 3.520000 ; + END + END VPB + PIN VPWR + DIRECTION INOUT ; + SHAPE ABUTMENT ; + USE POWER ; + PORT + LAYER met1 ; + RECT 0.000000 3.085000 1.920000 3.575000 ; + END + END VPWR + OBS + LAYER li1 ; + RECT 0.000000 -0.085000 1.920000 0.085000 ; + RECT 0.000000 3.245000 1.920000 3.415000 ; + RECT 0.135000 0.085000 1.785000 0.580000 ; + RECT 0.135000 2.750000 1.785000 3.245000 ; + LAYER mcon ; + RECT 0.155000 -0.085000 0.325000 0.085000 ; + RECT 0.155000 3.245000 0.325000 3.415000 ; + RECT 0.635000 -0.085000 0.805000 0.085000 ; + RECT 0.635000 3.245000 0.805000 3.415000 ; + RECT 1.115000 -0.085000 1.285000 0.085000 ; + RECT 1.115000 3.245000 1.285000 3.415000 ; + RECT 1.595000 -0.085000 1.765000 0.085000 ; + RECT 1.595000 3.245000 1.765000 3.415000 ; + END +END sky130_fd_sc_hs__fill_diode_4 +END LIBRARY
diff --git a/cells/fill_diode/sky130_fd_sc_hs__fill_diode_4.magic.lef b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_4.magic.lef index 5c79eda..817e8c0 100644 --- a/cells/fill_diode/sky130_fd_sc_hs__fill_diode_4.magic.lef +++ b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_4.magic.lef
@@ -19,34 +19,40 @@ DIVIDERCHAR "/" ; BUSBITCHARS "[]" ; MACRO sky130_fd_sc_hs__fill_diode_4 - CLASS BLOCK ; + CLASS SPACER ; FOREIGN sky130_fd_sc_hs__fill_diode_4 ; ORIGIN 0.000000 0.000000 ; SIZE 1.920000 BY 3.330000 ; - PIN VNB - DIRECTION INPUT ; - PORT - LAYER pwell ; - RECT 0.000000 0.000000 1.920000 0.245000 ; - END - END VNB - PIN VPB - DIRECTION INPUT ; - PORT - LAYER nwell ; - RECT -0.190000 1.660000 2.110000 3.520000 ; - END - END VPB + SYMMETRY X Y ; + SITE unit ; PIN VGND - DIRECTION INPUT ; + DIRECTION INOUT ; + SHAPE ABUTMENT ; USE GROUND ; PORT LAYER met1 ; RECT 0.000000 -0.245000 1.920000 0.245000 ; END END VGND + PIN VNB + DIRECTION INOUT ; + USE GROUND ; + PORT + LAYER pwell ; + RECT 0.000000 0.000000 1.920000 0.245000 ; + END + END VNB + PIN VPB + DIRECTION INOUT ; + USE POWER ; + PORT + LAYER nwell ; + RECT -0.190000 1.660000 2.110000 3.520000 ; + END + END VPB PIN VPWR - DIRECTION INPUT ; + DIRECTION INOUT ; + SHAPE ABUTMENT ; USE POWER ; PORT LAYER met1 ;
diff --git a/cells/fill_diode/sky130_fd_sc_hs__fill_diode_8.lef b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_8.lef new file mode 100644 index 0000000..3aa025c --- /dev/null +++ b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_8.lef
@@ -0,0 +1,87 @@ +# 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 ; + NOWIREEXTENSIONATPIN ON ; + DIVIDERCHAR "/" ; + BUSBITCHARS "[]" ; +MACRO sky130_fd_sc_hs__fill_diode_8 + CLASS SPACER ; + FOREIGN scs8hs_fill_diode_8 ; + ORIGIN 0.000000 0.000000 ; + SIZE 3.840000 BY 3.330000 ; + SYMMETRY X Y ; + SITE unit ; + PIN VGND + DIRECTION INOUT ; + SHAPE ABUTMENT ; + USE GROUND ; + PORT + LAYER met1 ; + RECT 0.000000 -0.245000 3.840000 0.245000 ; + END + END VGND + PIN VNB + DIRECTION INOUT ; + USE GROUND ; + PORT + LAYER pwell ; + RECT 0.000000 0.000000 3.840000 0.245000 ; + END + END VNB + PIN VPB + DIRECTION INOUT ; + USE POWER ; + PORT + LAYER nwell ; + RECT -0.190000 1.660000 4.030000 3.520000 ; + END + END VPB + PIN VPWR + DIRECTION INOUT ; + SHAPE ABUTMENT ; + USE POWER ; + PORT + LAYER met1 ; + RECT 0.000000 3.085000 3.840000 3.575000 ; + END + END VPWR + OBS + LAYER li1 ; + RECT 0.000000 -0.085000 3.840000 0.085000 ; + RECT 0.000000 3.245000 3.840000 3.415000 ; + RECT 0.135000 0.085000 3.705000 0.580000 ; + RECT 0.135000 2.750000 3.705000 3.245000 ; + LAYER mcon ; + RECT 0.155000 -0.085000 0.325000 0.085000 ; + RECT 0.155000 3.245000 0.325000 3.415000 ; + RECT 0.635000 -0.085000 0.805000 0.085000 ; + RECT 0.635000 3.245000 0.805000 3.415000 ; + RECT 1.115000 -0.085000 1.285000 0.085000 ; + RECT 1.115000 3.245000 1.285000 3.415000 ; + RECT 1.595000 -0.085000 1.765000 0.085000 ; + RECT 1.595000 3.245000 1.765000 3.415000 ; + RECT 2.075000 -0.085000 2.245000 0.085000 ; + RECT 2.075000 3.245000 2.245000 3.415000 ; + RECT 2.555000 -0.085000 2.725000 0.085000 ; + RECT 2.555000 3.245000 2.725000 3.415000 ; + RECT 3.035000 -0.085000 3.205000 0.085000 ; + RECT 3.035000 3.245000 3.205000 3.415000 ; + RECT 3.515000 -0.085000 3.685000 0.085000 ; + RECT 3.515000 3.245000 3.685000 3.415000 ; + END +END sky130_fd_sc_hs__fill_diode_8 +END LIBRARY
diff --git a/cells/fill_diode/sky130_fd_sc_hs__fill_diode_8.magic.lef b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_8.magic.lef index 53abea5..8069a3a 100644 --- a/cells/fill_diode/sky130_fd_sc_hs__fill_diode_8.magic.lef +++ b/cells/fill_diode/sky130_fd_sc_hs__fill_diode_8.magic.lef
@@ -19,34 +19,40 @@ DIVIDERCHAR "/" ; BUSBITCHARS "[]" ; MACRO sky130_fd_sc_hs__fill_diode_8 - CLASS BLOCK ; + CLASS SPACER ; FOREIGN sky130_fd_sc_hs__fill_diode_8 ; ORIGIN 0.000000 0.000000 ; SIZE 3.840000 BY 3.330000 ; - PIN VNB - DIRECTION INPUT ; - PORT - LAYER pwell ; - RECT 0.000000 0.000000 3.840000 0.245000 ; - END - END VNB - PIN VPB - DIRECTION INPUT ; - PORT - LAYER nwell ; - RECT -0.190000 1.660000 4.030000 3.520000 ; - END - END VPB + SYMMETRY X Y ; + SITE unit ; PIN VGND - DIRECTION INPUT ; + DIRECTION INOUT ; + SHAPE ABUTMENT ; USE GROUND ; PORT LAYER met1 ; RECT 0.000000 -0.245000 3.840000 0.245000 ; END END VGND + PIN VNB + DIRECTION INOUT ; + USE GROUND ; + PORT + LAYER pwell ; + RECT 0.000000 0.000000 3.840000 0.245000 ; + END + END VNB + PIN VPB + DIRECTION INOUT ; + USE POWER ; + PORT + LAYER nwell ; + RECT -0.190000 1.660000 4.030000 3.520000 ; + END + END VPB PIN VPWR - DIRECTION INPUT ; + DIRECTION INOUT ; + SHAPE ABUTMENT ; USE POWER ; PORT LAYER met1 ;