(57)【特許請求の範囲】
【請求項１】
データラインを介して入力された入力データを書込指令信号に応じて書き込み、書き込んだ前記入力データを読出指令信号に応じて読出データとして読み出すメモリ部を有する半導体メモリであって、
前記データラインに自身の出力端子が接続されており、前記読出データを前記データラインに送出するデータ出力バッファと、
前記読出データに対して巡回冗長検査演算を施して得られたＣＲＣ値を示すＣＲＣ演算データを生成するＣＲＣ演算回路と、
前記ＣＲＣ演算データ及び前記読出データのうちの一方のデータを選択する選択部と、
前記入力データと前記一方のデータとが同一値であるか否かを判定し同一値であると判定した場合には書込正常を示すベリファイ結果信号を生成する一方、同一値ではないと判定した場合には書込エラーを示す前記ベリファイ結果信号を生成する比較部と、
ベリファイ指令信号を受けて前記データ出力バッファをディスエイブル状態に設定するベリファイ設定部と、を有することを特徴とする半導体メモリ。
【請求項２】
前記ベリファイ設定部は、前記ベリファイ指令信号を受けて前記データ出力バッファの前記出力端子をハイインピーダンス状態に設定することを特徴とする請求項１記載の半導体メモリ。
【請求項３】
前記選択部は、前記ベリファイ指令信号がデータベリファイの実行を促す場合には前記読出データを前記一方のデータとして選択する一方、前記ベリファイ指令信号がＣＲＣベリファイの実行を促す場合には前記ＣＲＣ演算データを前記一方のデータとして選択することを特徴とする請求項１又は２記載の半導体メモリ。
【請求項４】
前記ベリファイ結果信号を前記メモリ部に書き込むベリファイ結果書込部を有することを特徴とする請求項１〜３のいずれか１に記載の半導体メモリ。
【請求項５】
前記データ出力バッファは、スリーステートバッファであることを特徴とする請求項１〜４のいずれか１に記載の半導体メモリ。
【請求項６】
データラインを介して入力された入力データを書込指令信号に応じて書き込み、書き込んだ前記入力データを読出指令信号に応じて読出データとして読み出すメモリ部と、前記データラインに自身の出力端子が接続されており、前記読出データを前記データラインに送出するデータ出力バッファと、前記読出データに対して巡回冗長検査演算を施して得られたＣＲＣ値を示すＣＲＣ演算データを生成するＣＲＣ演算回路と、前記ＣＲＣ演算データ及び前記読出データのうちの一方のデータを選択する選択部と、前記入力データと前記一方のデータとが同一値であるか否かを判定し同一値であると判定した場合には書込正常を示すベリファイ結果信号を生成する一方、同一値ではないと判定した場合には書込エラーを示す前記ベリファイ結果信号を生成する比較部と、ベリファイ指令信号を受けて前記データ出力バッファをディスエイブル状態に設定するベリファイ設定部と、を有する半導体メモリのベリファイ方法であって、
書込用データを前記データラインに供給しつつ前記書込指令信号を前記半導体メモリに供給するステップと、
前記ベリファイ指令信号を前記半導体メモリに供給するステップと、
前記書込用データに前記巡回冗長検査演算を施して得られたＣＲＣ値を示すＣＲＣ期待値データ又は前記書込用データを前記データラインに供給すると共に前記読出指令信号を前記半導体メモリに供給するステップと、を有することを特徴とする半導体メモリのベリファイ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリ及びこの半導体メモリに対してデータ書込が正常になされたか否かを検証するベリファイ方法に関する。
【背景技術】
【０００２】
フラッシュメモリ等の不揮発性の半導体メモリにプログラムデータ等の各種データを書き込んで出荷する場合、そのデータ書き込み後に当該データが正常に書き込まれたか否かを判定するベリファイテストを実施する。
【０００３】
ここで、このようなベリファイテストを、自身に搭載されているメモリ制御用のＣＰＵ（Central Processing Unit）によるソフトウェア制御で実施するようにした半導体メモリが提案されている（例えば、特許文献１参照）。当該半導体メモリでは、データが書き込まれたフラッシュＲＯＭ部に対して、ＣＰＵが、フラッシュＲＯＭ部からデータを読み出し、引き続きこの読み出したデータと、書き込んだデータとが一致しているか否かの判定を行う。この際、書き込まれたデータと異なるデータが読み出された場合に、ＣＰＵは、書込エラーが生じていると判定し、その結果をフラッシュＲＯＭ部に記憶する。よって、データの書込及びベリファイテストの実行後、テスタは、半導体メモリ毎にフラッシュＲＯＭ部から書込エラー情報を読み出すことにより、この半導体メモリが出荷可能であるか否かを仕分けるのである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１４９２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した半導体メモリでは、ＣＰＵによるソフトウェア制御のみでベリファイテストを実施しているので、半導体メモリ内にベリファイテスト用のプログラムを書き込んでおく必要が有り、ベリファイテストに費やされる時間が長くなるという問題があった。
【０００６】
そこで、本発明では、ベリファイテストに費やされる時間の短縮を図ることが可能な半導体メモリ及び半導体メモリのベリファイ方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る半導体メモリは、データラインを介して入力された入力データを書込指令信号に応じて書き込み、書き込んだ前記入力データを読出指令信号に応じて読出データとして読み出すメモリ部を有する半導体メモリであって、前記データラインに自身の出力端子が接続されており、前記読出データを前記データラインに送出するデータ出力バッファと、前記読出データに対して巡回冗長検査演算を施して得られたＣＲＣ値を示すＣＲＣ演算データを生成するＣＲＣ演算回路と、前記ＣＲＣ演算データ及び前記読出データのうちの一方のデータを選択する選択部と、前記入力データと前記一方のデータとが同一値であるか否かを判定し同一値であると判定した場合には書込正常を示すベリファイ結果信号を生成する一方、同一値ではないと判定した場合には書込エラーを示す前記ベリファイ結果信号を生成する比較部と、ベリファイ指令信号を受けて前記データ出力バッファをディスエイブル状態に設定するベリファイ設定部と、を有する。
【００１０】
本発明に係る半導体メモリのベリファイ方法は、データラインを介して入力された入力データを書込指令信号に応じて書き込み、書き込んだ前記入力データを読出指令信号に応じて読出データとして読み出すメモリ部と、前記データラインに自身の出力端子が接続されており、前記読出データを前記データラインに送出するデータ出力バッファと、前記読出データに対して巡回冗長検査演算を施して得られたＣＲＣ値を示すＣＲＣ演算データを生成するＣＲＣ演算回路と、前記ＣＲＣ演算データ及び前記読出データのうちの一方のデータを選択する選択部と、前記入力データと前記一方のデータとが同一値であるか否かを判定し同一値であると判定した場合には書込正常を示すベリファイ結果信号を生成する一方、同一値ではないと判定した場合には書込エラーを示す前記ベリファイ結果信号を生成する比較部と、ベリファイ指令信号を受けて前記データ出力バッファをディスエイブル状態に設定するベリファイ設定部と、を有する半導体メモリのベリファイ方法であって、書込用データを前記データラインに供給しつつ前記書込指令信号を前記半導体メモリに供給するステップと、前記ベリファイ指令信号を前記半導体メモリに供給するステップと、前記書込用データに前記巡回冗長検査演算を施して得られたＣＲＣ値を示すＣＲＣ期待値データ又は前記書込用データを前記データラインに供給すると共に前記読出指令信号を前記半導体メモリに供給するステップと、を有する。
【発明の効果】
【００１１】
本発明においては、データラインを介して入力された入力データと、メモリ部から読み出された読出データ（又は読出データに基づくＣＲＣ値）とを比較し、その比較結果に基づきデータ書込が正常に為されたか否かを示すベリファイ結果信号を生成する比較部と、以下のベリファイ設定部を半導体メモリに設けるようにしている。ベリファイ設定部は、メモリ部から読み出された読出データを上記データラインに送出するデータ出力バッファを、ベリファイ指令信号を受けてディスエイブル状態に設定する。
【００１２】
かかる構成によれば、半導体メモリに対して、期待値を上記データラインに供給しつつ読出指令を供給することが可能となる。そこで、半導体メモリに対して、期待値を上記データラインに供給しつつ読出指令を供給することにより、上記した比較部にて、期待値と読出データ（又は読出データに基づくＣＲＣ値）とを比較するベリファイテストを実施させる。
【００１３】
よって、本発明によれば、ベリファイテストを行うにあたり、半導体メモリに対して期待値の供給と、データの読出とを同時に実施させることが可能となるので、ベリファイテストに費やされる時間を短縮することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係る半導体メモリ１００の構成を示すブロック図である。
【図２】比較回路１３の一例を示す回路図である。
【図３】半導体メモリ１００に対してデータ書込及びベリファイテストを実施する際のシステム構成を示す図である。
【図４】ベリファイ書込フローを示すフローチャートである。
【図５】本発明に係る半導体メモリ１００の他の構成を示すブロック図である。
【図６】図５に示す構成を有する半導体メモリ１００に対してデータ書込及びベリファイテストを実施する際のシステム構成を示す図である。
【図７】ＣＲＣベリファイ書込フローを示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【００１６】
図１は、本発明に係る半導体メモリ１００の概略構成を示すブロック図である。図１において、例えばフラッシュメモリ等の不揮発性メモリからなるメモリセルアレイ部１０には、夫々が１ビット又は複数ビット分のデータを記憶する複数のメモリセル（図示せぬ）が配置されている。尚、メモリセルアレイ部１０における記憶領域には少なくとも、データが記憶されるデータ領域ＤＡと、ベリファイ結果専用の記憶領域であるベリファイ結果領域ＴＡとが含まれる。
【００１７】
データ入力バッファ１１は、例えば１６ビットのデータラインＤＬを介して外部供給された１６ビットのデータＤＡＴを所望に増幅して得た入力データＤＩＮを、１６ビットのラインＩＬを介して書込駆動回路１２及び比較回路１３に供給する。尚、データ入力バッファ１１の出力端子と、書込駆動回路１２及び比較回路１３の各々とは、ラインＩＬによって電気的に接続されている。
【００１８】
書込駆動回路１２は、制御部２０から供給された書込指令信号ＷＲ及びアドレス信号ＡＤに応じて、入力データＤＩＮを、メモリセルアレイ部１０のデータ領域ＤＡ内における、上記アドレス信号ＡＤにて示される領域に書き込む。
【００１９】
読出駆動回路１４は、制御部２０から供給された読出指令信号ＲＤ及びアドレス信号ＡＤに応じて、メモリセルアレイ部１０に記憶されているデータを例えば１６ビット分毎の読出データＤＯＴとして読み出す。読出駆動回路１４は、当該読出データＤＯＴをラインＯＬを介して比較回路１３及びデータ出力バッファ１５に供給する。尚、データ出力バッファ１５の入力端子と、比較回路１３及び読出駆動回路１４の各々とは、ラインＯＬによって電気的に接続されている。
【００２０】
データ出力バッファ１５は、いわゆるスリーステートバッファであり、その出力端子は、データ入力バッファ１１の入力端子及びデータラインＤＬに電気的に接続されている。データ出力バッファ１５は、有効化を示す論理レベル０の出力イネーブル信号ＯＥＮが供給されている間は、読出データＤＯＴを増幅した１６ビットのデータをデータＤＡＴとして、データラインＤＬに送出する。
【００２１】
尚、データ出力バッファ１５は、無効化を示す論理レベル１の出力イネーブル信号ＯＥＮが供給されている間は、ディスエイブル状態に設定される。つまり、論理レベル１の出力イネーブル信号ＯＥＮにより、データ出力バッファ１５は、自身の出力端子をハイインピーダンス状態に設定する。
【００２２】
ベリファイテスト用のコマンドデコーダであるデコーダ１６は、外部供給されたテストコマンド信号ＴＣＭがベリファイ結果書込指令を示す場合には、ベリファイ結果書込信号ＶＷＲをベリファイ結果書込駆動回路１７に供給する。
【００２３】
デコーダ１６は、テストコマンド信号ＴＣＭがベリファイ指令を示す場合には、ベリファイモードを指定する論理レベル１の選択信号ＳＴをセレクタ１８に供給する。尚、デコーダ１６は、テストコマンド信号ＴＣＭがベリファイ結果書込指令及びベリファイ指令のどちらも示していない状態、例えば論理レベル０の状態となっている場合には、通常モードを指定する論理レベル０の選択信号ＳＴをセレクタ１８に供給する。
【００２４】
比較回路１３は、上記した読出データＤＯＴと入力データＤＩＮとを比較し、両者が同一のデータ値であるか否かを判定する。比較回路１３は、その判定結果に基づき"書込正常"又は"書込エラー"を表すベリファイ結果信号ＶＳを生成する。
【００２５】
図２は、比較回路１３の一例を示す回路図である。図２において、排他的論理和ゲートＥＸ０〜ＥＸ１５は、１６ビットの入力データＤＩＮ［０］〜ＤＩＮ［１５］と、１６ビットの読出データＤＯＴ［０］〜ＤＯＴ［１５］とを同一ビット桁同士で比較し、各ビット桁毎に両者が一致しているか否かを示す一致信号ｅ０〜ｅ１５を生成する。排他的論理和ゲートＥＸ０〜ＥＸ１５は、一致信号ｅ０〜ｅ１５をオアゲートＯＲ１に供給する。例えば、排他的論理和ゲートＥＸ０は、入力データＤＩＮ［０］と、読出データＤＯＴ［０］とが同一論理レベルである場合には論理レベル０となる一方、両者が互いに異なる論理レベルである場合には論理レベル１となる一致信号ｅ０をオアゲートＯＲ１に供給する。
【００２６】
オアゲートＯＲ１は、一致信号ｅ０〜ｅ１５が全て論理レベル０である場合にだけ論理レベル０となる一方、一致信号ｅ０〜ｅ１５のうちの少なくとも１つが論理レベル１となる場合には論理レベル１となる一致判定信号ＳＭをオアゲートＯＲ２に供給する。
【００２７】
オアゲートＯＲ２は、一致判定信号ＳＭ及び選択信号ＳＴが共に論理レベル０である場合にだけ論理レベル０となる一方、一致判定信号ＳＭ及び選択信号ＳＴのうちの少なくとも一方が論理レベル１である場合には論理レベル１となる信号をＲＳフリップフロップＲＳＦのＳ端子に供給する。
【００２８】
ＲＳフリップフロップＲＳＦは、オアゲートＯＲ２から論理レベル０の信号が供給されている間は、"書込正常"を表す論理レベル０のベリファイ結果信号ＶＳを生成する。一方、オアゲートＯＲ２から論理レベル１の信号が供給されると、ＲＳフリップフロップＲＳＦは、それ以降、Ｓ端子に供給される信号のレベルに拘わらず、"書込エラー"を表す論理レベル１に固定されたベリファイ結果信号ＶＳを生成する。ＲＳフリップフロップＲＳＦは、このベリファイ結果信号ＶＳを、オアゲートＯＲ２及びベリファイ結果駆動回路１７に供給する。
【００２９】
図２に示す構成により、比較回路１３は、上記した読出データＤＯＴと入力データＤＩＮとを１６ビット単位で比較し、両者が同一のデータ値であるか否かを判定する。比較回路１３は、読出データＤＯＴと入力データＤＩＮとが互いに同一のデータ値であると判定した場合には"書込正常"を表す例えば論理レベル０のベリファイ結果信号ＶＳを生成する。一方、読出データＤＯＴと入力データＤＩＮとが互いに異なるデータ値であると判定した場合には、比較回路１３は、"書込エラー"を表す例えば論理レベル１のベリファイ結果信号ＶＳを生成する。尚、比較回路１３は、ベリファイ結果信号ＶＳが一旦、"書込エラー"を表す論理レベル１の状態になった場合には、それ以降の比較判定で例え両者（ＤＩＮ、ＤＯＴ）が同一値であると判定されても、ベリファイ結果信号ＶＳを、"書込エラー"を表す論理レベル１の状態に維持する。
【００３０】
比較回路１３は、当該ベリファイ結果信ＶＳをベリファイ結果書込駆動回路１７に供給すると共に、このベリファイ結果信号ＶＳを外部に出力する。
【００３１】
ベリファイ結果書込駆動回路１７は、デコーダ１６から供給されたベリファイ結果書込信号ＶＷＲに応じて、ベリファイ結果信号ＶＳをメモリセルアレイ部１０のベリファイ結果領域ＴＡに書き込む。
【００３２】
セレクタ１８は、デコーダ１６から供給された選択信号ＳＴに基づき、制御部２０から供給された出力イネーブル信号ＯＥ、及び論理レベル１固定の信号のうちの一方を選択し、これを出力イネーブル信号ＯＥＮとしてデータ出力バッファ１５のイネーブル端子に供給する。すなわち、セレクタ１８は、選択信号ＳＴが通常モードを指定する論理レベル０である場合には、制御部２０から供給された出力イネーブル信号ＯＥを選択し、これを出力イネーブル信号ＯＥＮとしてデータ出力バッファ１５のイネーブル端子に供給する。一方、選択信号ＳＴがベリファイモードを指定する論理レベル１である場合には、セレクタ１８は、論理レベル１固定の信号を選択し、これを出力イネーブル信号ＯＥＮとしてデータ出力バッファ１５のイネーブル端子に供給する。
【００３３】
制御部２０は、外部供給された例えば、書込指令、読出指令又は出力イネーブル指令等の各種メモリ制御指令を含むコマンド信号ＣＭＤ、及びアドレスデータＡＤＤに応じて、データの書込又は読出を促す為の上記制御信号（ＯＥ、ＷＲ、ＲＤ、ＡＤ）を生成する。
【００３４】
例えば、コマンド信号ＣＭＤが書込指令を表す場合には、制御部２０は、外部供給されたアドレスデータＡＤＤに対応したアドレス信号ＡＤ、及び書込指令信号ＷＲを生成し、これらを書込駆動回路１２に供給する。コマンド信号ＣＭＤが読出指令を表す場合には、制御部２０は、アドレスデータＡＤＤに対応したアドレス信号ＡＤ、及び読出指令信号ＲＤを生成し、これらを読出駆動回路１４に供給すると共に、データの外部出力を促す論理レベル０の出力イネーブル信号ＯＥをセレクタ１８に供給する。
【００３５】
図３は、半導体メモリ１００に対してデータ書込及びベリファイテストを実施する際のシステム構成を示す図である。図３に示すように、半導体メモリ１００には、データライタ２００が接続される。データライタ２００は、半導体メモリ１００に書き込む書込用データが予め記憶されているメモリ２０１を有する。
【００３６】
データライタ２００は、図４に示すベリファイ書込フローに従って、半導体メモリ１００に対してデータ書込及びベリファイテストを行う。
【００３７】
図４において、データライタ２００は、先ず、メモリ２０１に記憶されている書込用データを半導体メモリ１００に書き込む（ステップＳ１）。すなわち、ステップＳ１において、データライタ２００は、メモリ２０１から書込用データを読み出し、当該書込用データを１６ビット毎のデータＤＡＴとして半導体メモリ１００に供給しつつ、書込指令を表すコマンド信号ＣＭＤを半導体メモリ１００に供給する。これにより、メモリセルアレイ部１０のデータ領域ＤＡに、上記した書込用データが１６ビット毎に順次、書き込まれる。
【００３８】
ここで、メモリ２０１に記憶されている全ての書込用データを半導体メモリ１００に供給し終えると、データライタ２００は、ベリファイ指令を表すテストコマンド信号ＴＣＭを半導体メモリ１００に供給する（ステップＳ２）。ステップＳ２の実行により、半導体メモリ１００のセレクタ１８は、論理レベル１固定の出力イネーブル信号ＯＥＮをデータ出力バッファ１５のイネーブル端子に供給する。これにより、データ出力バッファ１５はディスエイブル状態となり、例えば自身の出力端子がハイインピーダンス状態に設定される。
【００３９】
次に、データライタ２００は、メモリ２０１に記憶されている書込用データを再び読み出し、これを１６ビット毎のデータＤＡＴとして半導体メモリ１００に供給しつつ、半導体メモリ１００から書き込み済みのデータを読み出す（ステップＳ３）。すなわち、ステップＳ３において、データライタ２００は、書込用データを１６ビット毎のデータＤＡＴとして半導体メモリ１００に供給しつつ、読出指令を表すコマンド信号ＣＭＤを半導体メモリ１００に供給する。
【００４０】
ステップＳ３の実行により、半導体メモリ１００内では、データライタ２００から供給された期待値としての書込用データが入力データＤＩＮとして比較回路１３に供給される。更に、当該入力データＤＩＮが比較回路１３に供給されるタイミングに同期して、読出駆動回路１４がメモリセルアレイ部１０のデータ領域ＤＡから読み出した読出データＤＯＴを比較回路１３に供給する。これにより、比較回路１３は、データライタ２００から供給された書込用データを表す入力データＤＩＮと、メモリセルアレイ部１０から読み出された読出データＤＯＴとを比較する。この際、両者（ＤＩＮ、ＤＯＴ）が同一のデータ値である場合、比較回路１３は、"書込正常"を表す論理レベル０のベリファイ結果信号ＶＳを生成する。一方、入力データＤＩＮと、読出データＤＯＴとが一致していない場合、比較回路１３は"書込エラー"を表す論理レベル１のベリファイ結果信号ＶＳを生成する。尚、ベリファイ結果信号ＶＳが一旦、"書込エラー"を表す論理レベル１の状態になった場合には、比較回路１３は、それ以降の比較処理において例え両者（ＤＩＮ、ＤＯＴ）が同一値であると判定されても、ベリファイ結果信号ＶＳを、"書込エラー"を表す論理レベル１の状態に維持する。
【００４１】
ステップＳ３においてメモリ２０１に記憶されている全てのデータを半導体メモリ１００に供給し終えると、データライタ２００は、ベリファイ結果書込指令を表すテストコマンド信号ＴＣＭを半導体メモリ１００に供給する（ステップＳ４）。ステップＳ４の実行により、半導体メモリ１００のベリファイ結果書込駆動回路１７は、比較回路１３から供給されたベリファイ結果信号ＶＳの内容、つまり"書込正常"であるのか或いは"書込エラー"であるのかを示す情報をメモリセルアレイ部１０のベリファイ結果領域ＴＡに書き込む。
【００４２】
図４に示すベリファイ書込の終了後、テスタ（図示せぬ）は、半導体メモリ１００に対してメモリセルアレイ部１０のベリファイ結果領域ＴＡに記憶されているベリファイ結果を読み出し、そのベリファイ結果を参照することにより、半導体メモリ１００が出荷可能であるか否かを仕分ける。尚、半導体メモリ１００が出荷可能であるか否かを仕分けする仕分処理に関しては、上記したベリファイ書込終了後に半
導体メモリ１００から出力されたベリファイ結果信号ＶＳに基づいて直接行うようにしても良い。
【００４３】
以上、詳述したように、半導体メモリ１００は、データライン（ＤＬ）を介して入力された入力データを書込指令に応じて書き込み、書き込んだデータを読出指令に応じて読出データとして読み出すメモリ部（１０、１２、１４，１７）と、以下のデータ出力バッファ（１５）、比較部（１３）及びベリファイ設定部（１６、１８）を有する。この際、データ出力バッファは、自身の出力端子が上記したデータラインに接続されており、メモリ部から読み出された読出データをこのデータラインに送出する。比較部は、上記した入力データと読出データとが同一値であるか否かを判定し、同一値であると判定した場合には書込正常を示すベリファイ結果信号（ＶＳ）を生成する一方、同一値ではないと判定した場合には、書込エラーを示すベリファイ結果信号を生成する。ベリファイ設定部は、ベリファイ指令信号を受けて、出力バッファをディスエイブル状態に設定する。
【００４４】
ここで、半導体メモリ１００に対して、データが正常に書き込まれたか否かを検証するベリファイを行う場合には、ベリファイ設定部が、データ出力バッファをディスエイブル状態に設定し、例えばデータ出力バッファ自身の出力端子を強制的にハイインピーダンス状態に設定する。これにより、半導体メモリ１００に、期待値としての書込用データを上記データラインに供給しつつ読出指令を供給することが可能となる。そこで、半導体メモリ１００に、期待値としての書込用データを上記データラインに供給しつつ読出指令を供給することにより、上記した比較部にて、メモリ部から読み出された読出データと期待値とを比較するデータベリファイを実施させるのである。
【００４５】
ところで、通常のメモリにおけるデータの読出時には、データ出力バッファがイネーブル状態になるので、この際、データラインに期待値を供給することはできない。そこで、データ読出処理の後に、読み出された読出データと期待値との比較処理を行うことになる。
【００４６】
これに対して、図１に示す半導体メモリ１００では、半導体メモリ１００に対して期待値の供給とデータ読出とを同時に行うことができるので、ベリファイテストに費やされる時間を短縮することが可能となる。
【００４７】
尚、上記したベリファイ書込では、半導体メモリ１００にデータが正常に書き込まれたか否かを検証する為に、期待値としての書込用データと、半導体メモリ１００から読み出された読出データとを比較しているが、この期待値としては、ＣＲＣ（Cyclic Redundancy Check）値を用いるようにしても良い。つまり、半導体メモリ１００から読み出された読出データに基づいて算出されたＣＲＣ値と、当該期待値としてのＣＲＣ値とを比較することにより、データが正常に書き込まれたか否かを検証するのである。また、半導体メモリ１００として、図４に示すような書込用データと読出データとの比較を行うベリファイ（以下、データベリファイとも称する）と、上記したようなＣＲＣ値を期待値として用いたベリファイ（以下、ＣＲＣベリファイとも称する）と、を選択的に実行可能な構成を採用しても良い。
【００４８】
図５は、かかる点に鑑みて為された半導体メモリ１００の他の構成を示すブロック図である。尚、図５に示す構成では、デコーダ１６に代えてデコーダ２６を採用すると共に、ＣＲＣ演算回路２１及びセレクタ２２を新たに設けた点を除く他の構成は、図１に示すものと同一である。
【００４９】
図５において、ＣＲＣ演算回路２１は、ラインＯＬに接続されており、メモリセルアレイ部１０から読み出された読出データＤＯＴを当該ラインＯＬを介して取り込む。ＣＲＣ演算回路２１は、この読出データＤＯＴのデータ値に基づき巡回冗長検査演算を行ってＣＲＣ値を求め、かかるＣＲＣ値を示すＣＲＣ演算データＣＶをセレクタ２２に供給する。
【００５０】
デコーダ２６は、デコーダ１６と同様に、テストコマンド信号ＴＣＭがベリファイ結果書込指令を示す場合にはベリファイ結果書込信号ＶＷＲをベリファイ結果書込駆動回路１７に供給する。また、デコーダ２６は、テストコマンド信号ＴＣＭがベリファイ指令を示す場合には、ベリファイモードを指定する論理レベル１の選択信号ＳＴをセレクタ１８に供給する。尚、デコーダ２６は、テストコマンド信号ＴＣＭがベリファイ結果書込指令及びベリファイ指令のどちらも示していない状態、例えば論理レベル０の状態となっている場合には、通常モードを指定する論理レベル０の選択信号ＳＴをセレクタ１８に供給する。
【００５１】
尚、デコーダ２６は、テストコマンド信号ＴＣＭがベリファイ指令を示す場合には、このベリファイ指令がＣＲＣベリファイの実行を促すものか、或いはデータベリファイの実行を促すものであるのかを判別する。この際、デコーダ２６は、ベリファイ指令がデータベリファイの実行を促すものである場合には論理レベル０の選択信号ＳＳをセレクタ２２に供給する一方、ＣＲＣベリファイの実行を促すものである場合には、論理レベル１の選択信号ＳＳをセレクタ２２に供給する。
【００５２】
セレクタ２２は、当該選択信号ＳＳに基づき、メモリセルアレイ部１０から読み出された読出データＤＯＴと、ＣＲＣ演算回路２１によって算出されたＣＲＣ演算データＣＶとのうちの一方を選択し、これを比較回路１３に供給する。すなわち、セレクタ２２は、データベリファイを表す論理レベル０の選択信号ＳＳが供給された場合には、読出データＤＯＴを比較回路１３に供給する。一方、ＣＲＣベリファイを表す論理レベル１の選択信号ＳＳが供給された場合には、セレクタ２２は、ＣＲＣ演算データＣＶを比較回路１３に供給する。
【００５３】
以下に、図５に示す構成を有する半導体メモリ１００に対して、製品集荷前に実施されるデータ書込及びベリファイテストについて説明する。
【００５４】
図６は、当該半導体メモリ１００に対して、データ書込及びベリファイテストを実施する際のシステム構成を示す図である。尚、図６に示すシステム構成は、基本的に図３に示されるものと同一である。ただし、データライタ２００に搭載されているメモリ２０１には、半導体メモリ１００に書き込む書込用データの他に、当該書込用データに対して予め巡回冗長検査演算を施して求めたＣＲＣ値を示すＣＲＣ期待値データが記憶されている。
【００５５】
ここで、データライタ２００は、期待値としての書込用データと、半導体メモリ１００から読み出された読出データとを比較するデータベリファイを行う場合には、図４に示すベリファイ書込フローに従ったベリファイ書込処理を実行する。
【００５６】
一方、ＣＲＣベリファイを行う場合には、データライタ２００は、図７に示すＣＲＣベリファイ書込フローに従って、当該半導体メモリ１００に対してデータ書込及びベリファイテストを行う。
【００５７】
図７において、データライタ２００は、先ず、メモリ２０１に記憶されている書込用データを半導体メモリ１００に書き込む（ステップＳ１１）。すなわち、ステップＳ１１において、データライタ２００は、メモリ２０１から書込用データを読み出し、当該書込用データを１６ビット毎のデータＤＡＴとして半導体メモリ１００に供給しつつ、書込指令を表すコマンド信号ＣＭＤを半導体メモリ１００に供給する。これにより、メモリセルアレイ部１０のデータ領域ＤＡに、書込用データが書き込まれる。
【００５８】
ここで、メモリ２０１に記憶されている全ての書込用データを半導体メモリ１００に供給し終えると、データライタ２００は、ＣＲＣベリファイの実行を促すベリファイ指令を表すテストコマンド信号ＴＣＭを半導体メモリ１００に供給する（ステップＳ１２）。ステップＳ１２の実行により、半導体メモリ１００のセレクタ１８は、論理レベル１の出力イネーブル信号ＯＥＮをデータ出力バッファ１５のイネーブル端子に供給する。これにより、データ出力バッファ１５がディスエイブル状態となり、例えば自身の出力端子がハイインピーダンス状態に設定される。更に、当該ステップＳ１２の実行により、半導体メモリ１００のセレクタ２２は、ＣＲＣ演算回路２１によって算出されたＣＲＣ演算データＣＶを比較回路１３に供給する。
【００５９】
次に、データライタ２００は、メモリ２０１に記憶されているＣＲＣ期待値データを読み出し、これをデータＤＡＴとして半導体メモリ１００に供給しつつ、半導体メモリ１００のメモリセルアレイ部１０のデータ領域ＤＡに記憶されているデータを読み出す（ステップＳ１３）。すなわち、ステップＳ１３において、データライタ２００は、期待値としてのＣＲＣ値を示すＣＲＣ期待値データをデータＤＡＴとして半導体メモリ１００に供給しつつ、半導体メモリ１００から書き込み済みのデータを読み出す読出指令を表すコマンド信号ＣＭＤを、半導体メモリ１００に供給する。
【００６０】
ステップＳ１３の実行により、半導体メモリ１００内では、データライタ２００から供給されたＣＲＣ期待値データを表す入力データＤＩＮがデータ入力バッファ１１を介して比較回路１３に供給される。更に、この入力データＤＩＮが比較回路１３に供給されるタイミングに同期して、メモリセルアレイ部１０から読み出された読出データＤＯＴに対して巡回冗長検査演算を施して得られたＣＲＣ演算データＣＶが比較回路１３に供給される。これにより、比較回路１３は、データライタ２００から供給されたＣＲＣ期待値データと、ＣＲＣ演算データＣＶとを比較する。この際、ＣＲＣ期待値データとＣＲＣ演算データＣＶとが互いに同一値である場合、比較回路１３は、"書込正常"を表す論理レベル０のベリファイ結果信号ＶＳを生成する。一方、ＣＲＣ期待値データとＣＲＣ演算データＣＶとが同一値ではない場合、比較回路１３は"書込エラー"を表す論理レベル１のベリファイ結果信号ＶＳを生成する。
【００６１】
そして、メモリ２０１に記憶されているＣＲＣ期待値データを半導体メモリ１００に供給し終えると、データライタ２００は、ベリファイ結果書込指令を表すテストコマンド信号ＴＣＭを半導体メモリ１００に供給する（ステップＳ１４）。ステップＳ１４の実行により、半導体メモリ１００のベリファイ結果書込駆動回路１７は、比較回路１３から供給されたベリファイ結果信号ＶＳの内容、つまり"書込正常"であるのか或いは"書込エラー"であるのかを示す情報をメモリセルアレイ部１０のベリファイ結果領域ＴＡに書き込む。
【００６２】
図７に示すＣＲＣベリファイ書込の終了後、テスタは、各半導体メモリ１００に対してメモリセルアレイ部１０のベリファイ結果領域ＴＡに記憶されているベリファイ結果を読み出し、そのベリファイ結果を参照することにより、半導体メモリ１００が出荷可能であるか否かを仕分ける。尚、半導体メモリ１００が出荷可能であるか否かを仕分けする仕分処理に関しては、上記したベリファイ書込終了後に半導体メモリ１００から出力されたベリファイ結果信号ＶＳに基づいて行うようにしても良い。
【００６３】
以上、詳述したように、図５に示す半導体メモリ１００は、図１に示す半導体メモリ１００と同様に、メモリ部（１０、１２、１４，１７）、データ出力バッファ（１５）、比較部（１３）及びベリファイ設定部（１６、１８）を有する。更に、図５に示す半導体メモリ１００には、メモリ部から読み出された読出データに対して巡回冗長検査演算を施してＣＲＣ演算データを生成するＣＲＣ演算回路（２１）と、ＣＲＣ演算データ及び読出データのうちの一方のデータを選択する選択部（２２）とが設けられている。この際、比較部では、この選択部で選択為れた方のデータと入力データとが同一値であるか否かを判定し、同一値である場合には書込正常を示すベリファイ結果信号を生成する一方、同一値ではない場合には書込エラーを示すベリファイ結果信号を生成する。
【００６４】
すなわち、図５に示す構成では、ＣＲＣ演算回路２１及びセレクタ２２を設けることにより、期待値として書込用データを用いたデータベリファイ（図４）と、当該期待値としてＣＲＣ値を用いたＣＲＣベリファイ（図７）とのうちの一方を任意に選択して実行可能にしているのである。
【００６５】
ところで、ＣＲＣベリファイテストでは、読出データ（ＤＯＴ）に基づきＣＲＣ演算回路２１が算出したＣＲＣ値（ＣＶ）と、データライタ２００から供給された期待値としてのＣＲＣ値とを比較することにより、書込が正常に為されたか否かを検証している。この際、ＣＲＣ値を表すビット数は書込用データのビット数よりも少ない。よって、ＣＲＣベリファイテストでは、書込用データと読出データとを比較するデータベリファイテストに比して、データライタ２００から半導体メモリ１００に送出するデータ量を削減できるので、ベリファイ処理に費やされる時間の短縮化を図ることが可能となる。
【００６６】
尚、上記実施例では、半導体メモリ１００に対して専用のデータライタ２００によってベリファイ書込を実施しているが、必ずしも専用のデータライタを用いる必要はない。要するに、半導体メモリ１００に対してデータ書込及び読出制御を行える情報機器であれば、この情報機器をデータライタ２００に代えて用いることが可能である。
【符号の説明】
【００６７】
１０              メモリ部
１１              データ入力バッファ
１３              比較回路
１５              データ出力バッファ
１６、２６        デコーダ
１８              セレクタ
１００            半導体メモリ
２００            データライタ
【図１】
0006594712.tif 000002
【図２】
0006594712.tif 000003
【図３】
0006594712.tif 000004
【図４】
0006594712.tif 000005
【図５】
0006594712.tif 000006
【図６】
0006594712.tif 000007
【図７】
0006594712.tif 000008