Coyote/scripts/old/dynamic.tcl.in

90 lines
3.3 KiB
Tcl

if {[catch {
########################################################################################################
source "${CMAKE_BINARY_DIR}/base.tcl"
########################################################################################################
# Project
########################################################################################################
set proj_dir "$build_dir/$project"
puts $proj_dir
open_project "$proj_dir/lynx.xpr"
########################################################################################################
# DYNAMIC LAYER
########################################################################################################
# Create additional configs
set cn 1
while {[file isdirectory "$proj_dir/hdl/config_$cn"]} {
incr cn
}
file mkdir "$proj_dir/hdl/config_$cn"
file mkdir "$proj_dir/hdl/wrappers/config_$cn"
# Call write HDL scripts
unset ::env(PYTHONPATH)
unset ::env(PYTHONHOME)
proc call_write_hdl {r_path i} {
set output [exec python3 "$r_path/write_hdl.py" 1 $i]
puts $output
}
call_write_hdl $build_dir $cn
#source "$scripts_dir/wr_hdl/wr_hdl_user.tcl" -notrace
#for {set j 0} {$j < $cfg(n_reg)} {incr j} {
# wr_hdl_user_wrapper "$proj_dir/hdl/wrappers/config_$cn/design_user_wrapper_c$cn\_$j.sv" $j
# wr_hdl_user "$proj_dir/hdl/config_$cn/design_user_logic_c$cn\_$j.sv" $j
#}
# Create dynamic regions
for {set j 0} {$j < $cfg(n_reg)} {incr j} {
# Sources
set cmd "set files \[list \ "
append cmd "\[file normalize \"\$proj_dir/hdl/wrappers/config_$cn/user_wrapper_c$cn\_$j.sv\"] \ "
append cmd "\[file normalize \"\$proj_dir/hdl/config_$cn/user_logic_c$cn\_$j.sv\"] \ "
append cmd "\[file normalize \"\$hw_dir/hdl/pkg/axi_intf.sv\"] \ "
append cmd "\[file normalize \"\$hw_dir/hdl/pkg/lynx_intf.sv\"] \ "
append cmd "\[file normalize \"\$hw_dir/hdl/pkg/axi_macros.svh\"] \ "
append cmd "\[file normalize \"\$hw_dir/hdl/pkg/lynx_macros.svh\"] \ "
append cmd "\[file normalize \"\$hw_dir/hdl/common/regs/axis_reg_rtl.sv\"] \ "
append cmd "\[file normalize \"\$hw_dir/hdl/common/regs/axil_reg_rtl.sv\"] \ "
append cmd "\[file normalize \"\$hw_dir/hdl/common/regs/axil_reg_rd.v\"] \ "
append cmd "\[file normalize \"\$hw_dir/hdl/common/regs/axil_reg_wr.v\"] \ "
append cmd "\[file normalize \"\$proj_dir/hdl/wrappers/common/lynx_pkg.sv\"] \ "
append cmd "]"
eval $cmd
# Create pr region
create_reconfig_module -name "design_user_wrapper_c$cn\_$j" -partition_def [get_partition_defs "dynamic_$j" ] -top "design_user_wrapper_$j"
add_files -norecurse -scan_for_includes $files -of_objects [get_reconfig_modules "design_user_wrapper_c$cn\_$j"]
}
set cmd "create_pr_configuration -name config_$cn -partitions \[list \ "
for {set j 0} {$j < $cfg(n_reg)} {incr j} {
append cmd "inst_dynamic/inst_user_wrapper_$j:design_user_wrapper_c$cn\_$j "
}
append cmd "]"
eval $cmd
set n [expr {$cn + 1}]
set cmd "create_run impl_$n -parent_run impl_1 -flow {Vivado Implementation 2018} -pr_config config_$cn"
eval $cmd
set cmd "set_property STEPS.WRITE_BITSTREAM.ARGS.BIN_FILE true \[get_runs impl_$n]"
eval $cmd
close_project
#start_gui
########################################################################################################
} errorstring]} {
puts "** CERR: $errorstring"
puts "**"
exit 1
}
exit