from:ZedBoard--(6)利用Vivado HLS生成AXI接口的IP核
- 新建工程
- 源文件中添加ap_int.h
#include "ap_int.h"
源文件中定义结构体如下:
template <int D>
struct axis
{
ap_int <D> data;
ap_uint <D/8> keep;
ap_uint <1> last;
axis<D>& operator=(const axis<D>& ax)
{
data = ax.data;
keep = ax.keep;
last = ax.last;
return *this;
}
};
函数参数列表添加如下两个参数:
axis<32> *o_MM2S_AXIS, axis<32> i_S2MM_AXIS
这两个参数分别代表输出到IP核之外的数据,以及其他模块输入到IP核的数据。
向外发送数据可以通过写入o_MM2S_AXIS->data实现;输入的数据可以通过访问i_S2MM_AXIS.data获得。如果没有特殊需要,keep和last信号不需要改变,直接将输入的赋值给输出的即可: