HLS手写体加载到SoC上面运行

本文详细记录了将MNIST手写数字识别模型部署到FPGA的过程,包括训练模型、参数提取、C++代码生成、HLS编译以及在DE10开发板上的硬件实现。通过迭代优化,模型的识别率提升至80%。最后,实现了从C代码到IP核的转换,并在Quartus工程中集成,完成硬件加速器的构建。
摘要由CSDN通过智能技术生成

打开full_python文件夹,从该文件夹目录启动cmd
依次输入以下命令:
python mnist_backward.py
python predict.py
python read_params.py
python readpic_array.py

mnist_backward.py是后向传播算法,机器学习,可在该文件中更改学习率、损失率等等相关参数
在这里插入图片描述

cmd运行python mnist_backward.py,开始训练
在这里插入图片描述

python predict.py
图片推理,验证学习效果
在这里插入图片描述

Cmd运行python predict.py 预测结果
在这里插入图片描述

python read_params.py

提取得到两个偏置参数:在这里插入图片描述
两个权重参数:在这里插入图片描述

python readpic_array.py
将图片读取到数组,得到以下几个文件:
在这里插入图片描述

将这些生成或者原有的文件都进行修改(把所有的“ [ ] ”都改为“ { } ”,并且都是单层的,不要有嵌套<把“], [” 替换成“ ,” >,末尾要有分号“;”)

在这里插入图片描述

由图片生成的数组改成以下格式:数组名参照文件名
在这里插入图片描述

新建hls工程文件夹,将之前修改过的文件复制到该文件夹下,并创建一个C++文件:
在这里插入图片描述

在main.cpp中将之前生成的头文件都包含进去
在这里插入图片描述

设置全连接、偏置以及激活
在这里插入图片描述

Main函数中写入几张想要测试的图片
在这里插入图片描述

进入Quartus安装目录下的hls文件夹,cmd启动init_hls.bat,初始化编译环境,<不要关闭cmd>
在这里插入图片描述

然后回到之前创建的hls工程文件夹
cmd启用命令 i++ main.cpp
然后运行默认生成的a.exe
出现以下效果
在这里插入图片描述

可以看到识别率只有70%,返回之前的步骤,重新训练学习,继续操作
经过几次训练后得到的效果,识别率80%
在这里插入图片描述

通过i++指令将c代码转换成ip核
i++ -march=CycloneV main.cpp -ghdl

打开de10的黄金参考quartus工程
进入Quartus Tools–>Options–>IP setting -->IP Catalog Search Locations,添加刚刚前一步生成的IP核
在这里插入图片描述

路径选择之前hls文件夹下的\a.prj\components\full_connect
在这里插入图片描述

添加完成后,quartus界面右面的IP Catalog下的HLS内可找到full_connect
在这里插入图片描述

打开Platform Designer
选择sopc_system.qsys
在这里插入图片描述

将full_connect IP核添加进工程
在这里插入图片描述

直接finish

然后连接硬件如下
在这里插入图片描述

自动分配基地址、自动分配中断号
在这里插入图片描述
然后Generate HDLfile
在这里插入图片描述

直接Generate,然后closefinish全编译
在这里插入图片描述
在这里插入图片描述

编译完成后,启动SoC EDS 进入黄金参考工程所在目录
输入make dtb,生成dtb<设备树文件>
输入 ./generate_hps_qsys_header.sh 生成hps_0.h<<后面c工程要用到>>
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进入黄金参考文件夹下的output_files,双击sof_to_rbf.bat文件,更新rbf文件,
将之前的dtb文件和rbf文件放入SD卡中,SD卡de10开发板,通电,启动开发板
在这里插入图片描述
在soc eds shell中输入 eclipse& ,启动eclipse,创建一个C工程,包含之前所有的头文件
添加两个路径
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点击file_system
在这里插入图片描述

在quartus安装路径下找到这两个路径
在这里插入图片描述

在main.c中添加以下头文件
在这里插入图片描述
写完main.c后,点击锤子符号,生成二进制文件
在这里插入图片描述
在这里插入图片描述

建立远程连接(连接DE10开发板)
在这里插入图片描述
在这里插入图片描述
在图中所示位置输入开发板的IP地址
在这里插入图片描述

关于开发板的IP地址获取:通过串口连接开发板,输入ifconfig,可得到IP地址
在这里插入图片描述

然后按照下列操作,打开远程连接界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入开发板的用户名以及密码
在这里插入图片描述
连接成功后,会有绿色的+号
在这里插入图片描述
启动命令控制窗口
在这里插入图片描述

选择之前生成的二进制文件,复制到远程连接的开发板的目录下在这里插入图片描述
在这里插入图片描述

在命令控制窗口执行以下操作

在这里插入图片描述
就可以看到程序对之前生成的头文件的预测结果

到此结束2021年1月14日 20:41:03

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值