1、FPGA简介
1、FPGA(Field Programmable Gate Array),即现场可编程门阵列,它是一种半制定的数字集成电路。FPGA凭借其灵活性高、开发周期短、处理能力强(并行)等特点,广泛应用于通信、图像处理、医疗等领域。
1.1FPGA是啥
FPGA(Field Programmable Gate Array),即现场可编程门阵列,它是在PAL ,GAL,CPLD等可编程器件的基础上进一步发展产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,能够解决定制电路的不足,又克服了原有可编程器件门电路个数有限的缺点。
如下图用面包板搭建电路所示
从图中可以看出该电路里面有晶振和一根一根的线,以及各种小芯片。如果你自己亲自动都去搭建它其实是很麻烦的一件事,需要一根线一根线去接,不断对照原理图等操作。如果我们想要实现更加复杂的功能的话,通过面包搭建方式会使得电路板布局、布线十分困难,还可能会极大影响整体性能、搭建体积大,实用性差。为了改变这种情况,可以通过专用集成电路(ASIC)来实现,我们可以将实现的特定需求交给ASIC厂商,设计出一个专用集成电路芯片出来。但同时需要面临生成周期长、芯片难验证、芯片内部电路无法更改等问题。
于是,FPGA由此诞生,由Xilinx创始人之一Ross Freeman发明,属于可编程逻辑器件PLD(Programmable Logic Device)的一种。要知道一块专用的ASIC定制集成电路的芯片他在出厂前就已经定死了,虽然定制集成电路芯片操作简单,但是缺乏灵活性,而FPGA就不一样了,你可以通过特定的编程语言如Verilog、VHDL等硬件描述语言将数字时钟的逻辑编写好,下载到FPGA内部,它会根据硬件描述语言生成一个电路出来,去完成相应功能,当你不想要这个功能是你也可以随时将内部程序擦除,或者用一个新的设计去覆盖原有的设计。
FPGA的应用
通信方面:得益于FPGA内部结构特点,可以容易实现分布式算法结构,这对于实现无线通信中的高速数字信号处理十分有利,因为无线通信系统中,许多功能模块需要大量滤波运算,这些滤波函数往往需要大量的乘和累加操作。Xilinx公司的FPGA内部集成了大量适合通信领域的资料如基带处理、接口和连接功能以及(射频卡)等
数字信号处理方面:在数字信号处理方面,FPGA的高速并行处理能力强。FPGA最大优势是其并行处理机制,利用并行架构实现数字信号处理功能。
视频图像处理领域:随着时代变化,对图像的稳定性、清晰度、亮度和颜色有了更高的追求,从标清到4k蓝光。这就要求芯片能够实时处理的数据量越来越大,并且图像的压缩算法也越来越复杂。这时FPGA的优势就体现出来了,它可以高效处理数据。
高速接口设计:FPGA的高速处理能力以及多达成千上百的IO决定了它在高速接口设计的优势。好比我们需要和PC端做数据交互,将采集到数据送给PC处理,或者将处理后的结果传给PC进行显示。传统方法就是对应接口使用对应接口芯片,在需要多接口时,这可能会造成硬件外设复杂,体积大等问题,如果使用FPGA,不通过接口逻辑可以在FPGA内部去实现,就没有必要多接口芯片。
人工智能领域:FPGA在人工智能系统的前端部分也得到了应用。例如自动驾驶需要对驾驶路线、红绿灯、路障等各种交通信号进行采集,需要用到很多中传感器,FPGA可以对对这些传感器进行综合驱动和融合处理,智能机器人需要对图像进行采集和处理时也可以使用FPGA来完成。
IC验证:如果需要保证IC一版成功需要进行充分的仿真测试和FPGA验证,仿真验证是在服务器上面跑仿真软件测试;FPGA验证主要是把IC的代码移植到FPGA上面,使用FPGA综合进行综合、布局布线到最终生成bit文件,然后下载FPGA验证板上面进行验证,同时对于复杂IC可进行拆分,分别去验证,FPGA生成的电路非常接近真实IC芯片。这样方便IC人员自己去验证。