diff --git a/ODIN_II/SRC/read_blif.cpp b/ODIN_II/SRC/read_blif.cpp
index 9807d05..849a888 100644
--- a/ODIN_II/SRC/read_blif.cpp
+++ b/ODIN_II/SRC/read_blif.cpp
@@ -1785,6 +1785,7 @@
 	free_hard_block_ports(model->input_ports);
 	free_hard_block_ports(model->output_ports);
 
+	vtr::free(model->name); 
 	vtr::free(model);
 }
 
diff --git a/ODIN_II/SRC/simulate_blif.cpp b/ODIN_II/SRC/simulate_blif.cpp
index b334418..e7f5113 100644
--- a/ODIN_II/SRC/simulate_blif.cpp
+++ b/ODIN_II/SRC/simulate_blif.cpp
@@ -3380,6 +3380,8 @@
 						vtr::free(l->lines[l->count]->name);
 					if(l->lines[l->count]->pins)
 						vtr::free(l->lines[l->count]->pins);
+					if(l->lines[l->count]->pin_numbers)
+						vtr::free(l->lines[l->count]->pin_numbers);
 					vtr::free(l->lines[l->count]);
 				}
 			}
diff --git a/vpr/src/base/SetupVPR.cpp b/vpr/src/base/SetupVPR.cpp
index 5c74449..2bd4384 100644
--- a/vpr/src/base/SetupVPR.cpp
+++ b/vpr/src/base/SetupVPR.cpp
@@ -486,6 +486,8 @@
 
     PlacerOpts->write_placement_delay_lookup = Options.write_placement_delay_lookup;
     PlacerOpts->read_placement_delay_lookup = Options.read_placement_delay_lookup;
