diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1347879..b96d3c4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -72,7 +72,7 @@
     sse-300
     STRING)
 
-USER_OPTION(ETHOS_U55_ENABLED "Select if Ethos-U55 is available for the platform and subsystem"
+USER_OPTION(ETHOS_U_NPU_ENABLED "Select if Ethos-U55 is available for the platform and subsystem"
     ON
     BOOL)
 
@@ -164,29 +164,29 @@
 endif ()
 
 # If we need NPU libraries:
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
 
     message(STATUS "Using ARM Ethos-U55 - adding core-driver and timing-adapter-driver includes and libraries")
-    USER_OPTION(ETHOS_U55_TIMING_ADAPTER_SRC_PATH
+    USER_OPTION(ETHOS_U_NPU_TIMING_ADAPTER_SRC_PATH
         "Path to Ethos-U55 timing adapter sources"
         "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/core-software/drivers/timing_adapter"
         PATH
         )
 
-    USER_OPTION(ETHOS_U55_DRIVER_SRC_PATH
+    USER_OPTION(ETHOS_U_NPU_DRIVER_SRC_PATH
         "Path to Ethos-U55 core driver sources"
         "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/core-driver"
         PATH
         )
 
-    include_directories("${ETHOS_U55_TIMING_ADAPTER_SRC_PATH}/include/")
+    include_directories("${ETHOS_U_NPU_TIMING_ADAPTER_SRC_PATH}/include/")
 
-    add_subdirectory("${ETHOS_U55_TIMING_ADAPTER_SRC_PATH}" ${CMAKE_BINARY_DIR}/timing-adapter)
+    add_subdirectory("${ETHOS_U_NPU_TIMING_ADAPTER_SRC_PATH}" ${CMAKE_BINARY_DIR}/timing-adapter)
 
-    set(ETHOSU_INCLUDES ${ETHOS_U55_TIMING_ADAPTER_SRC_PATH}/include
-                        ${ETHOS_U55_DRIVER_SRC_PATH}/include)
+    set(ETHOSU_INCLUDES ${ETHOS_U_NPU_TIMING_ADAPTER_SRC_PATH}/include
+                        ${ETHOS_U_NPU_DRIVER_SRC_PATH}/include)
 
-    list(APPEND ETHOS_U55_LIBS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libtiming_adapter.a)
+    list(APPEND ETHOS_U_NPU_LIBS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libtiming_adapter.a)
 endif ()
 
 include(${CMAKE_SCRIPTS_DIR}/tensorflow.cmake)
@@ -359,7 +359,7 @@
 
     if (${CMAKE_CROSSCOMPILING})
         # If we are building timing adapter, set the dependency:
-        if (ETHOS_U55_ENABLED)
+        if (ETHOS_U_NPU_ENABLED)
             message(STATUS "Adding timing_adapter as a dependency to ${UC_LIB_NAME}")
             add_dependencies(${UC_LIB_NAME} timing_adapter)
         endif()
@@ -373,7 +373,7 @@
 
     target_link_libraries(${UC_LIB_NAME} PUBLIC
         ${TENSORFLOW_LIBRARY}
-        $<$<BOOL:${ETHOS_U55_ENABLED}>:${ETHOS_U55_LIBS}>
+        $<$<BOOL:${ETHOS_U_NPU_ENABLED}>:${ETHOS_U_NPU_LIBS}>
         $<$<BOOL:${CMSIS_DSP_LIB}>:${CMSIS_DSP_LIB}>)
 
     add_executable(${TARGET_NAME} ${SRC_MAIN} ${PLAT_RETARGET_SOURCE})
diff --git a/Readme.md b/Readme.md
index 66bbf66..57ae858 100644
--- a/Readme.md
+++ b/Readme.md
@@ -2,15 +2,20 @@
 
 This repository is for building and deploying Machine Learning (ML) applications targeted for Arm® Cortex®-M and Arm®
 Ethos™-U NPU.
-To run evaluations using this software, we suggest using an [MPS3 board](https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3)
-or a fixed virtual platform (FVP) that supports Ethos-U55 software fast model. Both environments run a combination of
-the new [Arm® Cortex™-M55 processor](https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m55) and the
-[Arm® Ethos™-U55 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u55).
+To run evaluations using this software, we suggest using:
+
+- an [MPS3 board](https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3) that runs a combination of
+the [Arm® Cortex™-M55 processor](https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m55) and the
+[Arm® Ethos™-U55 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u55)
+- a [Corstone™-300 MPS3 based Fixed Virtual Platform (FVP)](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps)
+  that offers a choice of the [Arm® Ethos™-U55 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u55)
+  or [Arm® Ethos™-U65 NPU](https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u65) software fast model in combination of
+  the new [Arm® Cortex™-M55 processor](https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m55).
 
 ## Overview of the evaluation kit
 
-The purpose of this evaluation kit is to allow users to develop software and test the performance of the Ethos-U55 NPU and
-Cortex-M55 CPU. The Ethos-U55 NPU is a new class of machine learning(ML) processor, specifically designed to accelerate
+The purpose of this evaluation kit is to allow users to develop software and test the performance of the Ethos-U NPU and
+Cortex-M55 CPU. The Ethos-U NPU is a new class of machine learning (ML) processor, specifically designed to accelerate
 computation for ML workloads in constrained embedded and IoT devices. The product is optimized to execute
 mathematical operations efficiently that are commonly used in ML algorithms, such as convolutions or activation functions.
 
@@ -27,10 +32,10 @@
 |  [Automated Speech Recognition(ASR)](./docs/use_cases/asr.md) | Transcribe words in a recording | [Wav2Letter](https://github.com/ARM-software/ML-zoo/blob/master/models/speech_recognition/wav2letter/tflite_int8) |
 |  [KWS and ASR](./docs/use_cases/kws_asr.md) | Utilise Cortex-M and Ethos-U to transcribe words in a recording after a keyword was spotted | [DS-CNN-L](https://github.com/ARM-software/ML-zoo/blob/master/models/keyword_spotting/ds_cnn_large/tflite_clustered_int8)  [Wav2Letter](https://github.com/ARM-software/ML-zoo/blob/master/models/speech_recognition/wav2letter/tflite_int8) |
 |  [Anomaly Detection](./docs/use_cases/ad.md)                 | Detecting abnormal behavior based on a sound recording of a machine | [Anomaly Detection](https://github.com/ARM-software/ML-zoo/raw/7c32b097f7d94aae2cd0b98a8ed5a3ba81e66b18/models/anomaly_detection/micronet_medium/tflite_int8/ad_medium_int8.tflite)|
-| [Generic inference runner](./docs/use_cases/inference_runner.md) | Code block allowing you to develop your own use case for Ethos-U55 NPU | Your custom model |
+| [Generic inference runner](./docs/use_cases/inference_runner.md) | Code block allowing you to develop your own use case for Ethos-U NPU | Your custom model |
 
 The above use cases implement end-to-end ML flow including data pre-processing and post-processing. They will allow you
-to investigate embedded software stack, evaluate performance of the networks running on Cortex-M55 CPU and Ethos-U55 NPU
+to investigate embedded software stack, evaluate performance of the networks running on Cortex-M55 CPU and Ethos-U NPU
 by displaying different performance metrics such as inference cycle count estimation and results of the network execution.
 
 ## Software and hardware overview
@@ -45,7 +50,8 @@
 All ML use cases, albeit illustrating a different application, have common code such as initializing the Hardware
 Abstraction Layer (HAL). The application common code can be run on x86 or Arm Cortex-M architecture thanks to the HAL.
 For the ML application-specific part, Google® TensorFlow™ Lite for Microcontrollers inference engine is used to schedule
-the neural networks models executions. TensorFlow Lite for Microcontrollers is integrated with the [Ethos-U55 driver](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-core-driver)
+the neural networks models executions. TensorFlow Lite for Microcontrollers is integrated with the
+[Ethos-U NPU driver](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-core-driver)
 and delegates execution of certain operators to the NPU or, if the neural network model operators are not supported on
 NPU, to the CPU. [CMSIS-NN](https://github.com/ARM-software/CMSIS_5) is used to optimise CPU workload execution
 with int8 data type.
@@ -55,7 +61,7 @@
 
 ![APIs](docs/media/APIs_description.png)
 
-To run an ML application on the Cortex-M and Ethos-U55 NPU, please, follow these steps:
+To run an ML application on the Cortex-M and Ethos-U NPU, please, follow these steps:
 
 1. Setup your environment by installing [the required prerequisites](./docs/sections/building.md#Build-prerequisites).
 2. Generate an optimized neural network model for Ethos-U with a Vela compiler by following instructions [here](./docs/sections/building.md#Add-custom-model).
@@ -64,11 +70,20 @@
 5. If using a FVP, [launch the desired application on the FVP](./docs/sections/deployment.md#Fixed-Virtual-Platform).
 If using the FPGA option, load the image on the FPGA and [launch the application](./docs/sections/deployment.md#MPS3-board).
 
-To get familiar with these steps, you can follow the [quick start guide](docs/quick_start.md).
+**To get familiar with these steps, you can follow the [quick start guide](docs/quick_start.md).**
+
+> **Note:** The default flow assumes Arm® *Ethos™-U55* NPU usage, configured to use 128 Multiply-Accumulate units
+> and is sharing SRAM with the Arm® *Cortex®-M55*.
+> Evaluation kit supports also:
+>
+> - *Ethos™-U55* NPU configured to use 32, 64 and 256 Multiply-Accumulate units.
+> - *Ethos™-U65* NPU configured to use 256 and 512 Multiply-Accumulate units.
+>
+> For more information see [Building](./docs/documentation.md#building).
 
 For more details see full documentation:
 
-- [Arm® ML embedded evaluation kit](./docs/documentation.md#arm-ml-embedded-evaluation-kit)
+- [Arm® ML embedded evaluation kit](./docs/documentation.md#arm_ml-embedded-evaluation-kit)
   - [Table of Content](./docs/documentation.md#table-of-content)
   - [Trademarks](./docs/documentation.md#trademarks)
   - [Prerequisites](./docs/documentation.md#prerequisites)
diff --git a/docs/documentation.md b/docs/documentation.md
index bb89c63..d9286a9 100644
--- a/docs/documentation.md
+++ b/docs/documentation.md
@@ -46,7 +46,7 @@
 
 ### Additional reading
 
-This document contains information that is specific to Arm® Ethos™-U55 products. Please refer to the following documents
+This document contains information that is specific to Arm® Ethos™-U55 and Arm® Ethos™-U65 products. Please refer to the following documents
 for additional information:
 
 - ML platform overview: <https://mlplatform.org/>
@@ -58,6 +58,9 @@
 - ML processor, also referred to as a Neural Processing Unit (NPU) - Arm® `Ethos™-U55`:
     <https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u55>
 
+- ML processor, also referred to as a Neural Processing Unit (NPU) - Arm® `Ethos™-U65`:
+    <https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u65>
+
 - Arm® MPS3 FPGA Prototyping Board:
     <https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3>
 
@@ -112,12 +115,12 @@
 - `scripts`: Build and source generation scripts.
 
 - `source`: C/C++ sources for the platform and ML applications.
-    > **Note:** Common code related to the `Ethos-U55` NPU software framework resides in *application* subfolder.
+    > **Note:** Common code related to the `Ethos-U` NPU software framework resides in *application* subfolder.
 
   The contents of the *application* subfolder is as follows:
 
   - `application`: All sources that form the *core* of the application. The `use-case` part of the sources depend on the
-    sources themsleves, such as:
+    sources themselves, such as:
 
     - `hal`: Contains Hardware Abstraction Layer (HAL) sources, providing a platform agnostic API to access hardware
       platform-specific functions.
@@ -208,15 +211,15 @@
 - [Wav2Letter](https://github.com/ARM-software/ML-zoo/tree/1a92aa08c0de49a7304e0a7f3f59df6f4fd33ac8/models/speech_recognition/wav2letter/tflite_pruned_int8).
 - [Anomaly Detection](https://github.com/ARM-software/ML-zoo/raw/7c32b097f7d94aae2cd0b98a8ed5a3ba81e66b18/models/anomaly_detection/micronet_medium/tflite_int8/ad_medium_int8.tflite).
 
-When using *Ethos-U55* NPU backend, Vela compiler optimizes the the NN model. However, if not and it is supported by
+When using *Ethos-U* NPU backend, Vela compiler optimizes the the NN model. However, if not and it is supported by
 TensorFlow Lite Micro, then it falls back on the CPU and execute.
 
 ![Vela compiler](./media/vela_flow.jpg)
 
 The Vela compiler is a tool that can optimize a neural network model into a version that run on an embedded system
-containing the *Ethos-U55* NPU.
+containing the *Ethos-U* NPU.
 
-The optimized model contains custom operators for sub-graphs of the model that the *Ethos-U55* NPU can accelerate. The
+The optimized model contains custom operators for sub-graphs of the model that the *Ethos-U* NPU can accelerate. The
 remaining layers that cannot be accelerated, are left unchanged, and are run on the CPU using optimized, `CMSIS-NN`, or
 reference kernels provided by the inference engine.
 
@@ -228,7 +231,7 @@
 options and the process.
 
 The project can be built for MPS3 FPGA and FVP emulating MPS3. Using default values for configuration parameters builds
-executable models that support the *Ethos-U55* NPU.
+executable models that support the *Ethos-U* NPU.
 
 For further information, please see:
 
@@ -253,6 +256,7 @@
   - [Add custom inputs](./sections/building.md#add-custom-inputs)
   - [Add custom model](./sections/building.md#add-custom-model)
   - [Optimize custom model with Vela compiler](./sections/building.md#optimize-custom-model-with-vela-compiler)
+  - [Building for different Ethos-U NPU variants](#building-for-different-ethos-u-npu-variants)
   - [Automatic file generation](./sections/building.md#automatic-file-generation)
 
 ## Deployment
@@ -273,7 +277,7 @@
 This section describes how to implement a custom Machine Learning application running on a platform supported by the
 repository, either an FVP or an MPS3 board.
 
-Both the *Cortex-M55* CPU and *Ethos-U55* NPU Code Samples software project offers a way to incorporate extra use-case
+Both the *Cortex-M55* CPU and *Ethos-U* NPU Code Samples software project offers a way to incorporate extra use-case
 code into the existing infrastructure. It also provides a build system that automatically picks up added functionality
 and produces corresponding executable for each use-case.
 
diff --git a/docs/quick_start.md b/docs/quick_start.md
index 9d059fe..d1039fe 100644
--- a/docs/quick_start.md
+++ b/docs/quick_start.md
@@ -3,14 +3,14 @@
 This is a quick start guide that shows you how to run the keyword spotting example application.
 
 The aim of this quick start guide is to enable you to run an application quickly on the Fixed Virtual Platform (FVP).
-This documentation assumes that your Arm® *Ethos™-U55* NPU is configured to use 128 Multiply-Accumulate units, and is
+This documentation assumes that you are using an Arm® *Ethos™-U55* NPU, it is configured to use 128 Multiply-Accumulate units, and is
 sharing SRAM with the Arm® *Cortex®-M55*.
 
 To get started quickly, please follow these steps:
 
 1. First, verify that you have installed [the required prerequisites](sections/building.md#Build-prerequisites).
 
-2. Clone the *Ethos-U55* evaluation kit repository:
+2. Clone the *Ethos-U* evaluation kit repository:
 
     ```commandline
     git clone "https://review.mlplatform.org/ml/ethos-u/ml-embedded-evaluation-kit"
@@ -28,7 +28,7 @@
 
     [Vela](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela) is an open-source Python tool. Vela
     converts a TensorFlow Lite for Microcontrollers neural network model into an optimized model that can run on an
-    embedded system that contains an *Ethos-U55* NPU.
+    embedded system that contains an *Ethos-U* NPU.
 
     It is worth noting that to take full advantage of the capabilities of the NPU, the neural network operators must be
     [supported by Vela](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/+/HEAD/SUPPORTED_OPS.md).
diff --git a/docs/sections/building.md b/docs/sections/building.md
index 63f8d53..8bc03a3 100644
--- a/docs/sections/building.md
+++ b/docs/sections/building.md
@@ -22,6 +22,7 @@
   - [Add custom inputs](#add-custom-inputs)
   - [Add custom model](#add-custom-model)
   - [Optimize custom model with Vela compiler](#optimize-custom-model-with-vela-compiler)
+  - [Building for different Ethos-U NPU variants](#building-for-different-ethos-u-npu-variants)
   - [Automatic file generation](#automatic-file-generation)
 
 This section assumes that you are using an **x86 Linux** build machine.
@@ -115,7 +116,7 @@
 The project build system allows you to specify custom neural network models (in the `.tflite` format) for each use-case
 along with the network inputs.
 
-It also builds TensorFlow Lite for Microcontrollers library, Arm® *Ethos™-U55* driver library, and the CMSIS-DSP library
+It also builds TensorFlow Lite for Microcontrollers library, Arm® *Ethos™-U* NPU driver library, and the CMSIS-DSP library
 from sources.
 
 The build script is parameterized to support different options. Default values for build parameters build the
@@ -140,7 +141,7 @@
 - `TENSORFLOW_SRC_PATH`: the path to the root of the TensorFlow directory. The default value points to the
   `dependencies/tensorflow` git submodule. Respository is hosted here: [tensorflow](https://github.com/tensorflow/tensorflow)
 
-- `ETHOS_U55_DRIVER_SRC_PATH`: The path to the *Ethos-U55* NPU core driver sources. The default value points to the
+- `ETHOS_U_NPU_DRIVER_SRC_PATH`: The path to the *Ethos-U* NPU core driver sources. The default value points to the
   `dependencies/core-driver` git submodule. Repository is hosted here:
   [ethos-u-core-driver](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-core-driver).
 
@@ -148,8 +149,8 @@
   optional and is only valid for Arm® *Cortex®-M* CPU targeted configurations. The default value points to the
   `dependencies/cmsis` git submodule. Respository is hosted here: [CMSIS-5](https://github.com/ARM-software/CMSIS_5.git)
 
-- `ETHOS_U55_ENABLED`: Sets whether the use of *Ethos-U55* NPU is available for the deployment target. By default, this
-  is set and therefore application is built with *Ethos-U55* NPU supported.
+- `ETHOS_U_NPU_ENABLED`: Sets whether the use of *Ethos-U* NPU is available for the deployment target. By default, this
+  is set and therefore application is built with *Ethos-U* NPU supported.
 
 - `CPU_PROFILE_ENABLED`: Sets whether profiling information for the CPU core should be displayed. By default, this is
   set to false, but can be turned on for FPGA targets. The the FVP and the CPU core cycle counts are not meaningful and
@@ -161,19 +162,19 @@
 
 - `<use_case>_MODEL_TFLITE_PATH`: The path to the model file that is processed and is included into the application
   `axf` file. The default value points to one of the delivered set of models. Make sure that the model chosen is aligned
-  with the `ETHOS_U55_ENABLED` setting.
+  with the `ETHOS_U_NPU_ENABLED` setting.
 
-  - When using the *Ethos-U55* NPU backend, the NN model is assumed to be optimized by Vela compiler. However, even if
+  - When using the *Ethos-U* NPU backend, the NN model is assumed to be optimized by Vela compiler. However, even if
     not, if it is supported by TensorFlow Lite Micro, it falls back on the CPU and execute.
 
-  - When use of the *Ethos-U55* NPU is disabled, and if a Vela optimized model is provided, then the application reports
+  - When use of the *Ethos-U* NPU is disabled, and if a Vela optimized model is provided, then the application reports
     a failure at runtime.
 
 - `USE_CASE_BUILD`: Specifies the list of applications to build. By default, the build system scans sources to identify
   available ML applications and produces executables for all detected use-cases. This parameter can accept single value,
   for example: `USE_CASE_BUILD=img_class`, or multiple values. For example: `USE_CASE_BUILD="img_class;kws"`.
 
-- `ETHOS_U55_TIMING_ADAPTER_SRC_PATH`: The path to timing adapter sources. The default value points to the
+- `ETHOS_U_NPU_TIMING_ADAPTER_SRC_PATH`: The path to timing adapter sources. The default value points to the
   `timing_adapter` dependencies folder.
 
 - `TA_CONFIG_FILE`: The path to the CMake configuration file that contains the timing adapter parameters. Used only if
@@ -251,7 +252,7 @@
 ```
 
 > **Note:** The default source paths for the `TPIP` sources assume the above directory structure. However, all of the
-> relevant paths can be overridden by CMake configuration arguments `TENSORFLOW_SRC_PATH` `ETHOS_U55_DRIVER_SRC_PATH`,
+> relevant paths can be overridden by CMake configuration arguments `TENSORFLOW_SRC_PATH` `ETHOS_U_NPU_DRIVER_SRC_PATH`,
 > and `CMSIS_SRC_PATH`.
 
 #### Fetching resource files
@@ -272,7 +273,7 @@
 ### Building for default configuration
 
 A helper script `build_default.py` is provided to configure and build all the applications. It configures the project
-with default settings i.e., for `mps3` target and `sse-300` subsystem. Under the hood, it invokes all the necessary
+with default settings i.e., for `mps3` target, `sse-300` subsystem and *Ethos-U55* timing-adapter settings. Under the hood, it invokes all the necessary
 CMake commands that are described in the next sections.
 
 If using the `Arm GNU embedded toolchain`, execute:
@@ -311,14 +312,16 @@
 cmake ../
 ```
 
-The preceding command builds for the default target platform `mps3`, the default subsystem `sse-300`, and using the
-default toolchain file for the target as `bare-metal-gcc.` This is equivalent to running:
+The preceding command builds for the default target platform `mps3`, the default subsystem `sse-300`, using the
+default toolchain file for the target as `bare-metal-gcc` and the default *Ethos-U55* timing adapter settings.
+This is equivalent to running:
 
 ```commandline
 cmake .. \
     -DCMAKE_TOOLCHAIN_FILE=scripts/cmake/toolchains/bare-metal-gcc.cmake
     -DTARGET_PLATFORM=mps3 \
-    -DTARGET_SUBSYSTEM=sse-300
+    -DTARGET_SUBSYSTEM=sse-300 \
+    -DTA_CONFIG_FILE=scripts/cmake/timing_adapter/ta_config_u55_high_end.cmake
 ```
 
 #### Using Arm Compiler
@@ -378,15 +381,15 @@
 #### Configuring with custom TPIP dependencies
 
 If the TensorFlow source tree is not in its default expected location, set the path using `TENSORFLOW_SRC_PATH`.
-Similarly, if the *Ethos-U55* NPU driver and `CMSIS` are not in the default location, then use
-`ETHOS_U55_DRIVER_SRC_PATH` and `CMSIS_SRC_PATH` to configure their location.
+Similarly, if the *Ethos-U* NPU driver and `CMSIS` are not in the default location, then use
+`ETHOS_U_NPU_DRIVER_SRC_PATH` and `CMSIS_SRC_PATH` to configure their location.
 
 For example:
 
 ```commandline
 cmake .. \
     -DTENSORFLOW_SRC_PATH=/my/custom/location/tensorflow \
-    -DETHOS_U55_DRIVER_SRC_PATH=/my/custom/location/core-driver \
+    -DETHOS_U_NPU_DRIVER_SRC_PATH=/my/custom/location/core-driver \
     -DCMSIS_SRC_PATH=/my/custom/location/cmsis
 ```
 
@@ -465,10 +468,10 @@
 
 ## Building timing adapter with custom options
 
-The sources also contain the configuration for a timing adapter utility for the *Ethos-U55* NPU driver. The timing
+The sources also contain the configuration for a timing adapter utility for the *Ethos-U* NPU driver. The timing
 adapter allows the platform to simulate user provided memory bandwidth and latency constraints.
 
-The timing adapter driver aims to control the behavior of two AXI buses used by *Ethos-U55* NPU. One is for SRAM memory
+The timing adapter driver aims to control the behavior of two AXI buses used by *Ethos-U* NPU. One is for SRAM memory
 region, and the other is for flash or DRAM.
 
 The SRAM is where intermediate buffers are expected to be allocated and therefore, this region can serve frequent Read
@@ -544,7 +547,7 @@
   ![Maximum bit rate formula](../media/F2.png)
 
 - With a read latency of 64 cycles, and maximum pending reads as 2, each read could be a maximum of 64 or 128 bytes. As
-  defined for the *Ethos-U55* NPU AXI bus attribute.
+  defined for the *Ethos-U* NPU AXI bus attribute.
 
     The bandwidth is calculated solely by read parameters:
 
@@ -560,7 +563,7 @@
 `TA_CONFIG_FILE` build parameter is located in the `scripts/cmake folder` and contains all options for `AXI0` and `AXI1`
 as previously described.
 
-here is an example of `scripts/cmake/ta_config.cmake`:
+here is an example of `scripts/cmake/timing_adapter/ta_config_u55_high_end.cmake`:
 
 ```cmake
 # Timing adapter options
@@ -581,7 +584,7 @@
 An example of the build with a custom timing adapter configuration:
 
 ```commandline
-cmake .. -DTA_CONFIG_FILE=scripts/cmake/my_ta_config.cmake
+cmake .. -DTA_CONFIG_FILE=scripts/cmake/timing_adapter/my_ta_config.cmake
 ```
 
 ## Add custom inputs
@@ -593,7 +596,7 @@
 
 The application performs inference using the model pointed to by the CMake parameter `MODEL_TFLITE_PATH`.
 
-> **Note:** If you want to run the model using *Ethos-U55* NPU, ensure that your custom model has been run through the
+> **Note:** If you want to run the model using *Ethos-U* NPU, ensure that your custom model has been run through the
 > Vela compiler successfully before continuing.
 
 To run the application with a custom model, you must provide a `labels_<model_name>.txt` file of labels that are
@@ -603,7 +606,7 @@
 `labels_mobilenet_v2_1.0_224.txt` file in the `img_class` use-case for an example.
 
 Then, you must set `<use_case>_MODEL_TFLITE_PATH` to the location of the Vela processed model file and
-`<use_case>_LABELS_TXT_FILE` to the location of the associated labels file, like so:
+`<use_case>_LABELS_TXT_FILE` to the location of the associated labels file (if necessary), like so:
 
 ```commandline
 cmake .. \
@@ -648,13 +651,13 @@
 The source code is hosted on <https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ethos-u-vela/>.
 
 The Vela compiler is a tool that can optimize a neural network model into a version that can run on an embedded system
-containing an *Ethos-U55* NPU.
+containing an *Ethos-U* NPU.
 
-The optimized model contains custom operators for sub-graphs of the model that can be accelerated by the *Ethos-U55*
+The optimized model contains custom operators for sub-graphs of the model that can be accelerated by the *Ethos-U*
 NPU. The remaining layers that cannot be accelerated, are left unchanged and are run on the CPU using optimized, or
 `CMSIS-NN`, or reference kernels that are provided by the inference engine.
 
-After the compilation, the optimized model can only be executed on a system using an *Ethos-U55* NPU.
+After the compilation, the optimized model can only be executed on a system using an *Ethos-U* NPU.
 
 > **Note:** The NN model provided during the build and compiled into the application executable binary defines whether
 the CPU or NPU is used to execute workloads. If an unoptimized model is used, then inference runs on the *Cortex-M* CPU.
@@ -675,12 +678,15 @@
 The Vela command contains the following:
 
 - `--accelerator-config`: Specifies the accelerator configuration to use between `ethos-u55-256`, `ethos-u55-128`,
-  `ethos-u55-64`, and `ethos-u55-32`.
-- `--optimise`: Sets the optimisation strategy to Performance or Size. The Size strategy results in a model minimising the SRAM usage whereas the Performance strategy optimises the neural network for maximal perforamance. Note that if using the Performance strategy, you can also pass the `--arena-cache-size` option to Vela.
+  `ethos-u55-64`, `ethos-u55-32`, `ethos-u65-256`, and `ethos-u65-512`.
+- `--optimise`: Sets the optimisation strategy to Performance or Size. The Size strategy results in a model minimising the SRAM
+  usage whereas the Performance strategy optimises the neural network for maximal perforamance.
+  Note that if using the Performance strategy, you can also pass the `--arena-cache-size` option to Vela.
 - `--config`: Specifies the path to the Vela configuration file. The format of the file is a Python ConfigParser `.ini`
     file. An example can be found in the `dependencies` folder [default_vela.ini](../../scripts/vela/default_vela.ini).
 - `--memory-mode`: Selects the memory mode to use as specified in the Vela configuration file.
-- `--system-config`: Selects the system configuration to use as specified in the Vela configuration file.
+- `--system-config`: Selects the system configuration to use as specified in the Vela configuration file:
+  `Ethos_U55_High_End_Embedded`for *Ethos-U55* and `Ethos_U65_High_End` for *Ethos-U65*.
 
 Vela compiler accepts `.tflite` file as input and saves optimized network model as a `.tflite` file.
 
@@ -689,8 +695,39 @@
 
 To see Vela helper for all the parameters use: `vela --help`.
 
-> **Note:** By default, use of the *Ethos-U55* NPU is enabled in the CMake configuration. This can be changed by passing
-> `-DETHOS_U55_ENABLED`.
+> **Note:** By default, use of the *Ethos-U* NPU is enabled in the CMake configuration. This can be changed by passing
+> `-DETHOS_U_NPU_ENABLED`.
+
+## Building for different Ethos-U NPU variants
+
+The building process described in the previous paragraphs assumes building for the default *Ethos-U55* NPU with 128 MACs,
+using the *Ethos-U55* High End timing adapter system configuration.
+
+To build for a different *Ethos-U* NPU variant:
+
+- Optimize the model with Vela compiler with the correct parameters. See [Optimize custom model with Vela compiler](./building.md#optimize-custom-model-with-vela-compiler).
+- Use the Vela model as custom model in the building command. See [Add custom model](./building.md#add-custom-model)
+- Use the correct timing adapter settings configuration. See [Building timing adapter with custom options](./building.md#building-timing-adapter-with-custom-options)
+
+For example, when building for *Ethos-U65* High End system configuration, the Vela comand will be:
+
+```commandline
+vela \
+    <model_file>.tflite \
+    --accelerator-config ethos-u65-256 \
+    --optimise Performance \
+    --memory-mode=Shared_Sram \
+    --system-config=Ethos_U65_High_End \
+    --config=../scripts/vela/default_vela.ini
+```
+
+And the cmake command:
+
+```commandline
+cmake .. \
+    -D<use_case>_MODEL_TFLITE_PATH=<path/to/ethos_u65_vela_model.tflite> \
+    -DTA_CONFIG_FILE=scripts/cmake/ta_config_u65_high_end.cmake
+```
 
 ## Automatic file generation
 
diff --git a/docs/sections/customizing.md b/docs/sections/customizing.md
index 745132f..4cea26f 100644
--- a/docs/sections/customizing.md
+++ b/docs/sections/customizing.md
@@ -55,7 +55,7 @@
 ```
 
 Where the `source` folder contains C/C++ sources for the platform and ML applications. Common code related to the
-*Ethos-U55* code samples software framework resides in the `application` sub-folder and ML application-specific logic,
+*Ethos-U* code samples software framework resides in the `application` sub-folder and ML application-specific logic,
 use-cases, sources are in the `use-case` subfolder.
 
 > **Convention**: Separate use-cases must be organized in sub-folders under the use-case folder. The name of the
@@ -145,7 +145,7 @@
   |  `get_duration_ms`    |  Pointer to a function to calculate duration between two time-counters in milliseconds. |
   |  `get_duration_us`    |  Pointer to a function to calculate duration between two time-counters in microseconds |
   |  `get_cpu_cycle_diff` |  Pointer to a function to calculate duration between two time-counters in *Cortex-M55* cycles. |
-  |  `get_npu_cycle_diff` |  Pointer to a function to calculate duration between two time-counters in *Ethos-U55* cycles. Available only when project is configured with `ETHOS_U55_ENABLED` set. |
+  |  `get_npu_cycle_diff` |  Pointer to a function to calculate duration between two time-counters in *Ethos-U* cycles. Available only when project is configured with `ETHOS_U_NPU_ENABLED` set. |
   |  `start_profiling`    |  If necessary, wraps the `get_time_counter` function with another profiling initialization, if necessary. |
   |  `stop_profiling`     |  If necessary, wraps the `get_time_counter` function along with more instructions when profiling ends. |
 
@@ -227,7 +227,7 @@
 
 ## Profiler
 
-The profiler is a helper class that assists with the collection of timings and *Ethos-U55* cycle counts for operations.
+The profiler is a helper class that assists with the collection of timings and *Ethos-U* cycle counts for operations.
 It uses platform timer to get system timing information.
 
 | Method name             | Description                                                    |
@@ -358,7 +358,7 @@
 Before inference could be run with a custom NN model, TensorFlow Lite Micro framework must learn about the operators, or
 layers, included in the model. You must register operators using the `MicroMutableOpResolver` API.
 
-The *Ethos-U55* code samples project has an abstraction around TensorFlow Lite Micro API (see [NN model API](#nn-model-api)).
+The *Ethos-U* code samples project has an abstraction around TensorFlow Lite Micro API (see [NN model API](#nn-model-api)).
 Create `HelloWorldModel.hpp` in the use-case include sub-directory, extend Model abstract class,
 and then declare the required methods.
 
@@ -405,10 +405,10 @@
 
 Please refer to `use_case/img_class/src/MobileNetModel.cc` for code examples.
 
-If you are using a TensorFlow Lite model compiled with Vela, it is important to add a custom *Ethos-U55* operator to the
+If you are using a TensorFlow Lite model compiled with Vela, it is important to add a custom *Ethos-U* operator to the
 operators list.
 
-The following example shows how to add the custom *Ethos-U55* operator with the TensorFlow Lite Micro framework. when
+The following example shows how to add the custom *Ethos-U* operator with the TensorFlow Lite Micro framework. when
 defined, `ARM_NPU` excludes the code if the application was built without NPU support.
 
 For example:
@@ -553,7 +553,7 @@
   const uint8_t *outputData = tflite::GetTensorData<uint8>(outputTensor);
   ```
 
-To add profiling for the *Ethos-U55*, include a `Profiler.hpp` header and invoke both `StartProfiling` and
+To add profiling for the *Ethos-U*, include a `Profiler.hpp` header and invoke both `StartProfiling` and
 `StopProfiling` around inference execution.
 
 For example:
@@ -660,7 +660,7 @@
 > - `use_case` – The name of the current use-case.
 > - `UC_SRC` – A list of use-case sources.
 > - `UC_INCLUDE` – The path to the use-case headers.
-> - `ETHOS_U55_ENABLED` – The flag indicating if the current build supports Ethos-U55.
+> - `ETHOS_U_NPU_ENABLED` – The flag indicating if the current build supports Ethos-U55.
 > - `TARGET_PLATFORM` – The target platform being built for.
 > - `TARGET_SUBSYSTEM` – If target platform supports multiple subsystems, this is the name of the subsystem.
 > - All standard build options.
@@ -671,7 +671,7 @@
 so:
 
 ```cmake
-if (ETHOS_U55_ENABLED EQUAL 1)
+if (ETHOS_U_NPU_ENABLED EQUAL 1)
   set(DEFAULT_MODEL_PATH  ${DEFAULT_MODEL_DIR}/helloworldmodel_uint8_vela.tflite)
 else()
   set(DEFAULT_MODEL_PATH  ${DEFAULT_MODEL_DIR}/helloworldmodel_uint8.tflite)
diff --git a/docs/sections/deployment.md b/docs/sections/deployment.md
index 7a8e368..6c90c87 100644
--- a/docs/sections/deployment.md
+++ b/docs/sections/deployment.md
@@ -29,8 +29,8 @@
 
 ### Setting up the MPS3 Arm Corstone-300 FVP
 
-For the *Ethos-U55* sample application, please download the MPS3 version of the Arm® *Corstone™-300* model that contains
-both the *Ethos-U55* and *Arm® Cortex®-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
 
 To install the FVP:
 
@@ -38,7 +38,7 @@
 
 - Run the install script in the extracted package:
 
-    `./FVP_Corstone_SSE-300_Ethos-U55.sh`
+    `./FVP_Corstone_SSE-300.sh`
 
 - Follow the instructions to install the FVP to your required location.
 
@@ -46,15 +46,15 @@
 
 This section assumes that the FVP has been installed (see
 [Setting up the MPS3 Arm Corstone-300 FVP](#setting-up-the-mps3-arm-corstone-300-fvp))
-to the home directory of the user: `~/FVP_Corstone_SSE-300_Ethos-U55`.
+to the home directory of the user: `~/FVP_Corstone_SSE-300`.
 
-The installation, typically, has the executable under `~/FVP_Corstone_SSE-300_Ethos-U55/model/<OS>_<compiler-version>/`
-directory. For the example below, we assume it is: `~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4`.
+The installation, typically, has the executable under `~/FVP_Corstone_SSE-300/model/<OS>_<compiler-version>/`
+directory. For the example below, we assume it is: `~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4`.
 
 To run a use-case on the FVP, from the [Build directory](../sections/building.md#create-a-build-directory):
 
 ```commandline
-~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-<use_case>.axf
+~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-<use_case>.axf
 telnetterminal0: Listening for serial connection on port 5000
 telnetterminal1: Listening for serial connection on port 5001
 telnetterminal2: Listening for serial connection on port 5002
@@ -73,10 +73,16 @@
 
 After starting, the application outputs a menu and waits for the user-input from the telnet terminal.
 
-For example, the image classification use-case can be started by using:
+For example, the image classification use-case on *Ethos-U55* processor can be started by using:
 
 ```commandline
-~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-img_class.axf
+~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-img_class.axf
+```
+
+Meanwhile for *Ethos-U65*:
+
+```commandline
+~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U65 -a ./bin/ethos-u-img_class.axf
 ```
 
 ![FVP](../media/fvp.png)
@@ -86,8 +92,11 @@
 The FVP supports many command-line parameters, such as:
 
 - Those passed by using `-C <param>=<value>`. The most important ones are:
-  - `ethosu.num_macs`: Sets the *Ethos-U55* configuration for the model. Valid parameters are `32`, `64`, `256`, and the
-    default one `128`. The number signifies the 8x8 MACs that are performed per cycle-count and that are available on
+  - `ethosu.num_macs`: Sets the *Ethos-U* configuration for the model. The valid parameters are:
+    - *Ethos-U55*: `32`, `64`, `256`, and the default one `128`.
+    - *Ethos-U65*: `256`, and the default one `512`.
+
+    The number signifies the 8x8 MACs that are performed per cycle-count and that are available on
     the hardware.
   - `cpu0.CFGITCMSZ`: The ITCM size for the *Cortex-M* CPU. The size of ITCM is *pow(2, CFGITCMSZ - 1)* KB
   - `cpu0.CFGDTCMSZ`: The DTCM size for the *Cortex-M* CPU. The size of DTCM is *pow(2, CFGDTCMSZ - 1)* KB
@@ -100,19 +109,25 @@
   To start the model in `128` mode for *Ethos-U55*:
 
     ```commandline
-    ~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-img_class.axf -C ethosu.num_macs=128
+    ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-img_class.axf -C ethosu.num_macs=128
+    ```
+
+  To start the model in `512` mode for *Ethos-U65*:
+
+    ```commandline
+    ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U65 -a ./bin/ethos-u-img_class.axf -C ethosu.num_macs=512
     ```
 
 - `-l`: shows the full list of supported parameters
 
     ```commandline
-    ~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -l
+    ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -l
     ```
 
 - `--stat`: prints some run statistics on simulation exit
 
     ```commandline
-    ~/FVP_Corstone_SSE-300_Ethos-U55/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 --stat
+    ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 --stat
     ```
 
 - `--timelimit`: sets the number of wall clock seconds for the simulator to run, excluding startup and shutdown.
diff --git a/docs/sections/testing_benchmarking.md b/docs/sections/testing_benchmarking.md
index 6350f52..d040d17 100644
--- a/docs/sections/testing_benchmarking.md
+++ b/docs/sections/testing_benchmarking.md
@@ -47,8 +47,6 @@
 
 ```log
 INFO - native platform initialised
-INFO - ARM Ethos-U55 Evaluation application for MPS3 FPGA Prototyping Board and FastModel
-
 ...
 ===============================================================================
    All tests passed (37 assertions in 7 test cases)
@@ -60,11 +58,24 @@
 
 Profiling is enabled by default when configuring the project. Profiling enables you to display:
 
-- The active and idle NPU cycle counts when the Arm® *Ethos™-U55* is enabled. For more information, refer to the
-  `-DETHOS_U55_ENABLED` section in: [Build options](./building.md#build-options).
+- NPU event counters when the Arm® *Ethos™-U* NPU is enabled (see `ETHOS_U_NPU_ENABLED` in [Build options](./building.md#build-options) )
+
+  - Total cycle: The number of NPU cycles
+
+  - Active cycles: number of NPU cycles that were used for computation
+
+  - Idle cycles: number of cycles for which the NPU was idle
+
+  - AXI0 read beats: The number of AXI beats with read transactions from AXI0 bus. AXI0 is the bus where
+    *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+
+  - AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.
+
+  - AXI1 read beats: The number of AXI beats with read transactions from AXI1 bus. AXI1 is the bus where
+   *Ethos-U* NPU reads the model. So, read-only.
+
 - If CPU profiling is enabled, the CPU cycle counts and the time elapsed, in milliseconds, for inferences performed. For
-  further information, please refer to the `-DCPU_PROFILE_ENABLED` section in:
-  [Build options](./building.md#build-options).
+  further information, please refer to the `CPU_PROFILE_ENABLED` in [Build options](./building.md#build-options).
 
 > **Note:** Only do this when running on a physical FPGA board as the FVP does not contain a cycle-approximate or
 > cycle-accurate *Cortex-M* model.
@@ -74,18 +85,28 @@
 - On the FVP:
 
 ```log
-    Active NPU cycles: 5475412
-    Idle NPU cycles:   702
+INFO - Profile for Inference:
+INFO - NPU AXI0_RD_DATA_BEAT_RECEIVED beats: 628122
+INFO - NPU AXI0_WR_DATA_BEAT_WRITTEN beats: 135087
+INFO - NPU AXI1_RD_DATA_BEAT_RECEIVED beats: 62870
+INFO - NPU ACTIVE cycles: 1081007
+INFO - NPU IDLE cycles: 626
+INFO - NPU TOTAL cycles: 1081634
 ```
 
 - For the MPS3 platform, the time duration in milliseconds is also reported when `-DCPU_PROFILE_ENABLED=1` is added to
   CMake configuration command, like so:
 
 ```log
-    Active NPU cycles: 5629033
-    Idle NPU cycles:   1005276
-    Active CPU cycles: 993553 (approx)
-    Time in ms:        210
+INFO - Profile for Inference:
+INFO - NPU AXI0_RD_DATA_BEAT_RECEIVED beats: 628122
+INFO - NPU AXI0_WR_DATA_BEAT_WRITTEN beats: 135087
+INFO - NPU AXI1_RD_DATA_BEAT_RECEIVED beats: 62870
+INFO - NPU ACTIVE cycles: 1081007
+INFO - NPU IDLE cycles: 626
+INFO - NPU TOTAL cycles: 1081634
+INFO - CPU ACTIVE cycles (approx): 993553
+INFO - Time ms: 210
 ```
 
 The next section of the documentation refers to: [Memory Considerations](memory_considerations.md).
diff --git a/docs/use_cases/ad.md b/docs/use_cases/ad.md
index 58272db..1a16a83 100644
--- a/docs/use_cases/ad.md
+++ b/docs/use_cases/ad.md
@@ -10,8 +10,8 @@
     - [Build process](#build-process)
     - [Add custom input](#add-custom-input)
     - [Add custom model](#add-custom-model)
-  - [Setting-up and running Ethos-U55 Code Sample](#setting-up-and-running-ethos-u55-code-sample)
-    - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+  - [Setting-up and running Ethos-U55 Code Sample](#setting-up-and-running-ethos-u-npu-code-sample)
+    - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
     - [Starting Fast Model simulation](#starting-fast-model-simulation)
     - [Running Anomaly Detection](#running-anomaly-detection)
 
@@ -65,12 +65,12 @@
 - `ad_MODEL_TFLITE_PATH` - Path to the NN model file in the `TFLite` format. The model is then processed and included in
   the application `axf` file. The default value points to one of the delivered set of models.
 
-    Note that the parameters `ad_LABELS_TXT_FILE`, `TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with the
+    Note that the parameters `ad_LABELS_TXT_FILE`, `TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with the
     chosen model. In other words:
 
-  - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+  - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
     falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
-  - if `ETHOS_U55_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
+  - if `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
     model in this case results in a runtime error.
 
 - `ad_FILE_PATH`: Path to the directory containing audio files, or a path to single WAV file, to be used in the
@@ -134,6 +134,7 @@
 - [Using Arm Compiler](../sections/building.md#using-arm-compiler)
 - [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
 - [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
 
 > **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and then
 > re-run the CMake command.
@@ -222,7 +223,7 @@
 
 The application performs inference using the model pointed to by the CMake parameter ``ad_MODEL_TFLITE_PATH``.
 
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
 > through the Vela compiler *before* continuing. Please refer to this section for more help:
 > [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
 
@@ -257,13 +258,13 @@
 
 ## Setting-up and running Ethos-U55 Code Sample
 
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
 
 The FVP is available publicly from
 [Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
 
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
 
 To install the FVP:
 
@@ -272,7 +273,7 @@
 - Run the install script in the extracted package:
 
 ```commandline
-.FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
 ```
 
 - Follow the instructions to install the FVP to the required location.
@@ -409,7 +410,7 @@
 
 The profiling section of the log shows that for each inference. For the last inference, the profiling reports:
 
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
 
   - 1,081,634 total cycle: The number of NPU cycles
 
@@ -418,12 +419,12 @@
   - 626 idle cycles: number of cycles for which the NPU was idle
 
   - 628,122 AXI0 read beats: The number of AXI beats with read transactions from AXI0 bus. AXI0 is the bus where
-    Ethos-U55 NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+    *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
 
   - 135,087 AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.
 
   - 62,870 AXI1 read beats: The number of AXI beats with read transactions from AXI1 bus. AXI1 is the bus where
-    Ethos-U55 NPU reads the model. So, read-only.
+   *Ethos-U* NPU reads the model. So, read-only.
 
 - For FPGA platforms, a CPU cycle count can also be enabled. However, do not use cycle counters for FVP, as the CPU
   model is not cycle-approximate or cycle-accurate.
diff --git a/docs/use_cases/asr.md b/docs/use_cases/asr.md
index 162d9e9..fb62afa 100644
--- a/docs/use_cases/asr.md
+++ b/docs/use_cases/asr.md
@@ -10,8 +10,8 @@
     - [Build process](#build-process)
     - [Add custom input](#add-custom-input)
     - [Add custom model](#add-custom-model)
-  - [Setting-up and running Ethos-U55 Code Samples](#setting-up-and-running-ethos-u55-code-samples)
-    - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+  - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+    - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
     - [Starting Fast Model simulation](#starting-fast-model-simulation)
     - [Running Automatic Speech Recognition](#running-automatic-speech-recognition)
 
@@ -110,11 +110,11 @@
 
 - `asr_MODEL_TFLITE_PATH` - The path to the NN model file in `TFLite` format. The model is processed and then included
   into the application `axf` file. The default value points to one of the delivered set of models. Note that the
-  parameters `asr_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with the chosen model. In
+  parameters `asr_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with the chosen model. In
   other words:
-  - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+  - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
     falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
-  - If `ETHOS_U55_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
+  - If `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
     optimized model in this case results in a runtime error.
 
 - `asr_FILE_PATH`: The path to the directory containing audio files, or a path to single WAV file, to be used in the
@@ -181,6 +181,7 @@
 - [Using Arm Compiler](../sections/building.md#using-arm-compiler)
 - [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
 - [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
 
 > **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
 > the CMake command.
@@ -271,7 +272,7 @@
 
 The application performs inference using the model pointed to by the CMake parameter `MODEL_TFLITE_PATH`.
 
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
 > through the Vela compiler *before* continuing.
 
 For further information: [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
@@ -316,15 +317,15 @@
 
 After compiling, your custom model has now replaced the default one in the application.
 
-## Setting-up and running Ethos-U55 Code Samples
+## Setting up and running Ethos-U NPU code sample
 
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
 
 The FVP is available publicly from
 [Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
 
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
 
 To install the FVP:
 
@@ -333,7 +334,7 @@
 - Run the install script in the extracted package:
 
 ```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
 ```
 
 - Follow the instructions to install the FVP to the required location.
@@ -462,7 +463,7 @@
 
 The profiling section of the log shows that for the first inference:
 
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
 
   - 28,451,172 total cycle: The number of NPU cycles.
 
@@ -471,7 +472,7 @@
   - 476 idle cycles: The number of cycles for which the NPU was idle.
 
   - 6,564,262 AXI0 read beats: The number of AXI beats with read transactions from the AXI0 bus. AXI0 is the bus where
-    the *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+    - the *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
 
   - 928,889 AXI0 write beats: The number of AXI beats with write transactions to the AXI0 bus.
 
diff --git a/docs/use_cases/img_class.md b/docs/use_cases/img_class.md
index 237a972..9423a4e 100644
--- a/docs/use_cases/img_class.md
+++ b/docs/use_cases/img_class.md
@@ -8,8 +8,8 @@
     - [Build process](#build-process)
     - [Add custom input](#add-custom-input)
     - [Add custom model](#add-custom-model)
-  - [Setting up and running Ethos-U55 code sample](#setting-up-and-running-ethos-u55-code-sample)
-    - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+  - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+    - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
     - [Starting Fast Model simulation](#starting-fast-model-simulation)
     - [Running Image Classification](#running-image-classification)
 
@@ -36,12 +36,12 @@
 - `img_class_MODEL_TFLITE_PATH` - The path to the NN model file in the `TFLite` format. The model is then processed and
   included in the application `axf` file. The default value points to one of the delivered set of models.
 
-    Note that the parameters `img_class_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with
+    Note that the parameters `img_class_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with
     the chosen model. In other words:
 
-  - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+  - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
     falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
-  - if `ETHOS_U55_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
+  - if `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
     model in this case results in a runtime error.
 
 - `img_class_FILE_PATH`: The path to the directory containing the images, or a path to a single image file, that is to
@@ -100,6 +100,7 @@
 - [Using Arm Compiler](../sections/building.md#using-arm-compiler)
 - [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
 - [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
 
 > **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
 > the CMake command.
@@ -193,7 +194,7 @@
 
 The application performs inference using the model pointed to by the CMake parameter `MODEL_TFLITE_PATH`.
 
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
 > through the Vela compiler *before* continuing.
 
 For further information: [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
@@ -238,15 +239,15 @@
 
 After compiling, your custom model has now replaced the default one in the application.
 
-## Setting up and running Ethos-U55 code sample
+## Setting up and running Ethos-U NPU code sample
 
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
 
 The FVP is available publicly from
 [Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
 
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
 
 To install the FVP:
 
@@ -255,7 +256,7 @@
 - Run the install script in the extracted package:
 
 ```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
 ```
 
 - Follow the instructions to install the FVP to the required location.
@@ -384,7 +385,7 @@
 
 The profiling section of the log shows that for this inference:
 
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
 
   - 7,490,172 total cycle: The number of NPU cycles.
 
@@ -393,12 +394,12 @@
   - 914 idle cycles: The number of cycles for which the NPU was idle.
 
   - 2,489,726 AXI0 read beats: The number of AXI beats with read transactions from AXI0 bus. AXI0 is the bus where the
-    *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+    *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
 
   - 1,098,726 AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.
 
   - 471,129 AXI1 read beats: The number of AXI beats with read transactions from AXI1 bus. AXI1 is the bus where the
-    *Ethos-U55* NPU reads the model. So, read-only.
+    *Ethos-U* NPU reads the model. So, read-only.
 
 - For FPGA platforms, a CPU cycle count can also be enabled. However, do not use cycle counters for FVP, as the CPU
   model is not cycle-approximate or cycle-accurate
diff --git a/docs/use_cases/inference_runner.md b/docs/use_cases/inference_runner.md
index 975d56b..bd19840 100644
--- a/docs/use_cases/inference_runner.md
+++ b/docs/use_cases/inference_runner.md
@@ -7,8 +7,8 @@
     - [Build options](#build-options)
     - [Build process](#build-process)
     - [Add custom model](#add-custom-model)
-  - [Setting up and running Ethos-U55 code sample](#setting-up-and-running-ethos-u55-code-sample)
-    - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+  - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+    - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
     - [Starting Fast Model simulation](#starting-fast-model-simulation)
     - [Running Inference Runner](#running-inference-runner)
 
@@ -44,12 +44,12 @@
 - `inference_runner_MODEL_TFLITE_PATH` - The path to the NN model file in the `TFLite` format. The model is then
   processed and included in the application `axf` file. The default value points to one of the delivered set of models.
 
-  Note that the parameters `TARGET_PLATFORM` and `ETHOS_U55_ENABLED` must be aligned with the chosen model. In other
+  Note that the parameters `TARGET_PLATFORM` and `ETHOS_U_NPU_ENABLED` must be aligned with the chosen model. In other
   words:
 
-  - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+  - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
     falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
-  - if `ETHOS_U55_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
+  - if `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, the NN model is assumed to be unoptimized. Supplying an optimized
     model in this case results in a runtime error.
 
 - `inference_runner_ACTIVATION_BUF_SZ`: The intermediate, or activation, buffer size reserved for the NN model. By
@@ -92,6 +92,7 @@
 - [Using Arm Compiler](../sections/building.md#using-arm-compiler)
 - [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
 - [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
 
 > **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
 > the CMake command.
@@ -137,7 +138,7 @@
 The application performs inference using the model pointed to by the CMake parameter
 `inference_runner_MODEL_TFLITE_PATH`.
 
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
 > through the Vela compiler *before* continuing.
 
 For further information: [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
@@ -170,15 +171,15 @@
 
 After compiling, your custom model has now replaced the default one in the application.
 
-## Setting up and running Ethos-U55 code sample
+## Setting up and running Ethos-U NPU code sample
 
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
 
 The FVP is available publicly from
 [Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
 
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is currently only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
 
 To install the FVP:
 
@@ -187,7 +188,7 @@
 - Run the install script in the extracted package:
 
 ```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
 ```
 
 - Follow the instructions to install the FVP to the required location.
@@ -238,7 +239,7 @@
 After running an inference on randomly generated data, the output of the log shows the profiling results that for this
 inference. For example:
 
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
 
   - 34,178 total cycle: The number of NPU cycles.
 
@@ -247,12 +248,12 @@
   - 1,033 idle cycles: The number of cycles for which the NPU was idle.
 
   - 9,332 AXI0 read beats: The number of AXI beats with read transactions from AXI0 bus. AXI0 is the bus where the
-    *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+    *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
 
   - 3,248 AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.
 
   - 2,219 AXI1 read beats: The number of AXI beats with read transactions from AXI1 bus. AXI1 is the bus where the
-    *Ethos-U55* NPU reads the model. So, read-only.
+    *Ethos-U* NPU reads the model. So, read-only.
 
 - For FPGA platforms, a CPU cycle count can also be enabled. However, do not use cycle counters for FVP, as the CPU
   model is not cycle-approximate or cycle-accurate.
diff --git a/docs/use_cases/kws.md b/docs/use_cases/kws.md
index a6daadb..5839947 100644
--- a/docs/use_cases/kws.md
+++ b/docs/use_cases/kws.md
@@ -10,8 +10,8 @@
     - [Build process](#build-process)
     - [Add custom input](#add-custom-input)
     - [Add custom model](#add-custom-model)
-  - [Setting up and running Ethos-U55 code sample](#setting-up-and-running-ethos-u55-code-sample)
-    - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+  - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+    - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
     - [Starting Fast Model simulation](#starting-fast-model-simulation)
     - [Running Keyword Spotting](#running-keyword-spotting)
 
@@ -78,11 +78,11 @@
 
 - `kws_MODEL_TFLITE_PATH` - The path to the NN model file in `TFLite` format. The model is processed and then included
   into the application `axf` file. The default value points to one of the delivered set of models. Note that the
-  parameters `kws_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with the chosen model. In
+  parameters `kws_LABELS_TXT_FILE`,`TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with the chosen model. In
   other words:
-  - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+  - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
     falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
-  - If `ETHOS_U55_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
+  - If `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
     optimized model in this case results in a runtime error.
 
 - `kws_FILE_PATH`: The path to the directory containing audio files, or a path to single WAV file, to be used in the
@@ -149,6 +149,7 @@
 - [Using Arm Compiler](../sections/building.md#using-arm-compiler)
 - [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
 - [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
 
 > **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
 > the CMake command.
@@ -239,7 +240,7 @@
 
 The application performs inference using the model pointed to by the CMake parameter `kws_MODEL_TFLITE_PATH`.
 
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
 > through the Vela compiler *before* continuing.
 
 For further information: [Optimize model with Vela compiler](../sections/building.md#Optimize-custom-model-with-Vela-compiler).
@@ -283,15 +284,15 @@
 
 After compiling, your custom model has now replaced the default one in the application.
 
-## Setting up and running Ethos-U55 code sample
+## Setting up and running Ethos-U NPU code sample
 
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
 
 The FVP is available publicly from
 [Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
 
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
+and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
 
 To install the FVP:
 
@@ -300,7 +301,7 @@
 - Run the install script in the extracted package:
 
 ```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
 ```
 
 - Follow the instructions to install the FVP to the required location.
@@ -423,7 +424,7 @@
 
 The profiling section of the log shows that for this inference:
 
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
 
   - 681,172 total cycle: The number of NPU cycles.
 
@@ -432,12 +433,12 @@
   - 561 idle cycles: The number of cycles for which the NPU was idle.
 
   - 217,385 AXI0 read beats: The number of AXI beats with read transactions from the AXI0 bus. AXI0 is the bus where the
-    *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+    *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
 
   - 82,607 write cycles: The number of AXI beats with write transactions to AXI0 bus.
 
   - 59,608 AXI1 read beats: The number of AXI beats with read transactions from the AXI1 bus. AXI1 is the bus where the
-    *Ethos-U55* NPU reads the model. So, read-only.
+    *Ethos-U* NPU reads the model. So, read-only.
 
 - For FPGA platforms, a CPU cycle count can also be enabled. However, do not use cycle counters for FVP, as the CPU
   model is not cycle-approximate or cycle-accurate.
diff --git a/docs/use_cases/kws_asr.md b/docs/use_cases/kws_asr.md
index 52d66ab..51d1840 100644
--- a/docs/use_cases/kws_asr.md
+++ b/docs/use_cases/kws_asr.md
@@ -12,8 +12,8 @@
     - [Build process](#build-process)
     - [Add custom input](#add-custom-input)
     - [Add custom model](#add-custom-model)
-  - [Setting-up and running Ethos-U55 Code Samples](#setting-up-and-running-ethos-u55-code-samples)
-    - [Setting up the Ethos-U55 Fast Model](#setting-up-the-ethos-u55-fast-model)
+  - [Setting up and running Ethos-U NPU code sample](#setting-up-and-running-ethos-u-npu-code-sample)
+    - [Setting up the Ethos-U Fast Model](#setting-up-the-ethos-u-fast-model)
     - [Starting Fast Model simulation](#starting-fast-model-simulation)
     - [Running Keyword Spotting and Automatic Speech Recognition](#running-keyword-spotting-and-automatic-speech-recognition)
 
@@ -166,11 +166,11 @@
 - `kws_asr_MODEL_TFLITE_PATH_ASR` and `kws_asr_MODEL_TFLITE_PATH_KWS`: The path to the NN model file in `TFLite` format.
     The model is processed and then included into the application `axf` file. The default value points to one of the
     delivered set of models. Note that the parameters `kws_asr_LABELS_TXT_FILE_KWS`,
-    `kws_asr_LABELS_TXT_FILE_ASR`,`TARGET_PLATFORM`, and `ETHOS_U55_ENABLED` must be aligned with the chosen model. In
+    `kws_asr_LABELS_TXT_FILE_ASR`,`TARGET_PLATFORM`, and `ETHOS_U_NPU_ENABLED` must be aligned with the chosen model. In
     other words:
-  - If `ETHOS_U55_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
+  - If `ETHOS_U_NPU_ENABLED` is set to `On` or `1`, then the NN model is assumed to be optimized. The model naturally
     falls back to the Arm® *Cortex®-M* CPU if an unoptimized model is supplied.
-  - If `ETHOS_U55_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
+  - If `ETHOS_U_NPU_ENABLED` is set to `Off` or `0`, then the NN model is assumed to be unoptimized. Supplying an
     optimized model in this case results in a runtime error.
 
 - `kws_asr_FILE_PATH`: The path to the directory containing audio files, or a path to single WAV file, to be used in the
@@ -242,6 +242,7 @@
 - [Using Arm Compiler](../sections/building.md#using-arm-compiler)
 - [Configuring the build for simple_platform](../sections/building.md#configuring-the-build-for-simple_platform)
 - [Working with model debugger from Arm Fast Model Tools](../sections/building.md#working-with-model-debugger-from-arm-fast-model-tools)
+- [Building for different Ethos-U NPU variants](../sections/building.md#building-for-different-ethos-u-npu-variants)
 
 > **Note:** If re-building with changed parameters values, we recommend that you clean the build directory and re-run
 > the CMake command.
@@ -328,7 +329,7 @@
 This section assumes you want to change the existing ASR model to a custom one. If, instead, you want to change the KWS
 model, then the instructions are the same. Except ASR changes to KWS.
 
-> **Note:** If you want to run the model using an *Ethos-U55*, ensure that your custom model has been successfully run
+> **Note:** If you want to run the model using an *Ethos-U*, ensure that your custom model has been successfully run
 > through the Vela compiler *before* continuing.
 
 For further information:
@@ -374,15 +375,14 @@
 
 After compiling, your custom model has now replaced the default one in the application.
 
-## Setting-up and running Ethos-U55 Code Samples
+## Setting up and running Ethos-U NPU code sample
 
-### Setting up the Ethos-U55 Fast Model
+### Setting up the Ethos-U Fast Model
 
 The FVP is available publicly from
 [Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
 
-For the *Ethos-U55* evaluation, please download the MPS3 version of the Arm® *Corstone™-300* model that contains both
-the *Ethos-U55* and *Cortex-M55*. The model is only supported on Linux-based machines.
+For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*  and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
 
 To install the FVP:
 
@@ -391,7 +391,7 @@
 - Run the install script in the extracted package:
 
 ```commandline
-./FVP_Corstone_SSE-300_Ethos-U55.sh
+./FVP_Corstone_SSE-300.sh
 ```
 
 - Follow the instructions to install the FVP to the required location.
@@ -566,7 +566,7 @@
 
 The profiling section of the log shows that for the ASR inference:
 
-- *Ethos-U55* PMU report:
+- *Ethos-U* PMU report:
 
   - 28,910,172 total cycle: The number of NPU cycles.
 
@@ -575,7 +575,7 @@
   - 863 idle cycles: The number of cycles for which the NPU was idle.
 
   - 13,520,864 AXI0 read beats: The number of AXI beats with read transactions from the AXI0 bus. AXI0 is the bus where
-    the *Ethos-U55* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
+    the *Ethos-U* NPU reads and writes to the computation buffers, activation buf, or tensor arenas.
 
   - 2,841,970 AXI0 write beats: The number of AXI beats with write transactions to AXI0 bus.
 
diff --git a/scripts/cmake/bare-metal-sources.cmake b/scripts/cmake/bare-metal-sources.cmake
index 95950df..d3dad41 100644
--- a/scripts/cmake/bare-metal-sources.cmake
+++ b/scripts/cmake/bare-metal-sources.cmake
@@ -36,10 +36,10 @@
 set(LINKER_SCRIPT_DIR       "${PLAT_HAL}/bsp/mem_layout")
 set(TENSORFLOW_LITE_MICRO_PLATFORM_LIB_NAME  "libtensorflow-microlite.a")
 set(TENSORFLOW_LITE_MICRO_FLAG               "-DTF_LITE_STATIC_MEMORY")
-set(ETHOS_U55_FLAG                           "-DARM_NPU=1")
+set(ETHOS_U_NPU_FLAG                           "-DARM_NPU=1")
 
-if (ETHOS_U55_ENABLED)
-    set(OPTIONAL_FLAGS      "${OPTIONAL_FLAGS} ${ETHOS_U55_FLAG}")
+if (ETHOS_U_NPU_ENABLED)
+    set(OPTIONAL_FLAGS      "${OPTIONAL_FLAGS} ${ETHOS_U_NPU_FLAG}")
 endif ()
 
 # Set specific flags depending on target platform and subsystem
@@ -85,9 +85,9 @@
 # Add link options for the linker script to be used:
 add_linker_script(${LINKER_SCRIPT_DIR} ${LINKER_SCRIPT_NAME})
 
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
     USER_OPTION(TA_CONFIG_FILE "Path to the timing adapter configuration file"
-            "${CMAKE_SCRIPTS_DIR}/ta_config.cmake"
+            "${CMAKE_SCRIPTS_DIR}/timing_adapter/ta_config_u55_high_end.cmake"
             FILEPATH)
 
     # must be included after target subsystem CMake file
diff --git a/scripts/cmake/native-sources.cmake b/scripts/cmake/native-sources.cmake
index dc8f263..2a5b0ae 100644
--- a/scripts/cmake/native-sources.cmake
+++ b/scripts/cmake/native-sources.cmake
@@ -18,11 +18,11 @@
 set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/build_native)
 set(PLAT_HAL ${CMAKE_CURRENT_SOURCE_DIR}/source/application/hal/platforms/native)
 
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
     message(WARNING "EthosU can't be enabled for native builds."
-                    "Use -DETHOS_U55_ENABLED=0 flag for this target platform."
+                    "Use -DETHOS_U_NPU_ENABLED=0 flag for this target platform."
                     "Overriding, disabling use of EthosU...")
-    set(ETHOS_U55_ENABLED OFF)
+    set(ETHOS_U_NPU_ENABLED OFF)
 endif()
 
 if (DEFINED LOG_LEVEL)
diff --git a/scripts/cmake/subsystem-profiles/corstone-sse-300.cmake b/scripts/cmake/subsystem-profiles/corstone-sse-300.cmake
index 8b565fe..c87dd6a 100644
--- a/scripts/cmake/subsystem-profiles/corstone-sse-300.cmake
+++ b/scripts/cmake/subsystem-profiles/corstone-sse-300.cmake
@@ -96,11 +96,11 @@
 set(QSPI_XIP_BASE         "0x41800000" CACHE STRING "QSPI XIP config Base Address ")
 set(QSPI_WRITE_BASE       "0x41801000" CACHE STRING "QSPI write config Base Address ")
 
-if (ETHOS_U55_ENABLED)
-    set(ETHOS_U55_BASE        "0x48102000" CACHE STRING "Ethos-U55 base address")
-    set(ETHOS_U55_TA0_BASE    "0x48103000" CACHE STRING "Ethos-U55's timing adapter 0 base address")
-    set(ETHOS_U55_TA1_BASE    "0x48103200" CACHE STRING "Ethos-U55's timing adapter 1 base address")
-endif (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
+    set(ETHOS_U_NPU_BASE        "0x48102000" CACHE STRING "Ethos-U NPU base address")
+    set(ETHOS_U_NPU_TA0_BASE    "0x48103000" CACHE STRING "Ethos-U NPU's timing adapter 0 base address")
+    set(ETHOS_U_NPU_TA1_BASE    "0x48103200" CACHE STRING "Ethos-U NPU's timing adapter 1 base address")
+endif (ETHOS_U_NPU_ENABLED)
 
 set(MPS3_I2C0_BASE        "0x49200000" CACHE STRING "Touch Screen I2C Base Address ")
 set(MPS3_I2C1_BASE        "0x49201000" CACHE STRING "Audio Interface I2C Base Address ")
@@ -156,11 +156,11 @@
 set(SEC_QSPI_XIP_BASE      "0x51800000" CACHE STRING "QSPI XIP config Base Address ")
 set(SEC_QSPI_WRITE_BASE    "0x51801000" CACHE STRING "QSPI write config Base Address ")
 
-if (ETHOS_U55_ENABLED)
-    set(SEC_ETHOS_U55_BASE     "0x58102000" CACHE STRING "Ethos-U55 base address")
-    set(SEC_ETHOS_U55_TA0_BASE "0x58103000" CACHE STRING "Ethos-U55's timing adapter 0 base address")
-    set(SEC_ETHOS_U55_TA1_BASE "0x58103200" CACHE STRING "Ethos-U55's timing adapter 1 base address")
-endif (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
+    set(SEC_ETHOS_U_NPU_BASE     "0x58102000" CACHE STRING "Ethos-U NPU base address")
+    set(SEC_ETHOS_U_NPU_TA0_BASE "0x58103000" CACHE STRING "Ethos-U NPU's timing adapter 0 base address")
+    set(SEC_ETHOS_U_NPU_TA1_BASE "0x58103200" CACHE STRING "Ethos-U NPU's timing adapter 1 base address")
+endif (ETHOS_U_NPU_ENABLED)
 
 set(SEC_MPS3_I2C0_BASE     "0x58200000" CACHE STRING "Touch Screen I2C Base Address ")
 set(SEC_MPS3_I2C1_BASE     "0x58201000" CACHE STRING "Audio Interface I2C Base Address ")
@@ -243,7 +243,7 @@
 set(SPI3_IRQn                     "54" CACHE STRING " SPI 3 Interrupt (Shield 0)            ")
 set(SPI4_IRQn                     "55" CACHE STRING " SPI 4 Interrupt (Sheild 1)            ")
 
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
 set(EthosU_IRQn                   "56" CACHE STRING " Ethos-U55 Interrupt                  ")
 endif ()
 
diff --git a/scripts/cmake/subsystem-profiles/simple_platform.cmake b/scripts/cmake/subsystem-profiles/simple_platform.cmake
index c5e9d59..69a69b5 100644
--- a/scripts/cmake/subsystem-profiles/simple_platform.cmake
+++ b/scripts/cmake/subsystem-profiles/simple_platform.cmake
@@ -34,18 +34,18 @@
 ###################################################################################################
 set(PL011_UART0_BASE            "0x49303000" CACHE STRING "PL011 UART 0 Base Address")
 
-if (ETHOS_U55_ENABLED)
-    set(ETHOS_U55_BASE          "0x48102000" CACHE STRING "Ethos-U55 base address")
-    set(ETHOS_U55_TA0_BASE      "0x48103000" CACHE STRING "Ethos-U55's timing adapter 0 base address")
-    set(ETHOS_U55_TA1_BASE      "0x48103200" CACHE STRING "Ethos-U55's timing adapter 1 base address")
-    set(SEC_ETHOS_U55_BASE      "0x58102000" CACHE STRING "Ethos-U55 base address")
-    set(SEC_ETHOS_U55_TA0_BASE  "0x58103000" CACHE STRING "Ethos-U55's timing adapter 0 base address")
-    set(SEC_ETHOS_U55_TA1_BASE  "0x58103200" CACHE STRING "Ethos-U55's timing adapter 1 base address")
+if (ETHOS_U_NPU_ENABLED)
+    set(ETHOS_U_NPU_BASE          "0x48102000" CACHE STRING "Ethos-U NPU base address")
+    set(ETHOS_U_NPU_TA0_BASE      "0x48103000" CACHE STRING "Ethos-U NPU's timing adapter 0 base address")
+    set(ETHOS_U_NPU_TA1_BASE      "0x48103200" CACHE STRING "Ethos-U NPU's timing adapter 1 base address")
+    set(SEC_ETHOS_U_NPU_BASE      "0x58102000" CACHE STRING "Ethos-U NPU base address")
+    set(SEC_ETHOS_U_NPU_TA0_BASE  "0x58103000" CACHE STRING "Ethos-U NPU's timing adapter 0 base address")
+    set(SEC_ETHOS_U_NPU_TA1_BASE  "0x58103200" CACHE STRING "Ethos-U NPU's timing adapter 1 base address")
 endif ()
 
 ###################################################################################################
 #                                           IRQ numbers                                           #
 ###################################################################################################
-if (ETHOS_U55_ENABLED)
-    set(EthosU_IRQn             "56"         CACHE STRING "Ethos-U55 Interrupt")
+if (ETHOS_U_NPU_ENABLED)
+    set(EthosU_IRQn             "56"         CACHE STRING "Ethos-U NPU Interrupt")
 endif ()
diff --git a/scripts/cmake/templates/peripheral_memmap.h.template b/scripts/cmake/templates/peripheral_memmap.h.template
index 050d7d7..a8c883c 100644
--- a/scripts/cmake/templates/peripheral_memmap.h.template
+++ b/scripts/cmake/templates/peripheral_memmap.h.template
@@ -67,9 +67,9 @@
 #cmakedefine CMSDK_UART2_BASE         (@CMSDK_UART2_BASE@)       /* UART 2 Base Address */
 #cmakedefine CMSDK_UART3_BASE         (@CMSDK_UART3_BASE@)       /* UART 3 Base Address Shield 0*/
 
-#cmakedefine ETHOS_U55_BASE           (@ETHOS_U55_BASE@)    /* Ethos-U55 base address*/
-#cmakedefine ETHOS_U55_TA0_BASE       (@ETHOS_U55_TA0_BASE@)    /* Ethos-U55's timing adapter 0 base address */
-#cmakedefine ETHOS_U55_TA1_BASE       (@ETHOS_U55_TA1_BASE@)    /* Ethos-U55's timing adapter 1 base address */
+#cmakedefine ETHOS_U_NPU_BASE           (@ETHOS_U_NPU_BASE@)    /* Ethos-U NPU base address*/
+#cmakedefine ETHOS_U_NPU_TA0_BASE       (@ETHOS_U_NPU_TA0_BASE@)    /* Ethos-U NPU's timing adapter 0 base address */
+#cmakedefine ETHOS_U_NPU_TA1_BASE       (@ETHOS_U_NPU_TA1_BASE@)    /* Ethos-U NPU's timing adapter 1 base address */
 
 #cmakedefine CMSDK_UART4_BASE         (@CMSDK_UART4_BASE@)       /* UART 4 Base Address Shield 1*/
 #cmakedefine CMSDK_UART5_BASE         (@CMSDK_UART5_BASE@)       /* UART 5 Base Address */
@@ -140,9 +140,9 @@
 #cmakedefine SEC_SMSC9220_BASE        (@SEC_SMSC9220_BASE@)       /* Ethernet SMSC9220 Base Address */
 #cmakedefine SEC_USB_BASE             (@SEC_USB_BASE@)       /* USB Base Address */
 
-#cmakedefine SEC_ETHOS_U55_BASE       (@SEC_ETHOS_U55_BASE@)   /* Ethos-U55 base address*/
-#cmakedefine SEC_ETHOS_U55_TA0_BASE   (@SEC_ETHOS_U55_TA0_BASE@)   /* Ethos-U55's timing adapter 0 base address */
-#cmakedefine SEC_ETHOS_U55_TA1_BASE   (@SEC_ETHOS_U55_TA1_BASE@)   /* Ethos-U55's timing adapter 1 base address */
+#cmakedefine SEC_ETHOS_U_NPU_BASE       (@SEC_ETHOS_U_NPU_BASE@)   /* Ethos-U NPU base address*/
+#cmakedefine SEC_ETHOS_U_NPU_TA0_BASE   (@SEC_ETHOS_U_NPU_TA0_BASE@)   /* Ethos-U NPU's timing adapter 0 base address */
+#cmakedefine SEC_ETHOS_U_NPU_TA1_BASE   (@SEC_ETHOS_U_NPU_TA1_BASE@)   /* Ethos-U NPU's timing adapter 1 base address */
 
 #cmakedefine SEC_USER_BASE            (@SEC_USER_BASE@)       /* User ? Base Address */
 
diff --git a/scripts/cmake/tensorflow.cmake b/scripts/cmake/tensorflow.cmake
index 1123c7f..d0654b8 100644
--- a/scripts/cmake/tensorflow.cmake
+++ b/scripts/cmake/tensorflow.cmake
@@ -69,7 +69,7 @@
 else()
     set(TENSORFLOW_LITE_MICRO_TARGET "cortex_m_ethos_eval")
     set(TENSORFLOW_LITE_MICRO_TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR}${CPU_FEATURES})
-    if(ETHOS_U55_ENABLED)
+    if(ETHOS_U_NPU_ENABLED)
         # Arm Ethos-U55 NPU is the co-processor for ML workload:
         set(TENSORFLOW_LITE_MICRO_CO_PROCESSOR  "ethos_u")
     endif()
@@ -104,7 +104,7 @@
         TARGET=${TENSORFLOW_LITE_MICRO_TARGET}
         TARGET_ARCH=${TENSORFLOW_LITE_MICRO_TARGET_ARCH}
         BUILD_TYPE=${TENSORFLOW_LITE_MICRO_BUILD_TYPE}
-        ETHOSU_DRIVER_PATH=${ETHOS_U55_DRIVER_SRC_PATH}
+        ETHOSU_DRIVER_PATH=${ETHOS_U_NPU_DRIVER_SRC_PATH}
         CMSIS_PATH=${CMSIS_SRC_PATH}
 
         # Conditional arguments
diff --git a/scripts/cmake/ta_config.cmake b/scripts/cmake/timing_adapter/ta_config_u55_high_end.cmake
similarity index 95%
rename from scripts/cmake/ta_config.cmake
rename to scripts/cmake/timing_adapter/ta_config_u55_high_end.cmake
index 427884c..30e1516 100644
--- a/scripts/cmake/ta_config.cmake
+++ b/scripts/cmake/timing_adapter/ta_config_u55_high_end.cmake
@@ -20,8 +20,8 @@
 # NPU core with two AXIs).
 #----------------------------------------------------------------------------
 
-set(TA0_BASE "${SEC_ETHOS_U55_TA0_BASE}"   CACHE STRING "Timing adapter 0: base-address")
-set(TA1_BASE "${SEC_ETHOS_U55_TA1_BASE}"   CACHE STRING "Timing adapter 1: base-address")
+set(TA0_BASE "${SEC_ETHOS_U_NPU_TA0_BASE}"   CACHE STRING "Timing adapter 0: base-address")
+set(TA1_BASE "${SEC_ETHOS_U_NPU_TA1_BASE}"   CACHE STRING "Timing adapter 1: base-address")
 
 message(STATUS "using TA0_BASE @ ${TA0_BASE}; TA1_BASE @ ${TA1_BASE}.")
 
diff --git a/scripts/cmake/ta_config.cmake b/scripts/cmake/timing_adapter/ta_config_u65_high_end.cmake
similarity index 76%
copy from scripts/cmake/ta_config.cmake
copy to scripts/cmake/timing_adapter/ta_config_u65_high_end.cmake
index 427884c..d1fdc00 100644
--- a/scripts/cmake/ta_config.cmake
+++ b/scripts/cmake/timing_adapter/ta_config_u65_high_end.cmake
@@ -20,14 +20,14 @@
 # NPU core with two AXIs).
 #----------------------------------------------------------------------------
 
-set(TA0_BASE "${SEC_ETHOS_U55_TA0_BASE}"   CACHE STRING "Timing adapter 0: base-address")
-set(TA1_BASE "${SEC_ETHOS_U55_TA1_BASE}"   CACHE STRING "Timing adapter 1: base-address")
+set(TA0_BASE "${SEC_ETHOS_U_NPU_TA0_BASE}"   CACHE STRING "Timing adapter 0: base-address")
+set(TA1_BASE "${SEC_ETHOS_U_NPU_TA1_BASE}"   CACHE STRING "Timing adapter 1: base-address")
 
 message(STATUS "using TA0_BASE @ ${TA0_BASE}; TA1_BASE @ ${TA1_BASE}.")
 
 # Timing adapter settings for AXI0
-set(TA0_MAXR        "8"        CACHE STRING "6-bit field. Max no. of pending reads. 0=infinite")
-set(TA0_MAXW        "8"        CACHE STRING "6-bit field. Max no. of pending writes. 0=infinite")
+set(TA0_MAXR        "16"        CACHE STRING "6-bit field. Max no. of pending reads. 0=infinite")
+set(TA0_MAXW        "16"        CACHE STRING "6-bit field. Max no. of pending writes. 0=infinite")
 set(TA0_MAXRW       "0"        CACHE STRING "6-bit field. Max no. of pending reads+writes. 0=infinite")
 set(TA0_RLATENCY    "32"       CACHE STRING "12-bit field. Minimum latency (clock cycles) from AVALID to RVALID.")
 set(TA0_WLATENCY    "32"       CACHE STRING "12-bit field. Minimum latency (clock cycles) from WVALID&WLAST to BVALID.")
@@ -45,14 +45,14 @@
 set(TA0_HISTCNT     "0"        CACHE STRING "32-bit field. Read/write the selected histogram bin.")
 
 # Timing adapter settings for AXI1
-set(TA1_MAXR        "2"       CACHE STRING "6-bit field. Max no. of pending reads. 0=infinite")
-set(TA1_MAXW        "0"       CACHE STRING "6-bit field. Max no. of pending writes. 0=infinite")
+set(TA1_MAXR        "24"       CACHE STRING "6-bit field. Max no. of pending reads. 0=infinite")
+set(TA1_MAXW        "112"       CACHE STRING "6-bit field. Max no. of pending writes. 0=infinite")
 set(TA1_MAXRW       "0"       CACHE STRING "6-bit field. Max no. of pending reads+writes. 0=infinite")
-set(TA1_RLATENCY    "64"      CACHE STRING "12-bit field. Minimum latency (clock cycles) from AVALID to RVALID.")
-set(TA1_WLATENCY    "0"       CACHE STRING "12-bit field. Minimum latency (clock cycles) from WVALID&WLAST to BVALID.")
-set(TA1_PULSE_ON    "320"     CACHE STRING "No. of cycles addresses let through (0-65535).")
-set(TA1_PULSE_OFF   "80"      CACHE STRING "No. of cycles addresses blocked (0-65535).")
-set(TA1_BWCAP       "50"      CACHE STRING "16-bit field. Max no. of 64-bit words transfered per pulse cycle 0=infinite")
+set(TA1_RLATENCY    "500"      CACHE STRING "12-bit field. Minimum latency (clock cycles) from AVALID to RVALID.")
+set(TA1_WLATENCY    "250"       CACHE STRING "12-bit field. Minimum latency (clock cycles) from WVALID&WLAST to BVALID.")
+set(TA1_PULSE_ON    "4000"     CACHE STRING "No. of cycles addresses let through (0-65535).")
+set(TA1_PULSE_OFF   "1000"      CACHE STRING "No. of cycles addresses blocked (0-65535).")
+set(TA1_BWCAP       "1172"      CACHE STRING "16-bit field. Max no. of 64-bit words transfered per pulse cycle 0=infinite")
 set(TA1_PERFCTRL    "0"       CACHE STRING "6-bit field selecting an event for event counter 0=default")
 set(TA1_PERFCNT     "0"       CACHE STRING "32-bit event counter")
 set(TA1_MODE        "1"       CACHE STRING "Bit 0: 1=enable dynamic clocking to avoid underrun;
diff --git a/scripts/vela/default_vela.ini b/scripts/vela/default_vela.ini
index 327b760..884b057 100644
--- a/scripts/vela/default_vela.ini
+++ b/scripts/vela/default_vela.ini
@@ -34,7 +34,19 @@
 OffChipFlash_burst_length=128
 OffChipFlash_read_latency=64
 OffChipFlash_write_latency=64
-
+; Ethos-U65 High-End: SRAM (16 GB/s) and DRAM (3.75 GB/s)
+[System_Config.Ethos_U65_High_End]
+core_clock=1e9
+axi0_port=Sram
+axi1_port=Dram
+Sram_clock_scale=1.0
+Sram_burst_length=32
+Sram_read_latency=32
+Sram_write_latency=32
+Dram_clock_scale=0.234375
+Dram_burst_length=128
+Dram_read_latency=500
+Dram_write_latency=250
 ; -----------------------------------------------------------------------------
 ; Memory Mode
 
diff --git a/source/application/hal/hal.c b/source/application/hal/hal.c
index 2ce2684..1515697 100644
--- a/source/application/hal/hal.c
+++ b/source/application/hal/hal.c
@@ -24,14 +24,14 @@
 
 #if defined(ARM_NPU)
 
-#include "ethosu_driver.h"              /* Arm Ethos-U55 driver header */
-#include "timing_adapter.h"             /* Arm Ethos-U55 timing adapter driver header */
-#include "timing_adapter_settings.h"    /* Arm Ethos-U55 timing adapter settings */
+#include "ethosu_driver.h"              /* Arm Ethos-U driver header */
+#include "timing_adapter.h"             /* Arm Ethos-U timing adapter driver header */
+#include "timing_adapter_settings.h"    /* Arm Ethos-U timing adapter settings */
 
-extern struct ethosu_driver ethosu_drv; /* Default Ethos-U55 device driver */
+extern struct ethosu_driver ethosu_drv; /* Default Ethos-U device driver */
 
 /**
- * @brief   Initialises the Arm Ethos-U55 NPU
+ * @brief   Initialises the Arm Ethos-U NPU
  * @return  0 if successful, error code otherwise
  **/
 static int arm_npu_init(void);
@@ -95,7 +95,7 @@
 
 #if defined(ARM_NPU)
 
-    /* If Arm Ethos-U55 NPU is to be used, we initialise it here */
+    /* If Arm Ethos-U NPU is to be used, we initialise it here */
     if (0 != (state = arm_npu_init())) {
         return state;
     }
@@ -219,7 +219,7 @@
 {
     int err = 0;
 
-    /* If the platform has timing adapter blocks along with Ethos-U55 core
+    /* If the platform has timing adapter blocks along with Ethos-U core
      * block, initialise them here. */
     if (0 != (err = _arm_npu_timing_adapter_init())) {
         return err;
@@ -228,30 +228,30 @@
     /* Initialise the IRQ */
     arm_npu_irq_init();
 
-    /* Initialise Ethos-U55 device */
-    const void * ethosu_base_address = (void *)(SEC_ETHOS_U55_BASE);
+    /* Initialise Ethos-U device */
+    const void * ethosu_base_address = (void *)(SEC_ETHOS_U_NPU_BASE);
 
     if (0 != (err = ethosu_init(
-                        &ethosu_drv,            /* Ethos-U55 driver device pointer */
-                        ethosu_base_address,    /* Ethos-U55's base address. */
+                        &ethosu_drv,            /* Ethos-U driver device pointer */
+                        ethosu_base_address,    /* Ethos-U NPU's base address. */
                         NULL,                   /* Pointer to fast mem area - NULL for U55. */
                         0,                      /* Fast mem region size. */
                         1,                      /* Security enable. */
                         1))) {                  /* Privilege enable. */
-        printf_err("failed to initalise Ethos-U55 device\n");
+        printf_err("failed to initalise Ethos-U device\n");
         return err;
     }
 
-    info("Ethos-U55 device initialised\n");
+    info("Ethos-U device initialised\n");
 
-    /* Get Ethos-U55 version */
+    /* Get Ethos-U version */
     struct ethosu_version version;
     if (0 != (err = ethosu_get_version(&ethosu_drv, &version))) {
-        printf_err("failed to fetch Ethos-U55 version info\n");
+        printf_err("failed to fetch Ethos-U version info\n");
         return err;
     }
 
-    info("Ethos-U55 version info:\n");
+    info("Ethos-U version info:\n");
     info("\tArch:       v%u.%u.%u\n", version.id.arch_major_rev,
                                     version.id.arch_minor_rev,
                                     version.id.arch_patch_rev);
diff --git a/source/use_case/ad/usecase.cmake b/source/use_case/ad/usecase.cmake
index 4291dad..72683d1 100644
--- a/source/use_case/ad/usecase.cmake
+++ b/source/use_case/ad/usecase.cmake
@@ -60,7 +60,7 @@
         0x00200000
         STRING)
 
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/ad_medium_int8_vela_H128.tflite)
 else()
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/ad_medium_int8.tflite)
diff --git a/source/use_case/asr/usecase.cmake b/source/use_case/asr/usecase.cmake
index 3417c06..21fc80d 100644
--- a/source/use_case/asr/usecase.cmake
+++ b/source/use_case/asr/usecase.cmake
@@ -74,7 +74,7 @@
     0x00400000
     STRING)
 
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/wav2letter_pruned_int8_vela_H128.tflite)
 else()
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/wav2letter_pruned_int8.tflite)
diff --git a/source/use_case/img_class/usecase.cmake b/source/use_case/img_class/usecase.cmake
index 545697d..63a4c2a 100644
--- a/source/use_case/img_class/usecase.cmake
+++ b/source/use_case/img_class/usecase.cmake
@@ -46,7 +46,7 @@
     0x00200000
     STRING)
 
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/mobilenet_v2_1.0_224_quantized_1_default_1_vela_H128.tflite)
 else()
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/mobilenet_v2_1.0_224_quantized_1_default_1.tflite)
diff --git a/source/use_case/inference_runner/usecase.cmake b/source/use_case/inference_runner/usecase.cmake
index d66026f..79bec23 100644
--- a/source/use_case/inference_runner/usecase.cmake
+++ b/source/use_case/inference_runner/usecase.cmake
@@ -21,7 +21,7 @@
 
 generate_default_input_code(${INC_GEN_DIR})
 
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/dnn_s_quantized_vela_H128.tflite)
 else()
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/dnn_s_quantized.tflite)
diff --git a/source/use_case/kws/usecase.cmake b/source/use_case/kws/usecase.cmake
index 560f5a8..6d0ad7e 100644
--- a/source/use_case/kws/usecase.cmake
+++ b/source/use_case/kws/usecase.cmake
@@ -73,7 +73,7 @@
     0x00100000
     STRING)
 
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/ds_cnn_clustered_int8_vela_H128.tflite)
 else()
     set(DEFAULT_MODEL_PATH      ${DEFAULT_MODEL_DIR}/ds_cnn_clustered_int8.tflite)
diff --git a/source/use_case/kws_asr/usecase.cmake b/source/use_case/kws_asr/usecase.cmake
index 8d2d6d1..716a8c8 100644
--- a/source/use_case/kws_asr/usecase.cmake
+++ b/source/use_case/kws_asr/usecase.cmake
@@ -66,7 +66,7 @@
     0.5
     STRING)
 
-if (ETHOS_U55_ENABLED)
+if (ETHOS_U_NPU_ENABLED)
     set(DEFAULT_MODEL_PATH_KWS      ${DEFAULT_MODEL_DIR}/ds_cnn_clustered_int8_vela_H128.tflite)
     set(DEFAULT_MODEL_PATH_ASR      ${DEFAULT_MODEL_DIR}/wav2letter_pruned_int8_vela_H128.tflite)
 else()
