技术领域
[0001] 本申请涉及电子信息技术领域,尤其涉及一种使能电路和设备。
相关背景技术
[0002] 一次性可编程存储器(One Time Programmable,简称OTP),是一种特殊类型的非易失性存储器,只允许编程一次,一旦被编程将无法更改,常用于存储可靠且重复读取的数据。其中,电熔丝或电子保险丝(electric‑fuse,简称efuse)是一种一次性可编程存储器,是指在集成电路中电阻可以发生大幅度改变(由低阻态向高阻态改变)或者可以熔断的连接线。efuse应用范围广泛,例如可以在出厂之前写入芯片的相关信息,例如芯片可使用电源电压、芯片的版本号、生产日期等,也可以被置于电子产品中记录产品的部分信息,例如,产品的型号、生产日期以及产品销售情况等等。
[0003] 在相关技术中,通过电熔丝“一次性可编程”的特定可以满足多种需求,例如可以通过电熔丝来选择性的启用或禁用交付给客户的产品中的一种或多种功能。更具体的,在向客户交付产品前,通过对电熔丝进行“编程”,来允许开启或关闭产品的功能。又例如,在超市收银台,通过对销售出的产品中的电熔丝编程,来表示产品已被合法地销售而非被偷窃,从而可以被从超市带走。又例如,产品中包括10项功能,但客户购买时仅购买了具有6项功能的经济型版本,通过对电熔丝编程来禁用了另外4项功能。
具体实施方式
[0057] 下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0058] 图1示出了本申请一实施例的使能电路的示意图。如图1所示,该使能电路包括一次性可编程存储器、比较电路和逻辑运算电路。
[0059] 其中,一次性可编程存储器例如可以是eFuse。例如,在一次性可编程存储器处于未编程状态下,该一次性可编程存储器的输出端为低电平。在一次性可编程存储器处于编程状态下,该一次性可编程存储器的输出端为高电平。
[0060] 比较电路包括第一寄存器、第二寄存器和比较器。比较器比较第一寄存器内的第一数值和第二寄存器内的第二数值是否相同。若第一寄存器内的第一数值和第二寄存器内的第二数值相同,比较电路的输出信号的状态为第一状态,例如高电平。若第一寄存器内的第一数值和第二寄存器内的第二数值不相同,比较电路的输出信号的状态为第二状态,例如低电平。
[0061] 在本申请一些实施例中,第一寄存器为只读寄存器,第二寄存器为读写寄存器。即,第一寄存器内的第一数值不允许更改,第二寄存器内的第二数值允许更改,通过更改第二寄存器内的第二数值来改变比较电路输出信号的状态。
[0062] 在本申请另一些实施例中,第一寄存器为读写寄存器,第二寄存器为只读寄存器。即,第一寄存器内的第一数值允许更改,第二寄存器内的第二数值不允许更改,通过更改第一寄存器内的第一数值来改变比较电路输出信号的状态。
[0063] 逻辑运算电路基于一次性可编程存储器的状态以及比较电路的输出信号,输出使能信号。即,在本申请实施例中,可以将逻辑运算电路的输出信号作为用于指示开启或禁用指定功能的使能信号。例如,在使能信号有效的情况下,指示开启指定功能,在使能信号无效的情况下,指示关闭指定功能。其中,可以在逻辑运算电路的输出信号的状态为第一状态,例如高电平时,表示使能信号有效。在逻辑运算电路的输出信号的状态为第二状态,例如低电平时,表示使能信号无效。
[0064] 本申请实施例的使能电路,可以通过改变一次性可编程存储器的状态来改变使能信号的状态,例如对未编程的一次性可编程存储器进行编程,使得使能信号由有效变更为无效;在一次性可编程存储器被编程后,通过改变比较电路的输出信号的状态来改变使能信号的状态,从而能够多次改变使能信号的状态。
[0065] 本申请实施例还提供了一种设备,该设备包括图1所示的使能电路。该使能电路的使能信号与该设备的指定功能对应,通过至少一次改变使能电路工作时输出的使能信号的状态,实现至少一次开启或者关闭该设备的指定功能,例如,在使能信号有效时,开启该设备的指定功能,在使能信号无效时,关闭该设备的指定功能。在该设备中,若一次性可编程存储器处于未编程状态下,通过永久地改变一次性可编程存储器的状态可以改变使能信号的状态,若一次性可编程存储器处于编程状态下,可以通过改变第一寄存器或第二寄存器的值,来改变使能信号的状态。
[0066] 在本申请一些实施例中,使能电路中可以包括一级逻辑运算电路,也可以包括多级逻辑运算电路。在多级逻辑运算电路中,逻辑运算电路与一次性可编程存储器之间可以是一对一的关系,也可以是多对一的关系,还可以是一对多的关系。
[0067] 若逻辑运算电路与一次性可编程存储器之间是一对一的关系,则不同级的逻辑运算电路与不同的一次性可编程存储器相连。
[0068] 若逻辑运算电路与一次性可编程存储器之间是多对一的关系,则多级逻辑运算电路中部分逻辑运算电路或全部逻辑运算电路与相同的一次性可编程存储器相连。其中,该一次性可编程存储器可以包括多个比特位,不同级的逻辑运算电路可以与该一次性可编程存储器中不同的比特位相连。其中,每级逻辑运算电路可以与一次性可编程存储器中的一个比特位相连,也可以与一次性可编程存储器中的多个比特位相连。作为具体的示例,若使能电路中包括三级逻辑运算电路和一个一次性可编程存储器,该一次性可编程存储器包括多个比特位。该三级逻辑运算电路与一次性可编程存储器的连接情况可以是:
[0069] 第一级逻辑运算电路可以与一次性编程存储器中的第一个比特位相连,第二级逻辑运算电路可以与一次性编程存储器中的第二个比特位相连,第三级逻辑运算电路可以与一次性编程存储器中的第三个比特位相连;
[0070] 或者
[0071] 第一级逻辑运算电路可以与一次性编程存储器中的第一个比特位和第二个比特位相连,第二级逻辑运算电路可以与一次性编程存储器中的第三个比特位和第四个比特位相连,第三级逻辑运算电路可以与一次性编程存储器中的第五个比特位和第六个比特位相连。
[0072] 若逻辑运算电路与一次性可编程存储器之间是一对多的关系,则多级逻辑运算电路中部分逻辑运算电路或全部逻辑运算电路可以分别对应多个一次性可编程存储器。
[0073] 下面将结合具体的附图加以说明。
[0074] 图2示出了本申请一实施例的使能电路的示意图。如图2所示,该使能电路包括一级逻辑运算电路、一个一次性可编程存储器和一级比较电路。比较电路包括寄存器A(即第一寄存器)和寄存器B(即第二寄存器)。逻辑运算电路包括非门电路、或门电路。
[0075] 非门电路的输入端与一次性可编程存储器相连。非门电路基于一次性可编程存储器的状态做逻辑非运算,得到第一逻辑运算结果。例如,在一次性可编程存储器处于未编程状态下(低电平),非门电路的输入端为低电平,非门电路对低电平做逻辑非运算,得到高电平,非门电路的输出端为高电平。在一次性可编程存储器的处于编程状态下(高电平),非门电路的输入端为高电平,非门电路对高电平做逻辑非运算,得到低电平,非门电路的输出端为低电平。
[0076] 或门电路的输入端分别与比较电路的输出端、非门电路的输出端相连。或门电路将第一逻辑运算结果与比较电路的输出信号做逻辑或运算,得到第二逻辑运算结果,将第二逻辑运算结果作为使能信号,即,将或门电路的输出信号作为使能信号。若比较电路的输出信号、非门电路的输出信号中至少一个为高电平,或门电路的输出信号为高电平,使能信号有效。若比较电路的输出信号、非门电路的输出信号都是低电平,或门电路的输出信号为低电平,使能信号无效。
[0077] 本实施例使能电路所实现的逻辑运算可以通过下式表示:
[0078] enable=!bit[0]|(preset_number==C_PRESET_NUM)
[0079] 其中,enable表示使能信号,bit[0]表示一次性可编程存储器的状态。若一次性可编程存储器处于未编程状态下,bit[0]=0。若一次性可编程存储器处于编程状态下,bit[0]=1。preset_number表示寄存器A内存储的数值,即第一数值,C_PRESET_NUM表示寄存器B内存储的数值,即第二数值。作为举例,寄存器B是只读寄存器,而寄存器A是可读写的寄存器。
[0080] 根据式(1)可知,若一次性可编程存储器处于未编程状态下,或门电路输出信号的状态由一次性可编程存储器的状态来控制;若一次性可编程存储器处于编程状态下,或门电路的输出信号的状态由比较电路的输出信号状态来控制。具体的,在一次性可编程存储器处于编程状态下,若比较电路的输出信号为高电平,则或门电路的输出信号为高电平,使能信号有效,若比较电路的输出信号为低电平,则或门电路的输出信号为低电平,使能信号无效。
[0081] 因此,在本实施例的使能电路中,可以在一次性可编程存储器未编程时,通过对一次性可编程存储器编程,可永久地改变一次性可编程存储器的状态,从而改变使能信号的状态,在一次性可编程存储器编程的情况下,通过改变第一存储器或第二存储器内的值来改变比较电路输出信号的状态,从而改变使能信号的状态。
[0082] 在本申请可选的实施例中,还提供一种包括图2所示的使能电路的设备。在该设备中,若使能电路的一次性可编程存储器处于未编程状态下,使能信号的状态为有效状态,则开启该设备与使能信号对应的指定功能;在使能电路的一次性可编程存储器处于编程状态下,通过设置比较电路的第一寄存器内的第一数值与第二寄存器内的第二数值相同,使得使能信号的状态为有效状态,则开启该设备与使能信号对应的指定功能;通过设置第一寄存器内的第一数值与第二寄存器内的第二数值不相同,使得使能信号的状态为无效状态,则关闭该设备与使能信号对应的指定功能。
[0083] 图3示出了本申请另一实施例的使能电路的示意图。如图3所示,该使能电路包括多级逻辑运算电路、多级比较电路、多个一次性可编程存储器和第三寄存器。逻辑运算电路与一次性可编程存储器之间是一对一的关系,每级逻辑运算电路均有与其耦合的一次性可编程存储器以及比较电路。
[0084] 其中,每级逻辑运算电路的第一输入端与其对应的一次性可编程存储器相连;
[0085] 每级逻辑运算电路的第二输入端与其对应的比较电路的输出端相连;不同级的逻辑运算电路的第二输入端与不同的比较电路相连;
[0086] 第一级的逻辑运算电路的第三输入端与第三寄存器相连,中间级的逻辑运算电路的第三输入端与前一级的逻辑运算电路的输出端相连,最后一级的逻辑运算电路的第三输入端与前一级的逻辑运算电路的输出端相连;
[0087] 最后一级的逻辑运算电路的输出信号作为使能信号。
[0088] 在本申请实施例中,每级逻辑运算电路可以对第一输入端、第二输入端、第三输入端的输入信号做条件逻辑运算。逻辑运算电路根据第一输入端相连的一次性可编程存储器状态,从第二输入端以及第三输入端所输入的信号中选择其一作为每级逻辑运算电路的输出信号。若逻辑运算电路第一输入端的输入信号为低电平,则逻辑运算电路将第三输入端的输入信号作为输出信号,若逻辑运算电路第一输入端的输入信号为高电平,则逻辑运算电路将第二输入端的输入信号作为输出信号。
[0089] 具体的,在逻辑运算电路的第一输入端相连的一次性可编程存储器处于未编程状态下,若逻辑运算电路的第三输入端的输入信号的状态为第一状态,逻辑运算电路的输出信号的状态为第一状态;若逻辑运算电路的第三输入端的输入信号的状态为第二状态,逻辑运算电路的输出信号的状态为第二状态。
[0090] 在逻辑运算电路的第一输入端相连的一次性可编程存储器处于编程状态下,若逻辑运算电路的第二输入端的输入信号的状态为第一状态,逻辑运算电路的输出信号的状态为第一状态;若逻辑运算电路的第二输入端的输入信号的状态为第二状态,逻辑运算电路的输出信号的状态为第二状态。
[0091] 在本申请可选的实施例中,第三寄存器可以只读寄存器。第三寄存器内存储有第一预设值,第一预设值可以表示高电平。
[0092] 作为具体的示例,如图4所示,使能电路包括三级逻辑运算电路、三级比较电路(寄存器A2、寄存器B2、寄存器A1、寄存器B1、寄存器A0和寄存器B0)、三个一次性可编程存储器(efuse_2、efuse_1和efuse_0)和寄存器C。其中,寄存器A1、寄存器A2和寄存器A0作为第一寄存器,寄存器B1、寄存器B2和寄存器B0作为第二寄存器,寄存器C作为第三寄存器。寄存器C内存储的第一预设值为1。
[0093] 本实施例的使能电路所实现的逻辑运算表达式如下式所示:
[0094] enable=bit[2]?(preset_number_2==C_PRESET_NUM2):
[0095] bit[1]?(preset_number_1==C_PRESET_NUM1):
[0096] bit[0]?(preset_number_0==C_PRESET_NUM0):1
[0097] 其中,bit[2]表示efuse_2的状态,bit[1]表示efuse_1的状态,bit[0]表示efuse_0的状态。
[0098] 在图4中,efuse_2连接的逻辑运算电路为最后一级逻辑运算电路。作为示例,寄存器A2、寄存器A1、寄存器A0为读写寄存器,寄存器B2、寄存器B1、寄存器B0为只读寄存器。通过改变efuse_2、efuse_1、efuse_0的状态和/或寄存器A2、寄存器A1、存器A0的值来实现多次改变使能信号的状态。
[0099] 第一次设置使能电路时,efuse_2、efuse_1、efuse_0处于未编程状态下,寄存器C内的值为1,使能信号有效。
[0100] 第二次设置使能电路时,对efuse_0进行编程,即efuse_0处于编程状态下、efuse_2和efuse_1处于未编程状态下,使能信号的状态根据寄存器A0内的值确定。若寄存器A0内的值与寄存器B0内的值相同,则使能信号有效。若寄存器A0内的值与寄存器B0内的值不相同,使能信号无效。
[0101] 第三次设置使能电路时,对efuse_1进行编程,即efuse_0和efuse_1处于编程状态下(第二次设置使能电路时对efuse_0进行编程,efuse_0的状态无法再更改)、efuse_2处于未编程状态下,使能信号的状态根据寄存器A1内的值确定。若寄存器A1内的值与寄存器B1内的值相同,则使能信号有效。若寄存器A1内的值与寄存器B1内的值不相同,使能信号无效。
[0102] 第四次设置使能电路时,对efuse_2进行编程,即efuse_0、efuse_1和efuse_2都处于编程状态下(第二次设置使能电路时对efuse_0进行编程,efuse_0的状态无法再更改,第三次设置使能电路时对efuse_1进行编程,efuse_1的状态无法再更改,),使能信号的状态根据寄存器A2内的值确定。若寄存器A2内的值与寄存器B2内的值相同,则使能信号有效。若寄存器A2内的值与寄存器B2内的值不相同,使能信号无效。
[0103] 图5示出了本申请另一实施例的使能电路的示意图。与图3不同的是,本实施例中,逻辑运算电路与一次性可编程存储器之间是多对一的关系。
[0104] 如图5所示,该使能电路包括多级逻辑运算电路、多级比较电路、一个一次性可编程存储器和第三寄存器。该一次性可编程存储器包括多个比特位。
[0105] 其中,每级逻辑运算电路的第一输入端与一次性可编程存储器的至少一位比特位相连,以及根据与其相连的至少一位比特位的值来控制每级逻辑运算电路的输出信号;其中,不同级的逻辑运算电路的第一输入端与一次性可编程存储器中不同的比特位相连;
[0106] 每级逻辑运算电路的第二输入端与其对应的比较电路的输出端相连;不同级的逻辑运算电路的第二输入端与不同的比较电路相连;
[0107] 第一级的逻辑运算电路的第三输入端与第三寄存器相连,中间级的逻辑运算电路的第三输入端与前一级的逻辑运算电路的输出端相连,最后一级的逻辑运算电路的第三输入端与前一级的逻辑运算电路的输出端相连;
[0108] 最后一级的逻辑运算电路的输出信号作为使能信号。
[0109] 图6示出了本申请又一实施例的使能电路的示意图。与图3不同的是,在本实施例中,最后一级的逻辑运算电路的第二输入端与第四寄存器相连,而不是与比较电路相连。
[0110] 如图6所示,该使能电路包括多级逻辑运算电路、多级比较电路、多个一次性可编程存储器、第四寄存器和第五寄存器。
[0111] 每级逻辑运算电路的第一输入端与其对应的一次性可编程存储器相连;
[0112] 最后一级的逻辑运算电路的第二输入端与第四寄存器相连,中间级的逻辑运算电路的第二输入端与比较电路相连,第一级的逻辑运算电路的第二输入端与比较电路相连,中间级的逻辑运算电路的第二输入端和第一级的逻辑运算电路的第二输入端分别与不同的比较电路相连;
[0113] 第一级的逻辑运算电路的第三输入端与第五寄存器相连,中间级的逻辑运算电路的第三输入端与前一级的逻辑运算电路的输出端相连,最后一级的逻辑运算电路的第三输入端与前一级的逻辑运算电路的输出端相连;
[0114] 最后一级的逻辑运算电路的输出信号作为使能信号。
[0115] 在可选的实施例中,第四寄存器和第五寄存器均为只读寄存器。第四寄存器存储第二预设值,第五寄存器存储第一预设值。第二预设值可以表示低电平,第一预设值可以表示高电平。
[0116] 作为具体的示例,如图7所示,该使能电路包括三级逻辑运算电路、两路比较电路三个一次性可编程存储器、寄存器C和寄存器D。
[0117] 本实施例的使能电路所实现的逻辑运算表达式如下式所示:
[0118] enable=bit[2]?0:
[0119] bit[1]?(preset_number_1==C_PRESET_NUM1):
[0120] bit[0]?(preset_number_0==C_PRESET_NUM0):1
[0121] 参考图5和图6,在可选的实施例中,可以将图5所示的使能电路中最后一级逻辑运算电路的第二输入端相连的比较电路替换为第六寄存器,该第六寄存器可以是只读寄存器,存储有第二预设值。
[0122] 在本申请另一些实施例提供的设备可以包括如图3‑7所示的多级逻辑运算电路,其中,最后一级逻辑运算电路的输出信号为使能信号。在最后一级逻辑运算电路的第一输入端相连的一次性可编程存储器处于未编程状态下,通过设置最后一级逻辑运算电路的第三输入端的输入信号的状态为第一状态,使得使能信号为有效状态;在最后一级逻辑运算电路的第一输入端相连的一次性可编程存储器处于编程状态下,通过设置最后一级逻辑运算电路的第二输入端的输入信号的状态为第一状态,使得使能信号的状态为有效状态;通过设置最后一级逻辑运算电路的第二输入端的输入信号的状态为第二状态,使得使能信号的状态为无效状态。
[0123] 在可选的实施例中,通过至少一次改变所述使能电路工作时输出的使能信号的状态,实现开启或者关闭所述设备的一项或多项指定功能。
[0124] 可选地,设备内可以包括一路使能电路,通过该一路使能电路可以控制一项功能的开启或关闭,也可以同时控制多项功能的开启或关闭。
[0125] 参考图4,若通过该一路使能电路控制一项功能的开启或关闭,则可以通过改变使能信号的状态,来开启或关闭该项功能。
[0126] 若通过该一路使能电路控制多项功能的开启或关闭,例如三项功能的开启或关闭(efuse_2、efuse_1、efuse_0分别对应于设备的功能H、功能K和功能M),则:
[0127] 第一次设置使能电路时,efuse_2、efuse_1、efuse_0处于未编程状态下,寄存器C内的值为1,使能信号有效,开启设备的指定功能开启三项功能。
[0128] 第二次设置使能电路时,对efuse_0进行编程,通过改变寄存器A0内的值来改变功能M的开启或关闭。若寄存器A0内的值与寄存器B0内的值相同,则使能信号有效,开启功能M。若寄存器A0内的值与寄存器B0内的值不相同,使能信号无效,关闭功能M。
[0129] 第三次设置使能电路时,对efuse_1进行编程,通过改变寄存器A1内的值来改变功能K的开启或关闭。若寄存器A1内的值与寄存器B1内的值相同,则使能信号有效,开功能K。若寄存器A1内的值与寄存器B1内的值不相同,使能信号无效,关闭功能K。
[0130] 第四次设置使能电路时,对efuse_2进行编程,通过改变寄存器A2内的值来改变功能H的开启或关闭。若寄存器A2内的值与寄存器B2内的值相同,则使能信号有效,开启功能H。若寄存器A2内的值与寄存器B2内的值不相同,使能信号无效,关闭功能H。
[0131] 依然可选地,设备的功能可以被分组,每组内包括一项或多项功能,该设备内包括与每个分组一一对应的多个使能电路。
[0132] 在其他可选的实施例中,设备内可以包括多路使能电路。若设备包括多路使能电路,不同的使能电路可以对应于该设备不同的功能,不同的使能电路工作时输出的使能信号用于开启或关闭不同的功能。
[0133] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。