首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在Zynq中利用Neon做FFT运算

在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)结构,即单指令多数据的方式,看来就是将串行处理的方式改为并行处理,引用原图,


指令执行时,所以通道(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/
现在实现的函数有,

如下表.


那理论上,我们用xilinx的SDK编译了这个库,我们就可以使用Ne10的函数了;我们的虚拟示波器中想加入频域的显示,所以我们测试一下FFT这个函数;先去实践一下
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表