Commit c80dd258 authored by Jaco Hofmann's avatar Jaco Hofmann Committed by Lukas Sommer

Read effort_level in TCL and apply to synthesis and implementation runs

parent a62d8d19
......@@ -70,9 +70,6 @@ set_msg_config -suppress -severity INFO
# ignore AXI Interrupt controller warning about manual edge trigger setting
set_msg_config -suppress -id {[xilinx.com:ip:axi_intc:4.1-7]}
# Synthesis and P&R effort level
puts @@EFFORT_LEVEL@@
# loadout-specific configuration
@@COMPOSITION@@
......@@ -114,10 +111,12 @@ if {[llength [info commands platform::generate_wrapper]] == 0} {
platform::generate_wrapper
}
# activate retiming in synthesis
set_property STEPS.SYNTH_DESIGN.ARGS.RETIMING true [get_runs synth_1]
# Disable OOC synthesis to avoid log file problems
set_property synth_checkpoint_mode None [get_files system.bd]
# Synthesis and P&R effort level
set effort_level "@@EFFORT_LEVEL@@"
# generate according to the mode
platform::generate
......
......@@ -181,15 +181,50 @@ namespace eval platform {
# Platform API: Main entry point to generate the bitstream.
proc generate {} {
global bitstreamname
global effort_level
# generate bitstream from given design and report utilization / timing closure
set jobs [tapasco::get_number_of_processors]
puts " using $jobs parallel jobs"
set synth_settings [list \
STEPS.SYNTH_DESIGN.ARGS.RETIMING true \
]
set impl_settings [list \
STEPS.PHYS_OPT_DESIGN.IS_ENABLED true \
]
set effort_level [string tolower $effort_level]
puts "Effort is $effort_level"
if { $effort_level == "fastest" } {
puts "Selecting FLOW_RuntimeOptimized."
set synth_settings [list strategy Flow_RuntimeOptimized]
set impl_settings [list strategy Flow_RuntimeOptimized]
} elseif { $effort_level == "fast" } {
puts "Selecting Flow_Quick."
#set synth_settings [list strategy ]
set impl_settings [list strategy Flow_Quick]
} elseif { $effort_level == "optimal" } {
puts "Selecting Flow_PerfOptimized_high and Performance_Explore."
set synth_settings [list strategy Flow_PerfOptimized_high]
set impl_settings [list strategy Performance_Explore]
} elseif { $effort_level == "aggressive_performance" } {
puts "Selecting Flow_PerfOptimized_high and Performance_Explore."
set synth_settings [list strategy Flow_PerfOptimized_high]
set impl_settings [list strategy Performance_Explore]
} elseif { $effort_level == "aggressive_area" } {
puts "Selecting Flow_AreaOptimized_high and Area_Explore."
set synth_settings [list strategy Flow_AreaOptimized_high]
set impl_settings [list strategy Area_Explore]
} else {
puts "Normal mode selected."
}
generate_target all [get_files "[get_bd_name].bd"]
set synth_run [get_runs synth_1]
set_property -dict [list \
STEPS.SYNTH_DESIGN.ARGS.RETIMING true \
] $synth_run
set_property -dict $synth_settings $synth_run
current_run $synth_run
launch_runs -jobs $jobs $synth_run
wait_on_run $synth_run
......@@ -200,9 +235,7 @@ namespace eval platform {
tapasco::call_plugins "post-synth"
set impl_run [get_runs impl_1]
set_property -dict [list \
STEPS.PHYS_OPT_DESIGN.IS_ENABLED true \
] $impl_run
set_property -dict $impl_settings $impl_run
current_run $impl_run
launch_runs -jobs $jobs -to_step route_design $impl_run
wait_on_run $impl_run
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment