制约FPGA发展的关键技术-EDA
被誉为“万能芯片”的FPGA,近年来越来越多的受到国内市场的关注。不过,其技术门槛之高,在芯片领域几乎是无出其右的。其中,在制约FPGA发展的众多因素中,最关键的便是EDA软件工具。
缺一不可!发展FPGA需软硬件两手抓
FPGA全称为Field Programmable Array,是通过可编程互连连接的可配置逻辑块(CLB) 矩阵构成的可编程半导体器件。FPGA需要配套软件将用户设计烧录到芯片上才能实现相应功能。
目前,在芯片市场主要有CPU、GPU、FPGA与ASIC四大类型。与其它主流芯片相比,FPGA的的灵活性要高于专用芯片ASIC,性能和实时处理能力优于CPU,无需NRE成本,上市时间也更快。不过,其功耗、成本、尺寸都大于专用芯片ASIC,应用开发门槛偏高,并不适合海量应用。
知名半导体专家(《芯事》作者)谢志峰博士认为:“发展FPGA必须在硬件和软件两方面共同发展,如果国内芯片制程工艺达不到要求,FPGA产业很难达到最先进的水平。”
FPGA需要芯片、EDA工具及IP完整生态
(图片来源:紫光同创)
FPGA是需要“芯片+EDA+IP”来实现功能的产品,如果把FPGA比作电脑,那么芯片相当于Intel CPU,EDA软件相当于微软OS,IP方案则相当于应用软件。电脑正常工作需要Intel CPU、微软OS、应用软件共同配合,FPGA也需要芯片、EDA、IP这些软硬件共同支撑实现功能。
不过,此处的EDA并不是指广义的通用EDA。广义的EDA 是芯片设计中必需和最重要的集成电路软件设计工具。广义EDA市场份额占据前三的Synopsys、Cadence(铿腾电子)和被西门子收购的Mentor,是ASIC设计领域主要的软件供应商,其它公司的软件相对来说在IC设计时使用者较少。
此文所指的EDA是FPGA专用的软件开发工具。不论用户选择使用的是哪个厂家的FPGA,在用户端实现功能时,都需要通过该厂家自主研发的EDA,也就是FPGA软件工具的一系列流程来操作完成,比如Xilinx的Vivado、Intel的QuartusII、国内紫光同创的PDS,都属于各家的FPGA软件工具。
从设计流程上来讲,FPGA与其他芯片的前端设计流程是相同的,设计FPGA芯片本身也需要用到广义的通用EDA,但当芯片设计基本完成后,如ASIC专用芯片不需要编程,直接可焊到板子上运行,FPGA则需要通过软件工具中的流程将用户写好的程序编译到FPGA中。
通俗来讲,如果将硬件比作纸,用户把需要实现的功能下载到芯片上类似于把画画到纸上,那么软件工具就是作画的那支画笔。一幅画作的完成必须兼具纸张与画笔。也就是说,对于FPGA而言,软硬件必须是“两条腿走路”,互相支撑配合,缺一不可。
举足轻重!软件工具决定了FPGA发展水平
虽然FPGA前后端设计与数字芯片具有很多相通性,但FPGA设计流程中往往是软件工具先行,尤其在高端大规模领域。就FPGA本身而言,制约其发展的因素有成本、功耗及软件开发工具等。其中软件工具的作用举足轻重。
紫光同创市场总监吕喆认为:“软硬件协同发展的FPGA,软件工具的水平基本上与硬件的水平是对应的。从某种程度上甚至可以说,软件工具处于决定性地位,其软件工具研发水平决定了硬件规模和性能所能达到的高度。”
软件工具的研发不仅极具重要性,对于FPGA的发展更是十分必要的。为了在应用端最大限度地发挥硬件性能,FPGA厂商必须为用户提供自主开发的软件工具。除了考虑与芯片硬件架构的匹配和一致性,软件工具编程设计时还要考虑应用场景多样性、时许模型的复杂性和用户使用体验及效率等。因此,FPGA厂商需要在软件工具方面不断投入。以FPGA巨头Xilinx公司为例,其研发人员约为1500人,软硬件人员基本相同,其中EDA工具人员就超过500人。
各大FPGA厂商的软件工具图示(图片来源:芯师爷自制)
FPGA企业都拥有自主研发的软件工具。如Vivado和ISE是Xilinx公司提供的集成化FPGA开发软件,它的主要功能包括设计输入(DesignEntry)、综合(Synthesis)、仿真(Simulation)、实现(Implementation)和下载(Download)等。
Quartus II是Altera(已被intel收购)推出的一种可编程逻辑的设计工具,其强大的设计能力和直观易用的接口,日益受到数字系统设计者的欢迎。
Lattice的软件工具Diamond包含的编程器,可对同一扫描链上的一个或多个FPGA器件进行直接编程。它支持标准FPGA设计流程功能,其逻辑综合工具专为超低密度以及低密度FPGA提供设计支持。
Pango Design Suite是紫光同创基于多年FPGA开发软件技术攻关与工程实践经验而研发的一款拥有国产自主知识产权的大规模FPGA开发软件,可以支持千万门级FPGA器件的设计开发。
任重道远!自研FPGA软件工具难度高
近二十多年来,除了针对FPGA特点所采用的设计实现方法不断升级外,国内外FPGA软件工具的方法学和总体研发模式其实未曾改变。
用户端在使用FPGA时,需将RTL代码通过逻辑综合工具、映射工具、布局布线工具、配置数据流生成工具、编程下载工具等生成下载到芯片里,结合时序和功耗分析工具以及在线调试工具,完成用户应用在FPGA中的实现的整个过程。
FPGA软件工具设计流程图
(图片来源:紫光同创)
在整个FPGA软件工具设计流程中,除了仿真工具借助第三方工具实现,其他环节基本都需要FPGA厂商自己的软件工具覆盖,特别是以逻辑综合工具和设计实现部分为代表环节,存在着较大研发难度。
在综合软件设计流程中,包含了从硬件描述语言HDL到门级映射和优化的多个环节,几乎每一个小环节都需要研发人员付诸努力不断钻研,从而取得突破。
在用户设计经过综合映射成门级网表之后,还需要经过编译、转换、映射、布局布线、位流生成、编程下载最终在FPGA芯片实现功能。其中,布局、布线两个环节作为核心技术难关尤为难以攻克。
紫光同创软件专家表示,布局是将逻辑映射到目标器件结构资源中,布局主要考虑三个方面的因素:一是使Instances尽量集中分布,减少布线资源的线长;二是控制Instances均匀分布的密度;三是控制所有Instances之间的总延时尽可能小。布局关键技术在于如何在短时间内得到全局最优解。
布线是将已布局好的instances按照连接关系通过布线通道连接起来。布线主要考虑的因素包括拥塞和时序两个方面的因素。
拥塞和时序两个因素对于布线器来说是矛盾的。如果产生拥塞,那么不可避免的使某些路径延时较长;如果要使每条路径延时最小,那么不可避免的要产生拥塞。为了解决拥塞和时序竞争的关系,可以使用相关算法,使得时序关键网络占用拥挤路径资源,而在时序方面并不关键的网络占用一条更长且不拥挤的路径资源。
可以看出来,在一定程度上,FPGA几乎是芯片设计领域中最需要技术突破的产品,FPGA软件工具尤为复杂。
清华大学微电子所所长魏少军教授曾指出:“在EDA工具方面,国内对‘逻辑综合’和‘布局布线’两个核心基本没有贡献,甚至都不去碰它。国内大多数设计企业普遍依赖EDA公司或Foundry给出的设计流程,对于产品性能和竞争力造成影响。”
奋起直追!国产FPGA企业不断突围
从FPGA发展历程来看,从1984年美国Xilinx公司推出了全球第一款FPGA产品XC2064算起,之后十多年间,FPGA软件工具为FPGA的发展起到了至关重要的作用。随着FPGA朝着系统平台化的方向演进,软件工具和生态的重要性显得越来越重要。前不久,赛灵思宣布推出一款名为“Vitis”的统一软件平台,它能够让软硬件开发者们在无需掌握硬件专业知识的情况下,根据软件或算法代码来自动适配并使用Xilinx的硬件架构。这也是国际领先厂商布局FPGA生态的战略方向,即通过软件栈和工具链,结合业界各细分行业的算法框架和应用库,把传统的软件开发者吸纳到FPGA加速应用当中,分享FPGA高性能计算硬件平台的价值,与CPU和GPU共享计算加速市场的红利。
反观国内FPGA产业,我们起步比国外晚了二十多年。在这期间国外FPGA产业已经完成了系列整合并购,市场格局已经基本确定,Xilinx、Intel和Lattice等企业基本上垄断了全球市场。从2010年开始,国内才陆续出现自主知识产权的国产FPGA企业,而紫光同创正是其中的佼佼者。
紫光同创市场总监吕喆介绍,我们总说紫光同创的PGT180H代表当前国产FPGA的最高水平,实际上背后的软件工具才是真正的定海神针,更大的逻辑规模和更高的性能,意味着指数级增长的软件算法复杂度,这是大家可能没有意识到的。
紫光同创通过不断尝试,其具有自主知识产权的大规模FPGA开发软件Pango Design Suite(PDS),已经可以支持数千万门级FPGA器件的设计,并可实现从RTL综合到配置数据流生成下载的全套操作,形成了完全自主知识产权的FPGA开发工具套件。接下来,紫光同创将致力于做更大规模的器件,力图进一步突破。
从产业链角度而言,FPGA的发展涉及到单元架构、IP、EDA软件、制程工艺、封装技术、专业人才等诸多方面,其发展之路并不平坦。加之较高的技术壁垒,对于国内FPGA的发展来说,依靠自主技术和自主产品,尤其软件工具的技术突破,就较为关键了。
写在最后
如今,国内FPGA产业正处于低端向中高端过渡的关键时期,国内企业已经意识到软件工具自主化的重要意义,并逐步加大投入力度。
随着国家、各地政府对集成电路产业尤其FPGA产品的大力扶持,国内半导体产业链的不断成熟完善,以及新兴市场需求的增大,我们期待着有更多的国产FPGA企业能够在软件工具方面长风破浪,不断突破,抓住市场增量,推进国产FPGA的进一步发展!