zoukankan      html  css  js  c++  java
  • 在zynq中利用neon做FFT运算

    ZYNQ中的双核处理器Cortex-A9中使用的Neon协处理器,

    先了解一下neon,引用ARM的原文,

    The ARM® NEON™ general-purpose SIMD engine efficiently processes current and future multimedia formats, enhancing the user experience.

    NEON technology can accelerate multimedia and signal processing algorithms such as video encode/decode, 2D/3D graphics, gaming, audio and speech processing, image processing, telephony, and sound synthesis by at least 3x the performance of ARMv5 and at least 2x the performance of ARMv6 SIMD.

    http://www.arm.com/products/processors/technologies/neon.php

    NEON利用SIMD(single Instruction,Multiple Data)结构,即单指令多数据的方式,看来就是将串行处理的方式改为并行处理,引用原图,

    image

    指令执行时,所以通道(Lane)同时进行运算(Operation),从而得到结果;

    其中,Register可以为32个64位寄存器或是16*128bit的寄存器;

    可接受的数据类型可以是有符号或无符号的8位,16位,32位,64位,单精度浮点数;

    所以...既然ZYNQ内部有了,我们就可以利用NEON这个协处理器,

    完成一些复杂的运算,比如FFT,

    当然你可以用PL(FPGA fabric)部分去实现FFT,效率可能会高一些,

    但开发难度大...而且不灵活;

    那就尝试着用一下,网上有个开源项目,就是为NEON来写库函数的,叫用Ne10;

    参考网址:http://projectne10.github.io/Ne10/

    现在实现的函数有,

    image

    如下表.

    image

    image

    那理论上,我们用xilinx的SDK编译了这个库,我们就可以使用Ne10的函数了;

    我们的虚拟示波器中想加入频域的显示,所以我们测试一下FFT这个函数;

    先去实践一下:)

    2014.03.19

  • 相关阅读:
    HDU 1249 三角形
    HDU 1799 循环多少次?
    UVA 12219-Common Subexpression Elimination
    POJ 2253-Frogger(最小生成树的最大权)
    OpenCV之参数不匹配问题
    vs2017-关于配置属性管理器的问题
    D
    圆桌会议
    F
    B
  • 原文地址:https://www.cnblogs.com/jamesnt/p/3610786.html
Copyright © 2011-2022 走看看