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_ms__diode_2.lef b/cells/diode/sky130_fd_sc_ms__diode_2.lef
new file mode 100644
index 0000000..a99c0c4
--- /dev/null
+++ b/cells/diode/sky130_fd_sc_ms__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_ms__diode_2
+ CLASS CORE ANTENNACELL ;
+ FOREIGN scs8ms_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_ms__diode_2
+END LIBRARY
diff --git a/cells/diode/sky130_fd_sc_ms__diode_2.magic.lef b/cells/diode/sky130_fd_sc_ms__diode_2.magic.lef
index e65eef4..43383a8 100644
--- a/cells/diode/sky130_fd_sc_ms__diode_2.magic.lef
+++ b/cells/diode/sky130_fd_sc_ms__diode_2.magic.lef
@@ -19,43 +19,50 @@
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
MACRO sky130_fd_sc_ms__diode_2
- CLASS BLOCK ;
+ CLASS CORE ANTENNACELL ;
FOREIGN sky130_fd_sc_ms__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_ms__fill_diode_2.lef b/cells/fill_diode/sky130_fd_sc_ms__fill_diode_2.lef
new file mode 100644
index 0000000..38cc2b4
--- /dev/null
+++ b/cells/fill_diode/sky130_fd_sc_ms__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_ms__fill_diode_2
+ CLASS SPACER ;
+ FOREIGN scs8ms_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_ms__fill_diode_2
+END LIBRARY
diff --git a/cells/fill_diode/sky130_fd_sc_ms__fill_diode_2.magic.lef b/cells/fill_diode/sky130_fd_sc_ms__fill_diode_2.magic.lef
index a7dbde3..ae8bc5a 100644
--- a/cells/fill_diode/sky130_fd_sc_ms__fill_diode_2.magic.lef
+++ b/cells/fill_diode/sky130_fd_sc_ms__fill_diode_2.magic.lef
@@ -19,34 +19,40 @@
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
MACRO sky130_fd_sc_ms__fill_diode_2
- CLASS BLOCK ;
+ CLASS SPACER ;
FOREIGN sky130_fd_sc_ms__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_ms__fill_diode_4.lef b/cells/fill_diode/sky130_fd_sc_ms__fill_diode_4.lef
new file mode 100644
index 0000000..8bcae67
--- /dev/null
+++ b/cells/fill_diode/sky130_fd_sc_ms__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_ms__fill_diode_4
+ CLASS SPACER ;
+ FOREIGN scs8ms_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_ms__fill_diode_4
+END LIBRARY
diff --git a/cells/fill_diode/sky130_fd_sc_ms__fill_diode_4.magic.lef b/cells/fill_diode/sky130_fd_sc_ms__fill_diode_4.magic.lef
index 4fc71ef..b8b4101 100644
--- a/cells/fill_diode/sky130_fd_sc_ms__fill_diode_4.magic.lef
+++ b/cells/fill_diode/sky130_fd_sc_ms__fill_diode_4.magic.lef
@@ -19,34 +19,40 @@
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
MACRO sky130_fd_sc_ms__fill_diode_4
- CLASS BLOCK ;
+ CLASS SPACER ;
FOREIGN sky130_fd_sc_ms__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_ms__fill_diode_8.lef b/cells/fill_diode/sky130_fd_sc_ms__fill_diode_8.lef
new file mode 100644
index 0000000..35fbee3
--- /dev/null
+++ b/cells/fill_diode/sky130_fd_sc_ms__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_ms__fill_diode_8
+ CLASS SPACER ;
+ FOREIGN scs8ms_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_ms__fill_diode_8
+END LIBRARY
diff --git a/cells/fill_diode/sky130_fd_sc_ms__fill_diode_8.magic.lef b/cells/fill_diode/sky130_fd_sc_ms__fill_diode_8.magic.lef
index 2af700b..7733ad8 100644
--- a/cells/fill_diode/sky130_fd_sc_ms__fill_diode_8.magic.lef
+++ b/cells/fill_diode/sky130_fd_sc_ms__fill_diode_8.magic.lef
@@ -19,34 +19,40 @@
DIVIDERCHAR "/" ;
BUSBITCHARS "[]" ;
MACRO sky130_fd_sc_ms__fill_diode_8
- CLASS BLOCK ;
+ CLASS SPACER ;
FOREIGN sky130_fd_sc_ms__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 ;