4.1. Component Invocation Interface
- A call interface that consists of start and busy signals. The call interface is sometimes referred to as the do stream.
- A return interface that consists of done and stall signals. The return interface is sometimes referred to as the return stream.
- Return data if the component function has a return type that is not void
Alternatively, by declaring your component as an hls_avalon_agent_component component, your component can have signals registered in the component agent memory map instead. In an hls_avalon_agent_component component, the start, done, and returndata signals appear in the component control and status registers (CSR) instead of as conduits outside of the component.
For a comparison of the invocation interfaces, see Interface Definition Example: Component Invocation Interface Control Attributes.
For an example of a component interface with scalar and pointer arguments, see Interface Definition Example: Component with Both Scalar and Pointer Arguments.
Interfaces and Generated RTL
Component Invocation Interface Control Attributes
You can indicate the control signals that correspond to the actions of calling your component by using one of the component invocation interface attributes.
Unless a component parameter is marked stable (with the hls_stable_argument attribute), the component parameter inputs are synchronized according to this component invocation protocol.
This is the default component invocation interface.
The component uses start, busy, stall, and done signals for handshaking.
|hls_avalon_agent_component||The start, done, and returndata (if applicable) signals appear in the component CSR instead of as conduits outside of the signal.|
|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||The stall signal is removed by internally setting it to 0.
Use this control attribute only if the downstream component never stalls.