pynq框架下自定义ip的使用

PYNQ框架很方便的实现了python对底层硬件的直接调用,其本身提供的库函数也十分丰富,例如GPIO,DMA之类的IP核都有现成的函数可以直接控制。但对于客制化的挂载在Lite上的IP该如何使用,现记录如下。

1. MMIO
首先对挂载在AXI Lite总线上的IP core的控制无非是基于对控制寄存器的读写,PYNQ提供了MMIO库,可以非常方便的实现PS对PL侧的寄存器读写控制,参考官网说明如下:
在这里插入图片描述
了解了这一点后,下面给一个具体的使用例程方便作参考。

2.example
在了解了MMIO的功能后,来看一个具体的使用过程:
1.首先在自己的工程中找到需要调用的 IP core,以下图data_fwd为例:
在这里插入图片描述这是一个自定义的数据分包IP,我们可以去Lite总线上查找到它的基地址便于后续访问调用
在这里插入图片描述
地址起始于0x00A0011000,范围4KB

2.在PYNQ中打开并访问jupyter,过程可参考ZYBO-Z7开发板的PYNQ框架移植
进入jupyter后,调用MMIO库,同时定义需读写 ip 的基地址和范围
在这里插入图片描述
3.实现对于 IP 内具体控制寄存器的访问
在SDK中打开嵌入式侧代码作为比对参考
在这里插入图片描述
.h文件查看具体寄存器地址定义
在这里插入图片描述
在python中实现相对应的寄存器读写操作即可
在这里插入图片描述
无论是PYNQ还是本身嵌入式中的 c 文件,实现功能的本质都是对硬件底层逻辑中定义的寄存器的读写操作,记住这一点便可举一反三,拓展自定义IP到PYNQ框架下使用。

Fin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值