Coyote/scripts/package.tcl.in

108 lines
5.6 KiB
Tcl

#
# Check configs
#
# Applications:
${APPS_ALL}
#
# Package
#
for {set i 0} {$i < $cfg(n_config)} {incr i} {
for {set j 0} {$j < $cfg(n_reg)} {incr j} {
set proj_dir "$build_dir/$project\_config_$i/user\_c$i\_$j"
open_project "$proj_dir/$project.xpr"
set tmp_val "[format "\$vfpga_c$i\_$j"]"
set tmp_path "[format "%s" $tmp_val]"
set cmd "[format "set tmp_path $tmp_path"]"
eval $cmd
puts "[color $clr_flow "** vFPGA_C$i\_$j adding files ..."]"
puts "[color $clr_flow "**"]"
# Add all raw hdl files (no packaging)
file mkdir "$build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/raw"
set files_hdl [glob -nocomplain "$hw_dir/hdl/pkg/axi_macros.svh" "$hw_dir/hdl/pkg/axi_intf.sv" "$hw_dir/hdl/pkg/lynx_macros.svh" "$hw_dir/hdl/pkg/lynx_intf.sv"]
file copy -force {*}$files_hdl "$build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/raw"
if {[file isdirectory "${CMAKE_SOURCE_DIR}/$tmp_path/hdl"]} {
set files_hdl [glob -nocomplain "${CMAKE_SOURCE_DIR}/$tmp_path/hdl/*.svh" "${CMAKE_SOURCE_DIR}/$tmp_path/hdl/*.sv" "${CMAKE_SOURCE_DIR}/$tmp_path/hdl/*.v" "${CMAKE_SOURCE_DIR}/$tmp_path/hdl/*.vhd"]
if {[llength $files_hdl]} {
file copy -force {*}$files_hdl "$build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/raw"
}
}
add_files -norecurse "$build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/raw"
# Grab all hdl kernels (IP package)
# if {[file isdirectory "${CMAKE_SOURCE_DIR}/$tmp_path/hdl"]} {
# set krnls [glob -nocomplain -tails -directory "${CMAKE_SOURCE_DIR}/$tmp_path/hdl" -type d *]
# foreach krnl $krnls {
# # Copy all files
# file mkdir "$build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/$krnl\_hdl"
# set files_hdl [glob -nocomplain "${CMAKE_SOURCE_DIR}/$tmp_path/hdl/$krnl/*.svh" "${CMAKE_SOURCE_DIR}/$tmp_path/hdl/$krnl/*.sv" "${CMAKE_SOURCE_DIR}/$tmp_path/hdl/$krnl/*.vhd" "$hw_dir/hdl/pkg/axi_macros.svh" "$hw_dir/hdl/pkg/axi_intf.sv" "$shell_dir/hdl/lynx_pkg.sv"]
# if {[llength $files_hdl]} {
# file copy -force {*}$files_hdl "$build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/$krnl\_hdl"
# }
# # Package IPs
# set cmd "ipx::infer_core -vendor user.org -library user -taxonomy /UserIP $build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/$krnl\_hdl "
# eval $cmd
# set cmd "ipx::edit_ip_in_project -upgrade true -name $krnl\_c$i\_$j -directory $build_dir/$project\_config_$i/user\_c$i\_$j/${CMAKE_PROJECT_NAME}.tmp $build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/$krnl\_hdl/component.xml; "
# append cmd "ipx::current_core $build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/$krnl\_hdl/component.xml; "
# append cmd "update_compile_order -fileset sources_1; "
# append cmd "update_compile_order -fileset sim_1; "
# append cmd "set_property name $krnl\_c$i\_$j \[ipx::current_core]; "
# append cmd "set_property display_name $krnl\_c$i\_$j \[ipx::current_core]; "
# append cmd "set_property description $krnl\_c$i\_$j \[ipx::current_core]; "
# append cmd "set_property previous_version_for_upgrade user.org:user:$krnl\_c$i\_$j:1.0 \[ipx::current_core]; "
# append cmd "set_property core_revision 1 \[ipx::current_core]; "
# append cmd "ipx::create_xgui_files \[ipx::current_core]; "
# append cmd "ipx::update_checksums \[ipx::current_core]; "
# append cmd "ipx::check_integrity \[ipx::current_core]; "
# append cmd "ipx::save_core \[ipx::current_core]; "
# append cmd "ipx::move_temp_component_back -component \[ipx::current_core]; "
# append cmd "close_project -delete; "
# eval $cmd
# set ip_repos "$build_dir/iprepo $build_dir/$project\_config_$i/user\_c$i\_$j/hdl/ext/$krnl\_hdl "
# set cmd "set_property ip_repo_paths {$ip_repos} \[current_project]; "
# append cmd "update_ip_catalog; "
# eval $cmd
# create_ip -name "$krnl\_c$i\_$j" -vendor user.org -library user -version 1.0 -module_name "$krnl\_c$i\_$j"
# #$generate_target all [get_ips]
# update_compile_order -fileset sources_1
# }
# }
# Grab all hls kernels
if {[file isdirectory "${CMAKE_SOURCE_DIR}/$tmp_path/hls"]} {
set krnls [glob -nocomplain -tails -directory "${CMAKE_SOURCE_DIR}/$tmp_path/hls" -type d *]
foreach krnl $krnls {
create_ip -name "$krnl\_c$i\_$j" -vendor user.org -library hls -version 1.0 -module_name "$krnl\_c$i\_$j"
#$generate_target all [get_ips]
update_compile_order -fileset sources_1
}
}
# Include top
set files_hdl [glob -nocomplain "${CMAKE_SOURCE_DIR}/$tmp_path/vfpga_top.svh"]
if {[llength $files_hdl]} {
file copy -force {*}$files_hdl "$build_dir/$project\_config_$i/user\_c$i\_$j/hdl/vfpga_top.svh"
}
set cmd "[format "exec /usr/bin/python3 \"$build_dir/replace.py\" $tmp_path $i $j"]"
eval $cmd
add_files -norecurse "$build_dir/$project\_config_$i/user\_c$i\_$j/hdl/vfpga_top.svh"
# IP instantiation
if {[file exists "${CMAKE_SOURCE_DIR}/$tmp_path/init_ip.tcl"]} {
source "${CMAKE_SOURCE_DIR}/$tmp_path/init_ip.tcl"
}
close_project
}
}