FPGA是一种可以编程的功能强大的逻辑器件。它可以将存储器、CPU等集成在内核中。也可以说,基本上任何的功能FPGA都能实现。那么不知道你是否了解FPGA,是否知道它的特点以及工作原理?下面我们来一起了解一下FPGA。
什么是FPGA?
FPGA(Field-Programmable Gate Array),就是现场可编程门列阵。FPGA是在PAL、GAL和CPLD等可编程器件的基础上进一步发展而来的产物。它是作为专用集成电路领域中的一种定制电路而出现的,它的出现解决了定制电路的不足并且克服了原有可编程器件门电路有限的缺点。
FPGA采用了逻辑单元列阵LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑块(CLB)、输出输入逻辑块(IOE)以及内部连线(interconnect)三个部分。可以说FPGA芯片是小批量系统提高集成度、可靠性的最佳选择之一。有些设计的开发是在普通的FPGA上完成的,因为有些FPGA是厂商提供的便宜但是编辑能力差的FPGA。所以在普通的FPGA上设计完成后将设计转移到一个类似于ASIC的芯片上。还有一种方法就是用CPLD。虽然说FPGA的速度比ASIC的要慢,它不能完成复杂的设计。但FPGA的优点是可以快速的成品,它可以被修改用以改正程序中的错误和更便宜的造价。
现在IC设计验证的技术主流,是用硬件描述语言来完成电路设计,再经过简单的综合与布局,就可以快速的烧录到FPGA上进行测试。这些可编辑元件会被用于实现一些基本的逻辑门电路或者一些更加复杂的组合功能。系统设计师可以根据需要使用可编辑的连接那FPGA内部的逻辑块连接起来。就像是一个芯片中放入了一个电路实验板。设计中可以根据需要改变一个成品FPGA的逻辑块和连接,所以说FPGA可以完成所需要的逻辑功能。
FPGA的基本特点
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
2)它可以用于其它全定制或半定制ASIC电路的中试样片。
3)内部有足够的触发器以及I/O引脚。
4)在ASIC电路中FPGA的设计周期最短、开发费用最低并且风险最小的器件之一。
5)采用高速CHMOS技术工艺,功耗低并且可以与CMOS、TTL电平兼容。
FPGA工作原理
上面说了,FPGA采用了逻辑单元列阵这样的一个概念,内部包括三个部分:
可配置逻辑块CLB(Configurable Logic Block):CLB是FPGA的基本逻辑单元,根据所采用的器件的不同其实际的数量和特性也会不同。
输入输出单元IOE:IOE是芯片与外部电路的物理接口,主要完成不同电气特性下输出输入信号的驱动以及匹配要求。
内部连接线(Interconnect):内部连接线联通FPGA中的所有单元,信号在连接线上的驱动能力以及传送速度取决于连线的长度和技术工艺。
FPGA现场可编程门阵列是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)具有不同的结构。FPGA利用了小型查找表(16×1RAM)去实现组合逻辑,每个查找表都连接着一个D触发器输入端。再用触发器去驱动其它的逻辑电路或者驱动I/O,这样子的结构就构成了一个既可以实现组合逻辑功能有可以实现时序逻辑功能的基本逻辑单元模块。在这些模块之间利用了金属连线进行互相连接,或者利用金属连线连接到I/O模块。
FPGA通过内部静态存储单元加载编程数据来实现逻辑。而逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式取决于存储在存储器单元中的值,也最终决定了FPGA所能实现的功能,允许无限次编程。
总的来说,FPGA不是一门编程语言,是一种综合的硬件描述语言。掌握FPGA可以找到一份好的工作,对于有经验的工作人员,使用FPGA可以让设计变得非常有灵活性。但FPGA入门却有一定难度,因为它不像软件设计,只要有一台计算机,几乎就可以完成所有的设计。它的设计和硬件有关而且硬件设备费用贵,这就有了一定的门槛。不过不管怎样,都是一句话坚持就是胜利。