(57)【要約】【課題】ＥＣＣ回路内蔵型で、メモリテストに要するコストを軽減できる半導体装置を提供することにある。【解決手段】データ用メモリ１０、ＥＣＣコードを格納するコード用メモリ１１、当該ＥＣＣコードを生成しエラー検知を行なうＥＣＣ回路１２を内蔵する半導体装置１が開示されている。ＥＣＣ回路１２は、メモリテスト時に、テストパターンから指定の条件でのエラー検知機能を有するコード情報を生成してコード用メモリ１１に出力する。【選択図】      図１
2005228039.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するデータ用メモリと、
前記データに対応するエラー訂正用コードを格納するコード用メモリと、
前記データ用メモリのテストを実行するためのテストパターンを前記データとして前記データ用メモリに出力し、かつ、このテストパターンからエラー検知機能を有するコード情報を生成して、前記エラー訂正用コードとして前記コード用メモリに出力するエラー訂正回路と
を具備したことを特徴とする半導体装置。
【請求項２】
前記データ用メモリに書き込まれた前記テストパターンと、前記コード用メモリに書き込まれた前記コード情報とを読み出すことにより、前記データ用メモリと前記コード用メモリとを同時にテストするテスト回路を更に具備することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記エラー訂正回路は、前記コード用メモリから読み出された前記コード情報に基づいてエラーを検知し、
前記テスト回路は、前記エラー訂正回路のエラー検知結果に基づいて、前記データ用メモリ及び前記コード用メモリのテストを実行することを特徴とする請求項２に記載の半導体装置。
【請求項４】
前記エラー訂正回路は、行列の各行成分の和が奇数となるように構成されたハミング行列を使用して、前記コード情報を生成することを特徴とする請求項１から請求項３のいずれか１項に記載の半導体装置。
【請求項５】
前記エラー訂正回路は、前記テストパターンの全ビットが１の場合、このテストパターンから生成されるコード情報の全ビットが１となるように、前記コード情報を生成することを特徴とする請求項１から請求項３のいずれか１項に記載の半導体装置。
【請求項６】
前記エラー訂正回路は、前記コード情報の全ビットが前記テストパターンの入力に応じて０から１または１から０に遷移するように、前記コード情報を生成することを特徴とする請求項１から請求項３のいずれか１項に記載の半導体装置。
【請求項７】
前記エラー訂正回路は、前記テストパターンと、このテストパターンから生成されるコード情報とにおいて、同一アドレス中の任意のＮビット（Ｎは２以上の自然数）が前記テストパターンの入力に応じてＮビットの組み合わせの全パターンを網羅するように、前記コード情報を生成することを特徴とする請求項１から請求項３のいずれか１項に記載の半導体装置。
【請求項８】
前記エラー訂正回路は、前記テストパターンの指定の１ビットを除く全ビットが１のときに、このテストパターンから生成されるコード情報の全ビットが１となるように、前記コード情報を生成することを特徴とする請求項１から請求項３のいずれか１項に記載の半導体装置。
【請求項９】
データを格納するデータ用メモリと、前記データに対応するエラー訂正用コードを格納するコード用メモリとを含む半導体装置に適用するメモリテスト方法であって、
前記データ用メモリのテストを実行するためのテストパターンを生成するステップと、
前記テストパターンを前記データ用メモリに出力するステップと、
前記テストパターンからエラー検知機能を有するコード情報を生成して、前記エラー訂正用コードとして前記コード用メモリに出力するステップと、
前記データ用メモリに書き込まれた前記テストパターンと、前記コード用メモリに書き込まれた前記コード情報を読み出すことにより、前記データ用メモリと前記コード用メモリとを同時にテストするステップと
を有する手順を実行するメモリテスト方法。
【請求項１０】
前記テストを実行するステップは、前記コード用メモリから読み出された前記コード情報の全ビットが０から１または１から０に遷移するか否かをチェックすることを特徴とする請求項９に記載のメモリテスト方法。
【請求項１１】
前記テストを実行するステップは、前記テストパターンと、このテストパターンから生成される前記コード情報とにおいて、同一アドレス中の任意のＮビット（Ｎは２以上の自然数）が前記テストパターンの入力に応じてＮビットの組み合わせの全パターンを網羅すしているか否かをチェックすることを特徴とする請求項９に記載のメモリテスト方法。
【請求項１２】
前記テストを実行するステップは、前記テストパターンの指定の１ビットを除く全ビットが１のときに、このテストパターンから生成される前記コード情報の全ビットが１となるか否かをチェックすることを特徴とする請求項９に記載のメモリテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には半導体装置に関し、特に、メモリを含む半導体装置、及び当該メモリをテストするメモリテスト方法に関する。
【背景技術】
【０００２】
一般的に、半導体記憶装置には、エラー訂正回路（ＥＣＣ回路）を内蔵するＥＣＣ回路内蔵型半導体装置がある。このＥＣＣ回路内蔵型の半導体記憶装置では、データを記憶するためのデータ用メモリ、及びＥＣＣ（エラー訂正コード）を記憶するためのコード用メモリの両方が搭載されている（例えば、特許文献１を参照）。
【０００３】
このような半導体記憶装置において、内蔵されているテスト回路及びＥＣＣ回路を利用して、メモリのテストを行なうメモリテスト方法がある（例えば、特許文献２を参照）。
【０００４】
この先行技術文献に記載されているメモリテスト方法は、メモリの読出し速度のテスト時に、１ビット反転回路によって、書き込みデータ及び誤り訂正コードの中で、所定の１ビットを反転させてエラービットを含むデータをメモリセルに書き込む。そして、読出し時においてＥＣＣ回路によって、データのエラー訂正を行なうようにテスト条件を設定する方法である。
【特許文献１】米国特許第６，２９５，６１７（２００１年）
【特許文献２】特開２００１−３５１３８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のメモリテスト方法では、データ用メモリとコード用メモリのそれぞれに対して、テストを実行する必要がある。このため、同容量のデータ用メモリのみの単体メモリのテストに比べて、テスト処理に要する時間が長くなる。また、データ用メモリとコード用メモリのそれぞれに対応するテスト回路が必要となる。従って、テストコストの増大化を招く要因になっている。
【０００６】
そこで、本発明の目的は、ＥＣＣ回路内蔵型で、データ用メモリとコード用メモリの両方を搭載した半導体装置において、メモリテストに要する時間とテスト回路を削減することにより、メモリテストに要するコストを軽減できる半導体装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の観点は、ＥＣＣ回路を利用して、データ用メモリのテストパターンからエラー検知機能を有するコード情報を生成して、当該テストパターンとコード情報を使用して、データ用メモリとコード用メモリのテストを一括して行なうメモリテスト方法を実現できる半導体装置に関する。
【０００８】
本発明の観点に従った半導体装置は、データを格納するデータ用メモリと、前記データに対応するエラー訂正用コードを格納するコード用メモリと、前記データ用メモリのテストを実行するためのテストパターンを前記データとして前記データ用メモリに出力し、かつ、このテストパターンからエラー検知機能を有するコード情報を生成して、前記エラー訂正用コードとして前記コード用メモリに出力するエラー訂正回路とを備えたものである。
【発明の効果】
【０００９】
本発明の半導体装置であれば、データ用メモリとコード用メモリのテストを一括して行なうことができるため、テスト処理時間の短縮化及びテスト回路の削減化を実現し、結果としてメモリテストに要するコストの軽減を図ることができる。
【発明を実施するための最良の形態】
【００１０】
以下図面を参照して、本発明の実施形態を説明する。
【００１１】
（半導体装置の構成）
図１は、本実施形態に関する半導体装置の要部を示すブロック図である。
【００１２】
本実施形態の半導体装置１は、データを格納するデータメモリ１０と、エラー訂正コード（ＥＣＣ）であるコードデータ（冗長コード）を格納するコードメモリ１１とを有する。このデータメモリ１０及びコードメモリ１１としては、例えば、ＤＲＡＭ、ＳＲＡＭ、フラッシュメモリ、ＦｅＲＡＭ、ＭＲＡＭ等が挙げられる。また、半導体装置１は、半導体記憶装置以外に、マイクロプロセッサなどのＬＳＩチップでもよい。
【００１３】
さらに、半導体装置１は、エラー訂正回路（ＥＣＣ回路）１２と、インターフェース（Ｉ／Ｆ）１３と、テスト回路１４とを内蔵している。
【００１４】
ＥＣＣ回路１２は、後述するように、エラー検知機能を有するハミング行列（またはハミングコード：Hamming code）を使用して、コードメモリ１１に格納するコードデータ（コード情報、以下ＥＣＣと表記することがある）を生成するロジックを有する。
【００１５】
また、ＥＣＣ回路１２は、データメモリ１０またはコードメモリ１１から読出したデータ（テストパターンまたはＥＣＣ）からエラービットを検知するロジックを含む。
【００１６】
テスト回路１４は、データメモリ１０のメモリテストを行なうためのテストパターンを生成するロジックを含み、インターフェース１３を介してＥＣＣ回路１２との間でデータの入出力を実行する。テスト回路１４は、データメモリ１０に書き込まれたテストパターンを読出して、メモリテストを実行するＢＩＳＴ（Built-In Self Test）ロジック回路である。
【００１７】
つまり、テスト回路１４は、ＥＣＣ回路１２及びインターフェース１３を介して、テストパターンをデータメモリ１０に書き込み、このテストパターンから生成されたコードデータをコードメモリ１１に書き込む。そして、テスト回路１４は、データメモリ１０に書き込まれたテストパターンを読み出し、コードメモリ１１に書き込まれたコードデータを読み出す。これにより、テスト回路１４は、期待値としての書き込みデータとメモリ出力としての読み出しデータとを比較し、メモリセルの不良ビットを検出する。
【００１８】
（メモリテスト方法）
本実施形態の半導体装置１は、ＢＩＳＴロジック回路であるテスト回路１４により、データメモリ１０のメモリテストを実行するときに、コードメモリ１１のメモリテストを同時に実行する。
【００１９】
これを実現するために、ＥＣＣ回路１２は、テスト回路１４により生成されたテストパターンをデータメモリ１０に書き込むときに、当該テストパターンに対応するコードデータを生成する。ＥＣＣ回路１２は、適切なハミング行列Ｈ（ハミングコード）を使用して、コードデータ（ＥＣＣ）を生成する生成ロジックにより、テストパターンからエラー検知機能を有するコードデータを生成して、コードメモリ１１に出力する（図２を参照）。
【００２０】
なお、以下では、便宜上、コードデータとしてハミング行列Ｈ（ハミングコード）を使用して生成されたコード情報（Ｓ）を用いた場合を説明するが、当該コードデータはハミングコード以外のロジックを使用して生成されたものでもよい。
【００２１】
テスト回路１４は、データメモリ１０のメモリテストを実行するときに、ＥＣＣ回路１２は、コードメモリ１１から読出したコードデータ（ＥＣＣ）からエラービットを検知し、当該検知結果をテスト回路１４に出力する。
【００２２】
以上要するに、データメモリ１０に対してテストパターンを書き込むときに、ＥＣＣ回路１２により、当該テストパターンであるデータに対応するコードデータを生成し、コードメモリ１１に書き込む。これにより、テスト回路１４は、データメモリ１０のテストを実行するときに、ＥＣＣ回路１２を使用して、コードメモリ１１に対してデータメモリ１０と等価なテストを実行することになる。
【００２３】
以下、コードメモリ１１に対するテストの具体的内容を説明する。
【００２４】
（１）データを格納するデータメモリ１０及びコードデータを格納するコードメモリ１１において、各メモリ１０，１１の全アドレスにバックグラウンドデータを書き込む。バックグラウンドデータとしては、例えば、繰り返しデータ（1010…），（0101…）や、同一データ（1111…），（0000…）などが用いられる。
【００２５】
（２）次に、各メモリ１０，１１のテスト対象アドレス（最初のアドレス）を特定し、そのテスト対象アドレスからデータを読み出す。そして、読み出されたデータとバックグラウンドデータ（期待値）とを比較して、各メモリ１０，１１のテスト対象アドレスのテストを行う。
【００２６】
（３）続いて、データメモリ１０のテスト対象アドレスうち、少なくとも一部のデータビットに対してバックグラウンドデータを反転させたデータを、テストパターンとしてデータメモリ１０のテスト対象アドレスに書き込む。このとき、コードメモリ１１のテスト対象アドレスには、このテストパターンからＥＣＣ回路１２により生成されたコードデータが書き込まれる。
【００２７】
次に、各メモリ１０，１１のテスト対象アドレスからデータを読み出し、書き込んだデータと比較することにより、各メモリ１０，１１のテスト対象アドレスのテストを行う。この後、テスト対象アドレスを変えながら、上記（２）及び（３）の動作を繰り返し行う。
【００２８】
上記テスト動作においては、データメモリ１０をテストするためのテストパターンを入力するときに、コードメモリ１１中の全ビットが０→１→０（あるいは１→０→１）と遷移する。これにより、テスト回路１４は、０／１の書き込み（または読み出し）テストによる固定不良チェックと、データ遷移時に発生する一部のデータ依存不良チェックとを実行することができる。
【００２９】
データメモリ１０またはコードメモリ１１のエラー検知は、ＥＣＣ回路１２により実行される。テスト回路１４は、ＥＣＣ回路１２から出力されるエラー検知結果に基づいて、テストパターンの書き込み直後に発生し、また再現性のあるエラービットを初期不良として判定する。
【００３０】
ここで、Ｎビット以上（Ｎは２以上の自然数）のエラー検知機能を有するハミング行列を用いる場合、テストパターン入力のときに、データとコードデータに対して、任意のＮビットの組み合わせでの全パターンをチェックする必要がある。
【００３１】
以下に、ハミング行列が２ビット以上のエラー検知機能を有する場合について、図２を参照しながら説明する。
【００３２】
図２は、本実施形態に係るテストパターンの具体例を示す図である。なお、図２では、便宜上、データビットが８ビットの場合を例に挙げて説明し、コードビットについては省略する。ここで、データビットのうち、アドレス５のビットが“１”固定不良であり、アドレス７のビットが“０”固定不良であるとする。
【００３３】
図２の（１）に示すように、データパターンが（1010…）の場合、アドレス５の“１”固定不良については検出できるが、アドレス７の“０”固定不良については検出できない。また、図２の（２）に示すように、データパターンが（0101…）の場合、アドレス７の“０”固定不良については検出できるが、アドレス５の“１”固定不良については検出できない。一方、テストパターンにおいて、アドレス５を“０”とし、アドレス７を“１”とすると、アドレス５とアドレス７との両方の固定不良を検出できる。
【００３４】
このように、ハミング行列が２ビット以上のエラー検知機能を有する場合、テストパターン入力のときに、データとコードデータに対して、任意の２ビットの組み合わせ（00,01,01,11）での全パターンをチェックすることで、１ビット不良と２ビット不良の区別が可能になる。但し、1ビットエラー訂正方式であるＳＥＣ（single-error-correcting）方式の場合を除く。
【００３５】
（ＥＣＣ回路１２の構成）
前述したように、ＥＣＣ回路１２は、テスト回路１４により生成されたテストパターンをデータメモリ１０に書き込むときに、当該テストパターンに対応するコードデータを生成する。ＥＣＣ回路１２は、適切なハミング行列Ｈ（ハミングコード）を使用する生成ロジックを含む。コードメモリ１１には、エラー検知機能を有する当該コードデータが書き込まれる。
【００３６】
図３は、ＥＣＣ回路１２の生成ロジックの原理を示す概念図である。
【００３７】
ＥＣＣ回路１２は、図３に示すように、ハミング行列Ｈを使用して、コードデータＳを生成する。ここで、データメモリ１０に格納されるデータ（テストパターン）のデータビット幅をｎビット、コードメモリ１１に格納されるコードデータのビット幅をｍビットとしたとき、データビットｗとコードビットＳとの関係は、下記式（１）に示すように表される。
【００３８】
Ｓ＝Ｈ＊ｗＴ…（１）
なお、Ｓはコードビット（１×ｍ）行列、ｗはデータビット（１×ｎ）行列として表されて、ハミング行列Ｈは（ｎ×ｍ）行列となる。Ｔは転置行列を意味する。
【００３９】
さらに、ハミング行列Ｈの行列要素は、“１”または“０”のどちらかで構成されている。
【００４０】
ここで、ハミング行列（ハミングコード）を決定するための条件として、便宜的に条件０から条件３として定義する。
【００４１】
条件０としては、１ビット訂正機能と２ビット検知機能を有するＳｅｃ−Ｄｅｄ（single error correcting and double error detecting code）方式の条件に相当する。
【００４２】
この条件０を満たすためには、ハミング行列の各列成分の和が奇数となる必要がある。ここで、コードメモリ１１に書き込まれたコードビット行列Ｓｏと、コードビット行列Ｓｏをコードメモリ１１から読み出したコードビット行列Ｓを想定すると、「Ｓ−Ｓｏ」は、下記式（２）に示すように表される。
【００４３】
なお、ｗはデータメモリ１０に書き込まれたデータビット行列であり、ｗｏはデータメモリ１０から読み出したデータビット行列である。
【００４４】
Ｓ−Ｓｏ＝Ｈ＊ｗＴ−Ｈ＊ｗｏＴ＝Ｈ＊（ｗＴ−ｗｏＴ）…（２）
式（２）より、エラービット数がゼロのとき、「Ｓ−Ｓｏ」の列成分の和はゼロとなる。エラービット数が１ビットのときは、ハミング行列Ｈの各列成分の和が奇数であるため、「Ｓ−Ｓｏ」の列成分の和は奇数となる。また、エラービット数が２ビットのときは、ハミング行列Ｈの各列成分の和が奇数であり、「Ｓ−Ｓｏ」の列成分の和が奇数と奇数との和となるため、「Ｓ−Ｓｏ」の列成分の和は偶数となる。このように、条件０とは、ハミング行列の各列成分の和が奇数となることを意味する。
【００４５】
次に、条件１としては、ハミング行列の各行成分の和が３以上の奇数となる条件である。
【００４６】
さらに、条件２としては、所定のテストパターンに対して、データメモリ１０とコードメモリ１１の全セルが“０”→“１”、“１”→“０”と遷移することである。
【００４７】
また、条件３としては、データメモリ１０とコードメモリ１１の同一アドレスにおいて、データビット行列ｗとコードビット行列Ｓに含まれる任意の２ビットが、「００，０１，１０，１１」の全パターンを網羅していることである。
【００４８】
（メモリテストの具体例）
図４は、本実施形態のハミング行列Ｈの具体例を示す。図５は、テストパターンの具体例として、簡便でエラー検出率の高いマーチテストに適用可能なテストパターンを示す。図６は、マーチテスト（マーチング動作）の手順を示す。
【００４９】
この具体例では、データメモリ１０に格納されるデータｗのビット幅が８ビットで、入出力（Ｉ／Ｏ）のビット幅が２ビットの場合を想定する。
【００５０】
ＥＣＣ回路１２が使用するハミング行列Ｈは、図４に示すように、（ｎ×ｍ＝８×５）行列からなる。即ち、コードメモリ１１に格納されるコードデータのビット幅は、５ビットの場合である。従って、データビットｗは、（１×８）行列として表されて、コードビットＳは、（１×５）行列として表される。
【００５１】
次に、図５及び図６を参照して、具体的なメモリテストとしてマーチテストを適用した場合について説明する。
【００５２】
マーチテストとは、メモリの特定のアドレスに対し、異なるテストパターンを用いて書き込み及び読み出しを複数回実行する。そして、この特定のアドレスに対する複数回の書き込み及び読み出しを、アドレスを変更しながら、順次繰り返すテストである。このアドレスを変更しながら、テストを繰り返す一連の動作をマーチング動作と呼ぶ。
【００５３】
ここで、本具体例では、「８ビット×内部アドレスｎ」のメモリが、「２ビット×外部アドレス４ｎ」としてアクセスされる場合について説明する。図５は、テストパターンとして、データメモリ１０に入力されるデータ入力パターンｗと、コードメモリ１１に書き込まれるコード出力パターンＳの具体例を示す。図５は、メモリの１つの特定アドレス（内部アドレス１）に注目した際のテストパターンのデータ変化を示している。
【００５４】
テスト回路１４は、図６に示すように、初期状態（ステップＳ１０）、待機状態（ステップＳ１１）を経て、テスト（マーチング動作）を開始する（ステップＳ１２）。
【００５５】
まず、テスト回路１４は、状態１としてメモリの初期化を実行する（ステップＳ１３〜Ｓ１５）。即ち、データメモリ１０及びコードメモリ１１の全アドレスに０を書き込む。
【００５６】
ここで、テストは、外部アドレスでマーチング動作を実行する。この場合、外部アドレスのアドレス１から順に２ビットづつ「１１」と書き換えると、内部アドレスのアドレス１に注目した場合に、８ビットのうち下位２ビットづつが「１１」に書き換えられる。従って、状態１で、メモリの初期化を実行するために、データメモリ１０及びコードメモリ１１の全アドレスに「００」を書き込む。
【００５７】
次に、テスト回路１４は、状態２で、メモリの１つのアドレス（外部アドレスで表現）から「００」を読み出す動作を実行する（ステップＳ１６）。次に、当該アドレスに対して、「１１」を書き込む動作を実行する（ステップＳ１７）。さらに、当該アドレスから「１１」を読み出す動作を実行する（ステップＳ１８）。
【００５８】
このようなテストパターン「１１」についての一連の動作（マーチング動作）を、メモリの全アドレスに対して実行する。また、テストパターン「０１」についても同様に、メモリの全アドレスに対してマーチング動作を実行する。
【００５９】
具体的には、データメモリ１０からデータ入力パターンｗを読出して、これに対応するコード出力パターンＳをコードメモリ１１に書き込む。そして、コードメモリ１１から読出したコード出力パターンＳをチェックする。
【００６０】
ここで、テスト回路１４は、前述の一連のマーチング動作の条件１として、データ入力パターンｗが全て“０”の場合に、コード出力パターンＳが全て“０”（ＡＬＬ０）であるかチェックする（図５を参照）。これにより、０／１の書き込み（または読み出し）時の固定不良チェックを実行できる。
【００６１】
更に、テスト回路１４は、マーチング動作の条件２として、データ入力パターンｗに対して、コードメモリ１１中の全ビットが“０”→“１”、または“１”→“０”と遷移するか否かをチェックする。これにより、データ遷移不良をチェックできる。
【００６２】
次に、テスト回路１４は、マーチング動作の条件３として、データメモリ１０とコードメモリ１１の同一アドレス中の任意の２ビットの組み合わせが、（00,01,01,11）の全パターンを網羅しているか否かをチェックする（図５の矢印５０，５１を参照）。これにより、ＥＣＣコードによる２ビット不良をチェックできる。
【００６３】
最後に、テスト回路１４は、マーチング動作の条件４として、ハミング行列Ｈにおいて、行列（ｎ，ｍ）が（奇数、偶数）あるいは（偶数、奇数）の組み合わせの場合、データ入力パターンｗが（０１１…１）で、コード出力パターンＳが全て“１”（ＡＬＬ１）であるかチェックする（図５を参照）。
【００６４】
最後に、テスト回路１４は、マーチング動作の条件４として、ハミング行列Ｈにおいて、行列（ｎ，ｍ）が（奇数、偶数）あるいは（偶数、奇数）の組み合わせの場合、データ入力パターンｗが（０１１…１）で、コード出力パターンＳが全て“１”（ＡＬＬ１）であるかチェックする（図５を参照）。
【００６５】
以上のような各条件１〜４での一連の動作であるマーチング動作を完了することにより、メモリテストの終了となる（ステップＳ１９）。
【００６６】
ここで、マーチング動作は、前述のハミングコードの決定条件として定義した条件０から条件３に対して、便宜的に条件４に関係するテスト動作である。
【００６７】
条件４とは、ハミング行列Ｈの指定の1ビットを除く各行成分の和が奇数となるように行列を構成することである。これによって、データビットｗ=(00…0)または(011…1)のときに、コードビットＳ=(00…0)または(11…1)となる。
【００６８】
ハミング行列Ｈにおいて、行列（ｎ，ｍ）が（奇数、偶数）あるいは（偶数、奇数）の組み合わせの場合、前述の条件０と条件１を同時に満たすことは数学的に不可能である。そのため、テストパターンの入力であるデータビットｗ(11..1)の中で、1ビットだけ“０”を入力（例：(011…1)）としたときに、コードメモリ１１に格納されるコードビットＳが(11…1)となるようなハミングコードを作成する。これにより条件０を満たしたまま、コードビットＳ=(00…0)または(11…1)にすることが可能になる。
【００６９】
なお、図５では、テストパターンの入力であるデータビットｗの中で、最上位ビットだけ“０”を入力した場合を説明したが、“０”を入力するビットは最上位ビットに限られない。ただし、データビットｗの最上位ビットは他のビットに比較してデータの書換え回数が少ないと予想されるため、半導体装置の信頼性上、“０”を入力するビットは最上位ビットとすることが望ましい。
【００７０】
以上のように本実施形態のＥＣＣ回路１２及びテスト回路１４を内蔵する半導体装置１であれば、ＥＣＣ回路１２により適切なハミング行列を使用して、条件０から条件３（または条件４を含む）を満たすハミングコードを生成して、コードデータとしてコードメモリ１１に格納する。そして、テストパターンであるデータビット行列ｗを使用して、データメモリ１０をテストするテストシーケンス（ＢＩＳＴ）において、コードメモリ１１から読出したコードデータに基づいてコードメモリ１１のテストを同時に実行することが可能となる。
【００７１】
従って、データメモリ１０とコードメモリ１１をそれぞれ別のテストシーケンスでテストする場合と比較して、テスト時間の短縮化を図ることができる。更に、データメモリ１０とコードメモリ１１をそれぞれテストするための各テスト回路を、１個のテスト回路に統合することが可能となる。これにより、結果としてメモリテストのコストを削減することができる。
【００７２】
また、上記実施形態においては、テスト回路１４が、テストの対象となるデータメモリ１０及びコードメモリ１１が配置されるチップ内に形成される場合を示したが、テスト回路１４は、そのチップとは異なるチップに形成されてもよい。また、テスト回路１４を省略し、外部テスタを用いてデータメモリ１０及びコードメモリ１１のテストを行ってもよい。
【００７３】
更に、上記実施形態においては、ＥＣＣ回路１２が、データメモリ１０及びコードメモリ１１が配置されるチップ内に形成される場合を示したが、ＥＣＣ回路１２は、そのチップとは異なるチップに形成されてもよい。例えば、データメモリ１０及びコードメモリ１１とＥＣＣ回路１２とが異なるチップに形成され、これらのチップがＰＣＢ（Printed Circuit Board）基板上に配置されてもよい。
【００７４】
更に、上記実施形態においては、メモリテストとしてマーチテストを適用した場合を示したが、メモリテストはマーチテストに限られない。
【００７５】
更に、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施形態に関する半導体装置の要部を示すブロック図。
【図２】本実施形態に関するテストパターンの具体例を示す図。
【図３】本実施形態に関するＥＣＣ回路の生成ロジックの原理を示す概念図。
【図４】本実施形態に関するハミング行列の具体例を示す図。
【図５】本実施形態に関するテストパターンの具体例を示す図。
【図６】本実施形態に関するメモリテストの手順の一例を示す図。
【符号の説明】
【００７７】
１…半導体装置、１０…データメモリ、１１…コードメモリ、１２…ＥＣＣ回路、
１３…インターフェース、１４…テスト回路。
【図１】
2005228039.tif 000003
【図２】
2005228039.tif 000004
【図３】
2005228039.tif 000005
【図４】
2005228039.tif 000006
【図５】
2005228039.tif 000007
【図６】
2005228039.tif 000008