EDA 是 Electronic Design Automation 的缩写,几十年来成为芯片设计模块、工具、流程的代称。从仿真、综合到版图,从前端到后端,从模拟到数字再到混合设计,以及工艺制造等,EDA 工具涵盖了芯片设计、布线、验证和仿真等所有方面。
芯片的制造十分受制于 EDA 工具和设计流程,EDA 的发展速度近十多年来越来越跟不上芯片设计规模和需求的快速增长。如何基于新的技术和平台,参考其它软件行业的发展过程,推动 EDA 工具和设计流程进入新的时代是当今芯片制造中一个容易被忽视的关键环节。
在 2021 世界半导体大会暨南京国际半导体博览会的第二天,国产 EDA 智能软件和系统创企芯华章针对芯片设计难、人才少、设计周期长、设计成本高企的问题,发布了《EDA 2.0 白皮书》。芯华章科技董事长兼 CEO 王礼宾相信,智能化的 EDA 2.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 行业的新要求也就顺理成章,简单点说,就是如何降低使用和设计门槛,大幅缩短芯片设计周期。