aboutsummaryrefslogtreecommitdiffstats
path: root/fpga/usrp3/tools/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'fpga/usrp3/tools/scripts')
-rw-r--r--fpga/usrp3/tools/scripts/viv_strategies.tcl16
1 files changed, 11 insertions, 5 deletions
diff --git a/fpga/usrp3/tools/scripts/viv_strategies.tcl b/fpga/usrp3/tools/scripts/viv_strategies.tcl
index cbf9ea913..da7c4598a 100644
--- a/fpga/usrp3/tools/scripts/viv_strategies.tcl
+++ b/fpga/usrp3/tools/scripts/viv_strategies.tcl
@@ -72,13 +72,13 @@ proc ::vivado_strategies::get_impl_preset {preset} {
# ---------------------------------------------------
proc ::vivado_strategies::implement_design {strategy} {
variable g_viv_version
-
+
# Check strategy for validity and print
vivado_strategies::check_strategy $strategy
puts "BUILDER: Running implementation strategy with:"
vivado_strategies::print_strategy $strategy
-
- # Optimize the current netlist.
+
+ # Optimize the current netlist.
# This will perform the retarget, propconst, sweep and bram_power_opt optimizations by default.
if [dict get $strategy "opt_design.is_enabled"] {
set opt_dir [dict get $strategy "opt_design.directive"]
@@ -105,6 +105,12 @@ proc ::vivado_strategies::implement_design {strategy} {
phys_opt_design -directive $pp_physopt_dir
}
+ # Option to run commands before route
+ if {[dict exist $strategy "route_design.pre_hook"]} {
+ set pre_route_cmds [dict get $strategy "route_design.pre_hook"]
+ eval $pre_route_cmds
+ }
+
# Route the current design
set rt_dir [dict get $strategy "route_design.directive"]
puts "BUILDER: Choosing routing directive: $rt_dir"
@@ -128,7 +134,7 @@ proc ::vivado_strategies::implement_design {strategy} {
# ---------------------------------------------------
proc ::vivado_strategies::check_strategy {strategy} {
variable g_viv_version
-
+
set strategy_options [dict keys $strategy]
set required_options {\
opt_design.is_enabled \
@@ -142,7 +148,7 @@ proc ::vivado_strategies::check_strategy {strategy} {
post_route_phys_opt_design.is_enabled \
post_route_phys_opt_design.directive \
}
-
+
set invalid 0
foreach req $required_options {
if [expr [lsearch $strategy_options $req] < 0] {