资讯详情

FPGA基本知识与发展趋势

点击上蓝字关注我们

FPGA基本知识和发展趋势

FPGA 是英文 Field Programmable Gate Array 缩写,即现场可编程门阵列,在 PAL、GAL、CPLD在可编程器件的基础上进一步开发的产品。作为专用集成电路 (ASIC) 该领域的半定制电路不仅解决了定制电路的不足,而且克服了原可编程器件门电路数量有限的缺点。它是当今数字系统设计的主要硬件平台,其主要特点是用户通过软件完全配置和编程,从而完成特定的功能,并可以反复擦写。修改升级时,无需额外变更 PCB 电路板只在计算机上修改和更新程序,使硬件设计成为软件开发,缩短系统设计周期,提高灵活性,降低成本,赢得了大多数硬件工程师的青睐。

2.1 FPGA 结构和工作原理

2.1.1 梦想成就伟业

1984 年,在硅谷工作 Bernie Vonderschmitt、Ross Freeman 和 Jim Barnett 他们共同构建了一个不同于一般公司的想法。他们希望在整个新领域开发和推出先进技术。他们也希望以这种方式领导它 :在这里工作的人热爱工作,享受工作乐趣,痴迷于工作。

图2-1 Ross Freeman(左)是FPGA的发明人,Bernie Vonderschmitt(右)赛灵思创始人创造性地推出了无晶圆半导体的概念。

2009 年 2 月 18 日,Ross Freeman 由于他的发明-现场可编程门阵列 (FPGA) 而荣登 2009 美国发明家名人堂。

Freeman 先生的发明是一个由开门组成的计算机芯片,其专利号是 4.870,302。使用此芯片,工程师可根据需要编程,添加新功能,满足持续发展的标准或规范要求,并在设计的最后阶段进行修改。

2.1.2 FPGA结构

对 PROM、EPROM、E2PROM 熟悉这些可编程设备的可编程原理是通过增加高压或紫外线导致三极管或 MOS 管内载流子密度发生变化,实现所谓的可编程,但这些设备可能只能实现单个可编程或编程状态,难以稳定。FPGA 不同的是,它使用逻辑单元阵列 LCA(Logic Cell Array) 这样可配置逻辑模块的新概念CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。

FPGA 可编程实际上已经改变了 CLB 和 IOB 由于触发器状态,可以实现多次重复编程 FPGA 需要反复烧写,不可能实现组合逻辑的基本结构 ASIC 通过固定和非门完成,只能采用易于重复配置的结构。搜索表能很好地满足这一要求,目前主流 FPGA 都采用了基础 SRAM 搜索表结构的过程,也有一些军事和航天级别 FPGA 采用 Flash 或熔丝和反熔丝工艺的搜索表结构。对 FPGA 重复配置。

根据数字电路的基本知识,对于一个 n 输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在 2n 种结果。因此,如果将相应的结果提前存储在存储单元中,则相当于实现与非门电路的功能。FPGA 原理也是如此。它通过烧写文件配置搜索表的内容,在相同的电路条件下实现不同的逻辑功能。

查找表 (Look-Up-Table) 简称为 LUT,LUT 本质上是一个 RAM。目前 FPGA 中多使用 4 输入的 LUT,所以每一个 LUT 可视为一个有 4 位地址线的 的 RAM。当用户通过原理图或 HDL 在语言描述了逻辑电路之后,PLD/FPGA 开发软件将自动计算逻辑电路的所有可能结果,并将真值表 ( 即结果 ) 事先写入 RAM,这样,每输入一个信号进行逻辑操作,就等于输入一个地址查表,找出地址对应的内容,然后输出。

