罗风 · 7月2日

极刊・EDA的左倾主义

前两天,被一篇名为谷歌用AI设计芯片,强力碾压设计专家的文章刷屏,朋友圈一片“啊,要失业了”的哀嚎。如果大家真的很焦虑,我们不妨来讨论一个更加重要的话题,和我们每个人,每天的工作以及我们要去的方向都息息相关的话题,EDA的shift left。大家稍微留意一下DAC,DVCon和各种EDA的演讲和访谈,应该对shift left这个名词毫不陌生。

也有社区的同学跟我吐槽,他跟同事讲shift left,发现有的人右的厉害,这位热血小青年痛心疾首的批判,“右倾机会主义,在工作中放弃原则,放弃理想,自甘堕落,畏首畏尾,甚至在某些部门成为主流思想,荼毒业界,长此以往,司将不司”这当然是小青年的理想主义,而现实是非常现实的。辩证唯物法教导我们说,摸石头过河,左和右的朋友都要交。

本文希望正本清源的对EDA的shift left做个解释,以后两派互相人身攻击的时候也好知道各自的主义到底是什么,冲突的根源在哪里。

Shift left是什么不是什么,从摩尔定律说起

我没有在wiki上找到关于shift left的定义,只有shift-left testing

Shift-left testing is an approach to software testing and system testing in which testing is performed earlier in the lifecycle (i.e. moved left on the project timeline). It is the first half of the maxim "Test early and often."

EDA(估计)是借鉴了这个观点的内核,“将事情在项目/产品的早期阶段做”,而逐层衍生出了自己的一整套概念内涵,这是本文将要描述的重点。Shift left不是将开发的时间线缩短,而是在同样的时间盒里面要做的工作更多。这,是由支撑芯片行业发展的基石,摩尔定律所决定的(尽管现在来到了后摩尔时代,但规律仍在发挥作用)摩尔定律不是技术规律,而是技术和市场的共同规律,最早是英特尔的战略目标。芯片发布的时间,虽然TTM的压力越来越大,但正确的时间窗口从来不是越快越好,而是要跟整个长长的产业链协同,不能早于市场需要,链条上的其他环节还不ready。即便是强势如苹果也不能说我现在就要100GHz的芯片,苹果的product marketing也得根据摩尔定律,估算明年性能大概什么水平,然后提要求。有个定律,方便全产业链协同。

死期是市场,产品和研发竞争博弈的结果。市场得参考友商,产品得做投资分析,研发要参考自己的生产力,单是在相同的时间盒内完成更多的工作这一点就足以把很多工程团队逼到996.ICU了,这是来自四面的合围夹击,第一,5G,IoT, AI市场瞬息万变,需求多变,第二,集成度日益复杂,第三,先进工艺下的次生效应,第四,验证的工作量指数暴涨,基于过去的项目经验预测新项目的周期已经越来越困难,特别在乌卡环境下,当博弈卡到极限的时候,新的设计方法学出现了,技术拉动生产力和生产效率。这,就是我们今天要谈的shift left,高度连接,大纵深连接的EDA设计流程使得产品开发周期更快且具有更优秀的工程生产力和可预测性。

Shift left 1:整合综合,PR及签核平台,任务左移

近几年,EDA两大巨头先后推出AI增强的从综合到签核的整合设计平台,包括RTL综合,测试,物理实现,物理验证和signoff。基本思路是,各个环节拉通引擎,共享数据模型,inside EDA, 提升了环节间的一致性和高并发优化的可行性,极大降低了环节间复杂的数据交互所造成的资源浪费,dance around EDA, 能够为设计工程师提供更丰富的接口和更具有灵活性延展性的流程构建方式。从而综合提升了从综合到签核的整体工程效能。

具体来说,在综合阶段,利用后端的引擎直接做早期的fp探索,将std与macro一起摆放,使得该探索的结果可以避免后期的congestion,优化功耗,时序,减少PR到综合的迭代。在PR阶段,直接调用签核工具的引擎,优化功耗,提前考虑到finfet工艺下的光刻坏点修复, 复杂layout rule及压降,次生效应等一系列问题,减少签核到PR的迭代。

