Knowledge Base Article

Why does the Intel® HLS compiler crash when the explicitly requested Load-Store Units (LSUs) is used within a 3-deep nest?

Description

Due to a problem in the Intel® High Level Synthesis Compiler version 20.1 and earlier, you may see the fatal error message below when you run the make files. This is because the Intel HLS compiler will crash if the variable-latency master is accessed using an explicitly requested Load-Store Units (LSUs) in the 3-deep loop nest.

Stack dump:

/lib64/libc.so.6(__libc_start_main 0x100)[0x7f6e050d6d20]

/<quartus_install_directory>/../../llvm/bin/aocl-opt( 0x2b701)[0x7f6e0cc47701]

HLS Main Optimizer FAILED.

make: *** [dut] ƒGƒ‰ [ 1

Resolution

To workaround the problem, add the keyword “volatile” to the function argument. For example:

void
function <name>(hls_stable_argument <name> <argument>,                   

                                const volatile  *<nested_argument>, // “volatile” added here)

{ … }

This problem is fixed starting with the Intel® High Level Synthesis Compiler version 20.2.

Updated 3 months ago
Version 2.0
No CommentsBe the first to comment