11-2_基于HLS的加速器Overlay设计实例 - Notebook中调用硬件IP
最后更新于
最后更新于
本章节介绍了IP的接口及for循环语句directive基本方法、在Vivado工程中实例化HLS IP的流程、以及在Jupyter Notebook上对IP的调用方法。
使用基本的HLS directive
在Vivado中实例化HLS IP
Jupyter notebook中调用HLS IP
1.1 打开实验1中的HLS工程,点击 Project > New Solution…;
1.2 默认设置,点击 Finish按钮;
1.3 默认设置,点击 Finish按钮,工程中将会增加一个Solution2;
1.4 双击matrixmul.cpp,在Directive窗口,点击matrixmul后右键,将会出现对函数顶层模块插入Directive的选项;
1.5 点击Directive后,参照如下配置,点击OK;
1.6 使用同样的方法,对参数a、b、res和test添加directive,参照如下配置;
1.7 单击Col后,右键选择Insert Dorective…;
1.8 参照如下配置,点击OK;
1.9 最终的配置结果如下所示;
1.10 所有的directives都保存在了directives.tcl文件中;
1.11 点击 Solution > Run C Synthesis > Active Solution,对solution2进行综合;
1.12 点击工具栏 Export RTL按钮,导出IP;
1.13 弹出对话框作如下配置,点击OK;
1.14 Export报告如下;
1.15 关闭HLS;
2.1 启动 Vivado工具: Start > Xilinx Design Tools > Vivado 2018.2;
2.2 新建Vivado工程;
2.3 一直点击Next按钮;
2.4 选择PYNQ-Z1板;
2.5 将刚刚生成的zip包拷贝到Vivado工程的.ip.user_files后解压缩;
2.6 将.ip.user_files文件夹添加到ip库;
2.7 创建 Block Design;
2.8 添加ZYNQ7 Processing System IP 到Block Design;
2.9 点击Run Block Automation,保持默认配置,点击OK;
2.10 为Zynq Processing System增加HP0口;
2.11 例化Matrixmul到Block Design;
2.12 通过AXI DMA将Matrixmul IP连接到PS侧,最终的Block Design如下图所示;
2.13 创建 HDL Wrapper文件;
2.14 生成Bitstream文件;
2.15 生成Block Design的tcl文件;
2.16 将tcl文件和bitstream文件拷贝到lab2_src/matrixmul目录,并将tcl文件和bitstream文件重命名为matrixmul.tcl和matrixmulbit;
3.1 将笔记本或者PC机的IP地址设置为192.168.2.X
3.2 按如下方式设置好PYNQ-Z1,并将PYNQ-Z1通过网线连接到PC后,然后上电;
3.3 待PYNQ-Z1启动完成后,通过Winscp等sftp工具将包含tcl文件、bitstream文件和ipynb文件的matrixmul文件夹下载到板卡的jupyter_notebooks目录中;
注:用户名与密码均为: xilinx
3.4 打开Chrome或者Firefox等IE浏览器,输入192.168.2.99,密码为:xilinx
3.5 打开matrixmul目录,运行matrixmul.ipynb开始测试,