基于HLS的加速器Overlay设计实例 – Notebook中调用硬件IP

介绍

本章节介绍了IP的接口及for循环语句directive基本方法、在Vivado工程中实例化HLS IP的流程、以及在Jupyter Notebook上对IP的调用方法。

目标

  • 使用基本的HLS directive
  • 在Vivado中实例化HLS IP
  • Jupyter notebook中调用HLS IP

步骤1:创建新的Solution

打开实验1中的HLS工程,创建新的Solution

1.1 打开实验1中的HLS工程,点击 Project > New Solution…

overlay 网络工具 overlay ip_overlay 网络工具


1.2 默认设置,点击 Finish按钮;

overlay 网络工具 overlay ip_实例化_02

1.3 默认设置,点击 Finish按钮,工程中将会增加一个Solution2;

overlay 网络工具 overlay ip_IP_03

1.4 双击matrixmul.cpp,在Directive窗口,点击matrixmul后右键,将会出现对函数顶层模块插入Directive的选项;

overlay 网络工具 overlay ip_overlay 网络工具_04


1.5 点击Directive后,参照如下配置,点击OK

overlay 网络工具 overlay ip_System_05


1.6 使用同样的方法,对参数a、b、res和test添加directive,参照如下配置;

overlay 网络工具 overlay ip_IP_06

1.7 单击Col后,右键选择Insert Dorective…

overlay 网络工具 overlay ip_System_07


1.8 参照如下配置,点击OK;

overlay 网络工具 overlay ip_IP_08

1.9 最终的配置结果如下所示;

overlay 网络工具 overlay ip_IP_09

1.10 所有的directives都保存在了directives.tcl文件中;

overlay 网络工具 overlay ip_overlay 网络工具_10

1.11 点击 Solution > Run C Synthesis > Active Solution,对solution2进行综合;

overlay 网络工具 overlay ip_IP_11

1.12 点击工具栏 Export RTL按钮,导出IP;

overlay 网络工具 overlay ip_System_12

1.13 弹出对话框作如下配置,点击OK;

overlay 网络工具 overlay ip_实例化_13


1.14 Export报告如下;

overlay 网络工具 overlay ip_实例化_14

1.15 关闭HLS;

overlay 网络工具 overlay ip_IP_15

步骤2:创建Vivado工程

2.创建Vivado工程:例化HLS IP到工程中

2.1 启动 Vivado工具: Start > Xilinx Design Tools > Vivado 2018.2;

2.2 新建Vivado工程;

overlay 网络工具 overlay ip_System_16

2.3 一直点击Next按钮;

overlay 网络工具 overlay ip_IP_17

2.4 选择PYNQ-Z2板;

overlay 网络工具 overlay ip_IP_18

2.5 将刚刚生成的zip包拷贝到Vivado工程的.ip.user_files后解压缩;

overlay 网络工具 overlay ip_实例化_19


overlay 网络工具 overlay ip_System_20

2.6 将.ip.user_files文件夹添加到ip库;

overlay 网络工具 overlay ip_IP_21

2.7 创建 Block Design;

overlay 网络工具 overlay ip_IP_22


2.8 添加ZYNQ7 Processing System IP 到Block Design;

overlay 网络工具 overlay ip_System_23


overlay 网络工具 overlay ip_System_24

2.9 点击Run Block Automation,保持默认配置,点击OK;

overlay 网络工具 overlay ip_overlay 网络工具_25

2.10 为Zynq Processing System增加HP0口;

overlay 网络工具 overlay ip_实例化_26

2.11 例化Matrixmul到Block Design;

overlay 网络工具 overlay ip_System_27


overlay 网络工具 overlay ip_System_28

2.12 通过AXI DMA将Matrixmul IP连接到PS侧,最终的Block Design如下图所示;

overlay 网络工具 overlay ip_System_29

2.13 创建 HDL Wrapper文件;

overlay 网络工具 overlay ip_实例化_30


overlay 网络工具 overlay ip_System_31

2.14 生成Bitstream文件;

overlay 网络工具 overlay ip_overlay 网络工具_32

2.15 生成Block Design的tcl文件;

overlay 网络工具 overlay ip_System_33


overlay 网络工具 overlay ip_System_34

2.16 将tcl文件和bitstream文件拷贝到lab2_src/matrixmul目录,并将tcl文件和bitstream文件重命名为matrixmul.tcl和matrixmul.bit;

overlay 网络工具 overlay ip_overlay 网络工具_35


overlay 网络工具 overlay ip_System_36

步骤3:连接PYNQ-Z2测试

3. 将PYNQ-Z2上电,通过Jupyter访问Matrixmul IP

3.1 将笔记本或者PC机的IP地址设置为192.168.2.X

overlay 网络工具 overlay ip_实例化_37


**3.2 ** 按如下方式设置好PYNQ-Z2,并将PYNQ-Z2通过网线连接到PC后,然后上电;

overlay 网络工具 overlay ip_IP_38


3.3 待PYNQ-Z2启动完成后,通过Winscp等sftp工具将包含tcl文件、bitstream文件和ipynb文件的matrixmul文件夹下载到板卡的jupyter_notebooks目录中;:用户名与密码均为: xilinx

overlay 网络工具 overlay ip_overlay 网络工具_39


overlay 网络工具 overlay ip_overlay 网络工具_40

3.4 打开Chrome或者Firefox等IE浏览器,输入192.168.2.99,密码为:xilinx

overlay 网络工具 overlay ip_实例化_41


**3.5 ** 打开matrixmul目录,运行matrixmul.ipynb开始测试,

overlay 网络工具 overlay ip_实例化_42