事实上,在拉通引擎和数据,post-rtl平台整合之前,在各个单点环节早就有大量左移的技术实践,先模型左移,如physical aware synthesis, 在place阶段考虑时钟树,在时钟树阶段考虑congestion,在PR阶段考虑STA场景及模型和PV的先进工艺规则,次生效应等,将IR drop与timing同时优化等等,这些,我们暂且称其为模型或知识左移及并行计算。

Shift left 2:IP复用,IP左移

EDA厂商的双巨头同时也是排名全球Top3的IP厂商,IP市场也一直是EDA市场的巨大的增量市场。EDA与IP的深度整合为SOC工程效率的提升迈进了一大步。

在IP市场上,除了极少数top的寡头可以为客户提供IP生态和端到端的解决方案,大部分IP供应商,做不到也做不好这件事儿。理由是,IP的基本使用模式是高可复用,但IP不是乐高,可以以一个非常稳定的接口牢牢的跟周围的乐高组件灵活组合,稳固连接。IP是通过一组0 1 信号互相连接,被上层调用,向上的应用场景非常复杂,向下的工艺variation更加复杂,对IP的选型和验证,是自研还是采购向来都是SOC设计的深坑。

EDA在IP领域可以依靠生态影响力把行业的IP(标准,规范,协议)通用需求固化和领域需求差异化,为专用领域,如汽车电子,AI等提供打包的一揽子解决方案,满足该领域的行业标准及合规性。这些更底层的问题交给专业的供应商,可以有效支持SOC架构师更加聚焦架构级的探索。验证成本是SOC开发成本的大头,IP级的验证在其中做的可深可浅,采购安全及质量合规的,超大规模量产验证过的,PPAC最优的IP及相应的VIP显得尤为重要,验证IP的巨额成本由供应商承担,SOC厂商也愿意为此买单并分摊成本。

同时IP还与综合工具,架构空间探索工具及平台深度整合,确保需求多变,先进工艺,约束严格的挑战下SOC对IP的使用高效,稳定,安全,易用。将这个事情交给EDA或IP寡头做,这是相比SOC厂商自研和自选IP更加左移,更加高效的一种商业和技术场景。这,就是IP左移。

Shift left 3:验证左移

这一部分是左移这一理念的大本营,验证左移。验证跨越了芯片开发从spec到上板及量产的整个过程,以一种高效有效的方式,完整确保这个复杂的设计链条上的过程质量,是验证工作的目标。按照,bug发现的时间晚一个环节,fix的成本高出10x的原则,应对验证工作量指数暴涨,提高验证效率(即,开发效率)的核心就是,尽早发现问题,左移。

在不同的设计环节,对应不同的验证工具,验证左移的三个核心实践,一是,拉通不同验证工具的引擎,二是,跨产品周期的数据,信息,知识的全流程共享,包括 inside eda的 database,dance around eda的 SPEC, IP, testbench, testcase,VIP package,知识管理等,三是,优化的自动化验证平台,赋能复杂过程的高效协作及过程管理。这样说似乎还是太抽象,这些名词术语大家也常提,验证平台很重要,每个公司都在做,但这跟左移的关系是什么呢?回答这个问题必须先搞清楚,敏捷跟左移的关系是什么,更直接点,敏捷是什么?当我们谈优化流程时,我们是在谈强制标准化还是适应变化?

当芯片质量保证变得越来越复杂,验证的地位从原来设计的辅助变成跟架构师同等地位(或者更高),设计的架构师只是懂部分的设计,而验证的架构师则需要100%的保证这个复杂设计的质量。敏捷验证是EDA领域和SOC领域一个独立且成熟的理论和实践,大量的讨论聚焦在如何在早期发现体系结构和重大的设计缺陷,如何尽量减少返工和开发验证之间的迭代,每次设计提交代码的原因和意图都不同,是不是只要代码提交就必然跑回归,跑回归的策略如何优化,如何进一步提升工程层面的解耦和并行性,如何写文档才能确保文档跨产品生命周期的高效管理,一致性,可复用。

对应上述问题,敏捷验证(验证左移)具体的实践非常多,包括XP,单元测试,测试驱动开发,实例化文档(可执行需求文档),spec跟验证的关系是什么,如何理解客户需求跟验证的关系,如何应对需求多变跟验证流程的关系,哪些内容适合放在流程里,哪些适合自动做,频繁做,哪些适合面对面的沟通,沟通的过程和协作的范式是怎样?