从表中可以看到,LUT 具有与逻辑电路相同的功能。实际上,LUT 执行速度更快,规模更大。由于基于 LUT 的 FPGA 集成度高,设备密度从数万门到数千万门不等,可完成极其复杂的时间顺序和逻辑组合逻辑电路功能,适用于高速高密度高端数字逻辑电路设计领域。其组成部分主要有可编程输入 / 输出单元、基本可编程逻辑单元、嵌入式 SRAM、布线资源丰富,底层嵌入功能单元,内嵌专用单元等,主要设计厂家有赛灵思,Altera、Lattice、Actel、Atmel 和 QuickLogic 最大的公司是美国赛灵思公司,占有可编程市场 50% 上述市场份额超过所有其他竞争对手的总市场份额。

FPGA 是存放在片中的 RAM 在程序中设置其工作状态,因此,在工作中需要在电影中 RAM 编程。用户可以根据不同的配置模式使用不同的编程方法。

加电时,FPGA 芯片将 EPROM 电影中的数据读入编程 RAM 配置完成后,FPGA 进入工作状态。掉电后,FPGA 因此,恢复成白片,内部逻辑关系消失,FPGA 可重复使用。FPGA 编程不需要专用 FPGA 编程器用通用编程器 EPROM、PROM 编程器。这样,同一块 FPGA,不同的编程数据可以产生不同的电路功能。因此,FPGA 使用非常灵活。

图2-2 应用广泛Xilinx Spartan-3系列FPGA

如前所述,FPGA 存放在片中 RAM 为了设定其工作状态,工作时需要在电影中设置 RAM 编程。用户可以根据不同的配置模式使用不同的编程方法。Xilinx FPGA 常用的配置模式有 5 类别:主串模式,从串模式,Select MAP 模式、Desktop 配置和直接 SPI 配置。

目前,FPGA 市场占有率最高的两大公司赛灵思公司和 Altera 生产的 FPGA 都是基于 SRAM 在使用过程中,需要外接一个片外存储器来保存程序。上电时,FPGA 将外部存储器中的数据读入片中 RAM,配置完成后,进入工作状态 ;掉电后 FPGA 恢复为白片,内部逻辑消失。这样 FPGA 它不仅可以重复使用,而且不需要特殊的 FPGA编程器,只是通用的 EPROM、PROM 编程器。Actel、QuickLogic 公司还提供反熔丝技术 FPGA,它具有抗辐射、耐高低温、低功耗、速度快等优点,广泛应用于军事和航空航天领域 FPGA 不能重复擦写,

开发初期比较麻烦,成本也比较贵。Lattice 是 ISP 小规模技术发明者 PLD 应用程序有一定的特点。赛灵思早期的产品一般不涉及军品和航天市场,但许多产品已经进入这一领域。

图2-3 FPGA芯片内部结构

FPGA 目前芯片结构主流 FPGA 它仍然基于搜索表技术,远远超出了以前版本的基本性能,并整合了常用功能 ( 如 RAM、时钟管理和 DSP) 的硬核 (ASIC 型 ) 模块。如图 2-3 所示 ( 注:图 2-3 只是一个示意图,实际上每一个系列的 FPGA 都有相应的内部结构 ),FPGA 芯片主要由 6 分别完成部分 :可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块 RAM、布线资源丰富,内嵌底层功能单元和内嵌专用硬件模块。

每个模块的功能如下:

1. 可编程输入输出单元(IOB)

可编程输入 / 简称输出单元 I/O 单元是芯片与外部电路的接口部分,在不同的电气特性下完成输入 / 其示意结构如图所示 2-4 所示。FPGA 内的 I/O 每组都可以独立支持不同的组分类 I/O标准。通过软件的灵活配置,可以适应不同的电气标准 I/O 驱动电流的大小可以调整,上下拉电阻可以改变。目前,I/O 一些高端口的频率也越来越高 FPGA 通过 DDR 寄存器技术可以支持高达 2Gbps 的数据速率。

图2-4 IOB内部结构

可通过外部输入信号 IOB 输入模块的存储单元 FPGA 也可以直接输入内部 FPGA 内部。当外部输入信号通过时 IOB 输入模块的存储单元 FPGA 保持时间在内部 (Hold Time) 默认情况下,可以降低要求 0。为便于管理和适应各种电气标准,FPGA 的 IOB 分成几组 (bank),每个 bank 接口标准由其接口电压 VCCO 决定,一个 bank 只能有一种 VCCO,但不同 bank 的 VCCO 可以不同。只有电气标准相同的端口才能连接在一起,VCCO 相同的电压是接口标准的基本条件。

2.可配置逻辑块(CLB)

CLB 是 FPGA 内部基本逻辑单元。CLB 实际设备的不同,实际数量和特性会有所不同,但每个设备的实际数量和特性会有所不同 CLB 它们都包含一个置的开关矩阵 4 或 6 个人输入,一些选型电路 ( 多路复用器等 ) 由触发器组成。开关矩阵高度灵活,可配置以处理组合逻辑、移位寄存器或 RAM。赛灵思公司 FPGA 器件中,CLB 由多个 ( 一般为 4 个或 2 个 ) 相同的 Slice 它由附加逻辑组成,如图所示 2-5 所示。每个 CLB 模块不仅可以用来实现组合逻辑和时序逻辑,还可以分布 RAM 和分布式 ROM。

图2-5 典型的CLB结构示意图

Slice 它是赛灵思公司定义的基本逻辑单位部结构如图 2-6 所示,一个 Slice 由两个 4 输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。

图2-6 典型的4输入Slice结构示意图

算术逻辑包括一个异或门 (XORG) 和一个专用与门 (MULTAND),一个异或门可以使一个 Slice 实现 2bit 全加操作,专用与门用于提高乘法器的效率 ;进位逻辑由专用进位信号和函数复用器 (MUXC) 组成,用于实现快速的算术加减法操作 ;4 输入函数发生器用于实现 4 输入 LUT、分布式 RAM 或 16 比特移位寄存器 (Virtex-5 系列芯片的 Slice 中的两个输入函数为 6 输入,可以实现 6 输入 LUT 或 64 比特移位寄存器 ) ;进位逻辑包括两条快速进位链,用于提高 CLB 模块的处理速度。

3.数字时钟管理模块(DCM)

业内大多数 FPGA 均提供数字时钟管理 ( 赛灵思公司的全部 FPGA 均具有这种特性 )。赛灵思公司推出最先进的 FPGA 提供数字时钟管理和相位环路定。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。

4.嵌入式块RAM(BRAM)

大多数 FPGA 都具有内嵌的块 RAM,这大大拓展了 FPGA 的应用范围和灵活性。块 RAM 可被配置为单端口 RAM、双端口 RAM、内容地址存储器 (CAM) 以及 FIFO 等常用存储结构。RAM、FIFO 是比较普及的概念,在此就不冗述。CAM 存储器在其内部的每个存储单元中都有一个比较逻辑,写入 CAM 中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块 RAM,还可以将 FPGA 中的 LUT 灵活地配置成 RAM、ROM 和 FIFO 等结构。在实际应用中,芯片内部块RAM 的数量也是选择芯片的一个重要因素。

图2-7 内嵌的块RAM

单片块 RAM 的容量为 18k 比特,即位宽为 18 比特、深度为 1024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量 ( 位宽 深度 ) 不能大于 18k 比特;其次,位宽最大不能超过 36 比特。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。

5. 丰富的布线资源

布线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位 / 置位的布线 ;第二类是长线资源,用以完成芯片Bank 间的高速信号和第二全局时钟信号的布线 ;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线 ;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。

图2-8 FPGA内部互连布线

在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。

6. 底层内嵌功能单元

