一种基于栅氧击穿型反熔丝存储阵列的编程系统及方法与流程

文档序号:20834969发布日期:2020-05-22 16:45阅读:477来源:国知局
一种基于栅氧击穿型反熔丝存储阵列的编程系统及方法与流程

本发明涉及一种基于栅氧击穿型反熔丝存储阵列的编程系统及方法,属于反熔丝存储器芯片设计领域。



背景技术:

栅氧击穿型反熔丝存储技术的原理是利用高压信号将存储单元的栅极氧化层击穿,形成不可逆的导电通道,用导电和不导电来分别代表二进制1和0,实现信息的非易失性存储。由于与标准cmos制造工艺完全兼容,因此栅氧击穿型反熔丝存储电路既可作为子模块ip集成到各类集成电路芯片中,也可以设计成专用的大容量存储器电路,广泛应用于系统参数、用户信息、保密信息和应用程序等重要数据存储领域。

传统的反熔丝存储芯片的编程方法是以写入数据进行重复编程、固定次数编程,随着存储阵列设计规模越来越大,栅氧击穿型反熔丝存储技术存在的两个问题也越来越突出,一个是编程成功率随着阵列规模扩大而大幅降低,另一个是编程后存储单元的击穿电阻分布也更加离散。



技术实现要素:

本发明解决的技术问题是:针对目前现有技术中,传统编程方法和系统主要依靠将原始数据全部进行重复编写导致的容易降低编程成功率的问题,提出了一种基于栅氧击穿型反熔丝存储阵列的编程系统及方法。

本发明解决上述技术问题是通过如下技术方案予以实现的:

一种基于栅氧击穿型反熔丝存储阵列的编程系统,包括编程控制模块、数据存储模块、反熔丝单元编程模块、数据判断模块,其中:

编程控制模块:数据存储模块已接收并存储待写入数据后,向反熔丝单元编程模块发送编程及数据调用指令;原始数据编程写入后,向数据判断模块发送判断及数据调用指令;若数据编程存在写入未成功部分,则向数据存储模块发送数据筛选指令;

数据存储模块:接收外部输入的原始数据,并对原始数据进行存取,供反熔丝单元编程模块或数据判断模块调用;若数据编程存在写入未成功部分,则根据编程控制模块发送的数据筛选指令标记后的编程数据的数据内容中标记地址的数据进行筛选,将筛选后需要继续编程的数据发送至反熔丝单元编程模块;

反熔丝单元编程模块:接收编程控制模块的编程及数据调用指令,由数据存储模块中调用待写入的原始数据,对原始数据进行编程写入,并将编程后数据发送至数据判断模块;若数据编程存在写入未成功部分,重新接收编程控制模块的编程及数据调用指令,将筛选后需要继续编程的数据进行重新编程,并将编程后数据发送至数据判断模块;

数据判断模块:接收编程控制模块的判断及数据调用指令,由数据存储模块中调用待写入的原始数据,对待写入的原始数据与编程后数据进行异或运算,根据运算结果判断数据写入成功率,若数据编程存在写入未成功部分,将编程后数据中写入失败的部分进行地址标记,并将标记后的编程数据返送至数据存储模块,利用原始数据对反熔丝单元编程模块发送的继续编程后获得的数据进行异或运算,直至数据写入成功率为100%为止。

所述数据写入成功率确定方法为:

对原始数据及编程后数据进行异或运算,获取所有数据地址的异或运算结果,若异或运算结果为0,则该数据地址对应数据为编程成功数据单元;若异或运算结果为1,则该数据地址对应数据为待标记数据单元,根据异或运算结果统计可得数据写入成功率。

一种基于栅氧击穿型反熔丝存储阵列的编程方法,步骤如下:

(1)以待写入的原始数据为基础数据,对栅氧击穿反熔丝单元进行编程;

(2)对编程后数据的所有数据地址进行读取,利用各数据地址对应的原始数据对各个地址对应的编程后数据进行异或运算,根据异或运算结果判断各个地址对应的数据是否写入成功,获取数据写入成功率;

(3)根据数据写入成功率进行判断,若数据写入成功率不为100%,存在数据写入不成功的情况,则进入步骤(4);若数据写入成功率为100%,则将所有原始数据重新进行一次编程写入,完成对栅氧击穿反熔丝单元的编程;

(4)对所有数据写入不成功的数据地址进行重新编程,并对重新编程后数据进行异或运算,根据异或运算结果判断各个地址对应的数据是否写入成功,重新获取数据写入成功率,并返回步骤(3)。

所述步骤(2)中,异或运算结果具体为:

对原始数据及编程后数据进行异或运算,获取所有数据地址的异或运算结果,若异或运算结果为0,则该数据地址对应数据为编程成功数据单元;若异或运算结果为1,则该数据地址对应数据为待标记数据单元,根据异或运算结果统计可得数据写入成功率。

所述步骤(1)中,所述栅氧击穿反熔丝单元采用标准cmos工艺进行加工。

所述步骤(4)中,对所有数据写入不成功的数据地址进行重新编程的编程次数为n,n的取值范围为20-30。

所述步骤(4)中,若对所有数据写入不成功的数据地址进行重新编程的编程次数超出n的范围,则栅氧击穿反熔丝单元编程失败。

本发明与现有技术相比的优点在于:

本发明提供的一种基于栅氧击穿型反熔丝存储阵列的编程系统及方法,通过在传统的编程方法中增加判断、异或运算生成编程后的标记数据,对标记数据进行再次变成的方法,在继续编程操作过程中可编程电压和电流更为集中在上次未编程成功单元上,有利于上次未编程成功单元的击穿成功,同时在全部数据写入完毕后再用原始数据进行一次重复编程的操作可进一步提升各存储单元击穿电阻的一致性,提高读出可靠性。

