Coyote/scripts/flow_app.tcl.in

85 lines
2.8 KiB
Tcl

if {[catch {
########################################################################################################
# Config
source "${CMAKE_BINARY_DIR}/base.tcl"
########################################################################################################
# App compilation
########################################################################################################
for {set i 0} {$i < $cfg(n_config)} {incr i} {
create_project -in_memory -part $part
puts "[color $clr_flow "** App compilation started, config $i ..."]"
puts "[color $clr_flow "**"]"
# Config i impl
add_file "$cfg(shell_path)/checkpoints/shell_routed_locked.dcp"
for {set j 0} {$j < $cfg(n_reg)} {incr j} {
add_files "$dcp_dir/config_$i/user_synthed_c$i\_$j.dcp"
set cmd "set_property SCOPED_TO_CELLS { inst_shell/inst_dynamic/inst_user_wrapper_$j } \[get_files \"$dcp_dir/config_$i/user_synthed_c$i\_$j.dcp\"]"
eval $cmd
}
add_files -fileset [get_filesets constrs_1] "$hw_dir/constraints/$cfg(fdev)/dynamic/impl"
# Link design
set cmd "link_design -mode default -reconfig_partitions { "
for {set j 0} {$j < $cfg(n_reg)} {incr j} {
append cmd " inst_shell/inst_dynamic/inst_user_wrapper_$j "
}
append cmd " } -part $part -top cyt_top"
eval $cmd
write_checkpoint -force "$dcp_dir/config_$i/shell_linked_c$i.dcp"
# Compilation
if {$cfg(build_opt) eq 1} {
opt_design -directive Explore
} else {
opt_design
}
write_checkpoint -force "$dcp_dir/config_$i/shell_opted_c$i.dcp"
if {$cfg(build_opt) eq 1} {
place_design -directive Auto_1
} else {
place_design
}
write_checkpoint -force "$dcp_dir/config_$i/shell_placed_c$i.dcp"
if {$cfg(build_opt) eq 1} {
phys_opt_design -directive AggressiveExplore
} else {
phys_opt_design
}
write_checkpoint -force "$dcp_dir/config_$i/shell_phys_opted_c$i.dcp"
if {$cfg(build_opt) eq 1} {
route_design -directive AggressiveExplore
} else {
route_design
}
if {$cfg(build_opt) eq 1} {
phys_opt_design -directive AggressiveExplore
}
write_checkpoint -force "$dcp_dir/config_$i/shell_routed_c$i.dcp"
report_utilization -file "$rprt_dir/config_$i/shell_utilization_c$i.rpt"
report_route_status -file "$rprt_dir/config_$i/shell_route_status_c$i.rpt"
report_timing_summary -file "$rprt_dir/config_$i/shell_timing_summary_c$i.rpt"
report_drc -ruledeck bitstream_checks -name cyt_top -file "$rprt_dir/config_$i/shell_drc_bitstream_checks_c$i.rpt"
close_project
}
########################################################################################################
} errorstring]} {
puts "[color $clr_error "** CERR: $errorstring"]"
puts "[color $clr_error "**"]"
exit 1
}
exit 0