0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > 什么是FPGA芯片?FPGA芯片的生产厂商?FPGA芯片在工业领域的应用?

什么是FPGA芯片?FPGA芯片的生产厂商?FPGA芯片在工业领域的应用?

来源:
2024-01-11
类别:基础知识
eye 6
文章创建人 拍明芯城

  什么是FPGA芯片

  PGA中文全称为现场可编程门阵列(FieldProgrammableGateArray),是逻辑芯片的一种。FPGA自问世以来,经过了几个不同的发展阶段,在工艺技术和应用需求等因素的驱动下,FPGA的特性和工具都发生了明显变化,并在灵活性、性能、功耗、成本之间具有较好的平衡性。基于上述特点,FPGA芯片早期作为ASIC(专用集成电路)芯片的半定制化电路替代品应用于部分场景中,近年来,FPGA芯片在工业领域的应用范围也不断拓宽。集成电路芯片包括数字芯片和模拟芯片两大类,数字芯片可以分为存储器芯片和逻辑芯片,我们熟知的逻辑芯片一般包括CPU、GPU、DSP等通用处理器芯片,以及专用集成电路芯片ASIC。FPGA(现场可编程门阵列,FieldProgrammableGateArray)也是逻辑芯片的一种。

1.png

  FPGA是在PAL(可编程逻辑阵列)、GAL(通用阵列逻辑)、CPLD(复杂可编程逻辑器件)等传统逻辑电路和门阵列的基础上进一步发展的产物。它利用计算机辅助设计,绘制出实现用户要求的原理图、编辑布尔方程或用硬件描述语言等方式作为设计输入;然后经一系列转换程序、自动布局布线、模拟仿真的过程;最后生成FPGA的数据文件,对FPGA器件初始化。这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的。

  FPGA与CPU、GPU、ASIC等芯片的核心区别是:其底层逻辑运算单元的连线和逻辑布局未固化。用户可通过EDA软件对逻辑单元和开关阵列编程,进行功能配置,从而去实现特定功能的集成电路芯片。而其他类别逻辑芯片,像ASIC、CPU和GPU等,物理底层逻辑单元的运算关系均已固定且不可变。简单地说,如果CPU、GPU、ASIC等是像建好的楼房,楼房中房间、走廊及楼梯等格局是已经固定了;而FPGA的内部类似霍格沃兹中的魔法楼梯,可以随时改变房间到房间的路线关系。

  FPGA由可编程逻辑块(CLB)、输入/输出模块(IOB)、可编程互连资源(PIR)等三种可编程电路和用于存放编程数据的静态存储器SRAM组成。CLB是实现逻辑功能的基本单元,它们通常规则排列成一个阵列,散布于整个芯片中。IOB主要完成芯片上的逻辑与外部引脚的接口,通常排列在芯片的四周。PIR提供了丰富的连线资源,包括纵横网状连线、可编程开关矩阵和可编程连接点等,它们将各个CLB之间、CLB与IOB之间以及IOB之间连接起来,构成特定功能的电路。静态存储器SRAM用于存放内部IOB、CLB和PIR的编程数据,并形成对IOB、CLB及PIR的控制,从而完成系统逻辑功能。

  由于FPGA需要被反复烧写,它实现的组合逻辑基本结构无法通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表(Look-Up-Table,简称为LUT)可以很好地满足这一要求。

  LUT实质上是一个RAM,当用户描述了一个逻辑电路后,软件会计算所有可能的结果,并写入RAM。每一个信号进行逻辑运算,就等于输入一个地址进行查表,找出地址对应的内容,输出结果。这样也大大加快了FPGA的运算速度。目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些FPGA采用Flash或反熔丝工艺的查找表结构。

  FPGA芯片的生产厂商

  两大巨头: Xilinx 和 Altera。

  一群小弟:紫光同创、京微雅格、高云半导体、上海安路、西安智多晶等,同国外领先厂商相比,国产 FPGA 厂商不论从产品性能、功耗、功能上都有较大差距。

  ZYNQ

  ZYNQ = FPGA + ARM 核,可以自己定制电路,还可以做普通的嵌入式开发。

  PYNQ:Python Productivity for Zynq

  PYNQ = Python + ZYNQ,是 Xilinx 推出的一种开放源代码框架,使用 Python 语言和库,使设计人员可以利用 zynq 中可编程逻辑和微处理器的优势来快速构建高性能的嵌入式应用程序。

  Xilinx A7 系列 FPGA 芯片

  于是 FPGA 应运而生,于 1985 年由 Xilinx 创始人之一 Ross Freeman 发明,属于可编程逻辑器件 PLD(Programmable Logic Device)的一种。

  真正意义上的第一颗 FPGA 芯片 XC2064 为 Xilinx 所发明,这个时间差不多比著名的摩尔定律晚 20 年左右,但是 FPGA 一经问世,后续的发展速度之快,超出大多数人的想象。

  我们要知道一块专用的 ASIC 定制集成电路的芯片他在出厂前功能就已经定死了,就拿上面的数字时钟来举例,假如我现在拿到一块全新的数字时钟芯片,那么我只需要看看厂家给我提供的数据手册,看看它是怎么操作的,可能仅仅只需要给它通上电然后简单的配置一下它就能工作了。它的功能是不可更改的,就只能跑个数字时钟,而且它内部电路是啥样的我也不知道,虽然用起来简单,但是缺乏灵活性,但 FPGA 就不一样了,它在出厂的那一刻是不具备任何功能的,可以说就是一张白纸。你可以在这张白纸上肆意创作,你想要它实现数字时钟的功能没问题,通过特定的编辑语言,例如 Verilog、VHDL 等硬件描述语言将数字时钟的逻辑编写好,下载到 FPGA 内部,它就会生成一个数字时钟的电路,去完成数字时钟的功能。当你不想要这个功能了,没问题你可以随时将内部程序擦除,或者用一个新的设计去覆盖原有的设计。理论上我们可以用 FPGA 去生成一个任意我们想要的功能,正是基于这种强大的可编辑能力,FPGA 近年来越来越受到市场的认可,在未来 FPGA 的适用范围必将越来越广阔。

  FPGA芯片在工业领域的应用

  当前,随着AI、大数据、物联网、无人驾驶等新兴技术的发展,FPGA凭借灵活性、可重构性赢得了更多增量市场。由于FPGA芯片通过专用EDA软件现场对硬件进行变成即可实现具体功能,这样的高灵活性使得其下游应用领域丰富,包括汽车电子、工业控制、军事、医疗、消费电子、人工智能等。这些领域增长明确,发展空间广阔,是FPGA芯片需求增长核心源动力。

  例如,FPGA通常被应用在汽车电子领域中的网关控制器、车用PC机、远程信息处理系统;军事领域中的安全通信、雷达、声纳;消费产品领域中的显示器、投影仪、数字电视和机顶盒、家庭网络;医疗领域中的大型医疗成像设备、临床设备等方面。

  在加速转型的工业领域,企业对于数据处理能力的要求越来越高。此外,随着制造业智能工厂的建设需求越来越盛,设备的高度灵活性和多功能性显得尤为重要,新设备需要具有可重新编程的能力,以应对不断变化的市场标准和多样化性能需求。FPGA的可重复编程、并行计算能力强、灵活性强等特点能很好地满足上述需求。特别是FPGA在电机控制、机器视觉、工业机器人等场景的应用成为了制造业构建智能工厂的新选择。

  当前,电机控制的发展越来越趋于多样化、复杂化,FPGA芯片固有的可编程性和并行处理能力十分适合高端产品的电机控制,尤其是工业领域。FPGA以硬件方式进行并行处理,并不占用CPU资源,可以促使系统性能达到最大化。目前很多厂商会将一些优化算法整合到FPGA中,可以基于FPGA器件,通过一个平台实现多个电机控制,极大程度的提高了能源的利用效率。例如,GEMBO公司与英特尔及贝加莱(B&R)三方合作,联合开发了基于FPGA的端到端的电机控制和监控解决方案,实现电机的电流、转速和温度采集及电机进行实时控制。

  在机器视觉方面,目前主流的工业相机解决方案,由于CPU的计算性能有限,对于计算复杂度很高的视觉算法,其处理速度难以满足系统实时性的需求。随着FPGA集成度越来越高,基于FPGA的嵌入式视觉系统成为机器视觉发展的重要方向。例如,英特尔®FPGA解决方案在单个FPGA上集成多种功能,如图像采集、摄像头接口、预处理和通信功能。随着摄像头传感器不断进行技术升级,智能互联网协议摄像头逐渐取代模拟摄像头,基于人工智能和深度学习的视频分析取得进展,FPGA出色的低延迟、确定性、灵活性都超出了基于视觉的系统所需的许多关键要求。

  当前,工业机器人产业市场增长强劲。由于劳动力供应的短缺和成本的上升,提高流程效率和自动化程度更加迫切。因此,在制造业,能够执行各种操作和运输任务的多轴机器人的使用范围正在迅速扩大。FPGA内部丰富的布线资源、嵌入式专用IP、基本可编程逻辑单元等使其可以同时处理不同种类的任务,实现更加灵活的同时,满足一些高速接口的时序要求,这些都是工业机器人实现控制功能必备的条件。例如,工业机器人制造商安川电机为了获得更高的性能和精度,选择采用多款英特尔®FPGA,用于机器人控制和伺服控制。

  可以看到,FPGA所提供的灵活性、优秀的并行计算性能可以帮助制造企业在实现数字化、智能化的条件下,极大程度地降低成本、功耗。据研究机构MarketResearchFuture(MRFR)统计,预计到2025年,全球FPGA在工业市场应用占比将从2019年的12%增长至19%,市场前景广阔。

  工业数字化转型升级为FPGA的应用开辟了新的处女地,带来了良好的发展契机。但在技术壁垒极高的FPGA领域,不论是芯片架构、关键IP、高速接口等芯片硬件设计,还是设计工具和生态系统建设,都需要在正确的发展路径上不断积累和加速,才能针对不同的应用场景、市场环境,灵活应对,突破重围。

