From afe09bcf8360ed7e886bfd9407d6534a12310b68 Mon Sep 17 00:00:00 2001
From: dwf1m12 <d.w.flynn@soton.ac.uk>
Date: Mon, 24 Jul 2023 18:21:02 +0100
Subject: [PATCH] new top-level fpgabuild.sh and script updates in the style of
 nanosoc

---
 .../fpga_imp/build_fpga_clean.scr             | 23 +++++++++++++
 .../soclabs/driver/uartlite.py                |  0
 .../soclabs/soclabs_cm0sdk_mcu.ipynb          |  0
 .../soclabs/driver/uartlite.py                |  0
 .../soclabs/soclabs_cm0sdk_mcu.ipynb          |  0
 .../fpga_imp/scripts/build_mcu_fpga_ip.tcl    |  6 ++--
 .../scripts/build_mcu_fpga_pynq_z2.tcl        | 20 +++++------
 .../scripts/build_mcu_fpga_pynq_zcu104.tcl    | 18 +++++-----
 fpgabuild.sh                                  | 34 +++++++++++++++++++
 9 files changed, 79 insertions(+), 22 deletions(-)
 create mode 100755 Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/build_fpga_clean.scr
 rename Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/{pz104 => pynq_z2}/jupyter_notebooks/soclabs/driver/uartlite.py (100%)
 rename Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/{pz2 => pynq_z2}/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb (100%)
 rename Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/{pz2 => pynq_zcu104}/jupyter_notebooks/soclabs/driver/uartlite.py (100%)
 rename Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/{pz104 => pynq_zcu104}/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb (100%)
 create mode 100755 fpgabuild.sh

diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/build_fpga_clean.scr b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/build_fpga_clean.scr
new file mode 100755
index 0000000..f5878e2
--- /dev/null
+++ b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/build_fpga_clean.scr
@@ -0,0 +1,23 @@
+#-----------------------------------------------------------------------------
+# SoC Labs Simulation script for system level verification
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# David Fltnn (d.w.flynne@soton.ac.uk)
+#
+# Copyright  2023, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+
+#!/usr/bin/env bash
+
+rm -Rf .gen/
+rm -Rf .srcs/
+rm -Rf .Xil/
+rm -Rf vivado/
+rm -f *.backup.*
+rm -f vivado.*
+rm -Rf vivado/
+rm -Rf pynq_export/*/pynq/overlays/soclabs/*
+
+
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pz104/jupyter_notebooks/soclabs/driver/uartlite.py b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pynq_z2/jupyter_notebooks/soclabs/driver/uartlite.py
similarity index 100%
rename from Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pz104/jupyter_notebooks/soclabs/driver/uartlite.py
rename to Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pynq_z2/jupyter_notebooks/soclabs/driver/uartlite.py
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pz2/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pynq_z2/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb
similarity index 100%
rename from Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pz2/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb
rename to Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pynq_z2/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pz2/jupyter_notebooks/soclabs/driver/uartlite.py b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pynq_zcu104/jupyter_notebooks/soclabs/driver/uartlite.py
similarity index 100%
rename from Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pz2/jupyter_notebooks/soclabs/driver/uartlite.py
rename to Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pynq_zcu104/jupyter_notebooks/soclabs/driver/uartlite.py
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pz104/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pynq_zcu104/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb
similarity index 100%
rename from Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pz104/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb
rename to Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/pynq_export/pynq_zcu104/jupyter_notebooks/soclabs/soclabs_cm0sdk_mcu.ipynb
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_ip.tcl b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_ip.tcl
index b612592..07511ba 100644
--- a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_ip.tcl
+++ b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_ip.tcl
@@ -27,7 +27,7 @@ file mkdir $outputDir
 # local search path for configurations
 set search_path ../verilog
 
-set cortexm0_vlog    ../../../../../../arm-AAA-ip/Cortex-M0/AT510-BU-00000-r0p0-03rel3/logical
+set cortexm0_vlog    ../../../../../../arm-AAA-ip/latest/Cortex-M0/logical
 source scripts/rtl_source_cm0.tcl
 
 set search_path [ concat $search_path $cortexm0_vlog/cortexm0_integration/verilog ]
@@ -35,7 +35,7 @@ read_verilog  [ glob $cortexm0_vlog/cortexm0_integration/verilog/*.v ]
 read_verilog  [ glob $cortexm0_vlog/models/cells/*.v ]
 
 # Arm unmodified CMSDK RTL
-set cmsdk_vlog    ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0
+set cmsdk_vlog    ../../../../../../arm-AAA-ip/latest/Corstone-101
 source scripts/rtl_source_cmsdk.tcl
 
 set search_path [ concat $search_path $cmsdk_vlog/logical/models/memories ]
@@ -47,7 +47,7 @@ read_verilog  $cmsdk_vlog/logical/models/memories/cmsdk_fpga_sram.v
 
 # configured Arm DMA-PL230 RTL (include ../verilog/pl230_defs.v for local configuration, not the distribution, already on search path)
 ##set search_path [ concat $search_path ../verilog ]
-set dma230_vlog    ../../../../../../arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel2/shared/logical/pl230_udma/verilog
+set dma230_vlog    ../../../../../../arm-AAA-ip/latest/DMA-230/logical
 source scripts/rtl_source_dma230.tcl
 
 # ADP, FT1248 and streamio IP
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_pynq_z2.tcl b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_pynq_z2.tcl
index 450ae3c..138c3e3 100644
--- a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_pynq_z2.tcl
+++ b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_pynq_z2.tcl
@@ -21,8 +21,8 @@ set project project_pynq_z2
 set importDir target_fpga_pynq_z2
 set ipDir ./ip_repo
 set mcuDir ./vivado/built_mcu_fpga/MCULIB
-set pynqDir pynq_export/pz2/pynq/overlays/soclabs
-set exportDir /research/soclabs/pynq_export/pz2/pynq/overlays/soclabs
+set pynqDir pynq_export/pynq_z2/pynq/overlays/soclabs
+set exportDir /research/soclabs/pynq_export/pynq_z2/pynq/overlays/soclabs
 #set_property BOARD_PART tul.com:pynq-z2:part0:1.1 [current_project]
 
 #
@@ -66,15 +66,15 @@ create_root_design ""
 add_files -norecurse -scan_for_includes ../verilog/cmsdk_mcu_defs.v
 set_property is_global_include true [get_files  ../verilog/cmsdk_mcu_defs.v]
 
-add_files -norecurse -scan_for_includes {../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/models/memories/cmsdk_ahb_memory_models_defs.v ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v}
-set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/models/memories/cmsdk_ahb_memory_models_defs.v]
-set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v]
-set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v]
+add_files -norecurse -scan_for_includes {../../../../../../arm-AAA-ip/latest/Corstone-101/logical/models/memories/cmsdk_ahb_memory_models_defs.v ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v}
+set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/models/memories/cmsdk_ahb_memory_models_defs.v]
+set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v]
+set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v]
 
-set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/models/memories/cmsdk_ahb_memory_models_defs.v]
-set_property file_type {Verilog Header} [get_files  ../../../../../../soclabs-cortexm0-mcu/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_defs.v]
-set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v]
-set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v]
+set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/models/memories/cmsdk_ahb_memory_models_defs.v]
+set_property file_type {Verilog Header} [get_files  ../verilog/cmsdk_mcu_defs.v]
+set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v]
+set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v]
 
 add_files $importDir/fpga_pinmap.xdc
 
diff --git a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_pynq_zcu104.tcl b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_pynq_zcu104.tcl
index 24311bd..679a6ae 100644
--- a/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_pynq_zcu104.tcl
+++ b/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/fpga_imp/scripts/build_mcu_fpga_pynq_zcu104.tcl
@@ -21,7 +21,7 @@ set project project_pynq_zcu104
 set importDir target_fpga_zcu104
 set ipDir ./ip_repo
 set mcuDir ./vivado/built_mcu_fpga/MCULIB
-set pynqDir pynq_export/pz104/pynq/overlays/soclabs
+set pynqDir pynq_export/pynq_zcu104/pynq/overlays/soclabs
 #set_property BOARD_PART xilinx.com:zcu104:part0:1.1 [current_project]
 
 #
@@ -65,15 +65,15 @@ create_root_design ""
 add_files -norecurse -scan_for_includes ../verilog/cmsdk_mcu_defs.v
 set_property is_global_include true [get_files  ../verilog/cmsdk_mcu_defs.v]
 
-add_files -norecurse -scan_for_includes {../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/models/memories/cmsdk_ahb_memory_models_defs.v ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v}
-set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/models/memories/cmsdk_ahb_memory_models_defs.v]
-set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v]
-set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v]
+add_files -norecurse -scan_for_includes {../../../../../../arm-AAA-ip/latest/Corstone-101/logical/models/memories/cmsdk_ahb_memory_models_defs.v ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v}
+set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/models/memories/cmsdk_ahb_memory_models_defs.v]
+set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v]
+set_property is_global_include true [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v]
 
-set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/models/memories/cmsdk_ahb_memory_models_defs.v]
-set_property file_type {Verilog Header} [get_files  ../../../../../../soclabs-cortexm0-mcu/Cortex-M0/soclabs_demo/systems/cortex_m0_mcu/verilog/cmsdk_mcu_defs.v]
-set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v]
-set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v]
+set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/models/memories/cmsdk_ahb_memory_models_defs.v]
+set_property file_type {Verilog Header} [get_files  ../verilog/cmsdk_mcu_defs.v]
+set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_defs.v]
+set_property file_type {Verilog Header} [get_files  ../../../../../../arm-AAA-ip/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_defs.v]
 
 add_files $importDir/fpga_pinmap.xdc
 
diff --git a/fpgabuild.sh b/fpgabuild.sh
new file mode 100755
index 0000000..d69eb21
--- /dev/null
+++ b/fpgabuild.sh
@@ -0,0 +1,34 @@
+#-----------------------------------------------------------------------------
+# SoC Labs Simulation script for system level verification
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# David Fltnn (d.w.flynne@soton.ac.uk)
+#
+# Copyright  2023, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+
+#!/usr/bin/env bash
+
+# Get simulation name from name of script
+FPGA_NAME="build_fpga_"$1
+
+# Directory to put simulation files
+FPGA_DIR=$SOCLABS_PROJECT_DIR/fpga/$FPGA_NAME
+
+# Create Directory to export fpga files
+mkdir -p $FPGA_DIR
+cd $ARM_CMSDK_MCU_DIR/fpga_imp
+
+# build fpga
+echo "valid targets are:"
+echo "    pynq_z2"
+echo "    pynq_zcu104"
+echo "    clean"
+
+echo ">>"${1}"<<"
+cd $ARM_CMSDK_MCU_DIR/fpga_imp ; source $FPGA_NAME.scr
+if [ ${1} != 'clean' ]; then
+  cp -Rp $ARM_CMSDK_MCU_DIR/fpga_imp/pynq_export/$1/* $FPGA_DIR/
+fi
-- 
GitLab