一、用HLS生成一个定制IP(加速器)
(1)首先打开vivado hls,本人的版本是2018.2,点击创建一个新工程。
(2)设置工程名和路径,顶层函数设置为add,创建一个新的C++程序,名字叫做adder.cpp,不用在testbench中添加文件。
选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。
(3)在左侧的菜单栏里选择Source->adder.cpp,在里面编写如下代码(这是一个简单的加法器,前面的宏定义是为了让运算并行,详细情况可以参考HLS设计的官方文档。):
void add(int a, int b, int& c) {
#pragma HLS INTERFACE ap_ctrl_none port=return
#pragma HLS INTERFACE s_axilite port=a
#pragma HLS INTERFACE s_axilite port=b
#pragma HLS INTERFACE s_axilite port=c
c = a + b;
}
(4)然后单击下图中图标的下拉框,选择active solutuion ,然后会生成impl文件夹,之后单击solution,选择 export RTL之后生成ip核。
(4)完成之后我们可以在左侧菜单里选择solution1->impl->ip->drivers->add_v1_0->src->xadd_hw.h
二、在vivado中添加ip核
(1)使用第三篇博客中的添加pynq-z2板子步骤添加板子和ip核:
a.打开vivado 2018.2,创建一个工程,选择板子的时候,选boards,在其中选择PYNQ-Z1
b.在左侧导航中选择create block design
c.在工作框中点击加号添加ZYNQ7 Processing System添加到工作面板中,然后点击Run Block Automation
(2)在菜单栏中选择tools->settings->ip->repository,点击加号,选择“第一步的adder”把自己设计的IP添加进来
(3)回到主界面添加ip核
(4)在source栏中右键选择design sources->design_1(design_1.bd)右键选择create HLD wrapper
(5)等wrapper完成之后选择generate bitstream生成bit文件
(6)生成bit文件之后点击file->export->export block design生成tcl文件
三、使用jupyter进行python测试ip
(1)找到 你创建的vivado项目目录\project_1.runs\impl_1中找到design_1_wrapper.bit文件拷贝到vivado项目目录文件夹下
(2)将design_1.tcl文件和design_1_wrapper.bit文件改名为adder.tcl和adder.bit。将他们拷到PYNQ-Z2板子的overlay目录下
(3)在jupyter中写代码,进行测试
参考:
https://blog.csdn.net/bramblewalls/article/details/80045922
http://xilinx.eetrend.com/d6-xilinx/article/2018-11/13925.html