From 962e2da56973e14fa841f3c2d93124e6970fa188 Mon Sep 17 00:00:00 2001 From: dam1n19 <dam1n19@soton.ac.uk> Date: Tue, 4 Jul 2023 17:17:30 +0100 Subject: [PATCH] Updated makeflow for defines genration --- fpga/makefile | 15 +++++++++++---- makefile | 16 ++++++++++++---- nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v | 12 ++++++++++++ nanosoc/socdebug_tech | 2 +- 4 files changed, 36 insertions(+), 9 deletions(-) diff --git a/fpga/makefile b/fpga/makefile index 0ee3a77..f0eb719 100644 --- a/fpga/makefile +++ b/fpga/makefile @@ -39,6 +39,10 @@ IMP_NANOSOC_DIR := $(IMPLEMENTATION_DIR)/nanosoc IMP_SOCKET_DIR := $(IMPLEMENTATION_DIR)/socket PROJECT_DIR := $(IMPLEMENTATION_DIR)/targets/$(BOARD_NAME) +# Location of Defines File +DEFINES_DIR := $(SOCLABS_PROJECT_DIR)/system/src/defines/ +DEFINES_FILE := $(DEFINES_DIR)/gen_defines.v + # Name of generated filelist by python script TCL_FLIST_DIR := $(IMP_NANOSOC_DIR)/flist TCL_OUTPUT_FILELIST := $(TCL_FLIST_DIR)/gen_flist.tcl @@ -65,21 +69,24 @@ endif ACCELERATOR ?= yes ifeq ($(ACCELERATOR),yes) - ACCELERATOR_SUBSYSTEM = 1 + ACCELERATOR_SUBSYSTEM = ACCELERATOR_SUBSYSTEM else ACCELERATOR_SUBSYSTEM = 0 endif # Defines to pass to filelist compile -NANOSOC_DEFINES += ACCELERATOR_SUBSYSTEM=$(ACCELERATOR_SUBSYSTEM) +NANOSOC_DEFINES += $(ACCELERATOR_SUBSYSTEM) # Compile Testcodes and Bootrom code: @echo Compiling Firmware - @$(MAKE) -C $(SOCLABS_NANOSOC_TECH_DIR) compile_all_code + @$(MAKE) -C $(SOCLABS_NANOSOC_TECH_DIR) bootrom + +defs_nanosoc: + @$(MAKE) -C $(SOCLABS_NANOSOC_TECH_DIR) defs_gen DEFINES_DIR=$(DEFINES_DIR) NANOSOC_DEFINES=$(NANOSOC_DEFINES) DEFINES_FILE=$(DEFINES_FILE) # Generate TCL filelist from flists -flist_nanosoc: +flist_nanosoc: defs_nanosoc @mkdir -p $(TCL_FLIST_DIR) @(cd $(TCL_FLIST_DIR); \ $(SOCLABS_SOCTOOLS_FLOW_DIR)/bin/filelist_compile.py -t -f $(DESIGN_VC) -o $(TCL_OUTPUT_FILELIST) -r $(IMP_NANOSOC_DIR) -d $(NANOSOC_DEFINES);) diff --git a/makefile b/makefile index 17ed41a..621b279 100644 --- a/makefile +++ b/makefile @@ -92,6 +92,7 @@ ACCELERATOR ?= yes ifeq ($(ACCELERATOR),yes) DEFINES_VC += +define+ACCELERATOR_SUBSYSTEM + NANOSOC_DEFINES += ACCELERATOR_SUBSYSTEM endif # Is the Arm QuickStart being used? @@ -157,6 +158,10 @@ HAL_WAIVE += -design_info $(LINT_INFO_SLCOREM0_DIR)/slcorem0_ip.waive HAL_WAIVE += -design_info $(LINT_INFO_SLDMA230_DIR)/sldma230_ip.waive HAL_WAIVE += -design_info $(LINT_INFO_SOCDEBUG_DIR)/socdebug_controller_ip.waive +# Location of Defines File +DEFINES_DIR := $(SOCLABS_PROJECT_DIR)/system/src/defines/ +DEFINES_FILE := $(DEFINES_DIR)/gen_defines.v + # Debug Tester image DEBUGTESTER = debugtester @@ -243,7 +248,7 @@ all : all_$(SIMULATOR) # ------- VCS ----------- # Compile RTL -compile_vcs : +compile_vcs : defs_gen vcs $(VCS_OPTIONS) $(VCS_VC_OPTIONS) $(DEFINES_VC) | tee compile_vcs.log @@ -263,14 +268,14 @@ sim_vcs : code # Compile RTL -compile_xm : bootrom +compile_xm : bootrom defs_gen @echo ADP_FILE @echo $(ADP_OPTIONS) cd $(SIM_DIR); xmprep +overwrite $(XM_VC_OPTIONS) $(DEFINES_VC) +debug -timescale 1ns/1ps -top $(TB_TOP) | tee compile_xm.log cd $(SIM_DIR); xmvlog -work worklib -f xmvlog_ver.args | tee -a compile_xm.log cd $(SIM_DIR); xmelab -mess -f xmelab.args -access +r | tee -a compile_xm.log -lint_xm: bootrom +lint_xm: bootrom defs_gen @rm -rf $(LINT_DIR) @mkdir -p $(LINT_DIR) cd $(LINT_DIR); xrun -hal -f $(DESIGN_VC) $(DEFINES_VC) +debug "-timescale 1ns/1ps" -top $(LINT_TOP) $(HAL_BLACK_BOX) $(HAL_WAIVE) $(LINT_NOCHECK) @@ -296,7 +301,7 @@ sim_xm : code compile_xm # ------- MTI ----------- # Compile RTL -compile_mti : bootrom +compile_mti : bootrom defs_gen @echo ADP_FILE @echo $(ADP_OPTIONS) cd $(SIM_DIR) @@ -354,6 +359,9 @@ regression_$(SIMULATOR): compile_$(SIMULATOR) bootrom debugtester @make -j$(PARALLEL_TESTS) all_$(SIMULATOR) REGRESSION=$(REGRESSION_DIR) @make -j1 regression_results REGRESSION=$(REGRESSION_DIR) +defs_gen: + @mkdir -p $(DEFINES_DIR) + @$(SOCLABS_SOCTOOLS_FLOW_DIR)/bin/defines_compile.py -d $(NANOSOC_DEFINES) -o $(DEFINES_FILE) # ------- Software ----------- diff --git a/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v b/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v index 473972b..028beac 100644 --- a/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v +++ b/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v @@ -1,3 +1,15 @@ +//----------------------------------------------------------------------------- +// Nanosoc Chip-level File +// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +// +// Contributors +// +// David Mapstone (d.a.mapstone@soton.ac.uk) +// +// Copyright 2021-3, SoC Labs (www.soclabs.org) +//----------------------------------------------------------------------------- +`include "gen_defines.v" + module nanosoc_chip #( parameter integer FT1248_WIDTH = 1 // FTDI Interface 1,2,4 width supported )( diff --git a/nanosoc/socdebug_tech b/nanosoc/socdebug_tech index 46ee612..e798f86 160000 --- a/nanosoc/socdebug_tech +++ b/nanosoc/socdebug_tech @@ -1 +1 @@ -Subproject commit 46ee61270c6bb8a9723da36645ed4a76ff744ad1 +Subproject commit e798f8612a9a66322b80cb8ee8fb2606e7e9794b -- GitLab