EDA是Electronic Design Automation的缩写,几十年来成为芯片设计模块、工具、流程的代称。从仿真、综合到版图,从前端到后端,从模拟到数字再到混合设计,以及工艺制造等,EDA工具涵盖了芯片设计、布线、验证和仿真等所有方面。
芯片的制造十分受制于EDA工具和设计流程,EDA的发展速度近十多年来越来越跟不上芯片设计规模和需求的快速增长。如何基于新的技术和平台,参考其它软件行业的发展过程,推动EDA工具和设计流程进入新的时代是当今芯片制造中一个容易被忽视的关键环节。
在2021世界半导体大会暨南京国际半导体博览会的第二天,国产EDA智能软件和系统创企芯华章针对芯片解决设计难、人才少、设计周期长、设计成本高企的问题,发布了《EDA 2.0白皮书》。芯华章科技董事长兼CEO王礼宾相信,智能化的EDA 2.0时代,会使设计芯片像开发程序那样简单,制造芯片像搭积木那样灵活。
本期的智能内参,我们推荐芯华章的报告《EDA2.0白皮书》, 从EDA1.0的发展历程、现阶段问题与挑战分析,给出芯片EDA2.0未来发展的三大路径。
本期内参来源:芯华章
原标题:
《EDA2.0白皮书》
作者: 未注明
一、EDA历史与挑战
1、EDA发展史
芯片设计工具了计算机辅助设计 (Computer-Aided Design, CAD)、计算机辅助工(Computer-Aided Engineering, CAE)和EDA (Electronic Design Automation)三个阶段。
早期集成电路设计是纯手动描绘版图,第一个突破是1970年代CAD/CAE的诞生,也就是我们说的计算机辅助设计。基于计算机的电子设计工具出现,相对于手工设计方法而言是一个更大的改进,但工程师们仍然花费了不必要的时间在连接芯片时使用大量节点。之后晶体管集群被抽象为门级电路,提升了设计的抽象层次,但是设计仍然要在电压和电容级别去分析。
第二个突破发生于1990年代,EDA技术的诞生让工程师可以用硬件描述语言描述设计,可以通过仿真在流片前提前验证,并且在提高设计效率的同时,大大减少芯片制造环节的风险。之后基于IP模块的设计也逐渐成为EDA产业的一部分,IP厂商通过提供成熟的IP复用,与EDA工具一起支持客户的复杂芯片设计。这个过程中硬件芯片设计的抽象层级不断提高。
▲芯片描述抽象层级的提高
进入21世纪,微电子技术取得了突飞猛进的发展,以HDL语言描述、系统级仿真和综合技术为特点、以自动化设计为目标的EDA工具逐渐出现,并发展为今天这样面向专用集成电路(ASIC)的设计流程。
目前我们正在使用的EDA设计制造流程都是基于2000年左右开始形成的基础,可以称之为“EDA1.0” 。之后20多年EDA的发展,都是在1.0上逐渐增加各种内容,比如基于FPGA的验证、低功耗设计、工艺改进带来的各种可靠性验证、远程服务器运行EDA工具、基于IP组件的设计复用,等等。
这些叠加式的改进基于EDA1.0,不断提升EDA设计的效率,但是从抽象层级、设计方法学角度看,没有出现很大的改变,可以认为一直到今天我们都还处于“EDA1.x”的发展过程中。
▲数字集成电路设计流程
2、新时代EDA新要求
EDA 1.x的发展在过去30年间,一直都支撑着芯片设计从几千颗晶体管到现在百亿级晶体管的集成度, 但近年来随着制造工艺、面积功耗、接口引脚数量等限制条件逐渐逼向极限,通用处理器的综合性能提高越来越缓慢,而AI、云服务器、智能汽车、5G、工业智能控制等不同应用领域对半导体芯片的性能要求越来越高,功耗、成本的要求越来越分化,芯片设计、验证的成本也随之急速上升,设计制造周期也难以压缩。
▲芯片设计规模与设计成本的快速上升
以谷歌公司为例,作为一家软件、算法、系统和云平台厂商,我们看到它近年来在TPU、编解码等自主设计的芯片,甚至AI对EDA设计的辅助上都有很大投入。下一步谷歌还会将自己这些创新集成到自研处理器芯片,形成“谷歌硬件平台”。类似的,Nvidia公司在2019年收购的Mellanox,其长远目标也 是将Mellanox公司所创新的SmartNIC功能模块集成进自己的新一代SoC处理器。同样,亚马逊、微软、华为、阿里巴巴等云厂商,也都已经或布局了自己的SoC芯片产品和研发团队。
未来的系统产品创新和竞争都会紧密围绕定制芯片展开,在一颗芯片或封装内的完整系统才有最优化的性能和功耗,再加上与软件系统的紧密配合,会给系统产品厂商带来最大的竞争优势,这里另一个典型的例子就是芯片、硬件系统、操作系统直到应用系统全面开花的苹果公司。
但是,定制化芯片的门槛一直不低,因为过去几十年里定制芯片的成本高和使用量小,其次是定制芯片的性能收益比不上通用芯片从工艺和架构改进中可获取的性能提升。但是这几个因素都在发生变化:
首先随着工艺发展和芯片面积功耗的限制,通用处理器无论是单核还是多核,性能进步在逐渐放慢,过去40年主宰芯片行业发展的摩尔定律逐渐失效。这使得业界对定制芯片的性能和成本要求逐渐放宽,好比更贵的石油会推动新能源的发展是同样的道理。
其次,芯片制造工艺的改进和规模化,已经给大部分应用带来了足够的性能,大多数情况下定制芯片的目的已经不是更高的性能,而是追求在功耗、功能、数据接口、安全性、集成度等方面的差异化,而且终端产品公司的创新是基于软硬件协同的系统级优化,这种系统级创新带来的优化要远大于继续深度优化芯片设计本身的潜力,所以创新型芯片的关键在于低成本的快速设计和快速部署到产品应用内。
最后,传统的一类“可定制芯片”即FPGA,能否承担应用厂商的创新需求?在小规模小范围内有可能,但是如前面提到的定制需求主要面向功耗、集成度、接口、软件定义硬件等情况下,FPGA所擅长的“数据处理的硬件逻辑定制”则不能承担全部的要求,因此eFPGA这类IP的出现,FPGA发展成为定制SOC芯片的一个子模块。
因此,后摩尔定律时代,创新的定制化SOC芯片代表了整个芯片行业的未来模式:从应用系统厂商的需求诞生出创新的功能芯片,然后功能芯片被定制SoC处理器吸收进去,甚至新创新功能被直接集成进SoC处理器,这个过程将会一再重复而且周期越来越快。
与过去已经习惯看到嵌入式系统领域有大量的定制SoC—样,桌面电脑、云计算和服务器领域同样会诞生更多的定制化芯片。而且与过去芯片厂商主导着通用芯片发展的步伐不一样的是,定制芯片的发展将主要由应用系统厂商直接主导。
综所以,定制芯片要求芯片设计周期和设计成本在目前的基础上大幅优化,对从设计验证到制造的半导体产业筮提出了更高的要求,作为产业链最上游的EDA厂商也更加任重而道远。因此,现有EDA 1.x面临越来越多的挑战。
3、EDA1.X面临的挑战
总体来说,1.x时代,EDA主要面临六大挑战:
1)应用需求分化。芯片应用场景更加细分,关注的是不同领域的应用挑战。从细分的应用需求到基于EDA1.X流程的定制芯片设计成功,是一个长周期且难以充分验证的流程,不能满足系统厂商所习惯的快速创新和迭代的要求。
2)验证工作复杂。复杂的系统芯片设计验证工作越来越困难,验证的工作量往往需要独立团队耗费数个月才能完成,据业界统计,芯片制造过程中70%的时间成本都会消耗在验证上。验证的覆盖率部分依赖于工程师的经验,即使经过反复验证迭代,也有一定的风险。
3)IP复用价值没有完全发挥。即使是基于商用IP组件,SoC设计过程中的子系统设计验证、系统集成 软硬件验证、性能和功耗验证、以及后端实现和确认,这些工作量仍然很大,IP的选择和配置对SoC设计的影响无法在前期确认,IP模块支持 快速SoC设计的复用价值被削弱。
4)人才不足。EDA是一个跨学科的复合型领域,因此人才的培养需要更多的时间和资源。而且EDA流程和工具的学习曲线陡峭,进一步提高了工程师的成本。因此,目前EDA人才的需求难以快速满足。
5)开放性不足。语言、接口和数据的标准化或者开放还不够,很多环节缺少开放的功能和数据接口,不同工具之间往往无法直接互连,中间数据也经常是工具私有的,这些问题导致EDA工具碎片化严重,影响了EDA流程自动化和智能化的发展。
6)历史包袱影响。EDA 1.x的工具是在二十多年的时间里渐进式发展起来的,这决定了 它还背负了过程中的兼容性要求、历史代码、遗留架构等很多历史包袱,因此迭代发展的速度很难跟上现在几十倍增长的大型设计,同时原有软件架构难以充分利用好目前发展迅速的互联网云平台、异构化的硬件设备。
目前的EDA渐进式叠加发展的同时也背负了很多历史包袱,它成功支持了集成电路产业发展到今天,但是在应用需求逐渐细化、工艺迭代红利也越来越小的今天,EDA1.X方法学和流程对设计效益的提升已经很难跟上芯片设计发展对效率的需求,未来10年将是社会对EDA和集成电路产业提出更快发展要求的10年。
EDA工具和方法学需要更全面的快速发展,才能进一步提升设计和验证效率,降低技术门槛的和缩短项目周期。
二、三大关键路径,EDA即将进入2.0时代
报告将EDA2.0定义为:“于开放的工具和行业生态,实现自动化和智能化的芯片设计及验证流程,并提供专业的软硬件平台和灵活的服务,以支持任何有新型芯片应用需求的客户快速设计、制造和部署自己的芯片产品”。EDA2.0是后摩尔定律时代芯片设计发展的未来方向,实现EDA2.0也不是一个0和1的状态变化,而是基于目前的EDA1.X不断采用创新改进满足快速发展的芯片行业需求,是EDA行业长期发展的目标。
EDA2.0的未来包括芯片设计全行业、全流程、全工具的多方面改进,需要全行业的共同努力。本文的目标是尝试抛砖引玉,总结能帮助实现EDA2.0的一些关键路径,具体可以包括三个方面:
1、开放标准化
在Accellera、IEEE、RISC-V等全球标准化组织、EDA或IP厂商、学术界、以及开源社区等推动下, EDA领域已经有了很多统一标准、开源项目、开放接口定义。但是整体来看,很多标准没有得到工具厂商的统一支持,各工具的私有接口和数据经常无法互通等问题,导致EDA1.X的流程比较封闭和碎片化,结果就是设计自动化和定制化很困难,第三方工具和算法模型也很难扩展。
EDA2.0的芯片设计流程,需要在EDA1.x基础上,进一步增强各环节的开放程度:
工具软件接口 (API)更开放:EDA2.0工具,需要开放更多的软件API接口。比如提供内部计算的钩子函数调用 (hook) API接口,可以让客户定制自己的插件功能,增加前处理或中间处 理步骤;还可以提供软件功能调用的API接口,不同的工具通过API调用可以形成运行时(runtime)的自动化,用户能够自己去集成多个来源的工具。
数据格式开放或数据访问接口开放:通过开放和标准的数据格式或数据访问接口连通EDA2.0流程和生态。用户或第三方的定制化工具、智能算法模型可以绕过EDA工具直接访问数据,为用户或自动化流程去优化EDAT具的原有功能。数据的开放和联通也意味着来源不同的EDAT具有可能在一个 项目内定制为最符合设计团队项目需求的最佳流程。
EDA软件针对更多硬件平台的开放:随着通用计算平台的发展,在X86处理器之外逐渐出现了ARM、RISC-V、GPGPU、NPU等异构硬件,EDA软件也需要调整自己的软件架构,在不同的场景和算法中使用更合适的硬件平台,这样的开放可以给用户带来优化的效率和成本。
芯片内外部的总线和接口标准化:芯片产业界已经形成的各种接口和IP互联互通标准,会在EDA2.0中进一步扩展,并有针对性的提高对标准接口和总线的高层次设计和高层次验证方法学支持。
商业EDA与开源EDA的结合:IP领域里已经涌现出很多高质量的开源项目,比如opencore项目和一些 RISC-V处理器的开源实现;同时开源EDAI具也在稳步发展,特别是在高校和学术界得到了很多实际项目应用,也支持了EDAA才的培养。同时更开放的商业EDA工具也可以结合开源项目,并分享一定的成果回到开源项目中去,发展出开源与商业相结合的生态。
未来EDA产业的开放和标准化不仅仅由EDA厂商或标准化组织决定,而应该由产业链上游的EDA生态和下游的业界共同定义:从系统厂商、芯片厂商到EDA厂商的全产业生态来共同制定开放的标准。基于这些开放接口和株淮,EDAT商、用户、第三方都可以以需求为导向进行定制,方便流程自动化和AI智能处理的集成。
2、智能化EDA设计
在开放和标准化的前提下,EDA2.0的目标是要从现有的EDA1.0过程中大幅减少芯片架构探索、设计、验证、布局布线等工作中的人力占比,将过去的设计经验和数据吸收到EDA工具中,形成智能化的EDA设计。智能是指广义上的一切减少人力投入的改进,包括高度并行化的EDA计算和求解空间探索、设计自动化、数据模型化、以及近年来热门的机器学习等都是智能化的方向。
这些已经成为EDA先进发展方向的研究热点,例如美国国防高级研究计划局(DARPA) 已经提出了IDEA (Intelligent Design of ElectronicAssets) 计划,其第一步的目标就是能够自动从HDL设计生成GDSII物理版图这个流程,最终目标是实现“24小时全自动设计迭代”。EDA2.0智能化的部分方向如下:
智能化的设计需求分析:基于统一的IR (中间表达层)表示和编译优化技术,以及近年来飞速发展的AI算法, 可以辅助EDA2.0工具去支持系统应用厂商更自然地描述”需要在什么约束条件下做什么样的芯片”,并智能转换为硬件芯片规格的描述和对IP模块的部分参数配置,减少系统工程师和芯片工程师之间互相淘通理解的工作最。
智能化的芯片架构探索:未来的芯片越来越向高度集成化的SoC发展,芯片设计需要花大量人工时间做架构探索。EDA2.0要引入智能化架构探索,基于对用户需求的理解、应用场景的约束、积累的设计及参数数据、模型化的IP库、后端工艺数据等输入,去辅助用户分析得到最优化的架构设计。
这种智能架构探索,既来自于人的设计经验积累到算法模型和工具中,也来自于高性能验证的高并发算力输出,从而部分代替人力在每个项目里的重复性分析。
智能化的设计生成:随着各种IO接口和IP功能的标准化、高层次硬件描述语言(HDL) 的发展,以及高层次综合工具(HLS) 的优化,复杂芯片设计中真正需要从头开始用Verilog等低层次硬件描述语言实现的部分会越来越少,而IP集成和验证的投入比例会越来越大。
EDA2.0的设计过程,要求模块化的IP及其模型有更统一和开放的规范和接口,比如IP-XACT或Chisel/SpinalHDL等更高抽象层级的描述。基于这样的接口和高层次描述,可以利用智能设计工具,根据芯片需求约束、智能架构探索的结果、IP的参数、接口、时钟、功耗、物理工艺数据等,辅助SoC的 集成,自动生成设计。这个智能设计的过程还可以用其它项目数据生成的机器学习模型来进一步减少人工参与的工作量。
智能化的物理设计:后端物理设计要基于各种约束条件去实现物理布局,这固然就是一个需要反复尝试和探索的过程。利用越来越强大的高性能服务器和云端弹性算力,EDA2.0的后端设计工具可以快速地并行生成多种不同布局实现,进行功耗、面积、走线等设计权衡,选择较好的结果。
另一方面,基于强化学习之类的机器学习算法,可以缩小巨大的探索空间,节省智能物理设计所需要的算力和时间,最终目标是依靠人工智能和自动化流程实现布局布线和后端验证。
芯片验证的过程是提出约束条件,利用动态仿真和静态分析的方法,达到功能、覆盖率、等价性、功耗、工艺要求等验证目的,这也是芯片设计流程中最耗时间和需要人力经验的部分。智能化的EDA2.0的架构探索、芯片设计、后端实现,都离不开更加完善的智能验证方法学和智能验证平台。一个可以灵活配置并且高度智能化的功能、性能、功耗验证流程,可以给各环节的智能设计工具快速反馈,实现EDA2.0智能设计的反复迭代。
3、平台化和服务化
EDA工具上云的尝试过去二十年不断有厂商在推动,但是到今天为止实际应用范围还不够广泛,同时芯片设计本身也没有从EDA上云得到大幅的效率提升。这个现象背后有客户对数据安全的顾虑、EDA软件原有的架构难以最好地应用云端基础软件框架、EDA仿真和验证算法的限制、EDA厂商和云服务商没有针对芯片设计实际需求等多方面的原因。
随着更加开放和智能的EDA2.0的到来,EDA的行业生态也必然从“工具和IP集合包”进化到EDA2.0整体平台。不同规模和不同阶段的芯片设计有多样化的需求,而互联网云平台提供了近乎无限的计算弹性、存储弹性和访问便捷性,因此EDA2.0应该与云平台和云上多样化的硬件结合,充分利用成熟的云端软硬件生态。
用弹性算力取代部分人力投入。云平台带来的弹性资源可以支持EDA2.0的智能计算和自动化,用无限制的算力去优化EDA计算瓶颈,使芯片设计流程更加智能,并加速芯片设计流程。同时弹性的云端算力也能优化用户的设计成本。
商业和使用模式的优化。基于云平台的EDA2.0,其付费模式、使用模式、使用地点、使用设备都会更加灵活,让EDA厂商和芯片设计团队都不再把精力放在“用哪些软硬件资源来设计芯片”上,而更加关注“如何快速高质量地设计芯片” 。
采用适合云平台的软件架构。基于今天的技术起点,我们可以对EDA软硬件框架和算法做创新、融合和重构,抛弃过去的一些包袱,采用更新的技术架构。过去的单机或本地多机同步的软件结构要逐渐被改造为面向云平台结构的云原生软件架构,深度利用云端弹性性能,并且给用户提供更优化的使用模式。
智能化的EDA流程当然也很难完全自动实现芯片设计和验证过程,因此要支持应用厂商快速得到需要的芯片,EDA2.0还应该是产品和服务的结合,实现EDA服务平台 EDaaS(Electronic Design as a Service)。
EDA服务平台可以提供专业的咨询或设计服务。通过专业服务团队和EDA工具及模块的结合,能极大减少用户团队设计芯片的负担,支持客户快速设计和部署自己的芯片产品。此外多样化的定制芯片,在芯片和系统安全、工业或汽车级设计、特殊IP的电磁保护等垂直设计领域也会有多样化的需求,只有极少数客户才具备所有这些垂直设计能力,因此更需要EDaaS平台的专业服务。
基于云平台和开放数据的定制服务。EDA2.0以接口和数据开放为重要基础,同时利用互联网云这个灵活的平台,因此可以提供定制化工具接口、数据服务接口、定制AI模型、低代码定制模块,这些都可以是EDaaS服务的一部分。这些定制服务不一定仅仅来自于EDA厂商自身,第三方厂商、开源社区或用户自己都很容易利用定制服务接口扩展现有的EDA功能,让EDaaS成为一个开放和有无限发展空间的平台。
智东西认为,EDA是芯片之母,是芯片设计最上游,最高端的产业,在之前的内参中,我们也对EDA产业做过较为详尽的报道。但是,对于未来EDA产业的走向的详细预测,这篇芯华章的报告还是业内头一次。在“缺芯”的大浪潮下,各行各业都在强调拥有自主可控的芯片,所以未来EDA行业的新要求也就顺理成章,简单点说,就是如何降低使用和设计门槛,大幅缩短芯片设计周期。