□ 桂志刚 □ 陆利新 □ 明志发 □ 王博文 □ 郭 帅
1.上海市智能制造及机器人重点实验室 上海 200072
2.上海新阳半导体材料有限公司 上海 200073
晶圆通过多道工序加工后形成特定电气特性的IC芯片,在所有的工序中电镀工艺是其内逻辑电路形成的关键,晶圆在光刻后须经电镀工艺才能完成电路的布线以及凸点的形成,以实现芯片内部结构的搭建。
目前国内市场上的晶圆电镀设备大多数为分离的单体设备,结构封闭和生产工艺流程固定;另外其控制系统多由PLC控制,自动化程度低,数据处理能力弱,控制算法简单,控制界面简单,人机交互性差,设备可控性差;不具备模块化架构,阻碍了设备的升级及维护;不具备与其它生产系统互联的功能,不能满足大规模自动化生产的需要。
电镀工艺是晶圆电镀加工的核心所在,工艺过程执行的好坏直接关系到晶圆的品质;本系统是根据客户需要而开发的全自动晶圆电镀设备,主要用于晶圆镀铜、镀镍、镀金等(根据需要可增加镀槽以达到特定镀金属工艺要求)不同材料的电镀工艺。
通过国内外调研发现,常见的全自动晶圆电镀系统布局方式[1]有:① 环形布局,自动化程度高,效率高,工件露空时间短以及运行平稳,适用于镀层质量要求高、大批量、形状单一、工艺成熟的电镀;② 直线式布局,自动化程度高,适用于不同形状、不同批量零件的电镀,生产时间灵活,可用于多种生产工艺的电镀,电镀品质优良、稳定,适用于镀层要求较厚的工艺。
本系统采用环形布局方式。根据工艺要求,考虑到晶圆在加工过程中各槽位之间的转移、镀槽电镀用凹槽中心与晶圆中心重叠、装载上料和卸载收集晶圆的要求,采用机械手实现晶圆在电镀过程中各槽位之间的转运,布局图如1所示。
▲图1 系统硬件布局
系统硬件配有:①FOUP(晶圆传送盒),主要用于加工过程中晶圆原料上料装载以及卸料成品储藏;②机械手臂(ROBOT),主要用于晶圆电镀过程中各硬件之间的转运;③前处理槽(Pre),主要用于去除产品上的杂质及气泡;④镀铜槽,主要用于形成内部逻辑电路,通过电镀在被侵蚀的线路槽内沉积金属铜形成铜线,即铜互连工艺,本系统配有两个镀铜槽;⑤ 镀镍槽,主要用于在铜基引线上形成一层镀镍层,加强并保护引线,本系统配有两个镀镍槽;⑥镀金槽,主要用于在镀镍层的基础上形成一层镀金层;⑦ 水洗槽,主要用于槽位间转运或晶圆入FOUP清除掉晶圆上的镀液,同时水洗槽具有烘干功能,在晶圆入FOUP时清除其上的水分,本系统配有3个水洗槽;⑧ 前轴定位器(Ali),主要用于在晶圆进入镀槽前以及加工完成后找晶圆中心。
以常见晶圆电镀工艺为例,介绍本系统工艺流程:FOUP上料→前轴定位器找圆心→镀铜槽镀铜布线→镀镍槽镀镍加强引线→镀金槽镀金保护引线→水洗槽水洗去除晶圆上残留镀液以及烘干晶圆→FOUP回收储存。
硬件设备的选择是系统硬件平台搭建的第一步,在确定系统硬件组成之后,规划完成整个系统的工艺流程及软件控制是系统高效运行的关键。
本系统为全自动晶圆加工设备,在操作者启动程序后,系统各硬件将会自动按照一定要求运行并加工完成一件合格晶圆产品,为达到控制要求,本系统需解决以下几个问题。
(1)工艺文件载体问题。配方文件作为工艺要求的记录性文件,它是自动化设备运行的基础,其内部参数决定了系统以及各硬件的运行形式,所以在本系统的配方载体即配方文件的选择上尤为重要。
▲图2 系统软件构成
(2)模块化封装问题。模块化设计关系到系统的可升级空间以及可维护性,所以规划系统模块以及实现系统模块封装将是本系统需要解决的问题之一。
(3)系统各硬件及系统内部程序协同的问题。全自动生产最终反映到设备硬件上的是各硬件按照一定要求而有序地自动运行,所以硬件与硬件之间、硬件与系统软件及内部程序之间实现协同是关键。
(4)系统程序内部数据传递的问题。系统各硬件及系统内部程序的协同离不开数据交换,有效、安全及快速的数据交换是自动化设备的基础。
自动化设备系统软件设计,最简单的方法[3]就是在一个循环中利用顺序结构将各模块分别封装于各个顺序分支中,使系统按顺序执行数据输入、处理以及返回,在这种模式下,可以保证系统中所有的数据得到有效处理。由于系统所有模块在同一线程中,当一个模块执行时,其它模块就不能运行,若想在这种封装模式下,能够高效处理系统所有的数据,并有效协调系统各硬件同时运行的能力,是不可能的。因此系统的软件结构采用模块化设计,如图2所示,整个系统分为数据处理模块、命令生成、系统参数设置和槽位执行模块,4大模块的功能如下。
(1)参数设置模块。参数设置模块为确定本系统以何种状态运行以及怎样运行,系统将会读取操作者在界面输入的参数信息以及所加载的配方信息,同时,一些系统默认的初始数据也在此赋给相应的LV2全局变量或者进入相应的队列,为后面的几个模块提供数据支撑。
(2)命令生成模块。系统各硬件的运动需要上位机发送相应指令,硬件在接到指令后才会执行相应的动作;命令生成模块就是自动根据系统运行状态以及配方流程生成下一步将要执行的命令,并将执行命令发送至数据处理模块。
(3)数据处理模块。数据处理模块是系统的核心所在,系统几乎所有的数据处理均在这个模块中执行,并将各硬件的执行数据收集、处理以及储存,它作为核心,担负着对各个模块的监控及协调,并将系统各个模块整合在一起。
(4)槽位执行模块。槽位执行模块包含了12个子模块 (机械手、FOUP、 前处理、前轴定位器、镀铜1、镀铜 2、镀镍 1、镀镍 2、镀金、水洗1、水洗2以及水洗3执行模块),这些模块分别控制着相应的硬件,接受命令处理模块发送的命令并向相应的硬件发送指令字符串,同时向命令处理模块反馈执行结果。
考虑到系统在运行过程中需要执行数据发送及接收动作以得到需要的信息,各硬件之间的数据传输也很频繁且不定时;而系统又要求数据的传输不能消耗过多的系统资源,不能妨碍用户界面上的操作和显示,因此,本设计使用多线程技术来实现多任务的并行运行,达到系统的模块化设计要求,实现对系统各模块的封装。4个模块中的3个模块(系统参数设置模块、命令生成模块以及数据处理模块)分别封装在3个并行运行的While循环中,另一个模块(槽位执行模块)包含了12个子模块 (如图2所示)分别封装在10个While中,封装成10个子Vi(程序),同时与前3个模块并行运行;每一循环执行一种操作。
本系统的软件平台采用美国国家仪器公司(National Instrumengts)的 LabVIEW 2013,LabVIEW 是美国国家仪器公司开发的图形化语言,它提供了完善的功能函数和工具库,便于快速开发,编写直观友好的人机界面。
全自动化电镀设备并非完全自主地自动生产加工,它必须在得到一定的人工参数约定之后才能有效地运行,而这些参数约定大多数体现为电镀工艺参数。本系统的电镀工艺流程及要求都体现在配方中,配方的作用就是赋予全自动化系统一定的人工参数约定,配方关系到晶圆加工的质量,如配方中某一参数存在问题,最终在产品上反映出来的将会是次品甚至是废品。
本系统配方文件选择INI文件作为配方参数的记录文件,其优点[2]在于文件简单易于读写,文件内容清晰明了,便于查看。配方文件由工艺流程、工艺工步数和各工序内部参数组成,工艺流程体现在段名为 “工序”字段中,记录着配方包含的所有工序及相应顺序,在加载配方后主要为命令生成模块及数据处理模块提供工艺流程信息;工艺工步数体现在段名为“工步数”字段中,记录着配方各工序内所拥有的工步数,主要便于工艺人员核查配方信息;各工序内部参数体现在以各工序名为段名的字段内,记录着该配方所涉及的系统槽位的运行参数,在加载配方后主要为各槽位执行模块提供运行参数。
本设计采用LabVIEW中的“Write Section Cluster”以及“Read Section Cluster”函数作为配方文件中工艺流程及各工序工步数的刻录函数和读取函数,它们的优点在于:①以簇为整体向配置文件中有序地刻入和读取相应数据;②数据使用安全可靠,系统以该字段配方信息刻入时的簇为模板,读取配方内部的相应数据,当刻录信息簇的类型与读取信息簇的类型不一致时,配方数据将无法被读出。配方中各工序内部参数的刻录及读取采用 “Write Key(Variant)”函数以及“Read Key(Variant)”函数来执行,其优点在于:① 该函数的数据输入类型为变体类型,将簇或者其它数据集合体转换成变体后,可以整体一次性刻入配方文件;② 变体能兼容所有数据类型以及所有不同的数据组合体;③数据使用安全可靠,系统以该字段配方信息刻入时的簇为模板,将读取配方内部变体转换成相应的簇数据,当刻录信息簇的类型与转换信息簇的类型不一致时,配方数据将无法被识别。
系统15个循环作为15线程单独运行,各线程之间若通过属性调用、局部变量或者全局变量传递命令数据的方式来协调这15个循环之间的运行,由于各线程运行速度不匹配,这样容易造成数据竞争,导致Whlie之间命令传达遗漏的问题[4],并且对于这样一个庞大的系统而言,全部使用以上三种方式实现命令传递很不现实,所以本系统利用队列和通知器来协调各线程之间的运行,队列相当于各循环之间的缓存空间[5],利用它来弹性调节各循环的速度差,从而解决竞态问题。
本程序设计了15个队列分别为:MainQueue、流程、镀铜槽空闲、镀铜槽完成、镀铜1槽、镀铜2槽、镀镍槽空闲、镀镍槽完成、镀镍1槽、镀镍2槽、水洗(SC)槽空闲、水洗槽完成、水洗1槽、水洗2槽、水洗3槽以及暂停通知。在这些队列之中,Main Queue最为关键,其担负着线程之间系统主要命令的传输,它将系统各个模块紧密地串联在一起,形成一个整体并协调运行。系统各模块协同运行框图如图3所示。
▲图3 系统各模块协同示意框图
▲图4 数据交换过程图
本系统为多线程控制程序,各线程程序中很多控制本线程或其它线程运行的关键数据在数据处理模块中交流频繁(传递及更新),系统各线程根据这些数据的情况来自动执行相应命令,因此这些数据的传输交换不能出现任何差错,对数据传输的载体方面本系统的要求是数据传输响应快、避免数据竞争以及数据安全可靠。本程序所设计的LV2全局变量,相对系统内置的全变量和共享变量而言,有两个方面的优势[6]:①LV2全局变量可以防止竞争状态出现,因为功能全局变的Vi是不可重入的,所以把它作为子Vi时,绝对不可能出现两个功能全局变量Vi同时执行的情况;②LV2全局变量中的全局数据只能被全局变量本身使用,调用这个全局变量的程序只能使用全局变量提供的方法对数据进行操作,这样,就可以通过提供某些特定的数据操作方法对访问模块中的数据加以限制,提高数据的安全性。
在本系统中所设计的LV2全局变量有:ROBOT、FOUP、Pre、Cu、Ni、Au、SC、Cu1、Cu2、Ni1、Ni2、SC1、SC2、SC3。绝大多数数据交换在数据处理模块,数据处理模块中无时无刻不在进行各硬件间LV2全局变量的数据交换或更新。以每次命令形成模块形成的命令执行过程为例,介绍数据交换过程如图4所示。
利用LabVIEW软件平台,采用模块化设计以及多线程技术,构建了一个高效、可靠的全自动晶圆电镀系统。本系统已经在上海新阳半导体材料有限公司投入组装测试,实践表明,所设计的程序运行稳定,加工生产效率高及抗干扰能力强,系统采用模块设计,主程序与执行单元程序逐一分开成单独线程,便于系统升级及增减系统硬件,达到了预期设计的目的。
[1] 张立茗.我国电镀设备发展的发展和现状 [J].电镀与精饰,2001,23(5):13-15.
[2] 陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2013.
[3] 范辉,张宇文,袁绪龙.基于LabVIEW的水洞实验软件测控平台设计[J].测控技术,2007,26(12):61-63.
[4] 张红名,李晓峰.基于LabVIEW的多线程编程技术比较研究[J].电子技术应用,2008(10):89-91.
[5] 穆运明,刘旺开,尹禄高.基于LabVIEW的航空发动机测试系统[J].兵工自动化,2011,30(2):70-72.
[6] 阮奇桢.我和LabVIEW[M].北京:北京航空航天大学出版社,2012.