FPGA现在越做越大了,有些公司如Xilinx推出的FPGA都内嵌了DSP核,很多人都在讨论说FPGA会取代现在主流的复杂数字信号处理系统的架构:FPGA+DSP了,SOC片上系统的时代真的要来了,我也对这个概念很憧憬,但经过一段时间的调研后,觉得现在还不成熟,理由有三:
1 一些复杂的算法,如视频监控,小目标的提取等,用Verilog开发FPGA算法的复杂性远远超过C开发,有很多对于C来说很简单的事,如浮点乘法,但对于FPGA来说很难。
2 素材,基于复杂算法的代码范例的缺乏
现在许多成熟的算法都是基于C语言的,你能找到很多教材关于基于C语言的数字图像处理,但你几乎看不到一本书是基于FPGA的数字图像处理,当然有很多基于FPGA的数字信号处理的教材。这也正是现在FPGA主要的功能,作为协处理器处理大量的底层数据。但是要跑一些算法,肯定还是用DSP编写C算法来地容易。
3 现在FPGA是有内嵌的内核,但它的速度比不上DSP芯片的速度。嵌在FPGA芯片里的内核肯定不如单片DSP内核的速度。
4 复用IP内核的概念一直很热。但我觉得IP核涉及的范围很窄,只会有那些特别通用的算法,如FFT等。更重要的是每个人的需求都是不一样的,算法都是不一样的,很难有其他通用IP。而且如果对频率要求很高的话,那么还需要加时序约束,位置约束,但每块板子,每块芯片都是不一样的,这个很有难度。而且IP核是不是实际好用,很成问题。
5 FPGA架构比FPGA+DSP架构的明显优势,除了简化板级设计外,我觉得其他也比较难说。关键是现在FPGA+DSP的架构非常灵活高效,没有被单片FPGA取代的必要。
总之,就我看到现在的论文或工程实例,几乎没看到有单片FPGA处理复杂算法的成功范例,如视频监控(不止是显示图像,还包括目标识别等功能的)。当然,FPGA毕竟是灵活,尤其适合软硬件协同开发。
很想多听听大家对这个问题的看法意见,或谈谈有没有必要或优势把FPGA+DSP替代成单片FPGA。这个问题我一直在想。
|