03 | 芯片设计:一颗芯片到底是如何诞生的(上)

你好,我是邵巍。

上一讲我介绍了一下半导体产业都有什么样的产品,并且通过拆解一部iPhone,给你展示了一部手机都需要用到多少芯片。

那么这一讲我们来聊聊,一颗芯片,是如何诞生的呢?其实一颗芯片项目就是一个标准的产品项目,项目的起点是市场需求分析,接着是设计和制造,如果产品成功完成了商业落地,那么就可以开启下一代产品的迭代升级新周期了。

为了方便大家记忆理解,我做了一张完整的流程图。重点有市场需求分析、芯片设计、晶圆制造、封装测试这四个流程,最后,封装测试好的芯片成品会交给设备厂商,完成电子设备硬件的制造组装和软件安装。

你一定要记住这张图,基本上它对所有的电子设备,从指纹密码锁,到手机、PC、服务器,甚至超级计算机,都是适用的。

因为这个流程比较长,我把它拆成了两部分,这一讲重点放在芯片的设计,下一讲我们再来看芯片的制造。

如果只看芯片设计,它主要包含需求分析、架构设计、逻辑设计、物理实现和验证等几个部分。

如果说芯片项目和其他产品项目有什么不同,那就是芯片项目是人类历史上最细微也是最宏大的工程,研发投入大,项目收益高,试错成本极高

以iPhone的A11应用处理器为例,这颗处理器包含43亿的晶体管,工程师们要在有限的项目时间内,实现手机应用处理器所需要完成的功能任务,还需要在88mm² 指甲盖大小的面积下放置下43亿晶体管和它们自己的连线,再要经过缜密的验证工程,以保证它在2亿台手机上都能正常工作2-3年。

有人说芯片是人类造物的巅峰之作,我是非常认可这种说法的。

像A11处理器这样一个项目,它的商业价值有多大呢?我来给你算算。苹果每年的手机销售约为2亿台,按照上一讲我提供给你的iPhone X物料表,A11价值27美金,乘以2亿台手机那就是总共价值54亿美金。

苹果的应用处理器是自己设计,委托台积电代工的。因此,27美金的标价,算是成本价格了。如果购买其它同类同性能的应用处理器,可能大约要80美金的单价,这样算下来,就是160亿美金的总价值。

让我再重复一下几个关键数字,2017年的发布的iPhone 8,采用的应用处理器A11,43亿晶体管,88mm² 指甲盖大小的面积,2亿手机销量,160亿美金的总价值。不知道你看到这组数据是什么感觉,我是被这组数据震撼到了。

接下来,我就以苹果公司为例,先讲讲苹果是怎么走上自制芯片的道路的,然后再给你逐步揭秘芯片的设计流程。

课前小故事:苹果的芯片设计路

2005年,苹果在开始计划iPhone之前的iPod产品时,当时是先买PortalPlayer公司的,后来采用三星的现成商业芯片搭建的。

商业芯片,英语有一个专门的词叫"off the shelf",就是指从(超市)架子上拿下来就能用。现成的商业芯片的好处是方便易得,价格确定。不好的地方,就是挑一个100%满意的比较难。会遇到功能不完全匹配、性能有高有低、接口不够用、大厂价格贵,小厂可能供货不稳定等问题。

站在2005年的时间点,那时高通的手机应用处理器还没有GPU,德州仪器还在为如日中天的诺基亚服务,而且没有单片的方案,需要另配基带芯片。总之,那个时候没有完美选择。

因此苹果打算定制一款自用的芯片。我们现在知道,苹果曾经和Intel谈过定制芯片的想法,但是Intel拒绝了。于是苹果转向邀请当时为iPod供应芯片的三星为自己定制芯片。

本来在买商业现成芯片,和定制芯片或者自制芯片之间,还有FPGA一个选择。FPGA可以通过硬件编程语言,把芯片内的标准阵列器件重新组合,形成新的电路,完成类似定制芯片的功能,可以节省投片生产的开销和时间。

但是,代价就是单片的价格偏高,功耗偏高,因此FPGA在数据中心的应用较多,在手机终端领域极少。

