![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pynq实现lenet
文章平均质量分 70
FPGA_player
这个作者很懒,什么都没留下…
展开
-
基于PYNQ实现LeNet(6)在jupyter notebook上使用lenet ip
打开xlenet_pynq.c,之前我们使用XLenet_pynq_Set_img_r和XLenet_pynq_Set_OUT_offset两个函数进行ip输入和输出数据,在xlenet_pynq.c中我们可以看到,操作就是往XLENET_PYNQ_CTRL_ADDR_IMG_R_DATA和XLENET_PYNQ_CTRL_ADDR_OUT_OFFSET_DATA两个地址写入数据,这两个地址可以在xlenet_pynq_hw.h中找到,如下图。首先,在官网上下载SD卡的映像文件,如下图。原创 2023-03-26 14:56:00 · 788 阅读 · 0 评论 -
基于PYNQ实现LeNet(5)HLS IP的导出及上板验证
然后可以开始导出ip,点击Export RTL,选择Verilog,点击configuration,将Version设置为1.0,这一步是为了防止报错,因为2022年后使用会出现一个官方的bug,导致无法导出ip,当然官方也发布了脚本补丁,不过需要自己去论坛手动下载运行。然后就可以launch sdk,转到SDK开始写代码,先创建一个新的文件main.c,写上需要的头文件,如下。然后打开vivado,创建工程,选择刚刚创建的文件夹,再选择开发板为pynq-z2,确定后完成创建。换图片为7,结果如下。原创 2023-03-25 15:22:19 · 880 阅读 · 2 评论 -
基于PYNQ实现LeNet(4)HLS约束及优化
使用PIPELINE和UNROLL并行计算后,工程所消耗的周期会大大降低,而工程所消耗的资源量会提高,这就要求我们在资源和时间中取得平衡,在使用这些优化过程中,对代码也有一定要求,有些代码添加优化后并不能得到想要的结果,甚至与没有添加优化的代码综合结果一样,这就需要改写代码或者使用其他优化方法。接下来是接口相关的约束,数据和模块的INTERFACE。还有数据的读取接口,选择m_axi,depth是数据的个数,port是数据,offest设置为slave,bundle为接口名称可自行设置。原创 2023-03-24 11:30:20 · 608 阅读 · 0 评论 -
基于PYNQ实现LeNet(3)仿真验证
在验证之前,要在matlab上跑一遍正确的结果,以及把网络的权重转成.h头文件导入HLS工程文件夹下。以上为将28x28图片转为头文件的代码,记得将数据转置后处理,测试图片可以打开电脑的画图软件自己画,只要是28x28的黑底白字图片即可,格式为bmp图片。接下来就可以开始仿真,点击HLS中的Run C Simulation,即可开始仿真。在前篇文章中在HLS上完成了LeNet的编写,编写完lenet后,要确保网络的功能正确就需要仿真测试,在HLS上可以使用c语言仿真验证代码。以上是将权重转为头文件的代码,原创 2023-03-22 23:08:00 · 518 阅读 · 2 评论 -
基于PYNQ实现LeNet(2)通过HLS实现
在HLS编写lenet时(除去约束优化)基本没有任何硬件相关,只要懂c或c++,还有神经网络基本的知识就可以完成。但是在HLS上,要注意写出来的代码是否可以被系统综合,还有一些语句或方法是不能在HLS使用(如递归),或者有特殊编写方式的,具体可以参考xilinx官方的UG902文档的以下章节。然后选择希望达到的目标周期时间和芯片型号,这里选择20ns(即50MHz时钟,先完成目标,再追求速度),芯片型号为xc7z020clg400-1对应pynq开发板。在进入全连接层前需要将输入转化成列(行)向量。原创 2023-03-21 23:08:01 · 745 阅读 · 1 评论 -
基于pynq实现Lenet(1)LeNet简介
本次在pynq上实现的lenet网络为28x28输入,到6个5x5的卷积核,输出6x24x24的特征图(feature map),再到最大池化层(2x2size)输出6x12x12的特征图,输入到16个6x5x5的卷积核,输出16x8x8的特征图,再到最大池化层(2x2size)输出16x4x4的特征图,最后经过三个全连接输出(120,84,10)。池化其实是一个下采样的过程,用来缩小高、长方向的尺寸,减小模型规模,提高运算速度,简单来说,就是为了提取一定区域的主要特征,并减少参数数量,防止模型过拟合。原创 2023-03-21 22:51:21 · 587 阅读 · 0 评论