Visible to Intel only — GUID: GUID-DE6A2A2A-04D1-4371-AB5D-7655150886C1
Visible to Intel only — GUID: GUID-DE6A2A2A-04D1-4371-AB5D-7655150886C1
Host Pipes IP Authoring Flow
The prototype implementation of host pipes is intended to use a two-part compilation flow to generate your IP. To simulate your IP using a SYCL* program testbench, compile your full SYCL* program as follows:
icpx -fsycl -fintelfpga -Xssimulation -Xstarget=<FPGA device family or part number> <source.cpp>
The simulation flow uses additional “helper” kernels to connect the host pipes from each kernel to the host part of the program. In the reports generated by the compiler, you can identify your IP by the name you have given it in your SYCL* program.
When you have verified the functionality of your IP component kernel, generate RTL for your IP with a compile command that includes the -fsycl-device-code-split=pre_kernel option. This option generates a separate project directory in your current working directory for each of your IPs, and directories for the “helper” kernels that you can ignore.
icpx -fsycl -fintelfpga -Xshardware -fsycl-device-code-split=per_kernel -Xstarget=<FPGA device family or part number> <source.cpp>
This commands puts each kernel into its own project directory. The first project directory has a prj extension and additional project directories have a numbered extension, .prj_<#>, where <#> is an incrementing integer. For example, when compiling a source program named main that contains three kernels, the generated project directories are named main.prj, main_1.prj, main_2.prj.
To identify your IP components from the command output, look for the .prj_<X> directories that contain a *_di_inst.v file where the interfaces match your IP component. You can ignore the other .prj_<X> folders.