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
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.