Vivado HLS 生成AXI接口的IP核

1,978 阅读1分钟

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信号不需要改变,直接将输入的赋值给输出的即可: