Intel® High Level Synthesis Compiler Standard Edition: Reference Manual

ID 683310
Date 12/18/2019
Public
Document Table of Contents

10.10. Intel® HLS Compiler Standard Edition Component Invocation Interface Arguments

Table 27.   Intel® HLS Compiler Standard Edition Component Invocation Interface Argument Summary
Invocation Argument Description
hls_avalon_streaming_component

This is the default component invocation interface.

The component uses start, busy, stall, and done signals for handshaking.

hls_avalon_slave_component The start, done, and returndata (if applicable) signals are registered in the component slave memory map.
hls_always_run_component The start signal is tied to 1 internally in the component. There is no done signal output.
hls_stall_free_return If the downstream component never stalls, the stall signal is removed by internally setting it to 0.

hls_avalon_streaming_component Argument

Description

This is the default component invocation interface.

This attribute follows the Avalon®-ST protocol for both the function call and the return streams. The component consumes the unstable arguments when the start signal is asserted and the busy signal is deasserted. The component produces the return data when the done signal is asserted.

Top-level module ports
  • Function call:
    • start
    • busy
  • Function return:
    • done
    • stall
Example
component hls_avalon_streaming_component void foo(/*component arguments*/)

hls_avalon_slave_component Argument

Description
The start, done, and returndata (if applicable) signals are registered in the component slave memory map.

These component must take either slave, stream, or stable arguments. If you do not specify these types of arguments, the compiler generates an error message when you compile this component.

To learn more, review the tutorial: <quartus_installdir>/hls/examples/tutorials/interfaces/mm_slaves.

Top-level module ports
  • Avalon-MM slave interface
  • irq_done signal
Example
component hls_avalon_slave_component void foo(/*component arguments*/)

hls_always_run_component Argument

Description
The start signal is tied to 1 internally in the component. There is no done signal output. The control logic is optimized away when Intel® Quartus® Prime compiles the generated RTL for your FPGA.

Use this protocol when the component datapath relies only on explicit streams for data input and output.

IP verification does not support components with this component invocation protocol.

Top-level module ports
None
Example
component hls_always_run_component void foo(/*component arguments*/)

hls_stall_free_return Argument

Description
If the downstream component never stalls, the stall signal is removed by internally setting it to 0.

This feature can be used with the hls_avalon_streaming_component, hls_avalon_slave_component, and hls_always_run_component arguments. This attribute can be used to specify that the downstream component is stall free.

Top-level module ports
N/A
Example
component hls_stall_free_return int dut(int a, int b)
 { return a * b;}