一种访问OTP存储器的电路的制作方法

文档序号:11730586阅读:238来源:国知局
一种访问OTP存储器的电路的制作方法与工艺

本发明涉及一种一次可编程(otp)存储器领域,特别涉及一种访问otp存储器的电路。



背景技术:

随着电子信息社会的不断发展,数据存储需求量呈现出爆炸式的增长。与mask(掩膜)和flash(闪存)存储器相比,otp存储器兼具二者之优势,既有一定的灵活性,成本又不太高。也因此在嵌入式系统或者芯片内部,作为存储一次编程后不可更改的信息或者对加密芯片密钥信息的存储起着不可替代的作用。otp存储器非常适用于对特定应用数据的一次可编程存储,在一个片上系统(soc,systemonchip)系统中,需要存储很多特定一次性信息,比如芯片序列号、接口封闭信息以及有关芯片安全的秘钥信息等,这些信息在整个系统测试芯片中编程进去后不允许客户去改变,且这些信息不需要擦除,即一次编程后不可修改。采用mask掩膜做成光刻版,灵活性太差,采用flash闪存成本又太高。因此,采用otp存储器存储这类特定信息,最大程度减少硬件及研发开销。

对otp存储器进行编程和读取及其他访问时,需要一个硬件控制器,把访问otp存储器的具体操作通过解析指令,判定是否为有效指令转换为访问otp存储器的具体时序,按照otp存储器件的接口时序完成读取、编程、复位、睡眠、唤醒操作。图2是访问otp存储器的框图,包括访问otp存储器的各种指令,该硬件控制器需要按照不同的访问指令产生相应的时序,完成对otp存储器的访问。

由于otp存储器对一些特定信息的存储及成本不高的特点,在存储器领域受到越来越广泛的应用。硬件电路基于根据不同的指令提供不同的时序电路驱动otp存储器,实现对otp存储器件的访问。otp存储器件由于自身的因素,在读取和编程过程中很容易出错,如何在对otp编程和读取中降低出错率,提高otp存储器的可靠性,成为otp存储器领域的技术难点。其次,随着安全芯片愈来愈广泛地应用,otp存储器实现对密钥信息的编程后,不希望使用者将其密钥信息读出,因此就需要在读取otp密钥信息时对其做特殊处理,如何做特殊处理从而保证存入otp的密钥信息不被泄密,保证芯片安全技术也是当前访问otp存储器技术所欠缺的方案。再者,在otp存储器芯片内部增加容错硬件电路单元很大程度上增加了otp存储器芯片面积,且可移植性不好。这些缺点都大大增加访问了otp存储器的研发时间和成本。



技术实现要素:

本发明所要解决的技术问题是,提供一种访问otp存储器的电路,目的是可以灵活配置不同指令访问otp存储器,并产生对应指令的访问otp存储器接口时序,对特定信息密钥信息在otp存储器件外部进行严格加密处理,对otp存储器编程操作时,其中编程算法模块电路实现编程算法,很大程度提高了otp存储器良率,解决了otp存储器在编程过程中易出错的问题,极大地提高了otp存储器件的可靠性。并从otp存储器中的读取出的安全信息(密钥信息)进行加扰处理,将读取的密钥信息通过加扰电路进行加扰,从而保护了数据的安全性。

为解决上述技术问题,本发明提供了一种访问otp存储器的电路,包括依次相连的cpu、上电读取电路、总线控制电路、多路选择器、otp时序发生器电路、编程算法模块电路和加扰电路,其中,所述cpu:用于配置访问otp存储器的指令;所述上电读取电路:用于在otp上电时,读取otp存储器各个区域的信息;所述总线控制电路:用于装载cpu的一系列指令,并解析所定义的操作otp存储器的指令;所述多路选择器:选择上电读取电路读取信息指令或总线控制电路的指令,并将选择的指令传送至otp操作时序产生控制器;所述otp时序发生器电路:按照cpu操作otp存储器的指令产生对应的访问otp存储器时序;所述编程算法模块电路:在编程otp存储器操作时,对otp存储器所要编程的地址进行冗余处理并对每一位所要编程的数据采取施加多次编程脉冲电压处理;所述加扰电路:用于对otp存储器中读取密钥信息进行加密处理。

