首页 » 科学 » 深入浅出带你理解FPGA架构_逻辑_系列

深入浅出带你理解FPGA架构_逻辑_系列

神尊大人 2024-12-02 15:51:38 0

扫一扫用手机浏览

文章目录 [+]

FPGA是一种集成电路,一种可编程芯片,它许可工程师对定制的数字逻辑进行编程,可以根据程序改变其硬件逻辑。
紧张目的是许可工程师重新设计和重新配置他们的芯片更快,更便宜,只要他们想要,然而天下上没有什么空想的,FPGA芯片也有局限性!

FPGA最早涌现于20世纪80年代,其最初的运用是许可工程师拥有通用可编程逻辑芯片。
然而,这须要大量的编程才能实行大略的功能,以是工程师们只管即便避免利用这些功能。
但是,虽然在1980年的FPGA是一个大略的接口设备,紧张针对难以用于设计繁芜系统的胶水逻辑,但它成为了一个别系级集成电路,具有自己的内存块、微处理器和接口,许可设计主要的系统。

深入浅出带你理解FPGA架构_逻辑_系列 深入浅出带你理解FPGA架构_逻辑_系列 科学

基本特点

深入浅出带你理解FPGA架构_逻辑_系列 深入浅出带你理解FPGA架构_逻辑_系列 科学
(图片来自网络侵删)

1) 采取FPGA设计ASIC电路(专用集成电路),用户不须要投片生产,就能得到合用的芯片。

2) FPGA可做其它全定制或半定制ASIC电路的中试样片。

3) FPGA内部有丰富的触发器和I/O引脚。

4) FPGA是ASIC电路中设计周期最短、开拓用度最低、风险最小的器件之一。

5) FPGA采取高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

6)使工程师能够精确地构建所需硬件,而不必利用标准集成电路,或花费与ASIC设计干系的韶光、本钱和风险。

7)与微处理器或微掌握器比较,它们以更快、更节能和更大略的办法进行操作。

8)FPGA功能可以像任何其他软件代码一样更新,纵然硬件已经离开了生产点。
这可以帮助修复bug或添加新特性。

可以说,FPGA芯片是提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其事情状态,因此,事情时须要对片内RAM进行编程。
用户可以根据不同的配置模式,采取不同的编程办法。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入事情状态。
掉电后,FPGA规复成白片,内部逻辑关系消逝,因此,FPGA能够反复利用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当须要修正FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的利用非常灵巧。

CPLD和FPGA

CPLD是繁芜可编程逻辑器件,也是一种制造后可重新编程的器件。
在这个意义上,它们类似于FPGA。
然而,也有显著的差异。
FPGA由多个逻辑单元组成,而CPLD由较少的逻辑单元组成。
由于它们的尺寸,CPLD常日更便宜和更快。
然而,CPLD的功能非常有限,它们不能用于构建繁芜的系统,它们常日用于大略的设计,如胶合逻辑[1]。

各个厂家叫法不尽相同。
PLD(Programmable Logic Device)是可编程逻辑器件的总称,早期多EEPROM工艺,基于乘积项构造。
FPGA最早由Xilinx公司发明。
多为SRAM 工艺,基于查找表(Look Up Table)构造,要外挂配置用的EPROM。
Xilinx把SRAM工艺,要外挂配置用的EPROM的PLD叫FPGA,把Flash工艺(类似EEPROM工艺),乘积项构造的PLD叫CPLD;Altera把自己的PLD产品:MAX系列(EEPROM工艺),FLEX/ACEX/APEX系列(SRAM工艺)都叫作CPLD,即繁芜PLD(Complex PLD)。

FPGA的运用

目前FPGA的运用有很多。
当我们在生产过程中不愿定我们的需求,或者需求会随着韶光而改变。
FPGA是最快、最便宜的原型制作方法之一,但它并不局限于此。
它被用于不同的目的:从灵巧的设计和机器学习演习到快速交易和加密挖掘。
做事器运用是FPGA设备最新的案例。

然而,它们也有缺点:

硬件本钱

速率哀求

FPGA的架构

FPGA由构建块组成,这些构建块就像可以用来构建系统的乐高积木。
它有一个基本的逻辑构建块称为逻辑单元(CLB),但也可以包含更大的其他块,如PLL、接口、内存等。
单个FPGA芯片将拥有数十万个逻辑单元。
除了CLB,芯片还有输出输入模块IOB(Input Output Block)和内部连线(Interconnect)。

我们有一个查找表(LUT)作为FPGA逻辑块的核心。
实质上便是一个RAM。
它把数据事先写入RAM后,每当输入一个旗子暗记就即是输入一个地址进行查表,找出地址对应的内容,然后输出。
构建块的输出是多路复用的。
多路复用器的一个输入是LUT的直接输出,用于纯组合逻辑,如NAND, NOR, XOR或其他逻辑门。
多路复用器的另一个输入是经由d型触发器并与时钟同步存储的LUT的注册输出。

