文档目录

4.1. 组件调用接口

对于每个您标记为component的函数, Intel® HLS Compiler创建相应的RTL模块。此RTL模块必须具有顶层端口或接口,以允许您的整个系统与 HLS组件进行交互。
默认情况下,HLS组件的RTL模块包括以下接口和数据:
  • 调用接口包括startbusy信号。调用接口有时被称为 do stream
  • 返回接口包括donestall信号。返回接口有时被称为return stream
  • 返回数据,在组件函数中有返回类型时就不是void(无类型函数)
下图显示了具有默认调用和返回接口的组件:

或者,通过将组件声明为hls_avalon_agent_component组件,您的组件就可以接收组件代理存储器映射中的信号在组件代理内存映射中注册信号。在hls_avalon_agent_component组件中,startdonereturndata信号出现在组件控制和状态寄存器(CSR)中,而不是作为组件外部的管道中。

关于调用接口的比较,请参阅接口定义实例:组件调用接口控制属性

关于具有标量和指针参数的组件接口的实例,请参阅接口定义实例:具有标量和指针自变量的组件

接口和生成的RTL

组件函数参数会根据其类型生成不同的RTL。有关详细信息,请参阅以下部分:
您也可以明确声明组件接口上的Avalon Streaming接口(使用stream_in<>stream_out<>类)和Memory-Mapped Host(使用mm_host<>类)组件。有关详细信息,请参阅以下部分:

组件调用接口控制属性

您可以使用组件调用接口属性之一来指示与调用组件的操作相对应的控制信号。

除非组件参数被标记为稳定(通过hls_stable_argument属性),根据该组件调用协议,组件参数输入被同步。

表 7.   Intel® HLS Compiler组件调用接口控制属性总结
控制属性 描述
hls_avalon_streaming_component

默认的组件调用接口。

该组件使用startbusystalldone信号进行握手。

hls_avalon_agent_component startdonereturndata(如果适用)信号出现在组件CSR中,而非作为信号外的管道。
hls_always_run_component 在组件内部start信号与1连结。无done信号输出。
hls_stall_free_return 通过内部设置stall信号为0将其移除。

仅当下游组件从不停顿时才使用此控制属性。