(57)【要約】【課題】簡単な構成で読出速度が速い半導体装置を提供する。【解決手段】このフラッシュメモリでは、ノードＮ３，Ｎ４を電源電圧ＶＤＤにプリチャージした後にセンスアンプ１７を活性化させ、ノードＮ３，Ｎ４に現れる信号をレジスタ５０に保持し、レジスタ５０の出力信号ＯＣＤ１，ＯＣＤ２によってトランジスタ２３または３３を導通させ、ノードＮ１またはＮ２にオフセット補償用の定電流源２６または３６を接続する。したがって、簡単な構成でセンスアンプ１７のオフセット電圧を補償できる。【選択図】図３
2014086111.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２のノードを予め定められた電圧にプリチャージするプリチャージ回路と、
前記第１および第２のノード間の電圧を増幅し、第１または第２の信号を出力するセンスアンプと、
オフセットセンス動作時に、前記プリチャージ回路によって前記第１および第２のノードを前記予め定められた電圧にプリチャージさせた後に前記センスアンプを活性化させ、前記センスアンプの出力信号に基づいて前記センスアンプのオフセット電圧を検出するオフセット検出回路と、
前記オフセット検出回路の検出結果に基づき、前記プリチャージ回路によってプリチャージされた前記第１または第２ノードの電圧を変化させ、前記センスアンプのオフセット電圧を補償するオフセット補償回路とを備える、半導体装置。
【請求項２】
前記オフセット検出回路は、前記オフセットセンス動作時における前記センスアンプの出力信号を保持するレジスタを含み、
前記オフセット補償回路は、前記レジスタ部に保持された信号に基づいて前記第１または第２のノードの電圧を変化させる、請求項１に記載の半導体装置。
【請求項３】
前記レジスタは、
それらの一方電極がそれぞれ前記第１および第２のノードに接続され、前記オフセットセンス動作時に導通する第１および第２のスイッチング素子と、
前記第１および第２のスイッチング素子の他方電極に接続され、前記第１および第２のスイッチング素子を介して与えられた前記センスアンプの出力信号を保持するラッチ回路とを含む、請求項２に記載の半導体装置。
【請求項４】
前記オフセットセンス動作は複数回行なわれ、
前記レジスタは複数回分の前記センスアンプの出力信号を保持し、
前記オフセット補償回路は、前記レジスタに保持された前記複数回分の前記センスアンプの出力信号の論理が一致した場合は、それらの信号に基づいて前記第１または第２のノードの電圧を変化させ、それらの信号の論理が一致しない場合は前記第１および第２のノードの電圧を変化させない、請求項２に記載の半導体装置。
【請求項５】
前記オフセット補償回路は、
前記第１のノードと基準電圧のラインとの間に直列接続された第１のスイッチング素子および第１の電流源と、
前記第２のノードと前記基準電圧のラインとの間に直列接続された第２のスイッチング素子および第２の電流源とを含み、
前記レジスタに保持された信号の論理に基づいて前記第１または第２のスイッチング素子が導通する、請求項２に記載の半導体装置。
【請求項６】
前記オフセット補償回路は、
前記第１のノードと基準電圧のラインとの間に直列接続された第１のスイッチング素子および第１のコンデンサと、
前記第２のノードと前記基準電圧のラインとの間に直列接続された第２のスイッチング素子および第２のコンデンサとを含み、
前記レジスタに保持された信号の論理に基づいて前記第１または第２のスイッチング素子が導通する、請求項２に記載の半導体装置。
【請求項７】
前記オフセット補償回路は、
さらに、前記第１のコンデンサに並列接続され、前記第１のスイッチング素子が非導通にされた場合に導通する第３のスイッチング素子と、
前記第２のコンデンサに並列接続され、前記第１のスイッチング素子が非導通にされた場合に導通する第４のスイッチング素子とを含む、請求項６に記載の半導体装置。
【請求項８】
前記オフセットセンス動作は、前記半導体装置に電源電圧が投入されたときに行なわれる、請求項１に記載の半導体装置。
【請求項９】
前記オフセットセンス動作は、前記センスアンプが活性化される通常動作の前に行なわれる、請求項１に記載の半導体装置。
【請求項１０】
さらに、記憶したデータ信号の論理に応じた第１または第２の値の電流を前記第１のノードに付加するメモリセルと、
前記第１および第２の値の間の第３の値の参照電流を前記第２のノードに付加する電流源と、
読出動作時に、前記メモリセルおよび前記電流源を活性化させながら前記プリチャージ回路によって前記第１および第２のノードを前記予め定められた電圧にプリチャージさせた後に前記センスアンプを活性化させる読出制御回路とを備える、請求項１に記載の半導体装置。
【請求項１１】
さらに、記憶した第１のデータ信号の論理に応じた第１または第２の値の電流を前記第１のノードに付加する第１のメモリセルと、
前記第１のデータ信号と異なる論理の第２のデータ信号を記憶し、前記第２のデータ信号の論理に応じた前記第１または第２の値の電流を前記第２のノードに付加する第２のメモリセルと、
読出動作時に、前記第１および第２のメモリセルを活性化させながら前記プリチャージ回路によって前記第１および第２のノードを前記予め定められた電圧にプリチャージさせた後に前記センスアンプを活性化させる読出制御回路とを備える、請求項１に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、たとえばセンスアンプを備えた半導体装置に好適に利用できるものである。
【背景技術】
【０００２】
従来より、半導体記憶装置には、メモリセルから読み出された微小な電圧を電源電圧に増幅するセンスアンプが設けられている。また、センスアンプのオフセット電圧を補償する種々のオフセット補償回路が提案されている。
【０００３】
非特許文献１のオフセット補償回路では、まず、センスアンプの２つのＰチャネルＭＯＳトランジスタをダイオード接続し、２つのトランジスタにそれぞれセル電流および参照電流を流し、２つのトランジスタのゲート−ソース間電圧をそれぞれ２つのコンデンサに保持させる。このとき、２つのトランジスタのしきい値電圧の差を補正したゲート−ソース間電圧が２つのコンデンサに保持される。次に、２つのトランジスタをクロスカップル接続させてセンス動作を開始させる。
【０００４】
また、特許文献１のオフセット補償回路では、２本のデータバスの間にセンスアンプが接続されている。２本のデータバスを所定電圧にプリチャージした後、１本のデータバスの電荷をコンデンサに分配してデータバスの電圧を低下させ、センスアンプを活性化させて読出データ信号を記憶する。この動作を各データバス毎に、コンデンサの容量値を複数段階で変えて行なう。記憶した複数の読出データ信号に基づいて、読出動作時にデータバスに接続するコンデンサの容量値を決定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１７５６８９号公報
【非特許文献】
【０００６】
【非特許文献１】M.-F. Chang, S.-J. Shen, C.-C. Liu, C.-W. Wu, Y.-F. Lin, S.-C. Wu, C.-E. Huang, H.-C. Lai, Y.-C. King, C.-J. Lin, H.-J. Liao, Y.-D. Chih, H. Yamauchi, “An Offset-Tolerant Current-Sampling-Based Sense Amplifier for Sub-100nA-Cell-Current Nonvolatile Memory”, IEEE Solid-State Circuits Conference, Dig. of Tech. Papers, pp. 206-208, 2011
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１では、読出動作毎に２つのコンデンサを充電していたので、読出速度が遅くなるという問題がある。
【０００８】
また、特許文献１では、各データバス毎にコンデンサの容量値を複数段階で変えて読出データ信号を記憶し、記憶した複数の読出データ信号に基づいてコンデンサの容量値を決定するので、構成が複雑になるという問題があった。
【０００９】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態によれば、本願の半導体装置では、第１および第２のノードを同電圧にプリチャージした後にセンスアンプを活性化させ、そのときのセンスアンプの出力信号に基づいて第１または第２ノードの電圧を低下させる。
【発明の効果】
【００１１】
一実施の形態によれば、簡単な構成で読出速度の高速化を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】本願の実施の形態１によるマイクロコントローラチップの構成を示すブロック図である。
【図２】図１に示したメモリアレイの構成を示す回路ブロック図である。
【図３】図２に示したサブアレイおよびセンスアンプ帯の要部を示す回路図である。
【図４】図３に示したセンスアンプのオフセット電圧とその補償方法について説明するためのタイムチャートである。
【図５】図１に示したマイクロコントローラチップにおける電源投入後のチップ初期化シーケンスを示すタイムチャートである。
【図６】図３に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートである。
【図７】本願の実施の形態２によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図である。
【図８】図７に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートである。
【図９】本願の実施の形態３によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図である。
【図１０】図９に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートである。
【図１１】本願の実施の形態４によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図である。
【図１２】図１１に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートである。
【図１３】本願の実施の形態５によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図である。
【図１４】図１３に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートである。
【図１５】図１３に示したフラッシュメモリのオフセットセンス動作および読出動作を示す他のタイムチャートである。
【発明を実施するための形態】
【００１３】
［実施の形態１］
本願の適用範囲は、特定のメモリに限定されるものではなく、不揮発性メモリ、揮発性メモリ、汎用メモリ、混載メモリのいずれにも適用可能であり、特定のメモリセル構成に限定されるものではない。ここでは一例として、本願がスプリットゲート型メモリセルを有するマイクロコントローラ向け混載不揮発性フラッシュメモリに適用された場合について説明する。
【００１４】
本願の実施の形態１によるマイクロコントローラチップ１は、図１に示すように、ＳＲＡＭ（StatＩＣ Random Access Memory）２、ＣＰＵ（Central Processing Unit）３、高速ＣＰＵバス４、およびＩ／Ｆ（interface）回路５，９を備える。また、このマイクロコントローラチップ１は、バスブリッジ６、フラッシュメモリ７，８、書換制御回路１０、および周辺バス１１を備える。
【００１５】
ＳＲＡＭ２およびフラッシュメモリ７は、データを記憶する。フラッシュメモリ８は、プログラムを記憶する。ＳＲＭＡ２とＣＰＵ３は、高速ＣＰＵバス４によって互いに接続されている。ＣＰＵ３から高速ＣＰＵバス４、バスブリッジ６、周辺バス１１、および書換制御回路１０を介してフラッシュメモリ７，８に書換用のアドレス信号ＷＡおよびデータ信号Ｄが与えられる。
【００１６】
また、ＣＰＵ３から高速ＣＰＵバス４、バスブリッジ６、周辺バス１１、およびＩ／Ｆ回路９を介してフラッシュメモリ７に読出用のアドレス信号ＲＡが与えられ、その逆の経路でフラッシュメモリ７からＣＰＵ３に読出データ信号Ｑが与えられる。また、ＣＰＵ３から高速ＣＰＵバス４およびＩ／Ｆ回路５を介してフラッシュメモリ８に読出用のアドレス信号ＲＡが与えられ、その逆の経路でフラッシュメモリ８からＣＰＵ３にプログラムを構成する読出データ信号Ｑが与えられる。
【００１７】
また、マイクロコントローラチップ１は、割込制御回路１２、ＰＬＬ（phase locked loop）回路１３、電源回路１４、およびポート部１５に接続されている。割込制御回路１２は、外部リセット信号ＲＳＴＢに応答して内部リセット信号ＲＳＴＮをチップ１に与える。ＰＬＬ回路１３は、外部クロック信号ＣＬＫＥに同期した内部クロック信号ＣＬＫを生成してチップ１に与える。電源回路１４は、外部電源電圧ＶＣＣおよび外部接地電圧ＶＳＳに基づいて内部電源電圧ＶＤＤと信号ＶＤＤＯＮを生成してチップ１に与える。信号ＶＤＤＯＮは、内部電源電圧ＶＤＤが所定レベルに到達したことを示す信号である。ポート部１５は、外部とチップ１との間でアドレス信号ＡＤＤおよびデータ信号Ｄ，Ｑの授受を行なう。
【００１８】
また、フラッシュメモリ７は、メモリアレイＭＡ、ＭＧドライバＭＤ、ＷＬドライバＷＤ、ＳＬドライバＳＤ、Ｙ系回路ＹＣ、電源スイッチＰＳ、内部電圧発生回路ＶＷＧ、および論理回路ＬＧを含む。フラッシュメモリ８は、複数（図では４つ）のバンクＢ１〜Ｂ４を含む。各バンクＢは、２つのメモリアレイＭＡ、ＷＬドライバＷＤ、ＭＧドライバＭＤ、ＳＬドライバＳＤ、Ｙ系回路ＹＣ、電源スイッチＰＳ、論理回路ＬＧ、および入出力バッファＩＯを含む。
【００１９】
内部電圧発生回路ＶＷＧは、書換用内部電圧ＶＷおよび参照電圧ＶＲを生成してフラッシュメモリ７，８全体に供給する。論理回路ＬＧは、対応のフラッシュメモリ７または８全体を制御する。電源スイッチＰＳは、書換用内部電圧ＶＷを対応のフラッシュメモリ７または８内に分配する。
【００２０】
メモリアレイＭＡは、複数行複数列に配置された複数のメモリセルと、それぞれ複数行に対応して設けられた複数組のワード線ＷＬ、メモリゲート線ＭＧ、およびソース線ＳＬと、それぞれ複数列に対応して設けられたビット線ＢＬとを含む。各メモリセルは、１ビットのデータ信号を記憶する。各メモリセルには、固有のアドレス信号が予め割り当てられている。
【００２１】
ＭＧドライバＭＤ、ＷＬドライバＷＤ、およびＳＬドライバＳＤは、アドレス信号によって選択されたメモリセルに対応するワード線ＷＬ、メモリゲート線ＭＧ、およびソース線ＳＬを駆動する。Ｙ系回路ＹＣは、アドレス信号に従って複数のビット線ＢＬのうちのいずれかのビット線ＢＬを選択する。入出力バッファＩＯは、Ｉ／Ｆ回路５とフラッシュメモリ８との間で読出用のアドレス信号ＲＡとデータ信号Ｑの授受を行なう。
【００２２】
図２は、メモリアレイＭＡの構成を示す回路ブロック図である。図２において、メモリアレイＭＡは、複数のサブアレイＳＡに分割されている。複数のサブアレイＳＡは、予め２つずつグループ化されている。各グループの２つのサブアレイＳＡの間にセンスアンプ帯１６が配置されている。
【００２３】
各サブアレイＳＡは、複数行複数列に配置された複数のメモリセルＭＣと、それぞれ複数行に対応して設けられた複数組のワード線ＷＬ、メモリゲート線ＭＧ、およびソース線ＳＬと、それぞれ複数列に対応して設けられたビット線ＢＬとを含む。各メモリセルＭＣは、ビット線ＢＬとソース線ＳＬの間に直列接続された選択トランジスタＳＴとメモリトランジスタＭＴを含む。選択トランジスタＳＴのゲートはワード線ＷＬに接続され、メモリトランジスタＭＴのゲートはメモリゲート線ＭＧに接続されている。
【００２４】
ワード線ＷＬ、メモリゲート線ＭＧ、ソース線ＳＬ、およびビット線ＢＬを駆動することにより、メモリトランジスタＭＴのしきい値電圧を高値ＶＴＨと低値ＶＴＬのうちのいずれかに設定することが可能となっている。たとえば、メモリトランジスタＭＴのしきい値電圧が高値ＶＴＨとなった状態はデータ信号「０」に対応付けられ、メモリトランジスタＭＴのしきい値電圧が低値ＶＴＬとなった状態はデータ信号「１」に対応付けられる。これにより、１つのメモリセルＭＣに１ビットのデータ信号が記憶される。
【００２５】
なお、メモリセルＭＣのしきい値電圧を高値ＶＴＨから低値ＶＴＬに書き換える動作は消去動作と呼ばれる。逆に、メモリセルＭＣのしきい値電圧を低値ＶＴＬから高値ＶＴＨに書き換える動作はプログラム動作あるいは書込動作と呼ばれる。
【００２６】
読出動作時は、ビット線ＢＬに所定の電圧を印加し、ワード線ＣＧを「Ｈ」レベルにして選択トランジスタＳＴを導通させ、メモリゲート線ＭＧに高値ＶＴＨと低値ＶＴＬの間の読出電圧を印加する。メモリトランジスタＭＴのしきい値電圧が高値ＶＴＨである場合は、参照電流ＩＲよりも小さな電流がメモリトランジスタＭＴに流れる。また、メモリトランジスタＭＴのしきい値電圧が低値ＶＴＬである場合は、参照電流ＩＲよりも大きな電流がメモリトランジスタＭＴに流れる。したがって、メモリトランジスタＭＴに流れる電流と参照電流ＩＲとの大小を比較することにより、メモリセルＭＣに記憶されたデータ信号が「０」であるか「１」であるかを判別することができる。
【００２７】
また、各センスアンプ帯１６には、所定数の列に１つの割合でセンスアンプ１７が配置されている。センスアンプ１７は、選択されたメモリセルＭＣからデータ信号を読み出すものである。また、所定数の列に１本の割合で、複数のサブアレイＳＡに共通にメインビット線ＭＢＬが設けられている。メインビット線ＭＢＬは、各センスアンプ帯１６の対応のセンスアンプ１７に接続されている。
【００２８】
図３は、２つのサブアレイＳＡと１つのセンスアンプ帯１６の要部を示す回路図である。図３において、２つのサブアレイＳＡと１つのセンスアンプ帯１６は、４個のブロックＢＫ０に分割されており、４個のブロックＢＫ０毎に１つのセンスアンプ１７とレジスタ５０が設けられている。
【００２９】
各ブロックＢＫ０は、一方のサブアレイＳＡに属する８個のブロックＢＫ１と、他方のサブアレイＳＡに属する８個のブロックＢＫ２と、ＰチャネルＭＯＳトランジスタ２２〜２４，２７〜２９，３０〜３４および定電流源２５，２６，３５，３６とを含む。
【００３０】
各ブロックＢＫ１は、１列分の複数のメモリセルＭＣ１と、その列に対応するビット線ＢＬ１と、各メモリセルＭＣ１に対応するワード線ＷＬ１、メモリゲート線ＭＧ１、およびソース線ＳＬ１とを含む。図３では、代表的に１つのメモリセルＭＣ１だけが示されている。また、ブロックＢＫ１は、ＮチャネルＭＯＳトランジスタ２０およびＰチャネルＭＯＳトランジスタ２１を含む。
【００３１】
トランジスタ２０は、ビット線ＢＬ１と接地電圧ＶＳＳのラインとの間に接続され、そのゲートは信号ＢＷを受ける。信号ＢＷが「Ｈ」レベルである場合は、トランジスタ２０が導通し、ビット線ＢＬ１は接地電圧ＶＳＳに固定される。信号ＢＷが「Ｌ」レベルである場合は、トランジスタ２０が非導通になる。トランジスタ２１は、ビット線ＢＬ１とノードＮ１の間に接続され、そのゲートは信号ＹＡを受ける。信号ＹＡは、ブロックＢＫ１に属する８本のビット線ＢＬ１のうちの１本のビット線ＢＬ１を選択する信号である。８個の信号ＹＡのうちの１個の信号ＹＡが「Ｌ」レベルにされると、その信号ＹＡに対応するトランジスタ２１が導通し、ビット線ＢＬ１がノードＮ１に電気的に接続される。信号ＹＡが「Ｈ」レベルにされると、その信号ＹＡに対応するトランジスタ２１が非導通になる。
【００３２】
同様に、各ブロックＢＫ２は、１列分の複数のメモリセルＭＣ２と、その列に対応するビット線ＢＬ２と、各メモリセルＭＣ２に対応するワード線ＷＬ２、メモリゲート線ＭＧ２、およびソース線ＳＬ２とを含む。図３では、代表的に１つのメモリセルＭＣ２だけが示されている。また、ブロックＢＫ２は、ＮチャネルＭＯＳトランジスタ３０およびＰチャネルＭＯＳトランジスタ３１を含む。
【００３３】
トランジスタ３０は、ビット線ＢＬ２と接地電圧ＶＳＳのラインとの間に接続され、そのゲートは信号ＢＷを受ける。信号ＢＷが「Ｈ」レベルである場合は、トランジスタ３０が導通し、ビット線ＢＬ２は接地電圧ＶＳＳに固定される。信号ＢＷが「Ｌ」レベルである場合は、トランジスタ３０が非導通になる。トランジスタ３１は、ビット線ＢＬ２とノードＮ２の間に接続され、そのゲートは信号ＹＡを受ける。信号ＹＡは、ブロックＢＫ２に属する８本のビット線ＢＬ２のうちの１本のビット線ＢＬ２をも選択する信号である。８個の信号ＹＡのうちの１個の信号ＹＡが「Ｌ」レベルにされると、その信号ＹＡに対応するトランジスタ３１が導通し、ビット線ＢＬ２がノードＮ２に電気的に接続される。信号ＹＡが「Ｈ」レベルにされると、その信号ＹＡに対応するトランジスタ３１が非導通になる。ブロックＢＫ１，ＢＫ２のうちのいずれか一方のブロックＢＫに属する１つのメモリセルＭＣが選択される。
【００３４】
ＰチャネルＭＯＳトランジスタ２２および定電流源２５は、ノードＮ１と接地電圧ＶＳＳのラインとの間に直列接続される。トランジスタ２２のゲートは、信号ＲＥＦ１を受ける。信号ＲＥＦ１が「Ｌ」レベルである場合は、トランジスタ２２が導通し、ノードＮ１から接地電圧ＶＳＳのラインに参照電流ＩＲが流れる。信号ＲＥＦ１が「Ｈ」レベルである場合は、トランジスタ２２が非導通になる。
【００３５】
ＰチャネルＭＯＳトランジスタ３２および定電流源３５は、ノードＮ２と接地電圧ＶＳＳのラインとの間に直列接続される。トランジスタ３２のゲートは、信号ＲＥＦ２を受ける。信号ＲＥＦ２が「Ｌ」レベルである場合は、トランジスタ３２が導通し、ノードＮ２から接地電圧ＶＳＳのラインに参照電流ＩＲが流れる。信号ＲＥＦ２が「Ｈ」レベルである場合は、トランジスタ３２が非導通になる。
【００３６】
ブロックＢＫ１のメモリセルＭＣ１が選択された場合は、信号ＲＥＦ１が「Ｈ」レベルにされるとともに信号ＲＥＦ２が「Ｌ」レベルにされ、メモリセルＭＣ１に流れる電流と定電流源３５に流れる参照電流ＩＲとの大小が比較される。ブロックＢＫ２のメモリセルＭＣ２が選択された場合は、信号ＲＥＦ１が「Ｌ」レベルにされるとともに信号ＲＥＦ２が「Ｈ」レベルにされ、メモリセルＭＣ２に流れる電流と定電流源２５に流れる参照電流ＩＲとの大小が比較される。
【００３７】
ＰチャネルＭＯＳトランジスタ２３および定電流源２６は、ノードＮ１と接地電圧ＶＳＳのラインとの間に直列接続される。トランジスタ２３のゲートは、信号ＯＣＤ１を受ける。信号ＯＣＤ１が「Ｌ」レベルである場合は、トランジスタ２３が導通し、ノードＮ１から接地電圧ＶＳＳのラインにオフセット補償電流ＩＯＣが流れる。信号ＯＣＤ１が「Ｈ」レベルである場合は、トランジスタ２３が非導通になる。
【００３８】
ＰチャネルＭＯＳトランジスタ３３および定電流源３６は、ノードＮ２と接地電圧ＶＳＳのラインとの間に直列接続される。トランジスタ３３のゲートは、信号ＯＣＤ２を受ける。信号ＯＣＤ２が「Ｌ」レベルである場合は、トランジスタ３３が導通し、ノードＮ２から接地電圧ＶＳＳのラインにオフセット補償電流ＩＯＣが流れる。信号ＯＣＤ２が「Ｈ」レベルである場合は、トランジスタ３３が非導通になる。
【００３９】
センスアンプ１７のオフセット電圧に応じて、信号ＯＣＤ１，ＯＣＤ２のうちのいずれか一方の信号ＯＣＤが「Ｌ」レベルにされる。これにより、ノードＮ１，Ｎ２のうちのいずれか一方のノードからオフセット補償電流ＩＯＣが流出し、センスアンプ１７のオフセット電圧が補償される。これについては、後で詳細に説明する。
【００４０】
ＰチャネルＭＯＳトランジスタ２４は、ノードＮ１とセンスアンプ１７のノードＮ３との間に接続され、そのゲートは信号ＹＢを受ける。ＰチャネルＭＯＳトランジスタ３４は、ノードＮ２とセンスアンプ１７のノードＮ４との間に接続され、そのゲートは信号ＹＢを受ける。信号ＹＢは、４つのブロックＢＫ０のうちのいずれか１つのブロックＢＫ０を選択する信号である。４個の信号ＹＢのうちの１個の信号ＹＢが「Ｌ」レベルにされると、その信号ＹＢに対応するトランジスタ２４，３４が導通し、ノードＮ１，Ｎ２がセンスアンプ１７のノードＮ３，Ｎ４に接続される。信号ＹＢが「Ｈ」レベルにされると、その信号ＹＢに対応するトランジスタ２４，３４が非導通になる。
【００４１】
ＰチャネルＭＯＳトランジスタ２７は、ノードＮ１と電源電圧ＶＤＤのラインとの間に接続される。ＰチャネルＭＯＳトランジスタ２８は、ノードＮ２と電源電圧ＶＤＤのラインとの間に接続される。ＰチャネルＭＯＳトランジスタ２９は、ノードＮ１，Ｎ２間に接続される。トランジスタ２７〜２９のゲートは、ともに信号ＰＣＮを受ける。信号ＰＣＮは、４つのブロックＢＫ０のそれぞれに対応して用意される。信号ＰＣＮが「Ｌ」レベルである場合は、トランジスタ２７〜２９が導通し、ノードＮ１，Ｎ２が電源電圧ＶＤＤにプリチャージされる。信号ＰＣＮが「Ｈ」レベルである場合は、トランジスタ２７〜２９が非導通になる。
【００４２】
センスアンプ１７は、ＰチャネルＭＯＳトランジスタ４０〜４３およびＮチャネルＭＯＳトランジスタ４４〜４６を含む。トランジスタ４０は、ノードＮ３と電源電圧ＶＤＤのラインとの間に接続される。トランジスタ４１は、ノードＮ４と電源電圧ＶＤＤのラインとの間に接続される。トランジスタ４０，４１のゲートは、ともに信号ＰＣＳを受ける。信号ＰＣＳが「Ｌ」レベルである場合は、トランジスタ４０，４１が導通し、ノードＮ３，Ｎ４が電源電圧ＶＤＤにプリチャージされる。信号ＰＣＳが「Ｈ」レベルである場合は、トランジスタ４０，４１が非導通になる。
【００４３】
トランジスタ４２は、電源電圧ＶＤＤのラインとノードＮ３との間に接続され、そのゲートはノードＮ４に接続される。トランジスタ４３は、電源電圧ＶＤＤのラインとノードＮ４との間に接続され、そのゲートはノードＮ３に接続される。トランジスタ４４は、ノードＮ３，Ｎ５間に接続され、そのゲートはノードＮ４に接続される。トランジスタ４５は、ノードＮ４，Ｎ５間に接続され、そのゲートはノードＮ３に接続される。トランジスタ４６は、ノードＮ５と接地電圧ＶＳＳのラインとの間に接続され、そのゲートは信号ＳＡＥを受ける。
【００４４】
信号ＰＣＳが「Ｈ」レベルにされた状態で信号ＳＡＥが「Ｈ」レベルにされると、トランジスタ４６が導通してセンスアンプ１７が活性化され、センスアンプ１７はノードＮ３，Ｎ４間の電位差を電源電圧ＶＤＤに増幅する。すなわち、ノードＮ３の電圧がノードＮ４の電圧よりも高い場合は、トランジスタ４２，４５の電流駆動能力がトランジスタ４３，４４の電流駆動能力よりも大きくなり、ノードＮ３が電源電圧ＶＤＤにされるとともにノードＮ４が接地電圧ＶＳＳにされる。換言すると、ノードＮ３の電圧がノードＮ４の電圧よりも高い場合は、ノードＮ３，Ｎ４にそれぞれ「Ｈ」レベルおよび「Ｌ」レベルの信号が出力される。
【００４５】
逆に、ノードＮ４の電圧がノードＮ３の電圧よりも高い場合は、トランジスタ４３，４４の電流駆動能力がトランジスタ４２，４５の電流駆動能力よりも大きくなり、ノードＮ４が電源電圧ＶＤＤにされるとともにノードＮ３が接地電圧ＶＳＳにされる。換言すると、ノードＮ４の電圧がノードＮ３の電圧よりも高い場合は、ノードＮ４，Ｎ３にそれぞれ「Ｈ」レベルおよび「Ｌ」レベルの信号が出力される。信号ＳＡＥが「Ｌ」レベルにされると、トランジスタ４６が非導通になってセンスアンプ１７が非活性化される。
【００４６】
レジスタ５０は、ＮチャネルＭＯＳトランジスタ５１，５２、インバータ５３〜５５、およびＮＡＮＤゲート５６を含む。トランジスタ５１は、センスアンプ１７のノードＮ３とレジスタ５１のノードＮ６との間に接続され、そのゲートは信号ＯＳを受ける。トランジスタ５２は、センスアンプ１７のノードＮ４とレジスタ５１のノードＮ７との間に接続され、そのゲートは信号ＯＳを受ける。信号ＯＳが「Ｈ」レベルである場合は、トランジスタ５１，５２が導通し、ノードＮ３，Ｎ４の電圧がノードＮ６，Ｎ７に伝達される。信号ＯＳが「Ｌ」レベルである場合は、トランジスタ５１，５２が非導通になり、ノードＮ３，Ｎ４とノードＮ６，Ｎ７とが電気的に切り離される。
【００４７】
インバータ５５は、ノードＮ７に現れる信号の反転信号をノードＮ６に出力する。ＮＡＮＤゲート５６の一方入力ノードはノードＮ６に接続され、その他方入力ノードは信号ＲＳＴＮを受け、その出力ノードはノードＮ７に接続される。信号ＲＳＴＮが「Ｈ」レベルである場合は、ＮＡＮＤゲート５６はインバータとして動作し、インバータ５５およびＮＡＮＤゲート５６はラッチ回路を構成する。このラッチ回路は、トランジスタ５１，５２が非導通にされる前のノードＮ６，Ｎ７の信号を保持する。信号ＲＳＴＮが「Ｌ」レベルである場合は、ノードＮ６，Ｎ７がそれぞれ「Ｌ」レベルおよび「Ｈ」レベルに固定される。インバータ５３は、ノードＮ６に現れる信号の反転信号を信号ＯＣＤ１として出力する。インバータ５４は、ノードＮ７に現れる信号の反転信号を信号ＯＣＤ２として出力する。
【００４８】
ここで、センスアンプ１７のオフセット電圧とその補償方法について説明する。このフラッシュメモリでは、メモリセルＭＣからデータ信号を読み出す前にビット線ＢＬを電源電圧ＶＤＤにプリチャージするので、センスアンプ１７のＮチャネルＭＯＳトランジスタ４４，４５のしきい値電圧のミスマッチがオフセット電圧に大きく影響する。トランジスタ４４，４５のしきい値電圧をそれぞれＶＴ１，ＶＴ２とし、それらの大小関係から２つのケースについて考察する。
【００４９】
第１のケースは、ＶＴ１＞ＶＴ２の場合である。この場合は、ノードＮ３の電圧Ｖ３とノードＮ４の電圧Ｖ４とが同じであっても、トランジスタ４４よりもトランジスタ４５の方が導通し易い。等価的には、トランジスタ４４，４５のしきい値電圧ＶＴ１，ＶＴ２を同じにし、ノードＮ３の電圧Ｖ３をノードＮ４の電圧Ｖ４よりも高くした（Ｖ３−Ｖ４＝ＶＴ１−ＶＴ２）と考えることができる。したがって、センスアンプ１７のオフセット電圧をキャンセルするためには、ノードＮ３側の放電速度を上げる、すなわちノードＮ３側にオフセット補償電流ＩＣＯを付加すればよい。
【００５０】
具体的には、ノードＮ３側のメモリセルＭＣ１が選択された場合には、ノードＮ３からメモリセル電流ＩＣとオフセット補償電流ＩＯＣを流出させるとともに、ノードＮ４から参照電流ＩＲを流出させる。逆に、ノードＮ４側のメモリセルＭＣ２が選択された場合には、ノードＮ３から参照電流ＩＲとオフセット補償電流ＩＯＣを流出させるとともに、ノードＮ４からメモリセル電流ＩＣを流出させる。これにより、センスアンプ１７のオフセット電圧を補償することができる。
【００５１】
また、第２のケースは、ＶＴ１＜ＶＴ２の場合である。この場合は、ノードＮ３の電圧Ｖ３とノードＮ４の電圧Ｖ４とが同じであっても、トランジスタ４５よりもトランジスタ４４の方が導通し易い。等価的には、トランジスタ４４，４５のしきい値電圧ＶＴ１，ＶＴ２を同じにし、ノードＮ４の電圧Ｖ４をノードＮ３の電圧Ｖ３よりも高くした（Ｖ４−Ｖ３＝ＶＴ２−ＶＴ１）と考えることができる。したがって、センスアンプ１７のオフセット電圧をキャンセルするためには、ノードＮ４側の放電速度を上げる、すなわちノードＮ４側にオフセット補償電流ＩＣＯを付加すればよい。
【００５２】
具体的には、ノードＮ３側のメモリセルＭＣ１が選択された場合には、ノードＮ３からメモリセル電流ＩＣを流出させるとともに、ノードＮ４から参照電流ＩＲとオフセット補償電流ＩＯＣを流出させる。逆に、ノードＮ４側のメモリセルＭＣ２が選択された場合には、ノードＮ３から参照電流ＩＲを流出させるとともに、ノードＮ４からメモリセル電流ＩＣとオフセット補償電流ＩＯＣを流出させる。これにより、センスアンプ１７のオフセット電圧を補償することができる。
【００５３】
ノードＮ３側のメモリセルＭＣ１が選択された前提で、図４（ａ）は、ＶＴ１＞ＶＴ２の場合におけるノードＮ３，Ｎ４の電圧Ｖ３，Ｖ４の時刻変化を示すタイムチャートである。図４（ｂ）は、ＶＴ１＜ＶＴ２の場合におけるノードＮ３，Ｎ４の電圧Ｖ３，Ｖ４の時刻変化を示すタイムチャートである。比較例として、ＶＴ１＝ＶＴ２の場合におけるノードＮ３，Ｎ４の電圧Ｖ３，Ｖ４の時刻変化をも示している。図４（ａ）（ｂ）は、ともに、ノードＭ３側のメモリセルＭＣ１とノードＮ４側の定電流源３５が選択された場合を示している。
【００５４】
ここでは、データ信号「０」を記憶したメモリセルＭＣ１に流れる電流をＩＣ０とし、データ信号「１」を記憶したメモリセルＭＣ１に流れる電流をＩＣ１とする。Ｖ３（ＩＣ０）は、ノードＮ３からＩＣ０を流出させたときのＶ３の変化を示している。Ｖ３（ＩＣ１）は、ノードＮ３からＩＣ１を流出させたときのＶ３の変化を示している。Ｖ３（ＩＣ０＋ＩＯＣ）は、ノードＮ３からＩＣ０+ＩＯＣを流出させたときのＶ３の変化を示している。Ｖ３（ＩＣ１＋ＩＯＣ）は、ノードＮ３からＩＣ１+ＩＯＣを流出させたときのＶ３の変化を示している。Ｖ４（ＩＲ）は、ノードＮ４からＩＲを流出させたときのＶ４の変化を示している。Ｖ４（ＩＲ＋ＩＯＣ）は、ノードＮ４からＩＲ＋ＩＯＣを流出させたときのＶ４の変化を示している。
【００５５】
図４（ａ）において、ノードＮ３からオフセット補償電流ＩＯＣを流出させない場合は、Ｖ４（ＩＲ）はＶ３（ＩＣ０）とＶ３（ＩＣ１）の中間にある。ＶＴ１＞ＶＴ２であるためにノードＮ３からオフセット補償電流ＩＯＣを流出させると、Ｖ３がＩＯＣ分だけ速く低下する。これにより、センスアンプ１７のオフセット電圧を補償することができる。
【００５６】
図４（ｂ）において、ノードＮ４からオフセット補償電流ＩＯＣを流出させない場合は、Ｖ４（ＩＲ）はＶ３（ＩＣ０）とＶ３（ＩＣ１）の中間にある。ＶＴ１＜ＶＴ２であるためにノードＮ４からオフセット補償電流ＩＯＣを流出させると、Ｖ４がＩＯＣ分だけ速く低下する。これにより、センスアンプ１７のオフセット電圧を補償することができる。
【００５７】
第１のケース（ＶＴ＞ＶＴ２）と第２のケース（ＶＴ１＜ＶＴ２）を判別するには、ノードＮ３，Ｎ４をノードＮ１，Ｎ２から切り離し、ノードＮ３，Ｎ４を同電圧ＶＤＤにプリチャージした後に、センスアンプ１７を活性化させればよい。これにより、ＶＴ１，ＶＴ２の大小関係を示すデジタル信号を得ることができる。そのデジタル信号をレジスタ５０に格納し、以降の読出動作においてそのデジタル信号に応じてノードＮ１またはＮ２にオフセット補償電流ＩＯＣを付加することにより、センスアンプ１７のオフセットを補償することができる。
【００５８】
なお、オフセット補正量は、トランジスタ４４，４５のサイズと製造プロセスから決まる最大ミスマッチ量の１／２程度に設定することが望ましい。なぜなら、｜ＶＴ１−ＶＴ２｜が非常に小さい場合は、オフセットセンス結果が安定しない可能性があり、大きな補正をかけると逆に補正前より実効的なオフセット量が増加する可能性があるためである。
【００５９】
以上の基本的な考え方に基づき、図３の回路構成における具体的なオフセット補正動作を説明する。本願におけるオフセットセンス動作は読出動作期間以外の期間に行なう。その一つの好ましい期間が電源投入後のチップ初期化期間である。
【００６０】
図５（ａ）〜（ｅ）は、電源投入後のチップ初期化シーケンスを示すタイムチャートである。初期状態（時刻ｔ０）では、内部電源電圧ＶＤＤは０Ｖであり、ＶＤＤ起動完了信号ＶＤＤＯＮ、内部クロック信号ＣＬＫ、外部リセット信号ＲＳＴＢ、内部リセット信号ＲＳＴＮはともに「Ｌ」レベルにされている。
【００６１】
ある時刻ｔ１において外部電源電圧ＶＣＣが与えられると、内部電源電圧ＶＤＤが上昇し始める。時刻ｔ２において、内部電源電圧ＶＤＤが所定レベルに到達すると、ＶＤＤ起動完了信号ＶＤＤＯＮが活性化レベルの「Ｈ」レベルに立ち上げられる。これにより、チップ１内部の一部の回路ブロックの初期化が開始され、各回路内の動作電源の立上げなどが行なわれる。ＰＬＬ回路１３も動作を開始し、時刻ｔ３にＰＬＬ回路１３の発振動作が安定し、クロック信号ＣＬＫの波形が安定する。
【００６２】
この時刻ｔ３よりも後の時刻ｔ４まで外部リセット信号ＲＳＴＢを活性化レベルの「Ｌ」レベルに維持してもらう。外部リセット信号ＲＳＴＢが非活性化レベルの「Ｈ」レベルにされてから数クロックサイクル後の時刻ｔ５において、内部リセット信号ＲＳＴＮが非活性化レベルの「Ｈ」レベルに立ち上げられる。その後、システムの初期化（動作パラメータの設定など）が行なわれ、時刻ｔ６で全体の初期化が完了し、通常の動作が可能となる。これ以降において「初期化」とは、特に断りがなければ図５の時刻ｔ５〜ｔ６を指すものとする。なお、当然、オフセットセンス動作は他の期間に実施することも可能であり、読出動作に先立って実施可能であれば電源投入直後に限定されるものではない。
【００６３】
図６（ａ）〜（ｍ）は、図３に示した回路のオフセットセンス動作および読出動作を示すタイムチャートである。図６（ａ）〜（ｍ）において、オフセットセンス動作期間（時刻ｔ５〜ｔ６）では、信号ＹＡ，ＹＢは「Ｈ」レベルに固定される。これにより、トランジスタ２１，２４，３１，３４が非導通になり、センスアンプ１７はビット線ＢＬ１，ＢＬ２から切り離される。
【００６４】
また、ワード線ＷＬ１，ＷＬ２は「Ｌ」レベルに固定され、メモリセルＭＣ１，ＭＣ２は非活性状態にされる。信号ＢＷが「Ｈ」レベルに固定され、ビット線ＢＬ１,ＢＬ２は「Ｌ」レベルにされる。信号ＲＥＦ１，ＲＥＦ２がともに「Ｈ」レベルに固定されてトランジスタ２２，３２が非導通にされる。信号ＰＣＮが「Ｈ」レベルに固定されてトランジスタ２７〜２９が非導通にされる。
【００６５】
また、オフセットセンス動作期間の初期状態では、信号ＰＣＳが「Ｌ」レベルにされてトランジスタ４０，４１が導通し、ノードＮ３，Ｎ４が電源電圧ＶＤＤにプリチャージされる。信号ＳＡＥは「Ｌ」レベルにされてトランジスタ４６が非導通になり、センスアンプ１７は非活性化されている。信号ＯＳは「Ｌ」レベルにされてトランジスタ５１，５２が非導通にされている。信号ＲＳＴＮが「Ｌ」レベルにされて、ＮＡＮＤゲート５６は「Ｈ」レベルの信号を出力している。
【００６６】
まず、信号ＲＳＴＮが「Ｈ」レベルに立ち上げられる。これにより、ＮＡＮＤゲート５６はインバータとして動作し、信号ＯＣＤ１，ＯＣＤ２がそれぞれ「Ｈ」レベルおよび「Ｌ」レベルに初期化される。次に、信号ＰＣＳ，ＳＡＥが「Ｈ」レベルに立ち上げられる。これにより、トランジスタ４０，４１が非導通になってノードＮ３，Ｎ４のプリチャージが停止されるとともに、トランジスタ４６が導通してセンスアンプ１７が活性化される。
【００６７】
すなわち、ノードＮ３の電圧Ｖ３とノードＮ４の電圧Ｖ４とが同じ状態でセンスアンプ１７が活性化され、トランジスタ４４のしきい値電圧ＶＴ１とトランジスタ４５のしきい値電圧ＶＴ２とのオフセットに従ってセンス結果が確定する。図６（ｊ）では、Ｖ３が「Ｌ」レベルにされ、Ｖ４が「Ｈ」レベルにされた状態が示されている。センス結果の確定に必要十分な時間が経過した後に、信号ＯＳが所定時間だけ「Ｈ」レベルに立ち上げられる。これにより、トランジスタ５１，５２が所定時間だけ導通し、ノードＮ３，Ｎ４の電圧Ｖ３，Ｖ４がノードＮ６，Ｎ７に伝達されてレジスタ５０に保持される。
【００６８】
図６（ｍ）では、信号ＯＣＤ１，ＯＣＤ２がそれぞれ「Ｈ」レベルおよび「Ｌ」レベルにされた状態が示されている。この場合は、トランジスタ２３が非導通になるとともにトランジスタ３３が導通し、ノードＮ２からオフセット補償電流ＩＯＣが流出する。次に、信号ＳＡＥ，ＰＣＳが順次「Ｌ」レベルに立ち下げられ、センスアンプ１７が非活性化されるとともにノードＮ３，Ｎ４が内部電源電圧ＶＤＤにプリチャージされてセンスオフセット動作が終了する。
【００６９】
センスオフセット動作が終了した後に、通常動作が行なわれる。図６(ａ）〜（ｍ）では、通常動作として読出動作が行なわれた場合が示されている。まず、信号ＢＷが「Ｌ」レベルに立ち下げられてトランジスタ２０，３０が非導通にされる。次に、アドレス信号によって選択されたワード線ＷＬが「Ｈ」レベルにされ、信号ＹＡ，ＹＢが「Ｌ」レベルにされ、信号ＲＥＦが「Ｌ」レベルにされる。ここでは、図３のワード線ＷＬ１が「Ｈ」レベルにされ、信号ＹＡ，ＹＢが「Ｌ」レベルにされ、信号ＲＥＦ２が「Ｌ」レベルにされたものとする。また、信号ＰＣＮが「Ｌ」レベルにされてトランジスタ２７〜２９が導通し、ビット線ＢＬ１，ＢＬ２が「Ｈ」レベルにプリチャージされる。
【００７０】
次に、信号ＰＣＮ，ＰＣＳがともに「Ｈ」レベルに立ち上げられ、トランジスタ２７〜２９，４０，４１が非導通にされてビット線ＢＬ１，ＢＬ２およびノードＮ３，Ｎ４のプリチャージが停止される。ノードＮ３からメモリセルＭＣ１を介してメモリセル電流ＩＣが流出するとともに、ノードＮ４から定電流源３５，３６を介して参照電流ＩＲおよびオフセット補償電流ＩＯＣが流出し、ノードＮ３，Ｎ４間に電位差が発生する。ここでは、ノードＮ３の電圧Ｖ３がノードＮ４の電圧Ｖ４よりも高くなり、ビット線ＢＬ１の電圧がビット線ＢＬ２の電圧よりも高くなったものとする。
【００７１】
ノードＮ３，Ｎ４のプリチャージを停止してから所定時間Ｔｒｄの経過後に、信号ＳＡＥ，ＹＡ，ＹＢ，ＲＥＦ２が順次「Ｈ」レベルにされる。これにより、トランジスタ２１，３１，２４，３２，３４が非導通にされてノードＮ３，Ｎ４がノードＮ１，Ｎ２から切り離されるとともに、トランジスタ４６が導通してセンスアンプ１７が活性化され、ノードＮ３，Ｎ４間の電圧が電源電圧ＶＤＤに増幅される。ここでは、ノードＮ３が「Ｈ」レベル（電源電圧ＶＤＤ)にされ、ノードＮ４が「Ｌ」レベル（接地電圧ＶＳＳ)にされた状態が示されている。ノードＮ３，Ｎ４間の電圧は、ドライバ（図示せず）によって図２のメインビット線ＭＢＬに伝達される。
【００７２】
次に、信号ＳＡＥが「Ｌ」レベルにされてセンスアンプ１７が非活性化され、信号ＰＣＳが「Ｌ」レベルにされてノードＮ３，Ｎ４が「Ｈ」レベルにプリチャージされ、信号ＢＷが「Ｈ」レベルにされてビット線ＢＬ１，ＢＬ２が「Ｌ」レベルにされる。これにより、読出動作が終了する。
【００７３】
この実施の形態１では、オフセットセンス動作期間においてセンスアンプ１７のオフセット電圧（ＶＴ１−ＶＴ２)の極性を読み出し、その極性を示すデータ信号をレジスタ５０に格納する。また、読出動作時においては、レジスタ５０に格納されたデータ信号に従って、ノードＮ１またはＮ２にオフセット補償電流ＩＯＣを付加する。これにより、センスアンプ１７のオフセット電圧に起因する遅延時間Ｔｒｄを短縮し、高速な読出動作を実現することができる。
【００７４】
また、オフセットセンス動作を読出動作に先立ってチップ初期化期間などに行なうので、オフセットキャンセルのための付加的な時間が読出動作期間に発生しない。したがって、オフセットキャンセルが遅延時間Ｔｒｄの短縮に純粋に寄与する。
【００７５】
また、オフセットキャンセルをデジタル的に行なうので、オフセットセンス動作後にもセンス結果をレジスタ５０に格納して継続的にセンス結果を使用することができる。
【００７６】
さらに、本願のために必要な付加的な回路とその制御はシンプルであり、階層ビット線構成で複数の階層センスアンプ帯をメモリアレイＭＡ内に配置する場合への適合性も高い。
【００７７】
さらに、従来のように補正用コンデンサを切り替えるためのスイッチが存在しないので、そのスイッチ動作に起因する動作電圧の制約もない。
【００７８】
[実施の形態２]
図７は、本願の実施の形態２によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図であって、図３と対比される図である。図７を参照して、このフラッシュメモリが実施の形態１のフラッシュメモリと異なる点は、定電流源２６，３６がコンデンサ６０，６２およびＮチャネルＭＯＳトランジスタ６１，６３で置換され、レジスタ５０がレジスタ６４で置換されている点である。
【００７９】
コンデンサ６０は、ＰチャネルＭＯＳトランジスタ２３のドレインと接地電圧ＶＳＳのラインとの間に接続される。ＮチャネルＭＯＳトランジスタ６１は、ＰチャネルＭＯＳトランジスタ２３のドレインと接地電圧ＶＳＳのラインとの間に接続され、そのゲートは信号ＯＣＤ１を受ける。
【００８０】
同様に、コンデンサ６２は、ＰチャネルＭＯＳトランジスタ３３のドレインと接地電圧ＶＳＳのラインとの間に接続される。ＮチャネルＭＯＳトランジスタ６３は、ＰチャネルＭＯＳトランジスタ３３のドレインと接地電圧ＶＳＳのラインとの間に接続され、そのゲートは信号ＯＣＤ２を受ける。
【００８１】
レジスタ６４がレジスタ５０と異なる点は、インバータ５３，５４がＮＡＮＤゲート６５，６６で置換されている点である。ＮＡＮＤゲート６５の一方入力ノードはノードＮ６に接続され、その他方入力ノードは信号ＣＳを受け、信号ＯＣＤ１を出力する。ＮＡＮＤゲート６６の一方入力ノードはノードＮ７に接続され、その他方入力ノードは信号ＣＳを受け、信号ＯＣＤ２を出力する。
【００８２】
信号ＣＳは、読出動作時において、ビット線ＢＬ１，ＢＬ２が電源電圧ＶＤＤにプリチャージされた後、トランジスタ２１，２４が導通した状態で所定時間だけ「Ｈ」レベルにされる。信号ＣＳが「Ｈ」レベルにされると、ＮＡＮＤゲート６５はノードＮ６に現れる信号に対してインバータとして動作し、ＮＡＮＤゲート６６はノードＮ７に現れる信号に対してインバータとして動作し、レジスタ６４はレジスタ５０と同じ構成になる。信号ＣＳが「Ｈ」レベルにされると、信号ＯＣＤ１，ＯＣＤ２のうちのいずれか一方の信号が「Ｈ」レベルにされ、他方の信号が「Ｌ」レベルにされる。信号ＣＳが「Ｌ」レベルにされている場合は、信号ＯＣＤ１，ＯＣＤ２はともに「Ｈ」レベルにされる。
【００８３】
信号ＯＣＤ１が「Ｈ」レベルである場合は、トランジスタ２３が非導通になるとともにトランジスタ６１が導通し、コンデンサ６０の端子間電圧が０Ｖにリセットされる。ビット線ＢＬ１が電源電圧ＶＤＤにプリチャージされた後、トランジスタ２１，２４が導通した状態で信号ＯＣＤ１が「Ｌ」レベルにされると、トランジスタ２３が導通するとともにトランジスタ６１が非導通になる。これにより、ビット線ＢＬ１の電荷がコンデンサ６０に分配されてノードＮ３の電圧Ｖ３が低下する。これは、ＶＴ１＞ＶＴ２の場合に、ノードＮ１に定電流源２６を接続してノードＮ１からオフセット補償電流ＩＯＣを流出させることと等価である。
【００８４】
信号ＯＣＤ２が「Ｈ」レベルである場合は、トランジスタ３３が非導通になるとともにトランジスタ６３が導通し、コンデンサ６２の端子間電圧が０Ｖにリセットされる。ビット線ＢＬ２が電源電圧ＶＤＤにプリチャージされた後、トランジスタ３１，３４が導通した状態で信号ＯＣＤ２が「Ｌ」レベルにされると、トランジスタ３３が導通するとともにトランジスタ６３が非導通になる。これにより、ビット線ＢＬ２の電荷がコンデンサ６２に分配されてノードＮ４の電圧Ｖ４が低下する。これは、ＶＴ１＜ＶＴ２の場合に、ノードＮ２に定電流源３３を接続してノードＮ２からオフセット補償電流ＩＯＣを流出させることと等価である。
【００８５】
なお、コンデンサ６０の容量値をＣｏｃとし、ビット線ＢＬ１の容量値をＣｂｌとすると、信号ＯＣＤ１が「Ｈ」レベルから「Ｌ」レベルに立ち下げられると、ビット線ＢＬ１の電圧はＣｏｃ×ＶＤＤ／（Ｃｂｌ＋Ｃｏｃ）だけ低下する。同様に、コンデンサ６２の容量値をＣｏｃとし、ビット線ＢＬ２の容量値をＣｂｌとすると、信号ＯＣＤ２が「Ｈ」レベルから「Ｌ」レベルに立ち下げられると、ビット線ＢＬ２の電圧はＣｏｃ×ＶＤＤ／（Ｃｂｌ＋Ｃｏｃ）だけ低下する。容量値Ｃｏｃは、補償すべきオフセット電圧に応じて設定される。
【００８６】
また、電荷再配分に要する時間は一般にＴｒｄに対して十分短く、Ｔｒｄを増加させてオフセットキャンセル効果を大きく削減することはない。また、コンデンサ６０，６２を付加したことによる一時的な寄生容量の増加も影響は少ない。
【００８７】
図８（ａ）〜（ｎ）は、図７に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートであって、図６（ａ）〜（ｍ）と対比される図である。このフラッシュメモリでは、時刻ｔ５〜ｔ６においてオフセットセンス動作が行なわれ、図８（ｍ）に示すように、センス結果がレジスタ６４のノードＮ６，Ｎ７に保持される。図８（ｎ）に示す信号ＣＳが「Ｌ」レベルにされている期間は、信号信号ＯＣＤ１，ＯＣＤ２はともに「Ｈ」レベルにされる。
【００８８】
読出動作時において、信号ＰＣＮ，ＰＣＳが「Ｈ」レベルに立ち上げられてビット線プリチャージ動作が完了した後、図８（ｎ）に示すように、信号ＣＳが所定時間だけ「Ｈ」レベルにされる。信号ＣＳが「Ｈ」レベルにされると、信号信号ＯＣＤ１，ＯＣＤ２のうちのいずれか一方の信号が「Ｌ」レベルにされる。図８（ａ）〜（ｎ）では、信号ＯＣＤ２が「Ｌ」レベルにされた状態が示されている。信号ＯＣＤ２が「Ｌ」レベルにされると、トランジスタ６３が非導通にされるとともにトランジスタ３３が導通し、ビット線ＢＬ２の電荷がコンデンサ６２に分配されてビット線ＢＬ２の電圧が低下する。これにより、センスアンプ１７のオフセット電圧が補償される。他の構成および動作は実施の形態１と同じであるので、その説明は繰り返さない。
【００８９】
この実施の形態２でも、実施の形態１と同じ効果が得られる。なお、定電流源２６，３６の代わりにコンデンサ６０，６２を設けたので、レイアウト上の自由度が上がる場合がある。具体的には、定電流源２６，３６では特性ばらつきを抑制する観点から特定サイズのトランジスタを使用しなければならない。これに対してコンデンサ６０，６２では、それらをトランジスタで構成する場合でも大きな寄生抵抗が付かなければサイズの制約はなく、また、メタル配線間容量を用いれば下地占有面積の増加を抑制することができる。
【００９０】
[実施の形態３]
図９は、本願の実施の形態３によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図であって、図３と対比される図である。図９を参照して、このフラッシュメモリが実施の形態１のフラッシュメモリと異なる点は、レジスタ５０がＡＮＤゲート７０およびＮＡＮＤゲート７１，７２で置換されている点である。
【００９１】
ＡＮＤゲート７０は、信号ＳＡＥと信号ＤＯＣＮの論理積信号を出力する。ＮＡＮＤゲート７１は、ＡＮＤゲート７０の出力信号とノードＮ３に現れる信号とを受け、信号ＯＣＤ１を出力する。ＮＡＮＤゲート７２は、ＡＮＤゲート７０の出力信号とノードＮ４に現れる信号とを受け、信号ＯＣＤ２を出力する。
【００９２】
信号ＳＡＥ，ＤＯＣＮがともに「Ｈ」レベルである場合は、ＮＡＮＤゲート７１がノードＮ３に現れる信号に対してインバータとして動作するとともに、ＮＡＮＤゲート７２がノードＮ４に現れる信号に対してインバータとして動作する。この場合は、ノードＮ３に現れる信号の反転信号が信号ＯＣＤ１としてトランジスタ２３のゲートに与えられるとともに、ノードＮ４に現れる信号の反転信号が信号ＯＣＤ２としてトランジスタ３３のゲートに与えられる。
【００９３】
つまり、このフラッシュメモリでは、オフセットセンス動作を事前に実施してオフセット情報をレジスタ５０に格納する代わりに、各読出動作の直前にオフセットセンス動作を実施してオフセット情報をセンスアンプ１７に保持しておく。換言すると、各読出動作の直後にオフセットセンス動作を実施し、次の読出動作までオフセット情報をセンスアンプ１７に保持しておく。
【００９４】
図１０（ａ）〜（ｋ）は、図９に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートである。図１０（ａ）〜（ｋ）において、アイドル期間（時刻ｔ０〜ｔ１）では、信号ＹＡ，ＹＢは「Ｈ」レベルに固定される。これにより、トランジスタ２１，２４，３１，３４が非導通になり、センスアンプ１７はビット線ＢＬ１，ＢＬ２から切り離される。
【００９５】
また、ワード線ＷＬ１，ＷＬ２は「Ｌ」レベルに固定され、メモリセルＭＣ１，ＭＣ２は非活性状態にされる。信号ＢＷが「Ｈ」レベルに固定され、ビット線ＢＬ１,ＢＬ２は「Ｌ」レベルにされる。信号ＲＥＦ１，ＲＥＦ２がともに「Ｈ」レベルに固定されてトランジスタ２２，３２が非導通にされる。信号ＰＣＮが「Ｈ」レベルに固定されてトランジスタ２７〜２９が非導通にされる。
【００９６】
また、アイドル期間の初期状態では、信号ＰＣＳが「Ｌ」レベルにされてトランジスタ４０，４１が導通し、ノードＮ３，Ｎ４が電源電圧ＶＤＤにプリチャージされる。信号ＳＡＥは「Ｌ」レベルにされてトランジスタ４６が非導通になり、センスアンプ１７は非活性化されている。信号ＤＯＣＮは「Ｈ」レベルに維持される。信号ＯＣＤ１，ＯＣＤ２はともに「Ｈ」レベルにされてトランジスタ２３，３３は非導通にされている。
【００９７】
次に、信号ＰＣＳ，ＳＡＥが「Ｈ」レベルに立ち上げられる。これにより、トランジスタ４０，４１が非導通になってノードＮ３，Ｎ４のプリチャージが停止されるとともに、トランジスタ４６が導通してセンスアンプ１７が活性化される。すなわち、ノードＮ３の電圧Ｖ３とノードＮ４の電圧Ｖ４とが同じ状態でセンスアンプ１７が活性化され、トランジスタ４４のしきい値電圧ＶＴ１とトランジスタ４５のしきい値電圧ＶＴ２とのオフセットに従ってセンス結果が確定する。図１０（ｋ）では、ノードＮ３が「Ｌ」レベルにされ、ノードＮ４が「Ｈ」レベルにされた状態が示されている。ノードＮ３，Ｎ４に現れる信号は、ＮＡＮＤゲート７１，７２で反転されて信号ＯＣＤ１，ＯＣＤ２となる。
【００９８】
ここでは、信号ＯＣＤ１，ＯＣＤ２がそれぞれ「Ｈ」レベルおよび「Ｌ」レベルにされたものとする。この場合は、トランジスタ２３が非導通になるとともにトランジスタ３３が導通し、ノードＮ２からオフセット補償電流ＩＯＣが流出する。アイドル期間の終了後も信号ＳＡＥ，ＰＣＳは「Ｈ」レベルに維持される。
【００９９】
アイドル期間の終了後に読出動作が開始される（時刻ｔ１）。まず、信号ＢＷが「Ｌ」レベルに立ち下げられてトランジスタ２０，３０が非導通にされる。次に、アドレス信号によって選択されたワード線ＷＬが「Ｈ」レベルにされ、信号ＹＡ，ＹＢが「Ｌ」レベルにされ、信号ＲＥＦが「Ｌ」レベルにされる。ここでは、図３のコントロールゲートＷＬ１が「Ｈ」レベルにされ、信号ＹＡ，ＹＢが「Ｌ」レベルにされ、信号ＲＥＦ２が「Ｌ」レベルにされたものとする。また、信号ＰＣＮが「Ｌ」レベルにされてトランジスタ２７〜２９が導通し、ビット線ＢＬ１，ＢＬ２が「Ｈ」レベルにプリチャージされる。
【０１００】
次に、信号ＰＣＮが「Ｈ」レベルに立ち上げられ、トランジスタ２７〜２９が非導通にされてビット線ＢＬ１，ＢＬ２のプリチャージが停止される。ビット線ＢＬ１からメモリセルＭＣ１を介してメモリセル電流ＩＣが流出するとともに、ビット線ＢＬ２から定電流源３５，３６を介して参照電流ＩＲおよびオフセット補償電流ＩＯＣが流出し、ビット線ＢＬ１，ＢＬ２間に電位差が発生する。ここでは、ビット線ＢＬ１の電圧がビット線ＢＬ２の電圧よりも高くなったものとする。
【０１０１】
次に、信号ＳＡＥが「Ｌ」レベルにされ、センスアンプ１７が非活性化されるとともに、信号ＯＣＤ１，ＯＣＤ２がともに「Ｈ」レベルにされてトランジスタ２３，３３が非導通にされる。また、信号ＰＣＳが「Ｌ」レベルにされてノードＮ３，Ｎ４が「Ｈ」レベルにプリチャージされる。次いで、信号ＰＣＳが「Ｈ」レベルに立ち上げられてノードＮ３，Ｎ４のプリチャージが停止される。また、信号ＤＯＣＮが「Ｌ」レベルにされてトランジスタ２３，３３が非導通にされる。次に、信号ＹＢが「Ｌ」レベルにされる。これにより、トランジスタ２４，３４が導通し、ビット線ＢＬ１，ＢＬ２上のオフセット補正を反映した読出電圧がそれぞれノードＮ３，Ｎ４に伝達される。
【０１０２】
ビット線ＢＬ１，ＢＬ２のプリチャージを終了してから所定時間Ｔｒｄの経過後に、信号ＳＡＥが「Ｈ」レベルにされる。これにより、トランジスタ４６が導通してセンスアンプ１７が活性化され、ノードＮ３，Ｎ４間の電圧が電源電圧ＶＤＤに増幅される。ここでは、ノードＮ３が「Ｈ」レベル（電源電圧ＶＤＤ)にされ、ノードＮ４が「Ｌ」レベル（接地電圧ＶＳＳ)にされた状態が示されている。ノードＮ３，Ｎ４間の電圧は、ドライバ（図示せず）によって図２のメインビット線ＭＢＬに伝達される。
【０１０３】
次に、信号ＹＡ，ＹＢ，ＲＥＦ１，ＲＥＦ２が「Ｈ」レベルにされ、トランジスタ２１〜２４，３１〜３４が非導通にされ、センスアンプ１７とノードＮ１，Ｎ２とが切り離される。次いで信号ＳＡＥが「Ｌ」レベルにされてセンスアンプ１７が非活性化され、信号ＰＣＳが「Ｌ」レベルにされてノードＮ３，Ｎ４が「Ｈ」レベルにプリチャージされ、信号ＢＷが「Ｈ」レベルにされてビット線ＢＬ１，ＢＬ２が「Ｌ」レベルにされる。これにより、読出動作が終了する。
【０１０４】
この実施の形態３では、実施の形態１と比べ、読出期間にオフセットキャンセル時間Ｔａｄが加わるため、オフセットキャンセルによるＴｒｄ短縮効果がその分相殺される。そのため、Ｔｒｄ／Ｔａｄ比が大きいケース、つまりＣｂｌ／ＩＣ比が大きいケース（ビット線ＢＬの容量値が比較的大きく、セル電流が十分取りにくい）において効果を発揮する。逆に、面積の観点では、センスアンプ１７毎にレジスタ５０を設ける必要がないので、回路面積を縮小化することができる。
【０１０５】
[実施の形態４]
図１１は、本願の実施の形態４によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図であって、図３と対比される図である。図１１を参照して、このフラッシュメモリが実施の形態１のフラッシュメモリと異なる点は、２つのメモリセルＭＣ１，ＭＣ１ＡまたはＭＣ２，ＭＣ２Ａで１ビットのデータ信号を記憶する相補セル構成を取っていることである。参照電流ＩＲを流すためのトランジスタ２２，３２および定電流源２５，３５は除去されている。
【０１０６】
すなわち、図１１において、２つのサブアレイＳＡと１つのセンスアンプ帯１６は、４個のブロックＢＫ０に分割されており、４個のブロックＢＫ０毎に１つのセンスアンプ１７とレジスタ５０が設けられている。各ブロックＢＫ０は、一方のサブアレイＳＡに属する４個のブロックＢＫ１と、他方のサブアレイＳＡに属する４個のブロックＢＫ２と、ＰチャネルＭＯＳトランジスタ２３，２４，２７〜２９，３０，３１，３３，３４および定電流源２５，３５とを含む。
【０１０７】
各ブロックＢＫ１は、１列分の複数のメモリセルＭＣ１と、その列に対応するビット線ＢＬ１と、もう１列分の複数のメモリセルＭＣ１Ａと、その列に対応するビット線ＢＬ１Ａとを含む。同じ行の２つのメモリセルＭＣ１，ＭＣ１Ａは、対を成している。メモリセルＭＣ１，ＭＣ１Ａには、１ビットのデータ信号が格納される。すなわち、メモリセルＭＣ１，ＭＣ１Ａのうちのいずれか一方のメモリセルがプログラムされ、他方のメモリセルは消去された状態である。これにより、データ信号を正確に記憶することが可能となっている。
【０１０８】
また、各ブロックＢＫ１は、各メモリセル行に対応するワード線ＷＬ１、メモリゲート線ＭＧ１、およびソース線ＳＬ１を含む。図１１では、代表的に１対のメモリセルＭＣ１，ＭＣ１Ａだけが示されている。また、ブロックＢＫ１は、ＮチャネルＭＯＳトランジスタ２０，２０ＡおよびＰチャネルＭＯＳトランジスタ２１，２１Ａを含む。
【０１０９】
トランジスタ２０は、ビット線ＢＬ１と接地電圧ＶＳＳのラインとの間に接続され、そのゲートは信号ＢＷ１を受ける。トランジスタ２０Ａは、ビット線ＢＬ１Ａと接地電圧ＶＳＳのラインとの間に接続され、そのゲートは信号ＢＷを受ける。信号ＢＷ１が「Ｈ」レベルである場合は、トランジスタ２０，２０Ａが導通し、ビット線ＢＬ１，ＢＬ１Ａは接地電圧ＶＳＳに固定される。信号ＢＷ１が「Ｌ」レベルである場合は、トランジスタ２０，２０Ａが非導通になる。
【０１１０】
トランジスタ２１は、ビット線ＢＬ１とノードＮ１の間に接続され、そのゲートは信号ＹＡ１を受ける。トランジスタ２１Ａは、ビット線ＢＬ１ＡとノードＮ２の間に接続され、そのゲートは信号ＹＡ１を受ける。信号ＹＡ１は、ブロックＢＫ１に属する４対のビット線ＢＬ１，ＢＬ１Ａのうちの１対のビット線ＢＬ１，ＢＬ１Ａを選択する信号である。４個の信号ＹＡ１のうちの１個の信号ＹＡ１が「Ｌ」レベルにされると、その信号ＹＡ１に対応するトランジスタ２１，２１Ａが導通し、ビット線ＢＬ１，ＢＬ１ＡがそれぞれノードＮ１，Ｎ２に電気的に接続される。信号ＹＡ１が「Ｈ」レベルにされると、その信号ＹＡ１に対応するトランジスタ２１，２１Ａが非導通になる。
【０１１１】
同様に、各ブロックＢＫ２は、１列分の複数のメモリセルＭＣ２と、その列に対応するビット線ＢＬ２と、もう１列分の複数のメモリセルＭＣ２Ａと、その列に対応するビット線ＢＬ２Ａとを含む。同じ行の２つのメモリセルＭＣ１，ＭＣ１Ａは、対を成している。メモリセルＭＣ２，ＭＣ２Ａには、１ビットのデータ信号が格納される。すなわち、メモリセルＭＣ２，ＭＣ２Ａのうちのいずれか一方のメモリセルがプログラムされ、他方のメモリセルは消去された状態である。これにより、データ信号を正確に記憶することが可能となっている。
【０１１２】
また、各ブロックＢＫ２は、各メモリセル行に対応するワード線ＷＬ２、メモリゲート線ＭＧ２、およびソース線ＳＬ２を含む。図１１では、代表的に１対のメモリセルＭＣ２，ＭＣ２Ａだけが示されている。また、ブロックＢＫ２は、ＮチャネルＭＯＳトランジスタ３０，３０ＡおよびＰチャネルＭＯＳトランジスタ３１，３１Ａを含む。
【０１１３】
トランジスタ３０は、ビット線ＢＬ１と接地電圧ＶＳＳのラインとの間に接続され、そのゲートは信号ＢＷ２を受ける。トランジスタ３０Ａは、ビット線ＢＬ２Ａと接地電圧ＶＳＳのラインとの間に接続され、そのゲートは信号ＢＷ２を受ける。信号ＢＷ２が「Ｈ」レベルである場合は、トランジスタ３０，３０Ａが導通し、ビット線ＢＬ２，ＢＬ２Ａは接地電圧ＶＳＳに固定される。信号ＢＷ２が「Ｌ」レベルである場合は、トランジスタ３０，３０Ａが非導通になる。
【０１１４】
トランジスタ３１は、ビット線ＢＬ２とノードＮ２の間に接続され、そのゲートは信号ＹＡ２を受ける。トランジスタ３１Ａは、ビット線ＢＬ２ＡとノードＮ１の間に接続され、そのゲートは信号ＹＡ２を受ける。信号ＹＡ２は、ブロックＢＫ２に属する４対のビット線ＢＬ２，ＢＬ２Ａのうちの１対のビット線ＢＬ２，ＢＬ２Ａを選択する信号である。４個の信号ＹＡのうちの１個の信号ＹＡ２が「Ｌ」レベルにされると、その信号ＹＡ２に対応するトランジスタ３１，３１Ａが導通し、ビット線ＢＬ２，ＢＬ２ＡがそれぞれノードＮ２，Ｎ１に電気的に接続される。信号ＹＡ２が「Ｈ」レベルにされると、その信号ＹＡに対応するトランジスタ３１，３１Ａが非導通になる。ブロックＢＫ１，ＢＫ２のうちのいずれか一方のブロックＢＫに属する１対のメモリセルＭＣが選択される。
【０１１５】
図１２（ａ）〜（ｌ）は、図１１に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートであって、図６（ａ）〜（ｍ）と対比される図である。図１２（ａ）〜（ｌ）では、１対のメモリセルＭＣ１，ＭＣ１Ａが選択された場合が示されている。この場合は、メモリセルＭＣ１に流れる電流とメモリセルＭＣ１Ａに流れる電流の大小がセンスアンプ１７によって比較され、比較結果に基づいてメモリセルＭＣ１，ＭＣ１Ａに記憶されたデータ信号が読み出される。参照電流ＩＲは不要である。他の構成および動作は実施の形態１と同じであるので、その説明は繰り返さない。
【０１１６】
この実施の形態４でも、実施の形態１と同じ効果が得られる。また、相補セル構成ではメモリセル同士の電流差として情報を格納するため、温度や電圧の変動に対して安定的に読出電位差を確保することができる。そのため、非常に高い信頼性が必要な場合に用いられる。したがって、高い信頼性と高速な読出動作の両立が可能である。
【０１１７】
[実施の形態５]
図１３は、本願の実施の形態５によるマイクロコントローラチップに含まれるフラッシュメモリの要部を示す回路図であって、図３と対比される図である。図１３を参照して、このフラッシュメモリが実施の形態１のフラッシュメモリと異なる点は、レジスタ５０がレジスタ８０で置換される点である。
【０１１８】
レジスタ８０がレジスタ５０と異なる点は、インバータ５３，５４が除去され、ＮチャネルＭＯＳトランジスタ８１，８２、インバータ８３、ＮＡＮＤゲート８４，８７，８８、およびＥＸ−ＮＯＲゲート８５，８６が追加されている点である。
【０１１９】
トランジスタ８１は、ノードＮ３とＮ８の間に接続され、そのゲートは信号ＯＳＡを受ける。トランジスタ８２は、ノードＮ４とＮ９の間に接続され、そのゲートは信号ＯＳＡを受ける。信号ＯＳＡが「Ｈ」レベルである場合は、トランジスタ８１，８２が導通し、ノードＮ３，Ｎ４の電圧がノードＮ８，Ｎ９に伝達される。信号ＯＳＡが「Ｌ」レベルである場合は、トランジスタ８１，８２が非導通になり、ノードＮ３，Ｎ４とノードＮ８，Ｎ９とが電気的に切り離される。
【０１２０】
インバータ８３は、ノードＮ９に現れる信号の反転信号をノードＮ８に出力する。ＮＡＮＤゲート８４の一方入力ノードはノードＮ８に接続され、その他方入力ノードは信号ＲＳＴＮを受け、その出力ノードはノードＮ９に接続される。信号ＲＳＴＮが「Ｈ」レベルである場合は、ＮＡＮＤゲート８４はインバータとして動作し、インバータ８３およびＮＡＮＤゲート８４はラッチ回路を構成する。このラッチ回路は、トランジスタ８１，８２が非導通にされる前のノードＮ８，Ｎ９の信号を保持する。信号ＲＳＴＮが「Ｌ」レベルである場合は、ノードＮ８，Ｎ９がそれぞれ「Ｌ」レベルおよび「Ｈ」レベルに固定される。
【０１２１】
ＥＸ−ＮＯＲゲート８５は、ノードＮ６に現れる信号の論理レベルとノードＮ８に現れる信号の論理レベルとが一致した場合は「Ｈ」レベルの信号を出力し、両者が一致しない場合は「Ｌ」レベルの信号を出力する。ＮＡＮＤゲート８７は、ＥＸ−ＮＯＲゲート８５の出力信号とノードＮ８に現れる信号とを受け、信号ＯＣＤ１を出力する。
【０１２２】
ＥＸ−ＯＲゲート８５の出力信号が「Ｈ」レベルである場合は、ＮＡＮＤゲート８７はインバータとして動作し、ノードＮ８に現れる信号の反転信号が信号ＯＣＤ１となる。ＥＸ−ＯＲゲート８５の出力信号が「Ｌ」レベルである場合は、ＮＡＮＤゲート８７の出力信号である信号ＯＣＤ１は「Ｈ」レベルに固定される。
【０１２３】
同様に、ＥＸ−ＮＯＲゲート８６は、ノードＮ７に現れる信号の論理レベルとノードＮ９に現れる信号の論理レベルとが一致した場合は「Ｈ」レベルの信号を出力し、両者が一致しない場合は「Ｌ」レベルの信号を出力する。ＮＡＮＤゲート８８は、ＥＸ−ＮＯＲゲート８６の出力信号とノードＮ９に現れる信号とを受け、信号ＯＣＤ２を出力する。
【０１２４】
ＥＸ−ＯＲゲート８６の出力信号が「Ｈ」レベルである場合は、ＮＡＮＤゲート８８はインバータとして動作し、ノードＮ９に現れる信号の反転信号が信号ＯＣＤ２となる。ＥＸ−ＯＲゲート８６の出力信号が「Ｌ」レベルである場合は、ＮＡＮＤゲート８８の出力信号である信号ＯＣＤ２は「Ｈ」レベルに固定される。
【０１２５】
信号ＯＳとＯＳＡは、別々のタイミングで所定時間ずつ「Ｈ」レベルにされ、ノードＮ３，Ｎ４の電圧は別々のタイミングでノードＮ６，Ｎ７とノードＮ８，Ｎ９にラッチされる。ノードＮ６，Ｎ７にラッチした信号とノードＮ８，Ｎ９にラッチした信号とが一致した場合は、ノードＮ８，Ｎ９にラッチした信号の反転信号が信号ＯＣＤ１，ＯＣＤ２となる。ノードＮ６，Ｎ７にラッチした信号とノードＮ８，Ｎ９にラッチした信号とが一致しない場合は、信号ＯＣＤ１，ＯＣＤ２はともに「Ｈ」レベルに固定される。
【０１２６】
複数のラッチ回路を設けた理由は、トランジスタ４４，４５のしきい値電圧ＶＴ１，ＶＴ２の差｜ＶＴ１−ＶＴ２｜が小さい場合にはオフセット補正を行なわないことにより、補正効果を上げるためである。すなわち、｜ＶＴ１−ＶＴ２｜が小さい場合、オフセットセンス動作の結果が安定しない場合があり、大きな補正をかけると逆に補正前よりオフセット量が逆方向に大きく悪化する危険性がある。そこで、オフセットキャンセル時のセンス時間を長短２種類用意し、１回目は短いセンス時間、２回目は長いセンス時間で動作させ、両者の結果が異なる場合は｜ＶＴ１−ＶＴ２｜が小さいと判断して補正しない。こうすることで、オフセット補償電流ＩＯＣを実施の形態１よりも大きく設定することができ、Ｔｒｄの短縮効果を向上させることできる。
【０１２７】
図１４（ａ）〜（ｎ）は、図１３に示したフラッシュメモリのオフセットセンス動作および読出動作を示すタイムチャートであって、図６（ａ）〜（ｍ）と対比される図である。図１４（ａ）〜（ｎ）では、２回のセンス結果が一致した場合が示されている。
【０１２８】
第１回目のセンス期間Ｔ１では、センスアンプ１７をノードＮ１，Ｎ２から切り離した状態で、信号ＰＣＳ，ＳＡＥを「Ｈ」レベルに立ち上げてセンスアンプ１７を活性化させる。図１４（ｊ）では、ノードＮ３，Ｎ４がそれぞれ「Ｌ」レベルおよび「Ｈ」レベルになった状態が示されている。センスアンプ１７を活性化させてから比較的短い時間Ｔｓ１の経過後に信号ＯＳを所定時間だけ「Ｈ」レベルに立ち上げる。これにより、所定時間だけトランジスタ５１，５２が導通し、ノードＮ３，Ｎ４の信号がノードＮ６，Ｎ７にラッチされる。信号ＰＣＳ，ＳＡＥを「Ｌ」レベルに立ち下げて第１回目のセンス期間Ｔ１を終了する。
【０１２９】
次に第２回目のセンス期間Ｔ２でも、センスアンプ１７をノードＮ１，Ｎ２から切り離した状態で、信号ＰＣＳ，ＳＡＥを「Ｈ」レベルに立ち上げてセンスアンプ１７を活性化させる。図１４（ｊ）では、ノードＮ３，Ｎ４がそれぞれ「Ｌ」レベルおよび「Ｈ」レベルになった状態が示されている。センスアンプ１７を活性化させてから比較的長い時間Ｔｓ２の経過後に信号ＯＳＡを所定時間だけ「Ｈ」レベルに立ち上げる。これにより、所定時間だけトランジスタ８１，８２が導通し、ノードＮ３，Ｎ４の信号がノードＮ８，Ｎ９にラッチされる。
【０１３０】
図１４（ａ）〜（ｎ）の例では、２回のセンス結果が一致したので、ＥＸ−ＮＯＲゲート８５，８６の出力信号がともに「Ｈ」レベルになり、ノードＮ８，Ｎ９に現れる信号の反転信号が信号ＯＣＤ１，ＯＣＤ２となる。図１４（ａ）〜（ｎ）では、信号ＯＣＤ１，ＯＣＤ２がそれぞれ「Ｈ」レベルおよび「Ｌ」レベルにされた状態が示されている。この場合は、図３のトランジスタ２３が非導通になるとともにトランジスタ３３が導通し、ノードＮ２からオフセット補償電流ＩＯＣが流出する。
【０１３１】
図１５（ａ）〜（ｎ）は、図１３に示した回路のオフセットセンス動作および読出動作を示すタイムチャートであって、図１４（ａ）〜（ｎ）と対比される図である。図１５（ａ）〜（ｎ）では、２回のセンス結果が一致しない場合が示されている。第１回目のセンス期間Ｔ１では、ノードＮ３，Ｎ４がそれぞれ「Ｌ」レベルおよび「Ｈ」レベルとなり、第２回目のセンス期間Ｔ２では、ノードＮ３，Ｎ４がそれぞれ「Ｈ」レベルおよび「Ｌ」レベルとなっている。
【０１３２】
図１５（ａ）〜（ｎ）の例では、２回のセンス結果が一致しないので、ＥＸ−ＮＯＲゲート８５，８６の出力信号がともに「Ｌ」レベルになり、信号ＯＣＤ１，ＯＣＤ２がともに「Ｈ」レベルに固定される。この場合は、図３のトランジスタ２３，３３がともに非導通になり、ノードＮ１，Ｎ２からオフセット補償電流ＩＯＣは流出しない。
【０１３３】
この実施の形態５では、実施の形態１と同じ効果が得られる他、｜ＶＴ１−ＶＴ２｜が小さい場合はオフセット補正を行なわないようにすることでオフセット補正効果を高めることができる。
【０１３４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１３５】
１  マイクロコントローラチップ、２  ＳＲＡＭ、３  ＣＰＵ、４  高速ＣＰＵバス、５，９  Ｉ／Ｆ回路、６  バスブリッジ、７，８  フラッシュメモリ、１０  書換制御回路、１１  周辺バス、１２  割込制御回路、１３  ＰＬＬ回路、１４  電源回路、１５  ポート部、ＭＡ  メモリアレイ、ＭＤ  ＭＧドライバ、ＷＤ  ＷＬドライバ、ＳＤ  ＳＬドライバ、ＹＣ  Ｙ系回路、ＰＳ  電源スイッチ、ＶＷＧ  内部電圧発生回路、ＬＧ  論理回路、Ｂ１〜Ｂ４  バンク、ＳＡ  サブアレイ、１６  センスアンプ帯、１７  センスアンプ、ＭＣ  メモリセル、ＷＬ  ワード線、ＭＧ  メモリゲート線、ＳＬ  ソース線、ＢＬ  ビット線、ＳＴ  選択トランジスタ、ＭＴ  メモリトランジスタ、ＢＫ０〜ＢＫ２  ブロック、２２〜２４，２７〜２９，３０〜３４，４０〜４３  ＰチャネルＭＯＳトランジスタ、２５，２６，３５，３６  定電流源、４４〜４６，５１，５２，６１，６３，８１，８２  ＮチャネルＭＯＳトランジスタ、５０，６４，８０  レジスタ、５３〜５５  インバータ、５６，６５，６６，７１，７２，８４，８７，８８  ＮＡＮＤゲート、６０，６２  コンデンサ、７０  ＡＮＤゲート、８５，８６  ＥＸ−ＮＯＲゲート。
【図１】
2014086111.tif 000003
【図２】
2014086111.tif 000004
【図３】
2014086111.tif 000005
【図４】
2014086111.tif 000006
【図５】
2014086111.tif 000007
【図６】
2014086111.tif 000008
【図７】
2014086111.tif 000009
【図８】
2014086111.tif 000010
【図９】
2014086111.tif 000011
【図１０】
2014086111.tif 000012
【図１１】
2014086111.tif 000013
【図１２】
2014086111.tif 000014
【図１３】
2014086111.tif 000015
【図１４】
2014086111.tif 000016
【図１５】
2014086111.tif 000017