以最少量的资源将前一章节中所示的卷积示例实现为高性能设计的关键在于考量在总体系统中使用 FPGA 实现的方式。理想行为是使数据样本持续流经 FPGA。
- 最大限度改善系统内的数据流动。限制使用任何阻碍数据流动的编码方法或算法行为。
- 最大程度提升数据复用。使用本地高速缓存来确保无需重复读取数据,并且传入数据可保持流动。
第一步是确保对进出 FPGA 的 I/O 操作执行最优化。卷积算法在镜像上执行。生成并使用来自镜像的数据时,会按标准光栅扫描方式来传输这些数据,如下图所示。
图 1. 光栅扫描顺序
如果数据从 CPU 或系统存储器传输到 FPGA,那么通常将以此串流方式进行传输。从 FPGA 传回系统的数据同样将以此方式执行传输。