FPGA 世界伟大的发明

 

Field Programmable Gate Array,即现场可编程逻辑门阵列,用比较概念的语言来描述FPGA:在PAL(Programmable Arry Logic可编程逻辑阵列)、GAL(Generic Array Logic 通用阵列器件)等可编程器件的基础上进一步发展的产物。它是作为ASIC(专用集成电路)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门级有限的缺点。

以上的“官方语言”听起来可能会让你犯迷糊,下面我们就举例说明,帮你捋一捋:早期要实现一个收音机的功能,需要电容、电阻、三极管等等一系列分立的元器件来搭建一个复杂的电路,这种集成电路,不仅占用面积大,分立的元器件使用量也比较多。

 

 

如果把这些分立的元器件集成到一个芯片中,在这个芯片的外围只需要少量的电阻、电容等配合就能实现完整的收音机功能,这就是ASIC芯片。ASIC芯片将数量庞大的分立元器件集成到芯片内部,电路板面积更小,集成度更高,电路的可靠性也变强,这些都是ASIC芯片带来的好处。

 

 

然而,ASIC在研发的过程中可能会存在这样的问题,比如研发一种数字信号发生器,研发出一版芯片之后,如果其中某些功能设计得不是很合理,或者性能达不到要求,此时就需要更改设计,更改完之后,要把设计重新提交给芯片制造厂家,芯片制造厂家要重新制造样片。在这个过程中,要是让芯片制造厂家重新做一款专用芯片的价格是非常昂贵的。它可不像设计一个电路板,如果产生飞线了,不能当作成品去卖,那就把这个错误更改之后,让电路板厂家重新做一套电路板,现在做这种电路板都不是很贵,比如做一个两层板,性能要求不高,面积不大的话,可能几十块钱都能搞定。但是做ASIC这种专用的集成电路芯片,自己设计找芯片制造厂家去做,一颗芯片不是几千上万就能做的。

 

 

这时候FPGA就发挥了它的作用,因为FPGA可以通过编写软件,用硬件描述语言Verilog HDL或者VHDL来编写程序实现信号发生器的功能,然后把这个程序烧写到FPGA芯片内部,对这个程序的功能进行测试,如果对这个功能或者性能不满意的话,可以去修改程序,改完程序经重新综合之后,生成烧写的代码放到FPGA芯片内部,这样就可以反复的实现编程,对设计的产品进行迭代,把迭代的问题通过软件的方式实现。

通过以上描述我们可以发现,ASIC芯片出厂的时候已经设计好了一系列功能,我们只需要去查Datasheet,照着功能连线就可以了。而FPGA不同,拿到它的时候是一块空白的或者半成品的芯片,这颗芯片怎么工作,或者说内部电路怎么连线都是通过编程来自主实现的,你可以拥有一定的自主权,有一部分可控,而不是单纯的去使用。这时候你就相当于是一块芯片的设计者,听起来是不是很神奇,这就是FPGA的精妙之处。所以使用FPGA就需要比使用其他的专有芯片更多的硬件知识,还要有一定的逻辑思维能力。

 

 

FPGA有什么用

━━━━━━

 

技术飞速的发展,对FPGA的依赖越来越高。为了让大家在学习FPGA的过程中,了解到未来在哪一个领域有属于自己的一片天空,下面细说一下FPGA的应用领域?

 

一、通信领域

FPGA最广泛的应用是在通信领域,用FPGA去处理一些通信协议,并完成高速数据的收发和交换。一方面通信领域需要高速的通信协议处理方式,另一方面通信协议在随时的修改,非常不适合做成专有芯片,因此可以灵活改变功能的FPGA就成了首选,FPGA通常应用于通信设备高速接口的电路设计。

 

二、算法领域

通常说的信号处理、视频、图像、图形处理等,这个方向门槛相对于第一个领域要高一些。算法还有一个FPGA的协同优化问题,很大程度上这个方向已经超过了信号处理的范畴,而且图像在往高维度一步一步的发展。传统信号是一维度的,比如声音。但是对于视频或者图像信号,图像信号是一个二维信号,视频再加上时间就是三维信号,所以这个信号的维度在逐次的增加,所以对于这些复杂的信号的处理,需要FPGA强大的处理功能,去完成各种各样的在现实生活中遇到的工程问题,那么,这就需要FPGA的开发者有非常强大的数学功底,能够理解较为复杂的数学算法,此外还要了解FPGA内部的各种资源,使之能够成为实际的一些运算电路。

 

三、嵌入式领域

也就是SoC系统级芯片,严格来说这不是在FPGA设计范畴之内,只不过说是FPGA这个平台来构建一个嵌入式系统的底层硬件环境,然后我们的设计者在上层去编写嵌入式的应用。这个不单单是使用FPGA,而是在FPGA这个平台上去构建一个操作系统,比如我们熟知的Windows系统,打开Windows的任务调度、协同工作;包括数据的存储、数据的处理,本身来说事务性的工作更加繁多。

 

 

FPGA前景如何

━━━━━━

 

 

物联网的巨大商机:监控、安防领域CPU很难做到多通道的数据处理以及智能检测分析,FPGA可以很轻松的去解决这些问题。工业自动化FPGA可以做到多通道的马达控制,目前马达电力消耗占据全球能源消耗的大头,在节能环保的趋势下,未来各类的精准控制马达将获得采用。这是FPGA大显身手的领域,一片FPGA可以控制大量马达,FPGA可以应用于智能工厂方案,在云端和网关端也有强大优势,如果跟终端控制台结合,则优势会增加。

 

 

人工智能的发展,必然是多传感器的融合。主人一回到家,音乐自动播放,电灯自动打开,安防系统就自动关闭...这些场景需要大量的融合算法,这是FPGA擅长的领域。未来机器人在控制上也需要做大量的并行控制,比如机器人的智能化需要视觉的大数据基数,对于大数据量的处理,这也是FPGA擅长的一个方面。FPGA本身是非常适合并行计算的,因为它本身是一个硬件可编程的器件,而CPU一旦固定之后大部分是靠软件的执行操作,而软件跟硬件相比下,执行效率是比不过硬件的。

 

 

 

关注微信公众号

热门推荐