Intel®高层次综合编译器专业版: 最佳实践指南

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

4.1.3. Avalon® 存储器映射从存储器(Agent Memories )

根据您的组件,有时可将组件参数放置于 Avalon® Memory Mapped ( Avalon® MM)从接口中以优化组件的存储器结构。

Agent存储器属于组件,并且对MM Host公开以便其进行读取和写入。

分配从存储器(agent memory)时,必须定义其大小。定义大小会限制组件可处理的N值大小。本实例中,RAM为1024个字。RAM的大小代表N最多有1024个字。

可使用 Avalon® MM从接口对向量加法组件实例写码,具体如下:
component void vector_add(
     hls_avalon_agent_memory_argument(1024*sizeof(int)) int* a,
     hls_avalon_agent_memory_argument(1024*sizeof(int)) int* b,
     hls_avalon_agent_memory_argument(1024*sizeof(int)) int* c,
     int N) {
  #pragma unroll 8
  for (int i = 0; i < N; ++i) {
    c[i] = a[i] + b[i];
  }
}
下图显示编译该设计时System Viewer中生成的Function View。
图 26. 使用 Avalon® MM Agent接口的vector_add组件的System Viewer Function View


通过英特尔 Quartus Prime编译流程编译 Intel® Arria® 10器件组件得到如下QoR指标:
表 4.   Avalon® MM Agent接口1的QoR指标比较
QoR指标 指针 Avalon® MM Host Avalon® MM Agent
ALMs 15593.5 643 490.5
DSPs 0 0 0
RAMs 30 0 48
fMAX (MHz)2 298.6 472.37 498.26
Latency (周期) 24071 142 139
Initiation Interval (II) (周期) ~508 1 1
1用于计算QoR指标的编译流程采用英特尔 Quartus Prime Pro Edition 17.1。
2 fMAX的大小由计算单个seed得出。
QoR指标显示,经过将存储器所有权从系统改为组件后,组件使用的ALM数量减少,延迟缩短。组件的fMAX也已增加。组件使用的RAM块数量更多,因为使用的不是系统而是组件中的存储器。系统中RAM的总使用量(未显示) 应该并未增加,由于RAM的使用从系统换成FPGA RAM块。