2023-02-06 14:22:00
芯片设计随着时间推移正在变得越来越复杂是业界人士的共识,但是究竟“复杂”体现在哪些方面,并且随着复杂度提升,还有哪些没有解决的问题,这就需要深入的考察和研究。上周,西门子EDA和Wilson Research完整公布了2022年两家公司一起合作的芯片设计报告,该报告的定量分析为我们提供了一些重要的洞见。在研究了该报告后,我们认为,芯片设计变得更复杂不仅仅体现在芯片晶体管规模变大上,还体现在SoC复杂度的提升上,而SoC复杂度提升会带来一系列的改变,包括设计方法学的变化,以及设计验证方面的新需求。这些新的变化和新需求将会驱动未来几年芯片设计的变革。
芯片复杂度的多维度提升
随着人工智能、智能汽车等新应用的出现,芯片复杂度正在慢慢提升。芯片复杂度的提升可以是一件多维度的事情,一方面,它可以体现在晶体管数量的增大上;另一方面,它也可以体现在芯片中复杂子系统的数量上。
从芯片的晶体管数的角度,西门子/Wilson的研究报告中,36%以上的芯片项目门数达到了千万级,而门数在百万级以下的项目仅占30%,因此从晶体管数的角度,今天芯片的复杂度确实已经大大提升。
但是晶体管数并非唯一考量。例如,在一些芯片中,片上内存(如缓存)可以占据相当大的门数,但是其整体设计复杂度未必会很高。因此,另一个芯片复杂度的观察角度是芯片子系统的数量。在SoC中,每一个芯片子系统都有其独特的功能,而且当芯片子系统数量更多时,如何让这些子系统能很好地工作在一起就是一件具有挑战性的事情。因此,芯片的子系统数量也是衡量整体芯片复杂度的一个重要指标。然而,芯片子系统的数量并不容易统计,而一个可以和这个数字挂钩的数据就是芯片上使用的处理器数量。通常,当芯片子系统的复杂度超过一定程度时,都会单独配有一个为它服务的嵌入式处理器。因此,统计一个芯片上嵌入式处理器的数量可以从一定程度上体现芯片上复杂系统的数量,从而体现芯片设计复杂度。
从芯片上嵌入式处理器数量的角度,首先我们可以看到今天74%的芯片拥有至少一个嵌入式处理器;而一半以上的芯片项目拥有两个以上的嵌入式处理器,15%的处理器有8个以上的嵌入式处理器。从这个角度来看,今天的芯片设计从系统角度也确实是越来越复杂。
综上所述,我们认为芯片设计的复杂度提升不仅仅体现在晶体管数量上,还体现在系统复杂度上。这些复杂度的提升是由于应用端的驱动(例如人工智能,智能驾驶,下一代智能设备等),在未来随着这些系统的进一步普及,我们预计会进一步推高芯片系统的复杂度,这也会给芯片设计行业带来相应的变化。
芯片系统复杂度正在改变芯片设计生态
芯片系统复杂度对于芯片设计生态的影响是多方位的。首先,如前所述,随着应用的驱动,芯片系统复杂度上升,整个芯片系统上复杂度较高的子系统数量上升,这也就让芯片上需要的嵌入式处理器数量提升。一方面,应用驱动了对于嵌入式处理器需求的提升;另一方面,如果有成本较低、设计较为灵活的嵌入式处理器,也将能进一步赋能这样的复杂度提升。
从这一方面来看,RISC-V可谓是切中了芯片设计复杂度提升的需求,未来可望会越来越多地得到应用,并且从另一个角度越来越多地满足复杂芯片系统对于嵌入式处理器的需求。RISC-V是一种开源处理器指令集,任何人有能够自由使用该指令集,并且在其基础上进一步定制满足自己需求的额外指令集。对于有实力的厂商来说,使用RISC-V指令集可以自主开发属于自己的处理器,并且使用在自己的产品中;而对于中小厂商,也可以选择SiFive等公司提供的RISC-V处理器IP来使用。目前,使用RISC-V作为对于计算性能要求不高的嵌入式处理器/MCU已经成为越来越多芯片的选择,其背后的主要原因就是基于RISC-V处理器的成本和灵活性。而西门子/Wilson的2022年芯片设计报告也进一步证实了这一观点:2022年有30%的芯片使用了RISC-V处理器,而这一数字在2020年仅为23%。在未来,我们预期RISC-V得到进一步广泛的应用,并且从另一方面也进一步赋能芯片系统复杂的提升。
除了嵌入式处理器之外,随着芯片系统复杂度提升,对于芯片系统设计的另一个改变就是如何把这些系统用高效而可靠的方法连接到一起,可以互相通信,互相访问内存等。这就需要越来越多地使用NoC(network-on-chip)。NoC将会越来越多地成为SoC系统上的基础IP,来确保芯片系统设计能更加高效地拓展其复杂度和设计规模。根据市场研究公司Brainy Insights的研究,未来十年内NoC的年复合增长率可达7.9%,因此我们也预期会在未来越来越多的大规模高复杂度芯片中看到NoC的使用。
因此,我们认为从设计IP角度,新的嵌入式处理器(RISC-V)和片上互连(NoC)将会成为重要的新看点,来驱动和赋能芯片系统复杂度进一步提升。
芯片验证将成为重中之重
除了新的设计IP之外,复杂芯片的验证将会成为另一个挑战。如前所述,复杂芯片包括了越来越多的子系统,首先每一个子系统的验证随着其复杂度的提升会越来越具有挑战性。其次,多个复杂子系统的协同工作和验证将会成为另一个芯片验证的难点。最后,芯片系统中每个子系统存在异质性,例如,高性能模拟/混合信号模块(例如内存接口等)越来越多地使用在复杂芯片系统中,这也给整体芯片系统的验证带来了挑战,因为不同的子系统的验证方法并不一致。
芯片验证首先需要提高效率,降低需要的时间。根据西门子/Wilson的报告,2022年的芯片项目中,高达三分之二的项目没能按照原定的时间交付,这也说明了目前的芯片验证系统对于复杂芯片尚需更多效率提升。
除此之外,芯片首次流片成功的比例也在下降,在2022年高达76%的项目需要两次或更多的流片才能实现设计目标。在导致芯片需要多次流片的原因中,首要原因是逻辑功能问题,而另一个值得注意的原因是模拟模块出现问题:该项目在2020年和2022年占到从几年前的20%一跃到了40%,这也说明模拟设计相关的验证,以及模拟模块和其他模块的协同验证将会成为未来复杂芯片验证领域非常重要的尚需解决的问题。
展望未来,复杂芯片的验证首先需要更加高效率的验证流程,例如使用更加高效的testbench描述语言(使用C++/Python等),从而保证芯片项目能定期交付。在效率之外,由于逻辑功能仍然是芯片流片失败的首要问题,而随着芯片系统复杂度提升这方面的问题会越来越大,因此对于可靠的验证方式(例如emulator)提出了要求,emulator需要能进一步降低成本,并且提升对于复杂系统的支持,从而确保复杂芯片系统的质量。最后,模拟验证预计会成为未来复杂芯片系统中的关键一环,这包括了模拟验证,以及模拟和数字系统的协同验证(例如模拟系统建模放到数字系统中验证等),这对于新验证方法论的采用和新的EDA系统都提出了新的需求,预计会成为未来几年验证领域的另一个重头戏。
本文转载自微信公众号宽禁带半导体技术创新联盟,不做商业用途,只作新闻参考