自从三年前毕业后参加工作,一直从事着FPGA或者和FPGA相关的工作。现在本人就这几年的经验,来谈谈FPGA的应用范围和其特点。
FPGA的全称是Field Programble Gate Array,译成中文是一个稍显蹩脚的名字:现场可编程门阵列。这么一个拗口的名字是什么意思呢?下面本人来做一个感性的解释:) 现场可编程门阵列,这里的现场是什么意思呢?OK,现场的意思呢就是马上,当场的意思,意思就是你要设计的电路经过综合,布局布线后的bit文件可以马上下载到FPGA里,然后在FPGA里发挥作用。可编程的意思就不用说了,就是这个芯片是可以反复“擦写”(套用一下MCU或者DSP的常见概念)的。那么门阵列呢?门阵列是什么意思?学过电子类专业的人都知道,只要是数字电路,一定会涉及到“门”这个概念,在数字电路中,要实现一个功能,就要有各种门组成一定的逻辑来实现,这个各种门可以是异或门,与非门,多路复选器等。因此,门阵列这里的意思就是FPGA里有这种门阵列(往深里讲,实际上在FPGA里实现组合逻辑功能的基本上还是LUT),而且是可编程的,用户可以使用FPGA里的门阵列来实现你想要实现的功能。粗浅的解释了一下这个概念,博主心想,这个FPGA的发明者可真够**的,起了个这么拗口但是又贴切无比的名字!
下面博主来讲讲FPGA的应用范围。博主一直从事通信系统设备的研发,这两年做IC设计,所以这个应用范围就从博主熟悉的领域来阐述,不熟悉的怕讲错了贻笑大方。
博主认为FPGA的应用可分三大类:1. ASIC的原型系统验证。 2. 在某些领域需要厂家作出自己灵活的功能,不需要死板的ASIC或者是在该应用领域还没有相关的ASIC出现。3. 在产品总销量不大的情况下,使用FPGA来完成功能比购买别人的ASIC或者自己设计的ASIC更加省成本。 现在先讲讲第一类, ASIC的原型系统验证。ASIC就是专用集成电路,这是一个跟通用集成电路相对应的概念,MCU,Flash, DDR SDRAM等都是通用集成电路,用这些IC可以设计出不同的产品。而ASIC则是专用的IC,只能在某一个产品或者某种类型的产品中应用。比方说,万用表里的主芯片,ADSL里面的调制解调芯片,路由器里面的Network Processor等。这些芯片只具有实现该种特定功能,必须应用于该类型的产品才能发挥作用。由于设计ASIC的成本很高,在变成芯片前要反复的对其功能进行验证,因此FPGA就可以作为验证平台,把芯片流片前的代码(或者部分代码,现在有些芯片规模很大,往往要N多片FPGA级联才能实现部分功能的验证)下载到FPGA里进行多方位的测试。现在再来讲讲第二种功能,比如说通信设备里有一种叫软件无线电的技术,意思就是可以通过改变代码来实现对不同制式信号的接收。这样子节省了运营商成本,也节省了设备商成本,这种情况下使用固定功能的ASIC就很麻烦,因此FPGA是一个很好的选择。第三种情况则是在该应用中没有专用的IC或者专用的IC很昂贵,所以只好用FPGA来实现该功能。
这是本人的一些粗浅见解,笼统的说了一大堆,也该喝喝水去了~~~~
用户615011 2013-1-8 19:59
用户1696769 2012-9-26 22:37