aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWade Fife <wade.fife@ettus.com>2024-03-06 11:27:18 -0600
committerWade Fife <wade.fife@ettus.com>2024-03-15 20:05:39 -0500
commit8f9beccebe54a21d4993f8298c184426671624b0 (patch)
tree42e02f369db9460cfb31bd580f20fcf43908a00e
parentfpga: ci: Update n3xx BIST image cores (diff)
downloaduhd-8f9beccebe54a21d4993f8298c184426671624b0.tar.xz
uhd-8f9beccebe54a21d4993f8298c184426671624b0.zip
fpga: tools: Add option to save Vivado project
-rw-r--r--fpga/usrp3/tools/make/viv_design_builder.mak1
-rw-r--r--fpga/usrp3/tools/make/viv_preamble.mak9
-rw-r--r--fpga/usrp3/tools/scripts/viv_utils.tcl4
3 files changed, 13 insertions, 1 deletions
diff --git a/fpga/usrp3/tools/make/viv_design_builder.mak b/fpga/usrp3/tools/make/viv_design_builder.mak
index 78e49da06..cd2f0e332 100644
--- a/fpga/usrp3/tools/make/viv_design_builder.mak
+++ b/fpga/usrp3/tools/make/viv_design_builder.mak
@@ -25,6 +25,7 @@ BUILD_VIVADO_DESIGN = \
export VIV_TOP_MODULE=$(2); \
export VIV_PART_NAME=`python3 $(TOOLS_DIR)/scripts/viv_gen_part_id.py $(3)/$(4)`; \
export VIV_MODE=$(VIVADO_MODE); \
+ export VIV_SAVE=$(VIVADO_SAVE); \
export VIV_DESIGN_SRCS=$(call RESOLVE_PATHS,$(call uniq,$(DESIGN_SRCS))); \
export VIV_VERILOG_DEFS="$(VERILOG_DEFS) UHD_FPGA_DIR=$(BASE_DIR)/../.."; \
export VIV_INCR_BUILD=$(INCR_BUILD); \
diff --git a/fpga/usrp3/tools/make/viv_preamble.mak b/fpga/usrp3/tools/make/viv_preamble.mak
index 8469c0581..ea2bd92fd 100644
--- a/fpga/usrp3/tools/make/viv_preamble.mak
+++ b/fpga/usrp3/tools/make/viv_preamble.mak
@@ -53,6 +53,15 @@ VIVADO_MODE=batch
endif
# -------------------------------------------------------------------
+# Project mode switch. Calling with PROJECT:=1 will use Vivado project file
+# -------------------------------------------------------------------
+ifeq ($(PROJECT),1)
+VIVADO_PROJECT=1
+else
+VIVADO_PROJECT=0
+endif
+
+# -------------------------------------------------------------------
# Toolchain dependency target
# -------------------------------------------------------------------
.check_tool:
diff --git a/fpga/usrp3/tools/scripts/viv_utils.tcl b/fpga/usrp3/tools/scripts/viv_utils.tcl
index 2c3e128df..c9c022ad0 100644
--- a/fpga/usrp3/tools/scripts/viv_utils.tcl
+++ b/fpga/usrp3/tools/scripts/viv_utils.tcl
@@ -26,6 +26,7 @@ namespace eval ::vivado_utils {
variable g_output_dir $::env(VIV_OUTPUT_DIR)
variable g_source_files $::env(VIV_DESIGN_SRCS)
variable g_vivado_mode $::env(VIV_MODE)
+ variable g_project_save $::env(VIV_SAVE)
# Optional environment variables
variable g_verilog_defs ""
@@ -46,12 +47,13 @@ proc ::vivado_utils::initialize_project { {save_to_disk 0} } {
variable g_part_name
variable g_output_dir
variable g_source_files
+ variable g_project_save
variable bd_files ""
file delete -force $g_output_dir/build.rpt
- if {$save_to_disk == 1} {
+ if {$save_to_disk == 1 || $g_project_save == 1} {
puts "BUILDER: Creating Vivado project ${g_top_module}_project.xpr for part $g_part_name"
create_project -part $g_part_name ${g_top_module}_project
} else {