scripts: add support for OOC synthesis flow

Usage:
from command line set any value to the ADI_USE_OOC_SYNTHESIS variable
e.g. export ADI_USE_OOC_SYNTHESIS=y
main
Laszlo Nagy 2019-03-28 07:48:33 +00:00 committed by Laszlo Nagy
parent e59e133663
commit 5e92dc45b2
2 changed files with 24 additions and 3 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.ip_user_files
*.cache *.cache
*.data *.data
*.xpr *.xpr

View File

@ -16,6 +16,12 @@ if {[info exists ::env(ADI_IGNORE_VERSION_CHECK)]} {
set IGNORE_VERSION_CHECK 0 set IGNORE_VERSION_CHECK 0
} }
if {[info exists ::env(ADI_USE_OOC_SYNTHESIS)]} {
set ADI_USE_OOC_SYNTHESIS 1
} elseif {![info exists ADI_USE_OOC_SYNTHESIS]} {
set ADI_USE_OOC_SYNTHESIS 0
}
set p_board "not-applicable" set p_board "not-applicable"
set p_device "none" set p_device "none"
set sys_zynq 1 set sys_zynq 1
@ -30,6 +36,7 @@ proc adi_project_xilinx {project_name {mode 0}} {
global sys_zynq global sys_zynq
global REQUIRED_VIVADO_VERSION global REQUIRED_VIVADO_VERSION
global IGNORE_VERSION_CHECK global IGNORE_VERSION_CHECK
global ADI_USE_OOC_SYNTHESIS
if [regexp "_ac701$" $project_name] { if [regexp "_ac701$" $project_name] {
set p_device "xc7a200tfbg676-2" set p_device "xc7a200tfbg676-2"
@ -133,8 +140,16 @@ proc adi_project_xilinx {project_name {mode 0}} {
save_bd_design save_bd_design
validate_bd_design validate_bd_design
set_property synth_checkpoint_mode None [get_files $project_system_dir/system.bd] if {$ADI_USE_OOC_SYNTHESIS == 1} {
set_property synth_checkpoint_mode Hierarchical [get_files $project_system_dir/system.bd]
} else {
set_property synth_checkpoint_mode None [get_files $project_system_dir/system.bd]
}
generate_target {synthesis implementation} [get_files $project_system_dir/system.bd] generate_target {synthesis implementation} [get_files $project_system_dir/system.bd]
if {$ADI_USE_OOC_SYNTHESIS == 1} {
export_ip_user_files -of_objects [get_files $project_system_dir/system.bd] -no_script -sync -force -quiet
create_ip_run [get_files $project_system_dir/system.bd]
}
make_wrapper -files [get_files $project_system_dir/system.bd] -top make_wrapper -files [get_files $project_system_dir/system.bd] -top
if {$mode == 0} { if {$mode == 0} {
@ -152,8 +167,13 @@ proc adi_project_files {project_name project_files} {
proc adi_project_run {project_name} { proc adi_project_run {project_name} {
global ADI_POWER_OPTIMIZATION global ADI_POWER_OPTIMIZATION
global ADI_USE_OOC_SYNTHESIS
launch_runs synth_1
if {$ADI_USE_OOC_SYNTHESIS == 1} {
launch_runs -jobs 4 system_*_synth_1 synth_1
} else {
launch_runs synth_1
}
wait_on_run synth_1 wait_on_run synth_1
open_run synth_1 open_run synth_1
report_timing_summary -file timing_synth.log report_timing_summary -file timing_synth.log