一颗芯片最终做到终端产品上,一般需要经过芯片设计、晶圆制造、晶圆测试、封装、成品测试、板级封装等这些环节。在整个价值链中,芯片公司需要主导的环节主要是芯片设计和测试,其余的环节都可以由相应的partner来主导或者完成。
根据电子系统故障检测中的十倍法则:若芯片测试未能发现芯片设计制造的相关故障问题,那么在电路板(PCB)级别发现故障的成本则会升至芯片级别的十倍,以此类推成本以指数形式增长。
此外,基于以下原因:
在整个设计过程中,需要一直考虑测试相关的问题。
下图表示的是设计公司在进行一个新的项目的时候的一般流程,从市场需求出发,到产品tape out进行制造,包含了系统设计、逻辑设计、电路设计、物理设计,到最后开始投入制造。
最下面一栏标注了各个设计环节中对于测试的相关考虑,从测试架构、测试逻辑设计、测试模式产生、到各种噪声/延迟/失效模式综合、进而产生测试pattern,最后在制造完成后进行测试,对测试数据进行分析,从而分析失效模式,验证研发。
所以,测试本身就是设计,这个是需要在最初就设计好了的,对于设计公司来说,测试至关重要,不亚于电路设计本身。
而半导体测试作为半导体设计、生产、封装、测试流程中的重要步骤,是使用特定器具,通过对待检器件DUT(Device Under Test)的检测,区别缺陷、验证器件是否符合设计目标分离好品与坏品的过程。半导体测试可以确保生产芯片达到要求良率,降低成本浪费,同时提供有效测试数据,改善设计与制造。
半导体测试基本工作机制为:编写程序 ->产生测试向量 -> 施加给DUT -> 产生输出反馈 -> 与编程值进行对比 -> 得出测试结果。对测试机进行编写程序,从而使得测试机产生任何类型的信号,多个信号一起组成测试模式或测试向量,在时间轴的某一点上向DUT施加一个测试向量,将DUT产生的输出反馈输入测试机的仪器中测量其参数,把测量结果与存储在测试机中的“编程值”进行比较,如果测量结果在可接受公差范围内匹配测试机中的“编程值”,那么这颗DUT就会被认为是好品,反之则是坏品,按照其失效的种类进行记录。
半导体测试环节不仅是封装后的成品测试(FT),其涉及到整个芯片生产流程,以保证芯片符合要求。IC 生产流程中所经历的测试主要分为设计验证、工艺监控测试、晶圆测试、成品测试、可靠性测试以及用户测试。
晶圆测试(wafer test / CP-chip probering),指的是在晶圆制造之后、封装之前,在未进行划分封装的整片晶圆上,通过探针将裸露的芯片管脚和测试机相连,进行的芯片测试步骤。
CP测试主要目的是对晶粒电性能参数进行测试,保持生产质量以及合格率,提高良率、降低后续封测成本。同时,由于封装时将芯片管脚封在内部,导致部分功能无法测试,所以只能在CP中测试。此外,部分厂商会根据CP测试结果划分芯片级别,投入不同市场。
主要需要使用设备为探针机和测试机。其中,探针机主要由Prober (探针台)和Prober Card (探针卡)组成:探针台主要作用是承裁晶圆,并不断移送DUT,使得探针卡上的探针可以和芯片管脚连接,最终记录测试结果;探针卡是测试机和晶圆之间的连接介质,主要材质为铸铜或镀铜,一般具有高强度、导电性能良好及不易氧化等特性,由于DUT的独特性,所以不同批次的芯片需要对应不同型号的探针卡。
裸DIE规则的布满整个Wafer,无论哪片Wafer,每颗DIE都有固定的位置,芯片管脚的位置也就固定。这些位置坐标和间距都信息在芯片投产前已经确定,制作针卡需要这些参数。除此之外,针卡还需要确定同测数(Site)。增加同测数可以节约测试机时成本,但是受限于测试机台资源,同测数有上限,例如32/16/8/4。
各仪器协作方式:探针台将晶圆逐片自动传送至测试位置,芯片的pad点通过探针、专用连接线与测试机的功能模块进行连接。测试机对芯片施加输入信号并采集输出信号,判断芯片功能和性能在不同工作条件下是否达到设计规范要求,测试结果通过通信接口传送给探台,探针台据此对芯片进行打点标记,形成晶圆的Map。
测试人员需要在芯片设计之初就准备好Test Plan,根据各自芯片的规格参数规划好测试内容和测试方法。
Test Program控制整个机台的测试过程。不同的测试机有不同的测试软件系统,对应的测试程序也有不同的格式。通常工程师提供WGL/STIL/VCD等格式的文件,再转换成测试机需要的文件格式,并增加其他测试程序。
Wafer由Foundry出厂转运至测试厂,ATE软硬件就绪后就可以开始进行调试了。根据Test Plan,Pattern(测试向量)被分作不同的BIN,从而定位测试错误的位置。调试时还可以在系统上直接看到一个Pattern中错误的Cycle位置,工程师根据这些错误信息进行debug,修改Pattern和测试程序,逐个清理,直到所有BIN都PASS。
同测的多Site全部PASS,Loop多轮后,便可以在整片Wafer上Try Run。此时工程师还要调试探针力度、清理探针周期等参数,确保整片Wafer上每一次Touchdown都可以测试稳定。
通过对整片Wafer的测试,得到的结果通常会生成一个Wafer Map文件,同时数据生成一个data log,例如STD文件。Wafer Map主要包含良率、测试时间、各Bin的错误数 和 Die位置等数据;data log则是具体的测试结果.工程师通过分析这些芯片测试数据,决定是否进入量产并进入下一阶段流程。
进入量产阶段后,根据大量测试的统计数据,可以进行一些调整以进一步优化测试流程。
量产CP测试的结果需要交给后续封装厂使用。通常是一个含有分BIN信息的Map文件,封装厂根据Map文件挑选好品封装,剔除坏品,还可以保留客户选择的特殊BIN别。
CP测试成本分为固定成本和可变成本。其中,固定成本主要包含DFT开发成本(减小DFT硬件逻辑占用面积可以降低),Prober card制造成本(包含公板和专板,探针材料和探针数会影响成本)以及Test Program 制作和调试(开发成本,调试机时成本以及对应的Wafer损耗成本)。可变成本主要对应测试时间成本,主要考虑提高DFT测试效率(减少测试时间,提高覆盖率),增加同测数以及尽可能提高测试程序Test Program效率(合理安排测试程序减少等待时长)。
成品测试(Final Test / 封装测试),是芯片进入系统之前的最终检测,发生在封装完成之后。成品测试是对封装后的芯片进行功能和电参数性能测试,保证出厂的每颗集成电路的功能和性能指标能够达到设计规范标准。
成品测试目前主要采取两种方式:功能测试(Functional Test)和结构测试(Structural Test) 。其中,功能测试方法的基本原理是“黑箱理论“,在测试中,将DUT看做待测黑箱,不需要进一步了解芯片内部具体情况,只需要将一系列的测试向量通过测试机试加到被测芯片的输入管脚上,然后运行测试,被测芯片就会输出相应的测试响应,之后再将实际响应和期望的正确响应进行对比,最后分析和推测得出“黑箱”是否正常工作。功能测试实质上是针对集成电路不同功能进行逐个测试的办法,往往需要大量数据。例如,一个10输入的与门,需要2^10个测试向量的输入。由于集成电路设计规模的不断扩张,对应测试的复杂度也呈指数级增长,功能测试法测试向量产生时间长、生成难度较大、测试成本高昂等缺点逐步显现。
与功能测试相对的是结构测试(“白盒”测试)。结构测试是在对于电路结构(门的类型、连线、 网表等)清楚的基础上,通过芯片的输出管脚来观测内部信号的状态。由于清楚电路结构,结构测试可以开发各种测试产生算法,自动对电路产生相应的测试向量, 并将测试反馈和自动生成的期望响应对比,有效评估测试质量。结构测试一般基于一定的故障模型(Fault Model),常见的故障模型包括:Stuck At Faults, Stuck Open(off)/ Short(on) Faults, delay faults, Bridge faults等。基于固定型故障(Stuck At Faults)的测试已经发展的较为成熟,被广泛接受。可测试型设计技术(Design For Test),以原有的结构测试为基础,进一步将测试问题提前,在设计时考虑测试途径,大大降低测试难度,测试向量的产生和测试的运行都变得相对简单,有效降低测试成本。
成品测试主要使用仪器为测试机(Tester)和分选机(Handler)。其中,分选机主要作用是机械手臂,自动夹取待测芯片,放在可监测区域,等到测试机完成测试后,根据测试结果,将芯片放置到对应区域,如好品区、坏品区等。与晶圆测试相比,probe card则换成了load board,其作用类似,同时,load board上需要加上一个器件——Socket,用来放置package device。
分选机将被测芯片逐个自动传送至测试工位,被测芯片的引脚通过测试工位上的基座、专用连接线与测试机的功能模块进行连接,测试机对芯片施加输入信号并采集输出信号, 判断芯片功能和性能在不同工作条件下是否达到设计规范要求。测试结果通过通信接口传送给分选机,分选机据此对被测芯片进行标记、分选、收料或编带。
在产品测试开发过程中,通常有三种规格书,设计规格书、测试规格书、产品规格书。
测试计划书,即test plan,需要仔细研究产品规格书,根据产品规格书来书写测试计划书,具体的需要包含下面这些信息:
以包含了eflash、AD/DA、 LDO/BUCK、RF等模块的SOC为例,下面是大概的项目测试流程:
其中: