简单聊一聊FPGA的应用领域和提高方法吧

       开始撰写FPGA技术博客,那么就先简单地写一写FPGA我们能用它做什么,目前FPGA的应用领域主要在哪里,学会了FPGA可以去从事哪些方面的工作等等。FPGA所能应用的领域可以大概分为以下六大类,一些其他领域也可以看成是在此基础上的延伸和扩展。

一、通信领域

        FPGA在通信领域的应用可以说是非常广泛的,同时也可以说是FPGA最早被开发的方向,这主要取决于其芯片内部的特俗构造,在无线通信领域很多模块需要做滤波处理,然而这些滤波函数通常背后涉及到大量的乘除和累加运算操作,FPGA本身具有并行加速能力,这就使得很多无线通信运算的实施和落地成为可能,特别是Xilinx等FPGA芯片供应商又在FPGA芯片内部集成了适合通信领域滤波计算的资源,比如基带处理、RF频射卡等等。

简单聊一聊FPGA的应用领域和提高方法吧  

图1 FPGA雷达方面的无线通信

二、复杂数字信号处理领域

       在复杂数字信号处理领域,之前主要被高端的DSP芯片所垄断,但是随着FPGA芯片的应用更加趋于成熟,FPGA的潜能也慢慢被开发出来,在此领域也表现出很多高端DSP芯片所不及的优势,对于复杂数字信号处理,FPGA芯片供应商随后推出了DDS、FIR、CORDIC、FFT、IFFT、定点数加减乘除法、定点数转浮点数IP核,使得FPGA并行处理复杂数字信号的时代已经到来了,使其能在很多精密仪器仪表、高端医疗设备等复杂数字信号处理应用中占用重要的地位。

简单聊一聊FPGA的应用领域和提高方法吧

 图2 FPGA对复杂的数字信号处理

三、图像视频处理领域

       在图像视频处理领域,过去也是被高端DSP芯片或者华为海思系列芯片所垄断,一般华为海思芯片满足中低端图像视频处理的需求,而TI推出的DSP芯片则把主频提高到上Ghz,瞄准中高端图像视频处理领域。因为随着生活质量的提高,人们对图像的清晰度、分辨率、色泽亮度等等追求更多了,举个例子之前在物资匮乏的时代,大家可能对标清、分辨率640*480的视频也能接受,但是从标清到高清、从高清到蓝光品质等等,图像压缩算法也越来越复杂,同时对嵌入式SOC芯片的实时处理性要求也越来越严格,这就使得FPGA在价格和性能上完全可以胜任高端图像视频实时处理,FPGA厂家也陆续推出了SHIFT RAM等等IP极大地方便了FPGA在此领域的应用开发落地。

简单聊一聊FPGA的应用领域和提高方法吧

 图3 FPGA蓝光级图像压缩处理

四、复杂高速接口处理领域

      在复杂高速接口领域,几乎就是为FPGA量身定做的,FPGA本身并行架构和成百上千的IO口可以复用,以及可以直接通过MIG IP核对ddr3颗粒的内存数据进行快速读写操作,无论是在引脚配置还是在高速数据存储处理方面上占用绝对性的优势,比如GPIB、PCI等等接口的外扩接口芯片往往价格不菲,而使用其他类的SOC芯片,首先IO口复用会受到很大的局限性,其次即使购买了昂贵的外接接口芯片后续对海量数据的收发和处理也非常难设计,最后硬件上的价格会远比使用FPGA要高出很多。

简单聊一聊FPGA的应用领域和提高方法吧

图4 FPGA在高速光纤接口处理上的信号眼图

五、人工智能应用落地领域

    相信自从步入了2020年以后,5G人工智能机会成为大家最关注的话题,人工智能的发展以及在一些方面的落地、5G的顺利高速研发,可以预见在不久的将来人工智能会给人们的生活带来很大便利。FPGA在人工智能方面的应用更是不胜枚举,百度无人车、大疆无人机等等的应用落地,这里面有很多传感器对路线的红绿灯、路障、线路等等信息进行采集融合,需要嵌入式端SOC芯片实时响应处理,同时还有一些深度学习的前端预测算法需要跑在嵌入式设备上,这些都可以使用FPGA来并行加速处理。