根据本发明一个实施例,采用机台完成指令配置电路代替所述cpu,所述机台完成指令配置电路用于配置访问otp存储器的指令。

根据本发明一个实施例,所述上电读取电路读取的信息包括otp存储器模式信息、otp存储器接口封闭信息、otp存储器系统区域封闭信息、otp存储器用户区域封闭信息以及密钥区域信息。

根据本发明一个实施例,所述总线控制电路包括指令寄存器电路和指令译码器电路,指令寄存器电路用于存储cpu或者机台所配置的一系列指令,指令译码器电路实现将配置的指令翻译成具体有效的指令并传送至多路选择器。

根据本发明一个实施例,所述编程算法模块电路的所有算法控制均采用状态机控制实现。

根据本发明一个实施例,所述对otp存储器中读取密钥信息进行加密处理包括:对密钥读出的数据经过加扰电路进行加扰,使得用户所见的密钥数据不是真正编程至otp的数据。

根据本发明一个实施例,所述操作otp存储器的指令包括复位操作指令、唤醒操作指令、编程操作指令、读取操作指令、睡眠操作指令。

根据本发明一个实施例,所述otp存储器包括:芯片序列号区域,用于存储芯片序列号;接口封闭区域,用于存储相关接口封闭信息;otp存储器工作模式区域:用于存储otp存储器的操作模式,包括机台工作模式和正常工作模式;系统封闭控制区域,用于存储封闭系统区域的控制信息;用户封闭控制区域,用于存储用户区域的控制信息;系统密钥区域,用于存储密钥信息区域;以及用户区,用于存储用户所要存储的信息。

与现有技术相比,本发明的有益效果是:提供了一种访问otp存储器的电路,并且可以通过cpu或者机台两种模式灵活配置不同操作指令,并产生对应指令的访问otp存储器的接口时序。对特定信息密钥信息在otp存储器件外部进行严格加密处理,从而有效地保证了芯片的安全性。对otp编程采用本发明电路,解决了otp在编程过程中易出错的问题,保证数据正确编程和读取,很大程度提高了otp存储器良率,极大地提高了otp存储器件的可靠性。

附图说明

图1是根据本发明一个实施例的otp存储器区域分布图。

图2是根据本发明一个实施例的访问otp存储器的操作框图。

图3是根据本发明一个实施例的otp存储控制电路框图。

图4是根据本发明一个实施例的otp存储器上电读取电路操作流程图。

图5是根据本发明一个实施例的otp存储器指令译码器解析指令流程图。

图6是根据本发明一个实施例的otp存储器编程、读取操作的地址分配及冗余处理图。

图7是根据本发明一个实施例的otp存储器编程算法模块电路的编程算法流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明主要用于访问otp存储器,实现对otp存储器的不同操作控制,包括编程、读取、复位、唤醒、睡眠、otp自测操作。针对otp编程易出错的特点,本发明采用编程算法模块电路对编程地址冗余处理及对同一个位置允许进行至多加16次编程脉冲电压,保证数据正确编程至otp存储器件中。otp存储器为一次可编程存储器,即只能完成一次编程后不能再次更改和清除数据。针对特定信息的编程,otp存储器在mask掩膜和flash闪存之间做了非常完美的折中,对一些特殊场合的信息,如密钥信息、芯片序列号信息、接口封闭信息、系统信息等信息的存储,otp存储器对这些信息的存储起到至关重要的作用。尤其对密钥信息这种高度保密的信息进行存储,需要在访问otp存储器时作特殊处理。

