pynq-z2(四)定制PYNQ的overlay

一、用HLS生成一个定制IP(加速器)

(1)首先打开vivado hls,本人的版本是2018.2,点击创建一个新工程。

(2)设置工程名和路径,顶层函数设置为add,创建一个新的C++程序,名字叫做adder.cpp,不用在testbench中添加文件。

选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。

 

 

(3)在左侧的菜单栏里选择Source->adder.cpp,在里面编写如下代码(这是一个简单的加法器,前面的宏定义是为了让运算并行,详细情况可以参考HLS设计的官方文档。):


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;

}

(4)然后单击下图中图标的下拉框,选择active solutuion ,然后会生成impl文件夹,之后单击solution,选择 export RTL之后生成ip核。

(4)完成之后我们可以在左侧菜单里选择solution1->impl->ip->drivers->add_v1_0->src->xadd_hw.h

 

二、在vivado中添加ip核

(1)使用第三篇博客中的添加pynq-z2板子步骤添加板子和ip核:

   a.打开vivado 2018.2,创建一个工程,选择板子的时候,选boards,在其中选择PYNQ-Z1

  b.在左侧导航中选择create block design

  c.在工作框中点击加号添加ZYNQ7 Processing System添加到工作面板中,然后点击Run Block Automation

(2)在菜单栏中选择tools->settings->ip->repository,点击加号,选择“第一步的adder”把自己设计的IP添加进来

 (3)回到主界面添加ip核

 (4)在source栏中右键选择design sources->design_1(design_1.bd)右键选择create HLD wrapper

(5)等wrapper完成之后选择generate bitstream生成bit文件

(6)生成bit文件之后点击file->export->export block design生成tcl文件

 

三、使用jupyter进行python测试ip

(1)找到 你创建的vivado项目目录\project_1.runs\impl_1中找到design_1_wrapper.bit文件拷贝到vivado项目目录文件夹下

 

(2)将design_1.tcl文件和design_1_wrapper.bit文件改名为adder.tcl和adder.bit。将他们拷到PYNQ-Z2板子的overlay目录下

 

 (3)在jupyter中写代码,进行测试

参考:

https://blog.csdn.net/bramblewalls/article/details/80045922

http://xilinx.eetrend.com/d6-xilinx/article/2018-11/13925.html

Vivado-HLS学习笔记2

03-08
### PYNQ-Z2 硬件规格 PYNQ-Z2 是一款基于 Xilinx Zynq-7020 SoC 的开发板,该平台融合了 ARM 处理器与可编程逻辑的优势。ARM Cortex-A9 双核处理器提供强大的处理能力,而 FPGA 部分则允许用户实现定制化的硬件加速功能[^1]。 具体来说,PYNQ-Z2 主要特性如下: - **SoC**: Xilinx Zynq-7020 XC7Z020-1CLG484C - **RAM**: 512MB DDR3 SDRAM - **Flash**: 4GB eMMC Flash, 512Mb QSPI Flash - **接口支持** - HDMI 输入/输出端口 - USB OTG 接口 - MicroSD 卡槽 - PMOD 和 Arduino 兼容扩展接口 - **电源管理**: 支持多种供电方式,包括 microUSB 或外部直流适配器 ### 使用教程 对于初学者而言,官方提供了详尽的入门指南来帮助熟悉环境设置以及基本操作流程。首先需安装必要的软件工具链,如 Vivado HLS、Vivado Design Suite 和 Jupyter Notebook Server。之后可以通过 Python 库轻松访问底层硬件资源并执行各种任务,比如配置 ADC/DAC 模块或运行神经网络推理引擎等。 为了更好地理解如何利用 PS-XADC 接口初始化 XADC,在实际项目中可以参照特定的应用实例来进行学习实践。这通常涉及到编写相应的驱动程序代码以确保正确读取传感器数据或将这些数值用于进一步分析处理。 ```python from pynq import Overlay overlay = Overlay('base.bit') adc_values = overlay.xadc.read() print(adc_values) ``` 上述脚本展示了加载预编译比特流文件并将 XADC 组件集成到应用程序中的方法。 ### 开发资源 开发者社区围绕 PYNQ 平台构建了大量的共享资料库,涵盖了从基础概念介绍到高级案例研究的内容范围。除了官方网站上的文档外,GitHub 上也有许多开源项目可供参考借鉴。特别是针对机器视觉领域的需求,有专门面向图像识别优化过的框架和算法集合被发布出来供爱好者们探索尝试[^2]。 此外,关于目标检测方面的工作,如果考虑采用深度学习技术,则可能需要用到像 Faster R-CNN 这样的先进架构配合 ResNet101 作为骨干网路结构,从而达到高效精准的目标定位效果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值