Lattice FPGA & AI——Object Counting参考设计 RTL设计部分

0,CNN IP 下载
在上一篇中,我们已经生成了CNN IP可执行的bin文件,这一篇会介绍如何基于Lattice CNN IP搭建FPGA AI 系统
首先确认你已经安装好开发工具Diamond,一款Lattice FPGA开发软件,可以在官网下载,此外CNN IP需要另外下载并且安装。CNN IP下载地址如下:
http://www.latticesemi.com/Products/DesignSoftwareAndIP/IntellectualProperty/IPCore/IPCores04/CNN
注意这里不要下载成Ultraplus的CNN IP了,和ECP5是不一样的
在这里插入图片描述
下载好了以后安装,和普通IP一样,直接安装就好。安装好了以后在Diamond的Clarity工具里就可以找到CNN IP了

2. CNN IP 配置
打开Clarity在catalog中找到cnn accelerator
在这里插入图片描述
双击cnn accelerator 开始进行配置,配置如下所示:
在这里插入图片描述
Machine Learning Type: 选择CNN
No. of Convolution Engines: 选择8,这里和我们之前在sensAI里的设置保持一致。
No. of Internal Storage of Blob:设置为16,同样是与前面保持一致。
Byte Mode: 我们输入的像素取值范围是0-2,Mean值为0,因为输入全是正数,所以这里选择无符号数。
配置完后点击Configure生成sbx文件并加入到工程中去。
下面我们来看看除了CNN IP,工程里还有哪些RTL模块:
在这里插入图片描述
u_sd_spi: SD卡加载模块,因为我们之前的bin文件是烧录到SD卡中的,而CNN IP在工作中是和挂在AXI总线上的DDR3进行交互的,所以这个模块的作用就是在上电时把SD卡的内容加载到DDR3中,DDR3是个易挥发性存储器件,而SD卡是非易挥发性期间,所以你也可以理解这里的SD卡就是DDR3的初始化文件。
u_det_out_filterf: 该模块的输入是CNN IP的输出,作用是对CNN IP的输出结果进行加工,因为我们知道CNN 网络输出的bounding box 有许多重叠框或者置信度低的框,这里用RTL实现了NMS非最大抑制算法,对CNN IP 的输出进行了处理。
u_ddr3_sdram_mem_top: DDR3控制 IP
CSI2_to_DVI _top: 本参考设计的输入视频源是MIPI CSI2格式,这里需要做些简单的MIPI数据包解析和ISP将raw data还原,转换成并行的像素格式。
Crop_downscale_human_count: 根据CNN IP 的控制信号输入Inference图片的模块,该模块将图片写到事先在sensAI中约定好的Blob中。
在这里插入图片描述
还有一些其他的设计都是用RTL实现,例如输入输出的HDMI芯片的IIC配置,AXI总线,复位控制,LED控制等。
关于CNN IP 接口的时序控制,可以参看CNN IP的user guider,也可以直接参看我们的参考设计代码。这里要注意的是,CNN IP的输入数据必须是16bit, 而我们的像素一般都是8bit,所以要把两个像素拼接到一起。其实我想说的是这个拼接的顺序,我在做demo的时候就在这里遇到了坑。我是按照{pixel0, pixel1}, {pixel2, pixel3} 这样的顺序拼接的,像素0的8bit在高位,像素1的8bit在低位。然而却一直得不到正确结果。后来才发现这里拼接的有问题,正确的拼接方式应该是{pixel1,pixel0}, {pixel3,pixel2} 所以后来交换一下高低8bit就对了
在这里插入图片描述
当然如果你对RTL部分不感兴趣,只想验证自己在PC上训练的神经网络能不能在FPGA上跑起来,那么你完全可以不用修改RTL重新综合,直接使用我们参考设计里的FPGA配置文件即可。所有的开发步骤都完成了,下一篇将介绍如何进行FPGA demo演示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值