纵观数字集成电路的发展历史,经历了从电子管、晶体管、小规模集成电路到大规模以及超大规模集成电路等不同阶段。发展到现在,主要有 3 类电子器件:存储器、处理器和逻辑器件,如图 1 所示。

图 1 存储器、处理器与逻辑器件
存储器保存随机信息(电子数据表或数据库的内容);处理器执行软件指令以完成各种任务(运行数据处理程序或视频游戏);逻辑器件则提供特殊功能(器件之间的通信和系统必须执行的其他功能)。
一、逻辑器件的分类与 FPGA 的出现
逻辑器件分成两类:一类是固定的或定制的,另一类是可编程的或可变的。固定的或定制的逻辑器件通常称为专用芯片(ASIC),它是为满足特定用途而设计的芯片,例如 MP3 解码芯片。其优点是通过固化的逻辑功能和大规模的工业化生产降低芯片成本,同时提高产品的可靠性;随着集成度提高,ASIC 的物理尺寸也在不断缩小。但 ASIC 的设计周期很长、投资大、风险高,一旦设计结束功能即固化,后续升级改版困难较大。由于电子产品市场正在逐渐细分,为满足快速产品开发的需要,现场可编程逻辑器件(FPGA)应运而生。
自 1984 年 Xilinx 公司推出第一片 FPGA 至今,FPGA 经历了数十年的快速发展,逻辑规模已从最初的 1000 个可用门发展到 1000 万个可用门量级。FPGA 之所以具有巨大的市场吸引力,根本原因在于它不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且开发周期短、投入少,芯片价格不断下降,因而正在越来越多地取代传统 ASIC,特别是在小批量、个性化产品市场方面。
二、FPGA 技术的发展动向
随着芯片设计工艺水平的不断提高,FPGA 技术呈现出以下 4 个主要发展动向。
1. 基于 FPGA 的嵌入式系统(SoPC)技术逐步成熟
System on Chip(SoC)技术在芯片设计领域被越来越广泛地采用,SoPC 技术则是 SoC 技术在可编程器件领域的应用,其核心是在 FPGA 芯片内部构建处理器。Xilinx 公司主要提供基于 PowerPC 的硬核解决方案,Altera 公司提供的是基于 Nios II 的软核解决方案。Altera 为 Nios II 软核处理器提供了完整的软硬件解决方案,可以让客户在较短时间内完成 SoPC 系统的构建和调试工作。
2. FPGA 芯片向高性能、高密度、低压和低功耗方向发展
随着芯片生产工艺不断提高,FPGA 芯片的性能和密度都在不断提高。早期的 FPGA 主要用于完成接口逻辑设计,比如 AD/DA 和 DSP 的粘合逻辑;现在的 FPGA 正在成为电路的核心部件,完成关键功能。在高性能计算和高吞吐量 I/O 应用方面,FPGA 已经取代专用的 DSP 芯片成为最佳实现方案,因此高性能和高密度也成为衡量 FPGA 芯片厂家设计能力的重要指标。
随着性能和密度提高,功耗也逐渐成为 FPGA 应用的瓶颈:虽然 FPGA 比 DSP 等处理器的功耗低,但要明显高于专用芯片(ASIC)。FPGA 厂家正在采用各种新工艺和新技术降低功耗,并已取得明显效果,例如 Altera 公司的 Stratix III 系列 FPGA 的功耗比上一代产品 Stratix II 系列降低了 50% 以上。
3. 基于 IP 库的设计方法
未来 FPGA 芯片密度不断提高,传统的基于 HDL 的代码设计方法很难满足超大规模 FPGA 的设计需要。随着专业的 IP 库设计公司不断增多,商业化的 IP 库种类会越来越全面,支持的 FPGA 器件也会越来越广泛。作为 FPGA 设计者,主要工作是找到适合项目需要的 IP 库资源,再将这些 IP 整合起来完成顶层模块设计;由于商业 IP 库都经过验证,整个项目的仿真和验证工作主要就是验证 IP 库接口逻辑设计的正确性。目前由于国内知识产权保护的相关法律法规还不尽完善,基于 IP 库的设计方法还没有得到广泛应用,但随着 FPGA 密度不断提高和 IP 库价格逐渐趋于合理,这种方法将会成为主流的 FPGA 设计技术。
4. FPGA 的动态可重构技术
FPGA 动态重构技术是指对特定结构的 FPGA 芯片,在一定的控制逻辑驱动下,对芯片的全部或部分逻辑资源实现高速的功能变换,从而实现硬件的时分复用、节省逻辑资源。随着密度不断提高,FPGA 能实现的功能越来越复杂,全部逻辑配置一次所需的时间也变长了,降低了系统的实时性;局部逻辑配置功能可以实现“按需动态重构”,大大提高配置效率。动态可重构的 FPGA 可以在系统运行中对电路功能进行动态配置,主要适用于以下两类系统设计:
(1)新型通信系统。FPGA 的动态重构特性可以适应不同体制和不同标准的通信要求,满足软件无线电技术以及第三代(3G)和第四代(4G)移动通信系统的需要。
(2)可重构计算机。FPGA 具有并行处理能力和动态配置能力,可自动改变硬件来适应正在运行的程序,由此产生了基于这种软硬件环境的全新概念的计算机。
三、FPGA 的工作原理与基本特点
(1)采用 FPGA 设计 ASIC 电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片;
(2)FPGA 可以作为其他全定制或半定制 ASIC 电路的中试样片;
(3)FPGA 内部有丰富的触发器和 I/O 引脚;
(4)FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一;
(5)FPGA 采用高速 CMOS 工艺,功耗低,可以与 CMOS、TTL 电平兼容。
可以说,FPGA 芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA 由存放在片内 RAM 中的程序来设置其工作状态,因此工作时需要对片内的 RAM 进行编程,用户可以根据不同的配置模式采用不同的编程方式。加电时,FPGA 芯片将配置存储器中的数据读入片内编程 RAM,配置完成后进入工作状态;掉电后 FPGA 恢复成“白片”,内部逻辑关系消失,因此 FPGA 能够反复使用。FPGA 的编程无须专用的编程器,只需用通用的 EPROM、PROM 编程器即可;需要修改 FPGA 功能时,只需换一片配置存储器。同一片 FPGA 配以不同的编程数据即可产生不同的电路功能,因此 FPGA 的使用非常灵活。
四、FPGA 的应用领域
1. 电路设计中的连接逻辑与控制逻辑
连接逻辑和控制逻辑是 FPGA 早期发挥作用较大的领域,也是 FPGA 应用的基石。在电路设计中应用 FPGA 的难度较大,要求开发者同时具备硬件(电路)知识和软件应用能力(开发工具)。随着通用和专用 IP 设计逐渐成为一个专门方向,基于成熟 IP 完成系统集成已成为电路设计的主流做法。
2. 产品设计
产品设计是把相对成熟的技术应用到通信、视频、信息处理等特定领域,开发出满足行业需要并能被行业客户接受的产品,其核心是 FPGA 技术与专业技术的结合,此外还涉及与专业客户的界面问题。产品设计包括专业工具类产品及民用产品,前者重点在性能,后者对价格敏感,共同点是以实现产品功能为主要目的。在这一领域,FPGA 具备接口、控制、功能 IP 和内嵌 CPU 等特点,有条件实现构造简单、固化程度高、功能全面的系统,因而产品设计是 FPGA 技术应用最广的市场。
3. 系统级应用
系统级应用是 FPGA 与传统计算机技术结合,实现一种“FPGA 版”的计算机系统:例如用 Xilinx Virtex-4、Virtex-5 系列 FPGA 内嵌 PowerPC CPU,再配合各种外围功能实现一个基本环境,在该平台上运行 Linux 等系统,从而支持各种标准外设和功能接口(如图像接口)。这对于快速构建大型 FPGA 系统很有帮助。系统级应用开发需要具备系统的扩充开发能力,仅停留在编程层面难以发挥 FPGA 的优势。
4. 高性能计算方向的探索
2010 年,美英两国科学家联合演示了一款基于 FPGA 的超高速运算芯片:研究人员在 FPGA 芯片内创建逾 1000 个微电路,使其相当于集成了 1000 个内核的处理器,每个内核都可以按自己的指令工作,并为每个内核分配一定量的专用存储空间。测试中该芯片每秒能处理 5 GB 数据,处理速度约为当时台式机的 20 倍,而能耗远低于传统方案。研究者指出,FPGA 未能在标准电脑上普及的主要原因是编程难度较大;但随着英特尔、ARM 等厂商开始开发集成传统 CPU 与 FPGA 的芯片,此类处理器有望得到更广泛的应用。