otp存储器的访问包括指令的配置,并解析出具体的指令同时产生所配置指令访问otp存储器的时序,实现对otp存储器的访问。对于编程指令将数据编程至otp存储器,采用本发明访问otp存储器电路的编程算法模块电路,针对otp存储器编程操作中易出错的问题,该电路模块对编程地址冗余处理及对同一个地址多次施加编程脉冲,减少了otp存储器的编程出错,大大提高了otp存储器的可靠性。对所要编程的密钥信息进行安全保护。访问otp存储器的装置包括cpu或者机台对访问otp存储器指令的配置,芯片上电读取otp各个区域电路、总线控制电路、指令译码器电路对指令进行解析、otp时序发生器电路产生不同指令访问otp存储器的接口时序、编程算法模块电路执行对otp存储器的编程操作、加扰电路对读取的密钥信息进行加扰处理。详述如下:

参见图1,是otp存储器的区域分布为:芯片序列号区域,用于存储芯片序列号;接口封闭区域,用于存储相关接口封闭信息;otp存储器工作模式:用于存储otp存储器的操作模式,包括机台工作模式和正常工作模式;系统封闭控制区域,用于存储封闭系统区域的控制信息;用户封闭控制区域,用于存储用户区域的控制信息;系统密钥区域,用于存储密钥信息区域;用户区,用于存储用户所要存储的信息。

参见图2,为访问otp存储器的框图,实现对otp存储器的操作包括:编程、读取、复位、唤醒、睡眠、otp自测操作,由otp控制器电路完成,如图2所示,所要访问的otp存储器指令包括如下:

otp存储器睡眠模式,使otp处于睡眠模式,即当前otp处于不工作状态,可以进行在不用otp存储器时候置于该指令,降低系统的功耗,该指令的配置可以由cpu或者机台模式完成;

otp存储器唤醒模式,将otp从睡眠模式唤醒,当需要操作otp存储器件时,如往otp存储器编程数据、读取数据时候需要首先将otp存储器从睡眠模式切换到唤醒模式,该指令的配置可以由cpu或者机台模式完成;

复位otp存储器,在对otp存储器操作之前需要对otp存储器进行复位,在指令之间切换的时候也需要对其发生复位操作复位otp存储器件,该指令的配置可以由cpu或者机台模式完成;

otp存储器编程信息,对otp编程操作时候需要配置该指令,例如芯片序列号、芯片接口封闭信息、系统信息的编程通过配置otp_programinfo指令完成otp存储器的编程操作,该指令的配置可以由cpu或者机台模式完成;

otp存储器编程密钥,只针对编程密钥信息在otp存储器的存储,为了保证密钥信息的严格安全性,该指令必须由机台模式进行配置;

读取otp存储器,执行对otp存储器各个区域信息的读取操作,该指令的配置可以由cpu或者机台模式完成;

otp存储器自测模式,执行对otp存储器件的自我测试,该指令的配置可以由cpu或者机台模式完成。

一种访问otp存储器的装置,包括依次相连的cpu或机台完成指令配置、上电读取电路、总线控制电路、多路选择器电路、otp时序发生器电路、编程算法模块电路、加扰电路、otp存储器件,所有模块均采用全数字逻辑电路实现;

所述cpu或机台模式配置电路:用于配置访问otp存储器的指令;

所述上电读取电路:用于在otp存储器上电时,首先读取otp存储器各个区域的信息,包括otp存储器模式信息、otp存储器接口封闭信息、otp存储器系统区域封闭信息、otp存储器用户区域封闭信息以及密钥区域信息;

所述总线控制电路:包括指令寄存器电路和指令译码器电路,用于装载cpu或者机台所配置的一系列指令,并解析所定义的操作otp存储器的指令;指令寄存器电路用于存储cpu或者机台所配置的一系列指令,指令译码器电路实现将配置的指令翻译成具体有效的指令并传送至多路选择器。

所述多路选择器:用于选择上电读取电路读取信息指令传送至otp操作时序产生控制器或者总线控制电路的指令传送至otp操作时序产生控制器;

