专利名称:多次可编程半导体存储设备及其多次编程方法
技术领域:
本发明涉及一种使用一次可编程设备的半导体存储设备,更确切地说涉及一种多次可编程半导体存储设备及其多次编程方法。
背景技术:
非易失性存储设备可以根据允许的编程频率而划分为一次可编程(称作OTP(one-time programmable))类型的设备和多次可编程(称作MTP)类型的设备。OTP单元(cell)允许对电子电路仅仅进行一次编程并且不允许其它编程。OTP单元可以是熔丝、抗熔丝、电可编程熔丝(e-fuse)、可擦除可编程只读存储器(EPROM)、等等。不使用分离的设备,不可能擦除存储在OTP单元中的程序。在EPROM的情况下,可以使用紫外线来执行擦除操作,但是擦除操作需要物理辅助设备并且不能以位部件电平(bit unit level)选择地执行擦除操作。
因此,当使用OTP单元阵列来存储数据时,禁止附加的编程操作以便一旦以晶片(wafer)电平或者终端用户电平对OTP单元进行了编程,就无法更新数据。因而,当存储的数据需要被更新时,使用MTP单元是不可避免的,尽管OTP单元具有诸如低成本、逻辑兼容性等优点。
非易失性MTP单元包括各种类型,诸如电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、磁RAM(MRAM)、相变RAM(PRAM)、等等。然而,尽管事实是在MTP单元的耐久性限度内多次编程是可行的,但是MTP单元由于附加的分离掩模(separate mask)而具有复杂的结构和更高的制造成本。因此,在一些其中要存储相对低量数据的应用中,MTP单元会导致生产商和供应商在市场中失去竞争优势。
转让给国际商业机器公司的U.S.专利第5,966,339号公开了一种使用熔丝单元的多次可编程半导体存储设备。部件(unit)包括用来存储数据位的多个熔丝单元,并且对熔丝单元的状态执行XOR操作以便用于更新数据。
根据美国专利第5,966,339号,当对部件进行编程时,包括在部件中的熔丝单元被顺序编程以便当对熔丝单元执行附加的编程操作时,部件中的数据被重复更新。
图1是图解在上述美国专利第5,966,339号中描述的常规的多阶段可再编程熔丝逻辑的框图。
参照图1,常规的多阶段可再编程熔丝逻辑包括四个熔丝分别具有输入P1、P2、P3、和P4的熔丝A、熔丝B、熔丝C和熔丝D。前两个熔丝,即熔丝A和熔丝B通过异或电路彼此连接。异或电路的输出Y1与熔丝C通过异或电路组合。以类似的方式,可以重复编程图1中的可再编程熔丝。
然而,根据美国专利第5,966,339号,仍然存在下列技术问题。
首先,为了更新存储在部件中的数据,存储的数据需要为外部设备所知。存储在各个部件中的数据被传输到外部设备并与将被写入该部件的新数据相比较。因此,需要另外的设备来执行上述操作。
其次,当当前存储在部件中的数据将被更新时,不能自动知道将被编程的部件中的多个熔丝中的熔丝。因此,会发生过度编程(over-programming)(其中熔丝被编程超过两次)或者同时编程(其中在同一部件中的至少两个熔丝被同时编程)。尤其是,一般使用多晶硅熔丝来实现电编程熔丝,其中通过在编程操作期间允许超过阈值的强电流脉冲流过来切割所述多晶硅熔丝。因此,与激光融化熔丝相比,编程状态与非编程状态之间几乎不存在差异。此外,各个状态的耐久性如此差以致可能发生过度编程。
因此,为了编程在所选择的部件中的所需熔丝,需要检查在所选择的部件中的各个熔丝的编程状态。因此,需要一种设备,其串行或者并行地提供熔丝的各个编程状态到外部设备。采用这种设备需要根据部件中包括的熔丝数量的多个衬垫(pad)或者寄存器,并且因而在芯片面积方面处于劣势。
第三,为了顺序地一次编程一个熔丝,需要解码电路以在部件中的多个熔丝之间选择一个熔丝。解码电路的使用会需要另外的地址衬垫、寄存器等等,并且因而在芯片面积方面处于劣势。
第四,为了当部件中所有熔丝被编程时不允许任何附加的编程,需要把编程状态通知给外部设备。
第五,当对部件进行了编程并且由该部件接收到用于写入不同数据的附加编程命令时,需要用于防止附加编程,或者用于向外部设备指示输入附加编程命令的设备。
发明内容
因此,提供本发明来基本上避免由于相关技术的局限和缺点而导致的一个或多个问题。
本发明的实施例可以提供一种多次可编程半导体存储设备,其中通过使用具有多个OTP单元的可编程部件来对半导体存储设备执行多次编程操作。此外,提供了一种多次可编程半导体存储设备的多次编程方法。
在本发明的一个实施例中,多次可编程半导体存储设备包括部件阵列、部件解码器和单元分配电路。部件阵列包括多个可编程部件,其每一个具有多个一次可编程单元。部件解码器基于地址信号生成用来选择部件阵列的可编程部件的部件选择信号。基于从部件阵列所接收的写入所选可编程部件中的第一数据和将被写入到所选可编程部件中的第二数据,单元分配电路生成奇数编号单元编程信号以及偶数编号单元编程信号,所述奇数编号单元编程信号用来对由部件选择信号所选择的可编程部件的多个一次编程单元的奇数编号的一次可编程单元中的一个进行编程,所述偶数编号单元编程信号用来对多个一次编程单元的偶数编号的一次可编程单元中的一个进行编程。
通过参考附图详细地描述本发明的示例实施例,本发明对本领域技术人员而言变得更加清楚,附图中的同一元件用同一参考数字来表示,其仅仅是通过图解的方式给出的,因而不限制本发明的示例实施例。
图1是图解常规的多阶段可再编程熔丝结构的框图。
图2是图解根据本发明实施例的多次可编程半导体存储设备的框图。
图3是图解根据本发明实施例的多次可编程半导体存储设备的电平移位器(level shifter)电路的框图。
图4是图解根据本发明实施例的多次可编程半导体存储设备的数据输入电平移位器的电路图。
图5是图解根据本发明实施例的多次可编程半导体存储设备的单元分配器的框图。
图6是图解根据本发明实施例的多次可编程半导体存储设备的单元分配器的电路图。
图7是图解根据本发明实施例的多次可编程半导体存储设备的部件阵列的框图。
图8是图解根据本发明实施例的可以对其至少进行两次编程的部件阵列的可编程部件的框图。
图9是图解根据本发明实施例的可以对其至少进行三次编程的部件阵列的可编程部件的框图。
图10是图解根据本发明另一实施例的可以对其至少进行三次编程的部件阵列的可编程部件的框图。
图11是图解根据本发明实施例的可编程部件的第一OTP单元的电路图。
图12是图解根据本发明实施例的可编程部件的第二OTP单元的电路图。
图13是图解根据本发明实施例的可以对其至少进行三次编程的可编程部件的第二OTP单元的电路图。
图14是图解根据本发明实施例的可编程部件的第三OTP单元的电路图。
图15是图解根据本发明实施例的多次可编程半导体存储设备的全状态检测器的电路图。
图16是图解根据本发明实施例的多次可编程半导体存储设备的错误检测器的电路图。
图17是图解根据本发明实施例的多次可编程半导体存储设备的电平下变换器(level down converter)的框图。
图18是图解根据本发明实施例的多次可编程半导体存储设备的电平下变换器的示例结构的电路图。
图19是图解根据本发明实施例的多次可编程半导体存储设备的移位寄存器电路的框图。
图20是图解根据本发明实施例的多次可编程半导体存储设备的移位寄存器电路的示例移位寄存器的电路图。
图21是图解根据本发明实施例的多次可编程半导体存储设备的移位寄存器电路的最后一个移位寄存器的电路图。
图22A和22B是图解根据本发明实施例的可以对其进行至少两次编程的多次可编程半导体存储设备的写操作的流程图。
图23A和23B是图解根据本发明实施例的可以对其进行至少三次编程的多次可编程半导体存储设备的写操作的流程图。
图24A至24E是图解根据本发明实施例的可以对其进行至少二次编程的多次可编程半导体存储设备的写操作的时序图。
图25A至25F是图解根据本发明实施例的可以对其进行至少三次编程的多次可编程半导体存储设备的写操作的时序图。
图26是图解根据本发明实施例的多次可编程半导体存储设备的部件阵列的读取操作的时序图。
图27A和27B是图解根据本发明实施例的多次可编程半导体存储设备的移位寄存器电路的操作的时序图。
具体实施例方式
下文将参照附图详细描述本发明。
应当理解,尽管在此使用术语第一、第二等来描述各种元件,但是这些元件不应受限于这些术语。这些术语仅仅用于彼此区分这些元件。例如,在不脱离本发明范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。在此使用的术语“和/或”包括一个或多个相关的所列项的任何和所有组合。
应当理解的是,当一个元件被称为“被连接”或“被耦合”至另一元件时,它可以被直接连接或者被直接耦合至另一元件,或者可以存在中间元件。相反,当一个元件被称为“被直接连接”或“被直接耦合”至另一元件时,不存在中间元件。用于描述元件之间关系的其它词可以以类似方式来解释(即,“在...之间”与“直接在...之间”,“邻接”与“直接邻接”,等等)。
在此使用的术语仅是为了描述特定实施例的目的,并且其意图不是限制本发明。在此使用的单数形式“一(a,an)”和“此(the)”也意图包括复数形式,除非上下文清楚地指示其它情况。还应当理解的是,当在此使用术语“包含(comprise,comprising)”、和/或“包括(include,including)”时,所述术语指明所述特点、整数、步骤、操作、元件、和/或组件的出现,但是不排除出现或者增加一个或多个其它特点、整数、步骤、操作、元件、组件、和/或其组。
除非另外定义,在此使用的所有术语(包括技术和科学术语)都具有与本发明所属的领域的普通技术人员所共同理解的意义相同的意义。还应当理解到,诸如在公共使用的词典中定义的术语的术语应当被解释为具有与在相关技术情况下的意义一致的意义,并且除非在此特别定义,否则不以理想化的或者过于正式的含义来解释这些术语。
图2是图解根据本发明实施例的多次可编程半导体存储设备20的框图。
参照图2,多次可编程半导体存储设备20还可以包括部件解码器22、单元分配器23和部件阵列24。
此外,多次可编程半导体存储设备20还可以包括完全状态检测器25、错误检测器26和移位寄存器电路28。
此外,多次可编程半导体存储设备20还可以包括电平移位器21和电平下变换器27。
电平移位器21根据多次可编程半导体存储设备20的内部操作电压,将外部提供的输入信号转换为内部信号。例如,输入信号可以具有大约1.2V的电压电平,而内部信号可以具有大约3.3V的电压电平。
电平移位器21接收数据输入信号DIN、写输入信号WRITE、地址输入信号ADD<0:6>和来自外部设备的读取输入信号READ,以便将分别接收的信号转换为多次可编程半导体存储设备的内部信号,即数据信号DIN_H、写信号WRITE_H、地址信号ADD_H<0:6>和读取信号READ_H。
在图2中,地址输入信号ADD<0:6>和地址信号ADD_H<0:6>分别具有7位,以便可以访问部件阵列24的总共128个可编程部件。应当注意的是,地址信号的位数和部件阵列24中的可编程部件的数目在不同的实施例中可以变化。
部件解码器22解码地址信号ADD_H<0:6>,以生成部件选择信号CSL<0:127>,用于在部件阵列24的128个可编程部件中选择由地址信号ADD_H<0:6>指定的可编程部件。
部件阵列24包括128个可编程部件。部件阵列24的各个可编程部件包括多个OTP单元。每个可编程部件用于存储一位信息。
部件阵列24接收部件选择信号CSL<0:127>,用来确定选择了部件阵列24的哪一个可编程部件,并且在写操作中,部件阵列24接收奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM,用以确定从可编程部件的多个OTP单元中选择哪一个OTP单元。
部件阵列24输出部件输出信号OUT<0:127>,用来输出存储在各个可编程部件中的值,和部件完全状态信号第N CELL_OUT<0:127>,其指示是否各个可编程部件中的所有OTP单元都被编程。部件完全状态信号第NCELL_OUT<0:127>可以指示可编程部件的最后一个OTP单元的编程状态。
此外,在写操作中,部件阵列24输出部件错误状态信号ERR<0:127>,其指示所选择的可编程部件是否具有错误。此外,部件阵列24将从部件输出信号OUT<0:127>分离的部件输出信号UNIT_ARRAY_OUT反馈至单元分配器23。
单元分配器23根据数据信号DIN_H、写信号WRITE_H和部件阵列输出信号UNIT_ARRAY_OUT,输出奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM。
即,单元分配器23基于数据信号DIN_H、写信号WRITE_H和部件阵列输出信号UNIT_ARRAY_OUT的逻辑组合,确定在各个可编程部件的多个OTP单元中,是要编程奇数编号OTP单元还是要编程偶数编号OTP单元。反馈从部件阵列24输出的部件阵列输出信号UNIT_ARRAY_OUT的原因是当前写入所选可编程部件中的数据对确定在所选可编程部件中的多个OTP单元中的哪一个OTP单元要被编程有影响。
完全状态检测器25基于从部件阵列24中的128个可编程部件输出的部件完全状态信号第N CELL_OUT<0:127>输出完全状态信号FULL。
错误检测器26基于从部件阵列24中的128个可编程部件输出的部件错误状态信号ERR<0:127>输出错误状态信号ERR。
电平下变换器27根据多次可编程半导体存储设备20的外部操作电压,将多次可编程半导体存储设备20的内部信号转换为外部信号。即,电平下变换器27执行与电平移位器21相反的操作。例如,电平下变换器27可以将具有大约3.3V的电压电平的内部信号转换为具有大约1.2V的电压电平的外部操作电压信号。
在读取操作中,基于加载信号LOAD和时钟信号CLK,移位寄存器电路28将从部件阵列24提供的128位数据串行输出至输出数据衬垫DOUT。从部件阵列24输出的128位数据可以对应于由电平下变换器27转换的外部部件输出信号OUT_L<0:127>或者外部部件完全状态信号第NCELL_OUT_L<0:127>。
提供给移位寄存器电路28的完全状态测试信号FULL_TEST用于确定将输出外部部件输出信号OUT_L<0:127>和外部部件完全状态信号第NCELL_OUT_L<0:127>中的哪一个。
以下将更详细地描述图2中各个元件的操作和结构。
图3是图解根据本发明实施例的多次可编程半导体存储设备的电平移位器电路21的框图。
参照图3,电平移位器21包括数据输入电平移位器DIN电平移位器31,写信号电平移位器WRITE电平移位器32,地址信号电平移位器ADD<0:6>电平移位器33,和读取信号电平移位器READ电平移位器34。
电平移位器31、32、33和34分别将从外部设备接收的数据输入信号DIN、写输入信号WRITE、地址输入信号ADD<0:6>和读取输入信号READ转换为数据信号DIN_H、写信号WRITE_H、地址信号ADD_H<0:6>和读取信号READ_H。
图4是图解根据本发明实施例的多次可编程半导体存储设备的数据输入电平移位器31的电路图。
参照图4,数据输入电平移位器31根据内部操作电压VCCH,基于数据输入信号DIN,生成数据信号DIN_H,所述数据输入信号DIN根据的是外部操作电压VCC。例如,如已参照图2所描述的,外部操作电压VCC可以具有大约1.2V的电压电平,而内部操作电压可以具有大约3.3V的电压电平。
数据输入电平移位器31可以使用通用电平移位器来实现,而数据输入电平移位器31可以具有与写信号电平移位器WRITE电平移位器32,地址信号电平移位器ADD<0:6>电平移位器33,和读取信号电平移位器READ电平移位器34的结构类似或者基本上相同的结构。
图5是图解根据本发明实施例的多次可编程半导体存储设备的单元分配器23的框图。
参照图5,单元分配器23包括部件阵列输出信号寄存器UNIT_ARRAY_OUT寄存器41,和单元编程信号生成器CELL_PGM生成器44。
部件阵列输出信号寄存器41在编程所选可编程部件之前,从部件阵列24中读取并存储当前在所选可编程部件中编程的值,以防止错误的编程操作。
即,基于从部件阵列24输出的阵列输出信号UNIT_ARRAY_OUT,部件阵列输出信号寄存器41将寄存器输出信号REGISTER_OUT传送到单元编程信号生成器CELL_PGM生成器44。
单元编程信号生成器44接收来自电平移位器21的数据信号DIN_H和写信号WRITE_H,以及经由部件阵列输出信号寄存器41、接收来自部件阵列24的部件阵列输出信号UNIT_ARRAY_OUT。
单元编程信号生成器44基于数据信号DIN_H、写信号WRITE_H和部件阵列输出信号UNIT_ARRAY_OUT的逻辑组合,生成奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM。上述信号的逻辑组合与奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM之间的关系可以表示如下。
参照表1,当写信号WRITE_H被激活时,生成奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM。
当部件阵列输出信号UNIT_ARRAY_OUT具有逻辑“0”并且数据信号DIN_H具有逻辑“0”(如第一行所图解的)时,维持所选可编程部件的当前编程状态以便奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM都不被激活,即,为逻辑“0”。
当部件阵列输出信号UNIT_ARRAY_OUT具有逻辑“0”并且数据信号DIN_H具有逻辑“1”(如第二行所图解的)时,奇数编号单元编程信号ODD_CELL_PGM被激活,即,为逻辑“1”。
当部件阵列输出信号UNIT_ARRAY_OUT具有逻辑“1”并且数据信号DIN_H具有逻辑“0”(如第三行所图解的)时,偶数编号单元编程信号EVEN_CELL_PGM被激活,即,为逻辑“1”。
当部件阵列输出信号UNIT_ARRAY_OUT具有逻辑“1”并且数据信号DIN_H具有逻辑“1”(如第四行所图解的)时,类似于第一行的情形,维持所选可编程部件的当前编程状态,以便奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM都不被激活,即,为逻辑“0”。
图6是图解根据本发明实施例的多次可编程半导体存储设备的单元分配器23的电路图。
参照图6,单元分配器23包括部件阵列输出信号寄存器UNIT_ARRAY_OUT寄存器41,和单元编程信号生成器CELL_PGM生成器44。
此外,部件阵列输出信号寄存器UNIT_ARRAY_OUT寄存器41还可以包括部件阵列输出信号开关UNIT_ARRAY_OUT开关42,和部件阵列输出信号锁存器UNIT_ARRAY_OUT锁存器43。
在传送写操作的数据的步骤中,即当写入在所选可编程部件中的值被读取时,奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM两个都是未被激活的。因此,部件阵列输出信号开关UNIT_ARRAY_OUT SWITCH 42的传送门TG41是关闭的,以便部件阵列输出信号UNIT_ARRAY_OUT被存储在部件阵列输出信号锁存器UNIT_ARRAY_OUT LATCH 43中。
在对所选可编程部件进行编程的步骤中,奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM中的至少一个被激活,以便部件阵列输出信号开关UNIT_ARRAY_OUT SWITCH 42的传送门TG41被打开。以下将详细描述传送数据和对OTP单元进行编程的步骤。
图7是图解根据本发明实施例的多次可编程半导体存储设备的部件阵列24的框图。
参照图7,根据本发明示例实施例的部件阵列24包括用于图解目的的128个可编程部件。
部件阵列24的128个可编程部件响应于部件选择信号CSL<0:127>和读取信号READ_H,输出部件输出信号OUT<0:127>和部件完全状态信号第NCELL_OUT<0:127>。
此外,部件阵列24的128个可编程部件基于奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM,输出部件错误状态信号ERR<0:127>。
从部件阵列24输出的部件输出信号OUT<0:127>经由某个传送门TG70、TG71,......中的一个,作为部件阵列输出信号UNIT_ARRAY_OUT被提供给单元分配器23,所述传送门由当前输入的部件选择信号CSL<0:127>来控制。
在读取操作中,在部件阵列中的所有可编程部件的部件输出信号OUT<0:127>被同时输出,而无需由部件选择信号CSL<0:127>来选择特定的可编程部件。在写操作中,仅仅由部件选择信号CSL<N>所选择的可编程部件的部件输出信号OUT<N>被输出,并作为部件阵列输出信号UNIT_ARRAY_OUT经由被置于部件阵列24的输出端口的传送门提供给单元分配器23。
图8是图解根据本发明实施例的可以被编程至少两次的、部件阵列24中的可编程部件80的框图。
参照图8,图2中部件阵列24中的可编程部件80包括两个OTP单元81和82。多次可编程半导体存储设备20的部件阵列24包括128个可编程部件。128个可编程部件可以具有相同的结构。在图8中,可编程部件80可以对应于部件阵列24的第0至第127个可编程部件中的第0个可编程部件。
在图8中的可编程部件80的第一OTP单元81接收奇数编号单元编程信号ODD_CELL_PGM,并且第二OTP单元82接收偶数编号单元编程信号EVEN_CELL_PGM。
两个OTP单元81和82的编程状态通过XOR门XOR81组合,并作为部件输出信号OUT<0>输出,以便数据可以被编程至少两次。基于两个OTP单元81和82的编程状态,可以确定部件输出信号OUT<0>。
表2示出依赖于OTP单元81和82的编程状态的部件输出信号OUT<0>的示例逻辑状态。
参照表2,当第一OTP单元81和第二OTP单元82都不被编程时,(即,从第一和第二OTP单元81和82输出的第一CELL_OUT<0>和第二CELL_OUT<0>都具有逻辑“1”),如第一行所示,部件输出信号OUT<0>具有逻辑“0”。当第一OTP单元81被编程(即第一CELL_OUT<0>具有逻辑“0”)而第二OTP单元82没有被编程(即第二CELL_OUT<0>具有逻辑“1”)时,如第二行所示,部件输出信号OUT<0>具有逻辑“1”。当第一OTP单元81和第二OTP单元82都被编程时,(即,第一CELL_OUT<0>和第二CELL_OUT<0>具有逻辑“0”),如第三行所示,部件输出信号OUT<0>具有逻辑“0”。
从第二OTP单元82输出的第二CELL_OUT<0>被提供给第一OTP单元81,以防止过度编程第一OTP单元81,其中当第一OTP单元81和第二OTP单元82都被编程时可能导致所述过度编程。即,当第二OTP单元82没有被编程时,第一OTP单元81是可编程的。
当第一和第二OTP单元81和82都被编程并且输入用于编程相反逻辑的数据的附加编程命令时,由部件错误状态信号生成器83生成部件错误状态信号ERR<0>。例如,当第二OTP单元82被编程并且再次将奇数编号单元编程信号ODD_CELL_PGM输入到第一OTP单元81以便将部件输出信号OUT<0>转变为逻辑“1”时,部件错误状态信号ERR<0>可以由部件错误状态信号生成器83生成。
第二OTP单元82的编程状态(即,第二CELL_OUT<0>)也被提供作为部件完全状态信号第N CELL_OUT<0>。部件完全状态信号第NCELL_OUT<0>被输入到完全状态检测器25以指示部件阵列24的完全状态。此外,部件完全状态信号第N CELL_OUT<0>可以经由图2中的电平下变换器27被发送到用户,以指示可编程部件的完全状态。
图9是图解根据本发明实施例的可以被编程至少三次的部件阵列24的可编程部件90的框图。
可编程部件90包括第一OTP单元91、第二OTP单元92和第三OTP单元93。第一OTP单元91和第三OTP单元93接收奇数编号单元编程信号ODD_CELL_PGM,并且第二OTP单元92接收偶数编号单元编程信号EVEN_CELL_PGM。
XOR门XOR91用于对第一OTP单元91和第二OTP单元92的编程状态(第一CELL_OUT<0>和第二CELL_OUT<0>)执行逻辑XOR操作,以及XOR门XOR92用于对第三OTP单元93的编程状态(第三CELL_OUT<0>)和XOR门XOR91的反相输出执行逻辑XOR操作。部件输出信号OUT<0>从XOR门XOR92输出。
表3示出依赖于OTP单元91、92和93的编程状态的部件输出信号OUT<0>的示例逻辑状态。
参照表3,当不对第一至第三OTP单元91、92和93进行编程(即,第一CELL_OUT<0>、第二CELL_OUT<0>和第三CELL_OUT<0>全部具有逻辑“1”)时,如第一行所图解的,部件输出信号OUT<0>具有逻辑“0”。当对第一OTP单元91进行编程(即,第一CELL_OUT<0>具有逻辑“0”)并且不对第二和第三OTP单元92和93进行编程(即,第二CELL_OUT<0>和第三CELL_OUT<0>具有逻辑“1”)时,如第二行所图解的,部件输出信号OUT<0>具有逻辑“1”。当对第一OTP单元91和第二OTP单元92两个都进行编程(即,第一CELL_OUT<0>和第二CELL_OUT<0>具有逻辑“0”)并且不对第三OTP单元93进行编程(即,第三CELL_OUT<0>具有逻辑“1”)时,如第三行所图解的,部件输出信号OUT<0>具有逻辑“0”。当对第一至第三OTP单元91、92和93进行编程(即,第一CELL_OUT<0>、第二CELL_OUT<0>和第三CELL_OUT<0>全部具有逻辑“0”)时,如第四行所图解的,部件输出信号OUT<0>具有逻辑“1”。
从第二OTP单元92输出的第二CELL_OUT<0>被提供给第一OTP单元91,以便仅仅当不对第二OTP单元92进行编程时才可以对第一OTP单元91进行编程。此外,第二OTP单元92的反相输出,第二CELL_OUTB<0>,被提供给第三OTP单元93以便仅当对第二OTP单元92进行编程时才可以对第三OTP单元93进行编程。第三OTP单元93的输出,第三CELL_OUTB<0>,被提供给第二OTP单元92,以便仅仅当不对第三OTP单元93进行编程时才可以对第二OTP单元92进行编程。
因此,可以防止当对第一至第三OTP单元91、92和93进行编程时会发生的对第二OTP单元92的过度编程。即,当对第一至第三OTP单元91、92和93进行编程时,即当部件输出信号OUT<0>具有逻辑“1”时,可以通过偶数编号单元编程信号EVEN_CELL_PGM防止对第二OTP单元92的过度编程。
当对第一至第三OTP单元91、92和93进行编程并且输入了用于编程相反逻辑的数据的附加编程命令时,由部件错误状态信号生成器94生成部件错误状态信号ERR<0>。例如,当对第三OTP单元93进行编程并且再次将偶数编号单元编程信号EVEN_CELL_PGM输入到第二OTP单元92时,可以由部件错误状态信号生成器94生成部件错误状态信号ERR<0>。
第三OTP单元93的编程状态(即,第三CELL_OUT<0>)也被作为部件完全状态信号第N CELL_OUT<0>提供。部件完全状态信号第NCELL_OUT<0>被输入完全状态检测器25以指示部件阵列24的完全状态。另外,可以经由图2中的电平下变换器27将部件完全状态信号第NCELL_OUT<0>传送至用户以指示可编程部件的完全状态。
图10是图解根据本发明的另一实施例的可以被编程至少三次的、部件阵列24的可编程部件100的框图。
类似于图9中的可编程部件90,图10中的可编程部件100包括第一OTP单元101、第二OTP单元102和第三OTP单元103。第一OTP单元101和第三OTP单元103接收奇数编号单元编程信号ODD_CELL_PGM,并且第二OTP单元102接收偶数编号单元编程信号EVEN_CELL_PGM。
然而,可编程部件100不同于可编程部件90之处在于对第一OTP单元101和第二OTP单元102的编程状态(第一CELL_OUT<0>和第二CELL_OUT<0>)执行逻辑XOR操作,以生成第一组合结果第1COMBINATION_OUT,并且由XOR门XOR102再次对从XOR门XOR101输出的第一组合结果第1COMBINATION_OUT和第三OTP单元103的反相编程状态执行逻辑XOR操作,以输出部件输出信号OUT<0>。
可以使用不同逻辑组合以便输出根据表3产生的部件输出信号OUT<0>。
输出基于部件错误状态检测的部件错误状态信号以及输出部件完全状态信号的、在被配置成防止过度编程的OTP单元的输出之间的连接都类似或者基本上类似于图9,并且将省略任何进一步的解释。
可编程部件的数量可以根据可能的编程次数而变化。例如,可编程部件可以包括N个OTP单元以确保至少进行N次编程。
此外,在可编程部件中的OTP单元可以使用XOR门和反相器组合其各个输出,以生成可编程部件的部件输出信号。
例如,在可以被编程至少N次的、图9中的可编程部件90的情况下,N个XOR门和N-1个反相器可以用于生成其部件输出信号。在可以被编程至少N次的、图10中的可编程部件100的情况下,N-1个XOR门和一个反相器可以用于生成部件输出信号。
即,当不对可编程部件中的所有OTP单元进行编程或者对偶数个OTP单元进行编程时,可编程部件的部件输出信号(其作为可编程部件的数据输出)被设置为逻辑“0”。当对可编程部件的OTP单元中的奇数个OTP单元进行编程时,可编程部件的部件输出信号(其作为可编程部件的数据输出)被设置为逻辑“1”。
因此,应当注意的是,可以使用可满足上述条件的、OTP单元的编程状态的其它类似逻辑组合。
图11是图解根据本发明实施例的可编程部件的第一OTP单元的电路图。在图11中,第一OTP单元是为了图解目的的图8中的可编程部件80的第一OTP单元81。
参照图11,第一OTP单元81包括用于生成单元编程信号第一CELL_PGM<0>的单元编程信号生成部件111、用于生成单元数据传送信号第一CELL_TRANSFER<0>的单元数据传送信号生成部件112和单元控制器113。在单元控制器113中,OTP单元可以使用电编程熔丝E-FUSE来实现。可替换地,OTP单元可以使用抗熔丝来实现,并且不同实施例中的其它各种元件可以用于OTP单元。
第一OTP单元81可以在读取和写操作中操作,并且第二OTP单元82以类似方式操作。
在读取操作中,当读取信号READ_H被激活时,单元数据传送信号第一CELL_TRANSFER<0>从单元数据传送信号生成部件112输出到单元控制器113。单元控制器113输出图11中的OTP单元(例如,电编程的熔丝E-FUSE)的编程状态,作为第一OTP单元81的输出,即第一CELL_OUT<0>。
写操作可以包括传送数据的步骤以及编程OTP单元的步骤,对应OTP单元的编程状态在所述传送期间被读取。
在传送数据的步骤中,施加于单元数据传送信号生成部件112的部件选择信号CSL<0>被激活,并且奇数编号单元编程信号ODD_CELL_PGM被去激活。当单元数据传送信号生成部件112的单元数据传送信号第1CELL_TRANSFER<0>被激活时,从单元控制器113将OTP单元(例如,电编程熔丝E-FUSE)的编程状态作为第一OTP单元81的输出第1CELL_OUT<0>而输出。因而,数据传送步骤基本上类似于上述读取操作。
当奇数编号单元编程信号ODD_CELL_PGM被单元分配器23激活时,执行写操作的编程步骤。当单元编程信号ODD_CELL_PGM被激活时,终止执行传送数据的步骤,并且根据第二OTP单元82的输出第2CELL_OUT<0>确定是否执行编程步骤。
当第二OTP单元82的输出,第2CELL_OUT<0>,具有逻辑“0”时,即,当对第二OTP单元82进行编程时,单元编程信号第1CELL_PGM<0>被去激活,以便不执行OTP单元(例如电编程熔丝E-FUSE)的编程。相反,当第二OTP单元82的输出第2CELL_OUT<0>具有逻辑“1”时,即,当不对第二OTP单元82进行编程时,单元编程信号第1CELL_PGM<0>被激活,以便执行OTP单元(例如电编程熔丝E-FUSE)的编程。
如上所述,仅仅通过图解的方式给出用于编程和读取在图11中图解的电编程熔丝的编程状态的单元控制器113的结构,并且因而可以根据所采用的OTP单元而改变其结构。同样,对于相同的OTP单元,可以以不同配置来实现单元控制器113。
图12是图解根据本发明实施例的可编程部件80的第二OTP单元的电路图。在图12中,第二OTP单元是用于图解目的的图8中可编程部件80的第二OTP单元82。
参照图12,类似于第一OTP单元81,第二OTP单元82包括用于生成单元编程信号第2CELL_PGM<0>的单元编程信号生成部件121、用于生成单元数据传送信号第2CELL_TRANSFER<0>的单元数据传送信号生成部件122和单元控制器123。在单元控制器123中,OTP单元可以使用电编程的熔丝E-FUSE来实现。可选择地,OTP单元可以使用抗熔丝来实现,并且在不同实施例中的其它各种元件可以用于OTP单元。
第二OTP单元82可以在读取操作和写操作中操作。
在读取操作中和在写操作的数据传送步骤中,单元编程信号生成部件121、单元数据传送信号生成部件122和单元控制器123的功能类似于已经参照图11描述的相似元件的功能,除了第二OTP单元82接收偶数编号单元编程信号EVEN_CELL_PGM,而不是奇数编号单元编程信号ODD_CELL_PGM之外。
此外,在写操作的编程步骤中,例如,当第一OTP单元81基于第二OTP单元82的输出第2CELL_OUT<0>确定电编程熔丝E-FUSE的编程时,第二OTP单元82独立于另一OTP单元的编程状态来确定OTP单元的编程。当可编程部件包括两个OTP单元时,仅仅当按照奇数编号单元编程信号ODD_CELL_PGM编程OTP单元从而按照偶数编号单元编程信号EVEN_CELL_PGM编程的第二OTP单元82可以不需要检查另一个OTP单元的编程状态时,会发生过度编程。
图13是图解根据本发明实施例的可以被编程至少三次的可编程部件的第二OTP单元的电路图。在图13中,OTP单元是用于图解目的的图9中可编程部件90的第二OTP单元92。此外,图10中可编程部件100的第二OTP单元102可以具有与图13中第二OTP单元92相同的结构。
在图10和11中分别图解的可编程部件90和100的第一OTP单元91和101可以具有与图11中的第一OTP单元81基本上相同的结构,并且因而将省略任何进一步解释。
参照图13,第二OTP单元92包括用于生成单元编程信号第2CELL_PGM<0>的单元编程信号生成部件131、用于生成单元数据传送信号第2CELL_TRANSFER<0>的单元数据传送信号生成部件132和单元控制器133。
在读取操作中,当读取信号READ_H被激活时,单元数据传送信号第2CELL_TRANSFER<0>从单元数据传送信号生成部件132输出到单元控制器133。单元控制器133输出OTP单元(例如电编程熔丝E-FUSE)的编程状态作为第二OTP单元92的输出,第2CELL_OUT<0>。
在写操作的数据传送步骤中,施加于单元数据传送信号生成部件132的部件选择信号CSL<0>被激活,而偶数编号单元编程信号EVEN_CELL_PGM被去激活。然后单元数据传送信号第2CELL_TRANSFER<0>被激活,从而从单元控制器133输出OTP单元(例如电编程熔丝E-FUSE)的编程状态作为第二OTP单元92的输出,第2CELL_OUT<0>。
在写操作的编程步骤中,偶数编号单元编程信号EVEN_CELL_PGM被单元分配器23激活。当单元编程信号EVEN_CELL_PGM被激活时,终止执行传送数据的步骤,并且依赖于第三OTP单元93的输出,第3CELL_OUT<0>,确定是否执行编程步骤。
当第三OTP单元93的输出,第3CELL_OUT<0>,具有逻辑“0”时,单元编程信号第2CELL_PGM<0>被去激活,以便不执行OTP单元(例如电编程熔丝E-FUSE)的编程。相反,当第三OTP单元93的输出,第3CELL_OUT<0>,具有逻辑“1”时,单元编程信号第2CELL_PGM<0>被激活,以便执行OTP单元(例如电编程熔丝E-FUSE)的编程。
图14是图解根据本发明实施例的可以对其至少进行三次编程的可编程部件的第三OTP单元的电路图。在图14中,OTP单元是用于图解目的的图9中可编程部件90的第三OTP单元93。另外,在图10中的可编程部件100的第三OTP单元103可以具有与图14中的第三OTP单元相同的结构。
参照图14,分别类似于图11、12和13中的OTP单元81、82和92,第三OTP单元93可以包括用于生成单元编程信号第3CELL_PGM<0>的单元编程信号生成部件141、用于生成单元数据传送信号第3CELL_TRANSFER<0>的单元数据传送信号生成部件142和单元控制器143。
在写操作的数据传送步骤中,当施加于单元数据传送信号生成部件142的部件选择信号CSL<0>被激活且奇数编号单元编程信号ODD_CELL_PGM被去激活时,单元数据传送信号第2CELL_TRANSFER<0>被激活以便将OTP单元(例如电编程熔丝E-FUSE)的编程状态作为第3CELL_OUT<0>从单元控制器143输出。
在写操作的编程步骤中,当奇数编号单元编程信号ODD_CELL_PGM被单元分配器23激活时,终止执行传送数据的步骤,并且依赖于第二OTP单元92的反相输出,第2CELL_OUTB<0>,确定是否执行编程步骤。
当第二OTP单元92的反相输出,第2CELL_OUTB<0>,具有逻辑“0”时,单元编程信号第3CELL_PGM<0>被去激活,以便不执行OTP单元(例如电编程熔丝E-FUSE)的编程。相反,当第二OTP单元92的反相输出第2CELL_OUT<0>具有逻辑“1”时,单元编程信号第3CELL_PGM<0>被激活,以便执行OTP单元(例如电编程熔丝E-FUSE)的编程。
图15是图解根据本发明实施例的多次可编程半导体存储设备的完全状态检测器25的电路图。
参照图15,完全状态检测器25包括NAND门,其对从部件阵列24的各个可编程部件输出的部件完全状态信号第N CELL_OUT<0:127>执行逻辑NAND操作。
因此,当从部件阵列24的各个可编程部件输出的部件完全状态信号第NCELL_OUT<0:127>中的任何一个具有逻辑“0”时,从完全状态检测器25输出完全状态信号FULL。
图16是图解根据本发明实施例的多次可编程半导体存储设备的错误检测器26的电路图。
参照图16,错误检测器26包括OR门,其对从部件阵列24的各个可编程部件输出的部件错误状态信号ERR<0:127>执行逻辑OR操作。
因此,当从部件阵列24的各个可编程部件输出的错误状态信号ERR<0:127>中的任何一个具有逻辑“1”时,从错误检测器26中输出错误信号ERR。
图17是图解根据本发明实施例的多次可编程半导体存储设备的电平下变换器27的框图。
参照图17,电平下变换器27包括128个用于部件输出信号的电平下变换器即OUT<0:127>电平下变换器、128个用于部件完全状态信号的电平下变换器即第N CELL_OUT<0:127>电平下变换器、以及用于错误状态信号的电平下变换器即ERR电平下变换器。
各个电平下变换器分别基于部件输出信号OUT<0:127>、部件完全状态信号第N CELL_OUT<0:127>以及错误状态信号ERR,生成外部部件输出信号OUT_L<0:127>、外部部件完全状态信号第N CELL_OUT_L<0:127>、和外部错误状态信号ERR_L。
图18是图解根据本发明实施例的多次可编程半导体存储设备的电平下变换器27的示例配置的电路图。在图18中,示出了用于部件输出信号的第一电平下变换器,OUT<0>电平下变换器。
参照图18,用于部件输出信号的电平下变换器,OUT<0>电平下变换器,包括两个反相器,所述两个反相器彼此串行地耦合,以便使部件输出信号OUT<0>的电平下降到外部信号的电压电平VCC。用于部件完全状态信号的电平下变换器第N CELL_OUT<0:127>电平下变换器和用于错误状态信号的电平下变换器ERR电平下变换器可以具有图18所示的结构基本上相同的结构。
图19是图解根据本发明实施例的多次可编程半导体存储设备的移位寄存器电路28的框图。
参照图19,移位寄存器电路28包括总共128个串行耦合的移位寄存器移位寄存器<0:127>。
128个移位寄存器移位寄存器<0:127>基于加载信号LOAD从电平下变换器27接收外部部件输出信号OUT_L<0:127>和外部部件完全状态信号第NCELL_OUT_L<0:127>。
此外,128位移位寄存器移位寄存器<0:127>顺序地输出外部部件输出信号OUT_L<0:127>和外部部件完全状态信号第N CELL_OUT_L<0:127>至输出数据衬垫DOUT。即,根据本发明实施例的移位寄存器电路28响应于读取信号READ_H,基于128位数据输出串行数据,所述128位数据是从部件阵列24的可编程部件并行输出的。
完全状态测试信号FULL_TEST用于选择从电平下变换器27输出的、将被加载到移位寄存器,移位寄存器<0:127>,上的外部部件输出信号OUT_L<0:127>和外部部件完全状态信号第N CELL_OUT_L<0:127>之一。
当完全状态测试信号FULL_TEST具有逻辑“0”时,外部部件输出信号OUT_L<0:127>被加载到移位寄存器,移位寄存器<0:127>,上,并且当完全状态测试信号FULL_TEST具有逻辑“1”时,外部部件完全状态信号第NCELL_OUT_L<0:127>被加载到移位寄存器,移位寄存器<0:127>,上。
图20是图解根据本发明实施例的多次可编程半导体存储设备的移位寄存器电路28的示例移位寄存器的电路图。除最后一个移位寄存器移位寄存器<127>之外,移位寄存器移位寄存器<0:127>中的任意一个可以具有与图20中所图解的移位寄存器相同的结构。
当加载信号LOAD具有逻辑“1”时,基于完全状态测试信号FULL_TEST,外部部件输出信号UNIT_L<0>或者外部部件完全状态信号第NCELL_OUT_L<0>分别经由传送门TG201或者传送门TG202存储在第一锁存器201中。当时钟信号CLK具有逻辑“1”时,在第一锁存器201中的数据被发送到第二锁存器202。
当加载信号LOAD转变到逻辑“0”时,新的寄存器数据输入REGISTER_DIN<0>被存储在第一锁存器201中。寄存器数据输入REGISTER_DIN<0>是移位寄存器移位寄存器<1>的寄存器数据输出REGISTER_DOUT<1>,并对应于外部部件输出信号OUT_L<1>或者外部完全状态信号第N CELL_OUT_L<1>。以类似的方式,存储在128个移位寄存器移位寄存器<0:127>中的数据被提供作为寄存器数据输出REGISTER_DOUT<0>。寄存器数据输出REGISTER_DOUT<0>被输出到输出数据衬垫DOUT。
图21是图解根据本发明实施例的多次可编程半导体存储设备的移位寄存器电路28的最后一个移位寄存器的电路图。最后一个移位寄存器可以对应于图19中移位寄存器电路28的最后一个移位寄存器,移位寄存器<127>。
移位寄存器移位寄存器<127>在形式和功能上类似于参照图20描述的移位寄存器移位寄存器<0>,除了移位寄存器移位寄存器<127>不接收来自先前移位寄存器的输入(例如,施加于图20中的移位寄存器移位寄存器<0>的寄存器数据输入REGISTER_DIN<0>)之外。其原因是存储在移位寄存器移位寄存器<127>中的数据通过输出数据衬垫DOUT被输出到外部设备。图21中的移位寄存器移位寄存器<127>的结构和功能类似于那些在图20中已经描述的移位寄存器的结构和功能,并且因而,省略有关移位寄存器移位寄存器<127>的描述。
图22A和22B是图解根据本发明实施例的可以对其进行至少两次编程的多次可编程半导体存储设备的写操作的流程图。
图22A和22B中的流程图是用于图解使用图8所示的具有两个OTP单元的可编程部件80可以对其进行至少两次编程的多次可编程半导体存储设备的写操作。
当具有有效电压电平VCC的写输入信号WRITE和适当的地址输入信号ADD被输入并且读取输入信号READ具有无效状态(例如,逻辑“0”)时,执行多次可编程半导体存储设备的写操作(步骤S11)。
由电平移位器21将写输入信号WRITE、地址输入信号ADD、读取输入信号READ电平移位为内部信号(步骤S12)。此外,由部件解码器22响应于地址输入信号ADD,生成用于选择部件阵列24的一个可编程部件的部件选择信号CSL<N>(步骤S12)。
通过在写信号WRITE_H的输入之前将部件选择信号CSL<N>施加于部件阵列24,首先执行数据传送步骤,同时不激活奇数编号单元编程信号ODD_CELL_PGM或偶数编号单元编程信号EVEN_CELL_PGM。部件阵列输出信号UNIT_ARRAY_OUT从部件阵列24输出到单元分配器23(步骤S13)。
接下来,识别部件阵列输出信号UNIT_ARRAY_OUT的逻辑值(步骤S14)。当部件阵列输出信号UNIT_ARRAY_OUT具有逻辑“1”时,即写在由部件选择信号CSL<N>选择的可编程部件中的数据具有逻辑“1”时,在图22B中所描述的步骤S15中确定数据信号DIN_H的逻辑值。
当在步骤S15中确定要写入在所选可编程部件中的输入数据DIN_H具有逻辑“1”时,根据表1不执行编程操作(参见第四行)(步骤S16)。
当确定要写入在所选可编程部件中的输入数据DIN_H具有逻辑“0”时,由分配器23输出具有逻辑“0”的奇数编号单元编程信号ODD_CELL_PGM和具有逻辑“1”的偶数编号单元编程信号EVEN_CELL_PGM(参见表1第三行)(步骤S17)。基于具有逻辑“1”的偶数编号单元编程信号EVEN_CELL_PGM,执行对所选可编程部件的第二OTP单元的OTP单元的编程(步骤S18)。
当在步骤S14中部件阵列输出信号UNIT_ARRAY_OUT的逻辑值被标识为逻辑“0”时,在步骤S20中也执行确定数据信号DIN_H的逻辑值。
当数据信号DIN_H的逻辑值具有逻辑“0”时,根据表1不执行编程操作(参见第一行)(步骤S21)。当数据信号DIN_H的逻辑值具有逻辑“1”时,由分配器23将具有逻辑“1”的奇数编号单元编程信号ODD_CELL_PGM和具有逻辑“0”的偶数编号单元编程信号EVEN_CELL_PGM输出(参见表1第二行)(步骤S22)。
接下来,确定所选择的可编程部件的第二OTP单元是否被编程(步骤S23)。如果第二OTP单元还没有被编程,那么第一OTP单元被编程(步骤S24)。如果第二OTP单元已经被编程,那么所选择的可编程部件具有完全状态,从而部件错误状态信号ERR<N>被激活(步骤S25)。
响应于激活的部件错误状态信号ERR<N>,错误状态信号ERR被错误检测器26激活(步骤S26)。接下来,电平下变换器27使错误状态信号ERR的电平下降以输出外部错误状态信号ERR_L(步骤S27)。
图23A和23B是图解根据本发明实施例的可以被编程至少三次的多次可编程半导体存储设备的写操作的流程图。
图23A和23B中的流程图是用于图解使用可编程部件90和100之一可以对其进行至少三次编程的多次可编程半导体存储设备的写操作,所述可编程部件90和100分别具有图9和10所示的三个OTP单元。
当具有有效电压电平VCC和适当的地址输入信号ADD的写输入信号WRITE被输入并且读取输入信号READ具有无效状态(例如,逻辑“0”)时,执行多次可编程半导体存储设备的写操作(步骤S31)。
写输入信号WRITE、地址输入信号ADD和读取输入信号READ被电平移位器21电平移位到内部信号(步骤S32)。此外,部件解码器22响应于地址输入信号ADD,生成用于选择部件阵列24的一个可编程部件的部件选择信号CSL<N>(也是步骤S32的部分)。
通过在写信号WRITE_H的输入之前将部件选择信号CSL<N>施加于部件阵列24,首先执行数据传送步骤,同时不激活奇数编号单元编程信号ODD_CELL_PGM或偶数编号单元编程信号EVEN_CELL_PGM。从由部件选择信号CSL<N>选择的可编程部件输出的部件阵列输出信号UNIT_ARRAY_OUT被提供给单元分配器23(步骤S33)。
接下来,识别部件阵列输出信号UNIT_ARRAY_OUT的逻辑值(步骤S34)。当部件阵列输出信号UNIT_ARRAY_OUT具有逻辑“0”时,即写在由部件选择信号CSL<N>选择的可编程部件中的数据具有逻辑“0”时,数据信号DIN_H的逻辑值在图23B中所描述的步骤S35中确定。
当在步骤S35中确定要写入在所选可编程部件中的输入数据DIN_H具有逻辑“0”时,根据表1不执行编程操作(参见表1第一行)(步骤S36)。
当确定要写入在所选可编程部件中的输入数据DIN_H具有逻辑“1”时,由分配器23输出具有逻辑“1”的奇数编号单元编程信号ODD_CELL_PGM和具有逻辑“0”的偶数编号单元编程信号EVEN_CELL_PGM(参见表1第二行)(步骤S37)。
接下来,确定所选择的可编程部件的第二OTP单元是否被编程(步骤S38)。如果第二OTP单元还没有被编程,那么第一OTP单元被编程(步骤S39)。当第二OTP单元已经被编程时,那么第三OTP单元被编程(步骤S40)。
当在步骤S34中部件阵列输出信号UNIT_ARRAY_OUT的逻辑值被识别为逻辑“1”时,在步骤S41中也执行确定数据信号DIN_H的逻辑值。
当在步骤S41中数据信号DIN_H的逻辑值被识别为逻辑“1”时,根据表1不执行编程操作(参见第四行)(步骤S42)。当将要写入所选择的可编程部件中的数据信号DIN_H的逻辑值具有逻辑“0”时,由分配器23将具有逻辑“0”的奇数编号单元编程信号ODD_CELL_PGM和具有逻辑“1”的偶数编号单元编程信号EVEN_CELL_PGM输出(参见表1第三行)(步骤S43)。
接下来,确定所选择的可编程部件的第三OTP单元是否被编程(步骤S44)。如果第三OTP单元还没有被编程,那么第二OTP单元被编程(步骤S45)。如果第三OTP单元已经被编程,那么所选择的可编程部件具有完全状态,从而部件错误状态信号ERR<N>被激活(步骤S46)。
响应于激活的部件错误状态信号ERR<N>,错误状态信号ERR被错误检测器26激活(步骤S47)。接下来,电平下变换器27使错误状态信号ERR的电平下降以输出外部错误状态信号ERR_L(步骤S48)。
图24A至24E是图解根据本发明实施例的可以对其进行至少两次编程的多次可编程半导体存储设备的写操作的时序图。
图24A至24E中的时序图是用于图解对部件阵列24的第一可编程部件和第二可编程部件执行的写操作。为了图解的目的,第一和第二可编程部件被假定存储相同的数据并且响应于相同的输入数据而执行写操作。
可以使用图8中所示的具有两个OTP单元的可编程部件80对其进行至少两次编程的多次可编程半导体存储设备的写操作可以在五种情况下执行。
第一种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“0”并且输入数据信号DIN具有逻辑“0”。在这种情况下,当前存储的数据被维持从而不执行编程操作。
参照图24A,用于第一可编程部件的地址信号241a和用于第二可编程部件的地址信号241b被顺序地输入以顺序生成部件选择信号CSL<0>242a和部件选择信号CSL<1>242b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“0”(参见图24A中243)并且数据信号DIN具有逻辑“0”(参见图24A中244),从而可以应用于第一种情况。因此,奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM都分别具有无效的状态245和246。
第二种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“0”并且输入数据信号DIN具有逻辑“1”,并且在所选的可编程部件中的两个OTP单元都未被编程。在这种情况下,对应的可编程部件的第一OTP单元被编程。
参照图24B,用于第一可编程部件的地址信号251a和用于第二可编程部件的地址信号251b被顺序地输入以顺序生成部件选择信号CSL<0>252a和部件选择信号CSL<1>252b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“0”(参见图24B中253)并且数据信号DIN具有逻辑“1”(参见图24B中254),从而可以应用于第二种情况。因此,生成用于各个可编程部件的奇数编号单元编程信号ODD_CELL_PGM 255a和255b。响应于奇数编号单元编程信号ODD_CELL_PGM 255a和255b,生成第一OTP单元编程信号256a和256b。
第三种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“1”并且输入数据信号DIN具有逻辑“1”。在这种情况下,当前存储的数据被维持从而不执行编程操作,类似于第一种情况。
参照图24C,用于第一可编程部件的地址信号261a和用于第二可编程部件的地址信号261b被顺序地输入以顺序生成部件选择信号CSL<0>262a和部件选择信号CSL<1>262b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“1”(参见图24C中263)并且数据信号DIN具有逻辑“1”(参见图24C中264),从而可以应用于第三种情况。因此,奇数编号单元编程信号ODD_CELL_PGM 265和偶数编号单元编程信号EVEN_CELL_PGM 266都不被激活。
第四种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“1”并且输入数据信号DIN具有逻辑“0”。在这种情况下,对应的可编程部件的第二OTP单元被编程。
参照图24D,用于第一可编程部件的地址信号271a和用于第二可编程部件的地址信号271b被顺序地输入以顺序生成部件选择信号CSL<0>272a和部件选择信号CSL<1>272b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“1”(参见图24D中273)并且数据信号DIN具有逻辑“0”(参见图24D中274),从而可以应用于第四种情况。因此,生成用于各个可编程部件的偶数编号单元编程信号EVEN_CELL_PGM 275a和275b。响应于偶数编号单元编程信号EVEN_CELL_PGM 275a和275b,生成用于各个可编程部件的第二OTP单元编程信号276a和276b。
第五种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“0”并且输入数据信号DIN具有逻辑“1”,并且,在所选可编程部件中的两个OTP单元都被编程。在这种情况下,对应的可编程部件具有完全状态从而试图在可编程部件中存储相反逻辑的数据会导致错误状态信号ERR的生成。
参照图24E,用于第一可编程部件的地址信号281a和用于第二可编程部件的地址信号281b被顺序地输入以顺序生成部件选择信号CSL<0>282a和部件选择信号CSL<1>282b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“0”(参见图24E中283)并且数据信号DIN具有逻辑“1”(参见图24E中284),从而可以应用于第二或第五种情况。然而,与第二种情况相比,存在不同之处对可编程部件中的OTP单元都进行编程。首先,如图24E中所图解的,生成用于各个可编程部件的奇数编号单元编程信号ODD_CELL_PGM 285a和285b。然而,接收奇数编号单元编程信号ODD_CELL_PGM的可编程部件生成部件错误状态信号ERR<0>和ERR<1>而不是编程其第一OTP单元。错误检测器26基于部件错误状态信号ERR<0>和ERR<1>生成错误状态信号ERR 286a和286b。
图25A至25F是图解根据本发明实施例的可以对其进行至少三次编程的多次可编程半导体存储设备的写操作的时序图。
图25A至25F中的时序图是用于图解对部件阵列24的第一可编程部件和第二可编程部件执行的写操作。为了图解的目的,第一和第二可编程部件被假定存储相同的数据并且响应于相同的输入数据而执行写操作。
可以在六种情况下执行使用图9和10中所示的具有三个OTP单元的可编程部件90或100对其进行至少三次编程的多次可编程半导体存储设备的写操作。
第一种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“0”并且输入数据信号DIN具有逻辑“0”。在这种情况下,当前存储的数据被维持从而不执行编程操作。
参照图25A,用于第一可编程部件的地址信号291a和用于第二可编程部件的地址信号291b被顺序地输入以顺序生成部件选择信号CSL<0>292a和部件选择信号CSL<1>292b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“0”(参见图25A中293)并且数据信号DIN具有逻辑“0”(参见图25A中294),从而可以应用于第一种情况。因此,奇数编号单元编程信号ODD_CELL_PGM和偶数编号单元编程信号EVEN_CELL_PGM都具有无效状态295和296。
第二种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“0”并且输入数据信号DIN具有逻辑“1”,并且在所选的可编程部件中的所有三个OTP单元都未被编程。在这种情况下,对应的可编程部件的第一OTP单元被编程。
参照图25B,用于第一可编程部件的地址信号301a和用于第二可编程部件的地址信号301b被顺序地输入以顺序生成部件选择信号CSL<0>302a和部件选择信号CSL<1>302b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“0”(参见图25B中303)并且数据信号DIN具有逻辑“1”(参见图25B中304),从而可以应用于第二种情况。因此,生成用于各个可编程部件的奇数编号单元编程信号ODD_CELL_PGM 305a和305b。响应于奇数编号单元编程信号ODD_CELL_PGM 305a和305b,生成第一OTP单元编程信号306a和306b。
第三种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“1”并且输入数据信号DIN具有逻辑“1”。在这种情况下,当前存储的数据被维持从而不执行编程操作,类似于第一种情况。
参照图25C,用于第一可编程部件的地址信号311a和用于第二可编程部件的地址信号311b被顺序地输入以顺序生成部件选择信号CSL<0>312a和部件选择信号CSL<1>312b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“1”(参见图25C中313)并且数据信号DIN具有逻辑“1”(参见图25C中314),从而可以应用于第三种情况。因此,奇数编号单元编程信号ODD_CELL_PGM 315和偶数编号单元编程信号EVEN_CELL_PGM 316都不被激活。
第四种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“1”并且输入数据信号DIN具有逻辑“0”,并且三个OTP单元中的第一OTP单元被编程。在这种情况下,相应可编程部件的第二OTP单元被编程。
参照图25D,用于第一可编程部件的地址信号321a和用于第二可编程部件的地址信号321b被顺序地输入以顺序生成部件选择信号CSL<0>322a和部件选择信号CSL<1>322b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“1”(参见图25D中323)并且数据信号DIN具有逻辑“0”(参见图25D中324),从而可以应用于第四种情况。因此,生成用于各个可编程部件的偶数编号单元编程信号EVEN_CELL_PGM 325a和325b。响应于偶数编号单元编程信号EVEN_CELL_PGM,生成用于各个可编程部件的第二OTP单元编程信号326a和326b。
第五种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“0”并且输入数据信号DIN具有逻辑“1”,并且在所选择的可编程部件中的三个OTP单元中的第一和第二OTP单元被编程。第五种情况类似于写操作的第二种情况,除了在第三种情况下第一和第二OTP单元被编程而在第二种情况下不是所选择的可编程部件中的全部三个OTP单元都被编程之外。因此,在第五种情况下,第三个OTP单元被编程。
参照图25E,用于第一可编程部件的地址信号331a和用于第二可编程部件的地址信号331b被顺序地输入以顺序生成部件选择信号CSL<0>332a和部件选择信号CSL<1>332b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“0”(参见图25E中333)并且数据信号DIN具有逻辑“1”(参见图25E中334),从而可以应用于第二或者第五种情况。因此,生成用于各个可编程部件的奇数编号单元编程信号ODD_CELL_PGM 335a和335b。然而,由于已经对接收奇数编号单元编程信号ODD_CELL_PGM的各个可编程部件的第一和第二OTP单元进行了编程,因此第三OTP单元被编程(参见图25E中336a和336b)。
第六种情况是,其中存储在由地址信号ADD<0:6>选择的可编程部件中的数据具有逻辑“1”并且输入数据信号DIN具有逻辑“0”,并且,在所选可编程部件中的全部三个OTP单元都被编程。在这种情况下,相应的可编程部件具有完全状态,从而试图在可编程部件中存储相反逻辑的数据会导致错误状态信号ERR的生成。
参照图25F,用于第一可编程部件的地址信号341a和用于第二可编程部件的地址信号341b被顺序地输入以顺序生成部件选择信号CSL<0>342a和部件选择信号CSL<1>342b。
第一可编程部件的部件输出信号和第二可编程部件的部件输出信号都具有逻辑“1”(参见图25F中343)并且数据信号DIN具有逻辑“0”(参见图25F中的344),从而可以应用于第二或者第四种情况。然而,与第二和第四种情况的比较揭示了如下差异在可编程部件中的OTP单元都已经被编程。首先,如图25B和25D中所图解的,生成用于各个可编程部件的奇数编号单元编程信号ODD_CELL_PGM 345a和345b。然而,接收奇数编号单元编程信号ODD_CELL_PGM的各个可编程部件生成部件错误状态信号ERR<0>和ERR<1>。错误检测器26基于部件错误状态信号ERR<0>和ERR<1>生成错误状态信号ERR 346a和346b。
图26是图解根据本发明实施例的多次可编程半导体存储设备的部件阵列的读取操作的时序图。
参照图26,当读取信号READ 351被激活时,执行根据本发明实施例的多次可编程半导体存储设备的部件阵列24的读取操作。
图2中图解的多次可编程半导体存储设备20顺序地串行输出存储在部件阵列24中的数据。因此,在读取操作期间,地址信号ADD和输入数据信号DIN被忽略。
在读取信号READ 351被激活之后,将存储在部件阵列的所有可编程部件中的数据作为部件输出信号OUT<0:127>同时输出。
由电平下变换器27使从各个可编程部件输出的部件输出信号OUT<0:127>352的电平下降。此外,从电平下变换器27输出的外部部件输出信号OUT_L<0:127>被移位寄存器电路28串行化。
当存储在部件阵列的各个可编程部件中的数据被输出作为部件输出信号OUT<0:127>352时,将所有可编程部件的完全状态作为部件完全状态信号第N CELL_OUT<0:127>来提供。
完全状态检测器25基于部件完全状态信号第N CELL_OUT<0:127>输出完全状态信号FULL。当部件阵列24中的所有可编程部件中的至少一个具有完全状态时,完全状态信号FULL被激活(参见图26中353)。当没有任何一个可编程部件具有完全状态时,完全状态信号FULL不被激活(参见图26中354)。
此外,尽管没有在图26中图解,在读取操作中,存储在部件阵列24的所有可编程部件中的数据、各个可编程部件的部件输出信号OUT<0:127>352和完全状态信号第N CELL_OUT<0:127>可以如上所述被同时输出。
类似于部件输出信号OUT<0:127>352,电平下变换器27使部件完全状态信号第N CELL_OUT<0:127>的电平下降,并将其作为外部部件完全状态信号第N CELL_OUT_L<0:127>提供给移位寄存器电路28。
移位寄存器电路28接收外部部件完全状态信号第NCELL_OUT_L<0:127>和外部部件输出信号OUT<0:127>352,并基于完全状态测试信号FULL_TEST选择性地串行化和输出外部部件输出信号OUT_L<0:127>或外部部件完全状态信号第N CELL_OUT_L<0:127>。以下参照图27A和27B描述根据完全状态测试信号FULL_TEST的移位寄存器电路28的操作。
图27A和27B是图解根据本发明实施例的多次可编程半导体存储设备的移位寄存器电路的操作的时序图。
参照图27A和27B,地址信号ADD和输入数据信号DIN如在上述的读取操作期间一样被忽略。
参照图27A,完全状态测试信号FULL_TEST不被激活(参见361)。128个可编程部件的外部部件输出信号OUT_L<0:127>通过加载信号LOAD 362被存储在128个移位寄存器中。当时钟信号CLK 363按照预先确定的量进行转换(toggle)时,存储在128个移位寄存器中的数据通过输出数据衬垫DOUT被顺序地输出(参见364)。
参照图27B,完全状态测试信号FULL_TEST被激活(参见371)。因此,128个可编程部件的外部部件完全状态信号第N CELL_OUT_L<0:127>被存储在128个移位寄存器中,并且当时钟信号CLK 373按照预先确定的量进行转换时,存储在128个移位寄存器中的数据通过输出数据衬垫DOUT而被顺序地输出(参见374)。
如上所述,可以使用一次可编程部件来实现多次可编程半导体存储设备。因此,多次可编程半导体存储设备可以适用于如下应用其中数据应当被永久保存的应用,以及其中需要多次编程的应用。而且,可以获得逻辑兼容性和相对较低的花费。
通过上述对本发明示例实施例的描述,应当理解到,由于在不脱离以下权利要求所要求的精神和范围的情况下,可以做出若干明显的变化,所以由所附权利要求所定义的本发明不局限于以上描述中的所述特定细节。
权利要求
1.一种半导体存储设备,包含部件阵列,包括多个可编程部件,其每一个具有多个一次可编程单元;部件解码器,被配置成基于地址信号生成用来选择部件阵列的可编程部件的部件选择信号;以及单元分配电路,被配置成生成奇数编号单元编程信号以及偶数编号单元编程信号,所述奇数编号单元编程信号用以对由部件选择信号所选择的可编程部件的奇数编号的一次可编程单元进行编程,所述偶数编号单元编程信号用以对编程部件的偶数编号的一次可编程单元进行编程,所述生成是基于从部件阵列提供的、写入在所选可编程部件中的第一数据状态和要被写入到所选可编程部件中的第二数据状态。
2.权利要求1的半导体存储设备,其中当写入在所选可编程部件中的第一数据状态具有逻辑“0”并且将被写入所选可编程部件的第二数据状态具有逻辑“1”时,单元分配电路生成奇数编号单元编程信号。
3.权利要求2的半导体存储设备,其中基于奇数编号单元编程信号来编程所选可编程部件的第一奇数编号的一次可编程单元。
4.权利要求1的半导体存储设备,其中当写入在所选可编程部件中的第一数据状态具有逻辑“1”并且要被写入所选可编程部件的第二数据状态具有逻辑“0”时,单元分配电路生成偶数编号单元编程信号。
5.权利要求4的半导体存储设备,其中基于偶数编号单元编程信号来编程所选可编程部件的第一偶数编号的一次可编程单元。
6.权利要求1的半导体存储设备,其中单元分配电路包括部件阵列输出信号寄存器,被配置成输出写入在由部件选择信号所选择的可编程部件中的第一数据状态;以及单元编程信号生成器,被配置成基于从部件阵列输出信号寄存器输出的、写入在所选可编程部件中的第一数据状态、要写入所选可编程部件中的第二数据状态、和写信号来生成奇数编号单元编程信号和偶数编号单元编程信号。
7.权利要求1的半导体存储设备,其中可编程部件包括多个一次可编程单元;以及组合逻辑电路,被配置成输出由一次可编程单元的编程状态的逻辑组合而获得的可编程部件的数据状态。
8.权利要求7的半导体存储设备,其中当不对可编程部件中的一次可编程单元中的任何一个进行编程或者对可编程部件的偶数个一次可编程单元进行编程时,组合逻辑电路输出具有逻辑“0”的可编程部件的数据状态,以及当对可编程部件的奇数个一次可编程单元进行编程时,输出具有逻辑“1”的可编程部件的数据状态。
9.权利要求8的半导体存储设备,其中组合逻辑电路包括至少一个XOR门。
10.权利要求8的半导体存储设备,其中组合逻辑电路包括至少一个反相器。
11.权利要求7的半导体存储设备,其中使用电熔丝来实现一次可编程单元。
12.权利要求7的半导体存储设备,其中使用抗熔丝来实现一次可编程单元。
13.权利要求1的半导体存储设备,其中当写入在可编程部件中的第一数据状态不同于将写入可编程部件的第二数据状态并且对可编程部件的所有一次可编程单元进行编程时,可编程部件激活部件错误状态信号。
14.权利要求13的半导体存储设备,还包含错误状态检测器,被配置成当部件阵列的可编程部件的至少一个部件错误状态信号被激活时,生成错误状态信号。
15.权利要求1的半导体存储设备,其中当对可编程部件的全部一次可编程单元进行编程时,可编程部件激活部件完全状态信号。
16.权利要求15的半导体存储设备,其中可编程部件的最后一个一次可编程单元的编程状态被提供作为部件完全状态信号。
17.权利要求15的半导体存储设备,还包含完全状态检测器,被配置成当部件阵列的所有可编程部件的至少一个部件完全状态信号被激活时,生成完全状态信号。
18.权利要求1的半导体存储设备,还包含电平移位器电路,被配置成基于地址输入信号、写输入信号和读取输入信号分别生成电平移位的地址信号、电平移位的写信号和电平移位的读取信号。
19.一种对半导体存储设备进行编程的方法,包含接收输入数据信号和地址信号;响应于地址信号来选择输入数据信号要写入其中的可编程部件;输出存储在所选可编程部件中的数据状态;当存储在所选可编程部件中的数据状态具有第一逻辑状态并且输入数据信号具有第二逻辑状态时,生成奇数编号单元编程信号;当存储在所选可编程部件中的数据状态具有第二逻辑状态并且输入数据信号具有第一逻辑状态时,生成偶数编号单元编程信号;基于奇数编号单元编程信号对所选可编程部件的可编程单元中未被编程的第一奇数编号的一次可编程单元进行编程;以及基于偶数编号单元编程信号,对所选可编程部件的可编程单元中未被编程的第一偶数编号的一次可编程单元进行编程。
20.权利要求19的方法,其中存储在所选可编程部件中的数据状态的输出包括输出可编程部件的一次可编程单元的各个编程状态的逻辑组合作为存储在所选可编程部件中的数据状态。
21.权利要求20的方法,其中存储在所选可编程部件中的数据状态的输出包括当可编程部件的所有一次可编程单元未被编程或者对可编程部件的偶数个一次可编程单元进行编程时,输出具有逻辑“0”的存储在所选可编程部件中的数据状态;以及当对可编程部件的奇数个一次可编程单元进行编程时,输出具有逻辑“1”的存储在所选可编程部件中的数据状态。
22.权利要求19的方法,还包含输出部件完全状态信号,其指示当可编程部件的所有一次可编程单元被编程时,对可编程部件的所有一次可编程单元进行编程。
23.权利要求22的方法,其中输出部件完全状态信号包括输出可编程部件的最后一个一次可编程单元的编程状态作为部件完全状态信号。
24.权利要求19的方法,还包含输出部件错误状态信号,其指示当写入在可编程部件中的数据状态不同于将写入可编程部件的数据状态并且对可编程部件的所有一次可编程单元进行编程时,不允许任何其它编程。
25.一种半导体设备,包含部件阵列,包括多个可编程部件,每个可编程部件包括多个一次可编程单元;部件解码器,被配置成响应于地址信号来选择部件阵列的可编程部件;以及单元分配电路,被配置成响应于所选可编程部件的先前数据状态和要在所选可编程部件上编程的现有数据状态,对所选可编程部件的奇数编号的一次可编程单元和所选可编程部件的偶数编号的一次可编程单元中的一个进行编程。
26.权利要求25的半导体存储设备,其中当所选可编程部件的先前数据状态具有逻辑“0”并且要被编程到所选可编程部件的现有数据状态具有逻辑“1”时,单元分配电路生成奇数编号单元编程信号。
27.权利要求25的半导体存储设备,其中当所选可编程部件的先前数据状态具有逻辑“1”并且要被编程到所选可编程部件的现有数据状态具有逻辑“0”时,单元分配电路生成偶数编号单元编程信号。
28.权利要求25的半导体存储设备,其中单元分配电路包括部件阵列输出信号寄存器,被配置成输出由部件选择信号所选择的可编程部件的先前数据状态;以及单元编程信号生成器,被配置成基于所选可编程部件的先前数据状态、要被编程到所选可编程部件的现有数据状态、和写信号来生成奇数编号单元编程信号和偶数编号单元编程信号。
29.权利要求25的半导体存储设备,其中可编程部件包括多个一次可编程单元;以及组合逻辑电路,被配置成输出由一次可编程单元的编程状态的逻辑组合而获得的可编程部件的数据状态。
30.权利要求25的半导体存储设备,其中当不对可编程部件中的任何一个一次可编程单元进行编程或者对可编程部件的偶数个一次可编程单元进行编程时,组合逻辑电路输出具有逻辑“0”的可编程部件的数据状态,以及当对可编程部件的奇数个一次可编程单元进行编程时,输出具有逻辑“1”的可编程部件的数据状态。
31.权利要求25的半导体存储设备,其中当可编程部件的先前数据状态不同于将被编程至可编程部件的现有数据状态并且可编程部件的所有一次可编程单元被编程时,可编程部件激活部件错误状态信号。
32.权利要求31的半导体存储设备,还包含错误状态检测器,被配置成当部件阵列的可编程部件的至少一个部件错误状态信号被激活时生成错误状态信号。
33.权利要求25的半导体存储设备,其中当可编程部件的所有一次可编程单元被编程时,可编程部件激活部件完全状态信号。
34.权利要求25的半导体存储设备,还包含电平移位器电路,被配置成基于地址输入信号、写输入信号和读取输入信号分别生成电平移位的地址信号、电平移位的写信号和电平移位的读取信号。
全文摘要
一种多次可编程半导体存储设备,包括部件阵列、部件解码器和单元分配电路。部件阵列包括多个可编程部件,其每一个具有多个一次可编程单元。部件解码器基于地址信号生成用来选择部件阵列的可编程部件的部件选择信号。基于从部件阵列所接收的所选可编程部件的先前数据状态以及要被编程到所选可编程部件的现有数据状态来生成奇数编号单元编程信号以及偶数编号单元编程信号,所述奇数编号单元编程信号用来对由部件选择信号所选择的可编程部件的多个一次编程单元的奇数编号的一次可编程单元中的一个进行编程,所述偶数编号单元编程信号用来对多个一次编程单元的偶数编号的一次可编程单元中的一个进行编程。
文档编号G11C29/00GK1825488SQ20051012163
公开日2006年8月30日 申请日期2005年12月22日 优先权日2004年12月22日
发明者郑钟勋, 金奎泓 申请人:三星电子株式会社