内嵌功能模块主要指 DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP 等软处理核 (Soft Core)。现在越来越丰富的内嵌功能单元,使得单片 FPGA 成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向 SOC 平台过渡。DLL 和 PLL 具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。赛灵思公司生产的芯片上集成了 DCM 和 DLL,Altera 公司的芯片集成了 PLL,Lattice 公司的新型芯片上同时集成了 PLL 和 DLL。PLL 和 DLL 可以通过 IP 核生成的工具方便地进行管理和配置。DLL 的结构如图 2-8 所示。

图2-9 典型的DLL模块示意图

7. 内嵌专用硬核

内嵌专用硬核是相对底层嵌入的软核而言的,指 FPGA 处理能力强大的硬核 (Hard Core),等效于 ASIC 电路。为了提高 FPGA 性能,芯片生产商在芯片内部集成了一些专用的硬核。例如 :为了提高 FPGA 的乘法速度,主流的 FPGA 中都集成了专用乘法器 ;为了适用通信总线与接口标准,很多高端的 FPGA 内部都集成了串并收发器 (SERDES),可以达到数十 Gbps 的收发速度。赛灵思公司的高端产品不仅集成了 Power PC 系列 CPU,还内嵌了 DSP Core 模块,其相应的系统级设计工具是 EDK 和 Platform Studio,并依此提出了片上系统 (System on Chip) 的概念。通过 PowerPC™、Miroblaze、Picoblaze 等平台,能够开发标准的 DSP 处理器及其相关应用,达到 SOC 的开发目的。

此外,新推出赛灵思的FPGA系列如Virtex-5 LXT还内建了PCI Express和三态以太网MAC硬核(TEMAC),与软核实现方式相比,硬核可以把功耗降低 5~10 倍 , 节约将近 90% 的逻辑资源。Xilinx 三态以太网 MAC 核是一个可参数化的核,非常适合在网络设备中使用 , 例如开关和路由器等。可定制的 TEMAC 核使系统设计者能够实现宽范围的集成式以太网设计,从低成本 10/100 以太网到性能更高的 1GB端口。TEMAC 核设计符合 IEEE 802.3 规范的要求,并且可以在 1000Mbps、100 Mbps 和 10 Mbps 模式下运行。

另外,它还支持半双工和全双工操作。TEMAC 核通过 Xilinx CORE Generator™ 工具提供,是 Xilinx 全套以太网解决方案的一部分。

2.1.3 软核、硬核以及固核的概念

IP(Intelligent Property) 核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。到了 SOC 阶段,IP 核设计已成为 ASIC 电路设计公司和 FPGA 提供商的重要任务,也是其实力体现。对于 FPGA 开发软件,其提供的 IP 核越丰富,用户的设计就越方便,其市场占用率就越高。目前,IP 核已经变成系统设计的基本单元,并作为独立设计成果被交换、转让和销售。

从IP核的提供方式上,通常将其分为软核、固核和硬核这3类。从完成IP核所花费的成本来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高。

1. 软核(Soft IP Core)

软核在 EDA 设计领域指的是综合之前的寄存器传输级 (RTL) 模型 ;具体在 FPGA 设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自配置 ;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是 IP 核应用最广泛的形式。

2. 固核(Firm IP Core)

固核在 EDA 设计领域指的是带有平面规划信息的网表;具体在 FPGA 设计中可以看做带有布局规划的软核,通常以 RTL 代码和对应具体工艺网表的混合形式提供。将 RTL 描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。目前,固核也是 IP 核的主流形式之一。

3. 硬核 (Hard IP Core)

硬核在 EDA 设计领域指经过验证的设计版图 ;具体在 FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个 :首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图 ;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP 硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。

2.1.4 从可编程器件发展看FPGA未来趋势

可编程逻辑器件的发展历史可编程逻辑器件的发展可以划分为 4 个阶段,即从 20 世纪 70 年代初到 70 年代中为第 1 阶段,20 世纪 70 年代中到 80 年代中为第 2 阶段,20 世纪 80 年代到 90 年代末为第 3 阶段,20 世纪 90 年代末到目前为第 4 阶段。