更加具体的描述和呈现,可以放在后面的专题文章当中单独展开讨论。

Shift left 4:硬件和软件之间的整合,设计左移

传统的嵌入式系统开发模式是典型的瀑布模型,先有硬件,然后在硬件的基础上开发软件,硬件开发中spec-rtl-silicon-system,软件开发中的 app-integration-qa-test也是按照瀑布模型,其中可以被并行开发的环节很少,导致不但开发周期久,而且环节依赖及迭代交付模型复杂。

随着架构演化和解耦,软硬功能边界重新定义,系统整体解决方案中的需求及功能定义越来越多的可以在软件侧实现,这使得在架构阶段软件就开始介入,并依靠软件的快速验证给硬件快速反馈,这一软硬协同开发模式成为可能。Software is eating the world,IoT通过软件将万物互联。其中的快速交付,安全等问题,EDA作为方案供应商也需要以新的技术应对新的需求和挑战。包括精确的模型预测,确保软硬之间的一致性,优化的算力及算法,确保应对更多的验证压力。以及客户将这些功能移至软件后,EDA需要相应的解决方案支持这一部分开发的新需求。同时,也需要应对客户对软件和硬件的协同和整合所提出的需求。

以前,在社区讨论过一个话题,EDA到底卖的是点工具还是相关服务和解决方案?事实上,(个人理解)EDA的核心价值是生态,点工具的观念已经越来越淡化,如前面的介绍,EDA先是整合了从综合到签核的平台,通过拉通工具间引擎和数据,将保持PPAC一致性的工作提前做,再是SOC设计的基础组件,IP,以及围绕着IP打造的VIP,for专用领域芯片的设计套件,与EDA工具链的整合,再来,跨越端到端的从spec到流片后的验证方案,越来越多的渗透了TDD及左移的思想。更进一步,软件定义芯片的观念已经开始普及,变革正在发生。当芯片设计开始往软件和系统迁移,也就意味着pre-rtl的部分开始往软件世界的基石,敏捷和开源迁移,而post-rtl的部分,AI在更多的渗透和参与其中,基于更准确的模型辅助设计空间探索,提升后道工序乃至全流程的可预测性,准确度和更好的设计结果。

在传统方法中,考虑到从设计交付到返回芯片所需的几个月时间,称硬件只需几周的冲刺时间有些不太可信。而敏捷开发方法是如何通过在适当的层上改变原型起作用的。最内层是软件模拟器,如果模拟器能够满足迭代需求,这是进行更改的最方便快捷的地方。第二层是 FPGA,其运行速度是具体软件模拟器的数百倍。FPGA 可以运行操作系统和完整的基准测试(像那些来自标准性能评估公司的测试),允许对原型进行更精确的评估。第三层使用 EDA 工具生成芯片布局。即使在工具运行之后,在准备制造新的处理器之前,也需要进行一些手动步骤来完善结果。处理器设计者将第四层称为「tape in」。每个层级都支持以冲刺(参考号内Scrum介绍)的方式完成价值交付。

Shift left 5:架构的黄金时代,被AI加持的EDA反哺AI,端到端左移

这是架构的黄金时代,EDA在提供架构空间探索方面积极发力,更进一步,打通该解决方案与RTL2SILICON流程的整合是人类和EDA以及几大EDA之间的最后角逐。架构师不仅仅是为融入AI、ML的EDA工具感到压力,也为设计芯片过程需要整个设计团队的通力合作,算力、数据和人才的经验的协调调度,尽心尽力才能提升芯片PPA。而将ML融入EDA方法学中,机器就可以看到和累积所有人的经验,通过不断地学习变得越来越稳定,逐渐摆脱对人的经验的依赖。如果到了这个阶段,芯片设计就走向了一个新高度,一个崭新的天地。届时,需要在敏捷体系框架下和视角下重新审视人和工具的关系以及工具和工具的关系。

下一个战场,是AI的战场,是生态的战场。大树底下,可能寸草不生,也可能生长出丰富的植物,久而久之,将大树合围绞杀。结局未知,但,战斗已经打响!

