中国EDA的出路探讨

       随着中国半导体行业的发展,EDA已经越来越成为行业发展的焦点。在大规模集成电路的设计中,EDA是一个必不可少的工具。整个EDA行业根据针对的设计环节不同,相应也有不同的工具,我们认为中国EDA行业虽然起步较晚,但是在一些环节仍然存在抓住设计范式改变的机会进入世界前沿的机会;而在其他环节中,则需要踏踏实实一步一步追赶,从而争取在未来几年内慢慢缩短和世界一流水准的差距,并实现独立自主。

集成电路EDA环节简述

       在一个典型的集成电路设计流程中,通常会包括以下环节:

       1、前端设计和验证: 前端设计是指电路工程师把电路设计实体化的过程,例如对于数字电路设计来说通常就是使用Verilog等RTL语言来描述设计,而对于模拟电路来说就是电路图设计。而前端验证则是指通过逻辑或者电路仿真来验证设计是否符合预期。前端设计和验证往往是最花费集成电路设计工程师时间和精力的环节,其中的EDA工具将会很大程度决定整个前端设计验证的效率。目前在前端验证环节常用的工具包括Synopsys的VCS,Verdi,Cadence的Jasper,Virtuoso等。

       2、综合和后端验证: 在前端设计完成之后,需要把设计进一步转化(综合)成版图(GDS)。对于数字电路来说,需要把使用RTL语言描述的逻辑设计综合成为相应的标准单元库网表,并进一步把该网表去做布局布线形成GDS。这两步非常关键,也往往是数字集成电路EDA的核心竞争力。而对于模拟电路来说,由于设计规模较小而且自由度较高,通常是由工程师手动完成电路图转化到版图的过程。在得到版图之后,后端验证则是无论数字还是模拟设计都需要的,包括DRC,LVS,形式验证,可靠性验证等。在综合和后端验证领域,目前主流的工具包括Synopsys的Design Compiler,IC Compiler,Cadence的Innovus,Mentor Graphics的Calibre等。

       以上是目前集成电路EDA环节和主流工具的现状。同时,随着半导体行业的不断革新,我们看到了一些EDA流程上改变的可能,而这也有可能成为中国EDA行业的机会。

前端设计革新:中国EDA的机会

       回顾过去五年的全球集成电路的发展并展望未来,我们总结出了几条显著的发展动向:

       1、设计异构化: 随着人工智能等对于计算效率和能效比有高要求的应用成为半导体行业的主流推动引擎,异构化的设计也在成为主流。与往常的“设计一个高性能通用平台并使用在各种应用中”不同,由于不同的应用无论对于算力、能效比、算法等都有显著的不同,因此难以使用同一平台去适应,而必须针对不同的应用去设计相应的电路。

       2、芯片与算法系统融合: 在人工智能等应用中,通常是将电路与上层系统(包括算法)做协同设计和优化。

       3、敏捷化设计: 在过去几年中,集成电路的公司不再是集中在几家老面孔,而是由越来越多的公司跨界进入芯片领域,其中包括很多互联网公司,如谷歌、亚马逊、阿里巴巴、百度等。这些跨界的公司往往会希望建立一个较小的芯片部门,但同时又希望能在较短的时间内完成设计。

       以上几点相融合,其对于EDA的要求也就呼之欲出:即需要EDA能对不同的应用,实现算法和芯片设计之间的打通,并且能加速设计速度。

       然而,传统基于(System)Verilog等RTL语言的前端设计并不能满足这些需求。其主要的问题在于RTL语言诞生之初着眼于逻辑电路设计,并没有考虑到系统算法级设计,因此难以与算法打通;而在另一方面,RTL语言的密度也较低,描述一个简单的设计也往往要用几百行代码(与之相对应的是,一个具有数亿参数量的复杂神经网络模型在Python中常常也仅仅需要一百行左右的代码来描述),这也增加了前端设计的时间。

       目前,已经有不少相关的项目旨在解决这些问题,其中不少还得到了业界的使用——有趣的是,这些项目背后的团队往往并不是来自于传统EDA公司,而大部分是来自于大学等科研机构和开源社区。例如,以Chisel, Magma为代表的新一代HDL语言依托Scala,Python等高级语言,从而能大大降低描述逻辑电路所需要的代码量;另外,这些高级语言的灵活性较强,因此在修改设计需要修改时,往往在原本的设计上只需要做较小的改动即可,这也大大降低了设计迭代周期。目前,Chisel已经得到了谷歌等公司芯片部门大规模使用并帮助谷歌在较短的周期内完成设计交付,可以说已经获得了业界的验证。

       Chisel,Magma等HDL语言着眼于通用性,往往能覆盖所有几乎Verilog的使用场景,其主要诉求是增加代码密度以降低设计周期。除此之外,另外一个值得关注的是着眼于打通算法系统设计和电路的专用化语言(Domain-specific language,DSL)。这些DSL往往着重于覆盖某些特定的设计类型,并不追求通用性;而在其覆盖的类型中,DSL可以实现高效的设计描述,这样一方面可以大大降低代码量,另一方面则可以实现算法和电路的打通,因为算法描述可以通过DSL高效地映射到电路中,并且通过调整不同的设计参数去优化设计。这方面的例子如源于斯坦福大学的Spatial Language,该语言主要针对AI芯片等场景中常见的空间计算阵列,能大大加快设计速度。

       我们认为,前端设计领域的EDA工具正在产生深刻的变化,至少在一些新兴领域(如AI芯片设计)中所需要的EDA工具和流程与现有的方案有很大的不同。在这个领域,中国和外国的同行事实上处于同一起跑线,因此中国的EDA行业有可能通过抓住这个机会来实现技术山的赶超。在这方面,希望中国半导体行业,尤其是EDA行业,能保持开放心态,积极支持各类相关的学术研究和开源项目,因为在这个领域很多项目从大学研究/开源项目到被大公司真正采用往往并不远(例如Chisel被谷歌和RISC-V业界广泛使用),同时在一些项目得到行业认可后,中国的EDA公司应该积极考虑如何更好地支持这些新语言(例如,如何在仿真验证debug环节更好地支持以这些新语言描述的设计)。另一方面,中国的半导体生态中从事AI芯片等相关适合使用DSL语言的芯片初创公司很多,这些新的初创公司生态也将很好地支持相关的下一代前端EDA工具在中国落地。

综合和后端:踏踏实实力争上游

       与前端EDA存在抓住设计变革而实现赶超不同,在综合和后端领域,目前还看不到有取巧的办法来实现世界先进水平。事实上,在综合和后端领域,大多数算法都是已知的,但是如何做到最优确实难度最大的地方。目前领先的公司(如Synopsys,Cadence等)都是在经过了数十年积累,其技术是在大量的项目中积累大量的工业实践经验堆起来的(而不是靠某个黑科技一蹴而就)。从技术上来说,对于中国EDA公司来说,想要实现赶超也是需要踏踏实实的技术积累。中国的EDA行业在后端的现状是深度和广度都不够:深度是指在一些核心应用(例如逻辑综合,布局布线)中的结果相比主流工具在PPA等指标中是否接近,是否能兼容最新工艺中器件新特性对于工具的新要求等;而广度则是指是否能覆盖后端和验证中的各个环节,包括逻辑/版图综合、形式化验证、时序验证、物理验证、寄生参数提取等等。

       实现技术积累的路径通常是通过大量实践。中国的半导体行业对于EDA的需求非常旺盛,但是对于中国EDA公司来说,最难的是如何实现冷启动,即如何让客户开始使用自己的工具(包括芯片设计公司开始使用国产EDA工具做设计,同时代工厂为这些国产EDA工具提供支持),从而开始积累案例经验。在这一点上,政府有机会能通过适当引导来解决这一问题:除了以资本方式支持之外,还可以构建中国代工厂-EDA-芯片设计公司的联盟,以及鼓励优先使用和支持中国EDA工具,以此来改进中国EDA公司积累技术的速度,从而能完成自主化。

       我们认为,如果国内各界对于EDA行业的支持不减的前提下,中国的后端EDA领域有望在未来五年内实现较为快速的技术积累。在深度和广度的取舍上,一个可取的策略是首先实现在一些成熟工艺上的广度覆盖,这样至少可以保证大量无需使用最先进公司的产品可以实现自主化;与此同时,在深度方向在某些细分领域(例如thermal sign-off)中做到接近世界领先水平。
 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/167673.html

(0)
上一篇 2021年9月22日
下一篇 2021年9月22日

相关推荐

发表回复

登录后才能评论