diff --git a/DirectProgramming/C++SYCL_FPGA/Tutorials/Features/optimization_targets/README.md b/DirectProgramming/C++SYCL_FPGA/Tutorials/Features/optimization_targets/README.md index 8b6eab82a1..e7cdd0984e 100644 --- a/DirectProgramming/C++SYCL_FPGA/Tutorials/Features/optimization_targets/README.md +++ b/DirectProgramming/C++SYCL_FPGA/Tutorials/Features/optimization_targets/README.md @@ -1,13 +1,36 @@ # `Optimization Targets` Sample +This sample is an FPGA tutorial that demonstrates how to set optimization targets for your compile to target different performance metrics. + +This tutorial shows compiling with the minimum latency optimization target to achieve low latency at the cost of reduced fMAX. + +| Area | Description +|:--- |:--- +| What you will learn | How to set optimization targets for your compile.
How to use the minimum latency optimization target to compile low-latency designs.
How to manually override underlying controls set by the minimum latency optimization target. +| Time to complete | 20 minutes +| Category | Concepts and Functionality + +## Purpose + This FPGA tutorial demonstrates how to set optimization targets for your compile to target different performance metrics. -As an example, this tutorial shows compiling with the minimum latency optimization target to achieve low latency at the cost of reduced fMAX. +The `-Xsoptimize=` command-line option sets optimization targets, and it supports the following flag: + +| Flag | Explanation | Documentation +|:--- |:--- |:--- +|`latency` | Minimum latency | [*Minimum Latency Flow*](https://www.intel.com/content/www/us/en/docs/oneapi-fpga-add-on/optimization-guide/current/minimum-latency-flow.html) topic in the *FPGA Optimization Guide for Intel® oneAPI Toolkits Developer Guide*. -| Area | Description -|:--- |:--- -| What you will learn | How to set optimization targets for your compile
How to use the minimum latency optimization target to compile low-latency designs
How to manually override underlying controls set by the minimum latency optimization target -| Time to complete | 20 minutes +To compile your design with the minimum latency optimization target, use the flag option `-Xsoptimize=latency`. + +As an example, this tutorial shows how to use the minimum latency optimization target to compile low-latency designs and how to manually override underlying controls set by the minimum latency optimization target. By default, the minimum latency optimization target tries to achieve lower latency at the cost of decreased fMAX, so it is a good starting point for optimizing latency-sensitive designs. + +## Prerequisites + +| Optimized for | Description +|:--- |:--- +| OS | Ubuntu* 18.04/20.04
RHEL*/CentOS* 8
SUSE* 15
Windows* 10 +| Hardware | Intel® Agilex® 7, Arria® 10, and Stratix® 10 FPGAs +| Software | Intel® oneAPI DPC++/C++ Compiler > **Note**: Even though the Intel DPC++/C++ OneAPI compiler is enough to compile for emulation, generating reports and generating RTL, there are extra software requirements for the simulation flow and FPGA compiles. > @@ -17,16 +40,8 @@ As an example, this tutorial shows compiling with the minimum latency optimizati > - ModelSim® SE > > When using the hardware compile flow, Intel® Quartus® Prime Pro Edition must be installed and accessible through your PATH. -> -> :warning: Make sure you add the device files associated with the FPGA that you are targeting to your Intel® Quartus® Prime installation. - -## Prerequisites -| Optimized for | Description -|:--- |:--- -| OS | Ubuntu* 18.04/20.04
RHEL*/CentOS* 8
SUSE* 15
Windows* 10 -| Hardware | Intel® Agilex® 7, Arria® 10, and Stratix® 10 FPGAs -| Software | Intel® oneAPI DPC++/C++ Compiler +> **Warning**: Make sure you add the device files associated with the FPGA that you are targeting to your Intel® Quartus® Prime installation. This sample is part of the FPGA code samples. It is categorized as a Tier 3 sample that demonstrates a compiler feature. @@ -47,43 +62,30 @@ flowchart LR ``` Find more information about how to navigate this part of the code samples in the [FPGA top-level README.md](/DirectProgramming/C++SYCL_FPGA/README.md). -You can also find more information about [troubleshooting build errors](/DirectProgramming/C++SYCL_FPGA/README.md#troubleshooting), [running the sample on the Intel® DevCloud](/DirectProgramming/C++SYCL_FPGA/README.md#build-and-run-the-samples-on-intel-devcloud-optional), [using Visual Studio Code with the code samples](/DirectProgramming/C++SYCL_FPGA/README.md#use-visual-studio-code-vs-code-optional), [links to selected documentation](/DirectProgramming/C++SYCL_FPGA/README.md#documentation), etc. +You can also find more information about [troubleshooting build errors](/DirectProgramming/C++SYCL_FPGA/README.md#troubleshooting), [running the sample on the Intel® DevCloud](/DirectProgramming/C++SYCL_FPGA/README.md#build-and-run-the-samples-on-intel-devcloud-optional), [using Visual Studio Code with the code samples](/DirectProgramming/C++SYCL_FPGA/README.md#use-visual-studio-code-vs-code-optional), [links to selected documentation](/DirectProgramming/C++SYCL_FPGA/README.md#documentation), and more. -## Purpose - -This FPGA tutorial demonstrates how to set optimization targets for your compile to target different performance metrics. - -The `-Xsoptimize=