在FPGA上部署深度学习框架的方案

常见的FPGA都属于岛型FPGA,结构如下图所示。

fpga部署深度学习框架 fpga构架_组合逻辑

FPGA的组成要素主要是:

①逻辑块 ②IO块 ③开关块 ④连接块 ⑤布线通道 ⑥专用硬核块

一、逻辑块

商用FPGA的逻辑块主要是通过查找表(Look Up Table,简称LUT)、触发器和多路选择器组成,结构如下图所示:

fpga部署深度学习框架 fpga构架_选择器_02

电路中的组合逻辑由LUT实现,比如上如所示的是一个4输入的LUT,它就能够实现4输入的组合逻辑。

电路中的时序逻辑由触发器实现。

多路选择器用来选择逻辑块使用的是组合逻辑还是时序逻辑。

那么为什么LUT能实现组合逻辑呢?下面就要讲讲LUT的结构。

下图是一个2输入的查找表的结构示意图:

fpga部署深度学习框架 fpga构架_组合逻辑_03

LUT的组成要素主要是:

①SRAM ②多路选择器

SRAM可以用来存储逻辑1或0,多路选择器用来选择输出哪个SRAM中存储的值。

对FPGA进行配置的过程实际上就是对SRAM中逻辑值的编辑过程。

简单的来讲,一个2输入的LUT可以看成一个2输入的真值表,所以通过在4个SRAM中编辑0或1的逻辑,2输入的LUT能够实现所有2输入的逻辑。

通过2输入的LUT可以推广到n输入的LUT,但是LUT的输入数并非越多越好也非越少越好,因为LUT的输入数越多虽然可以描述更复杂的逻辑以至于加快电路速度,但是在实现简单逻辑时会造成资源的浪费,LUT的输入数很少的情况下会使得描述一个复杂逻辑需要多个LUT以至于减慢电路速度,所以LUT的输入数需要考虑资源和速度两个方面来作一个权衡。下图描述了查找表的输入数和与面积和输出延时的权衡:

fpga部署深度学习框架 fpga构架_多路_04

由上图可以看出,LUT的输入数在4~6个时面积和速度方面的性能最好,所以在商业FPGA中基本都是选择使用4~6个输入的LUT,比如在Xilinx的7系FPGA中用的就是6输入的LUT。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空