导语:随着半导体产业的发展以及新兴产业的需要,FPGA的作用逐渐突显。相比于CPU、GPU,FPGA并不为大众所熟知。那什么是FPGA?它有什么特点?又是如何工作的?……,读完这篇,你就知道了!
近日,有媒体报道称,北京微电子技术研究所日前成功研制出国内首个自主可控的宇航用千万门级高性能高可靠FPGA(现场可编程门阵列)芯片。
FPGA一直是国内的短板,市场基本被国外垄断。据统计,2017年国内超过100亿元的FPGA市场中,国产市占率仅为4%。目前,全球FPGA市场基本被四大巨头垄断:Xilinx(赛灵思)、Intel(英特尔,此前收购了Altera)、Lattice(莱迪思)、Microsemi(美高森美)。国内FPGA厂商有高云半导体、京微齐力、上海安路、紫光同创、AGM和上海复旦微等。
来源:紫光同创
随着消费电子和通信等终端设备需求总量的增长,人工智能、大数据、云计算、智能汽车以及物联网边缘计算的发展,对FPGA的需求也将大增。相比于CPU、GPU,FPGA并不广为大众所熟知。接下来我们也为您简单介绍下这一“万能芯片”。
什么是FPGA?
FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
FPGA的特点
1.采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。 2.FPGA可做其它全定制或半定制ASIC电路的中试样片。 3.FPGA内部有丰富的触发器和I/O引脚。 4.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5.FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
FPGA编程技术
目前,市场上有三种基本的FPGA编程技术:SRAM、反熔丝、Flash。其中,SRAM是迄今为止应用范围最广的架构,主要因为它速度快且具有可重编程能力,而反熔丝FPGA只具有一次可编程能力。基于Flash的FPGA是比较新的技术,也能提供可重编程功能。
基于SRAM的FPGA器件经常带来一些其他的成本,包括启动PROMS支持安全和保密应用的备用电池等。基于Flash和反熔丝的FPGA没有这些隐含成本,因此可保证较低的总系统成本。
1.基于SRAM的FPGA
这类产品是基于SRAM结构的可再配置型器件,通电时要将配置数据读入片内SRAM中,配置完成就可进入工作状态。断电后SRAM中的配置数据丢失,FPGA内部逻辑关机也随之消失,这种基于SRAM的FPGA可反复使用。
2.反熔丝FPGA
采用反熔丝编程技术的FPGA内部具有反熔丝阵列开关结构,其逻辑功能的定义由专用编程器根据设计实现所给出的数据文件,对其内部反熔丝真累进行烧录,从而使器件实现相应的逻辑功能。
这种器件的缺点是只能一次性编程,有点是具有高抗干扰性和低功耗,适合于要求高可靠性、高保密性的定型产品。
3.基于Flash的FPGA
在这类FPGA器件中集成了SRAM和非易失性EEPROM两类存储结构。其中SRAM用于在器件正常工作时对系统进行控制,而EEPROM则用来装载SRAM。由于这类FPGA将EEPROM集成在基于SRAM工艺的现场可编辑器件中,因而可以充分发挥EEPROM的非易失性和SRAM的重配置性。
断电后,配置信息保存在片内的EEPROM重,因此不需要片外的配置芯片,有助于降低系统成本、提高设计的安全性。
FPGA芯片结构
FPGA芯片主要由三部分组成,分别是IOE(inputoutputelement,输入输出单元)、LAB(logicarrayblock,逻辑阵列块,对于Xilinx称之为可配置逻辑块CLB)和Interconnect(内部连接线)。
1.IOE
IOE是芯片与外部电路的物理接口,主要完成不同电气特性下输入/输出信号的驱动与匹配要求,比如从基本的LVTTL/LVCMOS接口到PCI/LVDS/RSDS甚至各种各样的差分接口,从5V兼容到3.3V/2.5V/1.8V/1.5V的电平接口,下面是ALTERA公司的CycloneIVEP4CE115F29设备的IOE结构
EP4CE115F29设备的IOE结构图
FPGA的IOE按组分类,每组都能够独立地支持不同的I/O标准,通过软件的灵活配置,可匹配不同的电器标准与IO物理特性,而且可以调整驱动电流的大小,可以改变上/下拉电阻,CycloneIV设备有8个IOblank(组),见下图:
CycloneIV设备的IO组
2.LAB
LAB是FPGA的基本逻辑单元,其实际的数量和特性依据所采用的器件的不同而不同,EP4CE115F29设备的每个LAB的布局包括16个LE、LAB控制信号、LEcarrychains、Registerchains和Localinterconnect,其LAB结构图如下:
LAB结构图
LE是CycloneIV设备最小的逻辑单元,每个LE主要有LUT和寄存器组成的。
LE的结构图
查找表LUT(Look-Up-Table)其本质是一个静态存储器SRAM,目前FPGA多采用4输入的LUT,每个LUT可以看作一个有4位地址线的16x1的RAM。当我们通过原理图或HDL语言描述了一个逻辑电路后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。
这样,在FPGA工作时,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出。
LUT的实现原理图
3.Interconnect
FPGA内部连接线很丰富,根据数据手册的描述,主要有Rowinterconnect、columninterconnect、Directlinkinterconnect、Localinterconnect和Registerchaininterconnect(寄存器之间连接的连接线)。
内部连接线联通FPGA内部的所有单元,而连线的长度和工艺决定着信号再连接线上的驱动能力和传输速度。在实际开发中,设计者不需要直接选择连接线,布局布线器可自动地根据输入逻辑网表(这由综合生成)的拓扑结构和约束条件选择连接线来连通各个逻辑单元,所以,从本质上来说,布线资源的使用方法和设计的结果有密切和直接、直接的关系。
FPGA开发流程
原理图和HDL(Hardware DescriptiIon Language,硬件描述语言)是两种最常用的数字硬件电路描述方法,其中HDL设计法具有更好的可移植性、通用性和模块划分与重用性的特点,在目前的工程设计中被广泛使用,下面对FPGA设计熟悉电路时的开发流程是基于HDL的。
1.系统功能设计
在系统设计之前,首先要进行的是方案论证、系统设计和FPGA芯片选择等准备工作。系统工程师根据任务要求,如系统的指标和复杂度,对工作速度和芯片本身的各种资源、成本等方面进行权衡,选择合理的设计方案和合适的器件类型。一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。
2.RTL级HDL设计
RTL级(RegisterTransferLevel,寄存器传输级)指不关注寄存器和组合逻辑的细节(如使用了多少个逻辑门、逻辑门的连接拓扑结构等),通过描述数据在寄存器之间的流动和如何处理、控制这些数据流动的模型的HDL设计方法。RTL级比门级更抽象,同时也更简单和高效。RTL级的最大特点是可以直接用综合工具将其综合成为门级网表,其中RTL级设计直接决定着系统的功能和效率。
3.RTL级仿真
也称为功能(行为)仿真,或是综合前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。
常用的工具有ModelTech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等软件。虽然功能仿真不是FPGA开发过程中的必需步骤,但却是系统设计中最关键的一步。
为了提高功能仿真的效率,需要建立测试平台testbench,其测试激励一般使用行为级HDL语言描述,其中RTL级模块是可综合的,它是行为级模块的一个子集合。
4.综合
所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计 平面化,供FPGA布局布线软件进行实现。就目前的层次来看,综合优化(Synthesis)是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。
真实具体的门级电路需要利用FPGA制造商的布局布线功能,根据综合后生成的标准门级结构网表来产生。为了能转换成标准的门级结构网表,HDL程序的编写必须符合特定综合器所要求的风格。由于门级结构、RTL级的HDL程序的综合是很成熟的技术,所有的综合器都可以支持到这一级别的综合。常用的综合工具有Synplicity公司的Synplify/SynplifyPro软件以及各个FPGA厂家自己推出的综合开发工具。
5.门级仿真
也称为综合后仿真,综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。
目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持综合后仿真。
6.布局布线
实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,将工程的逻辑和时序与器件的可用资源匹配。布局布线是其中最重要的过程,布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。
布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。也可以简单地将布局布线理解为对FPGA内部查找表和寄存器资源的合理配置,布局可以被理解挑选可实现设计网表的最优的资源组合,而布线就是将这些查找表和寄存器资源以最优方式连接起来。
目前,FPGA的结构非常复杂,特别是在有时序约束条件时,需要利用时序驱动的引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源的使用情况。由于只有FPGA芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。
7.时序仿真
是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真 包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。
由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非常有必要的。
8.FPGA板级调试
通过编程器将布局布线后的配置文件下载至FPGA中,对其硬件进行编程。配置文件一般为.pof或.sof文件格式,下载的方式包括AS(主动)、PS(被动)、JTAG(边界扫描)等方式。
逻辑分析仪(LogicAnalyzer,LA)是FPGA设计的主要调试工具,但需要引出大量的测试管脚,且LA价格昂贵。目前,主流的FPGA芯片生产商都提供了内嵌的在线逻辑分析仪(如XilinxISE中的ChipScope、AlteraQuartusII中的SignalTapII以及SignalProb)来解决上述矛盾,它们只需要占用芯片少量的逻辑资源,具有很高的实用价值。
FPGA为什么这么难?
虽然有“万能芯片”的美誉,但是FPGA在全球范围内市场规模还非常有限,远不及CPU及GPU市场规模。造成这一种现象的原因,最主要是FPGA行业门槛非常高。
根据Gartner数据显示,2015年至2020年全球FPGA市场的年复合增长率为9%,到2020年全球FPGA 市场规模将达84亿美金。在这样的市场环境下,企业想要生存下去困难程度可想而知,特别是起步较晚的国内企业。
如果回看其发展历程,自1984年Xilinx创造出FPGA之后,先后有上百家行业巨头都杀入这一领域,而最终的结果确实绝大部分企业都铩羽而归,例如Intel、Philips、Agere Systems、AMD以及摩托罗拉等国际知名的芯片设计厂商。能够幸存下来的几家企业就显得弥足珍贵了。
而对于国内FPGA企业而言,在初期阶段可能都或多或少借鉴了国外产品。但是想要将产品大规模推向市场,就必须面临技术专利问题。实际上,国外企业已经垄断了绝大部分专利技术。国内厂商想要进入,首先就必须自己自主开发芯片结构,避免专利侵权,这对于国内企业而言无疑是一个巨大挑战。
除了芯片架构之外,在FPGA开发过程中所涉及到的仿真工具之前一直依赖进口,这对于国内企业而言无疑又是另一项非常大的挑战,需要国内厂商在硬件及软件两方面持续不断投入。目前,国内厂商在软件方面,也在重点突破,并且已经取得了一些成绩。
另外,正如前文所言,FPGA是一个门槛非常高的行业。在市场推广过程中,原厂需要对客户进行专业指导,这无形中也增加了其他品牌产品替换的难度。由此也导致了,FPGA产品更新换代频率比较低,市场空间也难于像电脑、智能手机等出现大的飞跃。
国内厂商机会在哪?
2018年对于国内半导体产业而言非常重要,正因为中美贸易战、中兴事件、晋华事件、孟晚舟事件等,使我们充分认识到芯片自主可控的重要性。这无疑为国内FPGA厂商带来了难得的市场机遇,大的通信厂商也开始关注国内FPGA产品。而在军用领域,对于安全性要求更高,国产替代的需求更加迫切。
另一方面,经过多年的发展,国内厂商已经在FPGA芯片设计、仿真、流片及量产等方面积累了丰富的经验。尽管产品还主要集中在低密度产品,但是国内厂商的出货量已经非常可观,并出现了替代国外同类型产品的趋势。
此外,近几年间,人工智能在全球特别是中国市场的大热,无疑为国内FPGA厂商提供了新的赛道。对于人工智能而言,由于算法的飞速发展,芯片开发进度显然无法满足需求。同时人工智能芯片需求的高速并行计算对FPGA芯片的需求也在几十亿美元的数量级,而国内是人工智能高速芯片发展最快,需求最大的市场,这些都有利于国内FPGA产业的发展。
从产业进程来看,2018年国内FPGA产业重新焕发新机,正在“自下而上”逆袭!相信在“异步计算”的大趋势下,国内FPGA厂商还是非常有机会的。
审核编辑 :李倩