[実施の形態1]
本願の適用範囲は、特定のメモリに限定されるものではなく、不揮発性メモリ、揮発性メモリ、汎用メモリ、混載メモリのいずれにも適用可能であり、特定のメモリセル構成に限定されるものではない。ここでは一例として、本願がスプリットゲート型メモリセルを有するマイクロコントローラ向け混載不揮発性フラッシュメモリに適用された場合について説明する。
本願の実施の形態1によるマイクロコントローラチップ1は、図1に示すように、SRAM(StatIC Random Access Memory)2、CPU(Central Processing Unit)3、高速CPUバス4、およびI/F(interface)回路5,9を備える。また、このマイクロコントローラチップ1は、バスブリッジ6、フラッシュメモリ7,8、書換制御回路10、および周辺バス11を備える。
SRAM2およびフラッシュメモリ7は、データを記憶する。フラッシュメモリ8は、プログラムを記憶する。SRMA2とCPU3は、高速CPUバス4によって互いに接続されている。CPU3から高速CPUバス4、バスブリッジ6、周辺バス11、および書換制御回路10を介してフラッシュメモリ7,8に書換用のアドレス信号WAおよびデータ信号Dが与えられる。
また、CPU3から高速CPUバス4、バスブリッジ6、周辺バス11、およびI/F回路9を介してフラッシュメモリ7に読出用のアドレス信号RAが与えられ、その逆の経路でフラッシュメモリ7からCPU3に読出データ信号Qが与えられる。また、CPU3から高速CPUバス4およびI/F回路5を介してフラッシュメモリ8に読出用のアドレス信号RAが与えられ、その逆の経路でフラッシュメモリ8からCPU3にプログラムを構成する読出データ信号Qが与えられる。
また、マイクロコントローラチップ1は、割込制御回路12、PLL(phase locked loop)回路13、電源回路14、およびポート部15に接続されている。割込制御回路12は、外部リセット信号RSTBに応答して内部リセット信号RSTNをチップ1に与える。PLL回路13は、外部クロック信号CLKEに同期した内部クロック信号CLKを生成してチップ1に与える。電源回路14は、外部電源電圧VCCおよび外部接地電圧VSSに基づいて内部電源電圧VDDと信号VDDONを生成してチップ1に与える。信号VDDONは、内部電源電圧VDDが所定レベルに到達したことを示す信号である。ポート部15は、外部とチップ1との間でアドレス信号ADDおよびデータ信号D,Qの授受を行なう。
また、フラッシュメモリ7は、メモリアレイMA、MGドライバMD、WLドライバWD、SLドライバSD、Y系回路YC、電源スイッチPS、内部電圧発生回路VWG、および論理回路LGを含む。フラッシュメモリ8は、複数(図では4つ)のバンクB1〜B4を含む。各バンクBは、2つのメモリアレイMA、WLドライバWD、MGドライバMD、SLドライバSD、Y系回路YC、電源スイッチPS、論理回路LG、および入出力バッファIOを含む。
内部電圧発生回路VWGは、書換用内部電圧VWおよび参照電圧VRを生成してフラッシュメモリ7,8全体に供給する。論理回路LGは、対応のフラッシュメモリ7または8全体を制御する。電源スイッチPSは、書換用内部電圧VWを対応のフラッシュメモリ7または8内に分配する。
メモリアレイMAは、複数行複数列に配置された複数のメモリセルと、それぞれ複数行に対応して設けられた複数組のワード線WL、メモリゲート線MG、およびソース線SLと、それぞれ複数列に対応して設けられたビット線BLとを含む。各メモリセルは、1ビットのデータ信号を記憶する。各メモリセルには、固有のアドレス信号が予め割り当てられている。
MGドライバMD、WLドライバWD、およびSLドライバSDは、アドレス信号によって選択されたメモリセルに対応するワード線WL、メモリゲート線MG、およびソース線SLを駆動する。Y系回路YCは、アドレス信号に従って複数のビット線BLのうちのいずれかのビット線BLを選択する。入出力バッファIOは、I/F回路5とフラッシュメモリ8との間で読出用のアドレス信号RAとデータ信号Qの授受を行なう。
図2は、メモリアレイMAの構成を示す回路ブロック図である。図2において、メモリアレイMAは、複数のサブアレイSAに分割されている。複数のサブアレイSAは、予め2つずつグループ化されている。各グループの2つのサブアレイSAの間にセンスアンプ帯16が配置されている。
各サブアレイSAは、複数行複数列に配置された複数のメモリセルMCと、それぞれ複数行に対応して設けられた複数組のワード線WL、メモリゲート線MG、およびソース線SLと、それぞれ複数列に対応して設けられたビット線BLとを含む。各メモリセルMCは、ビット線BLとソース線SLの間に直列接続された選択トランジスタSTとメモリトランジスタMTを含む。選択トランジスタSTのゲートはワード線WLに接続され、メモリトランジスタMTのゲートはメモリゲート線MGに接続されている。
ワード線WL、メモリゲート線MG、ソース線SL、およびビット線BLを駆動することにより、メモリトランジスタMTのしきい値電圧を高値VTHと低値VTLのうちのいずれかに設定することが可能となっている。たとえば、メモリトランジスタMTのしきい値電圧が高値VTHとなった状態はデータ信号「0」に対応付けられ、メモリトランジスタMTのしきい値電圧が低値VTLとなった状態はデータ信号「1」に対応付けられる。これにより、1つのメモリセルMCに1ビットのデータ信号が記憶される。
なお、メモリセルMCのしきい値電圧を高値VTHから低値VTLに書き換える動作は消去動作と呼ばれる。逆に、メモリセルMCのしきい値電圧を低値VTLから高値VTHに書き換える動作はプログラム動作あるいは書込動作と呼ばれる。
読出動作時は、ビット線BLに所定の電圧を印加し、ワード線CGを「H」レベルにして選択トランジスタSTを導通させ、メモリゲート線MGに高値VTHと低値VTLの間の読出電圧を印加する。メモリトランジスタMTのしきい値電圧が高値VTHである場合は、参照電流IRよりも小さな電流がメモリトランジスタMTに流れる。また、メモリトランジスタMTのしきい値電圧が低値VTLである場合は、参照電流IRよりも大きな電流がメモリトランジスタMTに流れる。したがって、メモリトランジスタMTに流れる電流と参照電流IRとの大小を比較することにより、メモリセルMCに記憶されたデータ信号が「0」であるか「1」であるかを判別することができる。
また、各センスアンプ帯16には、所定数の列に1つの割合でセンスアンプ17が配置されている。センスアンプ17は、選択されたメモリセルMCからデータ信号を読み出すものである。また、所定数の列に1本の割合で、複数のサブアレイSAに共通にメインビット線MBLが設けられている。メインビット線MBLは、各センスアンプ帯16の対応のセンスアンプ17に接続されている。
図3は、2つのサブアレイSAと1つのセンスアンプ帯16の要部を示す回路図である。図3において、2つのサブアレイSAと1つのセンスアンプ帯16は、4個のブロックBK0に分割されており、4個のブロックBK0毎に1つのセンスアンプ17とレジスタ50が設けられている。
各ブロックBK0は、一方のサブアレイSAに属する8個のブロックBK1と、他方のサブアレイSAに属する8個のブロックBK2と、PチャネルMOSトランジスタ22〜24,27〜29,30〜34および定電流源25,26,35,36とを含む。
各ブロックBK1は、1列分の複数のメモリセルMC1と、その列に対応するビット線BL1と、各メモリセルMC1に対応するワード線WL1、メモリゲート線MG1、およびソース線SL1とを含む。図3では、代表的に1つのメモリセルMC1だけが示されている。また、ブロックBK1は、NチャネルMOSトランジスタ20およびPチャネルMOSトランジスタ21を含む。
トランジスタ20は、ビット線BL1と接地電圧VSSのラインとの間に接続され、そのゲートは信号BWを受ける。信号BWが「H」レベルである場合は、トランジスタ20が導通し、ビット線BL1は接地電圧VSSに固定される。信号BWが「L」レベルである場合は、トランジスタ20が非導通になる。トランジスタ21は、ビット線BL1とノードN1の間に接続され、そのゲートは信号YAを受ける。信号YAは、ブロックBK1に属する8本のビット線BL1のうちの1本のビット線BL1を選択する信号である。8個の信号YAのうちの1個の信号YAが「L」レベルにされると、その信号YAに対応するトランジスタ21が導通し、ビット線BL1がノードN1に電気的に接続される。信号YAが「H」レベルにされると、その信号YAに対応するトランジスタ21が非導通になる。
同様に、各ブロックBK2は、1列分の複数のメモリセルMC2と、その列に対応するビット線BL2と、各メモリセルMC2に対応するワード線WL2、メモリゲート線MG2、およびソース線SL2とを含む。図3では、代表的に1つのメモリセルMC2だけが示されている。また、ブロックBK2は、NチャネルMOSトランジスタ30およびPチャネルMOSトランジスタ31を含む。
トランジスタ30は、ビット線BL2と接地電圧VSSのラインとの間に接続され、そのゲートは信号BWを受ける。信号BWが「H」レベルである場合は、トランジスタ30が導通し、ビット線BL2は接地電圧VSSに固定される。信号BWが「L」レベルである場合は、トランジスタ30が非導通になる。トランジスタ31は、ビット線BL2とノードN2の間に接続され、そのゲートは信号YAを受ける。信号YAは、ブロックBK2に属する8本のビット線BL2のうちの1本のビット線BL2をも選択する信号である。8個の信号YAのうちの1個の信号YAが「L」レベルにされると、その信号YAに対応するトランジスタ31が導通し、ビット線BL2がノードN2に電気的に接続される。信号YAが「H」レベルにされると、その信号YAに対応するトランジスタ31が非導通になる。ブロックBK1,BK2のうちのいずれか一方のブロックBKに属する1つのメモリセルMCが選択される。
PチャネルMOSトランジスタ22および定電流源25は、ノードN1と接地電圧VSSのラインとの間に直列接続される。トランジスタ22のゲートは、信号REF1を受ける。信号REF1が「L」レベルである場合は、トランジスタ22が導通し、ノードN1から接地電圧VSSのラインに参照電流IRが流れる。信号REF1が「H」レベルである場合は、トランジスタ22が非導通になる。
PチャネルMOSトランジスタ32および定電流源35は、ノードN2と接地電圧VSSのラインとの間に直列接続される。トランジスタ32のゲートは、信号REF2を受ける。信号REF2が「L」レベルである場合は、トランジスタ32が導通し、ノードN2から接地電圧VSSのラインに参照電流IRが流れる。信号REF2が「H」レベルである場合は、トランジスタ32が非導通になる。
ブロックBK1のメモリセルMC1が選択された場合は、信号REF1が「H」レベルにされるとともに信号REF2が「L」レベルにされ、メモリセルMC1に流れる電流と定電流源35に流れる参照電流IRとの大小が比較される。ブロックBK2のメモリセルMC2が選択された場合は、信号REF1が「L」レベルにされるとともに信号REF2が「H」レベルにされ、メモリセルMC2に流れる電流と定電流源25に流れる参照電流IRとの大小が比較される。
PチャネルMOSトランジスタ23および定電流源26は、ノードN1と接地電圧VSSのラインとの間に直列接続される。トランジスタ23のゲートは、信号OCD1を受ける。信号OCD1が「L」レベルである場合は、トランジスタ23が導通し、ノードN1から接地電圧VSSのラインにオフセット補償電流IOCが流れる。信号OCD1が「H」レベルである場合は、トランジスタ23が非導通になる。
PチャネルMOSトランジスタ33および定電流源36は、ノードN2と接地電圧VSSのラインとの間に直列接続される。トランジスタ33のゲートは、信号OCD2を受ける。信号OCD2が「L」レベルである場合は、トランジスタ33が導通し、ノードN2から接地電圧VSSのラインにオフセット補償電流IOCが流れる。信号OCD2が「H」レベルである場合は、トランジスタ33が非導通になる。
センスアンプ17のオフセット電圧に応じて、信号OCD1,OCD2のうちのいずれか一方の信号OCDが「L」レベルにされる。これにより、ノードN1,N2のうちのいずれか一方のノードからオフセット補償電流IOCが流出し、センスアンプ17のオフセット電圧が補償される。これについては、後で詳細に説明する。
PチャネルMOSトランジスタ24は、ノードN1とセンスアンプ17のノードN3との間に接続され、そのゲートは信号YBを受ける。PチャネルMOSトランジスタ34は、ノードN2とセンスアンプ17のノードN4との間に接続され、そのゲートは信号YBを受ける。信号YBは、4つのブロックBK0のうちのいずれか1つのブロックBK0を選択する信号である。4個の信号YBのうちの1個の信号YBが「L」レベルにされると、その信号YBに対応するトランジスタ24,34が導通し、ノードN1,N2がセンスアンプ17のノードN3,N4に接続される。信号YBが「H」レベルにされると、その信号YBに対応するトランジスタ24,34が非導通になる。
PチャネルMOSトランジスタ27は、ノードN1と電源電圧VDDのラインとの間に接続される。PチャネルMOSトランジスタ28は、ノードN2と電源電圧VDDのラインとの間に接続される。PチャネルMOSトランジスタ29は、ノードN1,N2間に接続される。トランジスタ27〜29のゲートは、ともに信号PCNを受ける。信号PCNは、4つのブロックBK0のそれぞれに対応して用意される。信号PCNが「L」レベルである場合は、トランジスタ27〜29が導通し、ノードN1,N2が電源電圧VDDにプリチャージされる。信号PCNが「H」レベルである場合は、トランジスタ27〜29が非導通になる。
センスアンプ17は、PチャネルMOSトランジスタ40〜43およびNチャネルMOSトランジスタ44〜46を含む。トランジスタ40は、ノードN3と電源電圧VDDのラインとの間に接続される。トランジスタ41は、ノードN4と電源電圧VDDのラインとの間に接続される。トランジスタ40,41のゲートは、ともに信号PCSを受ける。信号PCSが「L」レベルである場合は、トランジスタ40,41が導通し、ノードN3,N4が電源電圧VDDにプリチャージされる。信号PCSが「H」レベルである場合は、トランジスタ40,41が非導通になる。
トランジスタ42は、電源電圧VDDのラインとノードN3との間に接続され、そのゲートはノードN4に接続される。トランジスタ43は、電源電圧VDDのラインとノードN4との間に接続され、そのゲートはノードN3に接続される。トランジスタ44は、ノードN3,N5間に接続され、そのゲートはノードN4に接続される。トランジスタ45は、ノードN4,N5間に接続され、そのゲートはノードN3に接続される。トランジスタ46は、ノードN5と接地電圧VSSのラインとの間に接続され、そのゲートは信号SAEを受ける。
信号PCSが「H」レベルにされた状態で信号SAEが「H」レベルにされると、トランジスタ46が導通してセンスアンプ17が活性化され、センスアンプ17はノードN3,N4間の電位差を電源電圧VDDに増幅する。すなわち、ノードN3の電圧がノードN4の電圧よりも高い場合は、トランジスタ42,45の電流駆動能力がトランジスタ43,44の電流駆動能力よりも大きくなり、ノードN3が電源電圧VDDにされるとともにノードN4が接地電圧VSSにされる。換言すると、ノードN3の電圧がノードN4の電圧よりも高い場合は、ノードN3,N4にそれぞれ「H」レベルおよび「L」レベルの信号が出力される。
逆に、ノードN4の電圧がノードN3の電圧よりも高い場合は、トランジスタ43,44の電流駆動能力がトランジスタ42,45の電流駆動能力よりも大きくなり、ノードN4が電源電圧VDDにされるとともにノードN3が接地電圧VSSにされる。換言すると、ノードN4の電圧がノードN3の電圧よりも高い場合は、ノードN4,N3にそれぞれ「H」レベルおよび「L」レベルの信号が出力される。信号SAEが「L」レベルにされると、トランジスタ46が非導通になってセンスアンプ17が非活性化される。
レジスタ50は、NチャネルMOSトランジスタ51,52、インバータ53〜55、およびNANDゲート56を含む。トランジスタ51は、センスアンプ17のノードN3とレジスタ50のノードN6との間に接続され、そのゲートは信号OSを受ける。トランジスタ52は、センスアンプ17のノードN4とレジスタ50のノードN7との間に接続され、そのゲートは信号OSを受ける。信号OSが「H」レベルである場合は、トランジスタ51,52が導通し、ノードN3,N4の電圧がノードN6,N7に伝達される。信号OSが「L」レベルである場合は、トランジスタ51,52が非導通になり、ノードN3,N4とノードN6,N7とが電気的に切り離される。
インバータ55は、ノードN7に現れる信号の反転信号をノードN6に出力する。NANDゲート56の一方入力ノードはノードN6に接続され、その他方入力ノードは信号RSTNを受け、その出力ノードはノードN7に接続される。信号RSTNが「H」レベルである場合は、NANDゲート56はインバータとして動作し、インバータ55およびNANDゲート56はラッチ回路を構成する。このラッチ回路は、トランジスタ51,52が非導通にされる前のノードN6,N7の信号を保持する。信号RSTNが「L」レベルである場合は、ノードN6,N7がそれぞれ「L」レベルおよび「H」レベルに固定される。インバータ53は、ノードN6に現れる信号の反転信号を信号OCD1として出力する。インバータ54は、ノードN7に現れる信号の反転信号を信号OCD2として出力する。
ここで、センスアンプ17のオフセット電圧とその補償方法について説明する。このフラッシュメモリでは、メモリセルMCからデータ信号を読み出す前にビット線BLを電源電圧VDDにプリチャージするので、センスアンプ17のNチャネルMOSトランジスタ44,45のしきい値電圧のミスマッチがオフセット電圧に大きく影響する。トランジスタ44,45のしきい値電圧をそれぞれVT1,VT2とし、それらの大小関係から2つのケースについて考察する。
第1のケースは、VT1>VT2の場合である。この場合は、ノードN3の電圧V3とノードN4の電圧V4とが同じであっても、トランジスタ44よりもトランジスタ45の方が導通し易い。等価的には、トランジスタ44,45のしきい値電圧VT1,VT2を同じにし、ノードN3の電圧V3をノードN4の電圧V4よりも高くした(V3−V4=VT1−VT2)と考えることができる。したがって、センスアンプ17のオフセット電圧をキャンセルするためには、ノードN3側の放電速度を上げる、すなわちノードN3側にオフセット補償電流ICOを付加すればよい。
具体的には、ノードN3側のメモリセルMC1が選択された場合には、ノードN3からメモリセル電流ICとオフセット補償電流IOCを流出させるとともに、ノードN4から参照電流IRを流出させる。逆に、ノードN4側のメモリセルMC2が選択された場合には、ノードN3から参照電流IRとオフセット補償電流IOCを流出させるとともに、ノードN4からメモリセル電流ICを流出させる。これにより、センスアンプ17のオフセット電圧を補償することができる。
また、第2のケースは、VT1<VT2の場合である。この場合は、ノードN3の電圧V3とノードN4の電圧V4とが同じであっても、トランジスタ45よりもトランジスタ44の方が導通し易い。等価的には、トランジスタ44,45のしきい値電圧VT1,VT2を同じにし、ノードN4の電圧V4をノードN3の電圧V3よりも高くした(V4−V3=VT2−VT1)と考えることができる。したがって、センスアンプ17のオフセット電圧をキャンセルするためには、ノードN4側の放電速度を上げる、すなわちノードN4側にオフセット補償電流ICOを付加すればよい。
具体的には、ノードN3側のメモリセルMC1が選択された場合には、ノードN3からメモリセル電流ICを流出させるとともに、ノードN4から参照電流IRとオフセット補償電流IOCを流出させる。逆に、ノードN4側のメモリセルMC2が選択された場合には、ノードN3から参照電流IRを流出させるとともに、ノードN4からメモリセル電流ICとオフセット補償電流IOCを流出させる。これにより、センスアンプ17のオフセット電圧を補償することができる。
ノードN3側のメモリセルMC1が選択された前提で、図4(a)は、VT1>VT2の場合におけるノードN3,N4の電圧V3,V4の時刻変化を示すタイムチャートである。図4(b)は、VT1<VT2の場合におけるノードN3,N4の電圧V3,V4の時刻変化を示すタイムチャートである。比較例として、VT1=VT2の場合におけるノードN3,N4の電圧V3,V4の時刻変化をも示している。図4(a)(b)は、ともに、ノードN3側のメモリセルMC1とノードN4側の定電流源35が選択された場合を示している。
ここでは、データ信号「0」を記憶したメモリセルMC1に流れる電流をIC0とし、データ信号「1」を記憶したメモリセルMC1に流れる電流をIC1とする。V3(IC0)は、ノードN3からIC0を流出させたときのV3の変化を示している。V3(IC1)は、ノードN3からIC1を流出させたときのV3の変化を示している。V3(IC0+IOC)は、ノードN3からIC0+IOCを流出させたときのV3の変化を示している。V3(IC1+IOC)は、ノードN3からIC1+IOCを流出させたときのV3の変化を示している。V4(IR)は、ノードN4からIRを流出させたときのV4の変化を示している。V4(IR+IOC)は、ノードN4からIR+IOCを流出させたときのV4の変化を示している。
図4(a)において、ノードN3からオフセット補償電流IOCを流出させない場合は、V4(IR)はV3(IC0)とV3(IC1)の中間にある。VT1>VT2であるためにノードN3からオフセット補償電流IOCを流出させると、V3がIOC分だけ速く低下する。これにより、センスアンプ17のオフセット電圧を補償することができる。
図4(b)において、ノードN4からオフセット補償電流IOCを流出させない場合は、V4(IR)はV3(IC0)とV3(IC1)の中間にある。VT1<VT2であるためにノードN4からオフセット補償電流IOCを流出させると、V4がIOC分だけ速く低下する。これにより、センスアンプ17のオフセット電圧を補償することができる。
第1のケース(VT1>VT2)と第2のケース(VT1<VT2)を判別するには、ノードN3,N4をノードN1,N2から切り離し、ノードN3,N4を同電圧VDDにプリチャージした後に、センスアンプ17を活性化させればよい。これにより、VT1,VT2の大小関係を示すデジタル信号を得ることができる。そのデジタル信号をレジスタ50に格納し、以降の読出動作においてそのデジタル信号に応じてノードN1またはN2にオフセット補償電流IOCを付加することにより、センスアンプ17のオフセットを補償することができる。
なお、オフセット補正量は、トランジスタ44,45のサイズと製造プロセスから決まる最大ミスマッチ量の1/2程度に設定することが望ましい。なぜなら、|VT1−VT2|が非常に小さい場合は、オフセットセンス結果が安定しない可能性があり、大きな補正をかけると逆に補正前より実効的なオフセット量が増加する可能性があるためである。
以上の基本的な考え方に基づき、図3の回路構成における具体的なオフセット補正動作を説明する。本願におけるオフセットセンス動作は読出動作期間以外の期間に行なう。その一つの好ましい期間が電源投入後のチップ初期化期間である。
図5(a)〜(e)は、電源投入後のチップ初期化シーケンスを示すタイムチャートである。初期状態(時刻t0)では、内部電源電圧VDDは0Vであり、VDD起動完了信号VDDON、内部クロック信号CLK、外部リセット信号RSTB、内部リセット信号RSTNはともに「L」レベルにされている。
ある時刻t1において外部電源電圧VCCが与えられると、内部電源電圧VDDが上昇し始める。時刻t2において、内部電源電圧VDDが所定レベルに到達すると、VDD起動完了信号VDDONが活性化レベルの「H」レベルに立ち上げられる。これにより、チップ1内部の一部の回路ブロックの初期化が開始され、各回路内の動作電源の立上げなどが行なわれる。PLL回路13も動作を開始し、時刻t3にPLL回路13の発振動作が安定し、クロック信号CLKの波形が安定する。
この時刻t3よりも後の時刻t4まで外部リセット信号RSTBを活性化レベルの「L」レベルに維持してもらう。外部リセット信号RSTBが非活性化レベルの「H」レベルにされてから数クロックサイクル後の時刻t5において、内部リセット信号RSTNが非活性化レベルの「H」レベルに立ち上げられる。その後、システムの初期化(動作パラメータの設定など)が行なわれ、時刻t6で全体の初期化が完了し、通常の動作が可能となる。これ以降において「初期化」とは、特に断りがなければ図5の時刻t5〜t6を指すものとする。なお、当然、オフセットセンス動作は他の期間に実施することも可能であり、読出動作に先立って実施可能であれば電源投入直後に限定されるものではない。
図6(a)〜(m)は、図3に示した回路のオフセットセンス動作および読出動作を示すタイムチャートである。図6(a)〜(m)において、オフセットセンス動作期間(時刻t5〜t6)では、信号YA,YBは「H」レベルに固定される。これにより、トランジスタ21,24,31,34が非導通になり、センスアンプ17はビット線BL1,BL2から切り離される。
また、ワード線WL1,WL2は「L」レベルに固定され、メモリセルMC1,MC2は非活性状態にされる。信号BWが「H」レベルに固定され、ビット線BL1,BL2は「L」レベルにされる。信号REF1,REF2がともに「H」レベルに固定されてトランジスタ22,32が非導通にされる。信号PCNが「H」レベルに固定されてトランジスタ27〜29が非導通にされる。
また、オフセットセンス動作期間の初期状態では、信号PCSが「L」レベルにされてトランジスタ40,41が導通し、ノードN3,N4が電源電圧VDDにプリチャージされる。信号SAEは「L」レベルにされてトランジスタ46が非導通になり、センスアンプ17は非活性化されている。信号OSは「L」レベルにされてトランジスタ51,52が非導通にされている。信号RSTNが「L」レベルにされて、NANDゲート56は「H」レベルの信号を出力している。
まず、信号RSTNが「H」レベルに立ち上げられる。これにより、NANDゲート56はインバータとして動作し、信号OCD1,OCD2がそれぞれ「H」レベルおよび「L」レベルに初期化される。次に、信号PCS,SAEが「H」レベルに立ち上げられる。これにより、トランジスタ40,41が非導通になってノードN3,N4のプリチャージが停止されるとともに、トランジスタ46が導通してセンスアンプ17が活性化される。
すなわち、ノードN3の電圧V3とノードN4の電圧V4とが同じ状態でセンスアンプ17が活性化され、トランジスタ44のしきい値電圧VT1とトランジスタ45のしきい値電圧VT2とのオフセットに従ってセンス結果が確定する。図6(j)では、V3が「L」レベルにされ、V4が「H」レベルにされた状態が示されている。センス結果の確定に必要十分な時間が経過した後に、信号OSが所定時間だけ「H」レベルに立ち上げられる。これにより、トランジスタ51,52が所定時間だけ導通し、ノードN3,N4の電圧V3,V4がノードN6,N7に伝達されてレジスタ50に保持される。
図6(m)では、信号OCD1,OCD2がそれぞれ「H」レベルおよび「L」レベルにされた状態が示されている。この場合は、トランジスタ23が非導通になるとともにトランジスタ33が導通し、ノードN2からオフセット補償電流IOCが流出する。次に、信号SAE,PCSが順次「L」レベルに立ち下げられ、センスアンプ17が非活性化されるとともにノードN3,N4が内部電源電圧VDDにプリチャージされてセンスオフセット動作が終了する。
センスオフセット動作が終了した後に、通常動作が行なわれる。図6(a)〜(m)では、通常動作として読出動作が行なわれた場合が示されている。まず、信号BWが「L」レベルに立ち下げられてトランジスタ20,30が非導通にされる。次に、アドレス信号によって選択されたワード線WLが「H」レベルにされ、信号YA,YBが「L」レベルにされ、信号REFが「L」レベルにされる。ここでは、図3のワード線WL1が「H」レベルにされ、信号YA,YBが「L」レベルにされ、信号REF2が「L」レベルにされたものとする。また、信号PCNが「L」レベルにされてトランジスタ27〜29が導通し、ビット線BL1,BL2が「H」レベルにプリチャージされる。
次に、信号PCN,PCSがともに「H」レベルに立ち上げられ、トランジスタ27〜29,40,41が非導通にされてビット線BL1,BL2およびノードN3,N4のプリチャージが停止される。ノードN3からメモリセルMC1を介してメモリセル電流ICが流出するとともに、ノードN4から定電流源35,36を介して参照電流IRおよびオフセット補償電流IOCが流出し、ノードN3,N4間に電位差が発生する。ここでは、ノードN3の電圧V3がノードN4の電圧V4よりも高くなり、ビット線BL1の電圧がビット線BL2の電圧よりも高くなったものとする。
ノードN3,N4のプリチャージを停止してから所定時間Trdの経過後に、信号SAE,YA,YB,REF2が順次「H」レベルにされる。これにより、トランジスタ21,31,24,32,34が非導通にされてノードN3,N4がノードN1,N2から切り離されるとともに、トランジスタ46が導通してセンスアンプ17が活性化され、ノードN3,N4間の電圧が電源電圧VDDに増幅される。ここでは、ノードN3が「H」レベル(電源電圧VDD)にされ、ノードN4が「L」レベル(接地電圧VSS)にされた状態が示されている。ノードN3,N4間の電圧は、ドライバ(図示せず)によって図2のメインビット線MBLに伝達される。
次に、信号SAEが「L」レベルにされてセンスアンプ17が非活性化され、信号PCSが「L」レベルにされてノードN3,N4が「H」レベルにプリチャージされ、信号BWが「H」レベルにされてビット線BL1,BL2が「L」レベルにされる。これにより、読出動作が終了する。
この実施の形態1では、オフセットセンス動作期間においてセンスアンプ17のオフセット電圧(VT1−VT2)の極性を読み出し、その極性を示すデータ信号をレジスタ50に格納する。また、読出動作時においては、レジスタ50に格納されたデータ信号に従って、ノードN1またはN2にオフセット補償電流IOCを付加する。これにより、センスアンプ17のオフセット電圧に起因する遅延時間Trdを短縮し、高速な読出動作を実現することができる。
また、オフセットセンス動作を読出動作に先立ってチップ初期化期間などに行なうので、オフセットキャンセルのための付加的な時間が読出動作期間に発生しない。したがって、オフセットキャンセルが遅延時間Trdの短縮に純粋に寄与する。
また、オフセットキャンセルをデジタル的に行なうので、オフセットセンス動作後にもセンス結果をレジスタ50に格納して継続的にセンス結果を使用することができる。
さらに、本願のために必要な付加的な回路とその制御はシンプルであり、階層ビット線構成で複数の階層センスアンプ帯をメモリアレイMA内に配置する場合への適合性も高い。
さらに、従来のように補正用コンデンサを切り替えるためのスイッチが存在しないので、そのスイッチ動作に起因する動作電圧の制約もない。
[実施の形態2]
図7は、本願の実施の形態2によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図であって、図3と対比される図である。図7を参照して、このフラッシュメモリが実施の形態1のフラッシュメモリと異なる点は、定電流源26,36がコンデンサ60,62およびNチャネルMOSトランジスタ61,63で置換され、レジスタ50がレジスタ64で置換されている点である。
コンデンサ60は、PチャネルMOSトランジスタ23のドレインと接地電圧VSSのラインとの間に接続される。NチャネルMOSトランジスタ61は、PチャネルMOSトランジスタ23のドレインと接地電圧VSSのラインとの間に接続され、そのゲートは信号OCD1を受ける。
同様に、コンデンサ62は、PチャネルMOSトランジスタ33のドレインと接地電圧VSSのラインとの間に接続される。NチャネルMOSトランジスタ63は、PチャネルMOSトランジスタ33のドレインと接地電圧VSSのラインとの間に接続され、そのゲートは信号OCD2を受ける。
レジスタ64がレジスタ50と異なる点は、インバータ53,54がNANDゲート65,66で置換されている点である。NANDゲート65の一方入力ノードはノードN6に接続され、その他方入力ノードは信号CSを受け、信号OCD1を出力する。NANDゲート66の一方入力ノードはノードN7に接続され、その他方入力ノードは信号CSを受け、信号OCD2を出力する。
信号CSは、読出動作時において、ビット線BL1,BL2が電源電圧VDDにプリチャージされた後、トランジスタ21,24が導通した状態で所定時間だけ「H」レベルにされる。信号CSが「H」レベルにされると、NANDゲート65はノードN6に現れる信号に対してインバータとして動作し、NANDゲート66はノードN7に現れる信号に対してインバータとして動作し、レジスタ64はレジスタ50と同じ構成になる。信号CSが「H」レベルにされると、信号OCD1,OCD2のうちのいずれか一方の信号が「H」レベルにされ、他方の信号が「L」レベルにされる。信号CSが「L」レベルにされている場合は、信号OCD1,OCD2はともに「H」レベルにされる。
信号OCD1が「H」レベルである場合は、トランジスタ23が非導通になるとともにトランジスタ61が導通し、コンデンサ60の端子間電圧が0Vにリセットされる。ビット線BL1が電源電圧VDDにプリチャージされた後、トランジスタ21,24が導通した状態で信号OCD1が「L」レベルにされると、トランジスタ23が導通するとともにトランジスタ61が非導通になる。これにより、ビット線BL1の電荷がコンデンサ60に分配されてノードN3の電圧V3が低下する。これは、VT1>VT2の場合に、ノードN1に定電流源26を接続してノードN1からオフセット補償電流IOCを流出させることと等価である。
信号OCD2が「H」レベルである場合は、トランジスタ33が非導通になるとともにトランジスタ63が導通し、コンデンサ62の端子間電圧が0Vにリセットされる。ビット線BL2が電源電圧VDDにプリチャージされた後、トランジスタ31,34が導通した状態で信号OCD2が「L」レベルにされると、トランジスタ33が導通するとともにトランジスタ63が非導通になる。これにより、ビット線BL2の電荷がコンデンサ62に分配されてノードN4の電圧V4が低下する。これは、VT1<VT2の場合に、ノードN2に定電流源33を接続してノードN2からオフセット補償電流IOCを流出させることと等価である。
なお、コンデンサ60の容量値をCocとし、ビット線BL1の容量値をCblとすると、信号OCD1が「H」レベルから「L」レベルに立ち下げられると、ビット線BL1の電圧はCoc×VDD/(Cbl+Coc)だけ低下する。同様に、コンデンサ62の容量値をCocとし、ビット線BL2の容量値をCblとすると、信号OCD2が「H」レベルから「L」レベルに立ち下げられると、ビット線BL2の電圧はCoc×VDD/(Cbl+Coc)だけ低下する。容量値Cocは、補償すべきオフセット電圧に応じて設定される。
また、電荷再配分に要する時間は一般にTrdに対して十分短く、Trdを増加させてオフセットキャンセル効果を大きく削減することはない。また、コンデンサ60,62を付加したことによる一時的な寄生容量の増加も影響は少ない。
図8(a)〜(n)は、図7に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートであって、図6(a)〜(m)と対比される図である。このフラッシュメモリでは、時刻t5〜t6においてオフセットセンス動作が行なわれ、図8(m)に示すように、センス結果がレジスタ64のノードN6,N7に保持される。図8(n)に示す信号CSが「L」レベルにされている期間は、信号信号OCD1,OCD2はともに「H」レベルにされる。
読出動作時において、信号PCN,PCSが「H」レベルに立ち上げられてビット線プリチャージ動作が完了した後、図8(n)に示すように、信号CSが所定時間だけ「H」レベルにされる。信号CSが「H」レベルにされると、信号信号OCD1,OCD2のうちのいずれか一方の信号が「L」レベルにされる。図8(a)〜(n)では、信号OCD2が「L」レベルにされた状態が示されている。信号OCD2が「L」レベルにされると、トランジスタ63が非導通にされるとともにトランジスタ33が導通し、ビット線BL2の電荷がコンデンサ62に分配されてビット線BL2の電圧が低下する。これにより、センスアンプ17のオフセット電圧が補償される。他の構成および動作は実施の形態1と同じであるので、その説明は繰り返さない。
この実施の形態2でも、実施の形態1と同じ効果が得られる。なお、定電流源26,36の代わりにコンデンサ60,62を設けたので、レイアウト上の自由度が上がる場合がある。具体的には、定電流源26,36では特性ばらつきを抑制する観点から特定サイズのトランジスタを使用しなければならない。これに対してコンデンサ60,62では、それらをトランジスタで構成する場合でも大きな寄生抵抗が付かなければサイズの制約はなく、また、メタル配線間容量を用いれば下地占有面積の増加を抑制することができる。
[実施の形態3]
図9は、本願の実施の形態3によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図であって、図3と対比される図である。図9を参照して、このフラッシュメモリが実施の形態1のフラッシュメモリと異なる点は、レジスタ50がANDゲート70およびNANDゲート71,72で置換されている点である。
ANDゲート70は、信号SAEと信号DOCNの論理積信号を出力する。NANDゲート71は、ANDゲート70の出力信号とノードN3に現れる信号とを受け、信号OCD1を出力する。NANDゲート72は、ANDゲート70の出力信号とノードN4に現れる信号とを受け、信号OCD2を出力する。
信号SAE,DOCNがともに「H」レベルである場合は、NANDゲート71がノードN3に現れる信号に対してインバータとして動作するとともに、NANDゲート72がノードN4に現れる信号に対してインバータとして動作する。この場合は、ノードN3に現れる信号の反転信号が信号OCD1としてトランジスタ23のゲートに与えられるとともに、ノードN4に現れる信号の反転信号が信号OCD2としてトランジスタ33のゲートに与えられる。
つまり、このフラッシュメモリでは、オフセットセンス動作を事前に実施してオフセット情報をレジスタ50に格納する代わりに、各読出動作の直前にオフセットセンス動作を実施してオフセット情報をセンスアンプ17に保持しておく。換言すると、各読出動作の直後にオフセットセンス動作を実施し、次の読出動作までオフセット情報をセンスアンプ17に保持しておく。
図10(a)〜(k)は、図9に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートである。図10(a)〜(k)において、アイドル期間(時刻t0〜t1)では、信号YA,YBは「H」レベルに固定される。これにより、トランジスタ21,24,31,34が非導通になり、センスアンプ17はビット線BL1,BL2から切り離される。
また、ワード線WL1,WL2は「L」レベルに固定され、メモリセルMC1,MC2は非活性状態にされる。信号BWが「H」レベルに固定され、ビット線BL1,BL2は「L」レベルにされる。信号REF1,REF2がともに「H」レベルに固定されてトランジスタ22,32が非導通にされる。信号PCNが「H」レベルに固定されてトランジスタ27〜29が非導通にされる。
また、アイドル期間の初期状態では、信号PCSが「L」レベルにされてトランジスタ40,41が導通し、ノードN3,N4が電源電圧VDDにプリチャージされる。信号SAEは「L」レベルにされてトランジスタ46が非導通になり、センスアンプ17は非活性化されている。信号DOCNは「H」レベルに維持される。信号OCD1,OCD2はともに「H」レベルにされてトランジスタ23,33は非導通にされている。
次に、信号PCS,SAEが「H」レベルに立ち上げられる。これにより、トランジスタ40,41が非導通になってノードN3,N4のプリチャージが停止されるとともに、トランジスタ46が導通してセンスアンプ17が活性化される。すなわち、ノードN3の電圧V3とノードN4の電圧V4とが同じ状態でセンスアンプ17が活性化され、トランジスタ44のしきい値電圧VT1とトランジスタ45のしきい値電圧VT2とのオフセットに従ってセンス結果が確定する。図10(k)では、ノードN3が「L」レベルにされ、ノードN4が「H」レベルにされた状態が示されている。ノードN3,N4に現れる信号は、NANDゲート71,72で反転されて信号OCD1,OCD2となる。
ここでは、信号OCD1,OCD2がそれぞれ「H」レベルおよび「L」レベルにされたものとする。この場合は、トランジスタ23が非導通になるとともにトランジスタ33が導通し、ノードN2からオフセット補償電流IOCが流出する。アイドル期間の終了後も信号SAE,PCSは「H」レベルに維持される。
アイドル期間の終了後に読出動作が開始される(時刻t1)。まず、信号BWが「L」レベルに立ち下げられてトランジスタ20,30が非導通にされる。次に、アドレス信号によって選択されたワード線WLが「H」レベルにされ、信号YA,YBが「L」レベルにされ、信号REFが「L」レベルにされる。ここでは、図3のコントロールゲートWL1が「H」レベルにされ、信号YA,YBが「L」レベルにされ、信号REF2が「L」レベルにされたものとする。また、信号PCNが「L」レベルにされてトランジスタ27〜29が導通し、ビット線BL1,BL2が「H」レベルにプリチャージされる。
次に、信号PCNが「H」レベルに立ち上げられ、トランジスタ27〜29が非導通にされてビット線BL1,BL2のプリチャージが停止される。ビット線BL1からメモリセルMC1を介してメモリセル電流ICが流出するとともに、ビット線BL2から定電流源35,36を介して参照電流IRおよびオフセット補償電流IOCが流出し、ビット線BL1,BL2間に電位差が発生する。ここでは、ビット線BL1の電圧がビット線BL2の電圧よりも高くなったものとする。
次に、信号SAEが「L」レベルにされ、センスアンプ17が非活性化されるとともに、信号OCD1,OCD2がともに「H」レベルにされてトランジスタ23,33が非導通にされる。また、信号PCSが「L」レベルにされてノードN3,N4が「H」レベルにプリチャージされる。次いで、信号PCSが「H」レベルに立ち上げられてノードN3,N4のプリチャージが停止される。また、信号DOCNが「L」レベルにされてトランジスタ23,33が非導通にされる。次に、信号YBが「L」レベルにされる。これにより、トランジスタ24,34が導通し、ビット線BL1,BL2上のオフセット補正を反映した読出電圧がそれぞれノードN3,N4に伝達される。
ビット線BL1,BL2のプリチャージを終了してから所定時間Trdの経過後に、信号SAEが「H」レベルにされる。これにより、トランジスタ46が導通してセンスアンプ17が活性化され、ノードN3,N4間の電圧が電源電圧VDDに増幅される。ここでは、ノードN3が「H」レベル(電源電圧VDD)にされ、ノードN4が「L」レベル(接地電圧VSS)にされた状態が示されている。ノードN3,N4間の電圧は、ドライバ(図示せず)によって図2のメインビット線MBLに伝達される。
次に、信号YA,YB,REF1,REF2が「H」レベルにされ、トランジスタ21〜24,31〜34が非導通にされ、センスアンプ17とノードN1,N2とが切り離される。次いで信号SAEが「L」レベルにされてセンスアンプ17が非活性化され、信号PCSが「L」レベルにされてノードN3,N4が「H」レベルにプリチャージされ、信号BWが「H」レベルにされてビット線BL1,BL2が「L」レベルにされる。これにより、読出動作が終了する。
この実施の形態3では、実施の形態1と比べ、読出期間にオフセットキャンセル時間Tadが加わるため、オフセットキャンセルによるTrd短縮効果がその分相殺される。そのため、Trd/Tad比が大きいケース、つまりCbl/IC比が大きいケース(ビット線BLの容量値が比較的大きく、セル電流が十分取りにくい)において効果を発揮する。逆に、面積の観点では、センスアンプ17毎にレジスタ50を設ける必要がないので、回路面積を縮小化することができる。
[実施の形態4]
図11は、本願の実施の形態4によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図であって、図3と対比される図である。図11を参照して、このフラッシュメモリが実施の形態1のフラッシュメモリと異なる点は、2つのメモリセルMC1,MC1AまたはMC2,MC2Aで1ビットのデータ信号を記憶する相補セル構成を取っていることである。参照電流IRを流すためのトランジスタ22,32および定電流源25,35は除去されている。
すなわち、図11において、2つのサブアレイSAと1つのセンスアンプ帯16は、4個のブロックBK0に分割されており、4個のブロックBK0毎に1つのセンスアンプ17とレジスタ50が設けられている。各ブロックBK0は、一方のサブアレイSAに属する4個のブロックBK1と、他方のサブアレイSAに属する4個のブロックBK2と、PチャネルMOSトランジスタ23,24,27〜29,30,31,33,34および定電流源25,35とを含む。
各ブロックBK1は、1列分の複数のメモリセルMC1と、その列に対応するビット線BL1と、もう1列分の複数のメモリセルMC1Aと、その列に対応するビット線BL1Aとを含む。同じ行の2つのメモリセルMC1,MC1Aは、対を成している。メモリセルMC1,MC1Aには、1ビットのデータ信号が格納される。すなわち、メモリセルMC1,MC1Aのうちのいずれか一方のメモリセルがプログラムされ、他方のメモリセルは消去された状態である。これにより、データ信号を正確に記憶することが可能となっている。
また、各ブロックBK1は、各メモリセル行に対応するワード線WL1、メモリゲート線MG1、およびソース線SL1を含む。図11では、代表的に1対のメモリセルMC1,MC1Aだけが示されている。また、ブロックBK1は、NチャネルMOSトランジスタ20,20AおよびPチャネルMOSトランジスタ21,21Aを含む。
トランジスタ20は、ビット線BL1と接地電圧VSSのラインとの間に接続され、そのゲートは信号BW1を受ける。トランジスタ20Aは、ビット線BL1Aと接地電圧VSSのラインとの間に接続され、そのゲートは信号BW1を受ける。信号BW1が「H」レベルである場合は、トランジスタ20,20Aが導通し、ビット線BL1,BL1Aは接地電圧VSSに固定される。信号BW1が「L」レベルである場合は、トランジスタ20,20Aが非導通になる。
トランジスタ21は、ビット線BL1とノードN1の間に接続され、そのゲートは信号YA1を受ける。トランジスタ21Aは、ビット線BL1AとノードN2の間に接続され、そのゲートは信号YA1を受ける。信号YA1は、ブロックBK1に属する4対のビット線BL1,BL1Aのうちの1対のビット線BL1,BL1Aを選択する信号である。4個の信号YA1のうちの1個の信号YA1が「L」レベルにされると、その信号YA1に対応するトランジスタ21,21Aが導通し、ビット線BL1,BL1AがそれぞれノードN1,N2に電気的に接続される。信号YA1が「H」レベルにされると、その信号YA1に対応するトランジスタ21,21Aが非導通になる。
同様に、各ブロックBK2は、1列分の複数のメモリセルMC2と、その列に対応するビット線BL2と、もう1列分の複数のメモリセルMC2Aと、その列に対応するビット線BL2Aとを含む。同じ行の2つのメモリセルMC1,MC1Aは、対を成している。メモリセルMC2,MC2Aには、1ビットのデータ信号が格納される。すなわち、メモリセルMC2,MC2Aのうちのいずれか一方のメモリセルがプログラムされ、他方のメモリセルは消去された状態である。これにより、データ信号を正確に記憶することが可能となっている。
また、各ブロックBK2は、各メモリセル行に対応するワード線WL2、メモリゲート線MG2、およびソース線SL2を含む。図11では、代表的に1対のメモリセルMC2,MC2Aだけが示されている。また、ブロックBK2は、NチャネルMOSトランジスタ30,30AおよびPチャネルMOSトランジスタ31,31Aを含む。
トランジスタ30は、ビット線BL1と接地電圧VSSのラインとの間に接続され、そのゲートは信号BW2を受ける。トランジスタ30Aは、ビット線BL2Aと接地電圧VSSのラインとの間に接続され、そのゲートは信号BW2を受ける。信号BW2が「H」レベルである場合は、トランジスタ30,30Aが導通し、ビット線BL2,BL2Aは接地電圧VSSに固定される。信号BW2が「L」レベルである場合は、トランジスタ30,30Aが非導通になる。
トランジスタ31は、ビット線BL2とノードN2の間に接続され、そのゲートは信号YA2を受ける。トランジスタ31Aは、ビット線BL2AとノードN1の間に接続され、そのゲートは信号YA2を受ける。信号YA2は、ブロックBK2に属する4対のビット線BL2,BL2Aのうちの1対のビット線BL2,BL2Aを選択する信号である。4個の信号YA2のうちの1個の信号YA2が「L」レベルにされると、その信号YA2に対応するトランジスタ31,31Aが導通し、ビット線BL2,BL2AがそれぞれノードN2,N1に電気的に接続される。信号YA2が「H」レベルにされると、その信号YA2に対応するトランジスタ31,31Aが非導通になる。ブロックBK1,BK2のうちのいずれか一方のブロックBKに属する1対のメモリセルMCが選択される。
図12(a)〜(l)は、図11に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートであって、図6(a)〜(m)と対比される図である。図12(a)〜(l)では、1対のメモリセルMC1,MC1Aが選択された場合が示されている。この場合は、メモリセルMC1に流れる電流とメモリセルMC1Aに流れる電流の大小がセンスアンプ17によって比較され、比較結果に基づいてメモリセルMC1,MC1Aに記憶されたデータ信号が読み出される。参照電流IRは不要である。他の構成および動作は実施の形態1と同じであるので、その説明は繰り返さない。
この実施の形態4でも、実施の形態1と同じ効果が得られる。また、相補セル構成ではメモリセル同士の電流差として情報を格納するため、温度や電圧の変動に対して安定的に読出電位差を確保することができる。そのため、非常に高い信頼性が必要な場合に用いられる。したがって、高い信頼性と高速な読出動作の両立が可能である。
[実施の形態5]
図13は、本願の実施の形態5によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図であって、図3と対比される図である。図13を参照して、このフラッシュメモリが実施の形態1のフラッシュメモリと異なる点は、レジスタ50がレジスタ80で置換される点である。
レジスタ80がレジスタ50と異なる点は、インバータ53,54が除去され、NチャネルMOSトランジスタ81,82、インバータ83、NANDゲート84,87,88、およびEX−NORゲート85,86が追加されている点である。
トランジスタ81は、ノードN3とN8の間に接続され、そのゲートは信号OSAを受ける。トランジスタ82は、ノードN4とN9の間に接続され、そのゲートは信号OSAを受ける。信号OSAが「H」レベルである場合は、トランジスタ81,82が導通し、ノードN3,N4の電圧がノードN8,N9に伝達される。信号OSAが「L」レベルである場合は、トランジスタ81,82が非導通になり、ノードN3,N4とノードN8,N9とが電気的に切り離される。
インバータ83は、ノードN9に現れる信号の反転信号をノードN8に出力する。NANDゲート84の一方入力ノードはノードN8に接続され、その他方入力ノードは信号RSTNを受け、その出力ノードはノードN9に接続される。信号RSTNが「H」レベルである場合は、NANDゲート84はインバータとして動作し、インバータ83およびNANDゲート84はラッチ回路を構成する。このラッチ回路は、トランジスタ81,82が非導通にされる前のノードN8,N9の信号を保持する。信号RSTNが「L」レベルである場合は、ノードN8,N9がそれぞれ「L」レベルおよび「H」レベルに固定される。
EX−NORゲート85は、ノードN6に現れる信号の論理レベルとノードN8に現れる信号の論理レベルとが一致した場合は「H」レベルの信号を出力し、両者が一致しない場合は「L」レベルの信号を出力する。NANDゲート87は、EX−NORゲート85の出力信号とノードN8に現れる信号とを受け、信号OCD1を出力する。
EX−ORゲート85の出力信号が「H」レベルである場合は、NANDゲート87はインバータとして動作し、ノードN8に現れる信号の反転信号が信号OCD1となる。EX−ORゲート85の出力信号が「L」レベルである場合は、NANDゲート87の出力信号である信号OCD1は「H」レベルに固定される。
同様に、EX−NORゲート86は、ノードN7に現れる信号の論理レベルとノードN9に現れる信号の論理レベルとが一致した場合は「H」レベルの信号を出力し、両者が一致しない場合は「L」レベルの信号を出力する。NANDゲート88は、EX−NORゲート86の出力信号とノードN9に現れる信号とを受け、信号OCD2を出力する。
EX−ORゲート86の出力信号が「H」レベルである場合は、NANDゲート88はインバータとして動作し、ノードN9に現れる信号の反転信号が信号OCD2となる。EX−ORゲート86の出力信号が「L」レベルである場合は、NANDゲート88の出力信号である信号OCD2は「H」レベルに固定される。
信号OSとOSAは、別々のタイミングで所定時間ずつ「H」レベルにされ、ノードN3,N4の電圧は別々のタイミングでノードN6,N7とノードN8,N9にラッチされる。ノードN6,N7にラッチした信号とノードN8,N9にラッチした信号とが一致した場合は、ノードN8,N9にラッチした信号の反転信号が信号OCD1,OCD2となる。ノードN6,N7にラッチした信号とノードN8,N9にラッチした信号とが一致しない場合は、信号OCD1,OCD2はともに「H」レベルに固定される。
複数のラッチ回路を設けた理由は、トランジスタ44,45のしきい値電圧VT1,VT2の差|VT1−VT2|が小さい場合にはオフセット補正を行なわないことにより、補正効果を上げるためである。すなわち、|VT1−VT2|が小さい場合、オフセットセンス動作の結果が安定しない場合があり、大きな補正をかけると逆に補正前よりオフセット量が逆方向に大きく悪化する危険性がある。そこで、オフセットキャンセル時のセンス時間を長短2種類用意し、1回目は短いセンス時間、2回目は長いセンス時間で動作させ、両者の結果が異なる場合は|VT1−VT2|が小さいと判断して補正しない。こうすることで、オフセット補償電流IOCを実施の形態1よりも大きく設定することができ、Trdの短縮効果を向上させることできる。
図14(a)〜(n)は、図13に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートであって、図6(a)〜(m)と対比される図である。図14(a)〜(n)では、2回のセンス結果が一致した場合が示されている。
第1回目のセンス期間T1では、センスアンプ17をノードN1,N2から切り離した状態で、信号PCS,SAEを「H」レベルに立ち上げてセンスアンプ17を活性化させる。図14(j)では、ノードN3,N4がそれぞれ「L」レベルおよび「H」レベルになった状態が示されている。センスアンプ17を活性化させてから比較的短い時間Ts1の経過後に信号OSを所定時間だけ「H」レベルに立ち上げる。これにより、所定時間だけトランジスタ51,52が導通し、ノードN3,N4の信号がノードN6,N7にラッチされる。信号PCS,SAEを「L」レベルに立ち下げて第1回目のセンス期間T1を終了する。
次に第2回目のセンス期間T2でも、センスアンプ17をノードN1,N2から切り離した状態で、信号PCS,SAEを「H」レベルに立ち上げてセンスアンプ17を活性化させる。図14(j)では、ノードN3,N4がそれぞれ「L」レベルおよび「H」レベルになった状態が示されている。センスアンプ17を活性化させてから比較的長い時間Ts2の経過後に信号OSAを所定時間だけ「H」レベルに立ち上げる。これにより、所定時間だけトランジスタ81,82が導通し、ノードN3,N4の信号がノードN8,N9にラッチされる。
図14(a)〜(n)の例では、2回のセンス結果が一致したので、EX−NORゲート85,86の出力信号がともに「H」レベルになり、ノードN8,N9に現れる信号の反転信号が信号OCD1,OCD2となる。図14(a)〜(n)では、信号OCD1,OCD2がそれぞれ「H」レベルおよび「L」レベルにされた状態が示されている。この場合は、図3のトランジスタ23が非導通になるとともにトランジスタ33が導通し、ノードN2からオフセット補償電流IOCが流出する。
図15(a)〜(n)は、図13に示した回路のオフセットセンス動作および読出動作を示すタイムチャートであって、図14(a)〜(n)と対比される図である。図15(a)〜(n)では、2回のセンス結果が一致しない場合が示されている。第1回目のセンス期間T1では、ノードN3,N4がそれぞれ「L」レベルおよび「H」レベルとなり、第2回目のセンス期間T2では、ノードN3,N4がそれぞれ「H」レベルおよび「L」レベルとなっている。
図15(a)〜(n)の例では、2回のセンス結果が一致しないので、EX−NORゲート85,86の出力信号がともに「L」レベルになり、信号OCD1,OCD2がともに「H」レベルに固定される。この場合は、図3のトランジスタ23,33がともに非導通になり、ノードN1,N2からオフセット補償電流IOCは流出しない。
この実施の形態5では、実施の形態1と同じ効果が得られる他、|VT1−VT2|が小さい場合はオフセット補正を行なわないようにすることでオフセット補正効果を高めることができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。