diff --git a/sky130/custom/scripts/fix_missing_diodes_lef.py b/sky130/custom/scripts/fix_missing_diodes_lef.py
deleted file mode 100644
index f1209db..0000000
--- a/sky130/custom/scripts/fix_missing_diodes_lef.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python3
-
-# This script can be removed when GitHub issue #141 (https://github.com/google/skywater-pdk/issues/141) is fixed.
-from os import path
-import argparse
-import subprocess
-
-parser = argparse.ArgumentParser(
-    description='This file fixes the missing diode information from the LEF files of the ms and hs')
-
-parser.add_argument('--skywater_path', '-sp',required=True,
-                    help='skywater path')
-
-
-args = parser.parse_args()
-skywater_path = args.skywater_path
-
-
-hs_lef =  str(skywater_path)+"/sky130_fd_sc_hs/latest/cells/diode/sky130_fd_sc_hs__diode_2.magic.lef"
-
-if(path.exists(hs_lef)):
-    hs_lef_FileOpener = open(hs_lef, "r")
-    if hs_lef_FileOpener.mode == 'r':
-        hs_lef_Content = hs_lef_FileOpener.read()
-    hs_lef_FileOpener.close()
-    hs_lef_Content = hs_lef_Content.replace("CLASS BLOCK","CLASS CORE ANTENNACELL")
-    if hs_lef_Content.find("PIN DIODE\n    DIRECTION INPUT ;") == -1:
-        hs_lef_Content = hs_lef_Content.replace("PIN DIODE","SYMMETRY X Y ;\n  SITE unit ;\n  PIN DIODE\n    DIRECTION INPUT ;\n    USE SIGNAL ;")
-    hs_lef_FileOpener = open(hs_lef,"w")
-    hs_lef_FileOpener.write(hs_lef_Content)
-    hs_lef_FileOpener.close()
-
-
-ms_lef =  str(skywater_path)+"/sky130_fd_sc_ms/latest/cells/diode/sky130_fd_sc_ms__diode_2.magic.lef"
-
-if(path.exists(ms_lef)):
-    ms_lef_FileOpener = open(ms_lef, "r")
-    if ms_lef_FileOpener.mode == 'r':
-        ms_lef_Content = ms_lef_FileOpener.read()
-    ms_lef_FileOpener.close()
-    ms_lef_Content = ms_lef_Content.replace("CLASS BLOCK","CLASS CORE ANTENNACELL")
-    if ms_lef_Content.find("PIN DIODE\n    DIRECTION INPUT ;") == -1:
-        ms_lef_Content = ms_lef_Content.replace("PIN DIODE","SYMMETRY X Y ;\n  SITE unit ;\n  PIN DIODE\n    DIRECTION INPUT ;\n    USE SIGNAL ;")
-    ms_lef_FileOpener = open(ms_lef,"w")
-    ms_lef_FileOpener.write(ms_lef_Content)
-    ms_lef_FileOpener.close()
diff --git a/sky130/openlane/common_pdn.tcl b/sky130/openlane/common_pdn.tcl
index a7a271b..d7357a7 100644
--- a/sky130/openlane/common_pdn.tcl
+++ b/sky130/openlane/common_pdn.tcl
@@ -55,15 +55,16 @@
 # A general macro that follows the premise of the set heirarchy. You may want to modify this or add other macro configs
 pdngen::specify_grid macro {
     orient {R0 R180 MX MY R90 R270 MXR90 MYR90}
-    power_pins "VDDE"
-    ground_pins "VSSE"
-    blockages "li1 met1 met2 met3 met4 met5" 
-    straps { 
-    } 
+    power_pins "VDD VPWR"
+    ground_pins "VSS VGND"
+    blockages "li1 met1 met2 met3 met4"
+    straps {
+    }
     connect {{met4_PIN_ver met5}}
 }
 
-set ::halo 0
+set ::halo [expr min($::env(FP_HORIZONTAL_HALO), $::env(FP_VERTICAL_HALO))]
+
 
 # Metal layer for rails on every row
 set ::rails_mlayer "met1" ;