简单聊一聊FPGA的应用领域和提高方法吧

 图5 FPGA与人工智能

六、IC前端验证领域

       IC前端验证,猛地一听好像特别高大上,感觉一般人做不来的,好像电视新闻上经常报道的一样需要前期投入很多金钱、投入很多先进设备、投入很多高学历人才才能启动。不得不说IC设计门槛非常高,也非常吃经验积累,其实大家可以去类比PCB设计,设计完原理图做完封装库,再好好布局布线投板焊接测试,这是一个完整的硬件PCB板的设计流程,而IC设计是拿一个个MOS管,一个个PN节在硅胶下搭建一个个特殊需求功能的电路组合,可以认为PCB设计是宏观上的硬件设计,IC设计是微观上的硬件设计,其实PCB板本质上也就是由一个个IC芯片、电阻电容、走线铜皮、过孔丝印组成的。

      对于PCB设计如果前期粗心有设计错误的地方,可能样板不方便跳线就报废了,会损失投板费、焊接费、原件费等等,但是这些费用其实还尚可接受,但是对于IC设计,有句耳熟能详的话:大炮一开,黄金万两,首先IC领域的光刻机开机费是非常昂贵的,其次光刻胶、光刻板也价格不菲,再者其他成百上千道加工工序背后所耗费的人力和物力绝对是很大的开销,所以IC设计领域一直强调要一版成功,这里FPGA在IC前端验证方面就起到了很重要的作用,FPGA验证主要是把IC代码移植到FPGA上面,通过FPGA的EDA工具对其综合、仿真、布局布线最后生成.bit文件,下到FPGA验证板上,去对IC的每一块功能进行评估和验证。

简单聊一聊FPGA的应用领域和提高方法吧

 图6 FPGA用于IC前端验证

       诚然开卷有益多读一些未来想要从事领域的专业性书籍,静下心阅读和实践真的会让大家受益匪浅。比如想去从事数字信号处理方面的工作,该领域在军工武器、仪器仪表、医疗设备等应用极为广泛,那么FPGA和ARM之间常用的通信方式和任务分配一定要多去了解,定点数和浮点数具体怎样定义的一定要去搞清楚,这些数据在FPGA里面如何调用CORDIC等IP核运算要多动手实践,DDS、FIR、FFT、IFFT等常用的数字处理IP核的使用应该熟练掌握;比如想去从事视频图像处理方面的工作,该领域在传统的互联网大厂也悄然兴起并对应有很多高薪岗位,并且掌握这方面技术的人少之又少,那么需要搞明白图像前后处理的时候通常到底在做什么,比如图像前处理:伽马校正、白平衡校正、坏点校正等、图像后处理:图像平滑处理、图像拉普拉斯处理、图像直方图均衡处理等至少需要去多些了解,图像的Sensor驱动、ISP、图像数据压缩和传输开发应该灵活应用,还需要补充基本的matlab操作,甚至有些企业会用到华为海思芯片去搭配FPGA完成特定功能的视频流处理,这背后涉及到一些专业领域的知识记得及时补充;比如想去从事高速接口数据处理方面的工作,该领域是FPGA传统应用方向,市场需求非常大,大中小型企业都有待遇不错的岗位,那么常用的高速接口如PCIe、Ethernet、DDR3、RapidIO、SFP、SATA等最好自己动手实践一下,搞清楚底层的协议,和应用背后的数据缓存、数据传输、数据处理之间等细节;再比如想要从事FPGA验证方面的工作,那么现在业界也非常流行SystemVerilog和UVM的验证方法,这些也需要花更多精力去摸索探究。

       FPGA只是一种工具,有着广大的应用场景需要朋友们在实际项目中活学活用,可以说每个特定的技术领域都需要相应的技术积累和沉淀,未来完全可以选择在某一领域深耕。在遇到前沿领域问题时,请多去阅读一些XILINX官方的手册,因为FPGA应用的很多创新型领域需要摸索研究,才可以实现从开发研究到应用落地的目标,XILINX官方手册对一些特定功能的IP核叙述真的非常详细,原汁原味还有丰富的配图说明。

上一篇:FPGA经验谈系列文章——写代码心中要有电路?


下一篇:Xilinx FPGA资源解析与使用系列——DSP48E(一)