《FPGA 应用开发入门与典型实例》(修订版)
作者:华清远见
第 1 章 FPGA 系统设计基础
本章目标
了解 FPGA 技术的发展历史和动向
了解 FPGA 的典型应用领域
了解主流的 FPGA 芯片厂家及其代表产品
了解工程项目中 FPGA 芯片选择策略和原则
专业始于专注 卓识源于远见
1.1 FPGA 技术的发展历史和动向
1.1.1 FPGA 技术的发展历史
纵观数字集成电路的发展历史,经历了从电子管、晶体管、小规模集成电路到大规模以及超大规模集成电
路等不同的阶段。发展到现在,主要有 3 类电子器件:存储器、处理器和逻辑器件。
存储器保存随机信息(电子数据表或数据库的内容);处理器执行软件指令,以便完成各种任务(运行数
据处理程序或视频游戏);而逻辑器件可以提供特殊功能(器件之间的通信和系统必须执行的其他所有功
能)。
逻辑器件分成两类:
① 固定的或定制的。
② 可编程的或可变的。
其中,固定的或定制的逻辑器件通常称为专用芯片(ASIC)。ASIC 是为了满足特定的用途而设计的芯片,
例如 MP3 解码芯片等。其优点是通过固化的逻辑功能和大规模的工业化生产,降低了芯片的成本,同时
提高了产品的可靠性。随着集成度的提高,ASIC 的物理尺寸也在不断的缩小。
但是,ASIC 设计的周期很长,而且投资大,风险高。一旦设计结束后,功能就固化了,以后的升级改版
困难比较大。电子产品的市场正在逐渐细分,为了满足快速产品开发,产生了现场可编程逻辑器件(FPGA)。
自 1984 年 Xilinx 公司推出了第一片现场可编程逻辑器件(FPGA)至今,FPGA 已经历了 20 几年的快速
发展历程。特别是近几年来,更是发展迅速。FPGA 的逻辑规模已经从最初的 1000 个可用门发展到现在的
1000 万个可用门。
FPGA 技术之所以具有巨大的市场吸引力,其根本原因在于:FPGA 不仅可以解决电子系统小型化、低功
耗、高可靠性等问题,而且其开发周期短、投入少,芯片价格不断下降。FPGA 正在越来越多地取代传统
上 ASIC,特别是在小批量、个性化的产品市场方面。
1.1.2 FPGA 技术的发展动向
随着芯片设计工艺水平的不断提高,FPGA 技术呈现出了以下 4 个主要的发展动向。
1.基于 FPGA 的嵌入式系统(SoPC)技术正在成熟
System on Chip(SoC)技术在芯片设计领域被越来越广泛地采用,而 SoPC 技术是 SoC 技术在可编程器件
领域的应用。这种技术的核心是在 FPGA 芯片内部构建处理器。Xilinx 公司主要提供基于 Power PC 的硬核
解决方案,而 Altera 提供的是基于 NIOSII 的软核解决方案。
Altera 公司为 NIOSII 软核处理器提供了完整的软硬件解决方案,可以让客户短时间完成 SoPC 系统的构建
和调试工作。
如图 1.1 所示,是 Altera Stratix III FPGA 基于 NIOS II 解决方案的内部结构图。
‐ 2 ‐
专业始于专注 卓识源于远见
图 1.1 NIOS II 解决方案
2.FPGA 芯片向高性能、高密度、低压和低功耗的方向发展
随着芯片生产工艺不断提高,FPGA 芯片的性能和密度都在不断提高。早期的 FPGA 主要是完成接口逻辑
设计,比如 AD/DA 和 DSP 的粘合逻辑。现在的 FPGA 正在成为电路的核心部件,完成关键功能。
在高性能计算和高吞吐量 I/O 应用方面,FPGA 已经取代了专用的 DSP 芯片,成为最佳的实现方案。因此,
高性能和高密度也成为衡量 FPGA 芯片厂家设计能力的重要指标。
随着 FPGA 性能和密度的提高,功耗也逐渐成为了 FPGA 应用的瓶颈。虽然 FPGA 比 DSP 等处理器的功
耗低,但是要明显高于专用芯片(ASIC)的功耗。FPGA 的厂家也在采用各种新工艺和技术来降低 FPGA
的功耗,并且已经取得了明显的效果。
例如,Altera 公司的 StratixIII 系列 FPGA 的功耗比上一代产品 StratixII 系列降低了 50%以上。
3.基于 IP 库的设计方法
未来的 FPGA 芯片密度不断提高,传统的基于 HDL 的代码设计方法很难满足超大规模 FPGA 的设计需要。
随着专业的 IP 库设计公司不断增多,商业化的 IP 库种类会越来越全面,支持的 FPGA 器件也会越来广泛。
作为 FPGA 的设计者,主要的工作是找到适合项目需要的 IP 库资源,然后将这些 IP 整合起来,完成顶层
模块设计。由于商业的 IP 库都是通过验证的,因此整个项目的仿真和验证工作主要就是验证 IP 库的接口
逻辑设计的正确性。
目前,由于国内的知识产权保护的相关法律法规还不尽完善,基于 IP 库的设计方法还没有得到广泛应用。
但是随着 FPGA 密度不断提高和 IP 库的价格逐渐趋于合理化,这种设计方法将会成为主流的 FPGA 设计
技术。
4.FPGA 的动态可重构技术
FPGA 动态重构技术主要是指对于特定结构的 FPGA 芯片,在一定的控制逻辑的驱动下,对芯片的全部或部
分逻辑资源实现高速的功能变换,从而实现硬件的时分复用,节省逻辑资源。
‐ 3 ‐
专业始于专注 卓识源于远见
由于密度不断提高,FPGA 能实现的功能也越来越复杂。FPGA 全部逻辑配置一次的需要的时间也变长了,
降低了系统的实时性。局部逻辑的配置功能可以实现“按需动态重构”,大大提高了配置的效率。
动态可重构的 FPGA 可以在系统运行中对电路功能进行动态配置,实现硬件的时分复用,节省了资源,主
要适用于以下两个系统设计。
① 最新通信系统。
FPGA 的动态重构特性可以适应不同体制和不同标准的通信要求,满足软件无线电技术的发展和第三代
(3G)和第四代(4G)移动通信系统的需要。
② 重构计算机:FPGA 具有并行处理能力和动态配置能力,可自动改变硬件来适应正在运行的程序,产生
了基于这种软硬件环境的全新概念的计算机。
1.2 FPGA 的典型应用领域
1.2.1 数据采集和接口逻辑领域
1.FPGA 在数据采集领域的应用
由于自然界的信号大部分是模拟信号,因此一般的信号处理系统中都要包括数据的采集功能。通常的实现
方法是利用 A/D 转换器将模拟信号转换为数字信号后,送给处理器,比如利用单片机(MCU)或者数字
信号处理器(DSP)进行运算和处理。
对于低速的 A/D 和 D/A 转换器,可以采用标准的 SPI 接口来与 MCU 或者 DSP 通信。但是,高速的 A/D
和 D/A 转换芯片,比如视频 Decoder 或者 Encoder,不能与通用的 MCU 或者 DSP 直接接口。在这种场合
下,FPGA 可以完成数据采集的粘合逻辑功能。
2.FPGA 在逻辑接口领域的应用
在实际的产品设计中,很多情况下需要与 PC 机进行数据通信。比如,将采集到的数据送给 PC 机处理,
或者将处理后的结果传给 PC 机进行显示等。PC 机与外部系统通信的接口比较丰富,如 ISA、PCI、PCI
Express、PS/2、USB 等。
传统的设计中往往需要专用的接口芯片,比如 PCI 接口芯片。如果需要的接口比较多,就需要较多的外围
芯片,体积、功耗都比较大。采用 FPGA 的方案后,接口逻辑都可以在 FPGA 内部来实现了,大大简化了
外围电路的设计。
在现代电子产品设计中,存储器得到了广泛的应用,例如 SDRAM、SRAM、Flash 等。这些存储器都有各
自的特点和用途,合理地选择储存器类型可以实现产品的最佳性价比。由于 FPGA 的功能可以完全自己设
计,因此可以实现各种存储接口的控制器。
3.FPGA 在电平接口领域的应用
除了 TTL、COMS 接口电平之外,LVDS、HSTL、GTL/GTL+、SSTL 等新的电平标准逐渐被很多电子产
品采用。比如,液晶屏驱动接口一般都是 LVDS 接口,数字 I/O 一般是 LVTTL 电平,DDR SDRAM 电平
一般是 HSTL 的。
在这样的混合电平环境里面,如果用传统的电平转换器件实现接口会导致电路复杂性提高。利用 FPGA 支
持多电平共存的特性,可以大大简化设计方案,降低设计风险。
‐ 4 ‐
专业始于专注 卓识源于远见
1.2.2 高性能数字信号处理领域
无线通信、软件无线电、高清影像编辑和处理等领域,对信号处理所需要的计算量提出了极高的要求。传
统的解决方案一般是采用多片 DSP 并联构成多处理器系统来满足需求。
但是多处理器系统带来的主要问题是设计复杂度和系统功耗都大幅度提升,系统稳定性受到影响。FPGA
支持并行计算,而且密度和性能都在不断提高,已经可以在很多领域替代传统的多 DSP 解决方案。
例如,实现高清视频编码算法 H.264。采用 TI 公司 1GHz 主频的 DSP 芯片需要 4 颗芯片,而采用 Altera
的 StratixII EP2S130 芯片只需要一颗就可以完成相同的任务。FPGA 的实现流程和 ASIC 芯片的前端设计相
似,有利于导入芯片的后端设计。
1.2.3 其他应用领域
除了上面一些应用领域外,FPGA 在其他领域同样具有广泛的应用。
(1)汽车电子领域,如网关控制器/车用 PC 机、远程信息处理系统。
(2)军事领域,如安全通信、雷达和声纳、电子战。
(3)测试和测量领域,如通信测试和监测、半导体自动测试设备、通用仪表。
(4)消费产品领域,如显示器、投影仪、数字电视和机顶盒、家庭网络。
(5)医疗领域,如软件无线电、电疗、生命科学。
1.3 FPGA 的工艺结构
随着 FPGA 的生产工艺不断提高,各种新技术被广泛应用到 FPGA 芯片的设计生产的各个环境。其中,生
产工艺结构决定了 FPGA 芯片的特性和应用场合。
如图 1.2 所示是 FPGA 的主要几种生产工艺及典型产品。
图 1.2 FPGA 生产工艺及典型产品
1.3.1 基于 SRAM 结构的 FPGA
目前最大的两个 FPGA 厂家 Xilinx 和 Altera 的所有 FPGA 产品都是基于 SRAM 工艺来实现的。这种工艺
的优点是可以用较低的成本来实现较高的密度和较高的性能;缺点是掉电后 SRAM 会失去所有配置,导致
每次上电都需要重新加载。
‐ 5 ‐
专业始于专注 卓识源于远见
重新加载需要外部的器件来实现,不仅增加了整个系统的成本,而且引入了不稳定的因素。加载的过程容
易受到外界干扰而导致加载失败,也容易受到“监听”而破解加载文件的比特流。
虽然基于 SRAM 结构的 FPGA 存在这些缺点,但是由于其实现成本低,还是得到了广泛的应用,特别是民
用产品方面。
1.3.2 基于反融丝结构的 FPGA
Actel 公司擅长出品反融丝结构的 FPGA。这种结构的 FPGA 只能编程一次,编程后和 ASIC 一样成为了固
定逻辑器件。Quick Logic 公司也有类似的 FPGA 器件,主要面向军品级应用市场。
这样的 FPGA 失去了反复可编程的灵活性,但是大大提高了系统的稳定性。这种结构的 FPGA 比较适合应
用在环境苛刻的场合,比如高振动,强电磁辐射等航空航天领域。同时,系统的保密性也得到了提高。
这类 FPGA 因为上电后不需要从外部加载配置,所以上电后可以很快进入工作状态,即 “瞬间上电”技
术。这个特性可以满足一些对上电时间要求苛刻的系统。由于是固定逻辑,这种器件的功耗和体积也要低
于 SRAM 结构的 FPGA。
1.3.3 基于 Flash 结构的 FPGA
Flash 具备了反复擦写和掉电后内容非易失特性,因而基于 Flash 结构的 FPGA 同时具备了 SRAM 结构的
灵活性和反融丝结构的可靠性。这种技术是最近几年发展起来的新型 FPGA 实现工艺,目前实现的成本还
偏高,没有得到大规模的应用。
系统安全的角度来看,基于 Flash 的 FPGA 具有更高的安全性,硬件出错的几率更小,并能够通过公共网
络实现安全性远程升级,经过现场处理即可实现产品的升级换代。这种性能减少了现场解决问题所需的昂
贵开销。
在 Flash 器件中集成小型的 NVM(Non Volatile Memory,非易失性存储器)模块可以在某些消费电子和汽
车电子应用中实现授权技术。这种 NVM 可以存储安全通信所需的密钥,或者针对基于广播的系统实现机
顶盒设备的串行化。
可重编程的 NVM 在编程时需要一定的电压,因此 SRAM 用户必须从外部提供这种电压。基于 Flash 的 FPGA
采用内部电荷泵进行编程,不需要集成 NVM 模块,而基于 SRAM 的 FPGA 通常缺乏这种功能。
Flash 器件的工作频率可达 350MHz,利用率超过 95%,而 SRAM FPGA 一般能够达到的利用率仅为 70~
75%。Flash FPGA 在加电时没有像 SRAM FPGA 那样大的瞬间高峰电流,并且 SRAM FPGA 通常具有较高
的静态功耗和动态功耗。
例如,一块 40 万门的基于 Flash 的 FPGA 需要 20mA 的静态电流,然而同等规模的基于 SRAM 的 FPGA
所需的电流达 100mA。SRAM FPGA 的功耗问题往往迫使系统设计者不得不增大系统供电电流,并使得整
个设计变得更加复杂。
1.4 主流的 FPGA 芯片厂家及其代表产品
目前市场上 FPGA 芯片主要来自 Xilinx 公司和 Altera 公司。这两家公司占据了 FPGA 80%以上的市场份额,
其他的 FPGA 厂家产品主要是针对某些特定的应用。比如,Actel 公司主要生产反融丝结构的 FPGA,以满
足应用条件极为苛刻的航空、航天领域产品。
下面介绍 Xilinx 和 Altera 两家公司的代表产品。
1.4.1 Xilinx 公司的代表产品
‐ 6 ‐
专业始于专注 卓识源于远见
1.面向高性能的 Virtex™‐5 FPGA 系列
终极系统集成平台——Virtex-5 系列 FPGA 提供了 4 种新型平台,每种平台都在高性能逻辑、串行连接
功能、信号处理和嵌入式处理性能方面实现了最佳平衡。现有的 3 款平台如下。
(1)Virtex-5 LX 平台:针对高性能逻辑进行了优化。
(2)Virtex-5 LXT 平台:针对带有低功耗串行连接功能的高性能逻辑进行了优化。
(3)Virtex-5 SXT 平台:针对带有低功耗串行连接功能的 DSP 和存储器密集型应用进行了优化。
2.面向低成本的 Spartan‐3 系列 FPGA
90nm Spartan-3 系列 FPGA 的发售量已经超过 3000 万片,是业内首款大容量 FPGA 系列产品,带有多
个针对特定领域进行了优化的平台。
(1)面向数字信号处理的 Spartan-3A DSP 平台。
这个平台对 DSP 进行了优化,适于那些需要集成式 DSP MAC 和扩展存储器的应用。特别适于那些需要
低成本 FPGA 来实现信号处理(如军用无线电、监视照相机、医学成像等)的应用设计。
(2)面向非易失性应用的 Spartan-3AN 平台。
这个平台主要针对需要非易失性、系统集成、安全、大型用户 Flash 的应用。特别适于空间敏感型或安全
应用,以及低成本嵌入式控制器。
(3)面向主流应用的 Spartan-3 平台。
① Spartan-3A 平台:针对 I/O 进行了优化。
这个平台是针对那些 I/O 数和性能比逻辑密度更重要的应用,特别适于桥接、差分信号和存储器接口这些
需要宽接口或者多个接口以及一定处理能力的应用。
② Spartan-3E 平台:针对逻辑进行了优化。
这个平台是针对那些逻辑密度比 I/O 数更重要的应用,特别适于逻辑集成、DSP 协处理和嵌入式控制,这
些需要进行大量处理和窄接口或者少量接口的应用。
③ Spartan-3 平台:针对密度最高和管脚数较多的应用。
这个平台是针对那些高逻辑密度和高 I/O 数都很重要的应用,特别适于高度集成的数据处理应用。
1.4.2 Altera 公司的代表产品
1.面向高性能的 StraitixIII 系列 FPGA
和 Xilinx 的 Virtex-4 系列对应,Altera 公司也推出了 StratixIII 系列 FPGA 体系结构。StratixIII 系列不仅性能
比上一代提高很多,更重要的是静态和动态功耗比前代 FPGA 低了 50%。
Stratix III 器件经过设计,支持高速内核以及高速 I/O,并且具有非常好的信号完整性。例如,它能够实现
400MHz DDR3 的 FPGA。这种性能的提高源于以下几点。
增强 DSP 模块,方便实现了信号处理算法。
经过优化的内部存储器,改进了信号完整性存储器接口。
高性能外部存储器接口。
改进了布线体系结构。
灵活的 I/O 支持最新的外部存储器标准。
为了给客户的设计应用提供最好的性价比解决方案,Altera Stratix III FPGA 提供 3 种型号,分别针对逻辑、
DSP 和存储器以及收发器进行了优化。
‐ 7 ‐
专业始于专注 卓识源于远见
2.面向低成本的 Cyclone III 系列 FPGA
低成本 Cyclone III FPGA 是 Altera Cyclone 系列的第三代产品。Cyclone III FPGA 系列前所未有地同时实现
了低功耗、低成本和高性能,进一步扩展了 FPGA 在成本敏感、大批量领域中的应用。
Cyclone III FPGA 采用 TSMC 公司的 65-nm 低功耗(LP)工艺技术。Cyclone III 器件对芯片和软件采取了
更多的优化措施,在所有 65-nm FPGA 中是功耗最低的,在对成本和功耗敏感的大量应用中,提供丰富的
特性推动宽带并行处理的发展。
Cyclone III 系列包括 8 个型号,具有 5k~120k 个逻辑单元(LE),最多有 534 个用户 I/O 引脚。Cyclone III
器件具有 4MB 嵌入式存储器、288 个嵌入式 18×18 乘法器、专用外部存储器接口电路、锁相环(PLL)以
及高速差分 I/O 等。
1.5 工程项目中 FPGA 芯片选择策略和原则
由于 FPGA 具备设计灵活、可以重复编程的优点,因此在电子产品设计领域得到了越来越广泛的应用。
在工程项目或者产品设计中,选择 FPGA 芯片可以参考以下的几点策略和原则。
1.5.1 尽量选择成熟的产品系列
FPGA 芯片的工艺一直走在芯片设计领域的前列,产品更新换代速度非常快。稳定性和可靠性是产品设计
需要考虑的关键因素。厂家最新推出的 FPGA 系列产品一般都没有经过大批量应用的验证。选择这样的芯
片会增加设计的风险。
而且,最新推出的 FPGA 芯片因为产量比较小,一般供货情况都不会很理想,价格也会偏高一些。如果成
熟的产品能满足设计指标要求,那么最好选这样的芯片来完成设计。
例如,要用 FPGA 设计一块数据采集卡。采用 Altera 公司的 Cyclone、CyloneII 和 CycloneIII 等 3 个系列的
芯片都可以完成这个功能。考虑到 Cyclone 和 CyloneII 是成熟产品,同时 CyloneII 又是 Cyclone 的升级产
品,因此选择 CyloneII 是比较理想的方案。
1.5.2 尽量选择兼容性好的封装
FPGA 系统设计一般采用硬件描述语言(HDL)来完成设计。这与基于 CPU 的软件开发又有很大不同。特
别是算法实现的时候,在设计之前,很难估算这个算法需要占多少 FPGA 的逻辑资源。
作为代码设计者,希望算法实现之后再选择 FPGA 的型号。但是,现在的设计流程一般都是软件和硬件并
行开始设计。也就是说,在 HDL 代码设计之前,就开始硬件板卡的设计。这就要求硬件板卡具备一定的
兼容性,可以兼容不同规模的 FPGA 芯片。
幸运的是,FPGA 芯片厂家考虑到了这一点。目前,同系列的 FPGA 芯片一般可以做到相同物理封装兼容
不同规模的器件。例如,Xilinx 的 Spartan3 系列 FPGA,在 BGA456 封装下,可以选择 3S200、2S400、3S1000、
3S1500 这 4 种型号的 FPGA。
正是因为这一点,将来的产品就具备非常好的扩展性,可以不断地增加新的功能或者提高性能,而不需要
修改电路板的设计文件。
1.5.3 尽量选择一个公司的产品
如果在整个电子系统中需要多个 FPGA 器件,那么尽量选择一个公司的产品。这样的好处不仅可以降低采
购成本,而且降低开发难度。因为开发环境和工具是一致的,芯片接口电平和特性也一致,便于互联互通。
‐ 8 ‐