我的项目涵盖了半导体晶圆溶液涂覆工艺及其参数优化。目标是提高涂覆厚度的一致性,并最大限度地降低厚度标准偏差,从而在晶圆整个表面实现更均匀的厚度测量。JMP 中使用的工具包括 DOE(实验设计)、最小二乘拟合分析以及包含噪声/标准偏差模拟器的参数分析器,以找到最佳参数设置。
我是Nicholas,美敦力公司的一名工程师,我经常使用JMP软件。本次演讲,我将重点介绍自旋编码及其相关技术,以及我们如何利用JMP构建实验设计(DOE),并构建拟合模型,以了解如何使用轮廓仪,以及如何优化晶圆涂层的厚度,使其达到目标厚度。
正如我刚才所说,作为引言,本次演示我们将使用 JMP 软件来分析半导体编码。这项技术的工作原理,正如您在左上角的示意图中所看到的,是将一种溶液集中涂覆到晶圆上。晶圆放置在一个旋转的基座上,这种旋转方式被称为旋涂。我们设置了不同的程序,使旋转器以特定的速度运行特定的时间。
通常我们的操作流程是,先进行一个低速初始步骤,将溶液均匀涂抹在整个表面上。然后,我们可以提高速度并延长持续时间,根据设定的速度,我们可以控制涂层的厚度。
本次实验的目的,也是我们希望在实验设计 (DOE) 中定义的,是利用实验设计来针对不同的厚度,了解不同旋涂速度和分配体积的工艺窗口如何影响我们的编码层,包括整个晶圆表面的均匀性和输出厚度。
您可以看到右侧这里列出了我们输入的不同因素。我们将进行一个六因素实验设计(DOE)。我们会设定一些低值和高值,稍后在演示中我会详细讲解这些值以及它们在实验设计中的实际应用。但本质上,我们尝试使用这些窗口构建模型,力求获得较高的R平方值,R平方值可以反映模型预测异常值的有效性,然后利用R平方值来调整和优化某些输出参数,例如厚度,并尽可能降低表面或均匀性方面的差异。
等演示开始后,我们会更深入地讲解这些内容。但您可以看到左侧的图表,它大致展示了涂层厚度的大致情况。我们尝试使用等高线图来尽可能地平滑涂层厚度。我们可以看到表面上可能存在的高点或低点。接下来,我们进入拟合模型,这基本上就是我们将所有来自实验设计(DOE)的数据绘制成图表的内容。我认为这里存在一些堆积,所以才会出现较大的范围。此外,我们制造的晶圆中也存在一些异常值。我会在下一张幻灯片中详细介绍这些异常值。
但实际上,JMP 会根据这些执行和分析结果生成一个轮廓分析器,然后您可以设置期望值,例如,我希望厚度达到 10 微米或 10,000 纳米,就像您在这里看到的那样。此外,我们还需要调整一些因素,以最大限度地减少晶圆表面的标准偏差。稍后我会更详细地讲解这一点。
这里简单概述一下实验设计(DOE)。把这六个因素的低值和高值加起来,我们会生成一个包含所有实验运行结果的表格。这是我们进行的运行和执行过程。实际上,我现在可能要开始演示了,打开JMP。稍等一下。如果我要一步步讲解如何进行DOE,我们通常会……稍等片刻。经典的……不,抱歉。自定义DOE。它就在顶部。
这个参数会弹出一个表格,您可以在其中输入输出和输入。在这个版本中,我们设定了厚度目标。我添加的是一个针对输出的响应。我希望匹配特定的厚度。这就是我们的响应名称:厚度,匹配目标。我们的下限是 8000 纳米,上限是 12000 纳米。这些是我们涂层深度的单位(以纳米为单位)。我可以添加一个 M 来表示单位。
接下来,我们还要考察均匀性。我会查看晶圆厚度测量值的标准偏差,我们称之为均匀性。我们希望尽可能降低这个偏差。标准偏差越大,就意味着晶圆厚度变化越大。目前我们还没有一个具体的单位来衡量这种差异。
现在我们来看看这些因素。对我们来说,我们有六个不同的连续因素。包括点胶量、点胶旋转速度。我们会一边旋转晶圆一边进行点胶。我们会一边旋转晶圆一边将溶液均匀地点在晶圆中心。我们有第一次旋转(速度)、第二次旋转(时间)、第二次旋转(速度)和第二次旋转(时间)。这一步包含三个步骤。首先是点胶、旋转,也就是第一次旋转,我们之前讨论过如何将溶液均匀地涂抹在晶圆上。然后是第二次旋转,这是我们真正关注和着重控制的……哦,不,抱歉。我道歉。
点胶速度是指溶液在晶圆上的点胶或分散速度。第一次旋转是我们原本的目标,我们会加快速度,力求达到特定的厚度,这对控制厚度至关重要。第二次旋转,也就是最后几秒钟的快速加速,主要是为了去除晶圆边缘的残留溶液。实际上,就是快速甩动晶圆,去除边缘多余的溶液。
这次我尽量快速地讲解一下。我们先用 8.5 毫升到 10.5 毫升的溶液进行搅拌。转速从 100 转/分钟到 400 转/分钟不等,目的是让溶液均匀分布。然后,我们把转速提高到 500 到 700 转/分钟,以达到所需的厚度。搅拌过程中,溶液会甩出一些,使其变稀。这个过程需要 40 到 60 秒。
最后,我们测试了极快的转速。至少在这次测试开始之前,我们并不知道应该使用什么转速。我们尝试了 1200 到 2400 RPM 的较大范围,但这仅仅是在两秒或六秒的时间间隔内进行的。我们设定的工艺窗口相当大。我们预计在一些极端情况下会产生非常显著的结果。但基本上,这就是我们设置实验设计、X 轴和 Y 轴的方式。我点击继续。
我会快速地把单位换算进去。我们会用每秒转数和时间来表示速度,时间单位是……抱歉,应该是每分钟转数,时间单位是秒。体积单位是毫升。同样,速度单位是每分钟转数。通常我会添加一个二级交互项,以增强模型的稳健性。这样也能更好地理解各个变量之间的相互作用。你可以继续添加三级和四级交互项,但这有点过于复杂了。我们这次的模型不需要那么多。
在我们的构建过程中,最终我们选择了 24 片晶圆。JMP 的优点在于它会告诉你所需的最小晶圆数量以及默认值。在半导体行业,我们使用装载晶圆的卡盒,每个卡盒一次最多可以装 24 片晶圆。我们最终选择的 24 片晶圆数量介于默认最小值和 24 片之间。这完全符合我们设备的装载方式。我可以进行设置。我们将使用 24 片晶圆完成整个实验设计 (DOE),然后您就可以生成设计了。
JMP 会很快完成计算,并生成一个包含所有参数和结果列的表格。您可以看到,表格中包含运行顺序(1-24)以及我们设置的每个参数。首先,我们会运行第一个晶圆,并希望运行每个控制参数;然后,同样地,我们会对所有 24 个晶圆重复此操作。接下来,您还可以查看功耗分析,了解该工艺的强度。功耗在 60 左右,虽然还可以更高一些,但对于我们此次初始工艺窗口分析的需求来说已经足够了。
我要点击“生成表格”。运行顺序是随机的,然后就会生成这个表格。表格里包含了所有因子,就像上一个表格里显示的那样,然后它会给出厚度输出和标准差这两个选项。我不小心添加了第三个因子,我之前没注意到。我们暂时可以忽略它。但厚度和标准差都是输出。
如果我使用我们已经运行过的数据,结果如下。我们有晶圆的平均厚度以及这些晶圆的标准偏差。现在,这只是该数据集的平均值。我们实际采集到的数据点大约是每片晶圆 1400 个。数量相当多。我可以在这里展示一个包含所有数据点的大型表格。
我的设置是这样的:我们这里有六个控制因子,晶圆的实际厚度数据点作为晶圆的 X 轴和 Y 轴,然后是平均输出和这些晶圆的标准偏差。接下来,我通常喜欢把它看作是 PGA 卷材。实用、图形化、分析性兼具。
首先,我们来实际操作一下,看看所有的数据集。如果我给你们展示一下我们表面轮廓的等高线图(之前幻灯片里已经展示过了),那么每个数据点都是一个XY坐标测量值,用来测量厚度。我们在整个晶圆上采集了大量数据,但我们知道,在一些边缘点附近存在一些非关键区域。这些区域没有需要从晶圆上切除的关键组件。我们可以排除这些数据点。
我已经检查并排除并隐藏了一些非关键数据点。一个简单的方法是,当系统首次显示数据时,您可以点击这个小小的标题图表,它会显示每个列的汇总表。接下来,您需要检查所有晶圆 ID。您可以查看是否存在任何异常值。这有助于您清理数据,找出已知的异常值或缺陷。
接下来,我们会进入图形界面。我会选择“图形”>“图形生成器”。在这里,我们会查看整个晶圆的表面轮廓。我们有了XY坐标,然后我会查看厚度。我会将每个数据点的颜色设置为厚度,然后将其更改为等高线。现在,它正在查看我们所有的晶圆。我会在窗口中输入晶圆ID,这样就能看到所有已生产的晶圆,从1到24。我可以在这里看到它们的所有分类。
从这个实验设计(DOE)图中可以看出,厚度范围相当大。根据目标控制因素的设置,厚度从 2000 纳米到 13000 纳米不等。但我们真正关注的是确定不均匀性最明显的区域。可以看到,晶圆中心部分的厚度明显较厚,而外围部分则薄得多。这可能意味着该区域的均匀性不太好。
另一种测试方法是,我们可以进入“分析”菜单,我记得是在“分析”菜单下。我要创建一个单独的图表。我得记住我把它放在哪里了。找到了。“控制图生成器”。有了它,我们可以把厚度作为Y轴,还可以设置晶圆ID。哦,抱歉,不是晶圆ID。好吧,那就这样吧。然后我要缩小范围,大概……试试10000或者11000。零。好的,我需要把它调高一点。大概15000吧。因为我记得我们最大的晶圆尺寸是13。
您可以看到,每片晶圆之间的数据都是按批次划分的,您可以看到数据点的分布情况……有些晶圆的均匀性很差,有些则稍好一些。为了节省时间,我打算调出一张之前已经按晶圆划分的数据图。这张图是我之前做的,等它加载完毕后就可以看了。我们还有单独的数据图表。数据也是按晶圆划分的,您可以看到每片晶圆的均值、平均值以及上下控制限。
如果你把这个和……对比一下,我试着调整一下,让它在屏幕上显示得更合适。我们有这个,然后我还要调出控制图。哎呀,搞错了。如果我们看一下这些晶圆,比如这个晶圆,看起来它的横向均匀性很差。我可以在这张图表上高亮显示这些数据点。这样一来,我就可以看到……我以为它会显示在这里。
但通常情况下,选中这些晶圆后,就会显示上面的数据点。可能是因为视图仍然处于缩小状态,所以你看不到。但我这里有列表。这是 09-D3 晶圆。你可以看到,这片 09-D3 晶圆的中心厚度非常大,而边缘则相对较薄。另一片晶圆 11-D3 也出现了一些奇怪的数据点。这里有一些异常值,看起来像是离群值。我们目前还不能完全确定它们出现的原因。它们并不在我排除的数据点列表中。
但从这些数据来看,我认为是 11-D3。如果我要深入研究一下……抱歉,电脑有点儿出问题了。我们把画面放大一点儿。看起来,如果你看一下 11-D3,会发现一些数据点,其中一些数值偏高,导致晶圆表面出现问题。除此之外,中间范围的数据看起来都差不多。我们可以从这里入手,调查一下为什么会出现这些异常数据点?我们可以找到根本原因。
JMP的图形可视化功能很棒,这一点显而易见。它可以帮助我们进行根本原因分析,比如,是什么原因造成的?测量时表面是否有FM或其他杂物?或者是否有其他因素干扰了这些数据点?
之后,一旦我们获得了良好的图形分析结果,就可以着手构建拟合模型,以了解这些数据点之间的拟合程度。如果要分析拟合模型,就可以使用数据。输出值是厚度。将其作为 Y 轴,然后输入标准差。通过这种方式,我们可以找到创建函数的方法,该函数可以根据控制变量并针对特定输出值进行调整。这本质上就是我们使用拟合模型所做的工作。
然后,我们就可以打开分析器,调整不同的控制因子,看看预期输出是什么。厚度和标准差是输出值。这就是我们的六个控制因子。我把它们加进去。实际上,我要……好的,没问题。我们运行一下。我通常会用标准租赁方格法运行。标准租赁方格法能很好地拟合所有控制因子,从而达到预期的输出值。我们运行一下。
这就是当时出现的结果。正如你所看到的,我们所有的数据都会对输出结果产生显著影响。这也在预料之中。我们设定了一个相当宽泛的处理范围。本质上,我们不能为了简化方程式而移除任何因素。我们只能保留所有因素并将它们纳入计算。
如果向下滚动到拟合摘要,我们可以看到 R² 为 0.909。这是一个很高的 R² 值,然后是均方根误差为 502。我们还可以添加交互作用,因为我们在创建实验设计 (DOE) 时也包含了它。我打算重新开始,再添加一下。我们将建立一个拟合模型,包含厚度、标准差以及六个控制因子。把它们都添加进去。哎呀,我又加错了。我把它们删掉。如果我选中了这些因子,就可以使用宏命令进行阶数因子分析。我这里加了一个二阶因子,这就是我们添加第二个交互作用的方式。
现在,如果我运行一下,我们会把厚度和标准差添加到输出结果中。我让它运行一下。好的,列表变长了。这里也包含了所有的交互作用。同样,所有变量都显著,所以我无法简化这个方程。但是,如果你查看拟合优度,我们现在得到了 0.97 或 0.965。我们得到了一个更强的估计器来预测这些数据点。
我可以点击这里的小红按钮,然后我们就可以添加分析器了。我在这里进行分析。然后我会把它弹出到底部。我们可以关闭一些选项来简化界面。这是摘要。我想我应该先讲这个。我们有厚度的响应……或者说,我们厚度的响应,其中 r² 为 0.967。我们预测厚度的能力非常强。然后我们还有标准差的 r²,也是 0.965。预测标准差的相关性也非常强。
我想我们把它放在这里。哦,这里应该有个地方放它。好吧,没事了。我想我们现在应该专注于这个分析器。看看我能不能把这个窗口调整得更合适一些。对于预测分析器,您可以看到,X 轴是控制因子,Y 轴是厚度和标准差,也就是我们的输出。为此,我希望能够设置这个分析器来预测不同的期望值。
接下来,你需要进入优化和期望值设置。我们启用期望值函数。这样就会添加一个期望值列。当数值达到 1 时,就表示它是最理想的。你为 X 值设置的任何内容都会与这些目标值高度相关。但在执行此操作之前,你必须先设置你的期望值。
对于厚度,我希望达到目标值。对于这个,你把中间值设为目标值。比如,我这里设为 9000。我们取个整数,比如 10000 作为目标值,然后 12000 是最大值,20000 是最小值。我们希望它在这个范围内。这样就差不多了。对于标准差,我们只需要尽量减小它。
因为我们只是在最小化,也就是追求较低的值,所以我就保持这些数值不变。现在你可以看到,就期望值而言,按照目前的输出设置,厚度值大约是 8.3。你可以看到,这个期望值并没有达到我们想要的水平。标准差有点高。现在你已经设置好了期望值,你可以让 JMP 进行最大化操作。
它会根据你输入的参数进行调整,以获得最佳结果。为了达到接近 10,000 纳米的厚度,并尽可能减小标准偏差,我们需要设置以下控制参数。有些参数可能会略有偏差,所以我可以将其调整到 12,000。然后,我可以将其调整到 550 左右。这些都是可以输入到我们设备中的数值。
为了更深入地探讨这个问题,我想在预测结果中加入一些噪声。你可以添加一个模拟器,并加入一些随机噪声。这种噪声的随机性来源于这里看到的平方根。厚度的均方根误差为 303,标准差约为 21 或 22。这就是用来在系统中创建噪声的方法。
对于我们的控制参数,也就是音量而言,音量是在实际生产环境中控制的。我们永远不可能拥有一个完全固定的恒定音量。有一些噪声因素会影响音量。我会在这里给这个输入因子添加一些随机噪声。除此之外,转速和时间在这些数据点上相当稳定且固定,所以我可以保留这些数据。
点击“模拟”按钮后,您实际上是在模拟能力的可变性,并初步了解这些噪声和可变性将如何影响您的计算结果。有趣的是,您可以随意调整这些数值。例如,假设我想将其更改为 8,看看这会对输出产生什么影响,以及这会如何影响我们达到预期目标的程度。然后,您还可以……让我们将其改回 10.5。您可以看到,快速响应(即极快的速度)对输出的影响非常大。如果您调整该值,您可以看到它实际上改变了厚度,而现在我们又无法达到预期目标了。
如果你想调整厚度以达到不同的目标值,你可以重置厚度设置。比如说,9000纳米对我们来说更理想。我们可以调整这个值,并保持不变。然后你可以再次运行优化器,将其设置为最大值,它会自动调整设置。这样我们就能达到大约9000纳米的厚度了。
是的,我想这就是我这次演讲想要涵盖的所有内容,包括如何运行实验设计(DOE)来了解我们的工艺窗口和范围,以及它们如何影响输出。然后,我们可以利用这种期望值来设定一个标称数据点。接下来,就是通过这个拟合模型来创建我们的方程。随着我们不断基于此制造晶圆,我们可以将这些数据点添加到这个表格中并更新拟合模型,从而获得越来越强的预测分析相关性。我的演讲到此结束。