From ea74e1f0d72a47866a3d56c76395fd39db5f2de5 Mon Sep 17 00:00:00 2001
From: dam1n19 <dam1n19@soton.ac.uk>
Date: Tue, 4 Jul 2023 10:58:36 +0100
Subject: [PATCH] STarted to generalise build_design

---
 ...build_nanosoc_design.tcl => build_design.tcl} | 16 ++++++++++------
 fpga/makefile                                    |  5 ++++-
 2 files changed, 14 insertions(+), 7 deletions(-)
 rename fpga/{build_nanosoc_design.tcl => build_design.tcl} (86%)

diff --git a/fpga/build_nanosoc_design.tcl b/fpga/build_design.tcl
similarity index 86%
rename from fpga/build_nanosoc_design.tcl
rename to fpga/build_design.tcl
index 4cce371..c33f78b 100644
--- a/fpga/build_nanosoc_design.tcl
+++ b/fpga/build_design.tcl
@@ -1,5 +1,5 @@
 ###-----------------------------------------------------------------------------
-### Build FPGA Script
+### Build Design Viviado FPGA Script
 ### A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
 ###
 ### Contributors
@@ -24,6 +24,9 @@ set socket_lib $env(FPGA_SOCKET_LIB)
 set nanosoc_lib $env(FPGA_NANOSOC_LIB)
 set output_dir $env(FPGA_OUTPUT_DIR)
 
+set wrapper_name $env(FPGA_WRAPPER_NAME)
+set pinmap_file $env(FPGA_PINMAP)
+
 #
 # STEP#1: setup design sources and constraints
 #
@@ -31,6 +34,7 @@ set_part $xilinx_part
 set_property TARGET_LANGUAGE Verilog [current_project]
 set_property DEFAULT_LIB work [current_project]
 
+# TODO: Generalise this stage
 set paths [list \
  $socket_lib\
  $nanosoc_lib\
@@ -51,16 +55,16 @@ report_ip_status
 # #
 # # using script written out from GUI capture
 
-create_bd_design nanosoc_design
+create_bd_design $design_name
 
-read_verilog $import_dir/nanosoc_design_wrapper.v
-source $target_tcl_dir/nanosoc_design.tcl
+read_verilog $import_dir/$wrapper_name.v
+source $target_tcl_dir/$design_name.tcl
 create_root_design ""
 
 
-add_files $import_dir/fpga_pinmap.xdc
+add_files $pinmap_file
 
-set_property top nanosoc_design_wrapper [current_fileset]
+set_property top $wrapper_name [current_fileset]
 
 # #
 # # STEP#3: save in Project mode to complete flow
diff --git a/fpga/makefile b/fpga/makefile
index 597b8b3..50ddcd4 100644
--- a/fpga/makefile
+++ b/fpga/makefile
@@ -49,6 +49,7 @@ NANOSOC_FPGA_FLOW_DIR := $(SOCLABS_NANOSOC_TECH_DIR)/fpga
 # Directory to look for FPGA specific implementation files
 TARGET_DIR            ?= $(NANOSOC_FPGA_FLOW_DIR)/targets/$(BOARD_NAME)
 TARGET_TCL_DIR        := $(TARGET_DIR)/vivado_script/$(VIVIADO_VERSION)
+PINMAP_FILE           ?= $(TARGET_DIR)/fpga_pinmap.xdc
 
 # NanoSoC Tech Socket Design Dependencies
 RTL_SOCKET_DIR        := $(SOCLABS_SOCDEBUG_TECH_DIR)/socket/vivado_packages
@@ -111,15 +112,17 @@ build_nanosoc_design: export FPGA_PROJECT_DIR        = $(PROJECT_DIR)
 build_nanosoc_design: export FPGA_TARGET             = $(TARGET_DIR)
 build_nanosoc_design: export FPGA_TARGET_TCL         = $(TARGET_TCL_DIR)
 build_nanosoc_design: export FPGA_DESIGN_NAME        = $(DESIGN_NAME)
+build_nanosoc_design: export FPGA_WRAPPER_NAME       = $(DESIGN_NAME)_wrapper
 build_nanosoc_design: export FPGA_NANOSOC_LIB        = $(IMP_NANOSOC_DIR)
 build_nanosoc_design: export FPGA_SOCKET_LIB         = $(IMP_SOCKET_DIR)
 build_nanosoc_design: export FPGA_OUTPUT_DIR         = $(OUTPUT_DIR)
+build_nanosoc_design: export FPGA_PINMAP             = $(PINMAP_FILE)
 
 # Synthesise and Implement an FPGA Bitfile
 build_nanosoc_design:
 	@echo Building NanoSoC Design
 	@mkdir -p $(RUN_DIR)
-	@cd $(RUN_DIR); vivado -mode batch -source $(NANOSOC_FPGA_FLOW_DIR)/build_nanosoc_design.tcl
+	@cd $(RUN_DIR); vivado -mode batch -source $(NANOSOC_FPGA_FLOW_DIR)/build_design.tcl
 	@cp $(RUN_DIR)/vivado.log $(TARGET_DIR)
 	@echo Built NanoSoC Design
 
-- 
GitLab