Intel® 高层次综合编译器专业版Pro版: 参考手册

ID 683349
日期 12/04/2023
Public
文档目录

13.12. Intel® HLS Compiler Pro版组件宏

表 48.   Intel® HLS Compiler组件宏总结
描述
hls_avalon_agent_register_argument 将参数实现为可以通过 Avalon® 存储器映射(MM)agent接口读取和写入的寄存器。
hls_avalon_agent_memory_argument 在片上存储器块中实现该参数,可以通过专用agent接口读取或写入。
hls_conduit_argument 将该参数实现为与组件调用(启动和忙碌)同步的输入管道。
hls_readwrite_mode 向编译器指示代理存储器接口如何被外部 Avalon® 存储器映射(MM)主机访问。
hls_stable_argument 稳定参数是指在组件中存在实时数据时不会改变的参数(即,参数在流水线函数调用之间不会改变)。

hls_avalon_agent_register_argument组件宏

句法
hls_avalon_agent_register_argument
描述
编译器将参数实现为一个寄存器,可以通过Avalon MM代理接口读取和写入该寄存器。该参数将被读入组件管道,类似于管道实现。该实现与启动和忙碌接口同步。

组件数据路径对此参数的值所做的更改不会反映在此寄存器上。

要了解更多信息,请查看教程: <quartus_installdir>/hls/examples/tutorials/interfaces/mm_agents

实例
component void foo( 
  hls_avalon_agent_register_argument int b)

hls_avalon_agent_memory_argument组件宏

句法
hls_avalon_agent_memory_argument(N)
描述
编译器实现该参数,其中N指定存储器的大小(以字节为单位),在片上存储器块中,可通过专用agent接口从其读取或向其写入。生成的存储器具有与所有其他内部组件存储器相同的架构优化(例如banking或coalescing)。

如果编译器执行静态合并(coalescing)优化,则agent接口数据宽度为合并后的宽度。此属性仅适用于指针参数。

要了解更多信息,请查看教程: <quartus_installdir>/hls/examples/tutorials/interfaces/mm_agents

实例
component void foo(
   hls_avalon_agent_memory_argument(128*sizeof(int)) int *a)

hls_conduit_argument组件宏

句法
hls_conduit_argument
描述

标量参数的默认接口。

编译器将该参数实现为与组件调用(启动和忙碌)同步的输入管道。

实例
component void foo(hls_conduit_argument int b)

hls_readwrite_mode组件宏

句法
hls_readwrite_mode("type")
描述
此宏仅适用于agent存储器接口。

向编译器指示外部存储器主机如何访问agent存储器接口。此信息有助于编译器构建更高效的存储器系统,并可能为您的组件节省FPGA空间。

type参数可以采用下列任意一个值:
  • readonly

    表示外部 Avalon® 存储器映射(MM)主机接口仅从agent存储器读取。

  • writeonly

    表示外部 Avalon® Mm主机接口仅 写入agent存储器。

实例
component void 
foo(hls_avalon_agent_memory_argument(128*sizeof(int)) 
hls_readwrite_mode(“writeonly”) int *A)

hls_stable_argument组件宏

句法
hls_stable_argument
描述
稳定参数是指在组件中存在实时数据时不会改变的参数(即,组件参数在流水线化函数调用之间不会改变)。

在组件执行期间更改稳定参数会导致未定义的行为;每次使用稳定参数时,都可能是旧值或新值,但无法保证一致性。同一调用中的相同变量可以出现多个值。

在适当的情况下使用稳定的参数可能会在设计中节省大量寄存器。

稳定参数可以与管道, Avalon® MM主机接口和agent_registers一起使用。

要了解更多信息,请查看教程: <quartus_installdir>/hls/examples/tutorials/interfaces/stable_arguments

实例
component int dut(
   hls_stable_argument int a,
   hls_stable_argument int b) {
 return a * b;}