AI chip的计算能力比传统计算高1000倍,其体系架构,计算架构,算法和传统芯片有很大区别。具有更大规模的计算阵列,在绕线以及布局上也更复杂,这是EDA所要解决的新的领域问题。而EDA也全方位融合了AI, ML技术服务于该领域。芯片设计的过程,本质就是数据的计算,加工,传递,而ML/AI技术加速了这一进程。
包括inside EDA的局部优化以及dance around EDA的端到端优化。

前面shift left 1-4讲的还是在研发内部的流程左移,优化研发效能。得AI的加持和计算效能的飞速增长,加之架构演化使得系统功能左移到软件,工具提高了抽象水平,而且这种更高水平的抽象增加了设计的重用性。从这一步开始,左移已经不仅仅是研发的事情,而是业务流程左移,产业链左移。具体来说,EDA从通用领域进入专用领域进一步深耕,AI作为新兴领域,还没有非常成熟的解决方案,应用、算法、硬件、软件、性能标准和设计方法可谓百花齐放。AI芯片厂商也在积极的做市场和技术探索。而一个快速试错,小步快跑的支撑体系则显得尤为重要。等芯片流片,上市后才发现一些预定义的战略错误,产品定义错误,则为时已晚。

现代SoC软硬件设计的复杂性日益增加,准备好硬件后再进行开发软件在业界已不再有效且缺乏竞争力。能不能从应用、系统反向定义出做一个怎样的芯片比较符合应用需求?能不能在系统阶段,架构阶段做充分的探索,提高早期的可预测性,而把芯片实现的部分,交给EDA去完成。尤其是在AI和ML的快速发展的垂直市场中,迫切需要使用虚拟原型技术并行设计硬件和软件产业链上,每一道环节都尽可能多的帮助上一道环节的产品成功和客户成功。以一种拉动的力量影响和加快产业链?这,就是产业链左移。

Shift left 6: 敏捷体系与EDA,左移中的工程管理和研发效能

社区的同学听我布道agilesoc已经几年了,我对体系的理解和在SOC领域应用也是跟大家在共同的交流中成长起来的。通常,在软件工程效能领域,往往会把精益敏捷DevOps放在一起,作为一个完整的端到端工程效能体系框架。敏捷和精益都是DevOps的前置条件,很多内容是重复的,DevOps范畴更全(篇幅所限,暂时先不去纠结这三者有什么区别和联系)在芯片领域,提agilesoc提的较多,DevOps提的不多,因为以前设计上云,AI ML在研发中的应用还不普及,生态及大环境还不足以支撑充分的落地实践,在这里我们暂时先统一用DevOps这个术语。

devops= dev{*}ops,这是来自devops创始人的定义,是软件行业高效组织跨部门协作,提高产品价值交付的一种能力模型,星号代表一切相关部门。按照一个信息化时代更普世的定义,EDA,CAD,设计流程,研发体系构建一定属于{*}Ops,EDA是从集成电路而来往信息产业而去的。信息行业对数据的处理,结构化,半结构化,非结构化,对ML的利用,这些都属于CAD EDA要处理的部分。更重要的是,该体系帮我们梳理了,人和工具的关系,人和人的关系,产品和市场的关系。

DevOps体系框架跟EDA的关系,前者是最大化组织开发效率,促进进化学习,创造员工满意度,赢得市场的工程管理框架,后者是这个框架在场景中落地的内在引擎,EDA在IC设计中赋能自动化,智能化加速了这一进程。在外层和内层中间的那一层,是人,各个角色的人。映射到SOC领域,具体来说,它的构成要素,首先包含了人的部分,从以人为本的角度出发,这部分也是最核心的内容,你的企业管理怎么做,组织文化,工程文化,工程管理等。特别是对于技术型知识工作者,怎样的模式能够最大化释放集体的效能,并且构造让大家持续成长的空间。第二,从产品角度,强调客户导向,业务驱动研发,如,芯片公司关心需要以什么样的解决方案满足客户的何种需求,如何实现,如何高效高质量的满足价值交付以何种方式帮助它的客户成功和完成价值交付。第三,包含了spec2gds的集成平台,设计流程,项目管理,知识管理。第四,包含了跟架构,设计密切相关的交付管理,过程质量,验证管理以及跟DFT, 封测,后端等部门的协作方式,以及足够支撑高效协作的底层能力。

