PYNQ实战笔记(二)————使用HLS构建加法器

这篇博文主要用于总结HLS构建加法器的过程与细节,最后使用PYNQ开发板进行验证。本文参考官方提供的教程。链接如下:click
here
http://www.tul.com.tw/ProductsPYNQ-Z2.html

HLS的加法IP构建

  • 打开HLS,新建工程,定义文件的位置与名称,点击next
    PYNQ实战笔记(二)————使用HLS构建加法器_第1张图片
  • 输入定义顶层函数名称
    在这里插入图片描述
  • 新建一个文件,使用.cpp作为后缀
    PYNQ实战笔记(二)————使用HLS构建加法器_第2张图片
  • 这里不用添加testbeach直接跳过
    PYNQ实战笔记(二)————使用HLS构建加法器_第3张图片
  • 选择板子型号具体搜索xc7z020clg400-1点击完成
    PYNQ实战笔记(二)————使用HLS构建加法器_第4张图片
  • 打开后打开建立的文件add.cpp,粘贴如下代码,保存后点击绿色
    综合CPYNQ实战笔记(二)————使用HLS构建加法器_第5张图片
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;
}
  • 导出RTL

PYNQ实战笔记(二)————使用HLS构建加法器_第6张图片
PYNQ实战笔记(二)————使用HLS构建加法器_第7张图片

  • 打开如下文件并记录
    PYNQ实战笔记(二)————使用HLS构建加法器_第8张图片
    至此得到一个简单的加法IP

Vivado生成bit文件以及tcl文件

  • 新建一个工程,选择开发板的时候选择PYNQ-2(这里需要将库添加再特定的文件夹下D:\VIVADO2017.4\Vivado\2017.4\data\boards\board_files\pynq-z2)文件需要下载
    PYNQ实战笔记(二)————使用HLS构建加法器_第9张图片

  • 新建一个BD工程,添加ZYNQIP然后自动连线
    PYNQ实战笔记(二)————使用HLS构建加法器_第10张图片

  • 添加加法器IP进入工程
    PYNQ实战笔记(二)————使用HLS构建加法器_第11张图片
    PYNQ实战笔记(二)————使用HLS构建加法器_第12张图片

  • 新添加Add进入BD工程,自动连线,然后保存即可(这里注意将加法ip名字修改为官方提供的scalar_add
    PYNQ实战笔记(二)————使用HLS构建加法器_第13张图片

  • 建立顶层文件
    PYNQ实战笔记(二)————使用HLS构建加法器_第14张图片

  • 生成.bit文件与tcl文件。直接点击即可生成.bit文件。
    PYNQ实战笔记(二)————使用HLS构建加法器_第15张图片
    PYNQ实战笔记(二)————使用HLS构建加法器_第16张图片
    导出tcl文件。
    之后找到生成的文件。tcl文件在工程目录下,bit文件在工程文件的adder.runs\impl_1
    修改名字为一个名字
    在这里插入图片描述

测试

  • 将文件放入位置这里放置到官方硬件库目录下
    PYNQ实战笔记(二)————使用HLS构建加法器_第17张图片
  • 连接jupyter载入bit, 加载硬件库
    在这里插入图片描述
  • 使用overlay?对硬件库进行查看,IP有哪些,IO口等
    PYNQ实战笔记(二)————使用HLS构建加法器_第18张图片
  • 同样可以对IP信息进行查看
    PYNQ实战笔记(二)————使用HLS构建加法器_第19张图片
  • 测试功能(读写地址)
    在这里插入图片描述
    -测试功能(封装,然后进行测试)
    PYNQ实战笔记(二)————使用HLS构建加法器_第20张图片
    这里对于第二种测试不是很理解,大概是为了方便,做的一个类似函数调用的形式。然后对于出现的警告这里不知道是什么原因,但是不影响结果以及整个流程的测试,至此,第一个HLS自定义IP重构overlay就结束了!!!博文中的代码参考博文开头处给出的链接。

你可能感兴趣的:(#,PYNQ)