设计 | 仿真 | 生产 的数据一致性
对于现代电子产品来说,从精妙的构思到成为实际的产品,要经过成千上万个步骤,也需要不同团队之间的合作,根据产品的复杂程度不同,团队的大小也不同,小到几个人,大到成千上万人皆有可能。
前面的文章中我们讲过,电子系统的集成主要分为三个层次,芯片、封装、PCB。
IC传统封装PCB
IC先进封装PCB
今天,我们以电子产品为例,结合这三个层次,对产品研发过程中的数据一致性做一些分析和探讨。现代电子产品的研发过程一般可以分为三个阶段:设计、仿真、生产,如下图所示。设计就是将设计者的思想变成可以生产的图形的过程,仿真则是验证这些图形是否能够满足设计要求并对此进行优化,生产则是将图形制造出来并组合到一起形成实物,实现设计的目的。以芯片为例,分为设计、仿真、验证、生产等环节,设计解决的是模型的构建,也就是从0到1(从无到有)的问题,仿真和验证对模型进行确认和优化,也就确认设计中的1到底是等于1、大于1还是小于1的问题,并对相应的问题进行修正,从而以提高芯片一版成功的几率。芯片设计规模越大,工艺节点越小,对流片(Tape Out)成功的要求也越高,因此,对仿真验证环节的要求也会更高。由于篇幅关系,对于芯片这里我们就不展开讨论,感兴趣的读者可参阅前期文章《芯片自主可控深度解析》,这篇文章对芯片的整个流程有较为详细的描述。
设计 | 仿真 | 生产 的数据一致性
对于封装和PCB来说,其设计、仿真、生产的流程基本上是一致的,尤其当封装进化为SiP和先进封装之后,二者都属于电子集成技术,只是实现的层次不同。封装中的设计单元是裸芯片Chip或者Chiplet,而PCB中的设计单元是封装好的芯片,是前者集成的产出物。
因此,我们下面的讨论中,并不专门区分封装和PCB,而统一进行设计、仿真、生产的论述。
早先的产品研发,仿真环节相对比较淡化,设计完成后往往直接进行生产,然后再进行调试,修改,再生产,整个产品研发周期比较长,需要经过多次重复才能达到预期的目的。
随着设计复杂程度的提高,投产一次的成本也日益高涨,设计-->生产的模式已经无法满足产品的需求。生产之前,没有经过充分且完备的仿真分析,几乎是不可能做出成功的产品。
这就需要在设计和生产环节之间加入仿真环节,并且仿真的重要性日益提高。随着仿真技术的发展和日益成熟,出现了一些新的概念和名词,例如数字化样机,数字化双胞胎、数字孪生等概念,二者从本质上来讲都属于仿真的范畴。由此也可以看出业界对仿真环节的重视。
设计最终成为产品,生产环节至关重要,设计的目的就是为了生产,因此,从设计到生产的数据传递久经考验,是比较成熟稳定的,例如芯片从设计到生产常用的数据格式为GDSII,PCB从设计到生产常用的数据格式为Gerber,封装则较为特殊,从早先传统封装的DXF到SiP常用的Gerber再到先进封装常用的GDSII。
设计 | 仿真 | 生产 的数据一致性
对于从设计到仿真,其数据的传输方式则更为灵活和多样化,但其成熟度要稍逊于设计到生产的数据传递。
在仿真中,我们将需要仿真的元素分为两大类:Active 有源类,主要包括各类元器件,Passive 无源类,主要包括互连模型和RLC等无源器件。对于仿真来说,最重要的就是模型的构建。模型可分为器件模型(Devices)和互连模型(Interconnections),器件模型也被称为主动模型(Active Model),互连模型也被称为被动模型(Passive Model),RLC一般也被定义在互连模型中。
严格来说,从芯片到PCB的多级集成中,真正的器件模型只存在于第一个层次的集成中,即芯片中的晶体管模型,其他层次的集成如Interposer, Package、PCB中均为互连模型,如下图所示。
同时,有一点非常重要,就是:器件模型+互连模型=>新的器件模型,是对本层次的模型化描述,并作为模型应用在下一个层次的仿真中。
例如在芯片内部,用器件模型来描述晶体管,其他的互连线和RLC都被视为互连模型;到了封装层次,芯片整体作为一个器件模型,封装中的互连线,平面层,RLC等被视为互连模型;到了PCB层次,封装好的SiP或先进封装(里面包含多块芯片和它们之间的互连)作为器件模型,PCB上的互连线,平面层,RLC等被视为互连模型。
从下图中,我们可以看出,芯片中的晶体管和互连形成第一级别的模型,再加上Interposer上的互连和Bump形成第二级别的模型,再加上封装基板上的互连和BGA形成第三级别的模型。
不同级别的分类也可以根据实际需求进行灵活调整,例如将Interposer上的互连和封装基板的互连统一处理,形成芯片和封装两级模型。
从上面的描述,针对封装和PCB,我们可以得出如下结论:器件模型来源于上一层次的集成,在本层的集成主要是针对互连模型。
下面就是对典型封装互连模型描述的实例,分为基板上的布线Layout和键合线Bond wire,是通过RLC参数对不同段的Layout或者Bond wire进行描述。
在封装和PCB的原理图和版图设计中,主要的任务就是进行正确的互连,原理图根据器件的功能对其逻辑互连关系进行定义,并传递到版图,版图依此是对物理互连分层绘制,并通过过孔或者TSV将各层连接起来。
生产则是将版图的每一个物理层制造出来并组合到一起,使器件的功能正常运行并实现设计的目标,为了保证这个目标顺利实现,在生产之前需要进行充分的仿真。
设计 | 仿真 | 生产 的数据一致性
从设计数据到仿真数据,中间需要经过数据的传递和转换。
对于版图来说,需要传递的数据包括版图层叠结构、每一层的材料、厚度、物理参数等,随着设计复杂程度的提高,需要传递的数据愈发复杂。
例如,对于刚柔结合板 Rigid-Flex,由于要进行多种弯曲,不同的位置厚度和材料会有所不同,因此整个版图会有会有多个层叠结构和多个区域,称为Multi-stackup和Multi-zone再加上Multi-bend, 设计数据比较复杂。
对于Interposer,其互连数量可能超过10万+,巨大的数据量对设计和仿真工具都提出了新的要求,有时候读入数据甚至需要数小时甚至更长的时间,其仿真过程更是需要数天甚至数周的时间。作为设计工具的下游,仿真工具通常对设计工具的数据有较好的兼容性,多数仿真工具都可以直接打开设计文件,并将其转换成自有的格式。
然而,随着设计的日益复杂,能够正确识别设计数据就成为仿真工具的重大挑战,例如,设计工具可以准确地描述芯片堆叠、腔体、键合线,导入仿真工具后,不同的元素可能会出现错位,设计工具可以准确地描述多层叠结构、多区域、多个弯曲,导入仿真工具后,层叠、区域、弯曲均可能出现偏差,这些错位和偏差,轻则导致仿真精确度下降,严重则导致无法仿真。
从二维空间升级到三维空间,对设计、仿真和生产都带了挑战。
早先的EDA设计工具基本都是平面化的,从顶视图的角度去浏览每一层信息,现在设计工具逐渐走向3D化。就目前来说EDA工具的设计界面还是2D的,通常会有一个3D的浏览窗口,可以查看详细的3D信息。
仿真工具的挑战主要来源于设计工具数据的复杂化,因为设计数据变成了3D的,仿真工具需要正确识别这些数据并正确解析,包括3D结构、网络、端口、材料信息等都需要准确地从设计工具传递到仿真工具,否则,就需要在仿真工具中做大量的工作补充或者修正这些信息,才能做到仿真数据和设计数据的一致性。
同时,仿真算法也需要更新或者重新开发,以适应新的复杂的3D设计数据。专注于电路仿真的软件通常3D功能比较弱,专注于电磁场仿真的软件3D功能较强,但对数据的规模和复杂度有一定限制,如果设计特别复杂,数据规模大,复杂度高,设计数据中可能包含了2D2D+2.5D3D4D等多种集成技术,一般仿真工具很难正确导入,或者需要花费很长的时间解析和导入。
目前,很多传统仿真工具还无法正确识别设计中的各种三维元素,如多级芯片堆叠,复杂多层键合线,2.5D和3D硅通孔,复杂基板弯曲等,无法识别正确的设计模型,更无法进行精确的仿真。因此,针对目前复杂的集成技术,仿真工具还有很大的发展空间,这也给新的仿真工具提供了机会。设计构建了模型,仿真对模型进行了验证和优化,使之更加准确,从在生产环节中,将模型具体化,做成产品。如果设计、仿真、生产能够做到数据的一致性,则可以在最大程度上保证产品一版成功。这也需要设计人员、仿真人员,生产人员协同地工作和努力。