diff --git a/scripts/openroad/resizer.tcl b/scripts/openroad/resizer.tcl
index ea74dde..843e195 100644
--- a/scripts/openroad/resizer.tcl
+++ b/scripts/openroad/resizer.tcl
@@ -11,6 +11,62 @@
 # 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.
+set ::env(OPENLANE_LOG_DEBUG) 1
+proc puts_debug {debug_message} {
+    if { $::env(OPENLANE_LOG_DEBUG) } {
+        puts "\[DEBUG\] $debug_message"
+    }
+}
+
+
+proc set_special {net_name} {
+    puts_debug "1"
+    set odb_net [odb::dbBlock_findNet $::odb_block $net_name]
+    puts_debug "2"
+    odb::dbNet_setSpecial $odb_net
+    puts "\[INFO\] special set on $net_name $odb_net"
+}
+
+proc set_special_multi {net_pattern} {
+    set odb_nets [odb::dbBlock_getNets $::odb_block]
+    set net_pattern_escaped [string map {"\[" "\\\["} $net_pattern]
+    set net_pattern_escaped [string map {"\]" "\\\]"} $net_pattern_escaped]
+    set net_matches {}
+    foreach net $odb_nets {
+        set net_name [odb::dbNet_getName $net]
+        if { [string match $net_pattern_escaped $net_name] } {
+            puts "\[INFO\] $net_name matches $net_pattern"
+            lappend net_matches $net_name
+        }
+    }
+    foreach net $net_matches {
+        puts_debug "setting special multi on $net"
+        set_special "$net"
+    }
+}
+
+proc clear_special_multi {net_pattern} {
+    set odb_nets [odb::dbBlock_getNets $::odb_block]
+    set net_pattern_escaped [string map {"\[" "\\\["} $net_pattern]
+    set net_pattern_escaped [string map {"\]" "\\\]"} $net_pattern_escaped]
+    set net_matches {}
+    foreach net $odb_nets {
+        set net_name [odb::dbNet_getName $net]
+        if { [string match $net_pattern_escaped $net_name] } {
+            lappend net_matches $net_name
+        }
+    }
+    foreach net $net_matches {
+        clear_special $net
+    }
+}
+
+proc clear_special {net_name} {
+    set block [[[::ord::get_db] getChip] getBlock]
+    set odb_net [odb::dbBlock_findNet $block $net_name]
+    odb::dbNet_clearSpecial $odb_net
+    puts "\[INFO\] clear special on $net_name"
+}
 
 foreach lib $::env(LIB_RESIZER_OPT) {
     read_liberty $lib
@@ -44,6 +100,12 @@ if { [info exists ::env(DONT_USE_CELLS)] } {
     set_dont_use $::env(DONT_USE_CELLS)
 }
 
+variable odb_block [[[::ord::get_db] getChip] getBlock]
+#set_special la_data_out_core\[0\]
+foreach net_pattern $::env(DONT_TOUCH_PORTS) {
+    set_special_multi $net_pattern
+}
+
 if { [info exists ::env(PL_RESIZER_BUFFER_INPUT_PORTS)] && $::env(PL_RESIZER_BUFFER_INPUT_PORTS) } {
     buffer_ports -inputs
 }
@@ -51,6 +113,11 @@ if { [info exists ::env(PL_RESIZER_BUFFER_INPUT_PORTS)] && $::env(PL_RESIZER_BUF
 if { [info exists ::env(PL_RESIZER_BUFFER_OUTPUT_PORTS)] && $::env(PL_RESIZER_BUFFER_OUTPUT_PORTS) } {
     buffer_ports -outputs
 }
+
+foreach net_pattern $::env(DONT_TOUCH_PORTS) {
+    clear_special_multi $net_pattern
+}
+
 # Resize
 if { [info exists ::env(PL_RESIZER_MAX_WIRE_LENGTH)] && $::env(PL_RESIZER_MAX_WIRE_LENGTH) } {
     repair_design -max_wire_length $::env(PL_RESIZER_MAX_WIRE_LENGTH) \
@@ -85,4 +152,4 @@ write_sdc $::env(SAVE_SDC)
 # Run post design optimizations STA
 estimate_parasitics -placement
 set ::env(RUN_STANDALONE) 0
-source $::env(SCRIPTS_DIR)/openroad/sta.tcl 
\ No newline at end of file
+source $::env(SCRIPTS_DIR)/openroad/sta.tcl