本发明涉及存储器技术领域,特别是涉及一种闪存编程电流产生电路及其方法。
背景技术:
基于超级闪存(superflashcell)的闪存内核(flaship),编程(program)操作需要设置选择电压sl=8.0v、字线电压wl=1.5v、位线电压bl=vdp电压之外,还需要位线电流idp=2.5ua的直流(dc)电流。
如图1所示为目前编程操作的位线电流idp(idp=ipd-ipu)的产生电路结构图,该电路包括编程信号产生电路10、恒流源模块20和闪存单元30,编程信号产生电路10由反相器inv1和或非门nor1组成,以在编程许可信号progen的控制下将编程数据输入din转化为编程输出信号do;恒流源模块20由nmos管mn1和恒流源ipu、ipd组成,用于在编程输出信号do的控制下打开nmos管mn1将两个恒流源相减获得编程电流idp;闪存单元30为选中存储单元cell,用于存储信息。
然而,现有的这种闪存编程电流产生电路功耗较大,而且编程电流idp是两个恒流源ipu、ipd的差,在应用于有极端功耗要求的闪存内核(ip)时,当考虑把编程电流idp降低到100na级别的时候,这种通过下拉电流减去上拉电流的方法很难做准。
技术实现要素:
为克服上述现有技术存在的不足,本发明之目的在于提供一种闪存编程电流产生电路及其方法,以在减少功耗的基础上获得准确的闪存编程电流。
为达上述目的,本发明提出一种闪存编程电流产生电路,包括:
编程信号产生电路,用于在编程许可信号progen的控制下将编程数据输入din转化为编程输出信号do;
恒流源模块,用于在所述编程输出信号do的控制下通过关闭上拉的pmos管以减小功耗并获得稳定的编程电流idp;
闪存单元,为选中存储单元,用于存储信息。
优选地,所述编程信号产生电路包括一反相器inv1和一或非门nor1。
优选地,所述编程许可信号progen连接至所述反相器inv1的输入端,所述反相器inv1的输出端连接至所述或非门nor1的一输入端,所述编程数据输入din连接至所述或非门nor1的另一输入端,所述或非门nor1的输出端即编程输出信号do连接至所述恒流源模块。
优选地,所述恒流源模块包括电平位移器ls1、pmos管mp1、nmos管mn1和恒流源ipd。
优选地,所述或非门nor1的输出端即编程输出信号do连接至所述nmos管mn1的栅极和电平位移器ls1的输入端,所述电平位移器ls1的互补输出端out_n连接至所述pmos管mp1的栅极,所述pmos管mp1的源极和衬底接电源电压,所述pmos管mp1的漏极连接所述nmos管mn1的漏极和闪存单元,所述nmos管mn1的源极和衬底通过所述电流源ipd接地。
优选地,所述闪存单元的位线bl接所述pmos管mp1的漏极以及所述nmos管mn1漏极,所述闪存单元的字线wl接1.5v电压。
优选地,编程时,编程许可信号progen为高,当所述编程数据输入din为低时,所述编程输出信号do为高,nmos管mn1导通,选中要编程的闪存单元通过下拉电流ipd把位线bl电压拉到0,编程电流idp=ipd,同时通过所述电平位移器将所述pmos管mp1关闭以把inhibit电压的开关关掉。
优选地,当所述编程数据输入din为高时,所述编程输出信号do为低,nmos管mn1截止,选中要编程的闪存单元保持擦除。
为达到上述目的,本发明还提供一种闪存编程电流产生方法,包括如下步骤:
步骤s1,利用编程信号产生电路在编程许可信号progen的控制下将编程数据输入din转化为编程输出信号do;
步骤s2,恒流源模块在所述编程输出信号do的控制下通过关闭上拉的pmos管以减小功耗并获得稳定的编程电流idp至闪存单元。
优选地,编程时,所述编程许可信号progen为高,当所述编程数据输入din为低时,所述编程输出信号do为高,nmos管mn1导通,选中要编程的闪存单元通过下拉电流ipd把位线bl电压拉到0,编程电流idp=ipd,同时通过所述电平位移器将所述pmos管mp1关闭以把inhibit电压的开关关掉;当所述编程数据输入din为高时,所述编程输出信号do为低,nmos管mn1截止,选中要编程的闪存单元保持擦除。
与现有技术相比,本发明提供了一种闪存编程电流产生电路及其方法,其可在减少功耗的基础上获得准确的闪存编程电流。
附图说明
图1为目前编程操作的位线电流idp的产生电路结构图;
图2为本发明一种闪存编程电流产生电路的结构示意图;
图3为本发明一种闪存编程电流产生方法的步骤流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图2为本发明一种闪存编程电流产生电路的结构示意图。如图2所示,本发明一种闪存编程电流产生电路,包括:编程信号产生电路10、恒流源模块20和闪存单元30。
其中,编程信号产生电路10由反相器inv1和或非门nor1组成,用于在编程许可信号progen的控制下将编程数据输入din转化为编程输出信号do;恒流源模块20由电平位移器ls1、pmos管mp1、nmos管mn1和恒流源ipd组成,用于在编程输出信号do的控制下通过电平位移器关闭上拉的pmos管以减小功耗并获得稳定的编程电流idp;闪存单元30为选中存储单元cell,用于存储信息。
编程许可信号progen连接至反相器inv1的输入端,反相器inv1的输出端连接至或非门nor1的一输入端,编程数据输入din连接至或非门nor1的另一输入端,或非门nor1的输出端即编程输出信号do连接至nmos管mn1的栅极和电平位移器ls1的输入端,电平位移器ls1的互补输出端out_n连接至pmos管mp1的栅极,pmos管mp1的源极和衬底接电源电压(2.5v),pmos管mp1的漏极连接nmos管mn1的漏极和存储单元cell的位线bl,nmos管mn1的源极和衬底通过电流源ipd接地,存储单元cell的字线wl接1.5v电压,存储单元cell的漏端接电源电压(2.5v)。
编程时,编程许可信号progen为高,当编程数据输入din为低时,编程输出信号do为高,nmos管mn1导通,选中要编程(program)的存储单元(cell)通过下拉电流ipd把bl电压拉到0,编程电流idp=ipd,同时通过电平位移器(level-shift)将pmos管mp1关闭以把inhibit(抑制)电压的开关关掉,这样可以减少编程时(program)inhibit电压(vd25)的负载电流达到减少功耗的目的;当编程数据输入din为高时,编程输出信号do为低,nmos管mn1截止,选中要编程(program)的存储单元(cell)保持擦除(擦除代表1)。
对于极端功耗要求的ip,当考虑把编程电流idp降低到100na级别的时候,通过下拉电流减去上拉电流的方法很难做到准确,可以通过这种方法较容易设计出一个精准的编程电流idp。
图3为本发明一种闪存编程电流产生方法的步骤流程图。如图3所示,本发明一种闪存编程电流产生方法,包括如下步骤:
步骤s1,利用编程信号产生电路在编程许可信号progen的控制下将编程数据输入din转化为编程输出信号do;
步骤s2,恒流源模块在所述编程输出信号do的控制下通过关闭上拉的pmos管以减小功耗并获得稳定的编程电流idp至闪存单元。
具体地,于步骤s2中,编程时,所述编程许可信号progen为高,当所述编程数据输入din为低时,所述编程输出信号do为高,nmos管mn1导通,选中要编程的闪存单元通过下拉电流ipd把位线bl电压拉到0,编程电流idp=ipd,同时通过所述电平位移器将所述pmos管mp1关闭以把inhibit电压的开关关掉;当所述编程数据输入din为高时,所述编程输出信号do为低,nmos管mn1截止,选中要编程的闪存单元保持擦除。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。