所述otp时序发生器电路:用于产生不同访问otp存储器指令的具体时序电路,包括复位、唤醒、编程、读取、睡眠操作,按照cpu或机台所配置的具体操作otp存储器的指令产生对应的访问otp存储器时序电路,传送至otp存储器件接口;

所述编程算法模块电路:针对对otp存储器的编程操作,解决在otp存储器中编程易出错的问题,该算法电路实现在编程otp存储器操作时,对otp存储器所要编程的地址进行冗余处理和对每一位数据编程采取施加可允许16次编程脉冲电压的处理,该模块电路由全数字电路实现,采用状态机控制实现编程算法。

所述加扰电路:用于从otp存储器中读取密钥信息进行加密处理,即对读出的密钥数据经过加扰电路进行加扰,使得用户所见的密钥数据不是真正编程至otp存储器的数据,从而对密钥信息安全进行保护。

参见图3,是根据本发明的一个实施例的otp存储控制电路框图。访问otp存储器,首先需要采用cpu或者机台模式对otp存储器下发操作指令。对otp存储器下发指令包括正常工作模式和机台测试模式,正常工作模式即采用cpu配置所要操作otp存储器的指令,机台测试模式则采用自动测试设备机台对操作指令地下发。本发明采用cpu或者机台两种模式灵活地对otp存储器实现访问。通过多路选择器(mux)电路对cpu或者机台所配置的指令传送至总线控制器;参见图2所示,cpu或机台所配置的指令包括:otp存储器睡眠模式、otp存储器唤醒模式、复位otp存储器、otp存储器编程信息、otp存储器编程密钥、读取otp存储器以及otp存储器自测模式。cpu或者机台配置这些操作otp存储器的指令传送至总线控制模块电路,这些指令存储在总线控制电路地指令寄存器中,由总线控制模块的指令译码器电路解析所定义的操作otp存储器的指令,将解析出地具体操作otp存储器的有效指令通过mux电路传送至otp时序发生器。上电读取电路实现上电时,对otp存储器各个区域,即图1所示的otp存储器分布信息进行读取;上电读取电路将读取操作命令通过mux(多路选择器)电路传送至otp时序发生器,产生读取时序,实现对otp存储器各个区域的读取;指令译码器电路对cpu或机台所配置的访问otp存储器指令解析后,产生有效的访问otp存储器指令至otp时序发生器,由时序发生器实现所配置的指令的具体时序生成,按照所配置的指令时序完成对otp存储器的访问。图3所示的编程算法模块电路,针对otp存储器编程密钥指令或otp存储器编程信息指令对otp存储器编程操作时,采用本发明的编程算法模块电路对编程otp存储器进行算法控制,该算法电路实现在编程otp存储器操作时,对otp存储器所要编程的地址进行冗余处理和对每一位数据编程采取施加可允许高达16次编程脉冲电压的处理,该模块电路由全数字电路实现,采用状态机控制实现编程算法。在对otp存储器密钥信息进行读取时,本发明针对密钥信息的特殊要求,严格对密钥信息进行保密,保证芯片安全,采取加扰电路对从otp存储器中读取的数据进行加扰处理,使得用户所见的密钥数据不是真正编程至otp存储器的数据,从而对密钥信息安全进行保护。

参见图4,实现对otp存储器上电读取,包括:芯片上电复位、上电唤醒otp存储器、上电复位otp存储器、读取otp存储器模式信息、读取otp存储器接口信息、读取otp存储器系统区域信息、读取用户区域信息、读取密钥区域信息,进入otp睡眠模式,上电读取otp存储器各个区域结束。

由cpu或机台模式将操作otp存储器的指令传送至总线控制电路,由总线控制电路的指令译码器解析所定义操作otp存储器的具体指令,按照解析出的有效指令驱动访问otp时序;指令译码电路包括:定义好访问otp的具体指令,等待访问otp指令,检查otp指令,判定访问otp指令是否为有效指令,如果为有效指令则传送至otp时序发生器,产生对应指令的时序,完成对otp存储器访问;若为无效指令则不继续执行下面步骤,终止访问otp存储器。所谓无效指令包括:在编程密钥信息时发送otp编程信息指令,在正常工作模式下配置编程密钥指令,在cpu模式下配置otp自测模式指令,自测模式指令同样也只能针对机台模式。

