(57)【特許請求の範囲】
【請求項１】
半導体装置であって、
データを記憶するメモリセルを含むメモリセルアレイと、
リファレンスセルを含むとともに前記リファレンスセルを用いてリファレンスレベルを決めるリファレンス回路と、
前記メモリセルのデータを前記リファレンスレベルと比較する比較回路とを有し、
前記リファレンス回路は、前記リファレンスセルに接続されるとともに前記リファレンスレベルをシフトさせる回路部をさらに含み、
前記回路部は、前記リファレンスセルのソースに接続されたダイオードと、前記ダイオードと並列に接続され、オンオフ制御されるスイッチトランジスタとを含み、
前記半導体装置は、スイッチトランジスタをオンオフ制御する制御回路と、前記メモリセルにデータを書き込む書き込み回路とをさらに有し、
前記制御回路は、前記スイッチトランジスタをオン制御して得られた第１のリファレンスレベルと前記スイッチトランジスタをオフ制御して得られた第２のリファレンスレベルとを用いてプログラムベリファイ動作を行ない、
前記書き込み回路は、前記メモリセルのレベルが前記第１のリファレンスレベルを超えるまでは、第１の書き込みレベルで前記メモリセルに対するプログラム動作を実行し、前記メモリセルのレベルが前記第１のリファレンスレベルと前記第２のリファレンスレベルとの間にある場合には、前記第１の書き込みレベルより低い第２の書き込みレベルで前記メモリセルに対するプログラム動作を実行し、前記メモリセルのレベルが前記第２のリファレンスレベルを超えた場合に、前記プログラム処理を終了する、半導体装置。
【請求項２】
前記メモリセルは、複数の異なるしきい値を有する多値メモリセルである、請求項１に記載の半導体装置。
【請求項３】
前記制御回路は、前記スイッチトランジスタをオンオフして得られた前記第１および第２のリファレンスレベルを用いて前記メモリセルのレベルをチェックする請求項１に記載の半導体装置。
【請求項４】
前記制御回路は、起動時に前記第１および第２のリファレンスレベルを用いて前記メモリセルのレベルをチェックする請求項３記載の半導体装置。
【請求項５】
前記メモリセルは、フローティングゲート型トランジスタである請求項１から請求項４のいずれか一項に記載の半導体装置。
【請求項６】
前記半導体装置は、半導体記憶装置である請求項１から５のいずれか一項記載の半導体装置。
【請求項７】
メモリセルにデータを書き込む方法において、
リファレンスセルに直列に接続されたダイオードに対して並列に接続されたトランジスタをオンオフ制御してリファレンスレベルを変化させるステップと、
前記リファレンスレベルを変化させる前と後では異なる書き込みレベルを用いて前記メモリセルにデータを書き込むステップと
を含み、
前記リファレンスレベルを変化させるステップは、前記スイッチトランジスタをオン制御することで第１のリファレンスレベルを得る一方で、前記スイッチトランジスタをオフ制御することで第２のリファレンスレベルを得るステップであり、
前記データを書き込むステップは、プログラムベリファイ時において、前記メモリセルのレベルが前記第１のリファレンスレベルを超えるまでは、第１の書き込みレベルで前記メモリセルに対するプログラム動作を実行するステップと、前記メモリセルのレベルが前記第１のリファレンスレベルと前記第２のリファレンスレベルとの間にある場合には、前記第１の書き込みレベルより低い第２の書き込みレベルで前記メモリセルに対するプログラム動作を実行するステップと、前記メモリセルのレベルが前記第２のリファレンスレベルを超えた場合に、前記プログラム処理を終了するステップとを含む、データ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置および半導体装置にデータを書き込む方法に関する。より特定すれば、本発明は複数のリファレンスレベルを有する半導体装置およびこの半導体装置にデータを書き込む方法に関する。
【背景技術】
【０００２】
半導体メモリは、その電源を切ると情報も消えてしまう揮発性のものと、電源を切っても情報が保持される不揮発性のものとに大別される。後者の不揮発性メモリの代表として、データ消去を一斉に行うことで書き換え時間を短縮化したフラッシュメモリが知られている。【０００３】
このフラッシュメモリでは、メモリセルのデータを検出するために、リード用リファレンスセル、プログラム用リファレンスセル、イレース用リファレンスセル、コンバージェンス用リファレンスセル等のリファレンスセルを有している。各リファレンスセルのレベルは、１デバイスにつき１種類ずつしか持っていないのが通常である。【０００４】
図１（ａ）、１（ｂ）は、メモリセルのデータ判定を説明する図である。図１（ａ）において、Ｖｇ−Ｉｄ特性カーブ４０は、リファレンスセルトランジスタの特性を示す。Ｖｇ−Ｉｄ特性カーブ４１はイレースされている場合、すなわちデータ１を記憶している場合のメモリセルトランジスタの特性を示す。Ｖｇ−Ｉｄ特性カーブ４２は、プログラムされている場合、すなわちデータ０を記憶している場合のメモリセルトランジスタの特性を示す。図１（ａ）に示すように、フラッシュメモリでは、例えばリードの場合、メモリセルとリファレンスセルのゲートに同一電圧を印加して、メモリセルに流れる電流値がリファレンスセルに流れる電流値より多ければ、“１”データ、少なければ“０”データと判断するようにしている。【０００５】
しかし、フラッシュメモリはフローティングゲートに電子を貯めたり、空にしたりしてメモリセルトランジスタのしきい値Ｖｔｈを制御し、それを任意のゲート電圧を印加して流れる電流の量で判断している。このフラッシュメモリではメモリへの書き換え回数が増えていく等により、電子を貯めたメモリセルのしきい値Ｖｔｈが経時変化により電子が抜けることにより下がってくることがある。一方、書き換え動作が通常実行されないリファレンスセルについては、しきい値であるリファレンスレベルは固定のままである。【０００６】
このため、図１（ｂ）に示すように、Ｖｇ−Ｉｄ特性カーブ４２が左にシフトしてＶｇ−Ｉｄ特性カーブ４３のようになり、本来、メモリセルに流れる電流Ｉｚｅｒｏがリファレンスセルを流れる電流Ｉｒｅａｄより少ないはずなのに多く流れてしまう。このため、本来、メモリセルのデータが“０”データであると判断されるべきものが“１”データと判断されてしまう。これにより、不良となることがある。メモリセルがパリティチェック等で不良と検知され機器の操作がストップする前に、不良を察知して対処するためには、リードのリファレンスレベルより高いリファレンスレベルＶｔｈで合否判定を行うことが必要となる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の場合、通常使用するリファレンスレベルとは別に、異なるリファレンスレベル回路を設けなければならず、面積が増加してしまうという問題がある。また、リファレンス回路を複数設けることによって、レベル調整のためのトリミング時間が増加してしまうという問題がある。【０００８】
そこで、本発明は前述した従来における課題を解決し、トリミング時間が短時間で済み、より少ない面積で複数のリファレンスレベルを持つことができる半導体装置および書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、データを記憶するメモリセルを含むメモリセルアレイと、リファレンスセルを用いてリファレンスレベルを決めるリファレンス回路と、前記メモリセルのデータを前記リファレンスレベルと比較する比較回路とを有し、前記リファレンス回路は、前記リファレンスセルに接続され、前記リファレンスレベルをシフトさせる回路部を含む半導体装置である。リファレンスセルをシフトさせることで、一つのリファレンスセルを用いて複数のリファレンスレベルを提供することができる。よって半導体装置の面積を小さくできる。また、リファレンス回路の数を減らすことができるため、レベル調整のためのトリミング時間を短くできる。【００１０】
前記回路部は、前記リファレンスセルのソースに接続されたダイオードを含む構成とすることができる。リファレンス回路が出力するリファレンスレベルは、リファレンスセルのしきい値にダイオードの電圧降下分を加えたものとなる。【００１１】
前記回路部は、前記ダイオードと並列に接続され、オンオフ制御されるスイッチトランジスタを含む構成とすることができる。スイッチトランジスタのオン／オフによりダイオードをリファレンスセルに選択的に接続することができ、リファレンスレベルをシフトさせることができる。【００１２】
前記半導体装置は更に、前記スイッチトランジスタをオンオフ制御する制御回路を含む構成とすることができる。【００１３】
前記制御回路は、前記トランジスタをオンオフ制御して得た複数のリファレンスレベルを用いてプログラムベリファイ動作を行う。【００１４】
前記半導体装置は更に、前記メモリセルにデータを書き込む書き込み回路を含み、該書き込み回路は前記リファレンスレベルをシフトさせる前と後では異なる書き込みレベルを用いて前記メモリセルにデータを書き込む。例えば、第一のリファレンスレベルを超えるまでは大きくプログラムを行い、第一のリファレンスレベルから第二のリファレンスレベルまでは少しずつプログラムを行うことで、短時間でプログラム電圧の分布をシャープにできる。【００１５】
前記制御回路は、前記トランジスタをオンオフして得た複数のリファレンスレベルを用いて前記メモリセルのレベルをチェックする。これにより早期に異常セルを発見できる。【００１６】
前記制御回路は、起動時に前記複数のリファレンスレベルを用いて前記メモリセルのレベルをチェックする。【００１７】
本発明はメモリセルにデータを書き込む方法において、リファレンスセルに直列に接続されたダイオードに並列に接続されたトランジスタをオンオフ制御してリファレンスレベルを変化させるステップと、前記リファレンスレベルを変化させる前と後では異なる書き込みレベル用いて前記メモリセルにデータを書き込むステップとを含む。これによりプログラム電圧の分布をシャープにできる。
【発明の効果】
【００１８】
本発明によれば、トリミング時間が短時間で済み、より少ない面積で複数のリファレンスレベルを持つことができる半導体装置および書き込み方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】（ａ）、（ｂ）はメモリセルのデータ判定を説明する図である。
【図２】実施例１による半導体装置の構成図である。
【図３】リファレンスセルとセンシングパスの構成を示す回路図である。
【図４】リファレンス回路の構成を示す回路図である。
【図５】バイパス用のトランジスタを取り除いたリファレンス回路の構成を示す回路図である。
【図６】リファレンスセルのゲート電圧Ｖｇとドレイン電流Ｉｄの関係Ｖｇ−Ｉｄ特性を示す図である。
【図７】（ａ）はトランジスタのノードＮ０１をハイレベルに設定してトリミングした場合のリファレンスレベルを示す図、（ｂ）はローレベルに設定してトリミングした場合のリファレンスレベルを示す図である。
【図８】（ａ）、（ｂ）はリファレンス回路のリファレンスレベルを説明する図である。
【図９】（ａ）、（ｂ）はプログラムベリファイ動作のフローチャートである。
【図１０】実施例３によるリファレンス回路のリファレンスレベルを説明する図である。
【図１１】実施例３による起動時の処理フローチャートである。
【図１２】実施例３によるメモリセルのデータ判定を説明する図である。
【図１３】実施例４によるリファレンスレベルを説明する図である。
【図１４】実施例４によるイベント時のフローチャートである。
【図１５】（ａ）は従来のリファレンス回路のレイアウトを示す図、（ｂ）は実施例５によるリファレンス回路のレイアウトを示す図である。
【図１６】実施例６におけるリファレンスレベルとマルチレベルセルの電位分布を示す図である。
【図１７】実施例７におけるリファレンスレベルとマルチレベルセルの電位分布を示す図である。
【図１８】実施例８におけるリファレンスレベルとマルチレベルセルの電位分布を示す図である。
【発明を実施するための最良の形態】
【００２０】
以下、添付の図面を参照して本発明の実施例を説明する。
【実施例１】
【００２１】
実施例１に係る半導体装置の構成について説明する。図２は、半導体装置の構成図である。図２に示すように、半導体装置１は、制御回路２、レギュレーション回路３、ロウデコーダ４、スイッチング回路５、ソース電源６、ソースデコーダ７、カラムデコーダ８、カラムセレクトゲート９、メモリセルアレイ１０、カスコード回路１１、バイアス回路（ＳＢＩＡＳ）１２、リファレンス回路１３、リファレンス用カスコード回路（ＳＡＲＥＦ）１４、センスアンプ（比較回路）１５、出力バッファ１６、書き込み回路１７を含む。この半導体装置１は単独でパッケージされたフラッシュメモリ等の半導体記憶装置であってもよいし、システムＬＳＩのように半導体装置の一部として組み込まれたものであってもよい。【００２２】
メモリセルアレイ１０は、ワード線ＷＬに接続されたコントロールゲートと、ビット線ＢＬに接続されたドレインと、ソース線ＳＬに接続されたソースと、フローティングゲートを含むデータを記憶する不揮発性メモリセルＭを有し、この不揮発性メモリセルＭが複数個マトリックス状に配置されている。制御回路２は、コマンドレジスタを内蔵し、外部より供給されるコマンドをデコードし、メモリセルＭに対して書き込み、消去および読み出し等の動作を行うために各々の内部回路を制御する。【００２３】
レギュレーション回路３は、電源電圧ＶCCを所定のレベルになるように調整することで、ビット線電圧を生成してスイッチング回路５に供給する。ロウデコーダ４は、アドレスバッファ（図示省略）から供給されたアドレスをデコードする。スイッチング回路５は、メモリセルのワード線ＷＬをデコード結果に応じて活性化させる。ソースデコーダ７は、ソース電源６から電源の供給を受け、ソース線ＳＬを選択する。カラムデコーダ８は、アドレスバッファ（図示省略）から供給されたアドレスをデコードする。【００２４】
カラムセレクトゲート９は、デコードアドレス信号に基づいて、メモリセルアレイ１０のビット線ＢＬを選択的に接続する。これによって、メモリセルアレイ１０に対するデータの読み出し／書き込み経路が確立される。カスコード回路１１は、メモリセルを流れる電流Ｉｄを電圧信号に変換して、センスアンプ１５に供給する。バイアス回路１２は、リファレンスセルにゲート電圧を印加する。【００２５】
リファレンス回路１３は、ゲート電圧が印加されるリファレンスセル（トランジスタ）と、リファレンスセルのリファレンスレベルをシフトさせる回路部とを含む。このリファレンスセルは、リード用のリファレンスセル、プログラム用のリファレンスセル、イレース用のリファレンスセルおよびコンバージェンス用のリファレンスセル等のように各種のリファレンスセルに用いられる。詳細は後述する。リファレンス用カスコード回路１４は、リファレンスセルを流れる電流Ｉｄを電圧信号に変換してセンスアンプ１５に供給する。【００２６】
センスアンプ１５は、カスコード回路１１を介してメモリセルのデータを、リファレンスセルのデータと比較することで、メモリセルのデータが０であるか１であるかの判定し、判定結果を読み出しデータとして、出力バッファ１６へ供給する。書き込み回路１７は、制御回路２の制御の下に、ロウデコーダ４、カラムデコーダ８を駆動して、メモリセルＭに対するデータ書き込み動作を実行する。【００２７】
プログラム動作およびイレース動作に伴うベリファイ動作は、ロウデコーダ４およびカラムデコーダ８によって指定されたメモリセルＭから供給されたデータの電流を、プログラムベリファイ用リファレンスセルおよびイレースベリファイ用リファレンスセルの示すリファレンス電流と比較することで行われる。【００２８】
次に、リファレンスセルとセンシングパスを詳細に説明する。図３は、リファレンスセルとセンシングパスの構成を示す回路図である。図３に示されるように、半導体記憶装置１は、カラムデコーダ８、カラムセレクトゲート９、メモリセルアレイ１０、カスコード回路１１、リファレンス回路１３、リファレンス用カスコード回路（ＳＡＲＥＦ）１４、センスアンプ１５を有する。メモリセルアレイ１０は、コントロールゲートにワード線ＷＬが接続され、ドレインにビット線ＢＬが接続され、ソースにソース線ＳＬが接続され、フローティングゲートを含む不揮発性メモリセルＭが複数個マトリックス状に配置されている。【００２９】
カラムデコーダ８は、アドレスバッファから供給されたアドレスのデコード結果に基づいて選択用のトランジスタを選択する。カラムセレクトゲート９は、選択用のトランジスタをオンオフしてメモリセルアレイ１０のビット線ＢＬを選択的に接続する。これによって、メモリセルアレイ１０に対するデータの読み出し／書き込み経路が確立される。カスコード回路１１は、メモリセルを流れる電流Ｉｄを電圧信号に変換するための複数のトランジスタ１１１〜１１４を含む。【００３０】
リファレンス回路１３は、リファレンスセルを構成する３つのトランジスタ１３１〜１３３を含み、各トランジスタ１３１〜１３３に対応してそれぞれＭＯＳダイオード１３４〜１３６およびトランジスタ１３７〜１３９が設けられている。図３では、リファレンス回路１３がトランジスタを３つ持つ例を示しているがリファレンスセル用のトランジスタの数はいくつであってもよい。リファレンス用カスコード回路１４は、トランジスタ１３１〜１３３を流れる電流Ｉｄを電圧信号に変換するための複数のトランジスタ１４１〜１４４を含む。【００３１】
センスアンプ１５は、トランジスタ１５１乃至１５４からなる差動増幅回路と、トランジスタ１５５からなる増幅回路を含む。差動増幅回路は、トランジスタ１５１のゲートに印加される電圧とトランジスタ１５２のゲートに印加される電圧との差を増幅して、増幅された電圧信号をノードＮから増幅回路のトランジスタ１５５のゲートに印加する。トランジスタ１５１のゲート側には、カスコード回路１１が接続され、トランジスタ１５２のゲート側には、リファレンスセル用のカスコード回路１４が接続される。センスアンプ１５は増幅した電圧信号を読み出しデータとして出力バッファ１６へ供給する。【００３２】
次に、図３で説明したリファレンス回路１３を詳細に説明する。図４はリファレンス回路の構成を示す回路図である。図４では、図３で示したリファレンス回路１３のうち一つのリファレンスセルを拡大して示している。図４に示されるように、リファレンス回路１３は、リファレンスセルトランジスタ１３１、ＭＯＳダイオード１３４、トランジスタ１３７、抵抗３０を含む。【００３３】
トランジスタ１３１は、フローティングゲート型トランジスタである。ＭＯＳダイオード１３４は、例えばＮ型トランジスタにより構成され、トランジスタ１３１のソース側に直列に接続されている。トランジスタ１３７は、バイパス用のトランジスタであり、ＭＯＳダイオード１３４に対して並列接続されている。このトランジスタ１３７はＮチャネルトランジスタにより構成されている。また、トランジスタ１３７のゲート電圧は制御回路２により制御されている。トランジスタ１３７は、リファレンス回路１３が生成するリファレンスレベルをシフトさせる回路を構成する。トランジスタ１３７をオフオフ制御することで、ＭＯＳダイオード１３４をバイパスすることができる。このため、トランジスタ１３１のしきい値Ｖｔｈｒより、Ｖｔｈｎ分高いしきい値、或はＶｔｈｎ分だけ低いリファレンスレベルを作ることができる。【００３４】
次に、作用について説明する。図５は図４で示した回路のうちバイパス用のトランジスタ１３７を取り除いたリファレンス回路の構成を示す回路図である。図５に示すように、リファレンス回路１３は、トランジスタ１３１のソース側にＮ型トランジスタのＭＯＳダイオード１３４が挿入されている。３０は抵抗を示す。トランジスタ１３１のゲートには、ゲート電圧Ｖｇが印加される。また、この時に、リファレンスセル１３１に流れる電流をＩｄとする。【００３５】
図６は、トランジスタ１３１のゲート電圧Ｖｇとドレイン電流Ｉｄの関係Ｖｇ−Ｉｄ特性を示す図である。図６において、Ｖｇ−Ｉｄ特性カーブ５０は、トランジスタ１３１自体のＶｇ−Ｉｄ特性を示す。Ｖｇ−Ｉｄ特性カーブ５１は、Ｎ型トランジスタのＭＯＳダイオード１３４のＶｇ−Ｉｄ特性を示す。Ｖｇ−Ｉｄ特性カーブ５２は、トランジスタ１３１のソース側にＮ型トランジスタのＭＯＳダイオード１３４を挿入することによってしきい値ＶｔｈよりもＶｔｈｎだけ高いほうにレベルシフトした際のＶｇ−Ｉｄ特性カーブを示す。このように、トランジスタ１３１のソース側にＮ型トランジスタのＭＯＳダイオード１３４を挿入することによりしきい値ＶｔｈよりもＶｔｈｎだけ高いリファレンスレベルを発生させることができる。【００３６】
図７（ａ）はトランジスタ１３７のノードＮ０１をハイレベルからローレベルに変化させた場合のドレイン電流Ｉｄを示し、図７（ｂ）はトランジスタ１３７のノードＮ０１をローレベルからハイレベルに変化させた場合のドレイン電流Ｉｄの変化を示す。図７（ａ）、図７（ｂ）において［１］と［２］はそれぞれ異なるゲート電圧Ｖｇを設定した場合を示す。図７（ａ）において、いずれのゲート電圧Ｖｇであっても、トランジスタ１３７をオンからオフさせることでリファレンス回路１３が生成するリファレンスレベルはＶｔｈｒからＶｔｈｒ’（＝Ｖｔｈｒ＋Ｖｔｈｎ）にアップする。図７（ｂ）において、いずれのゲート電圧Ｖｇであっても、トランジスタ１３７をオフからオンさせることでリファレンス回路１３が生成するリファレンスレベルはＶｔｈｒ’（＝Ｖｔｈｒ＋Ｖｔｈｎ）からＶｔｈｒからにダウンする。ゲート電圧Ｖｇを調整することで異なるリファレンスレベルを生成することができると同時に、トランジスタ１３７をオンオフすることでリファレンスレベルを更に変化させることができる。【００３７】
本実施例によれば、リファレンス回路１３にＭＯＳダイオード１３４とそれをバイパスするトランジスタ１３７を設け、ＭＯＳダイオード１３４のＶｔｈ分だけリファレンスレベルをシフトさせ、バイパス用のトランジスタ１３７のオン／オフを制御することでリファレンスレベルのシフトをコントロールできる。つまり、リファレンスレベルより、Ｖｔｈ分高いリファレンスレベル、或はＶｔｈ分低いリファレンスレベルを作ることができる。よって、一つのリファレンスセル用トランジスタを用いているにもかかわらず複数のしきい値を持つことができるので、半導体装置の面積を小さくすることができる。また、リファレンス回路の数を減らすことができるため、レベル調整のためのトリミング時間を短縮できる。
【実施例２】
【００３８】
次に、実施例２について説明する。実施例２では、実施例１で説明したリファレンス回路１３をプログラムベリファイ動作で用いるリファレンス回路に適用した例について説明する。図８（ａ）は従来のリファレンスセルのしきい値を説明する図、（ｂ）は本発明によるリファレンス回路のしきい値を説明する図である。同図において、横軸はしきい値Ｖｔｈ、縦軸はセル数を示す。“１”は消去状態のメモリセルの電位分布、“０”は書き込み状態のメモリセルの電位分布を示す。【００３９】
図８（ａ）において、ＡＶはコンバージェンス(自己収束)で用いるリファレンスセルのしきい値、ＥＶはイレースベリファイ動作で用いるリファレンスセルのしきい値、ＲＶはリード時に用いるリファレンスセルのしきい値、ＰＶはプログラムベリファイ動作で用いるリファレンスセルのしきい値をそれぞれ示す。同図（ｂ）において、ＰＶ１はプログラムベリファイ動作で用いるリファレンスセルのしきい値（第１のしきい値）、ＰＶはプログラムベリファイ動作で用いるリファレンスセルのしきい値（第２のしきい値）をそれぞれ示す。【００４０】
実施例１で説明したように、トランジスタ１３１のソース側にＭＯＳトランジスタ１３４を挿入し、これと並列にトランジスタ１３７を接続し、このトランジスタ１３７をオンオフすることによりリファレンスレベルをシフトさせることで、プログラムベリファイ動作で用いる第１のしきい値ＰＶ１と第２のしきい値ＰＶを持つことができる。【００４１】
次にプログラムベリファイ動作について説明する。図９（ａ）は従来のプログラムベリファイ動作のフローチャートを示す図、図９（ｂ）は本発明によるプログラムベリファイ動作のフローチャートを示す図である。図９（ａ）は図８（ａ）に、図９（ｂ）は図８（ｂ）にそれぞれ対応する。【００４２】
図９（ａ）において、ステップＳ１１で、センスアンプ１５で、ロウデコーダおよびカラムデコーダによって指定されたメモリセルのレベルとしきい値ＰＶを比較する。ステップＳ１２で、制御回路２はメモリセルのレベルがしきい値ＰＶを超えていると判断した場合、プログラムベリファイ動作を終了する。一方、ステップＳ１２で、制御回路２はメモリセルのレベルがしきい値ＰＶを超えていないと判断した場合、ステップＳ１３で、書き込み回路１７でロウデコーダ４、カラムデコーダ８を駆動して、メモリセルに対するプログラム動作を実行する。【００４３】
このように、従来は１種類の基準電圧を用いてプログラムベリファイ動作を行っていた。従って、メモリセルのレベルがしきい値ＰＶを加えた時に、はじめてメモリセルのレベルがプログラムのレベルに達したことが分かる。このため、メモリセルのプログラム電圧の分布をシャープにするには少しずつプログラムを行う必要があるため時間がかかっていた。【００４４】
次に、本発明によるプログラムベリファイ動作について説明する。制御回路２は、トランジスタをオンオフ制御して得た複数のしきい値を用いてプログラムベリファイ動作を行う。同図９（ｂ）において、ステップＳ２１で、センスアンプ１５でロウデコーダおよびカラムデコーダによって指定されたメモリセルのレベルと第１のしきい値ＰＶ１を比較する。【００４５】
ステップＳ２２で、制御回路２はメモリセルのレベルが第１のしきい値ＰＶ１を超えていないと判断した場合、ステップＳ２３で、書き込み回路１７はロウデコーダ４、カラムデコーダ８を駆動して、メモリセルに対するプログラム動作を実行する。ステップＳ２２で、制御回路２はメモリセルのレベルが第１のしきい値ＰＶ１を超えていると判断した場合、ステップＳ２４で、指定されたメモリセルのレベルと第２のしきい値ＰＶを比較する。【００４６】
ステップＳ２６で、制御回路２はメモリセルのレベルが第２のしきい値ＰＶを超えていないと判断した場合、書き込み回路１７で指定されたメモリセルのレベルが第２のしきい値ＰＶを超えるまでは、図８（ｂ）に示すように、細かくプログラム動作を実行する。このように、書き込み回路１７しきい値をシフトさせる前後で異なる書き込みレベルでメモリセルにデータを書き込む。ステップＳ２５で、制御回路２は指定されたメモリセルのレベルが第２のしきい値ＰＶを超えた場合、プログラム処理を終了する。【００４７】
実施例２によれば、プログラムベリファイ動作で、２種類のしきい値を用いることにより、例えば第１のしきい値ＰＶ１を超えるまでは所定の電位でプログラムを行い、この第１のしきい値ＰＶ１を超えた時に、第２のしきい値ＰＶに変更し、少しずつプログラムを行うようにして収束を行えば、短時間でメモリセルのプログラム電圧の分布をシャープにできる。
【実施例３】
【００４８】
次に実施例３について説明する。実施例３では、実施例１で説明したリファレンス回路１３をリード用のリファレンス回路に適用した例である。図１０は実施例３によるリファレンス回路のしきい値を説明する図である。図１０において、横軸はしきい値Ｖｔｈ、縦軸はセル数を示す。“１”は消去状態のメモリセルの電位分布、“０”は書き込み状態のメモリセルの電位分布を示す。【００４９】
図１０に示す例では、リファレンス回路１３は、２種類のリード用のリファレンスセルのしきい値ＲＶ１、ＲＶを持っている。ＲＶはリード時に用いるトランジスタの第１のしきい値、ＲＶ１はリード時に用いるトランジスタの第２のしきい値をそれぞれ示す。ＡＶ、ＥＶ、ＲＶは実施例２と同一であるため、ここでは説明を省略する。【００５０】
実施例１で説明したように、トランジスタ１３７のソース側にＭＯＳトランジスタ１３４を挿入し、これと並列にトランジスタ１３７を接続し、このトランジスタ１３７をオンオフすることによりリファレンスレベルをシフトさせることで、一つのトランジスタでリード時に用いる第１のしきい値ＲＶと第２のしきい値ＲＶ１を持つことができる。【００５１】
図１１は、実施例３による起動時の処理フローチャートである。この図１１は、図１０に対応するものである。ステップＳ３１で、全ビットのチェックが終了したかどうかを判断する。ステップＳ３２で、全ビットが終了していない場合、ベリファイ動作で指定されたメモリセルのレベルと第１のしきい値ＲＶを比較する。ステップＳ３３で、メモリセルのレベルが“０”データかどうかを見て、“０”データの場合場合、ステップＳ３１に戻る。【００５２】
ステップＳ３３で、メモリセルのレベル“０”データでない場合、“０”データがチャージロスを起こして、“１”と読まれている可能性がある。このような場合、ステップＳ３４で、しきい値ＲＶを一段下げて、第２のしきい値ＲＶ１によりメモリレベルが“０”データかどうかを比較する。ステップＳ３５で、メモリセルのデータが“０”データでない場合、ステップＳ３１に戻る。ステップＳ３５で、メモリセルのデータが“０”データの場合、ステップＳ３６で、異常セルに対して追加の処理を実行し、ステップS３１に戻る。この追加の処理には、例えば追加でプログラム動作を実行したり、この時のメモリセルのデータの状態を記憶しておいて、後でプログラム動作を実行したりする等が含まれる。【００５３】
従来、メモリセルのフローティングゲートに貯めた電子が抜けることでチャージロスが発生し、システムダウンにつながってしまうという問題があった。実施例３のように、制御回路２は、起動時にトランジスタ１３７をオンオフして得た複数のしきい値を用いてメモリセルＭのレベルをチェックすることで、異常セルを早期に発見することができ、追加プログラムを行ったり、冗長を行う等の処置を実行したりすることでシステムダウン等のデバイスの誤動作を防止できる。【００５４】
ここで、冗長を行う場合、チップイレースが異常セルを含むセクターのセクターイレースコマンド発行時に行うようにしてもよい。イレース後は冗長ラインも含めてそれらのセクターのセルは全てブランクとなっているため、元のデータを冗長ラインに書き込む時間のロスをなくすことができる。【００５５】
図１２は従来例で説明した図１（ａ）、１（ｂ）との比較において、本発明によるメモリセルのデータ判定を説明する図である。図１２において、Ｖｇ−Ｉｄ特性カーブ６０はイレースされている場合、すなわちデータ１を記憶しているメモリセルトランジスタの特性を示す。点線で示すＶｇ−Ｉｄ特性カーブ６１は正常にプログラムされている場合、すなわちデータ１を記憶している場合のメモリセルトランジスタの特性を示す。【００５６】
Ｖｇ−Ｉｄ特性カーブ６２はデータ１を記憶している場合のメモリトランジスタの特性を示す。この場合、経時変化によって正常時よりしきい値Ｖｔｈが下がってしまっている。点線で示すＶｇ−Ｉｄ特性カーブ６３は、リファレンスセルを構成するトランジスタの特性を示す。従来、Ｖｇ−Ｉｄ特性カーブ６３を用いた場合、Ｉｚｅｒｏ＞Ｉｒｅａｄ’となるため、本来メモリセルのデータが“０”データであると判断されるべきものが“１”データと判断されてしまっていた。【００５７】
Ｖｇ−Ｉｄ特性カーブ６４は、トランジスタ１３７をオンオフしてＭＯＳダイオード１３４をバイパスした際のトランジスタ１３１の特性を示す。このＶｇ−特性カーブ６４を用いることにより、Ｉｒｅａｄ＞Ｉｚｅｒｏとなるため、経時劣化により電子が抜けてメモリセルのしきい値が下がってきてしまった場合でも、“０”データが“１”データにミスリードされる前にＩｒｅａｄを超えたことを検出し、“０”データが壊れかかっていることがわかる。これにより、メモリセルのデータを“１”であると正確に判断できる。
【実施例４】
【００５８】
実施例４について説明する。実施例３では、起動時における処理に本発明を適用した例について説明したが、実施例４では起動時以外の他のイベント（ｅｖｅｎｔ）において本発明を適用する例について説明する。通常、チップイレースやセクターイレースコマンド発行時にベリファイ後、プリプログラム等を行っている。このベリファイを利用してメモリセルのチェックを行うことも出来る。また、上記以外にも、デバイスの空き時間に一定間隔でチェックする、スリープモード（Ｓｌｅｅｐ  Ｍｏｄｅ）に入る直前にメモリセルのチェックを行うようにしてもよい。実施例４では、これらをイベントと称して以下説明する。【００５９】
図１３は、実施例１で説明したリファレンス回路１３をリード用リファレンス回路に適用した場合のしきい値を説明する図である。図１３において、横軸はしきい値Ｖｔｈ、縦軸はセル数、“１”は消去状態のメモリセルの電位分布、“０”は書き込み状態のメモリセルの電位分布をそれぞれ示す。ＲＶはリード時に用いるトランジスタの第１のしきい値、ＲＶ１はリード時に用いるトランジスタの第２のしきい値をそれぞれ示す。ＡＶ、ＥＶ、ＲＶは上記実施例と同一であるため、ここでは説明を省略する。【００６０】
実施例１で説明したように、トランジスタ１３７のソース側にＭＯＳトランジスタ１３４を挿入し、これと並列にトランジスタ１３７を接続し、このトランジスタ１３７をオンオフすることによりリファレンスレベルをシフトさせることで、一つのトランジスタを用いているにもかかわらず、リード時に用いる第１のしきい値ＲＶと第２のしきい値ＲＶ１を持つことができる。【００６１】
図１４はイベント時のフローチャートである。ステップＳ４１で、全ビットのチェックが終了したかどうかを判断する。ステップＳ４１で、全ビットのチェックが終了してない場合、ベリファイ動作で指定されたメモリセルのレベルと第１のしきい値ＲＶと比較する。ステップＳ４３で、メモリセルのデータが“０”データかどうかを見て、“０”データの場合、ステップＳ４１に戻る。【００６２】
ステップＳ４３で、メモリセルのレベル“０”データでない場合、“０”データがチャージロスを起こして、“１”と読まれている可能性がある。このような場合、ステップＳ４４で、しきい値ＲＶを一段下げて、第２のしきい値ＲＶ１によりメモリレベルが“０”データかどうかを比較する。ステップＳ４５で、メモリセルのデータが“０”データでない場合、ステップＳ４１に戻る。ステップＳ４５で、メモリセルのデータが“０”データの場合、ステップＳ４６で、異常セルに対して追加の処理を実行し、ステップＳ４１に戻る。【００６３】
実施例４によれば、チップイレースやセクターイレースコマンド発行時にベリファイ後、プリプログラム等を行っている。このベリファイを利用してチェックを行うことで、異常セルを早期に発見してシステムダウン等のデバイスの誤動作を防止できる。また、デバイスの空き時間に一定間隔でチェックする、スリープモード（Ｓｌｅｅｐ  Ｍｏｄｅ）に入る直前にチェックすることで、異常セルを早期に発見してシステムダウン等のデバイスの誤動作を防止できる。
【実施例５】
【００６４】
次に実施例５について説明する。図１５（ａ）は従来の半導体基板上のレイアウト図、同図１５（ｂ）は本発明による半導体基板上のレイアウト図をそれぞれ示している。図１５（ａ）の従来例では、半導体基板上に、リファレンス用のトランジスタが２つ形成されている例を示している。Ｇはリファレンス用トランジスタのゲート、Ｄｖはベリファイ用のドレイン、Ｄｐはプログラム用のドレインをそれぞれ示している。【００６５】
図１５（ｂ）の本発明では、半導体基板上に、一つのトランジスタ、このリファレンスセルトランジスタのソース側に挿入されたＭＯＳダイオード１３４、このＭＯＳダイオード１３４と並列に接続されこのＭＯＳダイオードをバイパスするためのトランジスタが形成されている。Ｇはリファレンス用トランジスタのゲートを、Ｄｖはベリファイ用のドレイン、Ｄｐはプログラム用のドレインをそれぞれ示している。【００６６】
図１５（ａ）に示されるように、従来ではリファレンスレベルを二つ持つにはしきい値の異なる二つのトランジスタを必要としていた。このため、半導体基上の面積が増加してしまうという問題があった。そこで、本発明のように構成することにより、一つのトランジスタでしきい値をシフトできるようにしたので、より少ない面積で複数のリファレンスレベルを得ることができる。
【実施例６】
【００６７】
次に実施例６について説明する。実施例６では、複数の異なるしきい値を持つマルチレベルメモリセルのリファレンス回路に実施例１で説明したリファレンス回路を適用した例について説明する。図１６は、実施例６におけるリファレンスレベルとマルチレベルセルの電位分布を示す図である。図１６において、横軸はしきい値、縦軸はセル数を示す。【００６８】
各メモリセルのしきい値は、プログラムされたデータに応じて、レベル１、レベル２、レベル３およびレベル４のいずれかに分布する。レベル１、レベル２、レベル３、レベル４は、２ビットのデータ“１１”、“１０”、“０１”、“００”にそれぞれ対応する。ＲＶ１はメモリセルのレベルがレベル１またはレベル２なのかを検出するためのリード用リファレンスセルのしきい値、ＰＶ１は、プログラムベリファイ動作で、当該メモリセルが、レベル２に正しくプログラムされたか否かを検出するプログラム用リファレンスセルのしきい値である。【００６９】
ＲＶ２はメモリセルのレベルがレベル２またはレベル３なのかを検出するためのリード用リファレンスセルのしきい値、ＰＶ２はプログラムベリファイ動作で、当該メモリセルが、レベル３に正しくプログラムされたか否かを検出するプログラム用リファレンスセルのしきい値である。ＲＶ３はメモリセルのレベルがレベル３またはレベル４なのかを検出するためのリード用リファレンスセルのしきい値、ＰＶ３はプログラムベリファイで、当該メモリセルが、レベル４に正しくプログラムされたか否かを検出するプログラム用リファレンスセルのしきい値を示す。多値メモリセルにおいては、リード用リファレンスとプログラム用リファレンスが、２ビットの場合、更に、１ビット分のリファレンスが必要となる。このため、従来方式であれば、計６系統のリファレンスセル回路を必要としていた。【００７０】
実施例１で説明したように、リファレンス回路１３において、トランジスタ１３１〜１３３のソース側にＭＯＳトランジスタ１３４〜１３６を挿入し、これと並列にバイパス用のトランジスタ１３７〜１３９を接続し、このトランジスタ１３７をオンオフすることによりリファレンスレベルをシフトさせることで、３つのトランジスタで６つのしきい値を持つことができる。このため、本実施例では、計３系統のリファレンス回路で済む。
【実施例７】
【００７１】
次に実施例７について説明する。実施例７では、マルチレベルセルのプログラム用のリファレンス回路に実施例１で説明したリファレンス回路を適用したものである。図１７は、実施例７におけるリファレンスレベルとマルチレベルセルの電位分布を示す図である。図１７において、横軸はしきい値、縦軸はビット数を示す。ＰＶ１１はプログラムベリファイ動作において、メモリセルがレベル２に正しくプログラムされたか否かを検出するためのプログラム用リファレンスセルのしきい値（第１のしきい値）、ＰＶ１２はプログラム用リファレンスセルのしきい値（第２のしきい値）を示す。【００７２】
ＰＶ２１はプログラムベリファイ動作において、メモリセルがレベル３に正しくプログラムされたか否かを検出するプログラム用リファレンスセルのしきい値（第１のしきい値）、ＰＶ２２はプログラム用リファレンスセルのしきい値（第２のしきい値）を示す。ＰＶ３１はプログラムベリファイ動作で、メモリセルがレベル４に正しくプログラムされたか否かを検出するプログラム用リファレンスセルのしきい値（第１のしきい値）、ＰＶ３２はプログラム用リファレンスセルのしきい値（第２のしきい値）を示す。【００７３】
実施例１で説明したように、リファレンス回路１３は、トランジスタ１３１〜１３３のソース側にＭＯＳトランジスタ１３４〜１３６を挿入し、これと並列にバイパス用のトランジスタ１３７〜１３９を接続する。このトランジスタ１３７をオンオフすることによりリファレンスレベルをシフトさせることで、３つのトランジスタで６つのプログラムベリファイ用のしきい値を持つことができる。【００７４】
２種類のプログラムベリファイ用のしきい値を持つことにより、プログラム時に、第１のしきい値ＰＶ１１〜３１を超えるまでは通常通りプログラムを行い、この第１のしきい値ＰＶ１１〜３１を超えた後は、第２のしきい値ＰＶ１〜３に変更し、少しずつプログラムを行うようにして収束を行えば、短時間でより容易にＶＴ分布をシャープにする事ができる。マルチメモリセルの場合、メモリセルのデータが２ビットであるため、更に１ビット分のリファレンスが必要となる。このため、従来方式であれば計６系統のリファレンスセルを必要としていた。本発明によれば、計３系統のリファレンスセルで済む。
【実施例８】
【００７５】
次に実施例８について説明する。実施例８では、マルチレベルセルのリファレンス回路に実施例１で説明したリファレンス回路を適用した例について説明する。図１８は、実施例８におけるリファレンスレベルとマルチレベルセルの電位分布を示す図である。図１８において、横軸はしきい値、縦軸はビット数を示す。ＲＶ１１はメモリセルのレベルがレベル１またはレベル２なのかを検出するためのリード用リファレンスセルのしきい値（第１のしきい値）、ＲＶ１２はメモリセルのレベルがレベル１またはレベル２なのかを検出するためのリード用リファレンスセルのしきい値（第２のしきい値）を示す。【００７６】
ＲＶ２１はメモリセルのレベルがレベル２またはレベル３なのかを検出するためのリード用リファレンスセルのしきい値（第１のしきい値）、ＲＶ２２はメモリセルのレベルがレベル２またはレベル３なのかを検出するためのリード用リファレンスセルのしきい値（第２のしきい値）を示す。ＲＶ３１はメモリセルのレベルがレベル３またはレベル４なのかを検出するためのリード用リファレンスセルのしきい値（第１のしきい値）、ＲＶ３２はメモリセルのレベルがレベル３またはレベル４なのかを検出するためのリード用リファレンスセルのしきい値（第１のしきい値）を示す。【００７７】
実施例１で説明したように、リファレンス回路１３は、トランジスタ１３１〜１３３のソース側にＭＯＳトランジスタ１３４〜１３６を挿入し、これと並列にバイパス用のトランジスタ１３７〜１３９を接続する。このトランジスタ１３７をオンオフすることによりリファレンスレベルをシフトさせることで、３つのトランジスタで６つのリード用のしきい値を持つことができる。【００７８】
２種類のリード用のしきい値を持つことにより、第１のしきい値ＲＶ１１〜３１より高い第２のしきい値ＲＶ１２〜３２を用いることで、起動時のメモリチェックにおいて、“１１，１０，０１，００”のチェックを行うことで、チャージロスによるＶＴの低下を検出できる。これにより、異常セルを早期に発見することができる。追加プログラムを行ったり、冗長を行う等の処置を実行したりすることでデバイスの誤動作防止が可能になる。【００７９】
また、メモリセルに記憶できるデータが２ビットの場合、更に１ビット分のリファレンスが必要となる。このため、６つのしきい値を持つ場合、従来方式であれば計６系統のリファレンスセルを必要としていた。本発明によれば、一つのリファレンスセルがそれぞれ２つのしきい値を持つことができるので、計３系統のリファレンスセルで済む。よって、より少ない面積で複数のリファレンスレベルを持つ半導体装置を提供できる。【００８０】
上記各実施例によれば、通常のリファレンスレベルに対して通常のトリミング時間でガードバンドをもつことが出来、これらのレベルをリードのみならずプログラムなどに使用することで、実使用状態でのフラッシュメモリの特性を改善することが出来る。また、複数の基準電流（リファレンスレベル）発生機能を有することによりフラッシュメモリの不良スクリーニング／防止を効果的に行うことができる。また、簡易な回路構成、回路面積で複数のリファレンスレベル発生できる。【００８１】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。例えば上記各実施例では一つのリファレンストランジスタに対して二つのしきい値を持つ例について説明しているが、本発明はこれに限定されるものではなく、一つのリファレンストランジスタに対して更に多くのしきい値を持つように構成することもできる。
【図１】
0004554613.tif 000002
【図２】
0004554613.tif 000003
【図３】
0004554613.tif 000004
【図４】
0004554613.tif 000005
【図５】
0004554613.tif 000006
【図６】
0004554613.tif 000007
【図７】
0004554613.tif 000008
【図８】
0004554613.tif 000009
【図９】
0004554613.tif 000010
【図１０】
0004554613.tif 000011
【図１１】
0004554613.tif 000012
【図１２】
0004554613.tif 000013
【図１３】
0004554613.tif 000014
【図１４】
0004554613.tif 000015
【図１５】
0004554613.tif 000016
【図１６】
0004554613.tif 000017
【図１７】
0004554613.tif 000018
【図１８】
0004554613.tif 000019