一个逻辑单元本身是一个大略的电路,不能做太多的事情,但当有很多逻辑单元时,我们可以实现任何我们想要的功能。
为了做到这一点,逻辑单元被连接到一个阵列的其他逻辑单元。

CLB块之间的橙色矩形是可编程开关,它可以将逻辑单元的输出路由到任何地方。
这是一个非常大略的图表;事实上,比这里显示的更多的电线和互连线。

把稳携带和携带引脚。
每个加法器只有一位宽,而利用进位/进位引脚,可以非常快速和有效地创建大的加法器和计数器。
拥有快速、专用的携带链是FPGA相对付其他可编程逻辑器件(如CPLD)的最大上风之一。

在FPGA中,时钟可以实现所有触发器,由于没有时钟的数字设计险些不可想象。
FPGA有非常高等的时钟资源,包括内置的可配置PLL(锁相环)和DLL(延迟锁环)。
由于险些所有的当代数字设计都须要多个具有不同频率和相位延迟的时钟,因此时钟管理非常主要。

FPGA也有用于读取和输出数据的输入输出块。
除了标准的I/O块,大多数FPGA有以下I/O特性:

触发器输出同步I/O

微分旗子暗记

双数据速率(DDR)

序列化器和反序列化器(SERDES)

上拉、下拉和三态I/O

回转速率可调,驱动强度可调

就像内存中内置的RAM块一样,分布式RAM可以在100Kb和100Mb之间变革。
最新一代的FPGA设备也有DSP乘法器片,紧张用于DSP运用(数字旗子暗记处理)。
大多数FPGA有其他内置块:

ADC和DAC

外部存储器掌握器,如DRAM, DDR, DDR2。

串行总线掌握器

以太网MAC

专用的前辈先出[2]

高速收发器

这些块在FPGA设备上设计为“硬块”,而不是在制造过程后由逻辑块和开关构建,由于它们常日是所有繁芜系统都须要的。
由于它们存在于所有的系统中,并且利用得非常频繁,以是我们希望它们能够存在以节省韶光(总利用clb和开关从头开始设计它们没故意义,相反我们将它们设计为单独的可配置块,以便设计师能够变动它们的参数),但更主要的是,我们希望它们具有非常好的特性,非常高效地事情并占用更少的空间。
此外,这些模块中有一些仿照部件须要手工设计,不能仅通过数字单元来构建。

如何对FPGA进行编程和配置

为了配置FPGA,我们须要对它进行编程。
我们可以利用Verilog、System Verilog和VHDL等FPGA硬件描述措辞进行编程。
这些措辞有一些差异,这里便不再赘述。
利用FPGA定义硬件的事情流程如下:

每个步骤都须要一些工具集。
大多数FPGA制造商都供应了具备所有所需工具的编程环境。

高手玩家

FPGA市场前景诱人,但是门槛之高在芯片行业里无出其右。
环球有60多家公司先后斥资数十亿美元,前赴后继地考试测验登顶FPGA高地,个中不乏英特尔、IBM、德州仪器、摩托罗拉、飞利浦、东芝、三星这样的行业巨鳄,但是终极登顶成功的只有位于美国硅谷的四家公司:Xilinx(赛灵思)、Altera、Lattice(莱迪思)、Microsemi,个中,Xilinx与Altera这两家公司共霸占近90%的市场份额,专利达到6000余项之多,如此之多的技能专利构成的技能壁垒高不可攀。

Xilinx

Xilinx公司成立于 1984年,Xilinx创始了现场可编程逻辑阵列(FPGA)这一创新性的技能,并于1985岁首年月次推出商业化产品,是环球领先的可编程逻辑完全办理方案的供应商,也是目前排名第一的FPGA办理方案供应商。

产品系列包括:

Spartan系列:定位于低端市场,目前最新器件为采取28nm工艺的Spartan7;

Artix系列:定位于低端Spartan和高端Kintex之间的中端市场,目前在售的主流产品为采取28nm工艺的Artix-7;

Kintex系列:定位于高端市场,包含有28nm工艺的Kintex7系列,20nm的Kintex7 Ultrascale系列,还有16nm的Kintex7 Ultrascale+系列;

Virtex系列:定位于高端市场,包含有采取28nm工艺的Virtex7系列,20nm的Virtex7 Ultrascale系列,还有16nm的Virtex7 Ultrascale+系列;

全可编程 SoC 和 MPSoC系列:包括有Zynq-7000和Zynq UltraScale+ MPSoC系列FPGA、内嵌有ARM Cortex系列CPU;

AI Engine系列:Versal ACAP、Alveo系列等。

Intel(Altera)

与Xilinx齐名的FPGA供应商,2015年被CPU届的大佬Intel收购。

产品系列包括:

MAXII系列:本色上是CPLD;

Cyclone系列:定位于中低端市场,类似于Xilinx 公司的Spartan系列和Artix系列,最新产品为Cyclone10。