参见图5,是根据本发明一个实施例的otp存储器指令译码器解析指令,解析所定义的操作otp存储器的指令包括:

定义访问otp存储器的具体指令;

等待访问otp存储器指令;

检查otp存储器指令;以及

判定访问otp存储器指令是否为有效指令,如果为有效指令则传送至otp时序发生器,执行otp存储器操作指令,如果为无效指令则终止otp存储器的访问。

进入机台工作模式,发送otp存储器编程密钥指令,解析编程密钥指令,并由otp时序发生器产生该指令对应的访问otp存储器接口时序,将密钥数据编程至otp存储器中。密钥信息由于其具有特殊性,需要保证其信息的安全,因此在编程密钥信息时,必须采用机台工作模式完成密钥信息编程至otp存储器对应区域;读取密钥信息,对读取出来的密钥信息进行加扰处理,防止真正编程至otp存储器件的信息泄露,严格保证密钥的安全性。

进入正常工作模式,参见图1,为本发明实施例的otp存储器存储分布图,因此需要对otp相关区域编程信息,此时,发送otp编程信息指令,编程芯片序列号,otp时序发生器产生编程otp存储器时序,将芯片序列号编程至otp存储器中所对应区域。

在正常工作模式下,发送otp存储器编程信息指令,经过指令译码器对指令译码,并由otp时序发生器产生编程otp存储器时序,送至otp存储器件,完成编程接口封闭信息、编程系统区域信息。

参见图6,是本发明一个实施例的otp存储器编程、读取操作的地址分配及冗余处理图。编程、读取操作的地址分配及冗余处理由编程算法模块电路图控制实现,首先,编程操作对otp存储器的地址进行容错处理,即每编程一个数据对应4位otp存储器的物理地址,并依次对4位物理地址每一位进行编程,当其中不少于3位地址都编程成功时才可认为所配置的该位数据编程成功,否则认为该位数据编程失败。图6所示,访问otp存储器的地址由13位地址构成,包括系统地址、逻辑位地址以及物理地址。系统地址及逻辑位地址为选中otp存储器的具体一个区域。对于编程地址,一位逻辑地址映射4为物理地址的冗余,并一次对4位地址的每一位进行编程,当其中不少于3位地址都编程成功时才可认为所配置的该位数据编程成功,否则认为该位数据编程失败。

其中,所述对otp存储器4位物理地址中的每一位数据编程操作包括,参见图7,编程算法模块电路控制编程算法具体流程如下:

配置所要编程的地址,编程地址等于提供的初始编程地址;

在提供的初始编程地址位置施加3个编程脉冲电压,并记n(表示记录编程脉冲次数)等于0次;

施加完3个编程脉冲电压基础上继续施加1个编程脉冲电压;

编程验证操作;

通过编程验证操作得到的数据判定编程的数据是否为1(otp存储器编程数据为“1”,未编程的数据为“0”),若编程数据为“1”,则表示本次对该地址的编程操作成功,继续按照该方法执行下一个地址的编程操作。若编程数据为“0”,执行下一步;

判定是否在该位置加了16次编程脉冲电压,判定次数由n来计数。若在指定的该otp存储器地址位置未达到所加16次编程电压,则继续施加脉冲电压,n此时加一;每施加一次脉冲电压(即n每增加一)进行编程数据是否为“1”的判定,再判定编程脉冲电压是否编程至16次的循环判定,在16次编程脉冲操作之类验证编程数据成功,则该地址数据编程成功;若在该位置加了16次编程电压还是数据为“0”,则编程失败。

在正常工作模式下,完成对otp存储器接口封闭信息、系统区域信息的编程存储操作,实现对otp存储器的访问。

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