昨天的文章,我们比较了几种图像算法的实现方式,通过比较可以看出FPGA具有可以实时、灵活的更新和开发,提高设计的灵活性和通用性的优点。汽车电子中的车载电视、车载可视电话等都是基于FPGA进行的数字图像处理;数字电视系统中,图像显示、图像压缩、图像格式转化、I/O接口等都是用FPGA进行处理。所以今天我们再来聊一聊FPGA。

可编程逻辑器件(FPGA)
可编程逻辑器件(Programmable Logic Device,PLD)是一种数字电路,它可以由用户来进行编程和配置,进而用来解决各种不同的逻辑设计问题。可编程器件发展的初期主要是用来解决存储问题,随着后来的发展转向各种逻辑应用。在结构、工艺、集成度、功耗、速度等方面有了很大的提高和改进。

可编程逻辑器件的发展阶段
可编程逻辑器件的发展主要经历以下几个阶段:
- 早期的可编程逻辑器件,早期的PLD主要是用来解决各种存储问题,如可编程只读存储器(ROM)、可编程只读存储器(PROM)、紫外线可擦除存储器(EPROM)、电可擦除存储器(EEPROM),由于结构限制,它们只能完成简单的数字逻辑功能。
- 结构上稍微复杂的可编程逻辑器件,80年代初期,AMD公司和Lattice公司先后推出了各自的可编程逻辑器件,主要为可编程逻辑器件(PAL)、通用阵列逻辑(GAL)、可编程逻辑器件(PLA)等等,这些PLD在设计上有很强的灵活性,可以实现速度性能较好的逻辑功能,但它们结构简单,只能实现小规模的电路设计。
- 复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)和现场可编程门阵列(Field Programmable Logic Device),这类器件的体系结构和逻辑单元灵活、集成度高、适用范围广。这类器件兼容了PLD和通用门阵列的优点,具备实现大规模电路设计的能力,编程也灵活,开发周期短、设计成本低、开发工具成熟、质量可靠,因此被大规模使用。
目前FPGA具备的功能
经过这么多年的发展,目前的FPGA已经具备了以下的功能:
- 支持模数转换和数模转换;
- 采用片内锁相环,支持高速时钟,减少信号的畸变,时钟可以复用;
- 有丰富的布线资源;
- 在片内有分布RAM和块RAM;
- 包含独立的快速逻辑进位模块,有专门的乘法器;
- 逻辑功能块的局部布线和相互间的通用布线,可以精确的预测网线的延时;
- I/O模块有快速的I/O驱动、寄存的输入输出、三态使能控制等控制特性。

FPGA的发展方向
随着微电子技术的快速发展,速度更快、集成度更高的FPGA在不断出现,结构和工艺的提高,使FPGA的资源越来越丰富,可实现的功能越来越强大。
所以FPGA有如下的发展趋势:
- 向更高密度、更大容量迈进;
- 朝着低成本、低电压、低功耗、微封装方向发展;
- IP资源复用得到普遍的认同并成为主要的设计方式;
- MCU、DSP、MPU等嵌入式处理器IP成为FPGA应用的核心。
小结
通过上面的梳理,我们可以设想,如果将处理器以IP的形式嵌入到FPGA中,则未来的某些电路可能只有两部分:模拟部分和FPGA芯片,可能还有些存储器。所以可以看出片上可编程系统(System on Programmable chip,SoPC)将成为FPGA发展的重点。
这样的发展趋势,在某种程度上面,对我国的数字电路产业不利。我们必须认识到目前全球FPGA市场上面,中国力量还很薄弱,如果SoPC成为数字电路的主流,那么毫无疑问,我国的数字电路产业的发展,将会更加困难。