(57)【要約】【課題】ＣＡＭセルを備える半導体装置において、データの書き換えやベリファイを正常に行うことができる半導体装置およびベリファイ方法を提供する。【解決手段】本発明の半導体装置は、半導体装置１の動作設定情報を記憶するＣＡＭ用セルアレイ４と、ＣＡＭ用セルアレイの読出しと書込みを制御するコントローラ８、ローデコーダ５、コラムデコーダ６を有し、動作設定情報の異なる機能ブロックごとに異なるローアドレスを割り付ける構成を備えている。動作設定情報の機能毎に異なるローアドレスを割り付けるので、プログラム時に、選択されていない機能のＣＡＭ用セルアレイ４にストレスを与えることがない。【選択図】図２
2011170971.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置の動作設定情報を記憶するセルアレイと、
前記セルアレイの複数のセルに同時にプログラムする書込み回路と、
前記複数のセルのうち、実際にプログラムが行われたセルのプログラム結果だけを検証するベリファイ回路とを有することを特徴とする、半導体装置。
【請求項２】
前記ベリファイ回路は、正常にプログラムが行われた場合に得られる期待値データと、
前記プログラム後に前記セルまたはセンスアンプから読出したデータとを比較する複数の比較回路と、
前記プログラムの行われていない前記セルに割り当てられた前記比較回路の比較結果を、擬似的にパスさせる制御を行う制御手段とを有することを特徴とする、請求項１に記載の半導体装置。
【請求項３】
前記制御手段は、外部入力によってプログラムに指定されたセルであって、前記プログラム前にイレースビットであったセルを判定し、
前記制御手段からの指示により、前記セルがプログラムされた場合に得られる期待値データを生成して、前記セルに割り振られた前記比較回路に出力する期待値保持回路をさらに有することを特徴とする、請求項２に記載の半導体装置。
【請求項４】
半導体装置の動作設定情報を記憶するセルアレイと、
前記セルアレイの複数のセルに同時にプログラムする書込み回路と、
前記プログラム前の前記複数のセルの記憶データを記憶する揮発性記憶回路と、
前記複数のセルのうち、前記プログラムが行われていないセルには前記記憶データをそのまま用いて検証を行い、実際に前記プログラムが行われたセルには正常にプログラムが行われた場合に得られる期待値データを用いてプログラム結果を検証するベリファイ回路と、を有することを特徴とする、半導体装置。
【請求項５】
前記ベリファイ回路は、正常にプログラムが行われた場合に得られる期待値データと、
前記プログラム後に前記セルまたはセンスアンプから読出したデータとを比較する複数の比較回路と、
実際にプログラムが行われたセルを判定し、当該セルに割り当てられた前記比較回路に、前記正常にプログラムが行われた場合に得られる期待値データを用いてプログラム結果を検証させる制御手段と、を有することを特徴とする、請求項４に記載の半導体装置。
【請求項６】
前記制御手段は、外部入力によってプログラムに指定されたセルであって、前記プログラム前にイレースビットであったセルに該当する前記揮発性記憶回路に記憶した前記期待値データを、プログラムされた場合の期待値データに変更して、前記比較回路に出力させることを特徴とする、請求項５に記載の半導体装置。
【請求項７】
前記制御手段は、前記複数のセルごとに、プログラム対象に設定するか否かを指示する指示信号を外部入力し、前記プログラム対象に設定されたセルがイレースビットのセルであるか否かを判定して実際にプログラムを行うセルを判定することを特徴とする、請求項２又は５に記載の半導体装置。
【請求項８】
前記制御手段は、外部入力されるアドレス情報をデコードして、プログラム対象に設定されたセルを判定し、前記プログラム対象に設定されたセルがイレースビットのセルであるか否かを判定して実際にプログラムを行うセルを判定することを特徴とする、請求項２又は５に記載の半導体装置。
【請求項９】
前記制御手段は、外部入力されるモード切換信号により、前記プログラム対象のセルを指定するインタフェースを切り換えることを特徴とする、請求項２又は５に記載の半導体装置。
【請求項１０】
前記動作設定情報を記憶するセルアレイへのプログラム後のベリファイと、通常のデータを記憶する通常用セルアレイへのプログラム後のベリファイとで、前記ベリファイ回路を共有することを特徴とする、請求項１又は４に記載の半導体装置。
【請求項１１】
前記比較回路は、前記動作設定情報を記憶するセルアレイへのプログラムに切り換えるモード信号が入力されて、前記期待値データと前記セルまたはセンスアンプから読出したデータの比較を行うことを特徴とする、請求項２又は５に記載の半導体装置。
【請求項１２】
前記動作設定情報を記憶するセルアレイへのプログラム時には、前記揮発性記憶回路の出力を使用して前記比較回路で比較動作を行い、通常のデータを記憶する通常用セルアレイへのプログラム時には、前記セルがプログラムされた場合に得られる期待値データを保持する期待値保持回路の出力を使用して前記比較回路の比較動作を行うことを特徴とする、請求項５に記載の半導体装置。
【請求項１３】
半導体装置の動作設定情報を記憶するセルアレイのベリファイ方法であって、
前記セルアレイの複数のセルのうち、実際にプログラムが行われたセルのプログラム結果だけを検証することを特徴とする、ベリファイ方法。
【請求項１４】
半導体装置の動作設定情報を記憶するセルアレイのベリファイ方法であって、
前記複数のセルのうち、前記プログラムが行われていないセルには、当該セルの前記プログラム前のデータをそのまま用いて検証を行い、実際に前記プログラムが行われたセルには正常にプログラムが行われた場合に得られる期待値データを用いてプログラム結果を検証することを特徴とする、ベリファイ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、特に不揮発性メモリを備えた半導体装置に関する。より特定すれば、本発明はＣＡＭ（Contents Addressable Memory）データを用いて半導体装置の動作を制御する技術に関する。
【背景技術】
【０００２】
従来、不揮発性メモリのプログラムまたはイレース時に、不揮発性メモリに記憶されるデータと、期待値データとの一致不一致を検出して、データの照合を自動的に行う半導体装置の構成と、いわゆる顧客が使用する通常の不揮発性メモリセルと半導体装置の動作を制御するＣＡＭセルを有する半導体装置が知られている。近年、省スペース化のために、このＣＡＭセルを通常の不揮発性メモリセルと同一のもので構成する提案がなされている。ＣＡＭセルを通常のメモリセルと同一の構成とする場合、ＣＡＭセルに接続されるワード線、ビット線も通常のメモリセルと同じ構成にすることが望ましい。
【０００３】
通常のメモリセルと同一構成のＣＡＭセルに書き込まれたＣＡＭデータは、パワーオン時又はハードウェアリセット時にリードされてＳＲＡＭ（Static Random Access Memory）等の揮発性記憶部（ラッチ回路）に転送されることが望ましい。これにより、通常の不揮発性メモリセルのリードアクセス時などのスピードがＣＡＭデータ読出しによって遅れない。
【０００４】
また、ＣＡＭセルを通常のメモリセルと同じ構成にする場合、ＣＡＭデータの書き換えのときにベリファイ動作までを通常のメモリセルのベリファイ動作と同様に半導体装置内部で完了できるようにすることが望ましい。特許文献１には、通常のメモリセルをプログラムする時のベリファイ回路が開示されている。
【０００５】
通常のメモリセルをプログラムする場合、各Ｉ／Ｏから情報“１”と“０”をユーザが入力する。“０”は、プログラムに設定されたメモリセルを示し、“１”は、イレースに設定されたメモリセルを示す。また、この各Ｉ／Ｏ情報は、ベリファイ動作時に期待値としても利用される。
【０００６】
半導体装置側では、実際のプログラムの前に、プログラム対象となるワード線に接続された複数のメモリセルのデータを一度読み出す。これをプレリードと呼ぶ。プレリードしたデータとＩ／Ｏから入力したデータとを比較し、イレース状態（情報“１”が記憶されている）にあり、Ｉ／Ｏによってプログラムする（“０”が入力された）に設定されたメモリセルだけにプログラムを実行する。
【０００７】
すでにプログラムされているメモリセル（情報“０”が記憶されている）には、追加のプログラムはストレスとなるので行わない。また、すでにプログラムされているメモリセル（情報“０”が記憶されている）に対して、Ｉ／Ｏから入力される情報が“１”である場合には、エラーをコントローラ側に返す。何故なら、物性で書込みをする不揮発性メモリであり、付可逆性であるからイレース動作とプログラム動作とは分離され、例えばイレースはセクタごとに一括で行われるためである。また、すでにイレースされているメモリセル（情報“１”が記憶されている）に対して、Ｉ／Ｏから入力される情報が“１”である場合には、何も行わない。
【０００８】
ＣＡＭセルのプログラムも通常のメモリセルと同様に行われることが望ましい。但し、ＣＡＭセルのプログラムの場合、前述した通常メモリセルのプログラムのインタフェースと違う２つのインタフェース方法で行われる。プログラムするＣＡＭセルとプログラムしないＣＡＭセルを、Ｉ／Ｏから情報“１”と“０”に対応させて入力設定するＣＡＭセルのプログラムのインタフェースをインタフェース１と呼ぶ(特許文献２参照)。インタフェース１の場合、各Ｉ／Ｏから情報“１”と“０”をユーザが入力する。“１”は、プログラムに設定されたメモリセルを示し、“０”は、何もしない（プログラムを行わない）に設定されたメモリセルを示す。
【０００９】
また、ＣＡＭセルへのプログラムの場合、このインタフェース１の方法ではなく、コマンド入力によってプログラムするＣＡＭセルだけを指定する方法もある。この方法をインタフェース２と呼ぶ。インタフェース２の場合、ＣＡＭセルのアドレスを指定することで、指定されたＣＡＭセルは、プログラムに設定されたメモリセルを意味する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平６−７６５８６号公報
【特許文献２】特開平１０−１０６２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ＣＡＭセルには、ユーザが情報の書き換えを行うユーザブロックと、ベンダーメーカが予め情報を書き込むファクトリブロックとが設けられることが望ましい。このような構成において、ユーザブロックのＣＡＭデータの書き換えを行う場合には、ファクトリブロックのメモリセルがセル情報のディスターブを受けないことが必要となる。ディスターブとは、対象のメモリセルへのプログラム時に、同じワード線やビット線につながれたメモリセルが電気的影響を受けて、メモリセルにチャージロスやチャージのゲインが発生する現象である。
【００１２】
第１の問題点として、ユーザブロックのＣＡＭデータの書き換えを行う場合には、ファクトリブロックのメモリセルがセル情報のディスターブを受けないことが必要であるが、この点に着目した技術は知られていない。
【００１３】
第２の問題点として、ＣＡＭセルのプログラム後に、ベリファイが正しく行えないという問題が発生する。これについて以下に詳述する。
【００１４】
問題は、同一ワード線上に複数のＣＡＭセルが接続されたアレイ構成であって、ベリファイ動作が同一ワード線上の複数のＣＡＭセルに対して同時に行われる場合に発生する。
【００１５】
図１（Ａ）には、同一ワード線上に配置された複数のＣＡＭセルのプログラム状態が示されている。図１（Ａ）に示す“１”のＣＡＭセルは、イレースセルであり、プログラムされていないことを示している。また、“０”のＣＡＭセルは、プログラムセルであり、すでにプログラムされたセルであることを示している。
【００１６】
ここで、図１（Ａ）に示すワード線上のＣＡＭセルに、図１（Ｂ）に示すような前記インタフェース１であるＩ／Ｏ入力がなされたとする。なお、図１（Ｂ）に示す“１”は、プログラム実行に設定し、“０”はプログラムは行わずに、そのままの状態を維持するように設定する。
【００１７】
半導体装置は、上述したプレリードによりワード線上の各ＣＡＭセルからデータを読出して、プレリードしたデータとＩ／Ｏから入力したデータとを比較し、イレース状態（情報“１”が記憶されている）にあり、Ｉ／Ｏによってプログラムする（“１”が入力された）に設定されたメモリセルだけにプログラムを実行する。ここでは、図１（Ｃ）に示すようにワード線上の一番右側のＣＡＭセルでプログラムが実行される。
【００１８】
プログラム後には、ベリファイを行う。プログラム後のＣＡＭセルから読出したデータと、Ｉ／Ｏ入力したデータを期待値として使用してこれらを比較する（図１（Ｄ）参照）。この時、図１（Ｄ）に示すようにすでにプログラムが行われたＣＡＭセルに対してＩ／Ｏ入力した期待値がプログラムしない設定であった場合、比較結果は「フェイル」となり、ベリファイ動作がフェイルしてしまう。
【００１９】
また上述したインタフェース２の指定方法の場合、コマンド入力によってプログラムするＣＡＭセルだけを指定する方法であるため、同一ワード線上のプログラムが行われなかったＣＡＭセルに対応する期待値を発生させることができず、ベリファイ動作が実現できない。
【００２０】
本発明は上記事情に鑑みてなされたものであり、ＣＡＭセルを備える半導体装置において、データの書き換えやベリファイを正常に行うことができる半導体装置およびベリファイ方法を提供することを目的とする。
【課題を解決するための手段】
【００２１】
かかる目的を達成するために本発明の半導体装置は、半導体装置の動作設定情報を記憶するセルアレイと、前記セルアレイの読出しと書込みを制御する制御部とを有し、前記制御部は、前記動作設定情報の機能毎に異なるローアドレスを割り付ける構成を備えている。動作設定情報の機能毎に異なるローアドレスを割り付けるので、プログラム時に、選択されていない機能のセルアレイにストレス（ゲートディスターブ）を与えることがない。
【００２２】
上記の半導体装置において、前記制御部は、前記動作設定情報の機能毎に異なるコラムアドレスを割り付けるとよい。動作設定情報の機能毎に異なるコラムアドレスを割り付けるので、選択されていない機能のセルアレイにストレス（ドレインディスターブ）を与えることがない。
【００２３】
上記の半導体装置において、前記制御部は、前記動作設定情報の複数の異なる機能に対して連続するコラムアドレスを割り付けるとよい。複数の異なる機能に対して連続するコラムアドレスを割り付けているので、データを連続的に読出し、読出し時間を短縮させることができる。
【００２４】
上記の半導体装置において、前記制御部は、前記ローアドレスで選択される複数のコラムに前記動作設定情報を割り付けるとよい。または、前記制御部は、前記ローアドレスで選択される任意のコラムの全てのＩ／Ｏに前記動作設定情報を割り付けると良い。読出しサイクル数を最小限にして、読出し時間を短縮させることができる。
【００２５】
上記の半導体装置において、前記ローアドレスの異なるメモリセル間で、ローカルビット線の配線パターンを切断した構成を備えている。ローアドレスの異なるメモリセル間で、ローカルビット線の配線パターンを切断しているので、機能の異なるメモリセル間でワード線を同時に選択した状態のまま、コラムアドレスの切り換えでデータを読み出すことができる。
【００２６】
上記の半導体装置において、前記ローアドレスの異なるメモリセルは、コラム対応に設けたビット線との接続を切り換えるスイッチをそれぞれに有するとよい。機能の異なるメモリセル間でワード線を同時に選択した状態のまま、コラムアドレスの切り換えでデータを読み出すことができる。
【００２７】
上記の半導体装置において、前記セルアレイはコラム毎に複数のメモリセルを有し、前記動作設定情報が格納されていない前記複数のメモリセルは、コラム対応に設けられているビット線から切り離されているとよい。従って、プログラム時に、選択されていない機能のセルアレイにストレスを与えることがない。
【００２８】
上記の半導体装置において、前記制御部は、前記セルアレイ上の全ワード線を選択し、前記コラムアドレスを連続的に切り換えてデータを読み出すとよい。ワード線の切り換えを行わずに、コラムアドレスの切り換えだけでデータを読み出すことができ、読出し時間の短縮を図ることができる。
【００２９】
上記の半導体装置において、前記制御部は、指定されたメモリセルの番号から、該当するメモリセルのアドレスに変換する変換テーブルを有するとよい。指定したセルのアドレスに変換することができるので、所望のセルをプログラムすることができる。
【００３０】
本発明は、半導体装置の動作設定情報を記憶するセルアレイへのアドレス割り付け方法であって、前記動作設定情報の機能毎に異なるローアドレスを割り付ける。動作設定情報の機能毎に異なるローアドレスを割り付けるので、プログラム時に、選択されていない機能のセルアレイにストレスを与えることがない。また、機能毎のイレースが可能となる。
【００３１】
上記アドレス割り付け方法において、前記動作設定情報の機能毎に異なるコラムアドレスを割り付けるとよい。動作設定情報の機能毎に異なるコラムアドレスでデータを読み出すことができる。
【００３２】
上記アドレス割り付け方法において、前記動作設定情報の複数の異なる機能に対して連続するコラムアドレスを割り付けるとよい。複数の異なる機能の動作設定情報を読み出しやすくなる。
【００３３】
上記アドレス割り付け方法において、前記セルアレイ上の全ワード線を選択し、前記コラムアドレスを連続的に切り換えてデータを読み出すとよい。従って、ワード線の切り換えを行なわずに、コラムアドレスの切り換えだけで動作設定情報を読み出すことができる。
【００３４】
本発明は、半導体装置の動作設定情報を記憶するセルアレイと、前記セルアレイの複数のセルに同時にプログラムする書込み回路と、前記複数のセルのうち、実際にプログラムが行われたセルのプログラム結果だけを検証するベリファイ回路と、を有する構成を備えている。このように本発明は、実際にプログラムが行われたセルのプログラム結果だけを検証することができる。
【００３５】
上記の半導体装置において、前記ベリファイ回路は、正常にプログラムが行われた場合に得られる期待値データと、前記プログラム後に前記セルまたはセンスアンプから読出したデータとを比較する複数の比較回路と、前記プログラムの行われていない前記セルに割り当てられた前記比較回路の比較結果を、擬似的にパスさせる制御を行う制御手段とを有しているとよい。このようにプログラムの行われていないセルに割り当てられた比較回路の比較結果を、擬似的にパスさせる制御を行うので、プログラムされたセルのプログラム結果をベリファイに反映させることができる。
【００３６】
上記の半導体装置において、前記制御手段は、外部入力によってプログラムに指定されたセルであって、前記プログラム前にイレースビットであったセルを判定し、前記制御手段からの指示により、前記セルがプログラムされた場合に得られる期待値データを生成して、前記セルに割り振られた前記比較回路に出力する期待値保持回路をさらに有しているとよい。このように実際にプログラムが行われたセルを判定して、このセルに割り当てられた比較回路に期待値データを出力するので、プログラムされたセルのプログラム結果を正確に判定することができる。
【００３７】
上記の半導体装置において、半導体装置の動作設定情報を記憶するセルアレイと、前記セルアレイの複数のセルに同時にプログラムする書込み回路と、前記プログラム前の前記複数のセルの記憶データを記憶する揮発性記憶回路と、前記複数のセルのうち、前記プログラムが行われていないセルには前記記憶データをそのまま用いて検証を行い、実際に前記プログラムが行われたセルには正常にプログラムが行われた場合に得られる期待値データを用いてプログラム結果を検証するベリファイ回路と、を有しているとよい。このように本発明は、プログラムが行われていないセルには記憶データをそのまま用いて検証を行い、実際にプログラムが行われたセルには正常にプログラムが行われた場合に得られる期待値データを用いてプログラム結果を検証するので、プログラムされたセルのプログラム結果を正確に検証することができる。
【００３８】
上記の半導体装置において、前記ベリファイ回路は、正常にプログラムが行われた場合に得られる期待値データと、前記プログラム後に前記セルまたはセンスアンプから読出したデータとを比較する複数の比較回路と、実際にプログラムが行われたセルを判定し、当該セルに割り当てられた前記比較回路に、前記正常にプログラムが行われた場合に得られる期待値データを用いてプログラム結果を検証させる制御手段と、を有しているとよい。実際にプログラムされたセルを判定して、プログラムされたセルのプログラム結果を正確に検証することができる。
【００３９】
上記の半導体装置において、前記制御手段は、外部入力によってプログラムに指定されたセルであって、前記プログラム前にイレースビットであったセルに該当する前記揮発性記憶回路に記憶した前記期待値データを、プログラムされた場合の期待値データに変更して、前記比較回路に出力させるとよい。実際にプログラムされたセルを判定して、プログラムされたセルのプログラム結果を正確に検証することができる。
【００４０】
上記の半導体装置において、前記制御手段は、前記複数のセルごとに、プログラム対象に設定するか否かを指示する指示信号を外部入力し、前記プログラム対象に設定されたセルがイレースビットのセルであるか否かを判定して実際にプログラムを行うセルを判定するとよい。外部からの指示信号によりプログラム対象のセルを設定して、指定したセルのプログラムを行うことができる。
【００４１】
上記の半導体装置において、前記制御手段は、外部入力されるアドレス情報をデコードして、プログラム対象に設定されたセルを判定し、前記プログラム対象に設定されたセルがイレースビットのセルであるか否かを判定して実際にプログラムを行うセルを判定するとよい。外部入力されるアドレス情報によりプログラム対象のセルを設定して、指定したセルのプログラムを行うことができる。
【００４２】
上記の半導体装置において、前記制御手段は、外部入力されるモード切換信号により、前記プログラム対象のセルを指定するインタフェースを切り換えるとよい。複数のインタフェースに対応してプログラムするセルの指定を受け付けることができる。
【００４３】
上記の半導体装置において、前記動作設定情報を記憶するセルアレイへのプログラム後のベリファイと、通常のデータを記憶する通常用セルアレイへのプログラム後のベリファイとで、前記ベリファイ回路を共有するとよい。ベリファイ回路を共有することができるので、回路の小型化を図ることができる。
【００４４】
上記の半導体装置において、前記比較回路は、前記動作設定情報を記憶するセルアレイへのプログラムに切り換えるモード信号が入力されて、前記期待値データと前記セルまたはセンスアンプから読出したデータの比較を行うとよい。ベリファイの時にだけ比較回路を動作させることができる。
【００４５】
上記の半導体装置において、前記動作設定情報を記憶するセルアレイへのプログラム時には、前記揮発性記憶回路の出力を使用して前記比較回路で比較動作を行い、通常のデータを記憶する通常用セルアレイへのプログラム時には、前記セルがプログラムされた場合に得られる期待値データを保持する期待値保持回路の出力を使用して前記比較回路の比較動作を行うとよい。動作設定情報を記憶するセルアレイへのプログラム時と、通常用セルアレイへのプログラム時とで異なるベリファイの制御を行うことができる。
【００４６】
本発明は、半導体装置の動作設定情報を記憶するセルアレイのベリファイ方法であって、前記セルアレイの複数のセルのうち、実際にプログラムが行われたセルのプログラム結果だけを検証する。このように本発明は、実際にプログラムが行われたセルのプログラム結果だけを検証することができる。
【００４７】
本発明は、半導体装置の動作設定情報を記憶するセルアレイのベリファイ方法であって、前記複数のセルのうち、前記プログラムが行われていないセルには、当該セルの前記プログラム前のデータをそのまま用いて検証を行い、実際に前記プログラムが行われたセルには正常にプログラムが行われた場合に得られる期待値データを用いてプログラム結果を検証する。このように本発明は、プログラムが行われていないセルには記憶データをそのまま用いて検証を行い、実際にプログラムが行われたセルには正常にプログラムが行われた場合に得られる期待値データを用いてプログラム結果を検証するので、プログラムされたセルのプログラム結果を正確に検証することができる。
【発明の効果】
【００４８】
本発明は、動作設定情報を記憶するセルアレイを備える半導体装置において、データの書き換えやベリファイを正常に行うことができる。
【図面の簡単な説明】
【００４９】
【図１】従来の問題点を説明するための図である。
【図２】本発明の半導体装置の構成を示す図である。
【図３】ＣＡＭセルアレイのビットマップの一例を示す図である。
【図４】ＣＡＭセルアレイのビットマップの一例を示す図である。
【図５】ＷＰビットの番号とアドレスの対応関係を示す図である。
【図６】ＷＰビットアドレスのＣＡＭセルアレイのアドレスへの変換を示す図である。
【図７】ＣＡＭセルアレイと通常のセルアレイのメモリセルの構成を示す図である。
【図８】ＣＡＭセルアレイと通常のセルアレイのメモリセルの構成を示す図である。
【図９】ＷＰアドレスをＣＡＭのコラムアドレスに変換する論理回路の構成を示す図である。
【図１０】ＷＰアドレスをＤＱ変換する論理回路の構成を示す図である。
【図１１】セルアレイとベリファイ回路の構成を示す図である。
【図１２】ＷＰビットセレクト回路の構成を示す図である。
【図１３】のベリファイ回路のＩ／Ｏモード時の動作手順を示すフローチャートである。
【図１４】ベリファイ回路のＩ／Ｏモード時の手順を説明するための図である。
【図１５】ベリファイ回路のアドレスモード時の動作手順を示すフローチャートである。
【図１６】ベリファイ回路のアドレスモード時の手順を説明するための図である。
【図１７】ベリファイ回路の詳細な構成を示す図である。
【図１８】セルアレイとベリファイ回路の構成を示す図である。
【図１９】ＷＰビットセレクト回路の構成を示す図である。
【図２０】ベリファイ回路のＩ／Ｏモード時の動作手順を示すフローチャートである。
【図２１】ベリファイ回路のＩ／Ｏモード時の手順を説明するための図である。
【図２２】ベリファイ回路のアドレスモード時の動作手順を示すフローチャートである。
【図２３】ベリファイ回路のアドレスモード時の手順を説明するための図である。
【図２４】ベリファイ回路の詳細な構成を示す図である。
【発明を実施するための形態】
【００５０】
次に、添付図面を参照しながら本発明を実施するための最良の形態について説明する。
【実施例１】
【００５１】
添付図面を参照しながら本発明の好適な実施例を説明する。
まず、図２を参照しながら本実施例の全体構成を説明する。本実施例の半導体装置１は、セルアレイ部２として通常のデータを記憶する通常用セルアレイ３と、ＣＡＭ用のデータを記憶するＣＡＭ用セルアレイ４とを備えている。ＣＡＭ用セルアレイ４は、通常用セルアレイ３と同様にメモリセルが複数の行及び列に配置された構成を持つ。ＣＡＭ用セルアレイ４には、半導体装置１の動作設定情報（所謂ＣＡＭデータ）が記憶される。例えば、通常用セルアレイ３のライトプロテクト情報、半導体装置１の内部電圧調整情報、内部タイミング調整情報、動作モード切り換え情報、メモリセル冗長ビットの情報などが記憶される。またこれらのセルアレイへのデータの書込み、読出し及び消去を実現するための周辺回路が設けられている。周辺回路には、図１に示すようにローデコーダ５、コラムデコーダ６、コマンドレジスタ７、コントローラ８、プログラム電圧発生回路９、センスアンプ１０、揮発性メモリ部１１、判定回路１２、ベリファイ回路１３、データ入出力回路１４等が設けられている。
【００５２】
ローデコーダ５は、データ書込み時、消去時および読出し時に、それぞれのアドレスにもとづいて複数のワード線ＷＬを選択駆動するものであり、そのワード線ドライバ（図示していない）にはプログラム電圧発生回路９から所要の電圧が供給される。コラムデコーダ６は、外部入力されたアドレスをもとにセルアレイの列、すなわちグローバルビット線やローカルビット線を選択する。
【００５３】
コマンドレジスタ７は、外部からのコマンドを内部制御信号にデコードする。コントローラ（制御部）８は、このコマンドレジスタ７によってデコードされた内部制御信号に応答して、コマンドに対応する内部動作を制御する。コントローラ８は、例えばマイクロプロセッサで構成され、前述内部制御信号に応じてプログラム電圧発生回路９、判定回路１２、ベリファイ回路１３等を制御する。
【００５４】
ＣＡＭ用セルアレイ４に記憶されたＣＡＭデータは、半導体装置１のパワーオン時、又はハードウェアのリセット時などに揮発性メモリ部１１に転送され、記憶される。揮発性メモリ部１１にＣＡＭデータを読出しておくことで、通常用セルアレイ３のリードアクセス時にＣＡＭデータの読出しによってリード動作に遅延を生じさせない。なお、この読出し動作時間は、起動時間の増大につながるため、ＣＡＭデータを短時間で転送することが望ましい。
【００５５】
データ入出力回路１４は、外部からプログラムの指示を入力したり、読出したデータを出力するＩ／Ｏ端子を備えている。また、データ入出力回路１４は、通常用セルアレイ３と、ＣＡＭ用セルアレイ４へのデータの書込み（プログラム）と、読出し（リード）とを行う。
【００５６】
次に、ＣＡＭ用セルアレイ４の構成について説明する。図３に、ＣＡＭデータのＣＡＭ用セルアレイ４への割り付けを示すビットマップを示す。ＣＡＭ用セルアレイ４は、ユーザブロックとファクトリブロックとの機能ブロックに分かれている。データの消去は、この機能ブロック単位に行われる。
【００５７】
ユーザブロックとは、ユーザが書き換え可能なライトプロテクトビット（以下、ＷＰビットとも表記する）などを書き込む領域である。ライトプロテクトビットは、メモリセルへのプログラム又はイレースを制御するビットであり、任意数のセクタ（以下、この単位をセクタグループと呼ぶ）を単位として設定される。図３に示す例では、ＷＰビットは、望ましくはＤＱ０〜ＤＱ１５のすべてのＩ／Ｏに割り振られ、ワード線は１本（１つのローアドレス）、ローカルビット線（ＬＢＬ）は、１Ｉ／Ｏ当たり４本、すなわち４コラムアドレス分（ＬＢＬ０〜３）、グローバルビット線（ＧＢＬ）は１Ｉ／Ｏ当たり１本分（ＧＢＬ０）に割り当てられている。なお、ＷＰビットを、ＤＱ０〜ＤＱ１５のすべてのＩ／Ｏに割り振るとは、ローアドレスで選択される任意のコラムのメモリセルのすべてにデータを割り付けることを意味している。尚、ＷＰビット数がＩ／Ｏ数で整数で割り切れないとき、Ｉ／Ｏ割り付けを重視してコラムを割り当てる又はコラム割り付けを重視してＩ／Ｏを割り付けるなど適宜に割り振ることで対処できる。例えば、ＷＰビット数が６０でＩ／Ｏ数が１６の場合、Ｉ／Ｏ割り付けを重視してコラムを割り当てる方法では、最終コラムアドレス（００００１１）のＷＰビット６０，６１，６２，６３に対応するＩ／Ｏ（ＤＱ）が割り当てられないか、または先頭コラムアドレス（００００００）のＷＰビット０，１，２，３に対応するＩ／Ｏ（ＤＱ）をシフトさせて割り当てることとなる。コラム割り付けを重視してＩ／Ｏを割り付ける方法では、ＷＰビット１５，３１，４７，６３に対応するＩ／Ｏ（ＤＱ）を飛ばして割り当てることとなる。
【００５８】
ユーザブロックは、ＷＰビット０〜６３まで６４ビット分で構成され、図５に示す対応関係（変換テーブル）と、図６に示す変換（変換テーブル）に従ってビット割り付けされる。すなわち、図５及び図６に示すように、各ＷＰビット０〜６３は、Ｉ／ＯであるＤＱ端子のアドレスＡ１７〜Ａ２０と、コラムアドレスであるアドレスＡ２１とＡ２２とに対応している。
【００５９】
ファクトリブロックは、ベンダーメーカが書き換えを行い、ユーザは書き換えができない機能ブロックである。この機能ブロックには、冗長データ、内部電圧トリミングデータ、内部タイミングトリミングデータなどが書き込まれる。
【００６０】
図３に示すファクトリブロックでは、トリミング（Triming）用ＴＲ０〜１５の１６ビットと、８ビットで１欠陥救済アドレスを記憶するセクタ冗長用のREDSECA〜REDSECDの３２ビット分と、８ビットで１欠陥救済アドレスを記憶するコラム冗長用のREDCOL(0-0)〜REDCOL(7-1)の１２８ビット分とで構成される。
【００６１】
ファクトリブロックも図３に示すようにＤＱ０〜ＤＱ１５のすべてに割り振られ、ワード線は１本、ローカルビット線（ＬＢＬ）は１Ｉ／Ｏ当たり１１本分（すなわち、１１コラムアドレス分（ＬＢＬ４〜１４に相当））、ファクトリブロックのグローバルビット線（ＧＢＬ）は、１Ｉ／Ｏ当たり３本分（ＧＢＬ１〜３）が割り当てられている。図４に示すようにファクトリブロックもユーザブロックと同様に６４ビット分で構成し、ＤＱ０〜ＤＱ１５のすべてに割り振ったものであってもよい。
【００６２】
図７（Ａ）にＣＡＭ用セルアレイ４の詳細な構成を示し、図７（Ｂ）に通常用セルアレイ３の詳細な構成を示す。図７（Ａ）に示すＣＡＭ用セルアレイ４は、ファクトリブロックがユーザブロックの書き換えによってメモリ情報のゲートディスターブを受けないように、ファクトリブロックとユーザブロックとで互いに独立したワード線を持っている。すなわち、ファクトリブロックとユーザブロックとが異なるローアドレスに割り当てられている。図２に示すローデコーダ５は、外部から入力されたアドレスに基づいて、機能ブロックごとのＣＡＭデータを異なるローアドレスに割り当てる。図７（Ａ）では、ユーザブロックに含まれるＷＰビットに割り振られたワード線ＷＬ０と、ファクトリブロックに含まれるファクトリビットに割り振られたワード線ＷＬ１とが示されている。さらに同じ機能ブロック（ユーザブロック又はファクトリブロック）内では、割り当てるワード線本数を最小限に設定している。これは、機能ブロック単位でデータの一括消去が可能なように構成するためである。なお、ゲートディスターブとは、プログラムするメモリセルと同一のワード線につながれ、ビット線は非選択のメモリセルのゲートにプログラム時の高電圧がかかり、チャージゲインを引き起こす現象である。この現象により非選択のメモリセルのデータがチャージゲインにより“１（閾値が低い）”から“０（閾値が高い）”へ変化してしまう。
【００６３】
同様にコラムデコーダ６は、外部から入力されたアドレスに基づいて、機能ブロックごとのＣＡＭデータを異なるコラムアドレスに割り当てる。またファクトリブロックとユーザブロックとで、コラムアドレスが連続するようにアドレスの割り付けを行なう。
【００６４】
さらにファクトリブロックがユーザブロックの書き換えなどによってメモリ情報のドレインディスターブを受けないように、図７（Ａ）に示すようにファクトリブロックとユーザブロック間でビット線を分離する。すなわち、コラムデコーダ６は、ユーザブロックとファクトリブロックとで、互いに独立したコラムアドレスをデータに割り当てる。また異なる機能ブロック間ではコラムアドレスが連続するようにコラムデコーダ６は、設定する。なお、ビット線の分離とは、ローカルビット線やグローバルビット線の物理的な分離と、電気的な分離の両方を指す。また、ドレインディスターブとは、プログラムするメモリセルと同一のビット線につながれ、ワード線は非選択のメモリセルのドレインにプログラム時の高電圧がかかり、チャージロスを引き起こす現象である。この現象により非選択のメモリセルのデータがチャージロスにより“０（閾値が高い）”から“１（閾値が低い）”へ変化してしまう。
【００６５】
また、全ワード線（例えばワード線ＷＬ１とＷＬ２）を選択した状態で、コラムアドレスを切り換えるだけでＣＡＭデータをすべて読み出せるようにするために、機能ブロック間で同一コラムアドレスを持たないようにし、かつ機能ブロック内でコラムアドレスを連続させる。すると、ワード線切り換えの時間を省くことができ、ＣＡＭデータをＣＡＭ用セルアレイ４から揮発性メモリ部１１へ短時間で転送することができる。その場合、複数のワード線を同時に選択した時に、同一ビット線に必要なセルデータと不要なセルデータが重複して選択されないように不要なセルデータが接続されるビット線は切り離す。
【００６６】
さらに、ユーザブロックと、ファクトリブロックとで同じコラムアドレスを持たないことを利用して、図８（Ａ）に示すようにユーザブロックとファクトリブロック間のローカルビット線（LBL）の配線パターンを物理的に断線し、かつ切断されたローカルビット線（LBL）をグローバルビット線に接続しない(例えば、コンタクトビアを設けない)。又はユーザブロックとファクトリブロックをセクタの概念で分離し、図７（Ａ）に示すようにグローバルビット線につなぐコラムスイッチをユーザブロックとファクトリブロックのそれぞれで持つことで電気的に切り離す。
【００６７】
これにより、電源投入時などにおいて、ＣＡＭ用セルアレイ４から揮発性メモリ１１へのデータの読出し時、ユーザブロックのワード線とファクトリブロックのワード線を同時に選択した状態のまま、コラムアドレスの選択切換のみでＣＡＭデータを読み出すことができる。ワード線の選択切り換えを行う必要がない分、さらにＣＡＭデータ全ビットの総読出し時間を短縮させることができる。
【００６８】
図９に、プログラム／イレース動作用のアドレス信号をバンク毎のコラムアドレス信号に変換する変換回路の構成を示す。この変換回路は、コラムデコーダ６内に設けられ、ＣＡＭプログラムモード信号（ＣＡＭＰＧＭ）を活性状態と非活性状態とに切り換えることで、通常用セルアレイ３のコラムアドレスと、ＣＡＭ用セルアレイ４のコラムアドレスとに切り換えることができる。
【００６９】
変換回路の構成は、プログラム／イレース動作用のアドレス信号ＷＡ（０）又はＷＡ（１）と、ＣＡＭＰＧＭ信号とを入力するＯＲゲート1２１と、ＣＡＭＰＧＭ信号の反転出力と、アドレス信号ＷＡ（２１）又はＷＡ（２２）とをそれぞれに入力するＯＲゲート1２３と、ＯＲゲート1２１、1２３の出力を入力するＮＡＮＤゲート1２４と、ＮＡＮＤゲート1２４の出力を反転させるインバータ1２５とを有している。インバータ1２５の出力がコラムアドレスＡＡ（０），ＡＡ（１）となる。ＣＡＭＰＧＭ信号が非活性の場合には、アドレス信号ＷＡ（１）／ＷＡ（０）信号がそのままコラムアドレス信号ＡＡ（１）／ＡＡ（０）となる。
【００７０】
またその他は、ＣＡＭＰＧＭ信号と、各アドレス信号ＷＡ（２），ＷＡ（３），ＷＡ（４），ＷＡ（５）とを入力するＯＲゲート1３１と、ＣＡＭＰＧＭ信号の反転出力と、電源電圧ＶＣＣとを入力するＯＲゲート1３３と、ＯＲゲート1３１と1３３の出力を入力するＮＡＮＤゲート1３４と、ＮＡＮＤゲート1３４の出力を判定させるインバータ1３５とを有している。インバータ1３５の出力がコラムアドレスＡＡ（２），ＡＡ（３），ＡＡ（４），ＡＡ（５）となって出力される。
【００７１】
プログラム／イレース用のアドレス信号を、ＤＱ変換する変換回路を図１０に示す。この変換回路は、データ入出力回路１４内にスイッチとして設けられ、ＤＱ０を生成する変換回路は、アドレス信号ＷＡ（２０）、（１９）、（１８）、（１７）を入力するＮＯＲゲート1４２と、ＣＡＭＰＧＭ信号とＮＯＲゲート1４２の出力とを入力するＮＡＮＤゲート1４３と、ＮＡＮＤゲート1４３の出力を反転するインバータ1４４とから構成されている。同様の回路構成により、ＤＱ０〜ＤＱ１５を生成する変換回路が構成される。
【００７２】
ＣＡＭＰＧＭ信号が活性化した場合、ＷＡ（０）〜ＷＡ（１７）がＣＡＭ＿ＤＱ１５〜ＣＡＭＤＱ＿０に割り当てられる。通常用セルアレイ３が選択状態（つまりＣＡＭＰＧＭ信号が非活性）の場合には、ＣＡＭ＿ＤＱ１５〜ＣＡＭ＿ＤＱ０が非活性状態となる。
【００７３】
ライトプロテクトビットのプログラム時には、図１０に示す変換回路によってプログラム対象となるＤＱのみが活性化動作して、プログラム非対象のＤＱは無視されるように印加ストレス、期待値、判定信号が制御される。
【００７４】
上述した実施例は本発明の好適な実施例であるが、これに限定されるものではない。例えば、ファクトリブロックにＯｎｅ  Ｔｉｍｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｏｍ（ＯＴＰ−Ｒｏｍ）を含めても良い。ＯＴＰ−Ｒｏｍは、ユーザが一度だけプログラムできる機能メモリである。ユーザに与えられた機能という視点ではファクトリブロックとは異なるが、一度プログラムしたら再度プログラムできない機能の視点からは、何度もプログラムやイレースができるユーザブロックからは分離する。すなわち、ゲートディスターブ、ドレインディスターブを回避することが要求される。
【００７５】
また、ユーザブロックをライトビットブロックではなく、リードビットブロックとし、任意のセクタ単位でリードの制御を行うようにしてもよい。
【００７６】
また、上述した実施例では、ファクトリブロックとユーザブロックとの間でローカルビット線の物理的な分離やグローバルビット線への電気的な分離を開示したが、これに限らずファクリトブロックとユーザブロック間のグローバルビット線を物理的や電気的に分離してもよい。
【００７７】
また通常用セルアレイとＣＡＭ用セルアレイとはデータバスを共有するように接続されていてもよいし、ユーザブロックとファクトリブロックのグローバルビット線を共有するように接続してもよい。
【００７８】
また、ウェルは、ユーザブロックとファクトリブロックとで分離してもよいし、共通でもよい。共通であれば、ダイサイズを縮小することができる。なお、共通の場合には、ユーザブロックでの消去動作時に、ファクトリブロックのワード線をフローティング制御する。
【実施例２】
【００７９】
まず、図１１を参照しながら本実施例の構成を説明する。図１１には、半導体装置１のデータを記憶するセルアレイ部２(通常用セルアレイ３とＣＡＭ用セルアレイ４)と、セルアレイ部２へのデータの書込み状態や、データの消去状態を確認するベリファイ回路１３と、データ入出力回路１４内の期待値保持回路３２の構成が示されている。なお、本実施例においても、１６ビットの同時書込みモードを備え、通常用セルアレイ３又はＣＡＭ用セルアレイ４の１６メモリセルに同時アクセスしてプログラムすることができる。
【００８０】
ベリファイ回路１３には、図１１に示すようにＷＰビットセレクト回路３３と、データ比較回路３４とが備えられている。データ入出力回路１４内の期待値保持回路３２とデータ比較回路３４とは、１６Ｉ／Ｏに対応して、１６個ずつ設けられている。
【００８１】
ＷＰビットセレクト回路３３には、図１１に示すようにインタフェースモード設定信号と、各Ｉ／Ｏから入力される信号と、ライトプロテクト用のＣＡＭ（以下、ＷＰ−ＣＡＭ）を指定するアドレス（ＷＰ−ＣＡＭアドレス指定信号）とが入力される。
【００８２】
プログラムするＣＡＭセルの指定方法には２通りの方法がある。１つは、プログラムしたいＣＡＭセルに対応するＩ／Ｏに情報“１”を、その他のプログラムしたくないＣＡＭセルに対応するＩ／Ｏには情報“０”を入力することで指定する方法（以下、Ｉ／Ｏモードと呼ぶ）である。もう１つは、プログラムしたいＣＡＭセルに対して、対応するアドレスを入力する方法（以下、アドレスモードと呼ぶ）である。インタフェースモード設定信号は、プログラムするＣＡＭセルの指定方法を、この２つで切り換える信号である。
【００８３】
図１２にＷＰビットセレクト回路３３の詳細な構成を示す。図１２に示すようにＷＰビットセレクト回路３３は、デコーダ５１と、ＡＮＤゲート５３と、スイッチ５４とを主として備えている。ＡＮＤゲート５３とスイッチ５４とは、１６Ｉ／Ｏに対応して１６個ずつ設けられている。これらの構成により、擬似的にベリファイをパスさせるデータ比較回路３４を選択する。
【００８４】
インタフェースモード設定信号によって、アドレスモードに設定されると、スイッチ５４−（０）〜５４−（１５）はＯＦＦし、入力したＷＰ−ＣＡＭアドレス指定信号をデコーダ５１でデコードして、ベリファイコントロール信号を生成する。また、インタフェースモード設定信号によって、Ｉ／Ｏモードに設定されると、インバータ５２を介してデコーダ５１に入力されるインタフェースモード設定信号によりデコーダ５１がＯＦＦになり、スイッチ５４−（０）〜５４−（１５）がＯＮする。
【００８５】
ＡＮＤゲート５３−（０）〜５３−（１５）には、各Ｉ／Ｏから入力した信号（Ｉ／Ｏ−（０）〜Ｉ／Ｏ（１５））と、ＣＡＭセルから予め読出したプレリードデータ（ＤＡＶ）とが入力され、これらの信号の論理積をＡＮＤゲート５３−（０）〜５３−（１５）で取る。すなわち、ＣＡＭセルのプログラム前のデータと、Ｉ／Ｏ入力したデータとが共に“１”の時にハイレベルの信号をベリファイコントロール信号として出力する。それ以外の時にはローレベルの信号をベリファイコントロール信号として出力する。
【００８６】
期待値保持回路３２−（０）〜３２−（１５）は、図１１に示すように各Ｉ／Ｏに対応して設けられ、Ｉ／Ｏ入力した情報を保持する。保持した情報は、通常用セルアレイ３のプログラム後に期待値データとしてデータ比較回路３４に出力される。また期待値保持回路３２−（０）〜３２−（１５）は、Ｉ／Ｏモードに設定されＣＡＭ用セルアレイ４のプログラム時に、Ｉ／Ｏ入力した情報を保持する。保持した情報は、ＣＡＭ用セルアレイのプログラム後に期待値データとしてデータ比較回路３４に出力される。また期待値保持回路３２は、アドレスモードに設定されＣＡＭ用セルアレイ４のプログラム時に、インタフェースモード設定信号によりスイッチ３５がＯＮになると、ＷＰビットセレクト回路３３から出力されるベリファイコントロール信号を入力して期待値を生成する。そのデータは、ＣＡＭ用セルアレイのプログラム後に期待値データとしてデータ比較回路３４に出力される。
【００８７】
データ比較回路３４−（０）〜３４−（１５）もＩ／Ｏに対応してそれぞれ設けられ、通常用セルアレイ３やＣＡＭ用セルアレイ４から読出したデータと、期待値保持回路３２−（０）〜３２−（１５）に保持されたデータ（期待値）とを比較する。また、ＣＡＭ用セルアレイ４のプログラム時には、データ比較回路３４は、ＷＰビットセレクト回路３３からのベリファイコントロール信号によって、プログラム非対象のセルはすべて擬似的にベリファイをパスさせる。
【００８８】
次に、図１３に示すフローチャートと、図１４を参照しながら本実施例のＩ／Ｏモードに設定されＣＡＭ用セルアレイ４のプログラム時の動作を説明する。なお、本実施例では、書込みを保護するライトプロテクトの設定を、複数のセクタからなるセクタグループごとに行うことが可能であり、セクタグループごとにＩ／Ｏが割り振られている。書込みを保護するライトプロテクトに設定するセクタグループを選択すると、該当するセクタグループのＷＰ−ＣＡＭセルに保護データがプログラムされる。
【００８９】
まず、プログラムするＷＰ−ＣＡＭセルを設定したＣＡＭプログラム設定信号（Ｉ／Ｏ−０，１・・・１５）を各Ｉ／Ｏから入力する（ステップＳ１０）。プログラムするＷＰ−ＣＡＭセルに該当するＩ／Ｏには、プログラム実行を指示する情報“１”が入力され、その他のＩ／Ｏには、プログラムを行わないように指示する情報“０”が入力される（図１４の（Ｂ）参照）。
【００９０】
次に、ＷＰ−ＣＡＭセルに既に記憶済みのデータを読出して、プレリードする（ステップＳ１１）。プレリードしたデータを判定して、各ＷＰ−ＣＡＭセルのデータ書込み状態を判定する。既にデータが書き込まれ、プログラムされた状態の場合には、情報“０”が記憶されており、データが書き込まれていないイレース状態の場合には、情報“１”が記憶されている（図１４の（Ａ）参照）。
【００９１】
次に、Ｉ／Ｏ入力信号によって書込みに設定され、現在の状態がイレース状態にあるＷＰ−ＣＡＭセルを検出する（ステップＳ１２）。プレリードしたＷＰ−ＣＡＭセルのデータが“１”のイレース状態で、Ｉ／Ｏ入力が“１”のＷＰ−ＣＡＭセルを検出する。この判定には、図１１に示す期待値保持回路３２、データ比較回路３４を使用することもできる。
【００９２】
そして検出したＷＰ−ＣＡＭセルに対して、プログラムを実行する（ステップＳ１３）（例えば、図１４の（Ｃ）参照）。プログラムを実行すると、データが確かにＷＰ−ＣＡＭセルに書き込まれたか否かを判定するベリファイをベリファイ回路１３で実施する。この時、Ｉ／Ｏモードに設定されたインタフェースモード設定信号により、Ｉ／Ｏごとに設けられたスイッチ３５−（０）〜３５−（１５）をＯＦＦさせる。またインタフェースモード設定信号は、ＷＰビットセレクト回路３３にも入力され、スイッチ５４−（０）〜５４−（１５）をＯＮに設定する。
【００９３】
ＷＰビットセレクト回路３３は、各ＷＰ−ＣＡＭセルからプレリード時に読出したデータと、Ｉ／Ｏ入力した信号（Ｉ／Ｏ−０，１・・・１５）との論理積をＡＮＤゲート５３−（０）〜５３−（１５）で取り、ベリファイコントロール信号を生成する。Ｉ／Ｏ入力が“１”でプログラムに指定され、プレリードデータも“１”でイレースセルであった場合にハイレベルのベリファイコントロール信号がデータ比較回路３４に出力される。それ以外の場合には、ローレベルのベリファイコントロール信号がデータ比較回路３４に出力される。
【００９４】
期待値保持回路３２−（０）〜３２−（１５）は、入力したＩ／Ｏ−（０），（１）・・・（１５）の信号をそのままラッチしており、ラッチしたデータを所定タイミングでＤＩＮ０，１，２，・・・１５としてデータ比較回路３４−（０）〜３４−（１５）に出力する。このデータを期待値データと呼ぶ。また各データ比較回路３４−（０）〜３４−（１５）には、ＷＰビットセレクト回路３３からのベリファイコントロール信号も入力される。
【００９５】
データ比較回路３４−（０）〜３４−（１５）は、ＷＰ−ＣＡＭセルから読出したデータ、すなわちプログラム後のデータと、期待値保持回路３２−（０）〜３２−（１５）から読出した期待値とを比較する。このとき、ＷＰビットセクレト回路３３からローレベルのベリファイコントロール信号が入力されているデータ比較回路３４では、比較動作を行わずにハイレベルのマッチ信号を出力し、ベリファイを擬似的にパスさせる（図１４の（Ｄ）参照）。またＷＰビットセクレト回路３３からハイレベルのベリファイコントロール信号が入力されているデータ比較回路３４では、対応する期待値保持回路３２から入力した期待値データと、ＷＰ−ＣＡＭセルのプログラム後のデータとを比較する。Ｉ／Ｏ入力が“１”で「プログラムする」に設定され、プログラム後にＷＰ−ＣＡＭセルから読み込んだデータが“１”でイレース状態であった場合には、Ｆａｉｌを示すローレベル信号を判定回路１２に出力する。また、図１４（Ｄ）に示すようにＩ／Ｏ入力が“１”で、プログラム後にＷＰ−ＣＡＭセルから読み込んだデータが“０”でプログラム状態であった場合には、ベリファイがパスしたことを示すハイレベル信号を判定回路１２に出力する。
【００９６】
判定回路１２は、各データ比較回路３４−（０）〜３４−（１５）から出力されるマッチ信号がすべて“Ｈ”レベルの時に、データの書込み成功のベリファイ信号をコントローラに出力する。
【００９７】
このように本実施例は、プログラムの行われていないＣＡＭセルに割り当てられたデータ比較回路の比較結果を、擬似的にパスさせる制御を行うので、プログラムされたＣＡＭセルのプログラム結果をベリファイに反映させることができる。
【００９８】
次に、外部からセクタグループアドレス（ＳＧＡ）が指定された場合の動作を図１５に示すフローチャートと図１６を参照しながら説明する。なお、図１６に示すようにＷＰ−ＣＡＭのプログラムコマンドを実行するためのシーケンスは、５サイクルでコマンド認識の手順を行い、６サイクル目で情報を書き換える。すなわちプログラムしたいＳＧＡを指定して、合計６サイクルで１つのＳＧＡのプログラムを実行する。
【００９９】
まず、プログラムするＷＰ−ＣＡＭセルを設定したＷＰ−ＣＡＭアドレス指定信号を入力する。このＷＰ−ＣＡＭアドレス指定信号をデコーダで解析し（ステップＳ２０）、実際にプログラムするＷＰ−ＣＡＭセルに対応するアドレスを発生する。ベリファイ回路１３においても、ＷＰ−ＣＡＭアドレス指定信号をデコーダ５１でデコードする。そして、プログラムするＷＰ−ＣＡＭセルに対応する期待値保持回路３２と、データ比較回路３４とにハイレベルのベリファイコントロール信号を出力する。その他の期待値保持回路３２とデータ比較回路３４には、ローレベルのベリファイコントロール信号を出力する。
【０１００】
次に、デコード結果から割り出されたＷＰ−ＣＡＭセルに既に記憶されているデータを読出してプレリードする（ステップＳ２１）。プレリードしたデータを判定して、該当ＷＰ−ＣＡＭセルのデータ書込み状態を判定する。
【０１０１】
該当ＷＰ−ＣＡＭセルがイレース状態であると判定した場合には（ステップＳ２２／ＹＥＳ）、そのセルにデータを書込み、プログラム状態とする（ステップＳ２３）。該当ＷＰ−ＣＡＭセルがプログラム状態であった場合には（ステップＳ２２／ＮＯ）、すでにプログラム済みとして処理を終了する。
【０１０２】
ＷＰ−ＣＡＭセルへのプログラムが終了すると、データが確かにＷＰ−ＣＡＭセルに書き込まれたか否かを判定するベリファイをベリファイ回路１３で実施する。
【０１０３】
ＷＰビットセレクト回路３３と、Ｉ／Ｏに対応して設けられたデータ比較回路３４−（０）〜３４−（１５）とはそれぞれ配線で接続され、ＷＰビットセレクト回路３３からベリファイコントロール信号が出力されている。またアドレスモードの時には、インタフェースモード設定信号によってスイッチ３５−（０）〜３５−（１５）をＯＮさせている。このため、“Ｈ”レベルのベリファイコントール信号が出力される配線に接続された期待値保持回路３２だけベリファイコントロール信号が入力される。“Ｈ”レベルのベリファイコントール信号が入力される期待値保持回路３２は、該当するＷＰ−ＣＡＭセルがプログラムされた場合の期待値“０”を生成してデータ比較回路３４に出力する（ステップＳ２４）（図１６参照）。その他の“Ｌ”レベルのベリファイコントロール信号を入力する期待値保持回路３２は、期待値の生成を行わない（ステップＳ２４）。従って、データ比較回路３４へは期待値は出力されない。
【０１０４】
期待値保持回路３２から期待値“０”を入力したデータ比較回路３４は、該当するＷＰ−ＣＡＭセルに記憶されたデータを読出して、このデータＤＡＶｉと期待値“０”（図１６には／ＤＩＮｉと表記する）とを比較する。その他のデータ比較回路３４は、ベリファイコントール信号がローレベルであるので、強制的に“Ｈ”レベルのマッチ信号を出力する。すなわち、擬似的にベリファイをパスさせる（図１６参照）。
【０１０５】
判定回路１２は、各データ比較回路３４から出力されるマッチ信号がすべて“Ｈ”レベルの時に、データの書込み成功のベリファイ信号をコントローラに出力する（ステップＳ２５）。すなわち、実際にプログラムされたＷＰ−ＣＡＭセルのデータ比較結果を、ベリファイの結果として出力することができる。
【０１０６】
図１７に、図１１に示す期待値保持回路３２及びデータ比較回路３４と、判定回路１２の詳細な構成を示す。前述のようにデータ比較回路３４の出力をＷＰビットセレクト回路３３からのベリファイコントロール信号によって制御し、判定回路１２に出力している。また、ＣＡＭセルを書き換えるモード信号であるＣＡＭモード信号によりデータ比較回路３４の制御を行っている。さらにインタフェースモード設定信号により期待値保持回路３２の制御を行っている。
【実施例３】
【０１０７】
次に、図１８を参照しながら本発明の第３実施例を説明する。ＣＡＭ用セルアレイ４に書き込まれたＣＡＭデータは、パワーオン時、又はハードウェアリセット時にスイッチ６１をＯＮにしてリードされ、図１８に示すＳＲＡＭ等の揮発性メモリ１１に転送される。ＣＡＭデータの読出しの時には、この揮発性メモリ１１から読み出すことで通常用セルアレイ３のリードアクセスなどのスピードが遅れないようにしている。本実施例ではＣＡＭへのプログラム時、この揮発性メモリ１１に記憶しているデータを期待値データとして使用し、データ比較回路３４でＣＡＭセルから読出したデータと比較する。
【０１０８】
また、ＣＡＭ用セルアレイ４にプログラムしたデータのベリファイ以外の時には、スイッチ６２をＣＡＭモード信号によって切り換えて期待値保持回路３２とデータ比較回路３４とをつなぐ。これにより、通常用セルアレイ３のベリファイ時には、期待値保持回路３２を使用したベリファイも可能となる。
【０１０９】
図１９にＷＰビットセレクト回路３３の構成を示す。本実施例では、実施例２のＡＮＤゲート５３を設けずに、インタフェースモード設定信号によってＩ／Ｏモードに設定されると、Ｉ／Ｏ入力した信号Ｉ／Ｏ（０），（１），・・・（１５）をそのままベリファイコントロール信号として出力する。またアドレスモード時には、インタフェースモード設定信号によりスイッチ５４−（０）〜５４−（１５）をＯＦＦして、デコーダ５１からのデコード信号を出力する。デコーダ５１は、アドレスモードに設定されると、ＷＰ−ＣＡＭアドレス指定信号を入力してこの信号を解析し、プログラムに指定されたＷＰ−ＣＡＭセルを割り出す。そして、該当するＷＰ−ＣＡＭセルがプログラムに指定されたことを示すハイレベルのベリファイコントロール信号を揮発性メモリ１１に出力する。プログラムに指定されていないその他のＷＰ−ＣＡＭセルに対応するベリファイコントロール信号は、ローレベルで出力される。
【０１１０】
揮発性メモリ１１には、ＣＡＭセルから読出したデータを保持する２つの記憶領域がある。第１記憶領域は、ベリファイによりＣＡＭセルにそのデータが確かに記憶されていると証明されたデータを記憶する領域である。つまり、ＣＡＭセルへのプログラム（ベリファイを含む）完了後のＣＡＭセルアレイ内の不揮発性メモリ情報と同一性を保持する。従って、通常セルアレイ３の通常動作時にその動作上必要な回路などからＣＡＭセルのデータを要求された時には、この第１記憶領域のデータを出力する。また第２記憶領域は、一時的な記憶領域として使用され、プログラム時などにプレリードしたＣＡＭセルのデータを記憶しておく領域である。
【０１１１】
揮発性メモリ１１は、ＷＰビットセレクト回路３３からベリファイコントロール信号を入力すると、この信号により指示されたＷＰ−ＣＡＭセルの期待値として、プレリードにより読み込んだデータではなく図１８に示すように“０”を出力する。また、その他のローレベルのベリファイコントロール信号に該当するＷＰ−ＣＡＭセルのデータとして、プレリード時に第２記憶領域に記憶されたデータをそのまま出力（イニシャルパス）する。
【０１１２】
本実施例のＩ／Ｏモードに設定されＣＡＭ用セルアレイ４のプログラム時の動作手順を図２０に示すフローチャートと図２１を参照しながら説明する。まず、プログラムするＷＰ−ＣＡＭセルを設定したＣＡＭプログラム設定信号（Ｉ／Ｏ−０，１・・・１５）を各Ｉ／Ｏから入力する（ステップＳ３０）。プログラムするＷＰ−ＣＡＭセルに該当するＩ／Ｏには、プログラム実行を指示する情報“１”が入力され、その他のＩ／Ｏには情報“０”が入力される。
【０１１３】
次に、ＷＰ−ＣＡＭセルからデータをプレリードし、各ＷＰ−ＣＡＭセルのデータ書込み状態を判定する（ステップＳ３１）。既にデータが書き込まれ、プログラムされた状態の場合には、情報“０”が記憶されており、データが書き込まれていないイレース状態の場合には、情報“１”が記憶されている。
【０１１４】
次に、Ｉ／Ｏ入力信号によって書込みに設定され、現在の状態がイレース状態にあるＷＰ−ＣＡＭセルを検出する（ステップＳ３２）。プレリードしたＷＰ−ＣＡＭセルのデータが“１”のイレース状態で、Ｉ／Ｏ入力が“１”のＷＰ−ＣＡＭセルを検出する。また書込みに指定されたＷＰ−ＣＡＭセルが、すでにプログラム済みのものしかなかった場合には、この処理を終了し、エラーを出力する。なお、ここまでの処理はコントローラ８で行われる。
【０１１５】
次に検出したＷＰ−ＣＡＭセルに対して、プログラムを実行する（ステップＳ３３）。プログラムを実行すると、データが確かにＷＰ−ＣＡＭセルに書き込まれたか否かを判定するベリファイをベリファイ回路１３で実施する。この時、インタフェースモード設定信号により、Ｉ／Ｏごとに設けられたスイッチ５４−（０）〜５４−（１５）をＯＮに設定する。またデコーダ５１は、インバータ５２を介して入力されるインタフェースモード設定信号により動作を停止する。
【０１１６】
ＷＰビットセレクト回路３３は、入力したＩ／Ｏ−（０），（１）・・・（１５）の信号をそのまま揮発性メモリ１１にベリファイコントロール信号として出力する。すなわち、プログラムに指定されたＷＰ−ＣＡＭセルには、“１”がＩ／Ｏ入力されるため、ベリファイコントロール信号としてハイレベルの信号を出力する。その他のＷＰ−ＣＡＭセルに対応するベリファイコントロール信号はローレベルとなる。
【０１１７】
揮発性メモリ１１は、ハイレベルのベリファイコントロール信号で指定されるＷＰ−ＣＡＭセルのデータとして期待値“０”をデータ比較回路３４に出力する（図２１参照）。その他のＷＰ−ＣＡＭセルの期待値データは、第２記憶領域に記憶したプレリード時のデータをそのまま出力する（図２１参照）。
【０１１８】
各データ比較回路３４−（０）〜３４−（１５）は、各ＷＰ−ＣＡＭセルからプログラム後に読み込んだデータと、揮発性メモリ１１から読み込んだ期待値とを比較する（ステップＳ３４）。プログラムが行われていないＷＰ−ＣＡＭセルから読出したデータと期待値とは必ず一致するので、プログラムを行ったＷＰ−ＣＡＭセルのデータと期待値の一致検出が、そのままベリファイの判定結果となる。ＷＰ−ＣＡＭセルから読出したデータと期待値とが一致しなかった場合には（ステップＳ３５／ＮＯ）、もう一度プログラムからやり直す（ステップＳ３３）。また、ＷＰ−ＣＡＭセルから読出したデータと期待値とが一致した場合には（ステップＳ３５／ＹＥＳ）、一致を示すマッチ信号がデータ比較回路３４から判定回路１２に出力される。判定回路１２は、すべてのデータ比較回路３４からのマッチ信号が一致を示している場合には、ベリファイパスを示す信号をコントローラ８に出力する（ステップＳ３６）。ベリファイに成功すると、ＷＰ−ＣＡＭセルまたはセンスアンプからデータを読み込んで、揮発性メモリ１１の第１記憶領域に記憶し、正式なＷＰ−ＣＡＭセルのデータとする（ステップＳ３７）。
【０１１９】
本実施例も、プログラムの行われていないＣＡＭセルに割り当てられたデータ比較回路の比較結果を、擬似的にパスさせる制御を行うので、プログラムされたＣＡＭセルのプログラム結果をベリファイに反映させることができる。
【０１２０】
次に、図２２のフローチャート、及び図２３を参照しながらアドレスモード時の動作手順を説明する。まず、プログラムするＷＰ−ＣＡＭセルを設定したＷＰ−ＣＡＭアドレス指定信号を入力する。このＷＰ−ＣＡＭアドレス指定信号をデコーダで解析し（ステップＳ４０）、実際にプログラムするＷＰ−ＣＡＭセルに対応するアドレスを発生する。ベリファイ回路１３においても、ＷＰ−ＣＡＭアドレス指定信号をデコーダ５１でデコードする。そして、プログラムするＷＰ−ＣＡＭセルを指定するベリファイコントロール信号を揮発性メモリ１１に出力する。
【０１２１】
次に、デコード結果から割り出されたＷＰ−ＣＡＭセルに既に記憶されているデータを読出してプレリードする（ステップＳ４１）。プレリードしたデータを判定して、該当ＷＰ−ＣＡＭセルのデータ書込み状態を判定する。
【０１２２】
該当ＷＰ−ＣＡＭセルがイレース状態であると判定した場合には（ステップＳ４２／ＹＥＳ）、そのセルにデータを書込み、プログラム状態とする（ステップＳ４３）。該当ＷＰ−ＣＡＭセルがプログラム状態であった場合には（ステップＳ４２／ＮＯ）、すでにプログラム済みとして処理を終了する。
【０１２３】
以降、上述した図２０に示すフローチャートと同様に、検出したＷＰ−ＣＡＭセルに対してプログラムが行われ、ベリファイが実施される。なお、ベリファイ時に、揮発性メモリ１１はハイレベルのベリファイコントロール信号で指定されるＷＰ−ＣＡＭセルのデータとして期待値“０”をデータ比較回路３４に出力する（図２３参照）。その他のＷＰ−ＣＡＭセルの期待値データは、第２記憶領域に記憶したプレリード時のデータをそのまま出力する（図２３参照）。各データ比較回路３４−（０）〜３４−（１５）は、各ＷＰ−ＣＡＭセルからプログラム後に読み込んだデータと、揮発性メモリ１１から読み込んだ期待値とを比較して、比較動作を行う。ＷＰ−ＣＡＭセルからプログラム後に読み込んだデータと期待値とが一致すると、ベリファイパスを示す信号がコントローラ８に出力される。ベリファイに成功すると、ＷＰ−ＣＡＭセルまたはセンスアンプからデータを読み込んで、揮発性メモリ１１の第１記憶領域に記憶し、正式なＷＰ−ＣＡＭセルのデータとする。
【０１２４】
図２４に詳細な構成を示す。図２４に示す半導体装置は、ＣＡＭモード信号によりデータ比較回路３４の入力を切り換えている。すなわち、ＣＡＭモード時には、揮発性メモリ１１からの出力をデータ比較回路３４に出力し、通常時には、期待値保持回路３２の出力をデータ比較回路３４に出力している。
【０１２５】
上述した実施例は本発明の好適な実施例である。但しこれに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０１２６】
例えば、揮発性メモリ１１は、１つの記憶領域（第１記憶領域）のみであっても実現できる。ＣＡＭ用セルアレイ４に書き込まれたＣＡＭデータは、パワーオン時、又はハードウェアリセット時にスイッチ６１をＯＮにしてリードされ、揮発性メモリ１１（第１記憶領域）に転送される。プレリードは、この揮発性メモリ１１の情報を読み出すことでＷＰ−ＣＡＭセルのデータが“１”のイレース状態で、Ｉ／Ｏ入力が“１”のＷＰ−ＣＡＭセルを検出する。次に検出したＷＰ−ＣＡＭセルに対して、プログラムを実行する。プログラムを実行すると、データが確かにＷＰ−ＣＡＭセルに書き込まれたか否かを判定するベリファイをベリファイ回路１３で実施する。ＷＰビットセレクト回路３３は、揮発性メモリ１１にベリファイコントロール信号としてプログラムに指定されたＷＰ−ＣＡＭセルにはハイレベルの信号を出力し、その他のＷＰ−ＣＡＭセルに対応するベリファイコントロール信号はローレベルを出力する。揮発性メモリ１１は、ハイレベルのベリファイコントロール信号で指定されるＷＰ−ＣＡＭセルのデータとして第１記憶領域の読み出し出力部（図示せず）を第１記憶領域の情報とは無関係に期待値“０”をデータ比較回路３４に出力する。簡易的には、第１記憶領域の読み出し出力部にベリファイコントロール信号によるクランプ回路を付加して出力を“０”にクランプする。その他のＷＰ−ＣＡＭセルの期待値データは、第１記憶領域の情報を、前記クランプ部を作用させずにそのまま出力する。各データ比較回路は、各ＷＰ−ＣＡＭセルからプログラム後に読み込んだデータと、揮発性メモリ１１から読み込んだ期待値とを比較する。ベリファイが一致した場合には、ＷＰ−ＣＡＭセルまたはセンスアンプからスイッチ６１をＯＮにしてデータを読み込んで、揮発性メモリ１１の第１記憶領域に記憶し、正式なＷＰ−ＣＡＭセルのデータとする。
【０１２７】
尚、揮発性メモリ１１の素子構成は所謂スタティックメモリセルであっても良いし、周辺回路に適用される論理素子で構成されたラッチ回路などであってもよい。
【符号の説明】
【０１２８】
１  半導体装置、２  セルアレイ部、３  通常用セルアレイ、４  ＣＡＭ用セルアレイ、５  ローデコーダ、６  コラムデコーダ、７  コマンドレジスタ、８  コントローラ、９  プログラム電圧発生回路、１０  センスアンプ、１１  揮発性メモリ部、１２  判定回路、１３  ベリファイ回路、１４  データ入出力回路。
【図２】
2011170971.tif 000003
【図３】
2011170971.tif 000004
【図４】
2011170971.tif 000005
【図５】
2011170971.tif 000006
【図６】
2011170971.tif 000007
【図９】
2011170971.tif 000008
【図１０】
2011170971.tif 000009
【図１１】
2011170971.tif 000010
【図１２】
2011170971.tif 000011
【図１３】
2011170971.tif 000012
【図１５】
2011170971.tif 000013
【図１７】
2011170971.tif 000014
【図１８】
2011170971.tif 000015
【図１９】
2011170971.tif 000016
【図２０】
2011170971.tif 000017
【図２１】
2011170971.tif 000018
【図２２】
2011170971.tif 000019
【図２４】
2011170971.tif 000020
【図１】
2011170971.tif 000021
【図７】
2011170971.tif 000022
【図８】
2011170971.tif 000023
【図１４】
2011170971.tif 000024
【図１６】
2011170971.tif 000025
【図２３】
2011170971.tif 000026