-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Description
When using ASE for co-simulation with a SYCL-based FPGA application, which binary should be executed?
I successfully started the ASE hardware-side simulator using run-ase.sh:
$ ./ase/run-ase.sh /hls-samples/Tutorials/Features/ac_int ofs_my_board
:::
To compile manually:
/opt/Altera/oneapi/2025.0/compiler/2025.0/bin/icpx -I../../../../../hls-samples/include -fintelfpga -Wall -qactypes -DFPGA_HARDWARE -c ../../../../../hls-samples/Tutorials/Features/ac_int/src/ac_int.cpp -o CMakeFiles/fpga.dir/src/ac_int.cpp.o
To link manually:
/opt/Altera/oneapi/2025.0/compiler/2025.0/bin/icpx -fintelfpga -qactypes -Xshardware -Xstarget=xxx:ofs_my_board -Xsno-env-check -reuse-exe=xxx/ase_sim-my_board-6t1pa9/kernel/ofs_my_board/ac_int.fpga -o ac_int.fpga CMakeFiles/fpga.dir/src/ac_int.cpp.o
:::
[SIM] ASE lock file .ase_ready.pid written in work directory
[SIM] ** ATTENTION : BEFORE running the software application **
[SIM] Set env(ASE_WORKDIR) in terminal where application will run (copy-and-paste) =>
[SIM] $SHELL | Run:
[SIM] ---------+---------------------------------------------------
[SIM] bash/zsh | export ASE_WORKDIR=xxx
[SIM] tcsh/csh | setenv ASE_WORKDIR xxx
[SIM] For any other $SHELL, consult your Linux administrator
[SIM]
[SIM] Ready for simulation...
[SIM] Press CTRL-C to close simulator...
Since the SYCL compiler (oneapi-base-toolkit 2025.0) uses the -Xsno-env-check flag during ASE compilation (visible in compile-kernel.sh), I assumed I could directly run the *.fpga binary.
However, upon doing so, I encountered the following SYCL host exception:
$ cd ase_sim-my_board-6t1pa9/kernel/ofs_my_board
$ export ASE_WORKDIR=xxx
$ export CL_CONTEXT_MPSIM_DEVICE_INTELFPGA=1
$ export INTELFPGA_SIM_DEVICE_SPEC_DIR=ac_int.fpga.prj
$ ./ac_int.fpga
Running on device: SimulatorDevice : Multi-process Simulator (aclmsim0)
Caught a SYCL host exception:
Native API failed. Native API returns: 7 (UR_RESULT_ERROR_INVALID_BINARY)
terminate called after throwing an instance of 'sycl::_V1::exception'
what(): Native API failed. Native API returns: 7 (UR_RESULT_ERROR_INVALID_BINARY)
What is the correct binary to run when performing co-simulation with ASE?
Metadata
Metadata
Assignees
Labels
No labels