制约FPGA发展的关键技术-EDA 及国内主要FPGA厂商

被誉为可编程的“万能芯片”的FPGA,其技术门槛之高,在芯片领域几乎是无出其右的。其中,在制约FPGA发展的众多因素中,最关键的便是EDA软件工具。发展FPGA必须在硬件和软件两方面共同发展,如果国内芯片制程工艺达不到要求,FPGA产业很难达到最先进的水平。

FPGA,是通过可编程互连连接的可配置逻辑块(CLB) 矩阵构成的可编程半导体器件。FPGA需要配套软件将用户设计烧录到芯片上才能实现相应功能。

目前,在芯片市场主要有CPU、GPU、FPGA与ASIC四大类型。与其它主流芯片相比,FPGA的的灵活性要高于专用芯片ASIC,性能和实时处理能力优于CPU,无需NRE成本,上市时间也更快。不过,其功耗、成本、尺寸都大于专用芯片ASIC,应用开发门槛偏高,并不适合海量应用。

                        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)等。

任重道远!自研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企业。从产业链角度而言,FPGA的发展涉及到单元架构、IP、EDA软件、制程工艺、封装技术、专业人才等诸多方面,其发展之路并不平坦。加之较高的技术壁垒,对于国内FPGA的发展来说,依靠自主技术和自主产品,尤其软件工具的技术突破,就较为关键了。

---------------------------------------------------------------------------------------------------

 

 

参考:http://www.360doc.com/content/18/0810/18/36743738_777278828.shtml

猜你喜欢

转载自blog.csdn.net/lxm920714/article/details/103434236
今日推荐