(57)【特許請求の範囲】
【請求項１】
メモリ回路と該メモリ回路をテストするセルフテスト回路とを備えた半導体装置であって、
前記セルフテスト回路は、前記メモリ回路から出力される出力データ信号の各クロックサイクルにおけるビット値に対する期待値ビット列に含まれる一部のビット値を反転させたビット列に含まれるビット値を各クロックサイクルにおいてとる擬期待値信号を生成するとともに、各クロックサイクルにおける該出力データ信号と該擬期待値信号の比較を可能とする比較イネーブル信号を生成するテストパターン発生手段と、
前記メモリ回路から出力された前記出力データ信号、ならびに、前記テストパターン発生手段から出力された前記擬期待値信号および前記比較イネーブル信号を受信し、前記比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて前記出力データ信号と前記擬期待値信号とを比較し、比較結果を表す比較結果信号を生成する比較手段と、
前記比較手段から前記比較結果信号を受信し、受信した前記比較結果信号の各クロックサイクルにおけるビット値を保持するエラー保持手段と、を備えることを特徴とする半導体装置。
【請求項２】
前記比較手段は、前記出力データ信号と前記擬期待値信号の間の排他的論理和を求め、該排他的論理和と前記比較イネーブル信号の間の論理積を前記比較結果信号として生成することを特徴とする、請求項１に記載の半導体装置。
【請求項３】
前記エラー保持手段は、前記比較結果信号の各クロックサイクルにおけるビット値を保持するシフトレジスタであることを特徴とする、請求項１または２に記載の半導体装置。
【請求項４】
前記テストパターン発生手段から出力されたホールドイネーブル信号、および、前記比較手段から出力された前記比較結果信号を受信し、該ホールドイネーブル信号が活性状態である場合には、前記比較結果信号の変化の有無を表すビット値を保持し、それ以外の場合には、前記比較結果信号を保持することなく前記エラー保持手段に出力するフラグ保持手段をさらに備えることを特徴とする、請求項１ないし３のいずれか１項に記載の半導体装置。
【請求項５】
前記フラグ保持手段は、フリップフロップ、ＡＮＤゲートおよびＯＲゲートを備え、
前記ＡＮＤゲートは、前記ホールドイネーブル信号と前記フリップフロップの出力信号の論理積を生成し、
前記ＯＲゲートは、前記比較結果信号と前記ＡＮＤゲートの出力信号の論理和を生成し、
前記フリップフロップは、前記ＯＲゲートの出力信号をラッチすることを特徴とする、請求項４に記載の半導体装置。
【請求項６】
第１のメモリ回路から出力された第１の出力データ信号、ならびに、前記テストパターン発生手段から出力された前記擬期待値信号および前記比較イネーブル信号を受信し、前記比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて該第１の出力データ信号と前記擬期待値信号とを比較し、比較結果を表す第１の比較結果信号を生成する第１の比較手段と、
第２のメモリ回路から出力された第２の出力データ信号、ならびに、前記テストパターン発生手段から出力された前記擬期待値信号および前記比較イネーブル信号を受信し、前記比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて該第２の出力データ信号と前記擬期待値信号とを比較し、比較結果を表す第２の比較結果信号を生成する第２の比較手段と、
前記テストパターン発生手段から出力されたホールドイネーブル信号、および、前記第１の比較手段から出力された前記第１の比較結果信号を受信し、該ホールドイネーブル信号が活性状態である場合には、前記第１の比較結果信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、前記第１の比較結果信号をそのまま出力する第１のフラグ保持手段と、
前記ホールドイネーブル信号、および、前記第２の比較手段から出力された前記第２の比較結果信号を受信し、前記ホールドイネーブル信号が活性状態である場合には、前記第２の比較結果信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、前記第２の比較結果信号をそのまま出力する第２のフラグ保持手段と、
前記第１のフラグ保持手段の出力信号と前記第２のフラグ保持手段の出力信号との論理和を求めて前記エラー保持手段に出力するＯＲゲートと、を備えることを特徴とする、請求項１に記載の半導体装置。
【請求項７】
前記第１の比較手段は、前記第１の出力データ信号と前記擬期待値信号の間の排他的論理和を求め、該排他的論理和と前記比較イネーブル信号の間の論理積を前記第１の比較結果信号として生成し、
前記第２の比較手段は、前記第２の出力データ信号と前記擬期待値信号の間の排他的論理和を求め、該排他的論理和と前記比較イネーブル信号の間の論理積を前記第２の比較結果信号として生成することを特徴とする、請求項６に記載の半導体装置。
【請求項８】
前記第１のフラグ保持手段は、第１のフリップフロップ、第１のＡＮＤゲートおよび第１のＯＲゲートを備え、
前記第１のＡＮＤゲートは、前記ホールドイネーブル信号と前記第１のフリップフロップの出力信号の論理積を生成し、
前記第１のＯＲゲートは、前記第１の比較結果信号と前記第１のＡＮＤゲートの出力信号の論理和を生成し、
前記第１のフリップフロップは、前記第１のＯＲゲートから出力された信号をラッチし、
前記第２のフラグ保持手段は、第２のフリップフロップ、第２のＡＮＤゲートおよび第２のＯＲゲートを備え、
前記第２のＡＮＤゲートは、前記ホールドイネーブル信号と前記第２のフリップフロップの出力信号の論理積を生成し、
前記第２のＯＲゲートは、前記第２の比較結果信号と前記第２のＡＮＤゲートの出力信号の論理和を生成し、
前記第２のフリップフロップは、前記第２のＯＲゲートから出力された信号をラッチすることを特徴とする、請求項６または７に記載の半導体装置。
【請求項９】
前記比較手段は、前記メモリ回路の各データ出力端子から出力された出力データ信号と前記擬期待値信号との排他的論理和を求める複数のＸＯＲゲートと、
前記複数のＸＯＲゲートの出力信号の論理和を求めるＯＲゲートと、
前記ＯＲゲートの出力信号と前記比較イネーブル信号との論理積を求め、前記比較結果信号として出力するＡＮＤゲートと、を備えることを特徴とする、請求項１ないし５のいずれか１項に記載の半導体装置。
【請求項１０】
前記比較手段は、複数の比較・フラグ保持回路を備え、
前記複数の比較・フラグ保持回路は、それぞれ、前記メモリ回路の各データ出力端子から出力された出力データ信号と前記擬期待値信号との排他的論理和を求めるＸＯＲゲートと、
前記ＸＯＲゲートの出力信号と前記比較イネーブル信号との論理積を求めるＡＮＤゲートと、
前記テストパターン発生手段から出力されたホールドイネーブル信号、および、前記ＡＮＤゲートの出力信号を受信し、該ホールドイネーブル信号が活性状態である場合には、該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、該出力信号を保持することなく出力する第１のフラグ保持手段と、を備え、
前記複数の比較・フラグ保持回路のそれぞれの第１のフラグ保持手段の出力信号の論理和を前記比較結果信号とすることを特徴とする、請求項１または３に記載の半導体装置。
【請求項１１】
前記複数の比較・フラグ保持回路のそれぞれのフラグ保持手段から出力された信号の論理和を求めるＯＲゲートと、
前記テストパターン発生手段から出力されたホールドイネーブル信号、および、前記ＯＲゲートの出力信号を受信し、該ホールドイネーブル信号が活性状態である場合には、該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を前記比較結果信号として出力し、それ以外の場合には、該出力信号を保持することなく前記比較結果信号として出力する第２のフラグ保持手段と、を備えることを特徴とする、請求項１０に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、特に、メモリ回路およびメモリ回路をテストするセルフテスト回路を備えた半導体装置に関する。
【背景技術】
【０００２】
メモリ回路を備えた半導体装置には、メモリ回路をテストするためのセルフテスト回路（ＭＢＩＳＴ回路、Ｍｅｍｏｒｙ  Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ−Ｔｅｓｔ回路）が内蔵されることが多くなっている。
【０００３】
特許文献１には、ＲＡＭおよびＲＡＭの救済を行うＢＩＳＴ回路が搭載された半導体装置が記載されている。図１７は、特許文献１に記載された半導体装置の構成を示す回路図である。図１７を参照すると、ＢＩＳＴ回路に含まれる比較回路１４０において、ＲＡＭの読出しデータと期待値データは、ＸＯＲ（排他的論理和）ゲートＧ１、Ｇ２により比較され、故障が存在する場合には、ＸＯＲ回路Ｇ１、Ｇ２の少なくとも一方の出力は「１」となる。ＸＯＲゲートＧ１、Ｇ２の出力はＯＲ（論理和）ゲートＧ２０により、１ビットのエラー信号に変換される。エラー信号は、ＯＲゲートＧ２１とセレクタを介してフリップフロップＦＦ２０の入力データとなる。
【０００４】
フリップフロップＦＦ２０に「１」が取り込まれた場合には、半導体装置のテストの判定結果はＦＡＩＬ（不良品）となる。特許文献１に記載された半導体装置（図１７）では、一旦、フリップフロップＦＦ２０に「１」が取り込まれる（すなわち、ＦＡＩＬを示す状態になる）と、ＯＲゲートＧ２１により、「１」が保持される。
【０００５】
なお、図１７の回路図には明示されていないものの、比較／非比較を制御するための比較イネーブル信号が、パターン発生器１２０から比較回路１４０に供給される。比較イネーブル信号により、フリップフロップＦＦ２０へのデータの取り込みの有無が制御される。
【０００６】
図１８は、特許文献１に記載された半導体装置の構成を概略的に示すブロック図である。図１８を参照すると、半導体装置は、ＲＡＭ１１２と、ＲＡＭ１１２のテストとするためのＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ−Ｔｅｓｔ）回路とを備える。ＢＩＳＴ回路は、テストパターン発生回路（Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）１１１、比較回路Ｕ０〜Ｕ３、ＯＲゲートＧ２０、ＡＮＤゲート２０、ＯＲゲートＧ２１、および、フリップフロップＦＦ２０を備える。比較回路Ｕ０〜Ｕ３は、それぞれ、ＸＯＲゲートＧ１を有する。
【０００７】
テストパターン発生回路１１１は、ＲＡＭテストパターンおよび期待値ＥＸＰＤＡＴＡを生成する。フェイルフラグ保持回路（図１８のＯＲゲートＧ２１、フリップフロップＦ２０）は、比較回路（図１８のＸＯＲゲートＧ１、ＯＲゲートＧ２０およびＡＮＤゲートＡ２０）によって検出されたエラー信号ＥＲＲを保持する。
【０００８】
図１９は、図１８の半導体装置の動作を示す波形である。図１９は、４つのアドレスａ（０）〜ａ（３）に対する連続読み出しを行う場合を示す。エラー信号ＥＲＲ（ｒ（０）〜ｒ（３））のうちの１つでも１となると、ＯＲゲートＧ２１によりファイルフラグ信号ＦＡＩＬＦＬＡＧは最終的に１となる（ｆ（３）＝１）。したがって、図１８の半導体装置によると、ＲＡＭ１１２の故障を検出することができる。
【０００９】
このように、特許文献１に記載されたＢＩＳＴ回路は、ＲＡＭ１１２から読み出されたデータと、テストパターン発生回路１１１により生成された期待値とを比較する比較回路（ＸＯＲゲートＧ１、ＯＲゲートＧ２０、ＡＮＤゲートＡ２０）を有し、比較回路はデータのビット列に含まれるビットと期待値のビット列に含まれるビットとを比較する。フェイルフラグ保持回路（ＯＲゲートＧ２１、フリップフロップＦ２０）は、最初の不一致を検出すると、不一致を示すフラグを保持する。かかるＢＩＳＴ回路によると、データのビット列と期待値のビット列との間で、少なくともいずれか１つのビットが一致しないことを検出することが可能となる。
【００１０】
なお、関連技術として、特許文献２において、ＲＡＭの故障解析機能を備えた半導体装置が記載されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００６−２３６５５１号公報（図２）
【特許文献２】特開２００１−０３５１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以下の分析は、本発明者によってなされたものである。
【００１３】
特許文献１に記載された半導体装置においては、セルフテスト回路（ＢＩＳＴ回路）自身もメモリ回路（ＲＡＭ）と同一の半導体装置上にあるため、電源電圧、温度条件等のテスト条件により誤判定が生じるおそれがある。この誤判定は、メモリ回路を備えた半導体装置の良品と不良品の区別を困難にするため、何らかの対策が必要とされる。
【００１４】
例えば、ＢＩＳＴ回路自身に想定以上の遅延（サイクル越え、サイクルずれ）が存在する場合には、特許文献１に記載された半導体装置（図１７、図１８）では、ＲＡＭのアクセスタイムの異常（サイクル越え、サイクルずれ）を検出できないおそれがある。
【００１５】
図２０は、特許文献１に記載された半導体装置において、このような誤判定が生じる場合について説明するためのタイミング図である。
【００１６】
例えば、低電圧条件でのＲＡＭテスト時に、ＢＩＳＴ回路の期待値ＥＸＰＤＡＴＡが、ＸＯＲゲートＧ１にサイクル越えで到達し、比較イネーブル信号ＣＯＭＰＥＮが、ＡＮＤゲートＡ２０にサイクル越えで到達する場合、図２０の太実線矢印で示すようになる。
【００１７】
この条件下で、ＲＡＭ１１２のアクセスタイムがサイクルを超えると太破線矢印のようになる。このとき、フェイルフラグ信号ＦＡＩＬＦＬＡＧは、正常動作時と比較して１サイクル遅れで動作する。ＲＡＭ１１２の機能が正常である場合には、アクセスタイムのサイクル越えの有無に関係なく、最終的にフェイルフラグ信号ＦＡＩＬＦＬＡＧとして残るのは、同じ値（ｆ（３）＝０）となる。したがって、図２０のような条件では、ＲＡＭ１１２のアクセスタイムの異常が検出できず、誤判定となる。
【００１８】
このように、特許文献１に記載されたＢＩＳＴ回路によると、ＲＡＭ１１２のテスト結果の信頼性が低く、製造テスト用の条件（電圧、温度等）の決定も困難となるおそれがある。
【００１９】
このように、特許文献１に記載された半導体装置では、電圧低下等による信号遅延による誤判定への対策が施されていない。すなわち、ＲＡＭ１１２からの出力データ信号の遅延が判定ポイント（例えば、動作クロックの立ち上がり）を超えるような故障（サイクルずれの故障）があっても、セルフテスト回路が生成する比較イネーブル信号や期待値信号が１サイクル遅れる場合には、判定結果は良品（ＰＡＳＳ）となり、誤判定される。
【００２０】
したがって、特許文献１に記載された半導体装置によると、ＲＡＭの読み出しデータ、期待値データ、比較イネーブル信号が同時に遅延するような状態を、不良品（ＦＡＩＬ）として判定することができない。
【００２１】
一般に、半導体装置では製品仕様として、動作周波数が定義されている。一例として、電源電圧が２Ｖであり、動作周波数が１００ＭＨｚである製品仕様を想定する。１００ＭＨｚは、クロックサイクルタイムで１０ｎｓｅｃに相当する。上記のＲＡＭの読み出しデータの遅延が１１ｎｓｅｃであれば、不良品である。しかし、特許文献１に記載された半導体装置の比較回路１４０によると、期待値データ、比較イネーブル信号の遅延が１１ｎｓｅｃであれば（サイクル越え、サイクルずれ）、ＦＦ２０が「１」を取り込むことがないので、良品（ＰＡＳＳ）であると判定される。すなわち、ＲＡＭの出力データの遅延時間不良に関しては、誤判定するおそれがある。
【００２２】
そこで、メモリ回路からセルフテスト回路へ出力された出力データ信号、または、セルフテスト回路内における比較イネーブル信号もしくは期待値信号におけるクロックサイクルずれを検出できるようにすることが課題となる。
【課題を解決するための手段】
【００２３】
本発明の一視点に係る半導体装置は、
メモリ回路と該メモリ回路をテストするセルフテスト回路とを備えた半導体装置であって、
前記セルフテスト回路は、前記メモリ回路から出力される出力データ信号の各クロックサイクルにおけるビット値に対する期待値ビット列に含まれる一部のビット値を反転させたビット列に含まれるビット値を各クロックサイクルにおいてとる擬期待値信号を生成するとともに、各クロックサイクルにおける該出力データ信号と該擬期待値信号の比較を可能とする比較イネーブル信号を生成するテストパターン発生手段と、
前記メモリ回路から出力された前記出力データ信号、ならびに、前記テストパターン発生手段から出力された前記擬期待値信号および前記比較イネーブル信号を受信し、前記比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて前記出力データ信号と前記擬期待値信号とを比較し、比較結果を表す比較結果信号を生成する比較手段と、
前記比較手段から前記比較結果信号を受信し、受信した前記比較結果信号の各クロックサイクルにおけるビット値を保持するエラー保持手段と、を備える。
【発明の効果】
【００２４】
本発明に係る半導体装置によると、メモリ回路からセルフテスト回路へ出力された出力データ信号、または、セルフテスト回路内における比較イネーブル信号もしくは期待値信号におけるクロックサイクルずれを検出することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明に係る半導体装置の構成を一例として示すブロック図である。
【図２】本発明に係る半導体装置の動作を一例として示すタイミング図である。
【図３】本発明に係る半導体装置の構成を一例として示すブロック図である。
【図４】本発明に係る半導体装置の構成を一例として示すブロック図である。
【図５】第１の実施形態に係る半導体装置の構成を一例として示すブロック図である。
【図６】第１の実施形態に係る半導体装置における保持回路の構成を一例として示すブロック図である。
【図７】第１の実施形態に係る半導体装置の動作を一例として示すタイミング図である。
【図８】第１の実施形態に係る半導体装置の動作を一例として示すタイミング図である。
【図９】第２の実施形態に係る半導体装置の構成を一例として示すブロック図である。
【図１０】第２の実施形態に係る半導体装置の動作を一例として示すタイミング図である。
【図１１】第２の実施形態に係る半導体装置の動作を一例として示すタイミング図である。
【図１２】第３の実施形態に係る半導体装置の構成を一例として示すブロック図である。
【図１３】第３の実施形態に係る半導体装置の動作を一例として示すタイミング図である。
【図１４】第３の実施形態に係る半導体装置の動作を一例として示すタイミング図である。
【図１５】第４の実施形態に係る半導体装置の構成を一例として示すブロック図である。
【図１６】第４の実施形態に係る半導体装置の構成を一例として示すブロック図である。
【図１７】特許文献１に記載された半導体装置の構成を示すブロック図である。
【図１８】特許文献１に記載された半導体装置の構成を概略的に示すブロック図である。
【図１９】特許文献１に記載された半導体装置の動作を示すタイミング図である。
【図２０】特許文献１に記載された半導体装置の動作を示すタイミング図である。
【発明を実施するための形態】
【００２６】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２７】
図１は、本発明に係る半導体装置の構成を一例として示すブロック図である。図１を参照すると、半導体装置は、メモリ回路（２０）と、セルフテスト回路とを備える。セルフテスト回路は、テストパターン発生手段（１１）、比較手段（１２）およびエラー保持手段（１３）を備える。テストパターン発生手段（１１）は、擬期待値信号および比較イネーブル信号を生成する。「擬期待値信号」は、メモリ回路（２０）から出力される出力データ信号の各クロックサイクルにおけるビット値に対する期待値ビット列に含まれる一部のビット値を反転させたビット列に含まれるビット値を各クロックサイクルにおいてとる。比較イネーブル信号は、各クロックサイクルにおける出力データ信号と擬期待値信号の比較を可能とする。比較手段（１２）は、メモリ回路（２０）から出力された出力データ信号、ならびに、テストパターン発生手段（１１）から出力された擬期待値信号および比較イネーブル信号を受信し、比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて出力データ信号と擬期待値信号とを比較し、比較結果を表す比較結果信号を生成する。エラー保持手段（１３）は、比較手段（１２）から比較結果信号を受信し、受信した比較結果信号の各クロックサイクルにおけるビット値を保持する（展開形態１）。半導体装置は、例えば単一又は複数の半導体チップが樹脂等で単一のパッケージに封止されるものであり、他の電子部品とともに配線基板に実装されるものである。メモリ回路とロジック回路は単一のパッケージ内において、同一の半導体チップ上に設けられてもよいし、異なるチップ上にそれぞれ設けられてもよい。
【００２８】
比較手段（１２）は、比較器（ＣＭＰ１）およびＡＮＤゲート（ＡＮＤ１）を有していてもよい。比較器（ＣＭＰ１）は、出力データ信号と擬期待値信号の間の排他的論理和を求める。ＡＮＤゲート（ＡＮＤ１）は、比較器（ＣＭＰ１）から出力された排他的論理和と比較イネーブル信号の間の論理積を比較結果信号として生成する（展開形態２）。
【００２９】
また、エラー保持手段（１３）は、比較結果信号の各クロックサイクルにおけるビット値を保持するシフトレジスタであってもよい（展開形態３）。
【００３０】
図２は、図１に示した半導体装置の動作を一例として示すタイミング図である。なお、図２では、メモリ回路２０をＲＡＭとし、エラー保持手段（１３）をシフトレジスタとした。テストパターン発生手段（１１）は、図２に示すように、ＲＡＭ出力データの期待値を故意に反転させた擬期待値信号を生成する。すなわち、テストパターン発生手段（１１）は、比較手段（１２）の出力が変化する（０から１、１から０の変化を含む一意のビット列となる）ような擬期待値信号をテストパターンとして生成する。図２の太破線で示した箇所において、擬期待値信号は、ＲＡＭ出力データ信号の期待値を反転させた値をとる。また、シフトレジスタは、比較手段（１２）の出力をクロックサイクル毎に取得する。
【００３１】
このとき、セルフテスト回路内における信号（比較イネーブル信号、擬期待値信号）と、セルフテスト回路がＲＡＭから受信する信号（ＲＡＭ出力データ信号）の双方が同時にサイクルずれを起こした場合、シフトレジスタに取得されるビット列が１ビットずれる。
【００３２】
具体的には、図２に示したテストパターンによると、サイクルずれがない場合にシフトレジスタが“０１０１００１０１０００００”を保持するタイミングにおいて、サイクルずれが生じた場合には、シフトレジスタは“００１０１００１０１００００”を保持することになる。
【００３３】
したがって、本発明の半導体装置によると、サイクルずれ（この場合には、同時サイクルずれ）が生じたことを検出することができる。なお、テストパターン発生手段（１１）は、メモリ回路（２０）からセルフテスト回路に出力される出力データ信号、ならびに、セルフテスト回路内における比較イネーブル信号および期待値信号の３つの信号のいかなる組み合わせのサイクルずれも検出できるようなテストパターンを生成することが好ましい。
【００３４】
本発明に係る半導体装置では、テストパターン発生手段（１１）で、期待値を故意に反転させて、クロックサイクル毎の比較結果が０から１、１から０に変化するパターンを発生する。また、比較結果をサイクル毎に取得するシフトレジスタを設け、テストパターン発生回路（１１）でシフト動作／保持動作を制御する。
【００３５】
本発明に係る半導体装置によると、特許文献１に記載された半導体装置とは異なり、サイクルずれが生じたことを検出することが可能となる。具体的には、比較手段（１２）で発生するクロックサイクル毎の判定結果を、遅延故障が発生しにくいエラー保持手段（１３）（例えば、シフトレジスタ）に取り込むことで、サイクルずれを検出する。
【００３６】
テストパターン発生手段（１１）は、フェイル判定結果に０と１が混じるようなパターンを発生する。フェイル判定結果の「１」は、期待値を故意に反転させて実現する。このフェイル判定結果をシフトレジスタに取り込み、シフトレジスタに格納された情報を期待ビット列と照合することでセルフテスト回路自身のテストを含むＲＡＭテストを行うことが可能となる。
【００３７】
本発明に係る半導体装置によると、少なくともシフトレジスタ自身は正常動作する（すなわち、クロックサイクルずれがない）という条件下で、セルフテスト回路の他の部分のクロックサイクルずれやＲＡＭのリードアクセスのクロックサイクルずれを検出でき、信頼性の高いＲＡＭテストが可能となる。
【００３８】
上述したように、ＳｏＣ等の内蔵ＲＡＭのテスト用に、ＭＢＩＳＴ回路が同一チップに搭載された場合において、特許文献１に記載された半導体装置によると、電圧、温度条件等により誤判定が生じうる。すなわち、ＲＡＭのアクセスタイムが、システムのクロックサイクルを超えていても、ＰＡＳＳと判定されるおそれがある。このとき、半導体装置の良品と不良品の選別が困難となる。
【００３９】
しかしながら、本発明に係る半導体装置によると、メモリ回路（２０）（例えばＲＡＭ）から出力された出力データ信号、ならびに、テストパターン発生手段（１１）から出力された比較イネーブル信号および期待値信号のうちの少なくともいずれかの信号においてサイクルずれが生じた場合に、これを検出することが可能となる。
【００４０】
図３は、図１の半導体装置の変形例の構成を示すブロック図である。図３を参照すると、半導体装置は、故障情報を保持するためのフラグ保持手段（１４）をさらに備えている。また、図３の半導体装置は、フラグ保持手段（１４）のホールド機能を抑制し、パイプラインレジスタとして動作させる機能を有する。
【００４１】
すなわち、図３の半導体装置は、サイクル毎の比較結果の中の不一致情報を検出してフラグ情報として保持するフラグ保持手段（１４）を備え、フラグ保持機能を抑制しパイプラインレジスタとして動作する機能を有する。また、エラー保持手段（１３）（例えばシフトレジスタ）は、フラグ保持手段（１４）の出力をサイクル毎に取得する。
【００４２】
具体的には、図３を参照すると、フラグ保持手段（１４）は、テストパターン発生手段（１１）から出力されたホールドイネーブル信号、および、比較手段（１２）から出力された比較結果信号を受信し、ホールドイネーブル信号が活性状態である場合には、比較結果信号の変化の有無を表すビット値を保持し、それ以外の場合には、比較結果信号を保持することなくエラー保持手段（１３）に出力する（展開形態４）。
【００４３】
また、フラグ保持手段（１４）は、フリップフロップ（ＦＦ２）、ＡＮＤゲート（ＡＮＤ２）およびＯＲゲート（ＯＲ２）を有していてもよい。ＡＮＤゲート（ＡＮＤ２）は、ホールドイネーブル信号（ＨＯＬＤＥＮ）とフリップフロップ（ＦＦ２）の出力信号の論理積を生成する。ＯＲゲート（ＯＲ２）は、比較結果信号とＡＮＤゲート（ＡＮＤ２）の出力信号の論理和を生成する。フリップフロップ（ＦＦ２）は、ＯＲゲートの出力信号をラッチする（展開形態５）。
【００４４】
このように、図３に示した半導体装置は、メモリ回路（例えばＲＡＭ）とメモリ回路をテストするセルフテスト回路を含む半導体集積装置であって、セルフテスト回路は、テストクロックサイクル毎のフェイル判定信号をフラグ情報（フェイルの有無情報）として蓄積するフラグ保持手段（１４）を備えている。ここで、フラグ保持回路（１４）はレジスタ回路（例えばフリップフロップＦＦ２）を有している。また、フラグ保持回路（１４）は、保持機能を抑制し、レジスタ回路（ＦＦ２）をフェイル判定信号用パイプラインレジスタとして動作する機能を有する。さらに、セルフテスト回路は、テストパターン発生手段（１１）を備えている。テストパターン発生手段（１１）は、フェイル判定信号が「０から１」および「１から０」に変化する状態を含むようにテストパターンを発生する。また、セルフテスト回路は、上記レジスタ（パイプラインレジスタ）から出力されるフェイル判定信号を格納するためのエラー保持手段（１３）（例えば、直列シフトレジスタ）を備える。ここで、直列シフトレジスタのシフト動作と保持動作の切り替えは、テストパターン発生手段（１１）によって制御される。
【００４５】
図３に示した半導体装置によると、ホールドイネーブル信号を活性状態とするとともに、擬期待値信号として、メモリ回路（２０）の出力データの期待値を出力することで、メモリ回路の故障を検出することができる。一方、ホールドイネーブル信号を非活性状態とするとともに、擬期待値信号として、メモリ回路（２０）の出力データの期待値の一部を反転した信号を出力することで、出力データ信号、擬期待値信号および比較イネーブル信号の少なくともいずれかにおいてサイクルずれが生じたことを検出することができる。すなわち、図３の半導体装置によると、メモリ回路（２０）のテスト、および、サイクルずれの検出の双方を実現することが可能となる。
【００４６】
図４は、図３に示した半導体装置のさらなる変形例の構成を示すブロック図である。図４に示した半導体装置によると、エラー保持手段（１３）（例えばシフトレジスタ）を複数のメモリ回路（２０ａ、２０ｂ）（例えばＲＡＭ）で共有することができる。
【００４７】
複数のメモリ回路（２０ａ、２０ｂ）でエラー保持手段（１３）を共有するために、エラー保持手段（１３）のシリアル入力にＯＲゲート（ＯＲ３）が設けられている。
【００４８】
図４を参照すると、半導体装置は、第１の比較手段（１２ａ）、第２の比較手段（１２ｂ）、第１のフラグ保持手段（１４ａ）、第２のフラグ保持手段（１４ｂ）、および、ＯＲゲート（ＯＲ３）を備える。第１の比較手段（１２ａ）は、第１のメモリ回路（２０ａ）から出力された第１の出力データ信号、ならびに、テストパターン発生手段（１１）から出力された擬期待値信号および比較イネーブル信号を受信し、比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて第１の出力データ信号と擬期待値信号とを比較し、比較結果を表す第１の比較結果信号を生成する。一方、第２の比較手段（１２ｂ）は、第２のメモリ回路（２０ｂ）から出力された第２の出力データ信号、ならびに、テストパターン発生手段（１１）から出力された擬期待値信号および比較イネーブル信号を受信し、比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて第２の出力データ信号と擬期待値信号とを比較し、比較結果を表す第２の比較結果信号を生成する。第１のフラグ保持手段（１４ａ）は、テストパターン発生手段（１１）から出力されたホールドイネーブル信号（ＨＯＬＤＥＮ）、および、第１の比較手段（１２ａ）から出力された第１の比較結果信号を受信し、ホールドイネーブル信号（ＨＯＬＤＥＮ）が活性状態である場合には、第１の比較結果信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、第１の比較結果信号をそのまま出力する。一方、第２のフラグ保持手段（１４ｂ）は、ホールドイネーブル信号（ＨＯＬＤＥＮ）、および、第２の比較手段（１２ｂ）から出力された第２の比較結果信号を受信し、ホールドイネーブル信号（ＨＯＬＤＥＮ）が活性状態である場合には、第２の比較結果信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、第２の比較結果信号をそのまま出力する。ＯＲゲート（ＯＲ３）は、第１のフラグ保持手段（１４ａ）の出力信号と第２のフラグ保持手段（１４ｂ）の出力信号との論理和を求めてエラー保持手段（１３）に出力する（展開形態６）。
【００４９】
また、第１の比較手段（１２ａ）は、第１の出力データ信号と擬期待値信号の間の排他的論理和を求める比較器（ＣＭＰ１ａ）と、求めた排他的論理和と比較イネーブル信号の間の論理積を第１の比較結果信号として生成するＡＮＤゲート（ＡＮＤ１ａ）とを有していてもよい。同様に、第２の比較手段（１２ｂ）は、第２の出力データ信号と擬期待値信号の間の排他的論理和を求める比較器（ＣＭＰ１ｂ）と、求めた排他的論理和と比較イネーブル信号の間の論理積を第２の比較結果信号として生成するＡＮＤゲート（ＡＮＤ１ｂ）とを有していてもよい（展開形態７）。
【００５０】
さらに、第１のフラグ保持手段（１４ａ）は、第１のフリップフロップ（Ｆ２ａ）、第１のＡＮＤゲート（ＡＮＤ２ａ）および第１のＯＲゲート（ＯＲ２ａ）を有していてもよい。第１のＡＮＤゲート（ＡＮＤ２ａ）は、ホールドイネーブル信号（ＨＯＬＤＥＮ）と第１のフリップフロップ（ＦＦ２ａ）の出力信号の論理積を生成する。第１のＯＲゲート（ＯＲ２ａ）は、第１の比較結果信号と第１のＡＮＤゲート（ＡＮＤ２ａ）の出力信号の論理和を生成する。第１のフリップフロップ（ＦＦ２ａ）は、第１のＯＲゲート（ＯＲ２ａ）から出力された信号をラッチする。同様に、第２のフラグ保持手段（１４ｂ）は、第２のフリップフロップ（ＦＦ２ｂ）、第２のＡＮＤゲート（ＡＮＤ２ｂ）および第２のＯＲゲート（ＯＲ２ｂ）を有していてもよい。第２のＡＮＤゲート（ＡＮＤ２ｂ）は、ホールドイネーブル信号（ＨＯＬＤＥＮ）と第２のフリップフロップ（ＦＦ２ｂ）の出力信号の論理積を生成する。第２のＯＲゲート（ＯＲ２ｂ）は、第２の比較結果信号と第２のＡＮＤゲート（ＡＮＤ２ｂ）の出力信号の論理和を生成する。第２のフリップフロップ（ＦＦ２ｂ）は、第２のＯＲゲート（ＯＲ２ｂ）から出力された信号をラッチする（展開形態８）。
【００５１】
図４に示した半導体装置では、フラグ保持手段（１４ａ、１４ｂ）は、メモリ回路（例えばＲＡＭ）毎のフェイルフラグを保持する。かかる半導体装置によると、複数のメモリ回路（２０ａ、２０ｂ）によって、エラー保持手段（１３）を共有することで、セルフテスト回路の面積の増大を防ぐことが可能となる。
【００５２】
図５を参照すると、図１の半導体装置における比較手段（１２）は、メモリ回路（例えばＲＡＭ４０）の各データ出力端子（Ｄｏｕｔ［０］〜Ｄｏｕｔ［３］）から出力された出力データ信号と擬期待値信号（ＥＸＰＤＡＴＡ）との排他的論理和を求める複数のＸＯＲゲート（Ｇ１）と、複数のＸＯＲゲート（Ｇ１）の出力信号の論理和を求めるＯＲゲート（Ｇ２０）と、ＯＲゲート（Ｇ２０）の出力信号と比較イネーブル信号との論理積を求め、上記比較結果信号として出力するＡＮＤゲート（Ａ２０）と、を備えていてもよい（展開形態９）。
【００５３】
図９を参照すると、図１の半導体装置における比較手段（１２）は、複数の比較・フラグ保持回路（Ｖ０〜Ｖ３）を備えていてもよい。比較・フラグ保持回路（Ｖ０〜Ｖ３）は、それぞれ、メモリ回路（例えばＲＡＭ４０）の各データ出力端子（Ｄｏｕｔ［０］〜Ｄｏｕｔ［３］）から出力された出力データ信号と擬期待値信号との排他的論理和を求めるＸＯＲゲート（Ｇ１）と、ＸＯＲゲート（Ｇ１）の出力信号と比較イネーブル信号（ＣＯＭＰＥＮ）との論理積を求めるＡＮＤゲート（Ａ３０）と、テストパターン発生回路（３１）から出力されたホールドイネーブル信号（ＨＯＬＤＥＮ）、および、ＡＮＤゲート（Ａ３０）の出力信号を受信し、ホールドイネーブル信号（ＨＯＬＤＥＮ）が活性状態である場合には、当該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、当該出力信号を保持することなく出力するフラグ保持手段（ＡＮＤゲートＡ３１、ＯＲゲートＧ３１、フリップフロップＦＦ３０）と、を有していてもよい。このとき、比較・フラグ保持回路（Ｖ０〜Ｖ３）のそれぞれのフラグ保持手段の出力信号の論理和を上記比較結果信号とする（展開形態１０）。
【００５４】
図１２を参照すると、半導体装置は、比較・フラグ保持回路（Ｖ０〜Ｖ３）のそれぞれのフラグ保持手段から出力された信号の論理和を求めるＯＲゲート（Ｇ２０）と、テストパターン発生回路（３２）から出力されたホールドイネーブル信号（ＨＯＬＤＥＮ２）、および、ＯＲゲート（Ｇ２０）の出力信号を受信し、ホールドイネーブル信号（ＨＯＬＤＥＮ２）が活性状態である場合には、当該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を上記比較結果信号として出力し、それ以外の場合には、当該出力信号を保持することなく上記比較結果信号として出力するフラグ保持手段（ＡＮＤゲートＡ２１、ＯＲゲートＧ２１、フリップフロップＦＦ２０）と、を有していてもよい（展開形態１１）。
【００５５】
以下、第１ないし第４の実施形態に係る半導体装置について、図面を参照して説明する。
【００５６】
＜実施形態１＞
第１の実施形態に係る半導体装置について、図面を参照して説明する。図５は、本実施形態の半導体装置の構成を一例として示すブロック図である。図５を参照すると、半導体装置は、ＲＡＭ４０と、ＲＡＭ４０をテストするためのセルフテスト回路とを備える。セルフテスト回路は、テストパターン発生回路３１、比較回路Ｕ０〜Ｕ３、ＯＲゲートＧ２０、ＡＮＤゲートＡ２０、Ａ２１、ＯＲゲートＧ２１、フリップフロップＦＦ２０、および、シフトレジスタ３３を備える。
【００５７】
比較回路Ｕ０〜Ｕ３は、それぞれ、ＸＯＲゲートＧ１を備える。ＸＯＲゲートは、ＲＡＭ４０の各データ出力端子（Ｄｏｕｔ［０］〜Ｄｏｕｔ［３］）から出力された出力データ信号ＤＯ［＃］と擬期待値信号ＥＸＰ［＃］との排他的論理和を求める。ＯＲゲートＧ２０は、比較回路Ｕ０〜Ｕ３のそれぞれのＸＯＲゲートＧ１の出力信号の論理和を求める。ＡＮＤゲートＡ２０は、ＯＲゲートＧ２０と比較イネーブル信号ＣＯＭＰＥＮとの論理積を求める。
【００５８】
ＡＮＤゲートＡ２１は、ホールドイネーブル信号ＨＯＬＤＥＮとフリップフロップＦＦ２０の出力信号の論理積を生成する。ＯＲゲートＯＲ２１は、ＡＮＤゲートＡ２０の出力信号とＡＮＤゲートＡ２１の出力信号の論理和を生成する。フリップフロップＦＦ２０は、ＯＲゲートＯＲ２１の出力信号をラッチする。
【００５９】
シフトレジスタ３３は、フリップフロップＦＦ２０からの出力信号を保持する。
【００６０】
本実施形態の半導体装置では、ＯＲゲートＧ２１から出力されるフェイルフラグ信号ＦＡＩＬＦＬＡＧの保持機能を制御できるように、ＡＮＤゲートＡ２１が設けられている。また、テストパターン発生回路３１は、この保持機能を制御するためのホールドイネーブル信号を生成する。ＡＮＤゲートＡ２１には、テストパターン発生回路３１から出力されたホールドイネーブル信号ＨＯＬＤＥＮが接続されている。
【００６１】
また、本実施形態の半導体装置では、フェイルフラグ信号ＦＡＩＬＦＬＡＧをキャプチャするためのエラー情報取得回路としてシフトレジスタ３３が設けられている。テストパターン発生回路３１は、フェイルフラグ信号ＦＡＩＬＦＬＡＧのキャプチャを制御するシフトイネーブル信号ＣＡＰＥＮを生成する。シフトレジスタ３３には、テストパターン発生回路３１から出力されたシフトイネーブル信号ＣＡＰＥＮが接続されている。
【００６２】
図６は、シフトレジスタ３３の構成を一例として示すブロック図である。シフトレジスタ３３は、一例として、図６に示すようなイネーブル制御付のシフトレジスタとしてもよい。図６を参照すると、シフトレジスタ３３は、前段のレジスタの出力信号を後段のレジスタの入力信号とするように互いに接続されたレジスタＳＲ［０］〜ＳＲ［１３］を備える。なお、ここでは、一例として、シフトレジスタの段数を１４段としたが、シフトレジスタの段数はこれに限定されない。
【００６３】
レジスタＳＲ［０］〜ＳＲ［１３］は、それぞれ、セレクタＳＥＬ８０およびフリップフロップＦＦ８０を備える。セレクタＳＥＬ８０は、シフトイネーブル信号ＥＮが１である場合には、データ信号Ｄを選択してフリップフロップＦＦ８０へ出力し、シフトイネーブル信号ＥＮが０である場合には、フリップフリップＦＦ８０の出力信号Ｑを選択してフリップフロップＦＦ８０へ出力する。フリップフロップＦＦ８０は、クロック信号ＣＬＫに応じてセレクタＳＥＬ８０の出力信号をラッチする。
【００６４】
サイクルずれテストの結果は、シフトイネーブル信号がＥＮ＝１の状態で、シフトデータ入力端子ＳＩからサイクルごとにシフトレジスタ３３にシフトインして格納される。また、テスト結果は、テスト終了にシフトデータ出力端子ＳＯからシリアル出力される。このとき、クロック信号ＣＬＫを低速（サイクルタイム大）で動作させてもよい。
【００６５】
本実施形態の半導体装置は、ホールドイネーブル信号がＨＯＬＤＥＮ＝１の状態において、特許文献１に記載された半導体装置（図１８）と同一の動作を行う。したがって、ホールドイネーブル信号がＨＯＬＤＥＮ＝１の状態では、ＲＡＭ４０のテストを行うことができるものの、信号（ＲＡＭ４０からの出力データ信号、期待値信号、比較イネーブル信号）のサイクルずれを検出することはできない（図１９、図２０参照）。
【００６６】
一方、本実施形態の半導体装置は、ホールドイネーブル信号がＨＯＬＤＥＮ＝０の状態では、後述のように、サイクルずれを検出できるものの、ＲＡＭ４０のテストを行うことはできない。
【００６７】
すなわち、本実施形態の半導体装置によると、ホールドイネーブル信号がＨＯＬＤＥＮ＝０の状態で行われるサイクルずれテストと、ホールドイネーブル信号がＨＯＬＤＥＮ＝１の状態で行われるＲＡＭテストとを併用することで、ＲＡＭ４０のみならずセルフテスト回路を含む信頼性の高いテストを行なうことができる。
【００６８】
図７は、本実施形態の半導体装置の正常動作時（信号のクロックサイクルずれがない場合）のタイミング図である。図７において、「ｄ」と「ｐ」とは互いに反転データである。図７を参照すると、テストパターン発生回路３１は、ＲＡＭ４０から出力される出力データ信号Ｄｏｕｔの期待値の一部のビットを反転した擬期待値信号ＥＸＰＤＡＴＡを生成する。
【００６９】
第４サイクルの始まりにおけるクロック信号ＣＬＫの立ち上がりエッジの時点で、ＲＡＭ４０からの出力データ信号ＤＯの状態は「ｄ」であり、擬期待値信号ＥＸＰの状態は「ｐ」であるから、両者は不一致となる。しかし、この時点において、ＡＮＤゲートＡ２０は非活性状態の比較イネーブル信号ＣＯＭＰＥＮを受信しているため、ロウレベルのエラー信号ＥＲＲを出力する。
【００７０】
次に、第５サイクルの始まりにおけるクロック信号ＣＬＫの立ち上がりエッジの時点で、ＲＡＭ４０からの出力データ信号ＤＯの状態は「ｄ」であり、擬期待値信号ＥＸＰの状態は「ｐ」であるから、両者は不一致となる。また、この時点において、ＡＮＤゲートＡ２０は活性状態の比較イネーブル信号ＣＯＭＰＥＮを受信しているため、ハイレベルのエラー信号ＥＲＲを出力する。
【００７１】
次に、第６サイクルの始まりにおけるクロック信号ＣＬＫの立ち上がりエッジの時点で、ＲＡＭ４０からの出力データ信号ＤＯの状態は「ｄ」であり、擬期待値信号ＥＸＰの状態は「ｐ」であるから、両者は不一致となる。しかし、この時点において、ＡＮＤゲートＡ２０は非活性状態の比較イネーブル信号ＣＯＭＰＥＮを受信しているため、ロウレベルのエラー信号ＥＲＲを出力する。
【００７２】
次に、第７サイクルの始まりにおけるクロック信号ＣＬＫの立ち上がりエッジの時点で、ＲＡＭ４０からの出力データ信号ＤＯの状態は「ｄ」であり、擬期待値信号ＥＸＰの状態は「ｐ」であるから、両者は不一致となる。また、この時点において、ＡＮＤゲートＡ２０は活性状態の比較イネーブル信号ＣＯＭＰＥＮを受信しているため、ハイレベルのエラー信号ＥＲＲを出力する。
【００７３】
次に、第８サイクルの始まりにおけるクロック信号ＣＬＫの立ち上がりエッジの時点で、ＲＡＭ４０からの出力データ信号ＤＯの状態は「ｄ」であり、擬期待値信号ＥＸＰの状態は「ｄ」であるから、両者は一致する。このとき、ＡＮＤゲートＡ２０はロウレベルのエラー信号ＥＲＲを出力する。以下、同様に、比較イネーブル信号ＣＯＭＰＥＮが活性状態の期間において、ＲＡＭ４０からの出力データ信号ＤＯとテストパターン発生回路３１からの擬期待値信号ＥＸＰとの比較が行われる。
【００７４】
ホールドイネーブル信号はＨＯＬＤＥＮ＝０であることから、ＡＮＤゲートＡ２１はつねに０を出力し、ＯＲゲートＧ２１は、ＡＮＤゲートＡ２０から出力されたエラー信号ＥＲＲをそのままフリップフロップＦＦ２０へ出力する。また、フリップフロップＦＦ２０は、ＯＲゲートＧ２１から受信した信号を１サイクル遅延させてシフトレジスタ３３へ出力する。
【００７５】
最終的に、シフトレジスタ３３は、クロックサイクル１８の期間において、値ｓ［０］〜ｓ［１３］として“０１０１００１０１０００００”を保持する。
【００７６】
一方、図８は、本実施形態の半導体装置の異常動作時（信号のクロックサイクルずれがある場合）のタイミング図である。図８は、一例として、ＲＡＭ４０からの出力データ信号ＤＯがサイクルずれ（図８の太破線矢印）を起こすと同時に、擬期待値信号ＥＸＰＤＡＴＡおよび比較イネーブル信号ＣＯＭＰＥＮもサイクルずれ（図８の太実線矢印）を起こした場合のタイミング図を示す。
【００７７】
この場合におけるＡＮＤゲートＡ２０の出力信号は、クロックサイクルずれがない場合（図７）と比較して、１クロックサイクルだけ遅延した信号となる。最終的に、シフトレジスタ３３は、クロックサイクル１８の期間において、値ｓ［０］〜ｓ［１３］として“００１０１００１０１００００”を保持する。
【００７８】
図７および図８に示すように、信号のクロックサイクルずれの有無によって、シフトレジスタ３３に格納される値ｓ［０］〜ｓ［１３］が変化する。すなわち、図８のようにシフトずれが生じた場合には、シフトレジスタ３３には値ｓ［０］〜ｓ［１３］として“００１０１００１０１００００”が格納される。この値は、シフトずれが生じていない場合（図７）にシフトレジスタ３３に格納される値ｓ［０］〜ｓ［１３］である“０１０１００１０１０００００”と比較すると１ビットだけずれている。したがって、本実施形態の半導体装置によると、信号のクロックサイクルずれを検出することができ、半導体装置の良品および不良品を精度良く判別することが可能となる。
【００７９】
＜実施形態２＞
第２の実施形態に係る半導体装置について、図面を参照して説明する。本実施形態の半導体装置は、特許文献２の図２４に記載された半導体装置に対して本発明を適用した場合に相当する。なお、特許文献２においてはフェイル信号を負論理で表現したが、本実施形態（図９）では正論理で表現する。
【００８０】
図９は、本実施形態の半導体装置の構成を一例として示すブロック図である。図９を参照すると、半導体装置は、ＲＡＭ４０と、ＲＡＭ４０をテストするためのセルフテスト回路とを備える。セルフテスト回路は、テストパターン発生回路３１、比較・フラグ保持回路Ｖ０〜Ｖ３、ＯＲゲートＧ２０、および、シフトレジスタ３３を備える。
【００８１】
比較・フラグ保持回路Ｖ０〜Ｖ３は、それぞれ、ＸＯＲゲートＧ１、ＡＮＤゲートＡ３０、Ａ３１、ＯＲゲートＧ３１、および、フリップフロップＦＦ３０を備える。
【００８２】
ＸＯＲゲートＧ１は、ＲＡＭ４０の各データ出力端子（Ｄｏｕｔ［０］〜Ｄｏｕｔ［３］）から出力された出力データ信号と擬期待値信号との排他的論理和を求める。ＡＮＤゲートＡ３０は、ＸＯＲゲートＧ１の出力信号と比較イネーブル信号ＣＯＭＰＥＮとの論理積を求める。フラグ保持手段（ＡＮＤゲートＡ３１、ＯＲゲートＧ３１、フリップフロップＦＦ３０）は、テストパターン発生回路３１から出力されたホールドイネーブル信号ＨＯＬＤＥＮ、および、ＡＮＤゲートＡ３０の出力信号を受信し、ホールドイネーブル信号ＨＯＬＤＥＮが活性状態である場合には、当該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、当該出力信号を保持することなく出力する。ＯＲゲートＧ２０は、比較・フラグ保持回路（Ｖ０〜Ｖ３）のそれぞれのフラグ保持手段の出力信号の論理和を求めて、シフトレジスタ３３へ出力する。
【００８３】
本実施形態の半導体装置は、データＩ／Ｏビット毎のフェイルフラグ情報が保持できるようにフリップフロップＦＦ３０、および、ＯＲゲートＧ３１が設けられている点で、第１の実施形態の半導体装置（図５）と相違する。また、本実施形態の半導体装置には、「サイクルずれテスト」を行なう目的で、ＡＮＤゲートＡ３１が設けられている。
【００８４】
本実施形態の半導体装置においては、比較・フラグ保持回路Ｖ０〜Ｖ３は、それぞれ、ＲＡＭ４０のＩ／Ｏ毎のフェイルフラグを保持する。また、半導体装置は、Ｉ／Ｏ毎のフェイルフラグ情報の論理和演算を行ない、ＲＡＭ単位のフェイルフラグ情報を作成するＯＲゲートＧ２０をさらに備えている。テスト結果格納用の直列シフトレジスタ３３は、このＲＡＭ毎のフェイルフラグを保持する。
【００８５】
次に、本実施形態の半導体装置の動作について説明する。まず、通常のＲＡＭテストでは、ホールドイネーブル信号をＨＯＬＤＥＮ＝１に設定し、データＩ／Ｏビット毎のフェイルフラグ情報をフリップフロップＦＦ３０に保持する。データＩ／Ｏビット毎のフェイルフラグ情報（ＤＡＴＡＦＬＡＧ［０］〜［３］）は、ＯＲゲートＧ２０でＯＲ演算され、ＲＡＭ４０に対するフェイル情報信号ＥＲＲとなる。なお、ホールドイネーブル信号がＨＯＬＤＥＮ＝１の場合には、フェイル情報信号ＥＲＲはＲＡＭ４０のフェイルフラグを表す。
【００８６】
一方、サイクルずれテストでは、ホールドイネーブル信号をＨＯＬＤＥＮ＝０に設定する。データＩ／Ｏビット毎の判定結果ＤＡＴＡＥＲＲは、フリップフロップＦＦ３０を介して１サイクル遅れのＤＡＴＡＦＬＡＧ信号となる。このとき、ホールドイネーブル信号がＨＯＬＤＥＮ＝０であるため、フェイルフラグ情報はフリップフリップＦＦ３０に保持されない。データＩ／Ｏビット毎のフェイルフラグ情報（ＤＡＴＡＦＬＡＧ［０］〜［３］）は、ＯＲゲートＧ２０でＯＲ演算され、ＲＡＭ４０に対するフェイル情報信号ＥＲＲとなる。フェイル情報信号ＥＲＲは、第１の実施形態の場合と同様に、シフトレジスタ３３に取り込まれる。
【００８７】
図１０および図１１は、本実施形態の半導体装置のサイクルずれテスト動作の波形を示す。図１０は、正常動作時（信号のサイクルずれがない場合）の動作を示す。一方、図１１は、異常動作時（信号のサイクルずれがある場合）の動作を示す。
【００８８】
図１０および図１１に示すように、信号のクロックサイクルずれの有無によって、シフトレジスタ３３に格納される値ｓ［０］〜ｓ［１３］が変化する。すなわち、図１１のようにシフトずれが生じた場合には、シフトレジスタ３３には値ｓ［０］〜ｓ［１３］として“００１０１００１０１００００”が格納される。この値は、シフトずれが生じていない場合（図１０）にシフトレジスタ３３に格納される値ｓ［０］〜ｓ［１３］、すなわち、“０１０１００１０１０００００”と比較すると、１ビットだけずれている。したがって、本実施形態の半導体装置によると、第１の実施形態の半導体装置と同様に、信号のクロックサイクルずれを検出することができる。
【００８９】
また、本実施形態の半導体装置によると、各Ｉ／Ｏ毎のフェイルフラグ情報（ＤＡＴＡＦＬＡＧ）は、特許文献１、２に示されているような直列シフト機能を付加することで、冗長救済用情報として利用することができる。
【００９０】
＜実施形態３＞
第３の実施形態に係る半導体装置について、図面を参照して説明する。図１２は、本実施形態に係る半導体装置の構成を一例として示すブロック図である。本実施形態の半導体装置は、第２の実施形態の半導体装置（図９）に対して、さらに、第１の実施形態の半導体装置（図５）におけるＲＡＭ毎のフェイルフラグ・レジスタを追加した構成を有する。
【００９１】
本実施形態の半導体装置においては、比較・フラグ保持回路Ｖ０〜Ｖ３は、それぞれ、ＲＡＭ４０のＩ／Ｏ毎のフェイルフラグを保持する。ＯＲゲートＧ２０は、Ｉ／Ｏフェイルフラグ情報の論理和演算を行なう。ＲＡＭフェイルフラグ保持回路（ＡＮＤゲートＡ２１、ＯＲゲートＧ２１、フリップフロップＦＦ２０）は、ＯＲゲートＧ２０からの論理和演算出力を入力とし、ＲＡＭ毎のフェイルフラグを保持する。テスト結果格納用直列シフトレジスタ３３は、このＲＡＭフェイルフラグ保持回路のレジスタの出力を格納する。
【００９２】
次に、本実施形態の半導体装置の動作について説明する。まず、通常のＲＡＭテストでは、ホールドイネーブル信号をＨＯＬＤＥＮ＝１に設定し、データＩ／Ｏビット毎のフェイルフラグ情報をフリップフロップＦＦ３０に保持する。データＩ／Ｏビット毎のフェイルフラグ情報（ＤＡＴＡＦＬＡＧ［０］〜［３］）は、ＯＲゲートＧ２０でＯＲ演算され、ＲＡＭ４０に対するフェイル情報信号ＥＲＲとなる。フェイル情報信号ＥＲＲは、フリップフロップＦＦ２０に取り込まれる。ホールドイネーブル信号がＨＯＬＤＥＮ２＝１である場合には、フェイル情報信号ＥＲＲは、ＡＮＤゲートＡ２１およびＯＲゲートＧ２１を通るフィードバック回路により、ＲＡＭ毎のフェイルフラグ情報として保持される。
【００９３】
一方、サイクルずれテストでは、ホールドイネーブル信号をＨＯＬＤＥＮ＝０、ＨＯＬＤＥＮ２＝０に設定する。データＩ／Ｏビット毎の判定結果ＤＡＴＡＥＲＲは、フリップフロップＦＦ３０を介して１サイクル遅れのＤＡＴＡＦＬＡＧ信号となる。このとき、ホールドイネーブル信号がＨＯＬＤＥＮ＝０であるため、フェイルフラグ情報はフリップフロップＦＦ３０に保持されない。データＩ／Ｏビット毎のフェイルフラグ情報（ＤＡＴＡＦＬＡＧ［０］〜［３］）は、ＯＲゲートＧ２０でＯＲ演算され、ＲＡＭ４０に対するフェイル情報信号ＥＲＲとなる。フェイル情報信号ＥＲＲは、フリップフロップＦＦ２０を介して１サイクル遅れのフェイルフラグ信号ＦＡＩＬＦＬＡＧとなる。なお、ホールドイネーブル信号がＨＯＬＤＥＮ２＝０であるため、フェイル情報信号ＥＲＲはフェイルフラグとしてフリップフロップＦＦ２０に保持されない。
【００９４】
なお、本実施形態の半導体装置では、ＦＡＩＬＦＬＡＧ信号は、第２の実施形態の半導体装置（図９）と比較して１サイクル遅れとなる。そこで、本実施形態では、シフトイネーブル信号ＣＡＰＥＮの１サイクル遅れのシフトイネーブル信号ＣＡＰＥＮ２を用いて、シフトレジスタ３３を制御している。フリップフロップＦＦ７０は、シフトイネーブル信号ＣＡＰＥＮを１サイクルだけ遅延させて、シフトイネーブル信号ＣＡＰＥＮ２として出力する。
【００９５】
図１３および図１４は、本実施形態の半導体装置のサイクルずれテスト動作の波形を示す。図１３は、正常動作時（信号のサイクルずれがない場合）の動作を示す。一方、図１４は、異常動作時（信号のサイクルずれがある場合）の動作を示す。
【００９６】
図１３および図１４に示すように、信号のクロックサイクルずれの有無によって、シフトレジスタ３３に格納される値ｓ［０］〜ｓ［１３］が変化する。すなわち、図１４のようにシフトずれが生じた場合には、シフトレジスタ３３には値ｓ［０］〜ｓ［１３］として“００１０１００１０１００００”が格納される。この値は、シフトずれが生じていない場合（図１３）にシフトレジスタ３３に格納される値ｓ［０］〜ｓ［１３］、すなわち、“０１０１００１０１０００００”と比較すると、１ビットだけずれている。したがって、本実施形態の半導体装置によると、第１および第２の実施形態半導体装置と同様に、信号のクロックサイクルずれを検出することができる。
【００９７】
また、本実施形態の半導体装置によると、第２の実施形態の半導体装置と同様に、各Ｉ／Ｏ毎のフェイルフラグ情報（ＤＡＴＡＦＬＡＧ）を冗長救済用情報として利用することができる。さらに、本実施形態の半導体装置によると、ＲＡＭ単位のフェイルフラグ情報を冗長救済用情報として利用することもできる。
【００９８】
＜実施形態４＞
第４の実施形態に係る半導体装置について、図面を参照して説明する。本実施形態の半導体装置は、複数のＲＡＭを備え、複数のＦＡＩＬＦＬＡＧ信号の間で、シフトレジスタ３３を共有する。
【００９９】
図１５および図１６は、本実施形態に係る半導体装置の構成を一例として示すブロック図である。
【０１００】
図１５（ａ）は、第１の実施形態の半導体装置において、複数のフェイルフラグ信号ＦＡＩＬＦＬＡＧの間で、シフトレジスタ３３を共有する場合を示す。フリップフロップＦＦ２０［０］は第１のＲＡＭに対するフェイルフラグ信号ＦＡＩＬＦＬＡＧ［０］を保持ないし出力し、フリップフロップＦＦ２０［１］は第２のＲＡＭに対するフェイルフラグ信号ＦＡＩＬＦＬＡＧ［１］を保持ないし出力する。この場合には、複数のフェイルフラグ信号の論理和を求めるＯＲゲートＧ７０を挿入する。
【０１０１】
また、図１５（ｂ）は、第２の実施形態の半導体装置において、複数のフェイル情報信号ＥＲＲ（フェイルフラグ信号ＦＡＩＬＦＬＡＧ）の間で、シフトレジスタ３３を共有する場合を示す。図１５（ｂ）において、下段の比較・フラグ保持回路は第１のＲＡＭに対するフェイル情報信号ＥＲＲ［２］を生成するとともに保持ないし出力し、上段の比較・フラグ保持回路は第２のＲＡＭに対するフェイル情報信号ＥＲＲ［３］を生成するとともに保持ないし出力する。この場合には、複数のフェイル情報信号ＥＲＲの論理を求めるＯＲゲートＧ７０を挿入する。
【０１０２】
さらに、図１５（ｃ）は、第３の実施形態の半導体装置において、複数のフェイルフラグ信号ＦＡＩＬＦＬＡＧの間で、シフトレジスタ３３を共有する場合を示す。フリップフロップＦＦ２０［４］は第１のＲＡＭに対するフェイルフラグ信号ＦＡＩＬＦＬＡＧ［０］を保持ないし出力し、フリップフロップＦＦ２０［５］は第２のＲＡＭに対するフェイルフラグ信号ＦＡＩＬＦＬＡＧ［１］を保持ないし出力する。この場合には、複数のフェイルフラグ信号ＦＡＩＬＦＬＡＧの論理和を求めるＯＲゲートＧ７０を挿入する。
【０１０３】
図１５（ａ）〜（ｃ）に示すように、複数のＲＡＭを備えた半導体では、ＯＲゲートＧ７０が各ＲＡＭに対応する複数のＲＡＭ毎のフェイルフラグ情報を論理和演算し、前記テスト結果格納用の直列シフトレジスタ３３は、ＯＲゲートＧ７０の出力信号を格納する。
【０１０４】
図１６は、第１ないし第３の実施形態の半導体装置が混在する場合に、複数のＦＡＩＬＦＬＡＧ信号の間で、シフトレジスタ３３を共有する場合を示す。図１６に示す場合には、フリップフロップＦＦ８０［０］〜ＦＦ８０［４］およびＯＲゲートＧ７０が追加される。
【０１０５】
第１の実施形態の半導体装置におけるＦＡＩＬＦＬＡＧ［０］、［１］、および、第２の実施形態の半導体装置におけるＦＡＩＬＦＬＡＧ［２］、［３］は、第３の実施形態の半導体装置のＦＡＩＬＦＬＡＧ［４］、［５］と比較して１サイクルだけ進んでいる。そこで、フリップフロップＦＦ８０［０］〜ＦＦ８０［３］を挿入し、サイクル調整した後、ＯＲゲートＧ７０でＯＲ演算を行なうようにする。すなわち、図１６の半導体装置では、複数のＲＡＭ毎のフェイルフラグ情報のサイクルを合わせるサイクル調整回路をさらに備えている。
【０１０６】
図１５および図１６においては、一例として、数個のフェイルフラグ信号ＦＡＩＬＦＬＡＧの間でＯＲ演算を行う構成を示したが、数１０から数１００のフェイルフラグ信号ＦＡＩＬＦＬＡＧをＯＲ演算するようにしてもよい。
【０１０７】
本実施形態の半導体装置（図１５、図１６）よると、シフトレジスタ３３を共有することにより、回路規模を削減する効果がもたらされる。
【０１０８】
上記第１ないし第４の実施形態に係る半導体装置について、種々の変形が可能である。
【０１０９】
第２の実施形態の半導体装置（図９）および第３の実施形態の半導体装置（図１２）では、明示していないが、特許文献１の図２、または、特許文献２の図２４、図２９のように、データＩ／Ｏビット毎のフェイルフラグ用のフリップフロップを直列接続する機能を追加してもよい。これにより、故障Ｉ／Ｏ位置の判定が可能となる。また、この判定結果により、ＲＡＭの冗長救済を行なうことも可能となる。
【０１１０】
また、第３の実施形態の半導体装置（図１２）において、ホールドイネーブル信号ＨＯＬＤＥＮおよびＨＯＬＤＥＮ２を、共通接続としてもよい。
【０１１１】
さらに、シフトレジスタを複数のＲＡＭで共有する場合には、ＯＲゲートＧ７０はフリップフロップを含むパイプライン化されたＯＲ演算回路でもよい。この場合には、パイプライン段数に応じて、シフトイネーブル信号ＣＡＰＥＮまたはＣＡＰＥＮ２を遅延させる。
【０１１２】
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１１３】
１１    テストパターン発生手段
１２、１２ａ、１２ｂ    比較手段
１３    エラー保持手段
１４、１４ａ、１４ｂ    フラグ保持手段
２０、２０ａ、２０ｂ    メモリ回路
３１、３２    テストパターン発生回路
３３    シフトレジスタ
４０    ＲＡＭ
１１１    テストパターン発生回路
１１２    ＲＡＭ
１２０    パターン発生器
１４０    比較回路
Ａ２０、Ａ２１、Ａ３０、Ａ３１    ＡＮＤゲート
ＡＮＤ１、ＡＮＤ１ａ、ＡＮＤ１ｂ    ＡＮＤゲート
ＡＮＤ２、ＡＮＤ２ａ、ＡＮＤ２ｂ    ＡＮＤゲート
ＣＭＰ１、ＣＭＰ１ａ、ＣＭＰ１ｂ    比較器
ＦＦ２、ＦＦ２ａ、ＦＦ２ｂ    フリップフロップ
ＦＦ２０、ＦＦ３０、ＦＦ７０、ＦＦ８０、ＦＦ８９    フリップフロップ
Ｇ１、Ｇ２    ＸＯＲゲート
Ｇ２０、Ｇ２１、Ｇ３１、Ｇ７０    ＯＲゲート
ＯＲ１、ＯＲ２、ＯＲ２ａ、ＯＲ２ｂ、ＯＲ３    ＯＲゲート
ＳＲ［０］〜ＳＲ［１３］    レジスタ
ＳＥＬ８０    セレクタ
Ｕ０〜Ｕ３    比較回路
Ｖ０〜Ｖ３    比較・フラグ保持回路
【図１】
0005727358.tif 000002
【図２】
0005727358.tif 000003
【図３】
0005727358.tif 000004
【図４】
0005727358.tif 000005
【図５】
0005727358.tif 000006
【図６】
0005727358.tif 000007
【図７】
0005727358.tif 000008
【図８】
0005727358.tif 000009
【図９】
0005727358.tif 000010
【図１０】
0005727358.tif 000011
【図１１】
0005727358.tif 000012
【図１２】
0005727358.tif 000013
【図１３】
0005727358.tif 000014
【図１４】
0005727358.tif 000015
【図１５】
0005727358.tif 000016
【図１６】
0005727358.tif 000017
【図１７】
0005727358.tif 000018
【図１８】
0005727358.tif 000019
【図１９】
0005727358.tif 000020
【図２０】
0005727358.tif 000021