pynq-z2 HLS开发

定制Overlay

  • 一.用HLS生成一个定制IP(乘法器)
  • 二.在vivado中设计一个overlay
  • 三、在Python中测试ip

一.用HLS生成一个定制IP(乘法器)

  1. 首先,打开Vivado HLS,本人的版本是2018.1
  2. 点击创建一个新工程,工程名为multiplication
    pynq-z2 HLS开发_第1张图片
    pynq-z2 HLS开发_第2张图片
  3. 设置工程名和路径,顶层函数设置为mul,创建一个新的C++程序,名字叫做multiplication.cpp,不用在testbench中添加文件。
    pynq-z2 HLS开发_第3张图片
  4. 选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。 选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。
    pynq-z2 HLS开发_第4张图片
  5. 在左侧的菜单栏里选择Source->multiplication.cpp,在里面编写如下代码:
    pynq-z2 HLS开发_第5张图片
  6. 完成之后我们可以在左侧菜单里选择solution1->impl->misc->drivers->mul_v1_0->src->xmul_hw.h不同的HLS版本可能位置不一样,如果没找到就换个位置找一下
    pynq-z2 HLS开发_第6张图片
    在这个文件中我们可以找到a,b,c的地址,我们之后能够通过地址传值,读值这里a为0x10,b为0x18,c为0x20
  7. 点击export RTL,输出RTL成功表明生成IP core成功
    pynq-z2 HLS开发_第7张图片

二.在vivado中设计一个overlay

  1. 打开vivado 2018.1,创建一个工程,选择板子的时候,选boards,在其中选择PYNQ-Z2
    pynq-z2 HLS开发_第8张图片
    pynq-z2 HLS开发_第9张图片pynq-z2 HLS开发_第10张图片
  2. 在左侧导航中选择create block design
    pynq-z2 HLS开发_第11张图片
    pynq-z2 HLS开发_第12张图片
  3. 在工作框中点击加号添加ZYNQ7 Processing System添加到工作面板中,然后点击Run Block Automation
    pynq-z2 HLS开发_第13张图片
  4. 在菜单栏中选择tools->settings->ip->repository点击加号,选择d:/fpga/multiplication把自己设计的IP添加进来,结果如下
    pynq-z2 HLS开发_第14张图片
    pynq-z2 HLS开发_第15张图片
  5. 选择IP Catalog->User Repository找到自己设计IP(此例IP名为Mul),将其添加,再点击Run Block Automation
    pynq-z2 HLS开发_第16张图片
    pynq-z2 HLS开发_第17张图片pynq-z2 HLS开发_第18张图片
    pynq-z2 HLS开发_第19张图片
  6. 在source栏中右键选择design sources->design_1(design_1.bd)右键选择create HLD wrapper
    pynq-z2 HLS开发_第20张图片
  7. 等wrapper完成之后选择generate bitstream生成bit文件
    pynq-z2 HLS开发_第21张图片
  8. 生成bit文件之后点击file->export->export block design生成tcl文件pynq-z2 HLS开发_第22张图片
    pynq-z2 HLS开发_第23张图片

三、在Python中测试ip

  1. 在Python中测试ip
    在D:\fpga\multiplication1\multiplication1.runs\impl_1中找到design_1_wrapper.bit文件和design_1.tcl文件,改名为multiplication.tcl和multiplication.bit, 将他们拷贝到PYNQ-Z2板子的overlays目录下
    pynq-z2 HLS开发_第24张图片
  2. 使用jupyter notebook创建一个新的python对我们自己的ip进行测试

pynq-z2 HLS开发_第25张图片
3. python代码如下,完成验证,实验结束pynq-z2 HLS开发_第26张图片
本文参考https://blog.csdn.net/bramblewalls/article/details/80045922

你可能感兴趣的:(pynq-z2 HLS开发)