FPGA概述
FPGA是现场可编程逻辑门阵列的简称,是基于数字电路发展而来的一种高度定制化的芯片种类。FPGA的前身为PLD(可编程逻辑器件)和CPLD(复杂可编程逻辑器件),(目前这两种器件在组合逻辑领域有较大的应用)。FPGA的出现主要是弥补ASIC的设计周期过长、设计成本较高的缺陷,衍生出来的一种新型的器件。FPGA的底层电路有很多种,比较常用且可以大规模集成的是由MOS组成的传输门。而ASIC电路一般采用CMOS构成的逻辑门来实现逻辑控制。两者底层的区别决定了在顶层应用上的区别。
FPGA传输门的优劣
传输门,一般采用两传输管对称排列而成,使用的是MOS的S和D作为电流通道,G作为开关信号。这种设计的好处在于G,S和D全部参与逻辑运算,通过设置互斥的结构,可以实现一个信号空出来作为逻辑配置信号,从而实现硬件层面的可编程。与之相对的,CMOS只有G和S(或D,取决于MOS管的类型)参与逻辑计算,另外一个信号需要连接到VDD(或者GND)上来确保电压的稳定。这种方式比传输门少了一个连接点,多了电压的稳定。所以,CMOS电路一般比传输门电路的响应速度要快。
FPGA芯片的优劣
FPGA芯片较一般ASIC芯片,最突出的特点就是可编程。和一般芯片先确定具体的功能然后再版图设计不同,FPGA芯片先预设资源,生成匹配某些需求的版图后,通过编程软件配置到具体的功能。版图生成顺序的变化,导致了FPGA芯片独具一格的特点。
(1)资源剩余
FPGA在电路资源配置时,必须考虑到一定应用范围的需求,实际的芯片往往会剩余部分的资源,无法完全利用。这一点在学习FPGA开发时可以明显的感受到。
(2)性能降低
FPGA由于使用的是传输门电路,其在各种性能上弱于同层次的ASIC,尤其是先版图的设计导致很多版图优化实现功能的方法无法在FPGA中得到应用。
(3)逻辑简单
FPGA的逻辑和数字电路系统的实现逻辑基本一致,所以实现各类控制的逻辑是非常简单的。这个也是FPGA能够和其他ASIC芯片竞争的关键所在。FPGA实现逻辑只需要考虑硬件特性,而不需要按照语言逻辑执行。而电路逻辑是并行的,这意味着FPGA可以真正实现和底层数字电路的完美交互。与此同时,FPGA有可以通过状态机等方法实现顺序执行,从而模拟一些通信协议,实现和ASIC芯片的交互。
FPGA系统的应用
和ARM或DSP这类由ASIC定制的嵌入式芯片相比,FPGA的资源可能不是特别充足,与PC等上位机的交互也不是特别的灵活,对已有协议的支持可能没有那么友好。但是,FPGA在数字电路的连接上和并行处理上有着较大的优势。采用FPGA,一般用于两种目的:ASIC早期开发和短周期系统开发。前者是弥补ASIC开发的成本过高,后者是弥补ASIC开发的时间过长。
目前来看,Xilinx和Altera等主要FPGA厂商都在拓展FPGA的功能,以求提高FPGA的应用范围。主要应用也是在嵌入式和IC验证等方向。FPGA通过和其他芯片配合,可以有效各类硬件的智能化应用。