diff options
-rw-r--r-- | fpga/usrp3/tools/scripts/viv_strategies.tcl | 16 |
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] { |