1.引言
一次性可编程非易失性熔丝存储单元是不需要编译或寻址就可以读取其存储数据的,每一个熔丝存储单元的输出可以始终被读取和使用,可以应用于编码存储器,序列号存储器,作为独立的熔丝位应用于ID识别,trimming和其它SOC流片后的客户需求,当然也可以为设计做测试提供临时的数据存储等。在许多不同类型的电子器件中,我们希望拿掉电源后,非易失性存储器也可以存储已保存的数据。
一种常见的非易失性存储器就是可编程的只读存储器(PROM),利用字线-位线(WordLine-BitLine)的交叉点的元素,比如熔丝,反熔丝,收集电荷的器件比如浮栅雪崩注入金属氧化物半导体(FAMOS)晶体管,来存储逻辑信息。这个交叉点就是字线与位线的交汇处。基本的PROM的结构就是利用了一个氧化物电容和一个结二极管的组合作为一个交叉点元素。一个未被使用的电容代表着逻辑值0,一个注入电荷的电容代表着逻辑值1。对硅氧化物层的厚度的调整来获得我们想要的工作规格。为了应对不同类型的非易失性存储器能够用不同的工艺来加工实现,一般倾向于高级的CMOS工艺。例如,加工EEPROM闪存器件会利用比标准CMOS工艺多30%的掩模步骤来实现。这些工艺步骤可以为需要产生高电压的电路产生一个特殊的区域和结构,在这类器件中可以发现三种不同的阱,浮栅,ONO层,特殊的源漏结。因此,这类设计的产品每个晶圆的花费都要多30%以上。另外一种反熔丝的工艺,也必须要用各种反熔丝结构和高压产生电路,因此也要比标准CMOS工艺多一些工艺步骤。
本文基于对以往熔丝存储单元的工作状态的研究,将选择和编程电路融合到一个熔丝中,通过标准CMOS工艺实现其存储性能,并通过芯片老化试验测试验证其可靠性。
2.熔丝存储单元的说明
一般来讲,编程一位一次性可编程存储单元,需要一个高电位作用到指定的存储单元的器件上以击穿该器件;读取熔丝存储单元时,电流流经期间被触发,其输出内容是1还是0,这取决于之前的协议。非易失性熔丝存储单元的基本结构。其中M1是选择晶体管,M0是编程晶体管,两个晶体管都是采用标准CMOS工艺加工,没有额外的掩模层产生。
M1作为开关管,M0作为限流器,电流流过M0的时候作为逻辑编程的指示。编程晶体管M0的栅极作为电容的一个极板,作用在栅极的电压可以和源漏区域作用,在栅极下面的区域产生偏置的层作为电容的另一个极板。由于作为选择晶体管的M1,其栅氧区是不希望被击穿的,所以它可能会选用比编程晶体管M0厚一些的栅氧加工。对于图1.a的结构WLP为VDD,WLR为打开状态,BL接地,持续一个特定的时间(比如,50us),可编程晶体管M0的栅极被烧断。这样的设置决定了存储单元的漏电流和它的逻辑状态。若要读取存储单元的内容,给M0和M1晶体管的栅极合理的电位,电流流过M1和BL,通过M0来限流,以此来将存储单元的逻辑状态分类。
图1.b是将a中的编程晶体管M0和选择晶体管M1之间的节点作为一个提供self-sensing电位的点,熔丝存储单元可以用标准逻辑设计规则来设计。在其具体实现上,编程晶体管M0可能用作源和栅的电容,漏和栅的电容,或者源漏和栅的电容以作为熔丝。图1.c中,熔丝存储单元带有至少一个高压保护晶体管M1,当熔丝晶体管M0在编程的时候,为薄氧栅晶体管M2提供cascade保护。
3.多位存储器的应用
在一个多位存储器的实例中,熔丝电路组成了一个级联的16位熔丝存储单元,也就是熔丝模块。每一个熔丝模块都有一个PGM的输入端来控制,以对特定的熔丝模块进行编程,此外,每个熔丝模块有一个寻址电路通过A[3:0]输入端子来控制对熔丝模块中的熔丝存储单元进行编程。PGM端子可以控制对熔丝模块中的任何熔丝存储单元能够编程,每个熔丝模块的16位存储通过16个输出端子REG[15:0]来输出。
4.熔丝模块的编程操作
熔丝模块的编程是通过同时触发PGM和VPP端子一段时间(如50us),通过端子A[3:0]和模块选择端子BS来选择一个熔丝单元,这样就能对熔丝模块里的单一熔丝单元来编程操作了。对一个熔丝单元编程的意思就是烧毁其熔丝或者把特定的晶体管击穿[2]。PGM端子通过VPP电压值来确立建立和保持的时间,从而为每一个熔丝单元提供编程时间。
5.编程验证操作
然而,可能无法通过编程方式直接读取一个存储熔丝单元的输出;我们要测试一个熔丝存储单元就是确保其已经被正确的编程。这样就需要一种办法去验证熔丝单元是否被正确的熔断。因此,编程完后,可以通过检测流过熔丝的电流Iread来判断编程是否成功。在实际的芯片生产流程中,需要一个晶圆级的测试员来进行测试。
当然我们也有可能需要不去熔断熔丝,只是暂时性的对熔丝存储单元进行编程,SET和RESET可以帮助熔丝模块暂时存入数据到熔丝存储单元,而不需要永久性的写入熔丝就可以使存储单元输出数据[3]。熔丝存储模块允许每个熔丝存储单元用单独的SET和RESET来进行功能测试和覆盖锁存的数据。
6.熔丝存储单元的电路介绍
图5为熔丝存储单元的详细电路图,其中熔丝M0通过选址控制端A[3:0],BS端,PGM端来共同控制编程或者验证。被选中可以编程或验证的熔丝所接的高电位是由VPP端子通过高压电平转换器X1来转接的。在同一个熔丝模块中,高压电平转换器X1用来将那些不需要编程或验证的熔丝单元和编程电压隔离开来。熔丝M0的内容被锁存在与非门A1,A2的输出端。当熔丝被编程的时候,对应的输出值REG为静态值,不需要被动态反馈。
7.熔丝存储模块的电路介绍
此外,为了对熔丝存储单元进行编程,每个熔丝模块由一个寻址电路通过A[3:0]输入端子来控制。每个熔丝模块有8个输出端子REG[7:0],其输出为被锁存在熔丝存储模块的8个存储位(熔丝存储单元)的输出。
8.版图设计及芯片老化测试介绍
在实际的芯片设计中,我们采用了SMIC-110nm标准工艺,制作熔丝单元时熔丝晶体管采用了不同栅长的1.2V的NMOS器件,1.2V的Native的NMOS器件,放置在NWELL中的1.2V的NMOS等几种不同的情况流片测试。实际测试中发现,同种类型的器件栅长对熔丝晶体管的编程读写影响不大:不同种器件类型的晶体管,Native晶体管在非编程条件下也易被击穿。