Visible to Intel only — GUID: GUID-43BA9749-67A9-4BB4-9C2B-56EE39D92224
Visible to Intel only — GUID: GUID-43BA9749-67A9-4BB4-9C2B-56EE39D92224
Emulate and Debug Your Design
Verify the functionality of your design by compiling your kernel and host code to an x86-64 FPGA emulation executable to run in the Intel® FPGA Emulation Platform for OpenCL™ software. This process is sometimes referred to as debugging through emulation.
Compiling your design to an x86-64 executable is faster than generating and simulating your design in simulation software like Questa*-Intel® FPGA Edition. Shorter compilation time allows you to debug and refine your kernel quickly.
No additional software is required to emulate your kernel, and no modifications to your host code are required.
The Intel FPGA Emulation Platform for OpenCL software (also referred to as the emulator or the FPGA emulator) is installed as part of the Intel® oneAPI Base Toolkit. It assesses the functionality of your kernel. The emulator supports 64-bit Windows and Linux operating systems. On Linux systems, the GNU C Library (glibc) version 2.15 or later is required.
- You cannot use the execution time of an emulated design to estimate its execution time on an FPGA. Furthermore, running an emulated design is not a substitute for natively running a functionally equivalent C/C++ implementation on an x86-64 host.
Emulation does not support cross-compilation to ARM® processors. To run emulation on a design that targets an ARM SoC device, emulate on a non-SoC board (for example, intel_a10gx_pac or intel_s10sx_pac). When satisfied with the emulation results, you can target your design on an SoC board for subsequent optimization steps.
To enable debugging of kernel code, optimizations are disabled by default for the FPGA emulator. This can lead to sub-optimal execution speed when emulating kernel code. You can pass the -g0 flag to the icpx compile command to disable debugging and enable optimizations. This enables faster emulator execution.
When targeting the FPGA emulator device, use the -O2 compiler flag to turn on optimizations and speed up the emulation. To turn off optimizations (for example, to facilitate debugging), pass -O0. With Windows Visual C++ debugger, specify /Od.
- To enable native debuggers to debug your device code, use the following icpx command flags:
- Windows Visual C++ debugger: /DEBUG /Od
- GDB: -g -O0
For information about debugging with Intel® Distribution for GDB*, refer to the following:
Refer to the following topics for additional information: