0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于INTEL FPGA硬浮点DSP实现卷积运算详解

DIri_ALIFPGA 来源:网络整理 作者:工程师陈翠 2018-07-23 09:09 次阅读

概述

卷积是一种线性运算,其本质是滑动平均思想,广泛应用于图像滤波。而随着人工智能深度学习的发展,卷积也在神经网络中发挥重要的作用,如卷积神经网络。本参考设计主要介绍如何基于INTEL 硬浮点的DSP Block实现32位单精度浮点的卷积运算,而针对定点及低精度的浮点运算,则需要对硬浮点DSP Block进行相应的替换即可。

原理分析

设:f(x), g(x)是两个可积函数,作积分:

基于INTEL FPGA硬浮点DSP实现卷积运算详解

随着x的不同取值,该积分定义了一个新的函数h(x),称为函数f(x)与g(x)的卷积,记为h(x)=f(x)*g(x)。

如果卷积的变量是序列x(n)和h(n),则卷积的结果为

基于INTEL FPGA硬浮点DSP实现卷积运算详解

其中*表示卷积。因此两个序列的卷积,实际上就是多项式的乘法,用个例子说明其工作原理。a = [7,5,4]; b = [6,7,9];则实现a和b的卷积,就是把a和b作为一个多项式的系数,按多项式的升幂或降幂排列,即为:

基于INTEL FPGA硬浮点DSP实现卷积运算详解

因此得到a*b=[42,79,122,73,36];与Matlab运算结果一致。而二维卷积可以采用通用多项式乘积方法实现卷积运算。

基于INTEL FPGA的实现分析

如上我们确定了两个序列的卷积等同于两个多项式的乘法,因此当我们需要计算序列[a0,a1,a2, …,an-1]与[b0,b1,b2, …,bn-1]的卷积结果时,可以成立a,b两个n阶多项式,如下所示:

基于INTEL FPGA硬浮点DSP实现卷积运算详解

则[a0,a1,a2, …,an-1]与[b0,b1,b2, …,bn-1]的卷积结果即为由a*b得到的多项式的各项系数所组成的序列。令c=a*b,得到

基于INTEL FPGA硬浮点DSP实现卷积运算详解

则由多项式c的各阶系数所组成的新的序列[c0,c1,c2, …,c2n-1]即为[a0,a1,a2, …,an-1]与[b0,b1,b2, …,bn-1]的卷积结果。则按照高阶多项式计算展开可得到:

基于INTEL FPGA硬浮点DSP实现卷积运算详解

┆┆

基于INTEL FPGA硬浮点DSP实现卷积运算详解

┆┆

基于INTEL FPGA硬浮点DSP实现卷积运算详解

因此卷积的运算可以转化为行向量与列向量相乘的结果,即乘累加的运算结构。

Intel FPGA在Arria10DSP Block中首次支持了单精度硬浮点DSP block,是行业内第一个支持单精度DSP block,硬浮点DSP block架构如图1所示:

基于INTEL FPGA硬浮点DSP实现卷积运算详解

图1 硬浮点DSPblock架构

硬浮点DSP Block包含硬浮点乘法器,硬浮点加法器,支持乘累加运算,因此采用硬浮点DSPblock实现行列向量相乘是非常好的方式。下面我们针对一个实际的卷积运算,介绍如何基于INTEL硬浮点DSP block实现。假设我们需要求随机数组a=[4,8,9,11]与b=[10,5,7,13]的卷积运算结果,则根据上面的分析,保持数组a顺序不变,而数组b需根据上述分析结果,针对每一个卷积结果产生新的序列。所以整个实现包括数列重组模块和硬浮点乘法器模块及输出处理。下面是实现框图及仿真结果。

图2 实现框图

图3 Modelsim仿真结果

仿真结果与Matlab实现结果一致,并且该设计中充分考虑了FPGA并行扩展特性,对于低速率要求的设计可采用DSP Block复用的方式节约DSP block数量。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7661

    浏览量

    343895
  • FPGA
    +关注

    关注

    1592

    文章

    21207

    浏览量

    592143
  • intel
    +关注

    关注

    19

    文章

    3444

    浏览量

    184725

原文标题:基于INTEL FPGA硬浮点DSP实现卷积运算

文章出处:【微信号:ALIFPGA,微信公众号:FPGA极客空间】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    verilog实现卷积运算

    在Verilog中实现卷积运算,你可以使用以下示例代码。这里假设输入数据是有符号8位数,输出数据也是有符号8位数。卷积在数字信号处理中通常指的是两个序列的逐元素乘积的和,也就是点乘。
    发表于 03-26 07:51

    verilog语音实现浮点运算

    Verilog可以通过使用IEEE标准的浮点数表示来实现浮点运算。下面是一个基本的Verilog模块示例,展示了如何进行加法、乘法和除法等常见的浮点
    发表于 03-25 21:49

    stm32f407浮点运算速度

    支持硬件浮点运算单元(FPU),可以提供快速和高效的浮点运算性能。本文将详细介绍 STM32F407 的浮点
    的头像 发表于 01-04 10:58 843次阅读

    浮点LMS算法的FPGA实现

    运算运算步骤远比定点运算繁琐,运算速度慢且所需硬件资源大大增加,因此基于浮点运算的LMS算法的
    的头像 发表于 12-21 16:40 233次阅读

    请问adau1452支持浮点运算吗?

    你好, 我想在dsp里做一个音频降噪处理的算法,刚查看了一下adau1452的性能是极好的,我想进一步了解一下这款芯片。 请问adau1452支持浮点运算吗?你们提供的例程有没有关于降噪的?我自己写的算法代码是c语言的就可以了吧
    发表于 11-29 07:58

    大佬们,问一下用FPGA实现卷积码编解码的难度,毕设选了这个

    求助!大佬们,问一下用FPGA实现卷积码编解码的难度。
    发表于 10-16 23:26

    浮点数的运算怎么转换成整数运算

    浮点数的运算怎么转换成整数运算
    发表于 10-12 06:31

    为什么研究浮点加法运算,对FPGA实现方法很有必要?

    浮点加法器是现代信号处理系统中最重要的部件之一。FPGA是当前数字电路研究开发的一种重要实现形式,它与全定制ASIC电路相比,具有开发周期短、成本低等优点。 但多数FPGA不支持
    的头像 发表于 09-22 10:40 398次阅读
    为什么研究<b class='flag-5'>浮点</b>加法<b class='flag-5'>运算</b>,对<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>方法很有必要?

    FPGA进行基本运算和特殊函数定点运算

    FPGA以擅长高速并行数据处理而闻名,从有线/无线通信到图像处理中各种DSP算法,再到现今火爆的AI应用,都离不开卷积、滤波、变换等基本的数学运算。但由于
    的头像 发表于 09-05 11:45 277次阅读

    扩充浮点运算集是否需要自己在FPGA板子上设置一个定点数转为浮点数的部分?

    扩充浮点运算集的时候,是否需要自己在FPGA板子上设置一个定点数转为浮点数的部分?
    发表于 08-11 09:13

    fpga实现加法和减法运算的方法是什么

    FPGA实现加法和减法运算非常简单,实现乘法和除法可以用IP,那实现对数和指数运算该用什么呢?
    发表于 08-05 09:37 827次阅读
    <b class='flag-5'>fpga</b><b class='flag-5'>实现</b>加法和减法<b class='flag-5'>运算</b>的方法是什么

    利用FPGA进行基本运算及特殊函数定点运算

    点击上方 蓝字 关注我们 一、前言 FPGA以擅长高速并行数据处理而闻名,从有线/无线通信到图像处理中各种DSP算法,再到现今火爆的AI应用,都离不开卷积、滤波、变换等基本的数学运算
    的头像 发表于 07-19 14:25 819次阅读
    利用<b class='flag-5'>FPGA</b>进行基本<b class='flag-5'>运算</b>及特殊函数定点<b class='flag-5'>运算</b>

    基于 FPGA 的目标检测网络加速电路设计

    流水线结构和很强 的并行处理能力,还拥有低功耗、配置方便灵活的特性,可以根据应用需要来编程定制 件,已成为研究实现 CNN 硬件加速的热门平台。 综上所述,使用功耗低、并行度高的 FPGA 平台加速
    发表于 06-20 19:45

    FPGA上优化实现复数浮点计算

    点击上方 蓝字 关注我们 高性能浮点处理一直与高性能 CPU 相关联。在过去几年中,GPU也成为功能强大的浮点处理平台,超越了图形,称为GP-GPU(通用图形处理单元)。新创新是在苛刻的应用中实现
    的头像 发表于 06-10 10:15 374次阅读
    在<b class='flag-5'>FPGA</b>上优化<b class='flag-5'>实现</b>复数<b class='flag-5'>浮点</b>计算

    简谈卷积—幽默笑话谈卷积

    分享。据说卷积这种运算式物理学家发明的,在实际中用得不亦乐乎,而数学家却一直没有把运算的意义彻底搞明白。仔细品一下,还是有那么点滋味的。下面先看一下剑桥大学的教科书对卷积的定义:
    发表于 05-25 18:08