1、许萍 FPGA 综述报告 1 FPGA综述报告 目录 1 可编程逻辑器件概述和发展历史 . 1 1.1 可编程逻辑器件概述 . 1 1. 2 可编程逻辑器件的发展历史 2 2FPGA简介 3 2.1 什么是FPGA 3 2.2FPGA发展趋势 . 3 2.3FPGA的组成和特点 . 4 3FPGA原理和芯片结构 5 3.1FPGA工作原理 . 5 3.1.1 查找表的结构与工作原理 . 6 3.1.2 基于查找表(LUT) 的FPGA 的结构 6 3.1.3 查找表结构的FPGA 逻辑实现原理 . 8 3.2FPGA的芯片结构 . 9 3.3IP核简介 . 12 4FPGA设计方法概论 13
2、5FPGA设计中的关键技术和原则 16 6 相关芯片介绍 . 16 6.1 Vitrex-2 系列 17 6.2 Virtex-2 Pro系列 18 6.3 Vitex-4 系列 . 18 6.4 Virtex-5 系列 . 20 7FPGA常见模块与技术 21 7.1DLL模块 . 21 7.2 数字频率合成器 23 7.3 数字移相器 . 23 7.4 数字频谱合成器 . 24 7.5 串化与解串技术 . 25 7.6 字对齐技术 26 77 通道绑定技术 . 27 7.8 预加重技术 28 8FPGA与CPLD的区别 30 许萍 FPGA 综述报告 1 1可编程逻辑器件概述和发展历史 1
3、.1 可编程逻辑器件概述 可编程逻辑器件(Programmable Logic Device , PLD)起源于 20 世纪 70 年代,是在专用集成电路(ASIC )的基础上发展起来的一种新型逻辑器件,是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级 PLD 时,不需额外地改变 PCB 电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本,因此获得了广大硬件工程师的青睐,形成了巨大的 PLD 产业规模。 目前常见的 PLD 产品有:编程只
4、读存储器(Programmable Read Only Memory ,PROM),现场可编程逻辑阵列(Field Programmable Logic Array ,FPLA ),可编程阵列逻辑(Programmable Array Logic ,PAL ),通用阵列逻辑(Generic Array Logic ,GAL ),可擦除的可编程逻辑器件(Erasable Programmable Logic Array ,EPLA ),复杂可编程逻辑器件(Complex Programmable Logic Device ,CPLD )和现场可编程门阵列(Field Programmable G
5、ate Array,FPGA )等类型。PLD 器件从规模上又可以细分为简单 PLD(SPLD )、复杂 PLD(CPLD )以及 FPGA。它们内部结构的实现方法各不相同。 可编程逻辑器件按照颗粒度可以分为 3 类:小颗粒度(如: “门海(sea of gates ) ”架构),中等颗粒度(如:FPGA ),大颗粒度(如:CPLD )。按照编程工艺可以分为四类:熔丝(Fuse )和反熔丝( Antifuse)编程器件,可擦除的可编程只读存储器(UEPROM )编程器件,电信号可擦除的可编程只读存储器(EEPROM )编程器件(如: CPLD),SRAM 编程器件(如: FPGA)。在工艺分类
6、中,前 3 类为非易失性器件,编程后,配置数据保留在器件上;第 4 类为易失性器件,掉电后配置数据会丢失,因此在每次上电后需要重新进行数据配置。 许萍 FPGA 综述报告 2 1. 2 可编程逻辑器件的发展历史 可编程逻辑器件的发展可以划分为 4 个阶段,即从 20 世纪 70 年代初到 70 年代中为第 1 阶段, 20 世纪 70 年代中到 80 年代中为第 2 阶段, 20 世纪 80 年代到 90 年代末为第3 阶段,20 世纪 90 年代末到目前为第 4 阶段。 第 1 阶段的可编程器件只有简单的可编程只读存储器(PROM )、紫外线可擦除只读存储器(EPROM )和电可擦只读存储器
7、(EEPROM )3 种,由于结构的限制,它们只能完成简单的数字逻辑功能。 第 2 阶段出现了结构上稍微复杂的可编程阵列逻辑(PAL )和通用阵列逻辑(GAL )器件,正式被称为 PLD,能够完成各种逻辑运算功能。典型的 PLD 由“ 与” 、“ 非” 阵列组成,用“ 与或” 表达式来实现任意组合逻辑,所以 PLD 能以乘积和形式完成大量的逻辑组合。 第 3 阶段 Xilinx 和 Altera 分别推出了与标准门阵列类似的 FPGA 和类似于 PAL 结构的扩展性 CPLD,提高了逻辑运算的速度,具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,兼容了 PLD 和通用门阵列的优点,能
8、够实现超大规模的电路,编程方式也很灵活,成为产品原型设计和中小规模(一般小于 10000)产品生产的首选。这一阶段,CPLD、FPGA 器件在制造工艺和产品性能都获得长足的发展,达到了 0.18 工艺和系数门数百万门的规模。 第 4 阶段出现了 SOPC 和 SOC 技术,是 PLD 和 ASIC 技术融合的结果,涵盖了实时化数字信号处理技术、高速数据收发器、复杂计算以及嵌入式系统设计技术的全部内容。 Xilinx和 Altera 也推出了相应 SOCFPGA 产品,制造工艺达到 65 ,系统门数也超过百万门。并且,这一阶段的逻辑器件内嵌了硬核高速乘法器、Gbits 差分串行接口、时钟频率高达
9、500MHz 的 PowerPC 微处理器、软核 MicroBlaze、 Picoblaze、 Nios 以及 NiosII,不仅实现了软件需求和硬件设计的完美结合,还实现了高速与灵活性的完美结合,使其已超越了ASIC 器件的性能和规模,也超越了传统意义上 FPGA 的概念,使 PLD 的应用范围从单片扩展到系统级。目前,基于 PLD 片上可编程的概念仍在进一步向前发展。 许萍 FPGA 综述报告 3 2FPGA简介 2.1什么是FPGA FPGA(Field Programmable Gate Array )即现场可编程门阵列,是在 PAL、 GAL、 EPLD、CPLD 等可编程器件的基础
10、上进一步发展的产物。它是作为 ASIC 领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。 2.2FPGA发展趋势 先进的 ASIC 生产工艺已经被用于 FPGA 的生产,越来越丰富的处理器内核被嵌入到高端的 FPGA 芯片中,基于 FPGA 的开发成为一项系统级设计工程。随着半导体制造工艺的不同提高, FPGA 的集成度将不断提高,制造成本将不断降低,其作为替代 ASIC 来实现电子系统的前景将日趋光明。 (1) 大容量、低电压、低功耗 FPGA 大容量 FPGA 是市场发展的焦点。 FPGA 产业中的两大霸主: Altera 和 Xilinx
11、在超大容量 FPGA 上展开了激烈的竞争。2007 年 Altera 推出了 65nm 工艺的 StratixIII 系列芯片,其容量为 67200 个 L E (Logic Element,逻辑单元) ,Xilinx 推出的 65nm 工艺的 VitexVI 系列芯片,其容量为 33792 个 Slices (一个 Slices 约等于 2 个 L E)。采用深亚微米(DSM) 的半导体工艺后,器件在性能提高的同时,价格也在逐步降低。由于便携式应用产品的发展,对FPGA 的低电压、低功耗的要日益迫切。因此,无论那个厂家、哪种类型的产品 ,都在瞄准这个方向而努力。 (2) 系统级高密度 FPG
12、A 随着生产规模的提高,产品应用成本的下降,FPGA 的应用已经不是过去的仅仅适用于系统接口部件的现场集成,而是将它灵活地应用于系统级( 包括其核心功能芯片) 设计之中。在这样的背景下,国际主要 FPGA 厂家在系统级高密度 FPGA 的技术发展上,主要强调了两个方面:FPGA 的 IP( Intellec2tual Property ,知识产权) 硬核和 IP 软核。当前具有 IP 内核的系统级 FPGA 的开发主要体现在两个方面: 一方面是 FPGA 厂商将 IP 硬核( 指完成版图设计的功能单元模块) 嵌入到 FPGA 器件中,另一方面是大力扩充优化的 IP 软核许萍 FPGA 综述报告
13、 4 (指利用 HDL语言设计并经过综合验证的功能单元模块 ),用户可以直接利用这些预定义的、经过测试和验证的 IP 核资源,有效地完成复杂的片上系统设计。 (3) FPGA 和 ASIC 出现相互融合 虽然标准逻辑 ASIC 芯片尺寸小、功能强、功耗低,但其设计复杂,并且有批量要求。FPGA 价格较低廉,能在现场进行编程,但它们体积大、能力有限,而且功耗比 ASIC 大。正因如此, FPGA 和 ASIC 正在互相融合,取长补短。随着一些 ASIC 制造商提供具有可编程逻辑的标准单元,FPGA 制造商重新对标准逻辑单元发生兴趣。 (4) 动态可重构 FPGA 动态可重构 FPGA 是指在一定
14、条件下芯片不仅具有在系统重新配置电路功能的特性,而且还具有在系统动态重构电路逻辑的能力。对于数字时序逻辑系统,动态可重构 FPGA的意义在于其时序逻辑的发生不是通过调用芯片内不同区域、不同逻辑资源来组合而成,而是通过对 FPGA 进行局部的或全局的芯片逻辑的动态重构而实现的。动态可重构 FPGA在器件编程结构上具有专门的特征,其内部逻辑块和内部连线的改变,可以通过读取不同的 SRAM 中的数据来直接实现这样的逻辑重构,时间往往在纳秒级,有助于实现 FPGA 系统逻辑功能的动态重构。 2.3FPGA的组成和特点 FPGA 采用了逻辑单元阵列 LCA(Logic Cell Array )这样一个新
15、概念,内部包括可配置逻辑模块 CLB(Configurable Logic Block )、输出输入模块 IOB(Input Output Block )和内部连线(Interconnect )三个部分。FPGA 的基本特点主要有: 1)采用 FPGA 设计 ASIC 电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA 可做其它全定制或半定制 ASIC 电路的中试样片。 3)FPGA 内部有丰富的触发器和 IO 引脚。 4)FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA 采用高速 CHMOS 工艺,功耗低,可以与 CMOS、TTL 电平
16、兼容。 用户可对 FPGA 内部的逻辑模块和 I/O 模块重新配置,以实现用户的逻辑。FPGA 有多种配置模式:并行主模式为一片 FPGA 加一片 EPROM 的方式;主从模式可以支持一片 PROM编程多片 FPGA;串行模式可以采用串行 PROM 编程 FPGA;外设模式可以将 FPGA 作为微处理器的外设,由微处理器对其编程。 许萍 FPGA 综述报告 5 它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC )领域中的一种半定制电路, FPGA 既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的
17、讲,FPGA 能完成任何数字器件的功能, 上至高性能 CPU,下至简单的 74 电路,都可以用 FPGA来实现。FPGA 如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在 PCB 完成以后, 还可以利用 FPGA 的在线修改能力, 随时修改设计而不必改动硬件电路。使用 FPGA 来开发数字电路,可以大大缩短设计时间,减少 PCB 面积, 提高系统的可靠性。 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的, 因此工作时需要对片内的RAM 进行编程。用户可以根据不同的配置模式,采用不同的编
18、程方式。加电时, FPGA 芯片将 EPROM(紫外线可擦出只读存储器)中数据读入片内编程 RAM 中,配置完成后,FPGA 进入工作状态。掉电后, FPGA 恢复成白片,内部逻辑关系消失,因此, FPGA 能够反复使用。 FPGA 的编程无须专用的 FPGA 编程器,只须用通用的 EPROM、 PROM(可编程只读存储器)编程器即可。当需要修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA 的使用非常灵活。可以说, FPGA 芯片是小批量系统提高系统集成度、 可靠性的最佳选择之一。目前 FPGA的品种很多,有
19、XILINX 的 XC 系列、 TI 公司的 TPC 系列、 ALTERA 公司的 FIEX 系列等。 FPGA 可以用 VHDL 或 verilogHDL 来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出 FPGA 的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。 3FPGA原理和芯片结构 3.1FPGA工作原理 目前,FPGA 市场占有率最高的两大公司Xilinx 和 Altera生产的 FPGA都采用基于SRAM工艺的查找表结构,通过烧写文件改变查找表内容的方法来实现对 F
20、PGA的重复配置,需要在使用时外接一个片外存储器以保存程序。上电时, FPGA将外部存储器中的数许萍 FPGA 综述报告 据读入片内RAM ,完成配置后,进入工作状态;掉电后FPGA恢复为白片,内部逻辑消失。根据数字电路的基本知识可以知道,对于一个 n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在 2n种结果。所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。 FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。 3.1.1 查找表的结构与工作原理 查找表(Look-Up-Table )简称为 LUT
21、, LUT 本质上就是一个 RAM。目前 FPGA 中多使用 4 输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 的 RAM。 当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,PLD/FPGA 开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。 下面是一个 4 输入与门的例子, 实际逻辑电路 LUT 的实现方式 a,b,c,d 输入 逻辑输出 地址 RAM 中存储的内容 0000 0 0000 0 0001 0 0001 0 0 . 0 111
22、1 1 1111 1 3.1.2 基于查找表(LUT) 的 FPGA 的结构 我们看一看 xilinx Spartan-II 的内部结构,如下图: 6 许萍 FPGA 综述报告 xilinx Spartan-II 芯片内部结构 Slices 结构 altera 的 FLEX/ACEX 等芯片的结构如下图:Spartan-II 主要包括 CLBs,I/O 块,RAM块和可编程连线(未表示出)。在 spartan-II 中,一个 CLB 包括 2 个 Slices,每个 slices包括两个 LUT,两个触发器和相关逻辑。 Slices 可以看成是 SpartanII 实现逻辑的最基本结构 (xi
23、linx 其他系列,如 SpartanXL,Virtex 的结构与此稍有不同,具体请参阅数据手册) 7 许萍 FPGA 综述报告 altera FLEX/ACEX 芯片的内部结构 逻辑单元(LE)内部结构 FLEX/ACEX 的结构主要包括 LAB,I/O 块,RAM 块(未表示出)和可编程行/列连线。在FLEX/ACEX 中,一个 LAB 包括 8 个逻辑单元(LE),每个 LE 包括一个 LUT,一个触发器和相关的相关逻辑。LE 是 FLEX/ACEX 芯片实现逻辑的最基本结构(altera 其他系列,如 APEX的结构与此基本相同,具体请参阅数据手册) 3.1.3 查找表结构的 FPGA
24、 逻辑实现原理 我们还是以这个电路的为例:A,B,C,D 由 FPGA 芯片的管脚输入后进入可编程连线,然后作为地址线连到到 LUT,LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。 该电路中 D 触发器是直接利用 LUT 后面 D 触发器来实现。时钟信号 CLK由 I/O 脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输8 许萍 FPGA 综述报告 出与 I/O 脚相连,把结果输出到芯片管脚。这样 PLD 就完成了图 3 所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预) 这个电路是一个很简单的例子,
25、 只需要一个 LUT 加上一个触发器就可以完成。 对于一个 LUT无法完成的的电路,就需要通过进位逻辑将多个单元相连,这样 FPGA 就可以实现复杂的逻辑。 由于 LUT 主要适合 SRAM 工艺生产,所以目前大部分 FPGA 都是基于 SRAM 工艺的,而 SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到 FPGA 中,然后 FPGA 就可以正常工作, 由于配置时间很短,不会影响系统正常工作。 也有少数 FPGA 采用反熔丝或 Flash 工艺,对这种 FPGA,就不需要外加专用的配置芯片。 3.2FPGA的芯片结构 FPGA
26、芯片组成部分主要有可编程输入 /输出单元、基本可编程逻辑单元、内嵌 SRAM、丰富的布线资源、底层嵌入功能单元、内嵌专用单元等,不同系列的芯片内部资源可能不同。如下图所示: FPGA 芯片的内部结构 1) 可编程输入输出单元(IOB ) IOB 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/ 输出信号的驱9 许萍 FPGA 综述报告 动与匹配要求,其示意结构如下图所示。FPGA 内的 I/O 按组分类,每组都能够独立地支持不同的 I/O 标准。通过软件的灵活配置,可适配不同的电气标准与 I/O 物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前, I/O 口的频率也越来
27、越高,一些高端的 FPGA 通过 DDR 寄存器技术可以支持高达 2Gbps 的数据速率。 典型的 IOB 内部结构示意图 为了便于管理和适应多种电器标准,FPGA 的 IOB 被划分为若干个组(bank),每个bank 的接口标准由其接口电压 VCCO 决定,一个 bank 只能有一种 VCCO,但不同 bank的 VCCO 可以不同。只有相同电气标准的端口才能连接在一起, VCCO 电压相同是接口标准的基本条件。 2) 可配置逻辑块(CLB ) CLB 是 FPGA 内的基本逻辑单元。 CLB 的实际数量和特性会依器件的不同而不同,但是每个 CLB 都包含一个可配置开关矩阵,此矩阵由 4
28、或 6 个输入、一些选型电路(多路复用器等)和触发器组成。在 Xilinx 公司的 FPGA 器件中, CLB 由多个(一般为 4 个或 2 个)相同的 Slice 和附加逻辑构成,如下图所示。每个 CLB 模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式 RAM 和分布式 ROM。 典型的 CLB 结构示意图 10 许萍 FPGA 综述报告 11 3)数字时钟管理模块(DCM ) 大多数 FPGA 均提供数字时钟管理(Xilinx 的全部 FPGA 均具有这种特性)。 Xilinx 推出最先进的 FPGA 提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能够降
29、低抖动,并实现过滤功能。DCM (数字时钟管理 )主要优点在于: 实现零时钟偏移(Skew ),消除时钟分配延迟,并实现时钟闭环控制; 时钟可以映射到 PCB 上用于同步外部芯片,这样就减少了对外部芯片的要求,将芯片内外的时钟控制一体化,以利于系统设计。 对于 DCM 模块来说,其关键参数为输入时钟频率范围、输出时钟频率范围、输入/ 输出时钟允许抖动范围等。 4)嵌入式块 RAM( BRAM) 大多数 FPGA 都具有内嵌的块 RAM,这大大拓展了 FPGA 的应用范围和灵活性。块RAM 可被配置为单端口 RAM、双端口 RAM、内容地址存储器(CAM )以及 FIFO 等常用存储结构。在实际
30、应用中,芯片内部块 RAM 的数量也是选择芯片的一个重要因素。 单片块 RAM 的容量为 18k 比特,也可以将多片块 RAM 级联起来形成更大的 RAM。 5)丰富的布线资源 布线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片 Bank 间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于
31、专有时钟、复位等控制信号线。 6)底层内嵌功能单元 内嵌功能模块主要指 DLL(Delay Locked Loop )、 PLL(Phase Locked Loop )、 DSP 和CPU 等软处理核(Soft Core )。现在越来越丰富的内嵌功能单元,使得单片 FPGA 成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向 SOC 平台过渡。 DLL 和 PLL 具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。 Xilinx 公司生产的芯片上集成了 DLL, Altera 公司的芯片集成了 PLL。PLL 和 DLL 可以通过 IP 核生成的工
32、具方便地进行管理和配置。 7) 内嵌专用硬核 许萍 FPGA 综述报告 内嵌专用硬核是相对底层嵌入的软核而言的,指 FPGA 处理能力强大的硬核(Hard Core) ,等效于 ASIC 电路。为了提高 FPGA 性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:主流的 FPGA 中都集成了专用乘法器很多高端的 FPGA 内部都集成了串并收发器(SERDES),可以达到数十 Gbps 的收发速度。 Xilinx 公司的高端产品不仅集成了Power PC 系列 CPU,还内嵌了 DSP Core 模块, 其相应的系统级设计工具是 EDK 和 Platform Studio。通过 PowerP
33、C、 Miroblaze、 Picoblaze 等平台,能够开发标准的 DSP 处理器及其相关应用,达到 SOC 的开发目的。 Xilinx 公司的 Virtex II Pro 开发板,内嵌了一个 MicroBlaze的软核和 PowerPC 的硬核,可以满足用户的不同需求,让整个系统的移植成为可能,真正做到了 Soc 的设计。如下图所示: 3.3IP核简介 IP(Intelligent Property )核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。从 IP 核的提供方式上,通常将其分为软核、硬核和固核这
34、3 类。从完成 IP 核所花费的成本来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高。 1) 软核 软核在 EDA 设计领域指的是综合之前的寄存器传输级(RTL )模型;具体在 FPGA设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是 IP 核应用最广泛的形式。 2) 固核 固核在 EDA 设计领域指的是带有平面规划信息的网表;具体在 FPGA 设计中可以看12 许萍 FPGA 综述报告 13 做带有布局规划的软核,通常以 RTL 代码
35、和对应具体工艺网表的混合形式提供。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。目前,固核也是 IP 核的主流形式之一。 3) 硬核 硬核在 EDA 设计领域指经过验证的设计版图;具体在 FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。 IP 硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。 4FPGA 设计方法概论 FPGA 是可编程芯片,因此 FPGA 的设计方法包括硬件设计和软件设计两部分。硬件包括 FPGA 芯片电路、存储器、输入输出接口电路以及其他设备,软件即是相应的 HDL程序以及最新才流行的嵌入式 C
36、程序。通常采用自顶向下的从系统级到功能模块的软、硬件协同设计,达到软、硬件的无缝结合。 FPGA 的设计流程就是利用 EDA 开发软件和编程工具对 FPGA 芯片进行开发的过程。FPGA 的开发流程一般包括电路设计、设计输入、功能仿真、综合优化、综合后仿真、实现、布线后仿真、板级仿真以及芯片编程与调试等主要步骤。 1)电路设计 在系统设计之前,首先要进行的是方案论证、系统设计和 FPGA 芯片选择等准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本 身的各种资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。一般都采用自顶向下的设计方法,把系统分成若干个基 本
37、单元,然后再把每个基本单 元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用 EDA 元件库为止。 2)设计输入 设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA 工具的过程。常用的方法有硬件描述语言( HDL)和原理图输入方法等。 原理图输入方式是一种最直接的描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。这种方法虽然直观并易于仿真,但效率很低,且不易维护,不利于模块构造和重用。更主要的缺点是可移植性差,当芯片升级后,所有的原理许萍 FPGA 综述报告 14 图都需要作一定的改动。目前,在实际开发中应用 最广的
38、就是 HDL 语言输入法,利用文本描述设计,可以分为普通 HDL 和行为 HDL。普通 HDL 有 ABEL、CUR 等,支持逻辑方程、真值表和状态机等表达方式,主要用于简单的小型设计。而在中大型工程中,主要使用行为 HDL,其主流语言是 Verilog HDL 和 VHDL。这两种语言都是美国电气与电子工程师协会(IEEE )的标准,其共同的突出特点有:语言与芯片工艺无关,利于自顶向下设计,便于模块的划分与移植,可移植性好,具有很强的逻辑描述和仿真功能,而且输入效率很高。 3)功能仿真 功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的
39、功能进行检测。仿真前,要先利用波形编辑 器和 HDL等建立波形文件和测试向量( 即将所关心的输入信号组合成序列) ,仿真结果将会生成报告文件和输出信号波形,从中 便可以观察各个节点信号的变化。 如果发现错误,则返回设计修改逻辑设计。常用的工具有 Model Tech 公司的 ModelSim、Sysnopsys 公司的 VCS和 Cadence 公司的 NC-Verilog 以及 NC-VHDL 等软件。 4)综合优化 所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供 FPGA 布局布线软件进行实现。就目前的层次来看,综合
40、优化(Synthesis )是指将设计输入编译成由与门、或门、非门、 RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。真实具体的门级电路需要利用 FPGA 制造商的布局布线功能,根据综合后生成的标准门级结构网表来产生。为了能转换成标准的门级结构网 表, HDL 程序的编写必须符合特定综合器所要求的风格。由于门级结构、RTL 级的 HDL 程序的综合是很成熟的技术,所有的综合器都可以支持到这一级别的综合。常用的综合工具有 Synplicity 公司的 Synplify/Synplify Pro 软件以及各个FPGA 厂家自己推出的综合开发工具。 5)综合后仿真 综合后仿真检
41、查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。目前的综合工具较为成熟,对于一般的设计可以省略这一步, 但如果在布局布线后发现电路结构和 设计意图不符,则需许萍 FPGA 综述报告 15 要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持综合后仿真。 6)实现与布局布线 实现是将综合生成的逻辑网表配置到具体的 FPGA 芯片上,布局布线是其中最重要的过程。布局将逻辑网表中的硬件原语和底 层单元合理地配置到芯片内部的固有 硬件结构上,
42、并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。目 前, FPGA 的结构非常复杂,特别是在有时序约束条件时,需要利用时序驱动的引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有关设计中各部 分资源的使用情况。由于只有 FPGA 芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。 7)布线 后仿真 时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确
43、,能较好地反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非常有必要的。在功能仿真中介绍的软件工具一般都支持综合后仿真。 8)板级仿真与验证 板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。 9)芯片编程与调试 设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件(位数据流文件, Bitstream Generation),然后将编程数据下载到 FPGA 芯片中。
44、其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方面。逻辑分析仪 (Logic Analyzer ,LA)是 FPGA 设计的主要调试工具,但需要引出大量的测试管脚,且 LA 价格昂贵。目前,主流的 FPGA 芯片生产商都提供了内嵌的在线 逻辑分析仪(如 Xilinx ISE 中的 ChipScope、Altera QuartusII 中的 SignalTapII 以及 SignalProb)来解决上述矛盾,它们只需要占用芯片少量的逻辑资源,具有很高的实用价值。 许萍 FPGA 综述报告 16 5FPGA设计中的关键技术和原则 1.面积和速度的平衡和转换 这是一对矛盾,一个系
45、统既想高速度又想低面积是不可能的,我们应根据项目要求找一个折中,一个系统如果时序冗余比较大,那么就可以通过复用模块来减少面积,反之,如果时序要求很高,则可以通过数据流的串并转换,并行复制多个处理模块,提高系统的工作频率; 2.数据接口同步设计原则 如果输入数据的节拍和本级芯片的处理时钟同频,可以直接用本级的主时钟对输入数据寄存器采样,如果不同,则可以用 FIFO 以及双口 RAM 来匹配; 3.流水线处理原则 由于在系统设计中我们只能控制组合逻辑电路的延时,所以缩短组合逻辑延时是提高系统速度的关键,因此我们可以把大的组合逻辑分解成几个小块,中间插入触发器,这样可以提高电路的工作频率,这就是流水
46、线技术的基本原则; 4.合理使用 PLL 设计中经常要把主时钟分频等操作,这时候我们尽量使用 PLL,因为 PLL 精度比较高,在 PS 级别,这样可以提高电路的稳定性,减少时延带来的误操作; 5.信号延时 FPGA 中我们经常对信号进行延时处理,利用 D 触发器可以达到精确的延时,最小时间为时钟中期的一半。 6相关芯片介绍 Xilinx 公司目前有两大类 FPGA 产品: Spartan 类和 Virtex 类,前者主要面向低成本的许萍 FPGA 综述报告 中低端应用,是目前业界成本最低的一类 FPGA;后者主要面向高端应用,属于业界的顶级产品。这两个系列的差异仅限于芯片的规模和专用模块上,
47、都采用了先进的 0.13、 90 甚至 65 制造工艺,具有相同的卓越品质。 Virtex 系列是 Xilinx 的高端产品,也是业界的顶级产品, Xilinx 公司正是凭借 Vitex 系列产品赢得市 场,从而获得 FPGA 供应商领头羊的地位。可以说 Xilinx 以其 Virtex-5、Virtex-4、Virtex-II Pro 和 Virtex-II 系列 FPGA 产品引领现场可编程门阵列行业。主要面向电信基础设施、汽车工业、高端消费电子等应用。目前的主流芯片包括 Vitrex-2、 Virtex-2 Pro、Vitex-4 和 Virtex-5 等种类。 6.1 Vitrex-2
48、系列 Vitrex-2 系列具有优秀的平台解决方案,这进一步提升了其性能;且内置 IP 核硬核技术,可以将硬 IP 核分配到芯片的任何地方,具有比 Vitex 系列更多的资源和更高的性能。 表 1 Virtex-2 系列 FPGA 主要技术特征 其主要特征如下所示: 采用 0.15/0.12 工艺; 核电压为 1.5V,工作时钟可以达到 420MHz; 支持 20 多种 I/O 接口标准; 内嵌了多个 硬核乘法器,提高了 DSP 处理能力; 具有完全的系统时钟管理功能,多达 12 个 DCM 模块。 Virtex-2 系列产品的主要技术特征如表 1 所示。 17 许萍 FPGA 综述报告 6.
49、2 Virtex-2 Pro系列 Virtex-2 Pro 系列在 Virtex-2 的基础上,增强了嵌入式处理功能,内嵌了 PowerPC405内核,还包括了先进的主动互联(Active Interconnect )技术,以解决高性能系统所面临的挑战。此外还增加了高速串行收发器,提供了千兆以太网的解决方案。其主要特征如下所示: 采用 0.13 工艺; 核电压为 1.5V,工作时钟可以达到 420MHz; 支持 20 多种 I/O 接口标准; 增加了 2 个高性能 RISC 技术、频率高达 400MHz 的 PowerPC 处理器; 增加多个 3.125Gbps 速率的 Rocket 串行收发器; 内嵌了多个 硬核乘法器,提高了 DSP 处理能力; 具有完全的系统时钟管理功能,多达 12 个 DCM 模块。 Virtex-2 Pro 系列产品的主要技术特征如表 2 所示。 表 2 Virtex-2 Pro 系列 FPGA 主要技术特征 6.3 Vitex-4系列 Virtex-4 器件整合了高达 200,000 个的逻辑单元,高达 500 MHz 的性能和无可比拟的系统特性。 Vitex-4 产品基于新的高级硅片组合模块(ASMBL )架构,提供了一个多平台方式(LX 、SX 、FX ) ,使设计