Stratix系列:定位于高端市场,与Xilinx的Kintex、Virtex系列竞争,最新产品为Stratix10;

Arria系列:SOC系列FPGA, 内置ARM Cotex A9的核;

Intel Arria 10系列:支持DDR4存储器接口的FPGA,硬件设计职员可以利用Quartus II 软件v14.1,在Arria 10 FPGA和SoC设计中实现666 Mbps DDR4存储器数据速率;

Agilex系列:面向数据中央等高端市场,采取10nm工艺,异构 3D 系统级封装 (SiP) 技能的一款FPGA产品。

Microchip(Microsemi)

Microsemi并购了Actel,专注于美国军工和航空领域,产品为反熔丝构造FPGA和基于Flash的FPGA为主,具有抗辐照和可靠性高的上风,Microsemi又被Microchip(微芯)并购。

产品系列包括:

基于FLASH的通用FPGA系列:包括PolarFire Mid-Range FPGAs、RTG4 Radiation-Tolerant FPGAs、IGLOO2 Low-DensityFPGAs三个高、中、低端系列。

Lattice

CPLD的发明者,著名的可编程逻辑办理方案供应商,仅次于Xilinx和Altera。

产品系列包括:

ECP系列:为Lattice自己的开拓的FPGA系列,供应低本钱,高密度的FPGA办理方案,而且还有高速Serdes等接口,适用于民品办理方案居多;

ICE系列:为收购SilioncBlue的超低功耗FPGA,曾用在iPhone7里面,实现了FPGA首次在消费类产品中运用;

Mach系列:替代CPLD,实现粘合逻辑的最佳选择。

QuickLogic Corp

QuickLogicCorporation 出身于1988年,是一家超低功耗嵌入式现场可编程门阵列 (eFPGA) IP、多核语音识别 SoC、显示器桥接和可编程序逻辑办理方案开拓公司。

eFPGA产品系列包括:采取65nm和40nm工艺的ArcticPro系列和采取GF-22工艺的ArcticPro 2 eFPGA。

Achronix

Achronix 作为后起之秀,早期推出了eFPGA IP,但是限于IP产品的变现速率太慢,随后推出了FPGA芯片,今年5月发布的新品叫Speedater7t。

EFINIX

EFINIX可以说是后起之秀,它改变了传统FPGA的设计理念:

eXchangeable Logic and Routing (XLR) cell

我们将逻辑资源比作一个城市。
随着城市的扩大,就必须建立更宽的道路,道路间要建立不少的立交,而且这些立交的层次都可能很繁芜,还须要更多的交通灯,以及匝道来汇聚和分开车流。
这些实际上和一块FPGA的构造非常类似,你可以自然遐想到,芯片规模越大,就只有两个办法来完成逻辑之间的互联互通。
要不便是把走线的资源增加很多层,要不便是把芯片做到更大的面积来增加布线。
乃至两个方面都要加强。

传统的FPGA中的运算单元LE(Logic Element)和互连资源Routing Switch在功能上各司其职,而数量和位置都是固定的。
因此,如果你的设计中有很多Logic,那么很可能片上的LE不足用,而互连资源会有很多富余;而如果你的设计中须要很多的连线,比如繁芜的总线,大量的Mux,那么很可能互连资源成为瓶颈。

Efinix的想法便是设计一种新的Cell,XLR,它既可以作为运算资源,又可以作为互连资源。

海内紧张玩家

[1] gule logic的中文含意是“胶合逻辑”,它是连接繁芜逻辑电路的大略逻辑电路的统称。
例如,一个ASIC芯片可能包含许多诸如微处理器、存储器功能块或者通信功能块之类的功能单元,这些功能单元之间通过较少的粘合逻辑连接起来。
在印制板(PCB)层,粘合逻辑可以利用具有较少逻辑门的“粘合芯片”实现,例如PAL、GAL、CPLD等。

[2] 前辈先出(FIFO,first-in,first-out)为处理从行列步队或堆栈发出的程序事情哀求的一种方法,它使最早的哀求被最先处理。

标签:

相关文章

C语言在计算机编程教育中的地位与作用

随着科技的飞速发展,计算机编程已经成为现代社会不可或缺的一部分。而在众多编程语言中,C语言凭借其强大的功能和高效的性能,始终占据着...

科学 2025-01-05 阅读0 评论0

C语言在计算机科学领域的地位与应用

随着科技的飞速发展,计算机科学已经成为现代社会不可或缺的一部分。在计算机科学领域,C语言作为一种历史悠久、功能强大的编程语言,始终...

科学 2025-01-05 阅读0 评论0

C语言在软件领域的应用与发展

随着计算机技术的飞速发展,编程语言作为计算机科学的核心组成部分,在软件开发中扮演着至关重要的角色。C语言作为一种历史悠久、功能强大...

科学 2025-01-05 阅读0 评论0