附图说明

图1为发明提供的编程方法流程图;

图2为发明提供的编程系统示意图;

具体实施方式

一种基于栅氧击穿型反熔丝存储阵列的编程系统及方法,主要是通过对栅氧击穿反熔丝存储技术编程方法进行改进,编程步骤中增加回读、比较、异或运算等操作来根据编程效果自动产生下一次编程数据,在编程成功后进行原始数据重复再写入,可有效提升栅氧击穿型反熔丝存储阵列的编程成功率和编程可靠性。

如图1所示,为基于栅氧击穿型反熔丝存储阵列的编程方法的具体步骤,主要包括步骤如下:

(1)以待写入的原始数据为基础数据,对栅氧击穿反熔丝单元进行编程,所述栅氧击穿反熔丝单元采用标准cmos工艺进行加工;

(2)对编程后数据的所有数据地址进行读取,利用各数据地址对应的原始数据对各个地址对应的编程后数据进行异或运算,根据异或运算结果判断各个地址对应的数据是否写入成功,获取数据写入成功率,其中:

异或运算结果具体为:

对原始数据及编程后数据进行异或运算,获取所有数据地址的异或运算结果,若异或运算结果为0,则该数据地址对应数据为编程成功数据单元;若异或运算结果为1,则该数据地址对应数据为待标记数据单元,根据异或运算结果统计可得数据写入成功率;

(3)根据数据写入成功率进行判断,若数据写入成功率不为100%,存在数据写入不成功的情况,则进入步骤(4);若数据写入成功率为100%,则将所有原始数据重新进行一次编程写入,增加栅氧击穿反熔丝单元的编程可靠性,完成对栅氧击穿反熔丝单元的编程;

(4)对所有数据写入不成功的数据地址进行重新编程,并对重新编程后数据进行异或运算,根据异或运算结果判断各个地址对应的数据是否写入成功,重新获取数据写入成功率,并返回步骤(3)。

同时,对数据进行再编程的次数是有限的,对所有数据写入不成功的数据地址进行重新编程的编程次数为n,n的取值范围为20-30,超出该范围后,则栅氧击穿反熔丝单元编程失败。

上述方法步骤是通过基于栅氧击穿型反熔丝存储阵列的编程系统来实现的,如图2所示,该系统的组成主要包括:

编程控制模块、数据存储模块、反熔丝单元编程模块、数据判断模块,其中:

编程控制模块:数据存储模块已接收并存储待写入数据后,向反熔丝单元编程模块发送编程及数据调用指令;原始数据编程写入后,向数据判断模块发送编程及数据调用指令;若数据编程存在写入未成功部分,则向数据存储模块发送数据筛选指令;

数据存储模块:接收外部输入的原始数据,并对原始数据进行存取,供反熔丝单元编程模块或数据判断模块调用;若数据编程存在写入未成功部分,则根据编程控制模块发送的数据筛选指令标记后的编程数据的数据内容中标记地址的数据进行筛选,将筛选后需要继续编程的数据发送至反熔丝单元编程模块;

反熔丝单元编程模块:接收编程控制模块的编程及数据调用指令,由数据存储模块中调用待写入的原始数据,对原始数据进行编程写入,并将编程后数据发送至数据判断模块;若数据编程存在写入未成功部分,重新接收编程控制模块的编程及数据调用指令,将筛选后需要继续编程的数据进行重新编程,并将编程后数据发送至数据判断模块;

数据判断模块:接收编程控制模块的判断及数据调用指令,由数据存储模块中调用待写入的原始数据,对待写入的原始数据与编程后数据进行异或运算,根据运算结果判断数据写入成功率,若数据编程存在写入未成功部分,将编程后数据中写入失败的部分进行地址标记,并将标记后的编程数据返送至数据存储模块,利用原始数据对反熔丝单元编程模块发送的继续编程后获得的数据进行异或运算,直至数据写入成功率为100%为止。

数据写入成功率确定方法为:

对原始数据及编程后数据进行异或运算,获取所有数据地址的异或运算结果,若异或运算结果为0,则该数据地址对应数据为编程成功数据单元;若异或运算结果为1,则该数据地址对应数据为待标记数据单元,根据异或运算结果统计可得数据写入成功率。

下面结合具体实施例进行进一步说明:

(1)数据存储模块为存储器,存储器的数据位宽为8,首个需要编程的原始数据为11010011,对首个地址的8个栅氧击穿反熔丝单元进行编程操作,记录编程次数x为1;

(2)对当前地址进行读操作,假设读回数据为10000001;

(3)将读回数据10000001与原始11010011进行按位异或操作,结果为01010010,可知成功率为62.5%;

(4)以异或后产生的新数据01010010作为编程数据,再进行一次编程操作;

(5)对当前地址再进行读操作,假设读回数据为11010001,再与原始数据进行按位异或操作,结果为00000010,可知成功率为87.5%;

(6)由于成功率不为100%,因此将编程次数x累加1,以异或后产生的新数据00000010作为编程数据,再进行一次编程操作;

(7)对当前地址进行读操作,假设读回数据为11010011,再与原始数据进行按位异或操作,结果为00000000,可知成功率为100%;

(8)由于成功率为100%,表明当前地址已编程成功,因此再以原始数据11010011进行最后一次编程操作,以提高编程可靠性。

(9)对下一个地址和数据重复上述操作,直到所有数据编程完毕。

本发明中未提及内容均为本领域技术人员公知常识。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1