苹果这种提供产品规格需求,由三星做设计服务和生产的这种模式,业内叫设计服务。而且委托设计服务的边界,非常灵活,苹果公司可以完全不参与设计只提产品规格要求,也可以自己完成部分设计,从一小部分到绝大部分都可以,其余再交给设计公司。

不过,这个过程其实也挺不容易,苹果在请三星设计过两代芯片之后,开始自建设计团队,最终决定自己来完成芯片设计环节。按照苹果架构师的回忆,三星实现了苹果要求的功能,但是最终的芯片并不是苹果想要的芯片。这种芯片规格书与芯片成品之间的差距,就是架构师要背的锅了。

小故事我先讲到这里,后面也就是苹果自己做设计的故事了。回到开篇说的芯片设计流程,我们来看看,要做芯片设计的话,芯片公司都会做哪些工作呢?

需求分析

其实可以想见当时一定是有多个芯片公司,发现了手机应用处理器这个真实需求。在芯片公司发现市场需求之后,通常会进行市场调查,总结出一个通用的市场需求清单出来。一般这个需求清单,会包括主要应用场景分析、软件栈、竞争分析、性能与定位、需求量与投资回报比分析、行规与标准,主要配套芯片的市场供应情况预测等多项内容。最终形成的就是一份市场需求文档。

每个公司的文档流程不一样,有的公司,在做市场需求文档之前,还要做商业需求文档,重点在于分析投入产出比。在市场需求文档之后,还要做深入的产品需求文档和细分的功能需求文档。

在需求分析之后,通常会有一个立项决策会议,由内部管理层决策是否进行此产品的开发。如果顺利通过立项决策,这个芯片项目就由市场部门,转交给研发部门。

像苹果A11这种项目,需求分析这一步,会集中在公司内部,为iPhone8服务。而如果是高通,联发科这种商业芯片公司,往往会征求主要客户的反馈,和手机厂商们对齐需求。

架构设计

我们说,一个项目是否有商业价值,主要看需求分析。而一个芯片是否做得好,80%是由架构设计决定的。

在拿到需求分析文档后,高层设计人员,往往是以架构师为主的团队,需要开会对产品需求逐条进行可行性分析,并在此基础上确定基本架构和模块分解,最终设计出一个系统架构。我可以给你看看,苹果A12的一张系统架构图,你可以感受一下。

在基本架构确定之后,芯片的大目标,就是对Power功耗、 Performance性能、Area面积,也就是业内常提到的PPA衡量标准,要有明确的规划,这一般也就确定了要选择的制造工厂和工艺制程。接着,芯片设计公司要把需要向供应商购买的IP和自研的IP,把它们的交付时间和接口逐一确认。苹果的CPU 核一直是自研的,GPU,则从IP供应商那里购买过很长一段时间。

如果采用先进封装技术进行小芯片(chiplet)的设计,此时封装方案和初步的布局规划也都应该确定了。在大多数情况下,一个芯片里面只封装一个集成电路硅片,但是有时候为了更高的性能,或者高密度的设计,当然还有成本因素,需要把多个硅片封装在一起,这种技术手段就叫先进封装。

到架构设计这一步,最终输出的就是一份产品规格书和高层架构设计文档。这是一个将市场需求,翻译为可实现的芯片架构过程。

架构确定了之后,通常架构团队和算法工程师团队会建模仿真,确保功能、性能、吞吐量等指标可实现。有了一个可行的芯片设计方案和芯片原型模型之后,架构团队就可以把文档和芯片模型移交给设计团队,开始逻辑设计。设计团队,会先输出微架构或者模块设计文档,然后进入编码阶段。

回顾一下开篇那张图,你可以理解,架构设计的输入是市场需求文档,输出是产品规格书。下一步,逻辑设计也叫前端设计,就需要拿着产品规格书,去输出RTL代码,用以生成网表(Netlist)了。

我们在开头提到,在逻辑设计完成后,还要做物理实现,物理实现就是由RTL代码综合成门级网表,然后生成GDS II文件的过程。这里的物理实现也叫后端设计,前端和后端设计这两个部分并没有统一严格的界限,凡涉及到与物理工艺有关的设计我们就叫后端设计。我们先来看逻辑设计。

