メモリ回路と該メモリ回路をテストするセルフテスト回路とを備えた半導体装置であって、前記セルフテスト回路は、前記メモリ回路から出力される出力データ信号の各クロックサイクルにおけるビット値に対する期待値ビット列に含まれる一部のビット値を反転させたビット列に含まれるビット値を各クロックサイクルにおいてとる擬期待値信号を生成するとともに、各クロックサイクルにおける該出力データ信号と該擬期待値信号の比較を可能とする比較イネーブル信号を生成するテストパターン発生手段と、前記メモリ回路から出力された前記出力データ信号、ならびに、前記テストパターン発生手段から出力された前記擬期待値信号および前記比較イネーブル信号を受信し、前記比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて前記出力データ信号と前記擬期待値信号とを比較し、比較結果を表す比較結果信号を生成する比較手段と、前記比較手段から前記比較結果信号を受信し、受信した前記比較結果信号の各クロックサイクルにおけるビット値を保持するエラー保持手段と、を備えることを特徴とする半導体装置。前記比較手段は、前記出力データ信号と前記擬期待値信号の間の排他的論理和を求め、該排他的論理和と前記比較イネーブル信号の間の論理積を前記比較結果信号として生成することを特徴とする、請求項1に記載の半導体装置。前記エラー保持手段は、前記比較結果信号の各クロックサイクルにおけるビット値を保持するシフトレジスタであることを特徴とする、請求項1または2に記載の半導体装置。前記テストパターン発生手段から出力されたホールドイネーブル信号、および、前記比較手段から出力された前記比較結果信号を受信し、該ホールドイネーブル信号が活性状態である場合には、前記比較結果信号の変化の有無を表すビット値を保持し、それ以外の場合には、前記比較結果信号を保持することなく前記エラー保持手段に出力するフラグ保持手段をさらに備えることを特徴とする、請求項1ないし3のいずれか1項に記載の半導体装置。前記フラグ保持手段は、フリップフロップ、ANDゲートおよびORゲートを備え、前記ANDゲートは、前記ホールドイネーブル信号と前記フリップフロップの出力信号の論理積を生成し、前記ORゲートは、前記比較結果信号と前記ANDゲートの出力信号の論理和を生成し、前記フリップフロップは、前記ORゲートの出力信号をラッチすることを特徴とする、請求項4に記載の半導体装置。第1のメモリ回路から出力された第1の出力データ信号、ならびに、前記テストパターン発生手段から出力された前記擬期待値信号および前記比較イネーブル信号を受信し、前記比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて該第1の出力データ信号と前記擬期待値信号とを比較し、比較結果を表す第1の比較結果信号を生成する第1の比較手段と、第2のメモリ回路から出力された第2の出力データ信号、ならびに、前記テストパターン発生手段から出力された前記擬期待値信号および前記比較イネーブル信号を受信し、前記比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて該第2の出力データ信号と前記擬期待値信号とを比較し、比較結果を表す第2の比較結果信号を生成する第2の比較手段と、前記テストパターン発生手段から出力されたホールドイネーブル信号、および、前記第1の比較手段から出力された前記第1の比較結果信号を受信し、該ホールドイネーブル信号が活性状態である場合には、前記第1の比較結果信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、前記第1の比較結果信号をそのまま出力する第1のフラグ保持手段と、前記ホールドイネーブル信号、および、前記第2の比較手段から出力された前記第2の比較結果信号を受信し、前記ホールドイネーブル信号が活性状態である場合には、前記第2の比較結果信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、前記第2の比較結果信号をそのまま出力する第2のフラグ保持手段と、前記第1のフラグ保持手段の出力信号と前記第2のフラグ保持手段の出力信号との論理和を求めて前記エラー保持手段に出力するORゲートと、を備えることを特徴とする、請求項1に記載の半導体装置。前記第1の比較手段は、前記第1の出力データ信号と前記擬期待値信号の間の排他的論理和を求め、該排他的論理和と前記比較イネーブル信号の間の論理積を前記第1の比較結果信号として生成し、前記第2の比較手段は、前記第2の出力データ信号と前記擬期待値信号の間の排他的論理和を求め、該排他的論理和と前記比較イネーブル信号の間の論理積を前記第2の比較結果信号として生成することを特徴とする、請求項6に記載の半導体装置。前記第1のフラグ保持手段は、第1のフリップフロップ、第1のANDゲートおよび第1のORゲートを備え、前記第1のANDゲートは、前記ホールドイネーブル信号と前記第1のフリップフロップの出力信号の論理積を生成し、前記第1のORゲートは、前記第1の比較結果信号と前記第1のANDゲートの出力信号の論理和を生成し、前記第1のフリップフロップは、前記第1のORゲートから出力された信号をラッチし、前記第2のフラグ保持手段は、第2のフリップフロップ、第2のANDゲートおよび第2のORゲートを備え、前記第2のANDゲートは、前記ホールドイネーブル信号と前記第2のフリップフロップの出力信号の論理積を生成し、前記第2のORゲートは、前記第2の比較結果信号と前記第2のANDゲートの出力信号の論理和を生成し、前記第2のフリップフロップは、前記第2のORゲートから出力された信号をラッチすることを特徴とする、請求項6または7に記載の半導体装置。前記比較手段は、前記メモリ回路の各データ出力端子から出力された出力データ信号と前記擬期待値信号との排他的論理和を求める複数のXORゲートと、前記複数のXORゲートの出力信号の論理和を求めるORゲートと、前記ORゲートの出力信号と前記比較イネーブル信号との論理積を求め、前記比較結果信号として出力するANDゲートと、を備えることを特徴とする、請求項1ないし5のいずれか1項に記載の半導体装置。前記比較手段は、複数の比較フラグ保持回路を備え、前記複数の比較フラグ保持回路は、それぞれ、前記メモリ回路の各データ出力端子から出力された出力データ信号と前記擬期待値信号との排他的論理和を求めるXORゲートと、前記XORゲートの出力信号と前記比較イネーブル信号との論理積を求めるANDゲートと、前記テストパターン発生手段から出力されたホールドイネーブル信号、および、前記ANDゲートの出力信号を受信し、該ホールドイネーブル信号が活性状態である場合には、該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、該出力信号を保持することなく出力する第1のフラグ保持手段と、を備え、前記複数の比較フラグ保持回路のそれぞれの第1のフラグ保持手段の出力信号の論理和を前記比較結果信号とすることを特徴とする、請求項1または3に記載の半導体装置。前記複数の比較フラグ保持回路のそれぞれのフラグ保持手段から出力された信号の論理和を求めるORゲートと、前記テストパターン発生手段から出力されたホールドイネーブル信号、および、前記ORゲートの出力信号を受信し、該ホールドイネーブル信号が活性状態である場合には、該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を前記比較結果信号として出力し、それ以外の場合には、該出力信号を保持することなく前記比較結果信号として出力する第2のフラグ保持手段と、を備えることを特徴とする、請求項10に記載の半導体装置。以下の分析は、本発明者によってなされたものである。特許文献1に記載された半導体装置においては、セルフテスト回路BIST回路自身もメモリ回路RAMと同一の半導体装置上にあるため、電源電圧、温度条件等のテスト条件により誤判定が生じるおそれがある。この誤判定は、メモリ回路を備えた半導体装置の良品と不良品の区別を困難にするため、何らかの対策が必要とされる。例えば、BIST回路自身に想定以上の遅延サイクル越え、サイクルずれが存在する場合には、特許文献1に記載された半導体装置図17、図18では、RAMのアクセスタイムの異常サイクル越え、サイクルずれを検出できないおそれがある。図20は、特許文献1に記載された半導体装置において、このような誤判定が生じる場合について説明するためのタイミング図である。例えば、低電圧条件でのRAMテスト時に、BIST回路の期待値EXPDATAが、XORゲートG1にサイクル越えで到達し、比較イネーブル信号COMPENが、ANDゲートA20にサイクル越えで到達する場合、図20の太実線矢印で示すようになる。この条件下で、RAM112のアクセスタイムがサイクルを超えると太破線矢印のようになる。このとき、フェイルフラグ信号FAILFLAGは、正常動作時と比較して1サイクル遅れで動作する。RAM112の機能が正常である場合には、アクセスタイムのサイクル越えの有無に関係なく、最終的にフェイルフラグ信号FAILFLAGとして残るのは、同じ値f3=0となる。したがって、図20のような条件では、RAM112のアクセスタイムの異常が検出できず、誤判定となる。このように、特許文献1に記載されたBIST回路によると、RAM112のテスト結果の信頼性が低く、製造テスト用の条件電圧、温度等の決定も困難となるおそれがある。このように、特許文献1に記載された半導体装置では、電圧低下等による信号遅延による誤判定への対策が施されていない。すなわち、RAM112からの出力データ信号の遅延が判定ポイント例えば、動作クロックの立ち上がりを超えるような故障サイクルずれの故障があっても、セルフテスト回路が生成する比較イネーブル信号や期待値信号が1サイクル遅れる場合には、判定結果は良品PASSとなり、誤判定される。したがって、特許文献1に記載された半導体装置によると、RAMの読み出しデータ、期待値データ、比較イネーブル信号が同時に遅延するような状態を、不良品FAILとして判定することができない。一般に、半導体装置では製品仕様として、動作周波数が定義されている。一例として、電源電圧が2Vであり、動作周波数が100MHzである製品仕様を想定する。100MHzは、クロックサイクルタイムで10nsecに相当する。上記のRAMの読み出しデータの遅延が11nsecであれば、不良品である。しかし、特許文献1に記載された半導体装置の比較回路140によると、期待値データ、比較イネーブル信号の遅延が11nsecであればサイクル越え、サイクルずれ、FF20が1を取り込むことがないので、良品PASSであると判定される。すなわち、RAMの出力データの遅延時間不良に関しては、誤判定するおそれがある。そこで、メモリ回路からセルフテスト回路へ出力された出力データ信号、または、セルフテスト回路内における比較イネーブル信号もしくは期待値信号におけるクロックサイクルずれを検出できるようにすることが課題となる。本発明の一視点に係る半導体装置は、メモリ回路と該メモリ回路をテストするセルフテスト回路とを備えた半導体装置であって、前記セルフテスト回路は、前記メモリ回路から出力される出力データ信号の各クロックサイクルにおけるビット値に対する期待値ビット列に含まれる一部のビット値を反転させたビット列に含まれるビット値を各クロックサイクルにおいてとる擬期待値信号を生成するとともに、各クロックサイクルにおける該出力データ信号と該擬期待値信号の比較を可能とする比較イネーブル信号を生成するテストパターン発生手段と、前記メモリ回路から出力された前記出力データ信号、ならびに、前記テストパターン発生手段から出力された前記擬期待値信号および前記比較イネーブル信号を受信し、前記比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて前記出力データ信号と前記擬期待値信号とを比較し、比較結果を表す比較結果信号を生成する比較手段と、前記比較手段から前記比較結果信号を受信し、受信した前記比較結果信号の各クロックサイクルにおけるビット値を保持するエラー保持手段と、を備える。本発明に係る半導体装置によると、メモリ回路からセルフテスト回路へ出力された出力データ信号、または、セルフテスト回路内における比較イネーブル信号もしくは期待値信号におけるクロックサイクルずれを検出することが可能となる。はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。図1は、本発明に係る半導体装置の構成を一例として示すブロック図である。図1を参照すると、半導体装置は、メモリ回路20と、セルフテスト回路とを備える。セルフテスト回路は、テストパターン発生手段11、比較手段12およびエラー保持手段13を備える。テストパターン発生手段11は、擬期待値信号および比較イネーブル信号を生成する。擬期待値信号は、メモリ回路20から出力される出力データ信号の各クロックサイクルにおけるビット値に対する期待値ビット列に含まれる一部のビット値を反転させたビット列に含まれるビット値を各クロックサイクルにおいてとる。比較イネーブル信号は、各クロックサイクルにおける出力データ信号と擬期待値信号の比較を可能とする。比較手段12は、メモリ回路20から出力された出力データ信号、ならびに、テストパターン発生手段11から出力された擬期待値信号および比較イネーブル信号を受信し、比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて出力データ信号と擬期待値信号とを比較し、比較結果を表す比較結果信号を生成する。エラー保持手段13は、比較手段12から比較結果信号を受信し、受信した比較結果信号の各クロックサイクルにおけるビット値を保持する展開形態1。半導体装置は、例えば単一又は複数の半導体チップが樹脂等で単一のパッケージに封止されるものであり、他の電子部品とともに配線基板に実装されるものである。メモリ回路とロジック回路は単一のパッケージ内において、同一の半導体チップ上に設けられてもよいし、異なるチップ上にそれぞれ設けられてもよい。比較手段12は、比較器CMP1およびANDゲートAND1を有していてもよい。比較器CMP1は、出力データ信号と擬期待値信号の間の排他的論理和を求める。ANDゲートAND1は、比較器CMP1から出力された排他的論理和と比較イネーブル信号の間の論理積を比較結果信号として生成する展開形態2。また、エラー保持手段13は、比較結果信号の各クロックサイクルにおけるビット値を保持するシフトレジスタであってもよい展開形態3。図2は、図1に示した半導体装置の動作を一例として示すタイミング図である。なお、図2では、メモリ回路20をRAMとし、エラー保持手段13をシフトレジスタとした。テストパターン発生手段11は、図2に示すように、RAM出力データの期待値を故意に反転させた擬期待値信号を生成する。すなわち、テストパターン発生手段11は、比較手段12の出力が変化する0から1、1から0の変化を含む一意のビット列となるような擬期待値信号をテストパターンとして生成する。図2の太破線で示した箇所において、擬期待値信号は、RAM出力データ信号の期待値を反転させた値をとる。また、シフトレジスタは、比較手段12の出力をクロックサイクル毎に取得する。このとき、セルフテスト回路内における信号比較イネーブル信号、擬期待値信号と、セルフテスト回路がRAMから受信する信号RAM出力データ信号の双方が同時にサイクルずれを起こした場合、シフトレジスタに取得されるビット列が1ビットずれる。具体的には、図2に示したテストパターンによると、サイクルずれがない場合にシフトレジスタが01010010100000を保持するタイミングにおいて、サイクルずれが生じた場合には、シフトレジスタは00101001010000を保持することになる。したがって、本発明の半導体装置によると、サイクルずれこの場合には、同時サイクルずれが生じたことを検出することができる。なお、テストパターン発生手段11は、メモリ回路20からセルフテスト回路に出力される出力データ信号、ならびに、セルフテスト回路内における比較イネーブル信号および期待値信号の3つの信号のいかなる組み合わせのサイクルずれも検出できるようなテストパターンを生成することが好ましい。本発明に係る半導体装置では、テストパターン発生手段11で、期待値を故意に反転させて、クロックサイクル毎の比較結果が0から1、1から0に変化するパターンを発生する。また、比較結果をサイクル毎に取得するシフトレジスタを設け、テストパターン発生回路11でシフト動作/保持動作を制御する。本発明に係る半導体装置によると、特許文献1に記載された半導体装置とは異なり、サイクルずれが生じたことを検出することが可能となる。具体的には、比較手段12で発生するクロックサイクル毎の判定結果を、遅延故障が発生しにくいエラー保持手段13例えば、シフトレジスタに取り込むことで、サイクルずれを検出する。テストパターン発生手段11は、フェイル判定結果に0と1が混じるようなパターンを発生する。フェイル判定結果の1は、期待値を故意に反転させて実現する。このフェイル判定結果をシフトレジスタに取り込み、シフトレジスタに格納された情報を期待ビット列と照合することでセルフテスト回路自身のテストを含むRAMテストを行うことが可能となる。本発明に係る半導体装置によると、少なくともシフトレジスタ自身は正常動作するすなわち、クロックサイクルずれがないという条件下で、セルフテスト回路の他の部分のクロックサイクルずれやRAMのリードアクセスのクロックサイクルずれを検出でき、信頼性の高いRAMテストが可能となる。上述したように、SoC等の内蔵RAMのテスト用に、MBIST回路が同一チップに搭載された場合において、特許文献1に記載された半導体装置によると、電圧、温度条件等により誤判定が生じうる。すなわち、RAMのアクセスタイムが、システムのクロックサイクルを超えていても、PASSと判定されるおそれがある。このとき、半導体装置の良品と不良品の選別が困難となる。しかしながら、本発明に係る半導体装置によると、メモリ回路20例えばRAMから出力された出力データ信号、ならびに、テストパターン発生手段11から出力された比較イネーブル信号および期待値信号のうちの少なくともいずれかの信号においてサイクルずれが生じた場合に、これを検出することが可能となる。図3は、図1の半導体装置の変形例の構成を示すブロック図である。図3を参照すると、半導体装置は、故障情報を保持するためのフラグ保持手段14をさらに備えている。また、図3の半導体装置は、フラグ保持手段14のホールド機能を抑制し、パイプラインレジスタとして動作させる機能を有する。すなわち、図3の半導体装置は、サイクル毎の比較結果の中の不一致情報を検出してフラグ情報として保持するフラグ保持手段14を備え、フラグ保持機能を抑制しパイプラインレジスタとして動作する機能を有する。また、エラー保持手段13例えばシフトレジスタは、フラグ保持手段14の出力をサイクル毎に取得する。具体的には、図3を参照すると、フラグ保持手段14は、テストパターン発生手段11から出力されたホールドイネーブル信号、および、比較手段12から出力された比較結果信号を受信し、ホールドイネーブル信号が活性状態である場合には、比較結果信号の変化の有無を表すビット値を保持し、それ以外の場合には、比較結果信号を保持することなくエラー保持手段13に出力する展開形態4。また、フラグ保持手段14は、フリップフロップFF2、ANDゲートAND2およびORゲートOR2を有していてもよい。ANDゲートAND2は、ホールドイネーブル信号HOLDENとフリップフロップFF2の出力信号の論理積を生成する。ORゲートOR2は、比較結果信号とANDゲートAND2の出力信号の論理和を生成する。フリップフロップFF2は、ORゲートの出力信号をラッチする展開形態5。このように、図3に示した半導体装置は、メモリ回路例えばRAMとメモリ回路をテストするセルフテスト回路を含む半導体集積装置であって、セルフテスト回路は、テストクロックサイクル毎のフェイル判定信号をフラグ情報フェイルの有無情報として蓄積するフラグ保持手段14を備えている。ここで、フラグ保持回路14はレジスタ回路例えばフリップフロップFF2を有している。また、フラグ保持回路14は、保持機能を抑制し、レジスタ回路FF2をフェイル判定信号用パイプラインレジスタとして動作する機能を有する。さらに、セルフテスト回路は、テストパターン発生手段11を備えている。テストパターン発生手段11は、フェイル判定信号が0から1および1から0に変化する状態を含むようにテストパターンを発生する。また、セルフテスト回路は、上記レジスタパイプラインレジスタから出力されるフェイル判定信号を格納するためのエラー保持手段13例えば、直列シフトレジスタを備える。ここで、直列シフトレジスタのシフト動作と保持動作の切り替えは、テストパターン発生手段11によって制御される。図3に示した半導体装置によると、ホールドイネーブル信号を活性状態とするとともに、擬期待値信号として、メモリ回路20の出力データの期待値を出力することで、メモリ回路の故障を検出することができる。一方、ホールドイネーブル信号を非活性状態とするとともに、擬期待値信号として、メモリ回路20の出力データの期待値の一部を反転した信号を出力することで、出力データ信号、擬期待値信号および比較イネーブル信号の少なくともいずれかにおいてサイクルずれが生じたことを検出することができる。すなわち、図3の半導体装置によると、メモリ回路20のテスト、および、サイクルずれの検出の双方を実現することが可能となる。図4は、図3に示した半導体装置のさらなる変形例の構成を示すブロック図である。図4に示した半導体装置によると、エラー保持手段13例えばシフトレジスタを複数のメモリ回路20a、20b例えばRAMで共有することができる。複数のメモリ回路20a、20bでエラー保持手段13を共有するために、エラー保持手段13のシリアル入力にORゲートOR3が設けられている。図4を参照すると、半導体装置は、第1の比較手段12a、第2の比較手段12b、第1のフラグ保持手段14a、第2のフラグ保持手段14b、および、ORゲートOR3を備える。第1の比較手段12aは、第1のメモリ回路20aから出力された第1の出力データ信号、ならびに、テストパターン発生手段11から出力された擬期待値信号および比較イネーブル信号を受信し、比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて第1の出力データ信号と擬期待値信号とを比較し、比較結果を表す第1の比較結果信号を生成する。一方、第2の比較手段12bは、第2のメモリ回路20bから出力された第2の出力データ信号、ならびに、テストパターン発生手段11から出力された擬期待値信号および比較イネーブル信号を受信し、比較イネーブル信号が活性状態である期間内の各クロックサイクルにおいて第2の出力データ信号と擬期待値信号とを比較し、比較結果を表す第2の比較結果信号を生成する。第1のフラグ保持手段14aは、テストパターン発生手段11から出力されたホールドイネーブル信号HOLDEN、および、第1の比較手段12aから出力された第1の比較結果信号を受信し、ホールドイネーブル信号HOLDENが活性状態である場合には、第1の比較結果信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、第1の比較結果信号をそのまま出力する。一方、第2のフラグ保持手段14bは、ホールドイネーブル信号HOLDEN、および、第2の比較手段12bから出力された第2の比較結果信号を受信し、ホールドイネーブル信号HOLDENが活性状態である場合には、第2の比較結果信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、第2の比較結果信号をそのまま出力する。ORゲートOR3は、第1のフラグ保持手段14aの出力信号と第2のフラグ保持手段14bの出力信号との論理和を求めてエラー保持手段13に出力する展開形態6。また、第1の比較手段12aは、第1の出力データ信号と擬期待値信号の間の排他的論理和を求める比較器CMP1aと、求めた排他的論理和と比較イネーブル信号の間の論理積を第1の比較結果信号として生成するANDゲートAND1aとを有していてもよい。同様に、第2の比較手段12bは、第2の出力データ信号と擬期待値信号の間の排他的論理和を求める比較器CMP1bと、求めた排他的論理和と比較イネーブル信号の間の論理積を第2の比較結果信号として生成するANDゲートAND1bとを有していてもよい展開形態7。さらに、第1のフラグ保持手段14aは、第1のフリップフロップF2a、第1のANDゲートAND2aおよび第1のORゲートOR2aを有していてもよい。第1のANDゲートAND2aは、ホールドイネーブル信号HOLDENと第1のフリップフロップFF2aの出力信号の論理積を生成する。第1のORゲートOR2aは、第1の比較結果信号と第1のANDゲートAND2aの出力信号の論理和を生成する。第1のフリップフロップFF2aは、第1のORゲートOR2aから出力された信号をラッチする。同様に、第2のフラグ保持手段14bは、第2のフリップフロップFF2b、第2のANDゲートAND2bおよび第2のORゲートOR2bを有していてもよい。第2のANDゲートAND2bは、ホールドイネーブル信号HOLDENと第2のフリップフロップFF2bの出力信号の論理積を生成する。第2のORゲートOR2bは、第2の比較結果信号と第2のANDゲートAND2bの出力信号の論理和を生成する。第2のフリップフロップFF2bは、第2のORゲートOR2bから出力された信号をラッチする展開形態8。図4に示した半導体装置では、フラグ保持手段14a、14bは、メモリ回路例えばRAM毎のフェイルフラグを保持する。かかる半導体装置によると、複数のメモリ回路20a、20bによって、エラー保持手段13を共有することで、セルフテスト回路の面積の増大を防ぐことが可能となる。図5を参照すると、図1の半導体装置における比較手段12は、メモリ回路例えばRAM40の各データ出力端子Dout[0]~Dout[3]から出力された出力データ信号と擬期待値信号EXPDATAとの排他的論理和を求める複数のXORゲートG1と、複数のXORゲートG1の出力信号の論理和を求めるORゲートG20と、ORゲートG20の出力信号と比較イネーブル信号との論理積を求め、上記比較結果信号として出力するANDゲートA20と、を備えていてもよい展開形態9。図9を参照すると、図1の半導体装置における比較手段12は、複数の比較フラグ保持回路V0~V3を備えていてもよい。比較フラグ保持回路V0~V3は、それぞれ、メモリ回路例えばRAM40の各データ出力端子Dout[0]~Dout[3]から出力された出力データ信号と擬期待値信号との排他的論理和を求めるXORゲートG1と、XORゲートG1の出力信号と比較イネーブル信号COMPENとの論理積を求めるANDゲートA30と、テストパターン発生回路31から出力されたホールドイネーブル信号HOLDEN、および、ANDゲートA30の出力信号を受信し、ホールドイネーブル信号HOLDENが活性状態である場合には、当該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、当該出力信号を保持することなく出力するフラグ保持手段ANDゲートA31、ORゲートG31、フリップフロップFF30と、を有していてもよい。このとき、比較フラグ保持回路V0~V3のそれぞれのフラグ保持手段の出力信号の論理和を上記比較結果信号とする展開形態10。図12を参照すると、半導体装置は、比較フラグ保持回路V0~V3のそれぞれのフラグ保持手段から出力された信号の論理和を求めるORゲートG20と、テストパターン発生回路32から出力されたホールドイネーブル信号HOLDEN2、および、ORゲートG20の出力信号を受信し、ホールドイネーブル信号HOLDEN2が活性状態である場合には、当該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を上記比較結果信号として出力し、それ以外の場合には、当該出力信号を保持することなく上記比較結果信号として出力するフラグ保持手段ANDゲートA21、ORゲートG21、フリップフロップFF20と、を有していてもよい展開形態11。以下、第1ないし第4の実施形態に係る半導体装置について、図面を参照して説明する。<実施形態1>第1の実施形態に係る半導体装置について、図面を参照して説明する。図5は、本実施形態の半導体装置の構成を一例として示すブロック図である。図5を参照すると、半導体装置は、RAM40と、RAM40をテストするためのセルフテスト回路とを備える。セルフテスト回路は、テストパターン発生回路31、比較回路U0~U3、ORゲートG20、ANDゲートA20、A21、ORゲートG21、フリップフロップFF20、および、シフトレジスタ33を備える。比較回路U0~U3は、それぞれ、XORゲートG1を備える。XORゲートは、RAM40の各データ出力端子Dout[0]~Dout[3]から出力された出力データ信号DO[]と擬期待値信号EXP[]との排他的論理和を求める。ORゲートG20は、比較回路U0~U3のそれぞれのXORゲートG1の出力信号の論理和を求める。ANDゲートA20は、ORゲートG20と比較イネーブル信号COMPENとの論理積を求める。ANDゲートA21は、ホールドイネーブル信号HOLDENとフリップフロップFF20の出力信号の論理積を生成する。ORゲートOR21は、ANDゲートA20の出力信号とANDゲートA21の出力信号の論理和を生成する。フリップフロップFF20は、ORゲートOR21の出力信号をラッチする。シフトレジスタ33は、フリップフロップFF20からの出力信号を保持する。本実施形態の半導体装置では、ORゲートG21から出力されるフェイルフラグ信号FAILFLAGの保持機能を制御できるように、ANDゲートA21が設けられている。また、テストパターン発生回路31は、この保持機能を制御するためのホールドイネーブル信号を生成する。ANDゲートA21には、テストパターン発生回路31から出力されたホールドイネーブル信号HOLDENが接続されている。また、本実施形態の半導体装置では、フェイルフラグ信号FAILFLAGをキャプチャするためのエラー情報取得回路としてシフトレジスタ33が設けられている。テストパターン発生回路31は、フェイルフラグ信号FAILFLAGのキャプチャを制御するシフトイネーブル信号CAPENを生成する。シフトレジスタ33には、テストパターン発生回路31から出力されたシフトイネーブル信号CAPENが接続されている。図6は、シフトレジスタ33の構成を一例として示すブロック図である。シフトレジスタ33は、一例として、図6に示すようなイネーブル制御付のシフトレジスタとしてもよい。図6を参照すると、シフトレジスタ33は、前段のレジスタの出力信号を後段のレジスタの入力信号とするように互いに接続されたレジスタSR[0]~SR[13]を備える。なお、ここでは、一例として、シフトレジスタの段数を14段としたが、シフトレジスタの段数はこれに限定されない。レジスタSR[0]~SR[13]は、それぞれ、セレクタSEL80およびフリップフロップFF80を備える。セレクタSEL80は、シフトイネーブル信号ENが1である場合には、データ信号Dを選択してフリップフロップFF80へ出力し、シフトイネーブル信号ENが0である場合には、フリップフリップFF80の出力信号Qを選択してフリップフロップFF80へ出力する。フリップフロップFF80は、クロック信号CLKに応じてセレクタSEL80の出力信号をラッチする。サイクルずれテストの結果は、シフトイネーブル信号がEN=1の状態で、シフトデータ入力端子SIからサイクルごとにシフトレジスタ33にシフトインして格納される。また、テスト結果は、テスト終了にシフトデータ出力端子SOからシリアル出力される。このとき、クロック信号CLKを低速サイクルタイム大で動作させてもよい。本実施形態の半導体装置は、ホールドイネーブル信号がHOLDEN=1の状態において、特許文献1に記載された半導体装置図18と同一の動作を行う。したがって、ホールドイネーブル信号がHOLDEN=1の状態では、RAM40のテストを行うことができるものの、信号RAM40からの出力データ信号、期待値信号、比較イネーブル信号のサイクルずれを検出することはできない図19、図20参照。一方、本実施形態の半導体装置は、ホールドイネーブル信号がHOLDEN=0の状態では、後述のように、サイクルずれを検出できるものの、RAM40のテストを行うことはできない。すなわち、本実施形態の半導体装置によると、ホールドイネーブル信号がHOLDEN=0の状態で行われるサイクルずれテストと、ホールドイネーブル信号がHOLDEN=1の状態で行われるRAMテストとを併用することで、RAM40のみならずセルフテスト回路を含む信頼性の高いテストを行なうことができる。図7は、本実施形態の半導体装置の正常動作時信号のクロックサイクルずれがない場合のタイミング図である。図7において、dとpとは互いに反転データである。図7を参照すると、テストパターン発生回路31は、RAM40から出力される出力データ信号Doutの期待値の一部のビットを反転した擬期待値信号EXPDATAを生成する。第4サイクルの始まりにおけるクロック信号CLKの立ち上がりエッジの時点で、RAM40からの出力データ信号DOの状態はdであり、擬期待値信号EXPの状態はpであるから、両者は不一致となる。しかし、この時点において、ANDゲートA20は非活性状態の比較イネーブル信号COMPENを受信しているため、ロウレベルのエラー信号ERRを出力する。次に、第5サイクルの始まりにおけるクロック信号CLKの立ち上がりエッジの時点で、RAM40からの出力データ信号DOの状態はdであり、擬期待値信号EXPの状態はpであるから、両者は不一致となる。また、この時点において、ANDゲートA20は活性状態の比較イネーブル信号COMPENを受信しているため、ハイレベルのエラー信号ERRを出力する。次に、第6サイクルの始まりにおけるクロック信号CLKの立ち上がりエッジの時点で、RAM40からの出力データ信号DOの状態はdであり、擬期待値信号EXPの状態はpであるから、両者は不一致となる。しかし、この時点において、ANDゲートA20は非活性状態の比較イネーブル信号COMPENを受信しているため、ロウレベルのエラー信号ERRを出力する。次に、第7サイクルの始まりにおけるクロック信号CLKの立ち上がりエッジの時点で、RAM40からの出力データ信号DOの状態はdであり、擬期待値信号EXPの状態はpであるから、両者は不一致となる。また、この時点において、ANDゲートA20は活性状態の比較イネーブル信号COMPENを受信しているため、ハイレベルのエラー信号ERRを出力する。次に、第8サイクルの始まりにおけるクロック信号CLKの立ち上がりエッジの時点で、RAM40からの出力データ信号DOの状態はdであり、擬期待値信号EXPの状態はdであるから、両者は一致する。このとき、ANDゲートA20はロウレベルのエラー信号ERRを出力する。以下、同様に、比較イネーブル信号COMPENが活性状態の期間において、RAM40からの出力データ信号DOとテストパターン発生回路31からの擬期待値信号EXPとの比較が行われる。ホールドイネーブル信号はHOLDEN=0であることから、ANDゲートA21はつねに0を出力し、ORゲートG21は、ANDゲートA20から出力されたエラー信号ERRをそのままフリップフロップFF20へ出力する。また、フリップフロップFF20は、ORゲートG21から受信した信号を1サイクル遅延させてシフトレジスタ33へ出力する。最終的に、シフトレジスタ33は、クロックサイクル18の期間において、値s[0]~s[13]として01010010100000を保持する。一方、図8は、本実施形態の半導体装置の異常動作時信号のクロックサイクルずれがある場合のタイミング図である。図8は、一例として、RAM40からの出力データ信号DOがサイクルずれ図8の太破線矢印を起こすと同時に、擬期待値信号EXPDATAおよび比較イネーブル信号COMPENもサイクルずれ図8の太実線矢印を起こした場合のタイミング図を示す。この場合におけるANDゲートA20の出力信号は、クロックサイクルずれがない場合図7と比較して、1クロックサイクルだけ遅延した信号となる。最終的に、シフトレジスタ33は、クロックサイクル18の期間において、値s[0]~s[13]として00101001010000を保持する。図7および図8に示すように、信号のクロックサイクルずれの有無によって、シフトレジスタ33に格納される値s[0]~s[13]が変化する。すなわち、図8のようにシフトずれが生じた場合には、シフトレジスタ33には値s[0]~s[13]として00101001010000が格納される。この値は、シフトずれが生じていない場合図7にシフトレジスタ33に格納される値s[0]~s[13]である01010010100000と比較すると1ビットだけずれている。したがって、本実施形態の半導体装置によると、信号のクロックサイクルずれを検出することができ、半導体装置の良品および不良品を精度良く判別することが可能となる。<実施形態2>第2の実施形態に係る半導体装置について、図面を参照して説明する。本実施形態の半導体装置は、特許文献2の図24に記載された半導体装置に対して本発明を適用した場合に相当する。なお、特許文献2においてはフェイル信号を負論理で表現したが、本実施形態図9では正論理で表現する。図9は、本実施形態の半導体装置の構成を一例として示すブロック図である。図9を参照すると、半導体装置は、RAM40と、RAM40をテストするためのセルフテスト回路とを備える。セルフテスト回路は、テストパターン発生回路31、比較フラグ保持回路V0~V3、ORゲートG20、および、シフトレジスタ33を備える。比較フラグ保持回路V0~V3は、それぞれ、XORゲートG1、ANDゲートA30、A31、ORゲートG31、および、フリップフロップFF30を備える。XORゲートG1は、RAM40の各データ出力端子Dout[0]~Dout[3]から出力された出力データ信号と擬期待値信号との排他的論理和を求める。ANDゲートA30は、XORゲートG1の出力信号と比較イネーブル信号COMPENとの論理積を求める。フラグ保持手段ANDゲートA31、ORゲートG31、フリップフロップFF30は、テストパターン発生回路31から出力されたホールドイネーブル信号HOLDEN、および、ANDゲートA30の出力信号を受信し、ホールドイネーブル信号HOLDENが活性状態である場合には、当該出力信号の変化の有無を表すビット値を保持するとともに、保持したビット値を出力し、それ以外の場合には、当該出力信号を保持することなく出力する。ORゲートG20は、比較フラグ保持回路V0~V3のそれぞれのフラグ保持手段の出力信号の論理和を求めて、シフトレジスタ33へ出力する。本実施形態の半導体装置は、データI/Oビット毎のフェイルフラグ情報が保持できるようにフリップフロップFF30、および、ORゲートG31が設けられている点で、第1の実施形態の半導体装置図5と相違する。また、本実施形態の半導体装置には、サイクルずれテストを行なう目的で、ANDゲートA31が設けられている。本実施形態の半導体装置においては、比較フラグ保持回路V0~V3は、それぞれ、RAM40のI/O毎のフェイルフラグを保持する。また、半導体装置は、I/O毎のフェイルフラグ情報の論理和演算を行ない、RAM単位のフェイルフラグ情報を作成するORゲートG20をさらに備えている。テスト結果格納用の直列シフトレジスタ33は、このRAM毎のフェイルフラグを保持する。次に、本実施形態の半導体装置の動作について説明する。まず、通常のRAMテストでは、ホールドイネーブル信号をHOLDEN=1に設定し、データI/Oビット毎のフェイルフラグ情報をフリップフロップFF30に保持する。データI/Oビット毎のフェイルフラグ情報DATAFLAG[0]~[3]は、ORゲートG20でOR演算され、RAM40に対するフェイル情報信号ERRとなる。なお、ホールドイネーブル信号がHOLDEN=1の場合には、フェイル情報信号ERRはRAM40のフェイルフラグを表す。一方、サイクルずれテストでは、ホールドイネーブル信号をHOLDEN=0に設定する。データI/Oビット毎の判定結果DATAERRは、フリップフロップFF30を介して1サイクル遅れのDATAFLAG信号となる。このとき、ホールドイネーブル信号がHOLDEN=0であるため、フェイルフラグ情報はフリップフリップFF30に保持されない。データI/Oビット毎のフェイルフラグ情報DATAFLAG[0]~[3]は、ORゲートG20でOR演算され、RAM40に対するフェイル情報信号ERRとなる。フェイル情報信号ERRは、第1の実施形態の場合と同様に、シフトレジスタ33に取り込まれる。図10および図11は、本実施形態の半導体装置のサイクルずれテスト動作の波形を示す。図10は、正常動作時信号のサイクルずれがない場合の動作を示す。一方、図11は、異常動作時信号のサイクルずれがある場合の動作を示す。図10および図11に示すように、信号のクロックサイクルずれの有無によって、シフトレジスタ33に格納される値s[0]~s[13]が変化する。すなわち、図11のようにシフトずれが生じた場合には、シフトレジスタ33には値s[0]~s[13]として00101001010000が格納される。この値は、シフトずれが生じていない場合図10にシフトレジスタ33に格納される値s[0]~s[13]、すなわち、01010010100000と比較すると、1ビットだけずれている。したがって、本実施形態の半導体装置によると、第1の実施形態の半導体装置と同様に、信号のクロックサイクルずれを検出することができる。また、本実施形態の半導体装置によると、各I/O毎のフェイルフラグ情報DATAFLAGは、特許文献1、2に示されているような直列シフト機能を付加することで、冗長救済用情報として利用することができる。<実施形態3>第3の実施形態に係る半導体装置について、図面を参照して説明する。図12は、本実施形態に係る半導体装置の構成を一例として示すブロック図である。本実施形態の半導体装置は、第2の実施形態の半導体装置図9に対して、さらに、第1の実施形態の半導体装置図5におけるRAM毎のフェイルフラグレジスタを追加した構成を有する。本実施形態の半導体装置においては、比較フラグ保持回路V0~V3は、それぞれ、RAM40のI/O毎のフェイルフラグを保持する。ORゲートG20は、I/Oフェイルフラグ情報の論理和演算を行なう。RAMフェイルフラグ保持回路ANDゲートA21、ORゲートG21、フリップフロップFF20は、ORゲートG20からの論理和演算出力を入力とし、RAM毎のフェイルフラグを保持する。テスト結果格納用直列シフトレジスタ33は、このRAMフェイルフラグ保持回路のレジスタの出力を格納する。次に、本実施形態の半導体装置の動作について説明する。まず、通常のRAMテストでは、ホールドイネーブル信号をHOLDEN=1に設定し、データI/Oビット毎のフェイルフラグ情報をフリップフロップFF30に保持する。データI/Oビット毎のフェイルフラグ情報DATAFLAG[0]~[3]は、ORゲートG20でOR演算され、RAM40に対するフェイル情報信号ERRとなる。フェイル情報信号ERRは、フリップフロップFF20に取り込まれる。ホールドイネーブル信号がHOLDEN2=1である場合には、フェイル情報信号ERRは、ANDゲートA21およびORゲートG21を通るフィードバック回路により、RAM毎のフェイルフラグ情報として保持される。一方、サイクルずれテストでは、ホールドイネーブル信号をHOLDEN=0、HOLDEN2=0に設定する。データI/Oビット毎の判定結果DATAERRは、フリップフロップFF30を介して1サイクル遅れのDATAFLAG信号となる。このとき、ホールドイネーブル信号がHOLDEN=0であるため、フェイルフラグ情報はフリップフロップFF30に保持されない。データI/Oビット毎のフェイルフラグ情報DATAFLAG[0]~[3]は、ORゲートG20でOR演算され、RAM40に対するフェイル情報信号ERRとなる。フェイル情報信号ERRは、フリップフロップFF20を介して1サイクル遅れのフェイルフラグ信号FAILFLAGとなる。なお、ホールドイネーブル信号がHOLDEN2=0であるため、フェイル情報信号ERRはフェイルフラグとしてフリップフロップFF20に保持されない。なお、本実施形態の半導体装置では、FAILFLAG信号は、第2の実施形態の半導体装置図9と比較して1サイクル遅れとなる。そこで、本実施形態では、シフトイネーブル信号CAPENの1サイクル遅れのシフトイネーブル信号CAPEN2を用いて、シフトレジスタ33を制御している。フリップフロップFF70は、シフトイネーブル信号CAPENを1サイクルだけ遅延させて、シフトイネーブル信号CAPEN2として出力する。図13および図14は、本実施形態の半導体装置のサイクルずれテスト動作の波形を示す。図13は、正常動作時信号のサイクルずれがない場合の動作を示す。一方、図14は、異常動作時信号のサイクルずれがある場合の動作を示す。図13および図14に示すように、信号のクロックサイクルずれの有無によって、シフトレジスタ33に格納される値s[0]~s[13]が変化する。すなわち、図14のようにシフトずれが生じた場合には、シフトレジスタ33には値s[0]~s[13]として00101001010000が格納される。この値は、シフトずれが生じていない場合図13にシフトレジスタ33に格納される値s[0]~s[13]、すなわち、01010010100000と比較すると、1ビットだけずれている。したがって、本実施形態の半導体装置によると、第1および第2の実施形態半導体装置と同様に、信号のクロックサイクルずれを検出することができる。また、本実施形態の半導体装置によると、第2の実施形態の半導体装置と同様に、各I/O毎のフェイルフラグ情報DATAFLAGを冗長救済用情報として利用することができる。さらに、本実施形態の半導体装置によると、RAM単位のフェイルフラグ情報を冗長救済用情報として利用することもできる。<実施形態4>第4の実施形態に係る半導体装置について、図面を参照して説明する。本実施形態の半導体装置は、複数のRAMを備え、複数のFAILFLAG信号の間で、シフトレジスタ33を共有する。図15および図16は、本実施形態に係る半導体装置の構成を一例として示すブロック図である。図15aは、第1の実施形態の半導体装置において、複数のフェイルフラグ信号FAILFLAGの間で、シフトレジスタ33を共有する場合を示す。フリップフロップFF20[0]は第1のRAMに対するフェイルフラグ信号FAILFLAG[0]を保持ないし出力し、フリップフロップFF20[1]は第2のRAMに対するフェイルフラグ信号FAILFLAG[1]を保持ないし出力する。この場合には、複数のフェイルフラグ信号の論理和を求めるORゲートG70を挿入する。また、図15bは、第2の実施形態の半導体装置において、複数のフェイル情報信号ERRフェイルフラグ信号FAILFLAGの間で、シフトレジスタ33を共有する場合を示す。図15bにおいて、下段の比較フラグ保持回路は第1のRAMに対するフェイル情報信号ERR[2]を生成するとともに保持ないし出力し、上段の比較フラグ保持回路は第2のRAMに対するフェイル情報信号ERR[3]を生成するとともに保持ないし出力する。この場合には、複数のフェイル情報信号ERRの論理を求めるORゲートG70を挿入する。さらに、図15cは、第3の実施形態の半導体装置において、複数のフェイルフラグ信号FAILFLAGの間で、シフトレジスタ33を共有する場合を示す。フリップフロップFF20[4]は第1のRAMに対するフェイルフラグ信号FAILFLAG[0]を保持ないし出力し、フリップフロップFF20[5]は第2のRAMに対するフェイルフラグ信号FAILFLAG[1]を保持ないし出力する。この場合には、複数のフェイルフラグ信号FAILFLAGの論理和を求めるORゲートG70を挿入する。図15a~cに示すように、複数のRAMを備えた半導体では、ORゲートG70が各RAMに対応する複数のRAM毎のフェイルフラグ情報を論理和演算し、前記テスト結果格納用の直列シフトレジスタ33は、ORゲートG70の出力信号を格納する。図16は、第1ないし第3の実施形態の半導体装置が混在する場合に、複数のFAILFLAG信号の間で、シフトレジスタ33を共有する場合を示す。図16に示す場合には、フリップフロップFF80[0]~FF80[4]およびORゲートG70が追加される。第1の実施形態の半導体装置におけるFAILFLAG[0]、[1]、および、第2の実施形態の半導体装置におけるFAILFLAG[2]、[3]は、第3の実施形態の半導体装置のFAILFLAG[4]、[5]と比較して1サイクルだけ進んでいる。そこで、フリップフロップFF80[0]~FF80[3]を挿入し、サイクル調整した後、ORゲートG70でOR演算を行なうようにする。すなわち、図16の半導体装置では、複数のRAM毎のフェイルフラグ情報のサイクルを合わせるサイクル調整回路をさらに備えている。図15および図16においては、一例として、数個のフェイルフラグ信号FAILFLAGの間でOR演算を行う構成を示したが、数10から数100のフェイルフラグ信号FAILFLAGをOR演算するようにしてもよい。本実施形態の半導体装置図15、図16よると、シフトレジスタ33を共有することにより、回路規模を削減する効果がもたらされる。上記第1ないし第4の実施形態に係る半導体装置について、種々の変形が可能である。第2の実施形態の半導体装置図9および第3の実施形態の半導体装置図12では、明示していないが、特許文献1の図2、または、特許文献2の図24、図29のように、データI/Oビット毎のフェイルフラグ用のフリップフロップを直列接続する機能を追加してもよい。これにより、故障I/O位置の判定が可能となる。また、この判定結果により、RAMの冗長救済を行なうことも可能となる。また、第3の実施形態の半導体装置図12において、ホールドイネーブル信号HOLDENおよびHOLDEN2を、共通接続としてもよい。さらに、シフトレジスタを複数のRAMで共有する場合には、ORゲートG70はフリップフロップを含むパイプライン化されたOR演算回路でもよい。この場合には、パイプライン段数に応じて、シフトイネーブル信号CAPENまたはCAPEN2を遅延させる。なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示請求の範囲を含むの枠内において、さらにその基本的技術思想に基づいて、実施形態の変更調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素各請求項の各要素、各実施形態の各要素、各図面の各要素等を含むの多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。