lef: Fixing VNB/VPB properties in .magic.lef files. Both the `PIN VNB` and `PIN VPB` are now marked with `DIRECTION INOUT`. The `PIN VNB` is marked with `USE GROUND` and the `PIN VPB` is marked with `USE POWER`. This should fix the `.magic.lef` file usage with OpenROAD (and hopefully other tools too). Fixes https://github.com/google/skywater-pdk/issues/172 Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
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 259a5af..ab69d5c 100644 --- a/cells/diode/sky130_fd_sc_hs__diode_2.magic.lef +++ b/cells/diode/sky130_fd_sc_hs__diode_2.magic.lef
@@ -26,24 +26,28 @@ PIN DIODE ANTENNADIFFAREA 0.641700 ; ANTENNAGATEAREA 0.641700 ; + DIRECTION INPUT ; 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 ; USE GROUND ; PORT LAYER met1 ; @@ -51,6 +55,7 @@ END END VGND PIN VPWR + DIRECTION INPUT ; USE POWER ; PORT LAYER met1 ;
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 00213e8..1d78786 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
@@ -24,18 +24,21 @@ 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 PIN VGND + DIRECTION INPUT ; USE GROUND ; PORT LAYER met1 ; @@ -43,6 +46,7 @@ END END VGND PIN VPWR + DIRECTION INPUT ; USE POWER ; PORT LAYER met1 ;
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 58e0396..5c79eda 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
@@ -24,18 +24,21 @@ 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 PIN VGND + DIRECTION INPUT ; USE GROUND ; PORT LAYER met1 ; @@ -43,6 +46,7 @@ END END VGND PIN VPWR + DIRECTION INPUT ; USE POWER ; PORT LAYER met1 ;
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 e91a411..53abea5 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
@@ -24,18 +24,21 @@ 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 PIN VGND + DIRECTION INPUT ; USE GROUND ; PORT LAYER met1 ; @@ -43,6 +46,7 @@ END END VGND PIN VPWR + DIRECTION INPUT ; USE POWER ; PORT LAYER met1 ;
diff --git a/cells/tap/sky130_fd_sc_hs__tap_1.magic.lef b/cells/tap/sky130_fd_sc_hs__tap_1.magic.lef index a2441f4..157ed83 100644 --- a/cells/tap/sky130_fd_sc_hs__tap_1.magic.lef +++ b/cells/tap/sky130_fd_sc_hs__tap_1.magic.lef
@@ -39,6 +39,8 @@ PORT LAYER li1 ; RECT 0.090000 0.265000 0.390000 1.440000 ; + LAYER pwell ; + RECT 0.155000 0.320000 0.325000 1.145000 ; END PORT LAYER pwell ; @@ -51,6 +53,8 @@ PORT LAYER li1 ; RECT 0.090000 1.890000 0.390000 3.065000 ; + LAYER nwell ; + RECT -0.190000 1.660000 0.670000 3.520000 ; END END VPB PIN VPWR @@ -68,8 +72,6 @@ LAYER mcon ; RECT 0.155000 -0.085000 0.325000 0.085000 ; RECT 0.155000 3.245000 0.325000 3.415000 ; - LAYER nwell ; - RECT -0.190000 1.660000 0.670000 3.520000 ; END END sky130_fd_sc_hs__tap_1 END LIBRARY
diff --git a/cells/tap/sky130_fd_sc_hs__tap_2.magic.lef b/cells/tap/sky130_fd_sc_hs__tap_2.magic.lef index b61b997..9402f05 100644 --- a/cells/tap/sky130_fd_sc_hs__tap_2.magic.lef +++ b/cells/tap/sky130_fd_sc_hs__tap_2.magic.lef
@@ -39,6 +39,8 @@ PORT LAYER li1 ; RECT 0.090000 0.265000 0.870000 1.440000 ; + LAYER pwell ; + RECT 0.155000 0.320000 0.805000 1.145000 ; END PORT LAYER pwell ; @@ -51,6 +53,8 @@ PORT LAYER li1 ; RECT 0.090000 1.890000 0.870000 3.065000 ; + LAYER nwell ; + RECT -0.190000 1.660000 1.150000 3.520000 ; END END VPB PIN VPWR @@ -70,8 +74,6 @@ 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 ; - LAYER nwell ; - RECT -0.190000 1.660000 1.150000 3.520000 ; END END sky130_fd_sc_hs__tap_2 END LIBRARY
diff --git a/cells/tapmet1/sky130_fd_sc_hs__tapmet1_2.magic.lef b/cells/tapmet1/sky130_fd_sc_hs__tapmet1_2.magic.lef index 3c611bd..57cd1e1 100644 --- a/cells/tapmet1/sky130_fd_sc_hs__tapmet1_2.magic.lef +++ b/cells/tapmet1/sky130_fd_sc_hs__tapmet1_2.magic.lef
@@ -39,6 +39,8 @@ PORT LAYER met1 ; RECT 0.080000 0.425000 0.400000 0.685000 ; + LAYER pwell ; + RECT 0.155000 0.320000 0.805000 1.145000 ; END PORT LAYER pwell ; @@ -57,6 +59,8 @@ PORT LAYER met1 ; RECT 0.560000 2.645000 0.880000 2.905000 ; + LAYER nwell ; + RECT -0.190000 1.660000 1.150000 3.520000 ; END END VPB PIN VPWR @@ -78,8 +82,6 @@ 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 ; - LAYER nwell ; - RECT -0.190000 1.660000 1.150000 3.520000 ; END END sky130_fd_sc_hs__tapmet1_2 END LIBRARY
diff --git a/cells/tapvgnd/sky130_fd_sc_hs__tapvgnd_1.magic.lef b/cells/tapvgnd/sky130_fd_sc_hs__tapvgnd_1.magic.lef index 7d23562..eddbf74 100644 --- a/cells/tapvgnd/sky130_fd_sc_hs__tapvgnd_1.magic.lef +++ b/cells/tapvgnd/sky130_fd_sc_hs__tapvgnd_1.magic.lef
@@ -31,6 +31,8 @@ PORT LAYER met1 ; RECT 0.000000 -0.245000 0.480000 0.245000 ; + LAYER pwell ; + RECT 0.155000 0.320000 0.325000 1.145000 ; END END VGND PIN VPB @@ -39,6 +41,8 @@ PORT LAYER met1 ; RECT 0.080000 2.645000 0.400000 2.905000 ; + LAYER nwell ; + RECT -0.190000 1.660000 0.670000 3.520000 ; END END VPB PIN VPWR
diff --git a/cells/tapvgnd2/sky130_fd_sc_hs__tapvgnd2_1.magic.lef b/cells/tapvgnd2/sky130_fd_sc_hs__tapvgnd2_1.magic.lef index 0a2ad94..c56a791 100644 --- a/cells/tapvgnd2/sky130_fd_sc_hs__tapvgnd2_1.magic.lef +++ b/cells/tapvgnd2/sky130_fd_sc_hs__tapvgnd2_1.magic.lef
@@ -31,6 +31,8 @@ PORT LAYER met1 ; RECT 0.000000 -0.245000 0.480000 0.245000 ; + LAYER pwell ; + RECT 0.155000 0.320000 0.325000 1.145000 ; END END VGND PIN VPB @@ -39,6 +41,8 @@ PORT LAYER met1 ; RECT 0.080000 2.275000 0.400000 2.535000 ; + LAYER nwell ; + RECT -0.190000 1.660000 0.670000 3.520000 ; END END VPB PIN VPWR
diff --git a/cells/tapvpwrvgnd/sky130_fd_sc_hs__tapvpwrvgnd_1.magic.lef b/cells/tapvpwrvgnd/sky130_fd_sc_hs__tapvpwrvgnd_1.magic.lef index 6afda6e..bf79885 100644 --- a/cells/tapvpwrvgnd/sky130_fd_sc_hs__tapvpwrvgnd_1.magic.lef +++ b/cells/tapvpwrvgnd/sky130_fd_sc_hs__tapvpwrvgnd_1.magic.lef
@@ -31,6 +31,8 @@ PORT LAYER met1 ; RECT 0.000000 -0.245000 0.480000 0.245000 ; + LAYER pwell ; + RECT 0.155000 0.320000 0.325000 1.145000 ; END END VGND PIN VPWR @@ -39,6 +41,8 @@ PORT LAYER met1 ; RECT 0.000000 3.085000 0.480000 3.575000 ; + LAYER nwell ; + RECT -0.190000 1.660000 0.670000 3.520000 ; END END VPWR OBS