逻辑设计

前端设计与验证

前端设计(逻辑设计)一般用硬件描述语言,例如Verilog,将架构师的设计用编码实现。大型芯片项目,设计也是分层次的。先进行模块设计,底层的模块写完之后,把新写的模块、商业IP、复用的旧IP等整合在一起,形成一个完整的设计。

其实硬件描述语言,看起来跟C语言颇为类似,不过写C语言的人,心里想着“hello world”,写Verilog HDL的人,心里想着电路图。

我给你展示一段编码,用Verilog HDL写的寄存器传输级设计如下图:

跟其它的软件项目一样,在设计的同时,验证也要并行进行。验证是芯片设计中最为耗时耗力的工序,ARM的技术白皮书有统计,一般一个项目的40%资源是用在验证阶段的。

逻辑综合

设计验证完成之后,还有一个步骤,叫逻辑综合 (Logic Synthesis),就是用EDA工具把寄存器传输级设计RTL描述变网表(Netlist),非常类似于编译器把C语言翻译成机器语言的过程。从这一步开始,芯片的设计就和具体的晶圆代工厂和具体工艺绑定在一起,设计开始具有物理特征了。

网表表示的电路如下图,它其实就是描述电路元件相互之间的连接关系。

逻辑综合,对于半导体设计公司不难,但是却是EDA公司的核心产品之一。在实现流程中,就背后算法而言,综合一定是最难最复杂的步骤。一个晶圆厂,并不仅仅要有先进工艺,提供给设计公司的设计工具包PDK(Process Design Kit)和EDA厂商的支持也非常重要。

DFT(可测试性设计)

除了以上两步,前端设计还有一个步骤就是DFT(Design For Test)。所谓DFT,就是预先规划并插入各种用于芯片测试的逻辑电路。芯片制造后期,在封测阶段中,很多测试需要依赖DFT的设计。

完成以上工作后,前端设计团队就可以将生成的网表交给后端实现团队,开始物理设计了。当然这个过程不是一蹴而就的,前端设计工程师往往要多次,不同层次的反复综合、验证,各种设计规则检查,既要确保设计的正确性,又要保证设计的布局布线可行且优化。

整个逻辑设计阶段,你可以这样理解:架构师写在文档上的指标与功能,是需要设计团队通过一行行的代码实现出来的。

物理实现

在前端设计结束后,后端也就是物理实现需要完成布局布线,这个时候,需要把网表转换成制造工厂可以看懂的文件,也就是转化为制造工厂可以用来制造光罩的图形文件。

后端设计的主要步骤可以总结为:布局规划Floorplan→布局Placement→时钟树综合CTS→布线Routing →物理验证。

布局规划就是在总体上确定各种电路的摆放位置,它是后端实现中最为重要的一个环节。我这里放了一张图,你可以看下苹果A11的布局规划是怎么样的。

芯片的面积、时序收敛、稳定性、走线难易,基本上都是受布局规划的影响。在实际项目中,往往此时还有未完成的模块,就要预留位置。

规划之后,在指定区域摆放元器件,就是布局,而把各个元器件连接起来,就是布线。一颗芯片的树状的时钟信号线路非常重要,往往需要单独布线,因此还有一个专门的名称:时钟树综合。最后,要做验证。

我说得简单,其实这就是在指尖上建高楼,在小小的芯片上放置上百亿个晶体管,纳米级的单位,幸而有EDA工具辅助,这不是人力所及的工程。

一颗芯片做得好不好,在决策阶段取决于市场需求理解的是否深刻,在逻辑设计阶段取决于工程师的能力强不强,而在物理实现阶段基本取决于EDA工具玩得好不好。

在芯片设计进入纳米时代之后,布局布线的复杂度呈指数增长,从布局规划到布局布线,时钟树综合,每一步涉及到的算法在近年都有颠覆性的革新。这些步骤,都高度的依赖EDA工具。要对EDA工具有深度理解,并且要理解EDA工具背后的方法学。

