在 AMD Vitis™ 工具 2022.1 版及更低版本中,内核之间的存储器接口称为窗口。缓冲器端口与窗口端口相似,但具体差异概述如下。缓冲器端口为内核提供了对核存储器块进行操作的途径。
窗口 | 缓冲器 |
---|---|
大小和裕度以字节数为单位。 | 大小和裕度以样本数为单位。 |
大小只能在计算图中使用 connect 语句来定义。 | 大小可在计算图中使用 dimensions 语句来定义,也可在内核特征符中定义为编译时间常量。 |
裕度只能在计算图中使用 connect 语句来定义。 | 裕度只能在内核特征符中定义为编译时间常量。 |
锁定机制在计算图中使用 connect 构造来指定。 | 锁定机制在内核特征符中指定。 |
C++14 足够使用。 | 缓冲器端口使用 C++17 折叠表达式。 |
仅支持循环寻址。 | 默认寻址方法为线性。可设为循环。 |
为便于数据访问,迭代操作与读取或写入 API 的操作直接绑定,例如,window_readincr() 和 window_writeincr() 。 |
支持通过参考指针或迭代器来执行读取或写入操作。 |
仅限一维 | 多维。如果在内核特征符中省略缓冲器维度,则将假设它是一维的。 |
注释: 缓冲器端口大小、窗口大小和裕度大小的限制取决于硬件约束,因此,缓冲器端口与窗口的最小大小方面并无差异。