仅对英特尔可见 — GUID: kxo1511996056004
Ixiasoft
3.1.3. Avalon® 存储器映射从接口
根据您的组件, 有时可使用 Avalon® Memory Mapped ( Avalon® MM)从接口优化组件的存储器结构。
分配从存储器时,必须定义其大小。定义大小会限制组件可处理的N值大小。本实例中,RAM为1024个字。RAM的大小代表N最多有1024个字。
可使用 Avalon® MM MM从接口写码向量加法组件实例,如下:
component void vector_add( hls_avalon_slave_memory_argument(1024*sizeof(int)) int* a, hls_avalon_slave_memory_argument(1024*sizeof(int)) int* b, hls_avalon_slave_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]; } }
以下图示显示编译该实例时Graph Viewer中生成的Function View。
图 3. 使用 Avalon® MM从接口的vector_add组件的Graph Viewer Function View
通过 Intel® Quartus® Prime编译流程编译 Intel® Arria® 10器件组件得到如下QoR指标:
QoR指标显示,经过将存储器所有权从系统改为组件后,组件使用的ALM数量减少,延迟缩短。组件的fMAX也已增加。 组件使用的RAM块数量更多,因为使用的不是系统而是组件中的存储器。系统中RAM的总使用量(未显示) 应该并未增加,由于RAM的使用从系统换成FPGA RAM块。
QoR指标 | 指针 | Avalon® MM主接口 | Avalon® MM从接口 |
---|---|---|---|
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指标的编译流程采用 Intel® Quartus® Prime Pro Edition 17.1。 |
2 fMAX的大小由计算单个seed得出。 |