最后我想做的是在 Vivado Design Suite 中使用带有单精度浮点数组的流接口来构建硬件加速器。HLS 用户指南UG902显示可以使用不同的接口创建硬件加速器(从 C、C++、SystemC、OpenCL 代码开始)。
如果您想使用 AXI4 流接口,HLS 会合成 TREADY 和 TVALID 信号,但不会合成将生成的 RTL 接口连接到 Zynq 处理系统(在我的例子中为 ARM9 内核)所需的信号 TLAST。为了解决这个问题,Xilinx 为您提供了使用这个库的可能性
#include "ap_axi_sdata.h"
里面有结构 - 模板:
#include "ap_int.h"
template<int D,int U,int TI,int TD>
struct ap_axis{
ap_int<D> data;
ap_uint<D/8> keep;
ap_uint<D/8> strb;
ap_uint<U> user;
ap_uint<1> last;
ap_uint<TI> id;
ap_uint<TD> dest;
};
我有两个问题:
- 如果我只想使用 TLAST 而不是其他的,我尝试将 U、TI 和 TD 设置为零,但出现错误。
- 如果我想使用 'float' 而不是 'ap_int' 并且我尝试在模板中更改它,我会收到另一个错误。
如何在不遇到这两个问题的情况下处理和管理带有浮点数据的 HLS 中的流接口?