整个芯片设计流程就是一个设计、优化、验证的不断迭代的过程,每一步如果不能满足要求,例如时序不能满足目标要求,或者存在物理规则违规,信号完整性不合格,都要重复之前的过程,直至满足要求为止,才能进行下一步。

在项目早期,任何的问题,都可以通过修改RTL,然后重做后续步骤来完成。因此大项目,往往有多个版本火车并行在跑。

在项目后期,特别是在最后阶段发现个别电路小问题 ,可以进行工程更改(Engineering Change Order,ECO)。ECO有专门的EDA工具和流程,我就不展开说了。

物理设计完成之后就形成了下图展示的电路图。图中可以看到蓝、红等不同颜色,每种颜色就代表着一张光罩。这个时候的芯片设计就可以以GDSII的文件格式从设计公司移交给芯片代工厂了。自此,设计完成,制造流程开始。

总结

这一讲,我们了解了一颗芯片的诞生,第一步就是芯片设计,有几个重点,简单给你总结一下。

  1. 芯片项目是人类历史上最细微也是最宏大的工程,研发投入大,项目收益高。
  2. 在需求分析之后,进入芯片设计过程。芯片的设计过程可分为两个部分,分别为:前端设计(也称逻辑设计)和后端设计(也称物理实现),这两个部分并没有统一严格的界限,凡涉及到与工艺有关的设计都可称为后端设计。
  3. 一颗芯片做得好不好,在决策阶段取决于市场需求理解的是否深刻,在逻辑设计阶段取决于工程师的能力强不强,而在物理实现阶段基本取决于EDA工具玩得好不好。
  4. 整个芯片设计流程是一个设计,优化,验证的不断迭代的过程。

思考题

你同意需求分析是整个项目中最重要的环节这个说法么?欢迎你在评论区给我留言。

