网上有人说。现在的FPGA,ARM功能已经强大到无需DSP协助处理了,未来DSP会不会消声灭迹?是DSP取代FPGA和ARM,还是ARM,FPGA取代DSP呢?担心好不容易学精了DSP,结果DSP变成了历史。
ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面;而DSP主要是用来计算的,主要用在算法方面,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度;FPGA可编程,灵活性强,并行处理能力非常强。由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。大部分情况下FPGA和DSP都是互补的,例如一个3G基站的基带板上可以看到很多颗DSP,同时也有1-2颗FPGA发挥逻辑功能。虽然目前FPGA采用最新的半导体生产工艺,性能提高了很多,也可以做一部分的DSP运算功能,看起来有些重叠,但高端FPGA还是比较贵,开发的时候总没有软件开发得快。开发人员成本也比较高。还有比如说我想通过算法实现一些特性,如果用arm的话,我还另需要一个加速器,跑起来也没有DSP速度快。 由此可见,ARM,DSP,FPGA有各自的应用场合。各有自己的优点。三者可以相互配合使用,比如说ARM+DSP,FPGA+DSP核可以实现更高的性能。
本人主要从事于FPGA方面的开发。特权同学有一篇博客写得非常好:FPGA工程师:持守梦想or屈于现实。非常值得一看。看后感悟颇多。很少有公司花大价钱去请单纯的FPGA工程师。我也不满足于仅仅作为一名FPGA工程师而已。在工作实际项目中提升FPGA水平的同时。利用闲余时间学好另一门热门的技术。ARM or DSP?我一直在这两者之间徘徊。FPGA+DSP or FPGA+ARM?那种搭配更好?相信没有很好的答案。各有各自的优势。主要看应用场合。最终我选择DSP。有以下几点原因。
1:记得在大学那会,我们在大三下学期DSP,FPGA两门一起开的。精力有限选择了FPGA。当时也很想学DSP。现在算是弥补当时的遗憾吧。
2:对DSP算法更感兴趣。如果我能够在DSP上实现一些算法。这样你就会明白怎么用软件来实现算法。进而转化为硬件实现。软件能实现的硬件一定能实现。那么移植到FPGA上也不会有太大的问题。这样做很有意思。
3:以前在学校做过DSP入门实验。写过一些简单汇编。对DSP可能还有一定的认识。ARM我可能陌生一些。
4:我目前从事的工作主要是音视频方面。用DSP可能更具优势。
5:我认为一个电子系统核心部分在算法上而不是控制上。算法才是关键。
大家一起加油!
以上几点仅代表我个人的观点。如有不妥的地方还请大家指教。