Article ID: 000080950 Content Type: Troubleshooting Last Reviewed: 05/22/2020

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

Environment

    Intel® Quartus® Prime Pro Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
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.

Related Products

This article applies to 1 products

Intel® Programmable Devices

1