From d9d949617a551936d4ad76c5bfd586371bb08ac8 Mon Sep 17 00:00:00 2001 From: Marco Blackwell Date: Tue, 16 Jun 2026 17:00:19 +0100 Subject: [PATCH] fix: set impl_1 strategy before sourcing pre-synth Tcl Setting the run strategy resets all STEPS.* options to the strategy defaults, so applying it after the pre-synth scripts silently removes any per-step directive overrides (STEPS.*.ARGS.DIRECTIVE) a user set on impl_1. Apply the default strategy first so pre-synth scripts can override individual step options on top of it. Signed-off-by: Marco Blackwell --- .../slashkit/resources/base/scripts/slash_project_build.tcl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/linker/slashkit/resources/base/scripts/slash_project_build.tcl b/linker/slashkit/resources/base/scripts/slash_project_build.tcl index e0ab1d92..67ab2040 100644 --- a/linker/slashkit/resources/base/scripts/slash_project_build.tcl +++ b/linker/slashkit/resources/base/scripts/slash_project_build.tcl @@ -147,6 +147,11 @@ foreach p [get_bd_intf_ports] { set_property HDL_ATTRIBUTE.LOCKED {TRUE} $p } source $generated_bd_tcl + +# Apply the default implementation strategy before sourcing the user pre-synth Tcl, so a +# pre-synth script can override per-step directives (STEPS.*.ARGS.DIRECTIVE) on impl_1. +set_property strategy Congestion_SSI_SpreadLogic_high [get_runs impl_1] + foreach pre_synth_tcl $pre_synth_tcls { puts "Sourcing pre-synth Tcl: $pre_synth_tcl" source $pre_synth_tcl @@ -158,7 +163,6 @@ wait_on_run "${slash_rm_name}_synth_1" set rm_synth_dcp [file join $rm_work_dir "${slash_proj_name}.runs" "${slash_rm_name}_synth_1" "slash_base.dcp"] add_files $rm_synth_dcp set_property SCOPED_TO_CELLS {top_i/slash} [get_files $rm_synth_dcp] -set_property strategy Congestion_SSI_SpreadLogic_high [get_runs impl_1] launch_runs impl_1 -jobs $jobs wait_on_run impl_1