在硅片上批量设置和读取芯片唯一识别码的方法及电路 【技术领域】
本发明涉及芯片编程技术领域,特别涉及一种在硅片上批量设置芯片唯一识别码的方法、读出上述芯片唯一识别码的方法,以及为实现上述在硅片上批量读写芯片唯一识别码的电路。
背景技术
现在应用中,很多芯片需要包含芯片识别码,因此在经常需要在芯片中编写识别码。但是现有技术中编写芯片识别码需要对芯片一个一个进行设置,其过程非常繁琐,占用大量的编程时间。
在射频识别技术中尤其需要应用这种设置芯片识别码的技术。射频识别(Radio Frequency Identification,简称RFID)技术是一种通过赋予每个RFID芯片一个内置的唯一识别码(Unique Id,简称UID)编码,并放置在被管理物品上来进行识别和管理的技术。为了能彼此相互区分,每个芯片内置的UID编码应不重复,并具有唯一性。各种UID标准都有其专门的管理机构,负责分配UID号段资源,保证各厂商之间所拥有的UID号段不会出现重叠,各厂商则在自己号段内对所生产的芯片设置UID,并保证一个芯片对应一个UID,从而保证了UID的唯一性。
在利用半导体工艺制造芯片的过程中,其中一部分就是从版图到硅片制造中间的一个过程,即光掩模的制造,这个过程是建立在芯片版图图形阵列化复制的基础上的。
现有技术中一般是这样进行的,首先在制造光掩模之前对版图进行后期处理。要在版图最外面围一圈密封环(Seal Ring),作用是阻止切割时因刀片产生的裂痕损坏到芯片,密封环也可以不做,但通常情况下都是需要的。为了使切割过程中产生的静电不过于集中在密封环上而损坏到芯片,密封环需要接到芯片电位。如图1所示,密封环2到版图4之间有一圈缓冲区1,缓冲区1的宽度一般为5-10μm。在进行了上述的后期处理之后,形成的版图4、缓冲区1、密封环2就构成了一颗芯片。这样的芯片结构依次重复排列构成一个区块,其中芯片之间的空隙就称为划片槽3(ScribeLine)。为了不浪费这部分空间,可以放一些测试电路或其他测试图形5。
再将上述一块版图利用缩微照相技术或图形发生系统制作掩模原版(Reticle Mask),称中间掩模版。为了能在同一个硅片上同时制作多个电路芯片而且又便于切割成单个芯片,中间掩模版的图形还要用具有分步重复功能的精密缩小照相机进一步缩小到实际芯片尺寸。同时,让同一图形在纵横两个方向按一定的间距步进曝光,制成含有芯片图形阵列的母掩模版(Master Mask),最后复印出供给生产上光刻工艺使用的工作掩模版(Working Mask)。随着技术的进步,利用具有很高的分辨率和高速扫描成像系统,不但可用于制作中间掩模版,而且还能取代分步重复设备直接制作出含有芯片阵列图形的母掩模版或工作掩模版。
为保证大规模集成电路的芯片成品率,并进一步提高集成度,已采用电子束、离子束或X射线等直接在硅片上扫描成像的加工新技术,取代传统的光掩模图形转移技术。
制作出工作掩模版之后,利用各种光刻设备把光掩模图形转移到硅片表面的光致抗蚀层上,再经过复杂的加工工序,得到加工后的硅片,所得的硅片101如图2所示。
这种基于图形复制的工艺的优点是低成本,适合大规模制造,特点是制造出来的芯片结构是完全一样的。使用这种工艺制造具有UID模块和UID功能的芯片,由于UID模块结构完全一样,其初始化UID必然也是相同的。因此,在采用这种基于图形复制工艺制造的同时,又能将结构完全相同芯片设置为不同的UID,这是芯片UID编码硬件实现的一个关键和难点。为了解决UID设置问题,出现了各种技术,大致可分为以下几类:
其一,硅片上采用测试机和探针卡通过芯片上的测试焊垫(Pad)写入UID。这种方式一般是通过步进逐片操作的,也有通过多点探针卡实现多片并行编程的,但受编程设备通道数和探针卡探针数目限制,无法达到更大规模的并行编程。每个射频识别芯片除了主焊垫之外,还要预留几个测试焊垫,进行编程和测试。在芯片进行封装之前,为了从钝化层开口引出焊垫,并加大焊垫的接触面积,一般会有一个长凸点的工序。为了避免封装后与主焊垫发生短路,测试焊垫是不长凸点的,因此长凸点工序时必须要增加一层掩模,将测试焊垫屏蔽掉,增加了封装成本。此外探针与每个芯片焊垫相接触,增加了芯片污染的机会。在后续封装过程中,由于测试焊垫的存在,需要添加特殊模板进行隔离,增加了后续工艺成本。
其二,在芯片封装完成后,利用读卡器对芯片内置的可编程存储器进行编程。这种方法速度较慢,而且如果由于监管疏忽导致没有编程UID的空白卡泄露出去,则会带来极大的安全隐患。
其三,通过激光编程。这种方法需要激光编程设备,成本高,速度较慢。
其四,采用掩模型只读存储器(Maskrom)或者类似技术,每一个硅片需要修改一次掩模。这种方法工艺上操作起来也比较麻烦,由于插入一改掩模工序,无法兼容标准工艺,提高了成本。
【发明内容】
本发明所要解决的技术问题是提供一种编辑芯片中唯一识别码的方法,能够为所有的芯片快速批量编程唯一识别码,而且成本很低,为此,本发明还提供一种结构来实现上述方法。
为解决上述技术问题,本发明硅片上批量设置芯片唯一识别码的方法,包括以下步骤:
1)将硅片上的芯片划分为多个块;
2)根据一个块所包含的芯片数量m,m为大于1地自然数,通过求以2为底m的对数得到N,N=Log(2)m,当N为整数时,n=N,当N为小数时,n为N的向上取整,n=floor(N);
3)以第n位为分界将一个块中所有的位分成两部分:从芯片最低位第0位至第(n-1)位为低端位串,从第n位至芯片最高位第(k-1)位的连续编码为高端位串,其中,芯片的位长为k,最高位为第(k-1)位,最低位为第0位;
4)以芯片为单位,以数值0至(m-1)依次设置从第1个芯片至第m个芯片的低端位串;以块为单位,统一设置块内芯片高端位串的数值;
5)根据步骤4)中的低端位串和高端位串的数值,设置唯一识别码。
作为本发明一种优选技术方法,所述的芯片为射频识别芯片。
本发明芯片中唯一识别码的读取方法的技术方案是,分别读取唯一识别码的低端位串和高端位串,将两者合并为完整的唯一识别码。
本发明实现芯片中唯一识别码的编辑方法的电路的技术方案是,一个硅片上划分为多个块,每一个块中的各个芯片共用编程连线、输入/输出焊垫、探针卡和编程设备通道。
本发明芯片中唯一识别码的编辑方法利用编码本身的特点,将芯片划分为大小适合的块,通过计算芯片的个数将唯一识别码的编码位串分为高端位串和低端位串,对块进行批量编程,从而提高设置唯一识别码的速度,降低成本。本发明的硬件结构对一个块进行编程时,只需要一组探针、通道和焊垫,减少了探针变形和磨损,延长了探针卡的寿命,而且降低了芯片污染的可能性。
【附图说明】
下面结合附图和实施例对本发明作进一步详细的说明:
图1为硅片中一个块的结构示意图;
图2为包含多个块的硅片结构示意图;
图3为一个包含1024个芯片的块中唯一识别码分布示意图;
图4为本发明硬件结构示意图;
图5为本发明硬件中连线和辅助电路与划片槽的结构示意图;
图6为采用可配置连线发实现低端位串的示意图;
图7为采用短接存储器单元实现低端位串的示意图;
图8为采用串联加法器实现低端位串的示意图;
图9为本发明芯片中唯一识别码的编辑方法流程示意图。
图中附图标记为密封环为1,缓冲区为2,划片槽为3,版图为4,测试图形为5。
【具体实施方式】
观察一定范围内的UID编码位串的排列规律,可以发现:在数目为m位长为k连续的UID编码位串中,定义最高位为第k-1位,最低位为第0位,计算n,首先通过求以2为底m的对数得到N,N=Log(2)m,当N为整数时,n=N,当N为小数时,n为N的向上取整,n=floor(N),此时以第n位为界,这m个唯一识别码编码位串中,从第n位至第m-1位是相同的,而从第0位至第n-1位是按照顺序递增或者递减变化的。定义唯一识别码的编码位串中,从第0位至第n-1位为低端位串(Low End Bit String,简称LBS),从第n位至第m-1位为高端位串(High End Bit String,简称HBS)。
如图3所示,一串128位的唯一识别码,最低位为第0位,最高位为第127位。当芯片个数为1024,即m=1024时,根据公式计算n,n=log(2)1024,得出n=10,这些芯片中的用户编码位串中,高端位串为从每个芯片编码的第10位至第127位,低端位串为从每个芯片编码的第0位至第9位。则这一块内芯片的UID编码的高端位串部分,即第127位至第10位都是相同,而低端位串部分,即第9位至第0位则是从0000至1023递增变化的。
如图9所示,本发明芯片中唯一识别码的编辑方法包括以下几个步骤:
首先,将一个硅片(wafer)片分为多个块(block)。将硅片分为多个块时主要考虑的因素包括芯片尺寸、光刻窗口尺寸、划片槽尺寸、半导体代工厂或晶圆代工厂测试图形要求、并行编程驱动电流负载大小等参数。因此一个硅片所分的块的个数根据具体需要决定。将硅片分块之后,每个块中包含m个芯片数量,m当然是大于1的自然数。在本实施例中,一个块中包含1024个芯片,即m=1024。
其次,在硅片分块的基础上,根据一个块中所包含的芯片的数量m,将芯片中的唯一识别码编码位串分为高端位串和低端位串。具体这样进行,首先通过每一个块所包含的芯片数量m求高端位串和低端位串的分界位置n。在求n的过程中,先求以2为底m的对数得到N,N=Log(2)m,如果N为整数,则n=N,如果N为小数,则n的数值为N的取整再加1,即n为N的向上取整,n=floor(N)。以2为底求1024的对数,得到N=10,因此n=N=10。即在本实施例中,芯片唯一识别码编码位串中,高端位串和低端位串以第10位为分界。
再次,以n为分界将唯一识别码编码分为高端位串和低端位串。当芯片的位长为k,最高位为第(k-1)位,最低位为第0位,从芯片最低位第0位至第(n-1)位为低端位串,从第n位至芯片最高位第(k-1)位的连续编码为高端位串。在本实施例中,如图3所示,芯片位长为128,最高为第127位,最低位为第0位,则从第0位至第9位为低端位串,从第10位至第127位为高端位串。高端位串和低端位串合并成为唯一识别码。
接着,分别设置低端位串和高端位串。
首先是以芯片为单位设置每个芯片的低端位串。第1个芯片至第m个芯片的从第0位至第9位的低端位串的值依次对应着0至m-1。即如图3所示,第一个芯片的低端位串的值为0,第一个芯片的低端位串的值为0,第一个芯片的低端位串的值为0,第二个芯片的低端位串的值为1,第三个芯片的低端位串的值为2,……第m个,即第128个芯片的低端位串的值为m-1,即127。这些值在芯片中分别以二进制数字表示,依次为0000000000、0000000001、0000000010,……1111111111。每个芯片的低端位串的值逻辑上与这个块中包含的芯片一一对应。因此,以芯片为单位设置每个芯片的低端位串。
然后,以块为单位设置一个块中所有芯片的高端位串。因为如图3所示,当芯片个数为1024时(m=1024),则芯片的UID编码的高端位串部分(第127位至第10位)都是相同的。以块为单位,统一设置块内芯片高端位串的数值。
最后,根据唯一识别码编码特点,由于这m个芯片已经预先设置了低端位串,编程时只要统一并行写入高端位串,就可以完成整个块中芯片唯一识别码的编程目的。就可以达到快速、并行、批量编程的目的,同时很好地解决了标准工艺流程上的芯片图形复制与复制芯片UID差异化的矛盾。
在以芯片为单位设置一个块中每个芯片的低端位串时,能选择采用两种方式:版图设置法和辅助电路法。
版图设置法就是在版图后期处理时,对于排列构成块的芯片,不再是通常简单的重复复制,而是采用一些方法进行设置,从而使其具有不同低端位串。一般可在完成芯片主版图的基础上,对部分的版图逐个修改,或者通过手工或者自动化工具预生成低端位串的版图阵列,再与主版图拼合。对于大小划分合理,芯片数目有限的块来说,即使采用手工设置,其工作量也是在可以实现或者可以接受的范围内,如果采用自动化的设计工具,则更加方便快捷。
在本发明中,采用版图设置各芯片的低端位串主要可以用以下三种实现法:
一:设置只读存储器法。采用设置掩模型只读存储器的办法,制作一个低端位串的掩模型只读存储器的块与主芯片版图拼接。在低端位串比较短的情况下,考虑到低端位串长度较短,并且不需要随机访问,因此可以省略译码器,采用顺序读取方式,按照从高到低或者从低到高的顺序依次读取低端位串,以简化结构。或者将低端位串的所有位并联至数字电路,数字电路作为端口并行读取。
二:设置连线法。这种方法在设置只读存储器法的基础上进一步简化物理实现方法,如图6所示,数字电路将芯片的低端位串依次对应于数字电路的n个输入端口,各个低端位串分别映射到各个端口,通过分别将低端位串和对应端口连接,按照低端位串编码将端口分别连接高电位或者低电位来实现设置。在图6中,所示结构的低端位串为1010101010。
当采用设置只读存储器法和设置连线法设置低端位串时,可以有两种设置唯一识别码的方法:一,将设置的低端位串作为独立端口与应用电路相连接设置芯片唯一识别码的低端位串,再将设置的高端位串中在一个块中的芯片并行写入相同的高端位串,此时一个块中芯片并行写入相同高端位串。当采用这种方式设置的唯一识别码时,若对该唯一识别码进行读取,则将唯一识别码编码中的高端位串与低端位串合并为完整的唯一识别码,直接读取。二:复制一个块中所设置的各芯片的低端位串,并与设置的高端位串合并,形成唯一识别码,将唯一识别码写入可编程存储器。采用这种方式设置唯一识别码时,若需要读取唯一识别码编码,则直接读取唯一识别码编码即可。
三:短接或断开存储器单元法。如图7所示,字线(word line)包括w0至w3,位线(bit line)包括b0至b3,图7中所示单元的输入输出被强制短接,输出结果也就强制为1了,而没有被强制短接的单元,其输出结果则有存储单元内部存储的数据所决定。通过找到可编程存储器中对应低端位串存储地址的单元进行短接或断开修改,强制改变这些比特位的输出。经过这种方式设置后,低端位串对应的存储器数据位不应该再进行编程操作了。当采取这种方式设置低端位串时直接对一个块中的各芯片写入相同的高端位串,而不再对低端位串进行编程操作。读取唯一识别码时,分别读取高端位串和低端位串,再将高端位串编码和低端位串编码合并为完整的唯一识别码编码。若高端位串和低端位串相邻且顺序,则直接读取唯一识别码编码即可。
辅助电路法则是采用一些辅助的逻辑或者模拟电路产生低端位串值,再分别输入对应芯片做参考,从而达到设置低端位串的目的。这种方法比版图设置法更加简单可靠。如图8所示,第0个芯片的低端位串为0000,在第0个芯片和第1个芯片之间的划片槽内设置一个加法器,将第0个芯片的低端位串的值加1,得到第1个芯片的低端位串值0001,再在第1个芯片和第2个芯片之间的划片槽内设置一个加法器,将第1个芯片的低端位串的值加1,得到第2个芯片的低端位串值0002,以此类推,在第0个芯片和第1个芯片之间的划片槽内设置一个加法器,将第h-1个芯片的低端位串的值加1,得到第h个芯片的低端位串值000h,最后,将m-1个n位加法器串联起来,第一级芯片输入设为0,每一级加法器在上一级的基础上加1,每一级加法器的输出作为一个芯片的低端位串值输入,即从0级至m-1级加法器的输出分别作为第0至第m-1个芯片低端位串的输入。加电后,各级加法器会逐级相加,经过一定时间稳定后,就得到了每一级芯片的低端位串值。然后,各芯片还要通过编程操作将该低端位串值写入可编程非易失存储器固化下来。
当采用辅助电路法设置各芯片唯一识别码的低端位串编码时,可以有两种设置唯一识别码编码的方法:一:设置时先传送高端位串的值,芯片将高端位串和低端位串合并为唯一识别码,再写入可编程存储器。采用这种方式设置的唯一识别码编码,在读取时,直接读取唯一识别码。二:按照矩阵统一编程高端位串,根据对应加法器的输出值分别写入各芯片的低端位串。采用这种方法设置的唯一识别码编码,在读取时,分别读取高端位串和低端位串,再将两者合并为完整的唯一识别码。当高端位串和低端位串相连且顺序时,可以直接读取唯一识别码编码。
从上述的过程可以看出,低端位串编码的设置保证了一个块内芯片的唯一识别码各不相同,而每个块采用唯一的高端位串编码则保证了块与块之间唯一识别码的差异。因此只要保证整个产品生命期内全部块的高端位串不同,就可以保证生产的所有芯片具有唯一的唯一识别码。
发明可采用各种可编程存储器作为唯一识别码数据载体,与兼容标准CMOS工艺的可编程存储器相结合,进行芯片唯一识别码的设置。也可以实现芯片在硅片上的初始化数据的编程,或者用设置的低端位串单独作为总线系统的片选ID,构成硅片自动测试或其他硅片级芯片通信的基础。
由于在本发明中,编程所用的硬件结构也包含编程连线、输入/输出焊垫、探针卡和编程设备通道,由于一个块内各芯片都是写入相同的高端位串,对一块内芯片的高端位串进行并行编程,如图4、5所示,编程连线、输入/输出焊垫、探针卡和编程设备通道都可以共用,在将硅片分为多个块时,每个块加上其周围划片槽的总尺寸小于光刻窗口尺寸。
利用上述的结构可以对块的高端位串进行并行编程,极大的提高编程速度。编程连线和编程辅助电路位于一个块内的划片槽,硅片厂设置的测试图形位于块间划片槽。还可以在一个块的输入/输出焊垫处设置静电保护电路。
可编程存储器编程所用的高压可以来自内置电荷泵,也可以采用外部输入。对于具有现场编程功能的设备识别芯片,本来就内置电荷泵,可以加以利用;对于只读射频识别芯片,由于电荷泵需要占用很大的芯片面积,还需额外设计电路,因此,从外部输入更加合适。根据公式功率P=电压U*电流I,在同样的编程功率下,提高输入电压有利于减少编程电流。例如,对于1024个芯片编程,如果存储器单元编程电压为10v,电流为200uA,如果外部直接输入10v编程电压,则总的编程电流为0.2A;如果采用3.3v升压到10v的方式,总编程电流为0.62A,考虑到电荷泵的效率损失,总电流消耗可能会在1A以上。由此可见,采用外部高压输入,可以降低编程电流,减少电源线线宽,提高编程电路的负载能力。
在将硅片划分为多个块时,当一个块摆放好了之后,就会制作成光掩模。光掩模四周还会有一些其他的测试图形或者标记之类的图形,以验证光掩模是否正确。在硅片划片时顺着划片槽切割成的一个个小单元就称为晶粒(Die),包括了版图(layout),缓冲区(buffer),密封环(seal ring)和划片槽(scribe line)的一部分。由于对于编程唯一识别码的连线、电路、焊垫(pad)来说,一般情况只需要使用一次,编程完后不会再进行修改,因此可以将这部分模块放置于一个块内的划片槽区域,属于用户设置区,编程完毕之后,这部分电路或连接线随着划片而断开,无法再写入或者修改UID,既提高了安全性,又节省了芯片面积。
利用本发明的硬件结构,从一组探针、一组通道、一次编程操作过程完成一块芯片的编程改进为一组探针、一组通道、一次编程操作过程完成一个块的芯片编程,不仅节约了逐个芯片的编程时间,而且还省掉了每次探针卡的步进对针时间。对于1024个芯片的块,若其单颗芯片编程时间为15毫秒,探针步进时间0.4秒,则按传统编程,总时间为424.96秒,如果采用本发明的硬件结构对一个块内的高端位串进行并行编程,则变成时间可以缩减到小于0.415秒,编程的速度提高1024倍。对于65536个芯片的硅片,按传统法编程需要7.6个小时,采用并行编程则可以缩短到26秒。编程速度的提高减少了对编程设备的占用时间,大大降低了编程成本,同时由于缩短了产品生产周期,由此也带来了产品上市速度、产量、总成本方面的优势。而且本发明中还减少了探针的变形和磨损,延长了探针卡的寿命。虽然在现有技术中采用多点探针阵列也可以做到并行编程,但是由于编程设备通道数和探针卡工艺限制,其并行编程的规模受到很大限制,要达到对几十甚至上千的芯片并行编程,所需要的设备将十分昂贵。另外,编程设备也可以不采用专用的硅片级芯片测试系统。一套探针卡,显微镜,微控制器(MCU)以及少量附属零配件就可以实现一个简单的硅片级的UID设置以及芯片测试系统。
此外,在本发明中对块采用共用编程焊垫,编程时操作时探针并不和芯片接触,不会给焊盘、凸点或植球带来针痕,也降低了芯片污染机会。而且发明在公用编程焊垫处设置静电保护电路,使整个块能共用静电保护电路,从而可以在不占用芯片面积的前提下,为每个芯片的编程端口提供静电保护,具有较高的费效比,有利于提高成品率。而且本发明由于芯片上面不用设置测试焊垫,从而省略了屏蔽掩模,降低了封装工序的成本。
综上所述,与传统方法相比,本发明射频识别芯片中唯一识别码的编辑方法在编程速度、编程成本、灵活性、工艺兼容性等方面达到了比较好的效果,具有如下优点:降低了成本、与标准工艺流程兼容、大大提高了编程的速度和效率、节约了芯片面积、降低了对编程设备的要求、提高防篡改能力、简化了后续的封装工序。
本发明可采用各种可编程存储器作为UID数据载体,如与兼容标准CMOS(Complementary Metal-Oxide Semiconductor)工艺的可编程存储器相结合,则不失为一种理想的芯片UID设置解决方案。本发明可以引申用来实现芯片在硅片上的初始化数据的编程。此外,依据本发明阐述所设置的LSB也可以单独用来作为总线系统的片选识别码,构成硅片级自动测试或其他硅片级芯片通信的基础。本发明可以适用于所有需要设置芯片唯一识别码的芯片。