image.png

  FPGA芯片有什么用

  FPGA 所能应用的领域大概可以分成六大类:

  1)通信领域

  FPGA 在通信领域的应用可以说是无所不能,得益于 FPGA 内部结构的特点,它可以很容易地实现分布式的算法结构,这一点对于实现无线通信中的高速数字信号处理十分有利。因为在无线通信系统中,许多功能模块通常都需要大量的滤波运算,而这些滤波函数往往需要大量的乘和累加操作。而通过 FPGA 来实现分布式的算术结构,就可以有效地实现这些乘和累加操作。尤其是 Xilinx 公司的 FPGA内部集成了大量的适合通信领域的一些资源比如:基带处理(通道卡)、接口和连接功能以及 RF(射频卡)三大类:

  (1)基带处理资源

  基带处理主要包括信道编解码(LDPC、Turbo、卷积码以及 RS 码的编解码算法)和同步算法的实现(WCDMA 系统小区搜索等)。

  (2)接口和连接资源

  接口和连接功能主要包括无线基站对外的高速通信接口(PCI Express、以太网 MAC、高速 AD/DA 接口)以及内部相应的背板协议(OBSAI、CPRI、EMIF、LinkPort)的实现。

  (3)RF 应用资源

  RF 应用主要包括调制/解调、上/下变频(WiMAX、WCDMA、TD-SCDMA 以及 CDMA2000 系统的单通道、多通道 DDC/DUC)、削峰(PC-CFR)以及预失真(Predistortion)等关键技术的实现。

  总而言之只要你 FPGA 学的好,在通信领域你绝对可以大展身手。

  2)数字信号处理领域

  在数字信号处理领域 FPGA 同样所向披靡,主要是因为它的高速并行处理能力。FPGA 最大优势是其并行处理机制,即利用并行架构实现数字信号处理的功能。这一并行机制使得 FPGA 特别适合于完成 FIR 等数字滤波这样重复性的数字信号处理任务,对于高速并行的数字信号处理任务来说,FPGA 性能远远超过通用 DSP 处理器的串行执行架构,还有就是它接口的电压和驱动能力都是可编程配置的不像传统的 DSP 需要受指令集控制,因为指令集的时钟周期的限制,不能处理太高速的信号,对于速率级为 Gbps 的 LVDS 之类信号就难以涉及。所以在数字信号处理领域 FPGA 的应用也是十分广泛的。

  3)视频图像处理领域

  随着时代的变换,人们对图像的稳定性、清晰度、亮度和颜色的追求越来越高, 像以前的标清(SD)慢慢演变成高清(HD),到现在人们更是追求蓝光品质的图像。这使得处理芯片需要实时处理的数据量越来越大,并且图像的压缩算法也是越来越复杂,使得单纯的使用 ASSP 或者 DSP 已经满足不了如此大的数据处理量了。这时 FPGA 的优势就凸显出来了,它可以更加高效的处理数据,所以在图像处理领域在综合考虑成本后,FPGA 也越来越受到市场的欢迎。

  4)高速接口设计领域

  其实看了 FPGA 在通信领域和数字信号处理领域的表现,我想大家也已应该猜 到了在高速接口设计领域,FPGA 必然也是有一席之地的。它的高速处理能力和多达成百上千个的 IO 决定了它在高速接口设计领域的独特优势。比如说我需要和 PC 端做数据交互,将采集到的数据送给 PC 机处理,或者将处理后的结果传给 PC 机进行显示。PC 机与外部系统通信的接口比较丰富,如 ISA、PCI、PCI Express、PS/2、USB 等。传统的做法是对应的接口使用对应的接口芯片,例如 PCI 接口芯片,当我需要很多接口时我就需要多个这样的接口芯片,这无疑会使我们的硬件外设变得复杂,体积变得庞大,会很不方便,但是如果使用 FPGA 优势立马就出来了,因为不同的接口逻辑都可以在 FPGA 内部去实现,完全没必要那么多的接口芯片,在配合 DDR 存储器的使用,将使我们接口数据的处理变得更加得心应手。

  5)人工智能领域

  如果大家比较喜欢关注科技板块的新闻的话最近一定会被 5G 通信和人工智能充斥 眼球,确实 21 世纪已经不知不觉走到了 2020 年,在这 20 年间,人工智能迅速发展,5G 的顺利研发也使人工智能如虎添翼,可以预见,未来必将是人工智能的天下。FPGA 在人工智能系统的前端部分也是得到了广泛的应用,例如自动驾驶,需要对行驶路线、红绿灯、路障和行驶速度等各种交通信号进行采集,需要用到多种传感器,对这些传感器进行综合驱动和融合处理就可以使用 FPGA。还有一些智能机器人,需要对图像进行采集和处理,或者对声音信号进行处理都可以使用 FPGA 去完成,所以 FPGA 在人工智能系统的前端信息处理上使用起来得心应手。

  6)IC 验证领域

  IC 这个词大家可能一听到就觉得特别高深,不是凡人所能触及到的,而 IC 设计更是一些神人才能胜任的工作。不可否认的是 IC 设计门槛确实比较高,但是我们也没必要把它过于神话,其实简单点来讲我们可以拿 PCB 设计来与之比较,PCB 是拿一个个元器件在印制线路板上去搭建一个特定功能的电路组合,而 IC 设计呢是拿一个个 MOS 管,PN 节在硅基衬底上去搭建一个特定功能的电路组合,一个 宏观一个微观。PCB 如果设计废了大不了重新设计再打样也不会造成太大损失,但是如果 IC 设计废了再重新设计那损失就很惨重了,俗话说大炮一开,黄金万两,那么在 IC 领域光刻机一开黄金万两也不是吹的,光刻胶贵的要命,光刻板开模也不便宜,加上其他多达几百上千道工序,其中人力、物力、机器损耗、机器保养,绝对是让人肉疼的损失,所以 IC 设计都要强调一版成功。保证 IC 一版成功就要进行充分的仿真测试和 FPGA 验证,仿真验证是在服务器上面跑仿真软件进行测试,类似 ModelSim/VCS 软件;FPGA 验证主要是把 IC 的代码移植到 FPGA 上面,使用 FPGA 综合工具进行综合、布局布线到最终生成 bit 文件,然后下载到 FPGA 验证板上面进行验证,对于复杂的 IC 我们还可以给他拆成几个部分功能去分别验证,每个功能模块放在一个 FPGA 上面,FPGA 生成的电路非常接近真实的 IC 芯片。这样极大的方便我们 IC 设计人员去验证自己的 IC 设计。

  FPGA的优势

  经过多年发展,FPGA在灵活性、性能、功耗、成本之间具有较好的平衡性。其优势体现在以下几个方面:

  设计灵活:属于硬件可重构的芯片结构,内部设置数量丰富的输入输出单元引脚及触发器。

  兼容性强:FPGA芯片可与CMOS、TTL等大规模集成电路兼容,协同完成计算任务。

  并行计算:FPGA内部结构可按数据包步骤多少搭建相应数量流水线,不同流水线处理不同数据包,实现流水线并行、数据并行功能。

  适用性强:是专用电路中开发周期最短、应用风险最低的器件之一。

  相较于CPU,FPGA并行计算能力可提升运算速率并降低时延。CPU的本质是利用大规模存储器在时间维度内复用处理单元,并在强大逻辑数据库支持下实现更多应用逻辑,但同时也会失去处理单元的并行处理能力。

  相较于GPU,FPGA在功耗和灵活性等方面具备优势。一方面,由于GPU采用大量的处理单元并且大量访问片外存储SDRAM,其计算峰值更高,同时功耗也较高,FPGA的平均功耗(10W)远低于GPU的平均功耗(200W),可有效改善散热问题;另一方面,GPU在设计完成后无法改动硬件资源,而FPGA根据特定应用对硬件进行编程,更具灵活性。

  相较于ASIC芯片,FPGA具备短周期、高性价比的优势。ASIC需从标准单元进行设计,当芯片的功能及性能需求发生变化时或者工艺进步时,ASIC需重新投片,由此带来较高的沉没成本以及较长的开发周期;而FPGA包括预制门和触发器,具有编程、除错、再编程和重复操作等优点,可实现芯片功能重新配置。因此早期FPGA常作为定制化ASIC领域的半定制电路出现,被业内认为是构建原型和开发设计的较快推进的路径之一。

  FPGA芯片选择策略和原则

  由于FPGA具备设计灵活、可以重复编程的优点,因此在电子产品设计领域得到了越来越广泛的应用。在工程项目或者产品设计中,选择FPGA芯片可以参考以下的几点策略和原则。

  尽量选择成熟的产品系列

  FPGA芯片的工艺一直走在芯片设计领域的前列,产品更新换代速度非常快。稳定性和可靠性是产品设计需要考虑的关键因素。厂家最新推出的FPGA系列产品一般都没有经过大批量应用的验证。选择这样的芯片会增加设计的风险。

  而且,最新推出的FPGA芯片因为产量比较小,一般供货情况都不会很理想,价格也会偏高一些。如果成熟的产品能满足设计指标要求,那么最好选这样的芯片来完成设计。

  例如,要用FPGA设计一块数据采集卡。采用Altera公司的Cyclone、CyloneII和CycloneIII等3个系列的芯片都可以完成这个功能。考虑到Cyclone和CyloneII是成熟产品,同时CyloneII又是Cyclone的升级产品,因此选择CyloneII是比较理想的方案。

  尽量选择兼容性好的封装

  FPGA系统设计一般采用硬件描述语言(HDL)来完成设计。这与基于CPU的软件开发又有很大不同。特别是算法实现的时候,在设计之前,很难估算这个算法需要占多少FPGA的逻辑资源。

  作为代码设计者,希望算法实现之后再选择FPGA的型号。但是,现在的设计流程一般都是软件和硬件并行开始设计。也就是说,在HDL代码设计之前,就开始硬件板卡的设计。这就要求硬件板卡具备一定的兼容性,可以兼容不同规模的FPGA芯片。

  幸运的是,FPGA芯片厂家考虑到了这一点。目前,同系列的FPGA芯片一般可以做到相同物理封装兼容不同规模的器件。例如,Xilinx的Spartan3系列FPGA,在BGA456封装下,可以选择3S200、2S400、3S1000、3S1500这4种型号的FPGA。

  正是因为这一点,将来的产品就具备非常好的扩展性,可以不断地增加新的功能或者提高性能,而不需要修改电路板的设计文件。

  尽量选择一个公司的产品

  如果在整个电子系统中需要多个FPGA器件,那么尽量选择一个公司的产品。这样的好处不仅可以降低成本,而且降低开发难度。因为开发环境和工具是一致的,芯片接口电平和特性也一致,便于互联互通。

  很多第一次接触FPGA的设计师在芯片选型的时候都有过这个疑问。其实这两个最大的FPGA厂家位于美国的同一座城市,人员和技术交流都很频繁,因此产品各有的优势和特色,很难说清楚谁好谁坏。

  在全球不同的地区,这两家公司的FPGA芯片产品的市场表现会有所差别。在中国市场,两家公司可以说是平分秋色,在高校里面Altera的客户会略多一些。针对特定的应用,两个厂家的产品目录里面都可以找到适合的系列或者型号。

  比如,针对低成本应用,Altera公司的Cyclone系列和Xilinx公司的Spartan3系列是对应的。针对高性能应用,Altera公司的Stratix系列和Xilinx公司的Virtex系列是对应的。所以,最终选择那个公司的产品还是看开发者的使用习惯。

  FPGA的发展历程

  自问世以来,FPGA经过了几个不同的发展阶段。赛灵思于1984年发明了世界首款FPGA,接下来的几十年里,这种名为FPGA的器件,在容量和速度上都有大幅度提升,成本和能耗也大大降低。这些进步主要由工艺技术所驱动,而且人们很容易认为FPGA的发展只是随着工艺的发展简单地增大了容量。其实并没有这么简单,真正的FPGA发展之路要精彩得多。

  发明时代:1984-1992年

  首款FPGA,即赛灵思XC2064,只包含64个逻辑模块,每个模块含有两个3输入查找表和一个寄存器。尽管容量很小,XC2064晶片的尺寸却非常大,比当时的微处理器还要大,因此,其成本高达数百美元。在成本压力下,FPGA架构师寻求通过架构和工艺创新来尽可能提高FPGA设计效率。由于基于SRAM的FPGA面积比较大,而基于反熔丝的FPGA可以避免SRAM存储系统片上占位面积过大问题。于是1990年出现的最大容量的FPGA是基于反熔丝的Actel1280。

  扩展时代:1992-1999年

  FPGA初创公司都是无晶圆厂的公司,难以获得领先的芯片技术。因此FPGA开启了扩展时代。90年代后期,基于SRAM的FPGA体现出明显的产品优势,因为基于SRAM的器件可立即使用密度更高的新工艺,而反熔丝则额外需要大量时间。IC代工厂意识到只要能用新工艺产出晶体管和电线,就能制造基于SRAM的FPGA,每一代新工艺的出现都会将晶体管数量增加一倍,使成本减半,并将FPGA的尺寸增大一倍。此时,更大的FPGA设计需要具有自动布局布线功能的综合工具。到90年代末,自动综合、布局和布线已经成为设计流程的必要步骤,FPGA公司对EDA工具依赖程度大大增加。

  积累时代:2000-2007年

  新千年伊始,FPGA已成为数字系统中的通用组件。容量和设计尺寸快速增加,使得FPGA在数据通信领域开辟了巨大市场。然而,单纯提高容量不足以保证市场增长,FPGA厂商通过如下两种方式解决了这一挑战。针对低端市场,厂商更关注效率问题,并生产低容量、低性能的FPGA系列。针对高端市场,FPGA厂商开发了针对重要功能的软逻辑(IP)库,以获取更高性能的FPGA。此外,FPGA的设计特点在2000年代发生了改变。FPGA用户不再只是实现逻辑,他们需要使FPGA设计符合系统标准要求,这些标准主要是指信号和协议方面的通信标准,可用来连接外部组件或者实现内部模块通信。积累时代末期,FPGA已发展为集成有可编程逻辑的复杂功能集,俨然变成了一个系统。

  系统时代:2008年至今

  为解决系统设计问题,FPGA越来越多地整合系统模块:高速收发器、存储器、DSP处理单元和完整处理器。同时还进一步集成了重要控制功能:比特流加密与验证、混合信号处理、电源与温度监控以及电源管理等。

  近年来,FPGA的开发工具也在不断发展。虽然FPGA可使用Verilog或VHDL等低层次硬件描述语言来编程,但系统FPGA需要高效的系统编程语言,目前已有多种高层次综合(HLS)工具,采用以C/C++等更高层次的语言编写算法,并将其转换为Verilog或VHDL等低层次的硬件描述语言,以便对FPGA器件进行快速编程。

  FPGA芯片设计及关键技术

  本文来自“FPGA专题:万能芯片点燃新动力,国产替代未来可期(2023)”,FPGA又称现场可编程门阵列,是在硅片上预先设计实现的具有可编程特性的集成电路,用户在使用过程中可以通过软件重新配置芯片内部的资源实现不同功能。通俗意义上讲,FPGA 芯片类似于集成电路中的积木,用户可根据各自的需求和想法,将其拼搭成不同的功能、特性的电路结构,以满足不同场景的应用需求。鉴于上述特性,FPGA 芯片又被称作“万能”芯片。

  FPGA 芯片由可编程的逻辑单元(Logic Cell,LC)、输入输出单元(Input Output Block,IO)和开关连线阵列(Switch Box,SB)三个部分构成:

  (1)逻辑单元:通过数据查找表(Look-up Table,LUT)中存放的二进制数据来实现不同的电路功能。LUT 的本质是一种静态随机存取存储器(Static Random Access Memory,SRAM),其大小是由输入端的信号数量决定的,常用的查找表电路是四输入查找表(4-input LUT,LUT4)、五输入查找表(5-input LUT,LUT5)和六输入查找表(6-input LUT,LUT6)。查找表输入端越多,可以实现的逻辑电路越复杂,因此逻辑容量越大,但是查找表的面积和输入端数量成指数关系,输入端数量增加一个,查找表使用的 SRAM 存储电路面积增加约一倍。不同的逻辑单元结构可以使用不同大小的查找表,或者是不同查找表类型的组合。此外,逻辑单元内部还包含选择器、进位链和触发器等其他组件。为了提高芯片架构效率,若干逻辑单元可以进一步组成逻辑块(Logic Block),逻辑块内部提供快速局部资源,从而形成层次化芯片架构。

  (2)输入输出单元:是芯片与外界电路的接口部分,用于实现不同条件下对输入/输出信号的驱动与匹配要求。

  (3)开关阵列:能够通过内部 MOS 管的开关控制信号连线的走向。

  FPGA 从 Xilinx 公司 1985 年推出世界首款 FPGA 芯片“XC2064”经历过数十年发展,在硬件架构上大致经历了四个阶段:从 PROM 阶段(简单的数字逻辑)到 PAL/GAL 阶段(“与”&“或”阵列)再到 CPLD/FPGA 阶段(超大规模电路),到如今 FPGA 与 ASIC 技术融合、向系统级发展的 SoC FPGA/eFPGA 阶段。硬件水平整体趋向更大规模、更高灵活性、更优性能。

  FPGA 芯片属于逻辑芯片大类。逻辑芯片按功能可分为四大类芯片:通用处理器芯片(包含中央处理芯片 CPU、图形处理芯片 GPU,数字信号处理芯片 DSP等)、存储器芯片(Memory)、专用集成电路芯片(ASIC)和现场可编程逻辑阵列芯片(FPGA)。

  FPGA 兼具灵活性和并行性两大特点。

  (1)灵活性:FPGA芯片拥有更高的灵活性和更丰富的选择性,通过对 FPGA 编程,用户可随时改变芯片内部的连接结构,实现任何逻辑功能。尤其是在技术标准尚未成熟或发展更迭速度快的行业领域,FPGA 能有效帮助企业降低投资风险及沉没成本,是一种兼具功能性和经济效益的选择。

  (2)并行性:CPU、GPU 在执行任务时,执行单元需按顺序通过取指、译码、执行、访存以及写回等一系列流程完成数据处理,且多方共享内存导致部分任务需经访问仲裁,从而产生任务延时。而 FPGA 每个逻辑单元与周围逻辑单元的连接构造在重编程(烧写)时就已经确定,寄存器和片上内存属于各自的控制逻辑,无需通过指令译码、共享内存来通信,各硬件逻辑可同时并行工作,大幅提升数据处理效率。尤其是在执行重复率较高的大数据量处理任务时,FPGA 相比 CPU 等优势明显。

  相较于其他逻辑芯片而言,FPGA 在灵活性、性能、功耗、成本之间具有较好的平衡:

  (1)相较于 GPU,FPGA 在功耗和灵活性等方面具备优势。一方面,由于GPU 采用大量的处理单元并且大量访问片外存储 SDRAM,其计算峰值更高,同时功耗也较高,FPGA 的平均功耗(10W)远低于 GPU 的平均功耗(200W),可有效改善散热问题;另一方面,GPU 在设计完成后无法改动硬件资源,而 FPGA根据特定应用对硬件进行编程,更具灵活性。机器学习使用多条指令平行处理单一数据,FPGA 的定制化能力更能满足精确度较低、分散、非常规深度神经网络计算需求。

  (2)相较于 ASIC 芯片,FPGA 在项目初期具备短周期、高性价比的优势。ASIC 需从标准单元进行设计,当芯片的功能及性能需求发生变化时或者工艺进步时,ASIC 需重新投片,由此带来较高的沉没成本以及较长的开发周期;而 FPGA具有编程、除错、再编程和重复操作等优点,可实现芯片功能重新配置,因此早期 FPGA 常作为定制化 ASIC 领域的半定制电路出现,被业内认为是构建原型和开发设计的较快推进的路径之一。

  FPGA逻辑结构中的内存大致分为三个层次(以Intel Agilex-M FPGA为例),包括超本地化片上内存、以 HBM2e 堆栈形式提供的本地封装内存,以及 DDR5和 LPDDR5 等外部内存架构和接口。

  片上内存(MLAB 模块和 M20K 模块):最本地化的内存;

  封装内存(HBM):弥合内存层次结构中关键缺口的内存,其容量远大于片上内存(两个数量级以上),同时带宽又远大于片外内存(两个数量级以上);

  片外内存(DDR5、LPDDR5 等):对于超出 HBM2e 容量的应用,或对独立内存的灵活性有要求时,需要 DDR5 和 LPDDR5 以及其他主流的内存架构。

  HBM2e 与 FPGA 裸片集成在同一封装中可以在小尺寸外形规格中实现更高带宽、更低功耗、更低时延。

  (1)内存容量方面:每个 HBM2e 堆栈可包含 4 层或 8 层,每层提供 2GB 内存,因此单个 Intel Agilex-M 系列 FPGA 可包含 16GB或 32 GB 的高带宽内存;

  (2)带宽方面:HBM2e 可实现每堆栈高达 410Gbps 的内存带宽,较 DDR5 组件的带宽提升高达 18 倍,较 GDDR6 组件提升 7 倍。两个 HBM2e 堆栈加起来可提供高达 820Gbps 的峰值内存带宽;

  (3)功耗和时延方面:由于 HBM2e 集成在封装中,因此也不需要使用外部 I/O 引脚,从而节省了电路板空间,并消除了它们会带来的功耗和互连时延。

  片上网络(NoC,Network on Chip)是指在单芯片上集成大量的计算资源以及连接这些资源的片上通信网络,用于在可编程逻辑(PL)、处理器系统(PS)和其它硬核块中的 IP 端点之间共享数据。

  与之对应的概念——片上系统(SoC)则是包含一整套多样化和互连单元的单芯片,旨在解决一定范围的任务。传统上,SoC 包括几个计算内核、内存控制器、I/O 子系统以及它们之间的连接与切换方式(总线、交叉开关、NoC 元件)。

  片上网络 NoC 包括计算和通信两个子系统。计算子系统(由 PE,Processing Element 构成的子系统)完成广义的“计算”任务,PE 既可以是现有意义上的CPU、SoC,也可以是各种专用功能的 IP 核或存储器阵列、可重构硬件等。通信子系统(由 Switch 组成的子系统)负责连接 PE,实现计算资源之间的高速通信。通信节点及其间的互连线所构成的网络即为片上通信网络。

  类比城市高速公路网络,NoC 架构简化互连路径,提高 FPGA 传输速率。Achronix 基于台积电(TSMC)的 7nm FinFET 工艺的 Speedster7t FPGA 器件包含了 2D NoC 架构,为 FPGA 外部高速接口和内部可编程逻辑的数据传输提供了超高带宽(~27Tbps)。NoC 使用一系列高速的行和列网络通路(水平和垂直方式)在整个 FPGA 内部分发数据,每一行或每一列都有两个 256 位的、单向的、行业标准的 AXI 通道,可以在每个方向上以 512Gbps(256bit x 2GHz)的传输速率运行。

  NoC 为 FPGA 设计提供了几项重要优势,包括:(1)提高设计的性能;(2)减少逻辑资源闲置,在高资源占用设计中降低布局布线拥塞的风险;(3)减小功耗;(4)简化逻辑设计,由 NoC 去替代传统的逻辑去做高速接口和总线管理;(5)实现真正的模块化设计。

  Intel(Altera)利用 NoC 架构实现内存和可编程逻辑结构之间的现高带宽数据传输。如下图所示,每个片上 HBM2e 堆栈通过 UIB 与其 NoC 通信。片外内存(DDR4、DDR5 等)则通过 IO96 子系统与 NoC 通信。NoC 通过一个由交换机(路由器)、互连链路(导线)、发起程序(I)和目标(T)组成的网络,将数据从数据源传输到目的地。每个 NoC 都提供一个横向网络,通过 AXI4 发起程序将可编程逻辑结构中的逻辑连接到集成 NoC 的目标内存。此外,每个 NoC 也都提供一个纵向网络,通过优化的路由将横向网络路径读取的内存数据分发到 FPGA的可编程逻辑结构深处(可编程逻辑结构和/或 M20K 模块)。

  AMD(Xilinx)在 AI 引擎和可编程逻辑之间部署 NoC 架构,可大幅降低功耗。AMD Versal 产品最突出的优势之一,是能够在自适应引擎中将 AI 引擎阵列与可编程逻辑(PL)结合使用,由 AI 引擎阵列接口连接 AI 引擎阵列和可编程逻辑。这样的资源结合为在最佳资源、AI 引擎、自适应引擎或标量引擎中实现功能提供了极大的灵活性。该方案与传统可编程逻辑 DSP 和 ML 实现方案相比,可将芯片面积计算密度提高达 8 倍,从而在额定值情况下,可将功耗降低 40%。

  浅析FPGA芯片的散热设计

  任何芯片要工作,必须满足一个温度范围,这个温度是指硅片上的温度,通常称之为结温(junction temperature)。

  ALTERA的FPGA分为商用级(commercial)和工业级(induatrial)两种,商用级的芯片可以正常工作的结温范围为0~85摄氏度,而工业级芯片的范围是-40~100摄氏度。在实际电路中,我们必须保证芯片的结温在其可以承受的范围之内。

  随着芯片的功耗越来越大,在工作的时候就会产生越来越多的热量。如果要维持芯片的结温在正常的范围以内,就需要采取一定的方法使得芯片产生的热量迅速发散到环境中去。

  学过中学物理的人都知道,热量传递主要采用三种方法,即传导、对流和辐射,芯片向外散热同样是采用这几种方式。

  下图所示为一个芯片散热的简化模型。图中芯片产生的热量主要传给芯片外封装,如果没有贴散热片,就由芯片封装外壳直接散布到环境中去;如果加了散热片,热量就会由芯片的外封装通过散热片胶传到散热片上,再由散热片传到环境中。一般来说,散热片的表面积都做的相当大,与空气的接触面就大,这样有利于传热。在平时的实践中已经发现,绝大多数散热片都是黑色的,由于黑色物体容易向外辐射热量,这样也有利于热量向外散发。而且散热片表面的风速越快,散热越好。

  简化的芯片热流模型

  除此之外,有一小部分热量经过芯片衬底传导到芯片的焊锡球上,再经由PCB把热量散步到环境中。由于这部分热量所占的比例比较小,所以在下面讨论芯片封装和散热片的热阻时就忽略了这一部分。

  首先需要理解“热阻(thermal resistance)”的概念,热阻是描述物体导热的能力,热阻越小,导热性越好,反之越差,这一点有点类似电阻的概念。

  从芯片的硅片到环境的热阻,假设所有的热量都最终由散热片散布到环境中,这样可以得到一个简单的热阻模型,如下图:

  带散热片的芯片散热模型

  从硅片到环境的总热阻称为JA,因此满足:

  JA=JC+CS+SA

  JC是指芯片到外封装的热阻,一般由芯片供应商提供;CS是指芯片外封装到散热片的热阻,如果散热片采用导热胶附着在芯片表面,这个热阻就是指导热胶的热阻,一般由导热胶供应商提供;SA是指散热片到环境的热阻,一般由散热片厂家给出这个热阻值,这个热阻值是随着风速的提高而降低的,厂家通常会给出不同风速情况下的热阻值。

  芯片的封装本身就是作为一个散热装置。如果芯片没有加散热片,JA就是硅片经过外封装,再到环境中的热阻值,这个值显然要大于有散热片是的JA值。这个值取决于芯片本身封装的特性,一般由芯片厂家提供。

  下图显示为ALTERA的STRATIX IV器件的封装热阻。其中给出了各种风速下的芯片的JA值,这些值可以用来计算无散热器时的情况。另外,其中的JC是用来计算带散热片时的总JA值。

  Stratix iv器件封装的热阻

  假设硅片消耗的功率是P,则:

  TJ(结温)=TA+P*JA

  需要满足TJ不能超过芯片允许的最大的结温,再根据环境温度和芯片实际消耗的功率,可以计算出对JA最大允许的要求。

  JAMax=(TJMax - TA)/P TA(环境温度)

  如果芯片封装本身的JA大于这个值,那么必须考虑给芯片加合适的散热装置,以降低芯片到环境的有效JA值,防止芯片过热。

  在实际的系统中,部分热量也会从PCB散出,如果PCB层数多,面积较大,也是非常有利于散热的。

  解读FPGA芯片SOPC发射端电路设计

  本文设计基于FPGA 芯片EP3C16Q240C8N 的片上可编程系统,该系统可用于实现IFFT运算和接口模块,利用可嵌入到此FPGA 芯片的NiosII 软核处理器来实现数据传输和控制。功能电路中的ADI 的数字上变频芯片AD9957 和可控增益芯片AD8369 用于实现DAB 基带信号的上变频和信号放大。这套DAB 发射机电路板尺寸为100cm*160cm,经过测试,能很好的完成发射,具有较高的可靠性。

  DAB 发射机是数字音频广播重要组成部分。DAB 技术是欧洲尤里卡项目之一,目前已经非常成熟.DAB 采用先进的数字技术,正交分频复用技术(OFDM),能以极低的数据传输率及失真下传送CD 质量之立体声节目,可解决传统模拟广播接收不良及干扰问题.DAB 发射系统包括信源编码。信道编码。 时间交织。频率交织.OFDM 调制和射频部分。射频部分包括上变频和增益放大,用来把基带信号搬移到发射频率上并将其放大。

  FPGA 技术不断进步,成本和功耗不断下降的同时性能和容量在大幅上升,FPGA 也代替MCU 越来越多的嵌入到系统中去。为了便于系统集成,本文设计FPGA 系统嵌入到DAB 发射系统中,使得开发变得方便灵活,同时也降低了成本。

  FPGA 的SOPC 系统构成

  该系统硬件框图如图1所示。系统中FPGA采用ALTERA 公司的CycloneIII 系列芯片EP3C16Q240C8N.FPGA 中的NiosII 软核处理器完成数据的控制和指令传送,还可以在FPGA 上实现OFDM 调制。配置芯片选用EPCS16,片外扩展存储器为IS42S16100-7T.框图中,功能电路是用来实现DAB 发射功能的,它包括数字上变频(其中已经包括A/D 和D/A 转换)。信号放大.USB 传输等。

  根据DAB 发射系统设计可以得出系统中各个单元所需的资源:逻辑单元。寄存器。引脚。内存。乘法器单元。锁相环分别为8839.4719.104.202752bits.6和1.这款芯片为QPFP 封装。

  配置电路

  FPGA 芯片按配置速度快慢依次为:

  Active parallel(AP)模式.Fast passiveparallel(FPP)模式.Active serial(AS)模式.Passive serial(PS)模式。另外还有用于调试的Joint Test Action Group(JTAG)模式。本文FPGA 同时配置AS 模式和JTAG 模式。根据cycloneIII 的数据手册,配置方案由MSEL 引脚决定。当使用AS 和JTAG 两种方式时,MSEL[3:0]为“010”。如图2所示为ATERA 给出的AS 和JTAG 配置电路。AS

  AS 模式是指FPGA 的EPCS 控制器发出读取数据的信号,从而把串行FLASH(EPCS系列芯片)的数据读入FPGA 中,实现对FPGA 的编程。配置数据通过FPGA 的DATA0引脚送入,数据被同步在DCLK 输入上,1个时钟周期传送1位数据。 本文中选取的配置芯片EPCS16SI8,有16Mbits 的存储空间,可以支持DCLK 时钟工作在20MHz 和40MHz.JTAG 接口是一个业界标准接口,主要用于芯片测试等功能.ALTERA 的FPGA 基本上都可以支持JTAG 命令来配置FPGA 的方式,而且JTAG 配置方式比其他任何方式优先级高.JTAG 模式是将配置数据存储在SRAM,掉电后需重新下载。它与FPGA 的接口有4个必需的信号TDI,TDO,TMS 和TCK 以及1个可选信号TRST 构成。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: FPGA芯片

相关资讯