第 1 阶段的可编程器件只有简单的可编程只读存储器 (PROM)、紫外线可擦除只读存储器 (EPROM) 和电可擦只读存储器 (EEPROM)3 种,由于结构的限制,它们只能完成简单的数字逻辑功能。

第 2 阶段出现了结构上稍微复杂的可编程阵列逻辑 (PAL) 和通用阵列逻辑 (GAL) 器件,正式被称为 PLD,能够完成各种逻辑运算功能。典型的 PLD 由“与”、“非”阵列组成,用“与或”表达式来实现任意组合逻辑,所以 PLD 能以乘积和形式完成大量的逻辑组合。

第 3 阶段赛灵思和 Altera 分别推出了与标准门阵列类似的 FPGA 和类似于 PAL 结构的扩展性 CPLD,提高了逻辑运算的速度,具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,兼容了 PLD 和通用门阵列的优点,能够实现超大规模的电路,编程方式也很灵活,成为产品原型设计和中小规模 ( 一般小于 10000) 产品生产的首选。这一阶段,CPLD、FPGA 器件在制造工艺和产品性能都获得长足的发展,达到了 0.18 工艺和系数门数百万门的规模。

第 4 阶段出现了 SOPC 和 SOC 技术,是 PLD 和 ASIC 技术融合的结果,涵盖了实时化数字信号处理技术、高速数据收发器、复杂计算以及嵌入式系统设计技术的全部内容。赛灵思和Altera也推出了相应SOCFPGA产品,制造工艺达到 65nm ,系统门数也超过百万门。并且,这一阶段的逻辑器件内嵌了硬核高速乘法器、Gbits 差分串行接口、时钟频率高达 500MHz 的 PowerPC™ 微处理器、软核 MicroBlaze、Picoblaze、Nios 以及 NiosII,不仅实现了软件需求和硬件设计的完美结合,还实现了高速与灵活性的完美结合,使其已超越了 ASIC 器件的性能和规模,也超越了传统意义上 FPGA 的概念,使 PLD 的应用范围从单片扩展到系统级。未来,赛灵思高层透露,该公司正在研制采用全新工艺的新型 FPGA,这种 FPGA 将集成更大的存储单元和其他功能器件,FPGA正向超级系统芯片的方向发展!2 月 5 日,赛灵思发布了采用 40nm 和 45nm 的 Spartan - 6 和 Virtex - 6FPGA 系列,并开启了目标设计平台这一新的设计理念,相信 FPGA 的应用会得到更大的发展!

图2-10 FPGA的演进路线

看完本文有收获?请转发分享给更多人

NOW现在行动!
推荐阅读


【Vivado那些事】如何查找官网例程及如何使用官网例程【Vivado使用误区与进阶】总结篇【Vivado那些事】Vivado下头文件使用注意事项【Vivado那些事】Vivado中常用的快捷键(一)F4键【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键
HDL Designer Series(HDS)介绍
SystemVerilog数字系统设计_夏宇闻 PDF
Verilog 里面,always,assign和always@(*)区别
FPGA上如何求32个输入的最大值和次大值:分治一文读懂TCP/IP!《RISC-V on T-Core》学习笔记新年愿望是什么?先送大家一波开发软件谈谈FPGA(入门)学习的两种方式ZYNQ-迷恋ZYNQ-FPGA开发板资源分享
零基础入门FPGA,如何学习?
黑金全部开发板资料(FPGA+ZYNQ)分享
Windows 下 iCE40 FPGA 开源开发环境配置
深度报告:RISC-V架构分析(50页PPT)
【Vivado那些事】关于reset_project和reset_project -exclude ip使用
FPGA、Zynq 和 Zynq MPSoC简析及架构分析
【Vivado那些事】Force Up-to-Date功能

点击上方字体即可跳转阅读哟

点个在看 你最 好看

标签: 三极管2n系列

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台