精选留言

  • BBQ

    2021-05-24 09:57:35

    同意:需求做得好不好,决定了这个芯片的价值,如果需求分析做错了,那即使后面工程师能力再强,工艺再先进,也卖不出去。

    我是做软件的, 软件的需求分析也很重要,但是软件有个特点,就是随着需求的变化而不断演进,所以一般开始都开发个MVP试错,不行就再改。

    但是硬件由于其特殊性,造出来之后再演进几乎不可能,所以需求调研尤其重要。
    作者回复

    感谢认同。硬件,特别是芯片,设计周期和代价,在那里,因此需求分析错了,就同时浪费了时间,金钱,错过了市场。

    2021-05-24 14:22:00

  • 送过快递的码农

    2021-05-24 14:56:55

    其实这么看起来,华为挺牛逼的,麒麟芯片虽然跑分上落后同时期的A系列芯片,但是其设计实力还是毋庸置疑的,而且就冲着体量,再一条路走到死的芯片设计上,能够紧跟世界先进水平还是厉害的。可惜。。。哎。。。
    作者回复

    华为/海思真是行业之光。

    2021-05-25 08:35:13

  • Demon.Lee

    2021-07-24 12:40:42

    学习总结:
    - 芯片是人类造物的巅峰之作,是最细微也最宏大的工程,研发投入大,项目收益高,试错成本极高。
    - 芯片产生的流程长,主要分为芯片设计和芯片制造两部分。如果想从事芯片设计,可以读电子工程系的微电子专业;如果想从事芯片制造,可以读集成电路专业。
    - 只看芯片设计,主要包括需求分析、架构设计、逻辑设计、物理实现和验证几个部分。
    - 芯片设计的三种方式:买现成商业芯片、自制芯片和 FPGA。
    > FPGA:通过硬件编程语言,把芯片内的标准阵列器件重新组合,形成新的电路,完成类似定制芯片的功能,可节省生产的开销和时间。代价是单片的价格偏高,功耗偏高,故 FPGA 在数据中心的应用较多,在手机终端领域极少。
    - 芯片设计各环节:
    - 需求分析(市场团队):通过市场调查,总结出市场需求清单,最终输出一份**市场需求文档**(有的公司可能要输出多份文档:商业需求文档、市场需求文档、产品需求文档和细分的功能需求文档)
    - 架构设计(架构团队):输入需求文档 --> 确定基本架构 --> 规划 PPA(功耗,性能,面积),确定 IP --> 输出产品规格书和高层架构设计文档
    - 逻辑设计(前端设计,设计团队):输入产品规格书 --> 前端设计与验证(将架构师的设计用编码实现,并行测试)--> 逻辑综合(使用 EDA 工具把 RTL 描述变成网表 NetList) --> DFT (Design For Test,预先规划并插入各种用于芯片设计测试的逻辑电路)--> 输出 NetList
    - 物理实现(后端设计,实现团队):输入 NetList --> 布局规划 FloorPlan --> 布局 Placement --> 时钟树综合 CTS --> 布线 Routing --> 物理验证 --> 输出电路图(GDSII 文件格式)
    - 一颗芯片做得好不好,在决策阶段取决于市场需求理解的是否深刻,在逻辑设计阶段取决于工程师的能力强不强,而在物理实现阶段基本取决于 EDA 工具玩得好不好。
    - ARM 的技术白皮书有统计,一般一个项目的 40% 资源是用在验证阶段的,所以会有单独的验证团队。
    - 重点掌握:芯片设计流程图(自己画一遍,这里无法发出)。
    作者回复

    2021-07-24 19:45:51

  • 彭海民⬆️

    2021-05-24 08:18:20

    同意,需求分析的过程,也是项目目标的确立过程,目标错了,整个项目实施就只能算是一次演习。
    哈哈,芯片设计中的每一步都值得我们敬畏,我等凡人不该对每一步的价值胡乱排序。
    作者回复

    这个回答也很在理,加🍗。

    2021-05-24 14:22:29

  • 轮子制造者

    2021-07-31 08:19:04

    这必须同意,毕竟选择大于方向嘛
  • 阳光彩虹小白马

    2021-06-08 09:19:19

    认同一部分,需求分析在不同体量的产品中占比不同,如果是初创或者开拓市场阶段,需求分析非常关键。产品成熟阶段,需求分析与技术可实现度之间需要balance,产品要达到护城河阶段时,需求其实已经多轮迭代,优化空间不大,更多是在ppa上磨练内功。粗浅见识,望指正,来自一名努力想往好的架构师发展的芯片从业者
    作者回复

    我的感觉好像正好相反,初创阶段,其实参考竞对,针对市场主流需求,反而不会有大的出入,几次迭代之后,PPA优化空间不大了之后,反而需要对市场的认识有所突破,才能脱颖而出。

    2021-06-08 14:35:09

  • 唐宏伟

    2021-05-25 22:29:03

    同意。一直认为无论软件工程还是硬件工程项目,需求分析都是项目设计的最重要阶段也是花时间投入最大的阶段,是决定项目是否能成功被市场或客户接受的非常重要的工作。
    作者回复

    握手

    2021-05-26 08:50:00

  • 詹姆斯Li

    2021-05-24 14:13:28

    同意,需求这个阶段闭门造车,一旦做出来的芯片不是下游或者市场需要的,失败的成本太高了,一不小心就被竞争对手超车了。
    有个问题想请教,芯片的研发到量产的过程需要多久,另外一款芯片在市场上的生命周期有多久呢,考虑到手机厂商可能还要做硬件预留,感觉一款手机芯片的需求分析要前瞻好几年吧,这么长周期的预判要怎么做到需求分析的准确判断呢?
    作者回复

    设计时间,看复杂程度和团队经验,最快我听说过2个月TO,也有做了2年放弃设计的。芯片生命周期,也是有长有短,车,MCU,有十多年的。手机应用处理器,周期就短一点,长期预判,有一定的市场研发方向可徇,有行业标准可预计,还有一部分是靠产品部门的研究分析,有“赌”的成分。

    2021-05-25 08:41:23

  • =

    2022-09-02 23:40:17

    同意这个说法,不仅是芯片项目,在其他项目中,如数据仓库项目中,需求分析都是最重要的一个步骤。因为错误的需求分析决定了设计的产品在市场上不可能取得成功。
  • AK-47

    2022-05-25 07:12:19

    需求分析是战略问题,后面的步骤都是战术问题。
  • 豆子

    2022-03-13 17:48:01

    同意需求分析很重要,但私以为并不是因为它比其他关节更重要,而是因为人们常常忽略了它的重要性。

    需求分析环节不像开发实施环节,它的工作量一下子看不太出来,可以做的很细致,但粗糙一点好像也能往下推进,所以如果比较卷的话,为了赶着往前,这一块的详细程度会有所欠缺,特别是在首次开发阶段。其实也是正常的,毕竟缺少经验,但项目还是需要推进。
    印象中,我们组的项目开发过程中,需求、应用场景啥的,研发端、应用端反馈了很多,需求才越来越完善

    但为啥要强调需求分析很重要呢,应该是说每一次迭代都需要更认真对待,每次都该有成长,并且要持开放心态接受建议,过程中也需要多学习一些方法、经验,以便需求分析越来越完善,才能真的找到自己的优势。
  • 追风筝的人

    2022-03-08 17:41:45

    整个芯片设计流程就是一个设计、优化、验证的不断迭代的过程,每一步如果不能满足要求,例如时序不能满足目标要求,或者存在物理规则违规,信号完整性不合格,都要重复之前的过程,直至满足要求为止,才能进行下一步。
  • 杰良

    2021-12-17 09:07:53

    芯片设计和制造都很难,是各个层面的难。包括精准把握市场需求、指令集设计、晶体管规模、高可靠性要求、高试错成本等等。
  • Geek_8363c3

    2021-11-13 18:46:43

    如果统一用a12、a11做示例会不会更好些呢
  • Serendipity

    2021-08-12 23:12:04

    非常同意,如果不深入了解客户需求,就无法设计出满足客户应用的好产品。当然,有时候客户未必明确知道要的是什么,可以在市场调研及开发初期多次沟通,并贯穿在整个开发过程中。
  • 杨逸林

    2021-05-31 00:04:28

    以前在学校学的 SmartEDA FPGA 没想到和芯片设计相关...
    作者回复

    我没有学过... ... 因此先查了查,哈哈,都可以算相关的。

    2021-05-31 12:02:35

  • CaptainJackey

    2021-05-27 22:19:57

    这个问题可以辩证来看:
    1、对于苹果/华为这类巨头公司,终端产品市场占有率足够大,有足够的技术资金来研发投入和产品验证,现成的需求,做出来就能替代降成本;
    2、对于相对中等规模公司,如早期oppo/小米只能依靠外购高端芯片(高通)保持产品领先;

    总的来说:如果你的终端产品具备市场规模,投入芯片研发替代外购芯片,成功率高。如果是创业公司,需求分析则非常重要,这决定了你项目是否能取得好收益用于持续升级芯片和今后扩充产品线。
    作者回复

    系统公司本身就是需求掌握方,因此做市场需求分析能力强。fabless公司,需求分析就痛苦一点。

    2021-05-28 12:29:19

  • sugar

    2021-05-25 20:20:47

    请教一下:经常在一些新闻 tech资讯当中听到 某某芯片进入到流片环节,这里的流片 具体来说是不是就是gdsii 环节已经完成,交付给代工厂 但先不大批量生产,少量生产几片demo 出来测试下效果?
    作者回复

    是,开始肯定只订够测试且工厂允许的最小量,回片之后测试,验证,甚至交给客户试用,基本没问题,才转量产。

    2021-05-26 08:51:59

  • Geek_774e42

    2021-05-25 18:49:00

    流片后的事情也讲讲呗,譬如回片验证?EC?
    作者回复

    验证,太项目相关了。关键48小时,2周,20%跑完80%的测试... ...

    2021-05-26 19:03:31

  • 王敦丰

    2021-05-25 14:47:01

    55nm. 28nm这些数字,不是代表芯片好坏吧,关键是看设计,对吗
    作者回复

    对的,关键是看设计和实现的好坏。 不过,一般来说,28nm的NRE费用高,相对55nm来说。 高投入,期望高产出。

    2021-05-25 22:33:15