+
+    PlacerOpts->allowed_tiles_for_delay_model = Options.allowed_tiles_for_delay_model;
 }
 
 static void SetupAnalysisOpts(const t_options& Options, t_analysis_opts& analysis_opts) {
diff --git a/vpr/src/base/read_options.cpp b/vpr/src/base/read_options.cpp
index 576eb62..6166ab1 100644
--- a/vpr/src/base/read_options.cpp
+++ b/vpr/src/base/read_options.cpp
@@ -1384,6 +1384,14 @@
         .default_value("")
         .show_in(argparse::ShowIn::HELP_ONLY);
 
+    place_timing_grp.add_argument(args.allowed_tiles_for_delay_model, "--allowed_tiles_for_delay_model")
+        .help(
+            "Names of allowed tile types that can be sampled during delay "
+            "modelling.  Default is to allow all tiles. Can be used to "
+            "exclude specialized tiles from placer delay sampling.")
+        .default_value("")
+        .show_in(argparse::ShowIn::HELP_ONLY);
+
     auto& route_grp = parser.add_argument_group("routing options");
 
     route_grp.add_argument(args.max_router_iterations, "--max_router_iterations")
diff --git a/vpr/src/base/read_options.h b/vpr/src/base/read_options.h
index 55142a5..d1f45e5 100644
--- a/vpr/src/base/read_options.h
+++ b/vpr/src/base/read_options.h
@@ -115,6 +115,7 @@
     argparse::ArgValue<std::string> post_place_timing_report_file;
     argparse::ArgValue<PlaceDelayModelType> place_delay_model;
     argparse::ArgValue<e_reducer> place_delay_model_reducer;
+    argparse::ArgValue<std::string> allowed_tiles_for_delay_model;
 
     /* Router Options */
     argparse::ArgValue<int> max_router_iterations;
diff --git a/vpr/src/base/vpr_types.h b/vpr/src/base/vpr_types.h
index 01dca22..1eb4ffb 100644
--- a/vpr/src/base/vpr_types.h
+++ b/vpr/src/base/vpr_types.h
@@ -808,6 +808,12 @@
 
     std::string write_placement_delay_lookup;
     std::string read_placement_delay_lookup;
+
+    // Tile types that should be used during delay sampling.
+    //
+    // Useful for excluding tiles that have abnormal delay behavior, e.g.
+    // clock tree elements like PLL's, global/local clock buffers, etc.
+    std::string allowed_tiles_for_delay_model;
 };
 
 /* All the parameters controlling the router's operation are in this        *
diff --git a/vpr/src/place/timing_place_lookup.cpp b/vpr/src/place/timing_place_lookup.cpp
index 0254225..c3c4fac 100644
--- a/vpr/src/place/timing_place_lookup.cpp
+++ b/vpr/src/place/timing_place_lookup.cpp
@@ -87,7 +87,8 @@
     int end_x,
     int end_y,
     const t_router_opts& router_opts,
-    bool measure_directconnect);
+    bool measure_directconnect,
+    const std::set<std::string>& allowed_types);
 
 static vtr::Matrix<float> compute_delta_delays(
     const RouterDelayProfiler& route_profiler,
@@ -351,7 +352,8 @@
     int end_x,
     int end_y,
     const t_router_opts& router_opts,
-    bool measure_directconnect) {
+    bool measure_directconnect,
+    const std::set<std::string>& allowed_types) {
     int delta_x, delta_y;
     int sink_x, sink_y;
 
@@ -368,7 +370,9 @@
             bool src_or_target_empty = (src_type == device_ctx.EMPTY_TYPE
                                         || sink_type == device_ctx.EMPTY_TYPE);
 
-            if (src_or_target_empty) {
+            bool is_allowed_type = allowed_types.empty() || allowed_types.find(src_type->name) != allowed_types.end();
+
+            if (src_or_target_empty || !is_allowed_type) {
                 if (matrix[delta_x][delta_y].empty()) {
                     //Only set empty target if we don't already have a valid delta delay
                     matrix[delta_x][delta_y].push_back(EMPTY_DELTA);
@@ -427,6 +431,14 @@
     size_t high_x = std::max(grid.width() - longest_length, mid_x);
     size_t high_y = std::max(grid.height() - longest_length, mid_y);
 
+    std::set<std::string> allowed_types;
+    if (!placer_opts.allowed_tiles_for_delay_model.empty()) {
+        auto allowed_types_vector = vtr::split(placer_opts.allowed_tiles_for_delay_model, ",");
+        for (const auto& type : allowed_types_vector) {
+            allowed_types.insert(type);
+        }
+    }
+
     //   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     //   +                 |                       |               +
     //   +        A        |           B           |       C       +
@@ -462,6 +474,9 @@
             auto type = grid[x][y].type;
 
             if (type != device_ctx.EMPTY_TYPE) {
+                if (!allowed_types.empty() && allowed_types.find(std::string(type->name)) == allowed_types.end()) {
+                    continue;
+                }
                 src_type = type;
                 break;
             }
@@ -480,7 +495,7 @@
                            x, y,
                            grid.width() - 1, grid.height() - 1,
                            router_opts,
-                           measure_directconnect);
+                           measure_directconnect, allowed_types);
 
     //Find the lowest x location on the bottom edge with a non-empty block
     src_type = nullptr;
@@ -489,6 +504,9 @@
             auto type = grid[x][y].type;
 
             if (type != device_ctx.EMPTY_TYPE) {
+                if (!allowed_types.empty() && allowed_types.find(std::string(type->name)) == allowed_types.end()) {
+                    continue;
+                }
                 src_type = type;
                 break;
             }
@@ -506,7 +524,7 @@
                            x, y,
                            grid.width() - 1, grid.height() - 1,
                            router_opts,
-                           measure_directconnect);
+                           measure_directconnect, allowed_types);
 
     //Since the other delta delay values may have suffered from edge effects,
     //we recalculate deltas within regions B, C, E, F
@@ -518,7 +536,7 @@
                            low_x, low_y,
                            grid.width() - 1, grid.height() - 1,
                            router_opts,
-                           measure_directconnect);
+                           measure_directconnect, allowed_types);
 
     //Since the other delta delay values may have suffered from edge effects,
     //we recalculate deltas within regions D, E, G, H
@@ -530,7 +548,7 @@
                            0, 0,
                            high_x, high_y,
                            router_opts,
-                           measure_directconnect);
+                           measure_directconnect, allowed_types);
 
     //Since the other delta delay values may have suffered from edge effects,
     //we recalculate deltas within regions A, B, D, E
@@ -542,7 +560,7 @@
                            0, low_y,
                            high_x, grid.height() - 1,
                            router_opts,
-                           measure_directconnect);
+                           measure_directconnect, allowed_types);
 
     //Since the other delta delay values may have suffered from edge effects,
     //we recalculate deltas within regions E, F, H, I
@@ -554,7 +572,7 @@
                            low_x, 0,
                            grid.width() - 1, high_y,
                            router_opts,
-                           measure_directconnect);
+                           measure_directconnect, allowed_types);
 
     vtr::Matrix<float> delta_delays({grid.width(), grid.height()});
     for (size_t dx = 0; dx < sampled_delta_delays.dim_size(0); ++dx) {
diff --git a/vpr/valgrind.supp b/vpr/valgrind.supp
new file mode 100644
index 0000000..6bd7272
--- /dev/null
+++ b/vpr/valgrind.supp
@@ -0,0 +1,711 @@
+#
+# Valgrind suppression file for EZGL
+#
+
+#pango
+{
+	libpango
+	Memcheck:Leak
+	...
+	obj:/usr/lib*/libpango*
+}
+
+#GTK
+{
+	g_type_register
+	Memcheck:Leak
+	fun:*alloc
+	...
+	fun:g_type_register_*
+	...
+	fun:_dl_init
+	...
+}
+
+{
+	g_quark_from_static_string
+	Memcheck:Leak
+	fun:*alloc
+	...
+	fun:g_quark_from_static_string
+	...
+	fun:_dl_init
+	...
+}
+
+{
+	g_main_thread
+	Memcheck:Leak
+	fun:*alloc
+	...
+	fun:g_main*
+	...
+	fun:start_thread
+	fun:clone
+}
+
+{
+	g_closure
+	Memcheck:Leak
+	match-leak-kinds:possible
+	fun:*alloc
+	...
+	fun:g_cclosure_new
+	fun:g_signal_connect_data
+	...
+}
+
+# 
+{
+	g_object
+	Memcheck:Leak
+	match-leak-kinds:possible
+	...
+	fun:g_object_new
+	...
+}
+
+{
+	g_type_register_static
+	Memcheck:Leak
+	match-leak-kinds:possible
+	...
+	fun:g_type_register_static
+	...
+}
+
+{
+	g_signal_connect_closure
+	Memcheck:Leak
+	match-leak-kinds:possible
+	...
+	fun:g_signal_connect_closure
+	fun:gtk_*group*
+	...
+}
+
+{
+	gtk_module_init
+	Memcheck:Leak
+	
+	fun:*alloc
+	...
+	fun:gtk_module_init
+	...
+}
+
+{
+	g_closure_invoke
+	Memcheck:Leak
+	
+	fun:*alloc
+	...
+	fun:g_closure_invoke
+	...
+}
+
+{
+	gtk_style_context_set_state
+	Memcheck:Leak
+	
+	fun:*alloc
+	...
+	fun:gtk_style_context_set_state
+	...
+}
+
+# 
+{
+	call_init
+	Memcheck:Leak
+	
+	fun:*alloc
+	...
+	fun:call_init
+	fun:_dl_init
+	...
+}
+
+{
+	XML_ParseBuffer
+	Memcheck:Leak
+	fun:*alloc
+	...
+	fun:XML_ParseBuffer
+	...
+}
+
+{
+	FcConfigParseAndLoad
+	Memcheck:Leak
+	fun:*alloc
+	...
+	fun:FcConfigParseAndLoad
+	...
+}
+
+# 
+{
+	g_objectv
+	Memcheck:Leak
+	
+	...
+	fun:g_object_newv
+	...
+}
+
+{
+	g_type_add_interface_static
+	Memcheck:Leak
+	match-leak-kinds:possible
+	...
+	fun:g_type_add_interface_static
+	...
+}
+
+{
+	gtk_container_get_children
+	Memcheck:Leak
+	fun:*alloc
+	...
+	fun:gtk_container_get_children
+	...
+}
+
+{
+	cairo_select_font_face
+	Memcheck:Leak
+	fun:*alloc
+	...
+	fun:cairo_select_font_face
+	...
+}
+
+{
+	libfontconfig
+	Memcheck:Leak
+	fun:*alloc
+	...
+	obj:*libfontconfig.so.*
+	...
+}
+
+{
+	X11_XGetDefault
+	Memcheck:Leak
+	fun:realloc
+	obj:*libX11.so.6.3.0
+	obj:*libX11.so.6.3.0
+	obj:*libX11.so.6.3.0
+	fun:_XlcCreateLC
+	fun:_XlcDefaultLoader
+	fun:_XOpenLC
+	fun:_XrmInitParseInfo
+	obj:*libX11.so.6.3.0
+	fun:XrmGetStringDatabase
+	obj:*libX11.so.6.3.0
+	fun:XGetDefault
+}
+
+{
+	XInternAtom_via_event_loop
+	Memcheck:Leak
+	fun:*alloc
+	fun:_XEnq
+	obj:*libX11.so.6.3.0
+	fun:_XReply
+	fun:XInternAtom
+	...
+}
+
+{
+	cairo_deep_*alloc
+	Memcheck:Leak
+	fun:*alloc
+	obj:*libcairo.*
+	...
+}
+
+#openmp
+{
+	GOMP_parallel
+	Memcheck:Leak
+	
+	fun:*alloc
+	fun:allocate_dtv
+	fun:_dl_allocate_tls
+	fun:allocate_stack
+	fun:pthread_create@@GLIBC_2.2.5
+	...
+}
+
+
+#GTK engines
+{
+	engines
+	Memcheck:Leak
+	fun:*alloc
+	...
+	obj:/usr/lib*/gtk*/*/engines*
+	...
+	obj:/usr/lib*/libgtk*
+}
+
+#nvidia
+{
+	libGL
+	Memcheck:Leak
+	...
+	obj:/usr/lib*/libGL.so*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_socket_create_source
+   ...
+   fun:g_main_context_dispatch
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+   ...
+   fun:gtk_init_check
+   fun:gtk_init
+   obj:*libgtk-3*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_markup_parse_context_parse
+   obj:*libgtk-3*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_socket_new
+   obj:*libgio-2*
+   fun:g_socket_client_connect
+   obj:*libgio-2*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:atk_add_focus_tracker
+   obj:*libgtk-3*
+   ...
+   fun:gtk_parse_args
+   fun:gtk_init_check
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:m*alloc
+   ...
+   fun:g_bus_get_sync
+   ...
+   fun:g_application_register
+   obj:*libgio-2*
+   fun:g_application_run
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   obj:*libgtk-3*
+   fun:g_closure_invoke
+   ...
+   fun:g_signal_emit_valist
+   fun:g_signal_emit
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_simple_async_result_complete
+   ...
+   fun:g_main_context_dispatch
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+   ...
+   fun:atk_add_focus_tracker
+   obj:*libgtk-3*
+   ...
+   fun:g_option_context_parse
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   fun:atk_add_focus_tracker
+   obj:*libgtk-3*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_dbus_proxy_new_sync
+   obj:*libgtk-3*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   ...
+   obj:*libgobject-2*
+   fun:g_type_class_ref
+   fun:g_object_new_valist
+   fun:g_initable_new_valist
+   fun:g_initable_new
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak 
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   obj:*libgtk-3*
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   obj:*libgtk-3*
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   fun:atk_add_focus_tracker
+   obj:*libgtk-3*
+   ...
+   fun:g_option_context_parse
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   
+   fun:*alloc
+   ...
+   fun:g_signal_new_class_handler
+   obj:*libgtk-3*
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak  
+   fun:*alloc
+   ...
+   fun:g_signal_connect_data
+   obj:*libgtk-3*
+   ...
+   fun:gtk_widget_show
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+   fun:g_object_new_valist
+   fun:g_initable_new_valist
+   fun:g_initable_new
+   fun:gvfs_dbus_mount_tracker_proxy_new_for_bus_sync
+   ...
+   fun:g_type_create_instance
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   fun:g_*alloc
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+   fun:g_markup_parse_context_parse
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+   fun:g_option_context_parse
+   fun:gtk_parse_args
+   fun:gtk_init_check
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+   fun:atk_bridge_adaptor_init
+   obj:*libgtk-3*
+   ...
+   fun:g_option_context_parse
+   fun:gtk_parse_args
+   fun:gtk_init_check
+   fun:gtk_init
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   fun:atk_add_focus_tracker
+   obj:*libgtk-3*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak  
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   ...
+   fun:g_initable_new
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   obj:*libgtk-3*
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak 
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak 
+   fun:*alloc
+   ...
+   fun:g_signal_new
+   ...
+   fun:g_type_class_ref
+   obj:*libgio-2.0.so.0.4002.0
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_signal_new_class_handler
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_signal_connect_data
+   ...
+   fun:gtk_widget_show
+   obj:*libgtk-3*
+   ...
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_initable_new
+   ...
+   fun:g_type_create_instance
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+   fun:g_markup_parse_context_parse
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:g_type_class_ref
+   obj:*libgtk-3*
+   ...
+   fun:gtk_init_check
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:malloc
+   ...
+   fun:atk_bridge_adaptor_init
+   obj:*libgtk-3*
+   ...
+   fun:gtk_init
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_application_register
+   obj:*libgio-2*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_thread_new
+   obj:*libgio-2*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_thread_pool_push
+   ...
+   fun:g_bus_get
+   fun:g_bus_watch_name
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:*alloc
+   ...
+   fun:g_param_spec_enum
+   ...
+   fun:g_bus_get_sync
+   obj:*libgio-*
+   fun:g_application_register
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:*alloc
+   fun:g_realloc
+   ...
+   fun:gtk_button_set_image_position
+   fun:g_object_setv
+   ...
+   obj:*libgtk-3*
+}
+{
+   <insert_a_suppression_name_here>
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:*alloc
+   ...
+   fun:gtk_cell_renderer_render
+   ...
+   obj:*libgtk-3*
+}
\ No newline at end of file
diff --git a/vtr_flow/scripts/run_vtr_flow.pl b/vtr_flow/scripts/run_vtr_flow.pl
index ba384cd..b298769 100755
--- a/vtr_flow/scripts/run_vtr_flow.pl
+++ b/vtr_flow/scripts/run_vtr_flow.pl
@@ -109,7 +109,7 @@
 my $limit_memory_usage      = -1;
 my $timeout                 = 14 * 24 * 60 * 60;         # 14 day execution timeout
 my $valgrind 		        = 0;
-my @valgrind_args	        = ("--leak-check=full", "--errors-for-leak-kinds=none", "--error-exitcode=1", "--track-origins=yes");
+my @valgrind_args	        = ("--leak-check=full", "--suppressions=$vtr_flow_path/../vpr/valgrind.supp", "--error-exitcode=1", "--errors-for-leak-kinds=none", "--track-origins=yes", "--log-file=valgrind.log","--error-limit=no");
 my $abc_quote_addition      = 0;
 my @forwarded_vpr_args;   # VPR arguments that pass through the script
 my $verify_rr_graph         = 0;
