vivado HLS 为赛灵思开发的高层次综合工具,可实现直接使用 C,C++ 以及 System C 语言对Xilinx的FPGA器件进行编程。赛灵思官方给出了ug902文档,很详细的介绍了官方提供的各种库,以及HLS的使用方法。本文将介绍如何在zynq上使用vivado HLS生成的ip核。 具体的vivado HLS工程创建以及优化方法,可参考博客:https://blog.csdn.net/weixin_39290638/article/details/80228806 本文只作简要介绍。 首先,在solution中一定要选择所使用的正确的芯片型号,本文所使用的芯片型号为xc7z020clg400-2,如图所示: 然后,确保top function正确: 编写源码和test bench,设置好接口: 此处,我们的ip接口有三个,一个是使用AXI接口输入图像input,一个是使用AXI接口输出图像output,最后使用AXILITE接口输出mean给PS端,这在之后的工程中都会用到。 做完先使用c验证,验证通过之后,再综合、生成ip核: 一切准备就绪,到工程目录中,找到生成的ip,所在路径为:solution1implip: 本文重点不是讲述如何使用vivado HLS,因此只简要介绍该部分。 将生成的ip复制到vivado工程目录下,并创建一个文件夹用于存放ip解压后的文件: 打开vivado 工程,打开ip settings>>IP>>Respository,添加刚才解压ip的目录: 因为本工程使用了大量的ip,因此直接使用了一个名字叫做ip的文件夹,里面包含了所有使用到的ip,分别再用文件夹进行包装。 此时ip库中已经有了用户自定义的ip,在里面找到了我们自己创建的ip ,该ip名字叫做average_fun,将其添加到block design中: 可以注意到添加进来之后,其名称自动变为average_fun_0,再其后面自动添加了_0,这是为了避免在一个工程中多次使用一个ip命名混乱的尴尬。 这个名称在之后PS端初始化的时候还需要用到。 连接好各个接口之后,便可以综合、实现、生成比特文件了。此处要注意,一定不要在中文路径下操作,不要以为vivado现在可以在中文路径下打开了,那所有工程在中文路径下都没问题了。我有一次搞忘了,直接在中文路径下,不管怎样都无法综合,卡了一天。 生成比特文件之后,先导出硬件,注意要包含比特流: 然后便可以launch SDK,开始编写ps端的程序了。 这里block design也不是我们本文的重点,因此只简单介绍。 我们的ip是average_fun,在SDK中,vivado HLS已经生成了相应的驱动文件,#include “xaverage_func.h”即可,驱动文件的头文件前面多了个x,其他自己建立的ip可做类似参考: 进入到该头文件,可以发现函数很简单,只需直接调用初始化 函数,然后调用函数读取PL端的数值即可。 先使用HLS生成的这个结构体,建立一个对象,这个对象表示的是PL中我们的average_fun_0,若有多个该ip,则应该建立多个对象。 然后初始化 这个ip,这个ip的ID号的名字是和PL端相对应的,只不过前面多了XPAR_,后面多了_DEVICE_ID,具体的定义在xparameters.h这个头文件中。 至此,初始化全部完成,若需读取PL发送给PS的数据,调用XAverage_func_Get_mean(&average_funcInstance);即可,这里使用方法如下: 一、创建一个vivado HLS工程
二、vivado block design中调用生成的ip
三、PS端驱动我们使用vivado HLS生成的ip
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算