Intel® High Level Synthesis Compiler Standard Edition: Reference Manual

ID 683310
Date 12/18/2019
Public
Document Table of Contents

2.3. Compiler Interoperability

The Intel® High Level Synthesis Compiler is compatible with x86-64 object code compiled by supported versions of GCC or Microsoft Visual Studio. You can compile your testbench code with GCC or Microsoft Visual Studio, but generating RTL and cosimulation support for your component always requires the Intel® HLS Compiler.

To see what versions of GCC and Microsoft Visual Studio the Intel® HLS Compiler Standard Edition supports, see " Intel® High Level Synthesis Compiler Prerequisites" in Intel® High Level Synthesis Compiler Standard Edition Getting Started Guide.

The interoperability between GCC or Microsoft Visual Studio, and the Intel® HLS Compiler lets you decouple your testbench development from your component development. Decoupling your testbench development can be useful for situations where you want to iterate your testbench quickly with platform-native compilers (GCC/Microsoft Visual Studio), without having to recompile the RTL generated for your component.

With Microsoft Visual Studio, you can compile only code that does not explicitly use the Avalon® -Streaming interface.

To create only your testbench executable with the i++ command, specify the --x86-only option.

You can choose to only generate RTL and cosimulation support for your component by linking the object file or files for your component with the Intel® High Level Synthesis Compiler.

To generate only your RTL and cosimulation support for your component, specify the --fpga-only option.

To use a native compiler (GCC or Microsoft Visual Studio) to compile your Intel® HLS Compiler code, you must point the native compiler to Intel® HLS Compiler resources and libraries. The Intel® HLS Compiler example designs contain build scripts (Makefile for Linux and build.bat for Windows) that you can use as examples of the required configuration. These scripts locate the Intel® HLS Compiler installation, so you do not need to hard-code the locations in your build scripts.