该体系框架下的一些重要的观念和实践有,自动化,度量,共享,方法层面就是经典的three-way,强调流动,反馈,持续学习和实验,开发交付实践层面重构,TDD,ATDD,内建质量,CICD包括持续探索(架构空间探索),架构设计持续演进,CICD跟云服务融合更紧密,把自动化和智能化推向更极致,这也和EDA演化的方向是一致的。如何在该体系中植入EDA的位置,EDA跟各要素的关系是什么,如何在该体系中植入芯片架构的位置,架构跟各要素的关系是什么,人(角色)和体系要素的关系是什么,系统运行的底层逻辑是什么,研发过程中遇到的问题如何在构成系统的要素间互相作用中找到解释,如何通过干扰其相互作用的关系而改善问题?篇幅所限,不展开讲,请关注后续文章,我会持续分享一些我的看法。

Shift left 7:ABCDI时代,重新定义EDA,生态左移

A(AI)B(Block Chain)C (Cloud Computing) D (Data) I(IoT)的话题也在社区已经反复的讨论过非常多次,它代表了当下我们正在经历的时代以及未来要去的方向,即从互联网+时代走向智慧+时代,这是万物互联的时代。部分老的巨头已经落幕,新型科技冉冉升起。中国没有输掉ABCDI竞赛,但,基石不稳,这基石,就是芯片,美国就是想通过封锁芯片和芯片技术来阻止中国崛起。那些互联网巨头失掉芯片就像是沙滩上的帝国,所以他们纷纷入局芯片。那些手机厂商,系统厂商,也纷纷入局芯片。

EDA行业的未来会深深的和这个ABCDI时代绑定,结合AI,云服务,大数据,万物互联促成“算力”、“算法”“数据”“交易”的深层次的融合,而此时的算力,算法,数据已经和我们在过去传统EDA1.0,2.0,3.0时代讨论的算力,算法,数据不是一个物种。EDA自身也会转型,在点工具时代,EDA专注于单点算法和自动化,在移动互联网时代,低功耗设计提出了更多新的挑战,EDA专注于PPAC芯片指标的全流程一致性整合,在万物互联的智能时代,EDA(或)专注于依靠云服务,AI/ML技术提供领域芯片的端到端解决方案,如AI chip领域。整合已来,但仅仅被看作是IC设计工具的时代,也会过去。EDA的全称是Electronics Design Automation,不单是Integrated Circuit Design Automation(集成电路设计自动化),串联起了芯片行业的上下游,并用软件统一了产业链不同分工企业之间的对话语言,从而彻底改变了整个半导体业态的格局。同时,半导体产业链的合作与发展也反过来造就了当前EDA工具的方法学。未来的EDA将会服务于当下和未来这个新时代,正在成为,或者将会成为信息产业和智慧化离不开的“工业软件”,以一种更符合时代和市场需要的形态和生态。不要一谈敏捷就强调硬件和软件有多么巨大的鸿沟,EDA软件和普通工业软件有多么深刻的不同,一切都在变化,转型正在发生。

写在最后

关于开篇提到的AI是否会另我们失业的焦虑感,我是觉得,5-10年内暂时不至于,但,IC人需要向上走,只争朝夕,不负韶华。不必因为和国外的巨大差距而沮丧,更不必因AI的强大而自暴自弃,无人芯片设计最终一定会到来,融合了AI的EDA会更强,会越来越多的替代人工,这是一定的!但,那又怎样?不甘心被吊打,就脚踏实地去研究它,掌握它,超越它。

参考资料:

【1】. Aart De Geus 博士的多个相关演讲及采访
【2】. 周祖成教授多篇相关文章,演讲及采访
【3】. 近两年CDNLive, SNUG, DAC, DVCon,ISSCC相关论文及演讲
【4】. 近年的EDA datasheet,产品手册,网站文章及相关资料
【5】. 极刊・IC极客荐书,一起学习,一起挂科

作者:陌上风骑驴
原文链接:https://mp.weixin.qq.com/s/mc-hXUiTHP5VCMatKzwtyA
微信公众号:
陌上风.jpg

相关文章推荐

更多IC设计技术干货请关注IC设计技术专栏。
2 阅读 320
推荐阅读
0 条评论
关注数
2368
内容数
585
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
Arm中国学堂公众号
关注Arm中国学堂
实时获取免费 Arm 教学资源信息
Arm中国招聘公众号
关注Arm中国招聘
实时获取 Arm 中国职位信息