半导体集成电路的设计技术是门内容异常丰富、涵盖特别广泛的学科。但因半导体芯片的品类繁多,如大型数字SOC,电源管理模拟,混合信号ADC/DAC,MEMS,存储,射频模拟等,不同品类的芯片的设计技术之间也有着天然的鸿沟。
对投资人来说,在调研半导体集成电路设计公司时,若暂时没有芯片产品去验证其技术能力,则需通过访谈等手段来评估团队的设计能力,早期项目尤甚。因此,在不同品类半导体芯片的设计技术中,哪些需要被着重关注?这对投资人来说是相当重要的。
01数字集成电路设计
CPU、GPU、TPU、DPU、AI、MCU、DSP、AP等都是偏重于数字逻辑的芯片,另外各种SOC基本都可以划到数字集成电路的范畴中。虽然这些数字芯片都或多或少有模拟电路的部分,如各种物理接口(DDR、PCIE)的PHY,再如产生时钟的PLL、对外交互的IO接口等等,但大部分都是以IP的形式进入整个芯片的设计流程,因此对于大多数设计公司来说主要人力的分配还是集中在数字逻辑部分。
02数字集成电路设计的流程
数字集成电路不论规模大小,大致流程都是:规格定义->系统设计->前端设计->后端实现->制版投片,当然在前端设计和后端实现中又能够细分出十余种工序流程。在目前集成电路设计产业化自动化的环境中,数字集成电路特别是大规模SOC的设计是一项比较模式化规范化的工作。
数字集成电路从RTL到具体的制造都有EDA工具和晶圆厂封测厂来保驾护航。得益于EDA工具的强大以及晶圆厂封测厂对制造的包揽,芯片设计公司只要有功能正确的RTL代码,然后使用各种仿真、综合、时钟树、布局布线、规则检查、版图合并等EDA工具,加上第三方供应商提供的所需要的模拟IP,就可以生成版图,而版图交由晶圆厂后,晶圆厂将会保证制造出合规格的芯片,再经封测厂封装测试,最终返回到设计公司手中。
03数字集成电路设计的规格定义
纵观整个业界,数字电路的逻辑设计人才是非常多的,普遍各大理工院校都有数字电路的课程,看似写软件代码的RTL编写(事实是RTL要写得好必须有深厚的硬件思维)的技术掌握也相对较易。也就是说,数字芯片的前端设计所需要的人力资源是比较容易获取的。而另一方面,数字芯片的后端设计涉及的专业性相对强一些,而且中小规模的公司养一个后端团队相对来说性价比不高。但业界中众多的设计服务公司可以替设计公司完成部分甚至绝大部分的工作,这些工作主要是后端方面的,但也可以覆盖到前端阶段,视设计服务公司的能力而定。
这么看来,似乎就算整个设计团队只有一个人,只要能够定义出需要的芯片规格,有充足的资金去购买IP,请设计服务公司和投片(直接请设计服务公司用Turnkey模式也可以),就可以做出想要的数字芯片。实情也是这样,对一些功能比较确定的大规模数字芯片,自身不投入人力完全用设计服务Turnkey模式来做是可以的,例如当年的矿机芯片。
但是麻烦就出在“只要能够定义出需要的芯片规格”这句话上,对于数字集成电路,特别是规模庞大,功能齐全,性能强劲,单价高企的芯片来说,如何准确的定义出芯片的规格,而能够在芯片返回上市销售时获得市场客户的青睐,是相当关键且困难的事情。
数字集成电路的规格将会影响后续芯片设计实施过程的方方面面,例如接口功能的增减大概率会影响IP的采购;性能、功耗的高低会影响工艺的选择、影响系统设计;逻辑功能的多少会影响芯片的规模,从而影响芯片成本、进度。用“触一发而动全身”来形容大规模数字集成电路的规格修改实不为过。如果芯片的规格定义只是略微影响了研发进度、资金投入、芯片成本,而芯片面世后还能够符合市场的需求,能够大规模出货,那已经是万幸了。最担心的是投入大量资金、花费大量时间投片返回的芯片已经不符合届时的市场需求,就算功能性能跟规划定义的完全一致,却也无人问津。
综合来说,进行芯片规格定义就是一项多方面折衷的决策过程,需要从芯片的功能、性能、功耗、成本,芯片开发的周期、投入、供应链等多方面进行trade off,力图定义出能够大规模销售的芯片。尤其在近年半导体供应链的特殊情况下,对芯片设计公司定义芯片规格的能力又提出了更高的要求。就算是国产替代,芯片的规格定义若盲从国外龙头的规格而不考虑公司和产业上下游的实际情况,也有可能会产生负面的影响。芯片规格定义的影响对于数字集成电路来说特别显著,规模越大影响越大。
04数字集成电路设计的系统设计
在进行具体RTL编写之前的系统设计对于数字集成电路的设计来说也是相当关键的一个环节。目前各种中大规模的数字集成电路基本都会集成处理器核,无论是ARM的M系列/A系列,还是RISC-V,更或者是小众的MIPS等,都可以在处理器核上运行规模不一的软件。那么对于芯片规格定义中约定的某种功能,是用软件来实现还是用硬件来实现,或者是软硬结合来实现,再深入到软硬结合中哪些用软件,哪些用硬件来实现,都是系统设计中需要解决的一个关键问题。
用芯片的硬件来实现,性能高,但是会加大芯片的成本,而且一旦流片,就无法更改(花钱花时间当然可以更改);用软件在芯片的处理器上来实现,性能相对较低,但是不会增加实际的芯片成本,而且可以快速迭代修改。同样,芯片规格中定义的功能的软硬件划分也是一个折衷的过程,找到最适合的才是最重要的。因为系统设计并没有一个标准答案,要做得好就显得非常困难。
即使软硬件划分方面的系统设计做得使各方满意,落实到数字集成电路的硬件架构方面的系统设计也是经常让人烦恼的事情。例如仅仅看总线的系统设计,选择什么总线,用NoC还是用AXI,总线分多少级,各级各自有多少个端口,哪些模块可以放在同一个端口等等问题,都是很难下决心拍板的。
系统设计虽然只是写写文档,画画框图,但是会直接影响数字集成电路硬件的性能,规模,模块布局等方方面面(这里假设规格定义中约定的功能都是完整实现的),从而会引起后续IP选择、时序收敛、布局布线等芯片实现中流程的延迟,再远一点,还有可能会影响最终的封装设计。总体来看,系统设计也是一个对数字集成电路成败影响很大的关键因素。
05数字集成电路设计的IP选择
大规模数字集成电路的设计中或多或少都会采购第三方的IP来加速芯片的研发过程。一般来说,一些外围的接口,如DDR、PCIE、USB;核心的处理单元,如CPU核,GPU核,音视频codec;独立的模拟电路,如ADC/DAC,PLL,efuse/OTP;总线,如AXI/APB,NoC等等,都有众多供应商提供IP以供芯片设计公司使用。极端情况下,一款数字集成电路的硬件电路全部由外部采购的IP来组成也是没有问题的。
上述列举的IP中,核心处理单元IP、总线都是纯数字电路的IP,供应商有提供原始的RTL代码、加密的RTL代码、网表甚至版图等多种商业模式(总线提供版图的较罕见)。而上述列举的外围接口和模拟电路则为模拟电路类的IP(接口中控制器是数字电路,PHY是模拟电路),模拟电路类的IP基本都以版图的形式提供。
向第三方采购IP,然后用到自己设计的芯片中,等于将芯片的部分命运交由第三方来编写,对于IP的功能性能,只能选择相信供应商,一旦选好IP的供应商后,设计公司在这方面就再也没有退路了。如果是纯数字的IP,并且是以原始RTL代码的模式交付的话,在芯片设计公司的研发过程中,还可以去验证甚至去修改(需要有相应能力),而且纯数字IP的一个特点是跟流片的工艺不绑定,其物理实现是结合到全芯片的数字部分中的。反之,模拟类的IP是跟流片工艺直接绑定的,这使得芯片设计公司在IP的选择上又加大了难度。简单的说,对于芯片设计公司,数字IP的可控性比模拟IP要强很多,因此模拟IP特别是高端模拟IP的选择是非常关键的,如DDR这种核心接口IP,可以影响芯片的生死。
由于模拟IP与流片的工艺是绑定的,那么在实际的IP供应情况上,同一款功能性能的IP在不同工艺上的产品是不一样的IP产品,其供应商的数量、IP的价格、交付的周期、silicon proven的次数都是不一样的。极端情况下,模拟IP的选择会反过来影响工艺的选择,而这种情况必然会影响芯片的研发进度。
总体来说,虽然研发数字集成电路的IP采购是常规的花钱买技术买进度的行为,具有普遍性,但是对于芯片设计公司来说,每一款IP的供应商选择(尤其是模拟IP)也是对芯片成本、进度、性能的一次折衷考虑。
06数字集成电路设计的功能验证
个人认为另一个在数字集成电路的研发中需要关注的地方是数字逻辑的功能验证(RTL function verification,本文的验证特指这个流程)。众所周知芯片的数字逻辑设计,就是用RTL来描述寄存器、逻辑门等时序逻辑/组合逻辑的行为。而编写出来的RTL代码是否能够真实反映设计意图,一直是令设计公司头疼的问题。
理论上来说,用穷举的方式,可以在验证时把逻辑电路的各种工作场景统统列举,自然就知道逻辑电路是否有功能缺陷了。但是在实际操作层面,穷举这个方案是无法实现的。首先是仿真时间的问题,在真实世界中,芯片运行一秒钟其内部电路的翻转过程放到RTL阶段的仿真(还不考虑更慢的后仿真)中来说,可能需要几天到几年的仿真时间(视数字芯片规模而定)。尽管近年各大EDA工具厂商提供了数种硬件仿真加速器,能够大大加速RTL的验证过程,但相比较真实的芯片运行,要模拟几小时/几天的芯片的真实运行也可能要仿真到天荒地老。
另外,真实的芯片运行环境是无法完全预测的,力图穷举逻辑电路的所有工作场景本身就是不可能的事情。数字集成电路的工作过程就是芯片内部各个门电路、寄存器的0/1电平的翻转,当芯片的规模越来越大时,电路状态的排列组合数量是以几何级数的速率增长的,若要遍历,也要到天荒地老。因此真正的验证用例,是由对被验证的数字逻辑的功能非常熟悉的专业人员来规划设置的。
尽管设计公司再努力,数字集成电路在面向市场推出时,总有概率存在一些让芯片产生问题的逻辑缺陷,而验证工作的开展,就是尽*努力去降低这个概率。总而言之,数字集成电路的逻辑功能验证是直接影响芯片功能完备性的一个环节,而设计公司会在研发进度和缺陷风险中进行折衷。
小结
数字集成电路的设计制造的大部分流程都可以由EDA工具和晶圆厂封测厂保证,只要有充足的资金和时间。本文阐述的几点是个人认为在数字集成电路设计领域中一些需要关注的地方,并不是说其他设计流程不重要,而是其他的设计流程大都是“所见即所得”,也就是说流程的目标是否达成是清晰可见的,对前后的其他设计流程影响也不是特别大。在与创始团队交流技术时,本文也许能起一点帮助,后续将继续探讨模拟集成电路和其他一些集成电路的设计领域的关注点。