(57)【要約】【課題】ＲＡＭ等の内部の少なくとも一つのメモリ回路の救済が可能であり、かつ集積度の向上を図った半導体集積回路を得る。【解決手段】エンコード回路３は故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］を受け、これら８ビットの故障ビットデータｆａｉｌ［７：０］をエンコードして４ビット（圧縮ビット数）の符号化データｅｆ［３：０］を順次出力する。この符号化データｅｆ［３：０］によってＲＡＭ１についての種々の故障情報を示すことができる。キャプチャ回路４は所定のラッチ条件を満足する符号化データｅｆ［３：０］をラッチデータｃｆ［３：０］としてラッチする。キャプチャ回路４はラッチデータｃｆ［３：０］の直列シフト動作が可能であり、ラッチデータｃｆ［３：０］をシリアルデータ出力Ｓｏとしてシリアルに出力することができる。【選択図】図１４
2009146487.tif 000002
【特許請求の範囲】
【請求項１】
各々が冗長メモリ部を有する複数のメモリ回路を備え、前記複数のメモリ回路はそれぞれ少なくとも１ビットのデータ入出力機能を有し、
前記複数のメモリ回路に対応して設けられ、前記複数のメモリ回路のデータ出力と期待値とを比較して比較結果を得る複数の比較器と、
前記複数の比較器に対応して設けられ、前記複数の比較器の比較結果を複数のラッチデータ群として格納する複数の結果ラッチ部とをさらに備え、前記複数の結果ラッチ部はシフトモード時に互いに直列に連結して、前記複数のラッチデータ群間でシフト動作を行い、救済解析用スキャンパス信号としてシリアルに外部出力可能であり、
前記シフトモード時に前記救済解析用スキャンパス信号を順次取り込み、前記救済解析用スキャンパス信号に基づき、前記複数のメモリ回路に関し、救済の必要性の有無、及び救済が必要な故障箇所を示す救済解析情報を得る救済解析回路と、
前記救済解析情報に関連した救済制御情報に基づき、前記複数のメモリ回路のうち救済が必要なメモリ回路に対し前記故障箇所を前記冗長メモリに置き換えるの救済制御を行う救済デコーダとをさらに備える、
半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路であって、
前記救済解析情報は前記複数のメモリ回路それぞれについての救済の必要性の有無、及び前記故障箇所を示す複数の部分救済解析情報を含み、
前記救済制御情報は前記複数のメモリ回路に対応した複数の部分救済制御情報を含み、前記複数の部分救済制御情報はそれぞれ対応する前記メモリ回路の救済の必要性の有無、及び前記故障箇所を示し、
前記救済デコーダは複数のメモリ回路に対応して設けられた複数の救済デコーダを含み、
前記複数の救済デコーダはそれぞれ対応する前記部分救済制御情報に基づき、対応する前記メモリ回路の救済制御を行う、
半導体集積回路。
【請求項３】
請求項２記載の半導体集積回路であって、
前記救済解析回路に対し、前記救済解析用スキャンパス信号における前記複数のラッチデータ群間の切り替わり時に切り替わりを指示するリセット信号を含む制御信号を出力するテスト制御回路をさらに備える、
半導体集積回路。
【請求項４】
請求項３記載の半導体集積回路であって、
前記複数の結果ラッチ部間に介挿され、ダミーデータを格納するダミーラッチ部をさらに備え、前記ダミーラッチ部は、前記シフトモード時において前記複数の結果ラッチ部間で連結され、前記シフト動作は前記複数のラッチデータ群及び前記ダミーデータに対して行われ、
前記テスト制御部は、前記シフト動作の有無を指示するシフト動作信号を前記複数の結果ラッチ部に出力し、
前記テスト制御部は、前記救済解析用スキャンパス信号として前記ダミーデータが出力されている期間に前記リセット信号を出力するとともに、前記故障解析用スキャンパス信号の無効を指示するスキャンパス無効指示信号を前記制御信号としてさらに出力する、
半導体集積回路。
【請求項５】
請求項２ないし請求項４のうち、いずれか１項に記載の半導体集積回路であって、
前記救済解析情報は前記複数のメモリ回路それぞれについての１箇所以上の故障の有無を示す１ビット故障情報を含む、
半導体集積回路。
【請求項６】
請求項５記載の半導体集積回路であって、
前記救済解析情報は前記複数のメモリ回路それぞれについて２箇所以上の故障の有無を示すマルチビット故障情報をさらに含む、
半導体集積回路。
【請求項７】
請求項１記載の半導体集積回路であって、
前記救済解析情報は前記複数のメモリ回路全体についての救済の必要性の有無、及び前記故障箇所を示す情報を含み、
前記救済デコーダは前記救済制御情報に基づき、前記複数のメモリ回路中の一のメモリ回路に対し前記メモリ回路の救済制御を行う、
半導体集積回路。
【請求項８】
請求項７記載の半導体集積回路であって、
前記複数の結果ラッチ部に対し、前記シフト動作の有無を指示するシフト動作信号を出力するテスト制御回路をさらに備える、
半導体集積回路。
【請求項９】
請求項７あるいは請求項８に記載の半導体集積回路であって、
前記救済解析情報は前記複数のメモリ回路全体において１箇所以上の故障の有無を示す１ビット故障情報を含む、
半導体集積回路。
【請求項１０】
請求項９記載の半導体集積回路であって、
前記救済解析情報は前記複数のメモリ回路全体において２箇所以上の故障の有無を示すマルチビット故障情報をさらに含む、
半導体集積回路。
【請求項１１】
請求項１記載の半導体集積回路であって、
前記複数のメモリ回路は第１及び第２グループに分類されるメモリ回路を含み、前記第１グループは複数の第１種メモリ回路を含み、前記第２グループは複数の第２種メモリ回路を含み、
前記救済解析情報は前記複数の第１種メモリ回路それぞれについての救済の必要性の有無、及び前記故障箇所を示す第１グループ用複数の部分救済解析情報と、前記複数の第２種メモリ回路全体についての救済の必要性の有無、及び前記故障箇所を示す第２グループ用救済解析情報を含み、
前記救済制御情報は、前記第１グループ用複数の部分救済解析情報に関連し、前記複数の第１種メモリ回路に対応した第１グループ用複数の部分救済制御情報を含み、前記第１グループ用複数の部分救済制御情報はそれぞれ対応する前記第１種メモリ回路の救済の必要性の有無、及び前記故障箇所を示し、
前記救済制御情報は、前記第２グループ用救済解析情報に関連し、前記複数の第２種メモリ回路全体に対応した第２グループ用救済制御情報をさらに含み、前記第２グループ用救済制御情報は前記複数の第２種メモリ回路全体における救済の必要性の有無、及び前記故障箇所を示し、
前記救済デコーダは前記複数の第１種メモリ回路に対応して設けられた第１グループ用複数の救済デコーダと、前記複数の第２種メモリ回路全体に対応して設けられた第２グループ用救済デコーダとを含み、
前記第１グループ用複数の救済デコーダはそれぞれ対応する前記部分救済制御情報に基づき、対応する前記第１種メモリ回路の救済制御を行い、
前記第２グループ用救済デコーダは前記第２グループ用救済制御情報に基づき、前記複数の第２種メモリ回路中の一の第２種メモリ回路に対し救済制御を行う、
半導体集積回路。
【請求項１２】
請求項１１記載の半導体集積回路であって、
前記複数の比較器は、
前記複数の第１種メモリ回路に対応して設けられ、前記複数の第１種メモリ回路のデータ出力と期待値とを比較して第１の比較結果を得る第１グループ用複数の比較器と、前記複数の第２種メモリ回路に対応して設けられ、前記複数の第２種メモリ回路のデータ出力と期待値とを比較して第２の比較結果を得る第２グループ用複数の比較器とを含み、
前記複数のラッチデータ群は、前記第１グループ用複数の比較器に対応して設けられ、前記第１グループ用複数の比較器の比較結果を第１グループ用複数のラッチデータ群として格納する第１グループ用複数の結果ラッチ部と、前記第２グループ用複数の比較器に対応して設けられ、前記第２グループ用複数の比較器の比較結果を第２グループ用複数のラッチデータ群として格納する第２グループ用複数の結果ラッチ部とを含み、
前記第１グループ用複数の結果ラッチ部はシフトモード時に互いに直列に連結し、前記第２グループ用複数の結果ラッチ部は前記シフトモード時に互いに直列に連結し、前記第１及び第２グループ用複数の結果ラッチ部間は前記シフトモード時に直列に連結し、前記第１及び第２グループ用前記複数のラッチデータ群全体でシフト動作を行い、前記救済解析用スキャンパス信号としてシリアルに外部出力可能であり、
前記救済解析回路は前記救済解析用スキャンパス信号に基づき、前記第１及び第２グループの第１種及び第２種のメモリ回路に対する前記第１及び第２グループ用救済解析情報を得る、
半導体集積回路。
【請求項１３】
請求項１１記載の半導体集積回路であって、
前記複数の比較器は、
前記複数の第１種メモリ回路に対応して設けられ、前記複数の第１種メモリ回路のデータ出力と期待値とを比較して第１の比較結果を得る第１グループ用複数の比較器と、前記複数の第２種メモリ回路に対応して設けられ、前記複数の第２種メモリ回路のデータ出力と期待値とを比較して第２の比較結果を得る第２グループ用複数の比較器とを含み、
前記複数のラッチデータ群は、前記第１グループ用複数の比較器に対応して設けられ、前記第１グループ用複数の比較器の比較結果を第１グループ用複数のラッチデータ群として格納する第１グループ用複数の結果ラッチ部と、前記第２グループ用複数の比較器に対応して設けられ、前記第２グループ用複数の比較器の比較結果を第２グループ用複数のラッチデータ群として格納する第２グループ用複数の結果ラッチ部とを含み、
前記第１グループ用複数の結果ラッチ部はシフトモード時に互いに直列に連結し、前記第２グループ用複数の結果ラッチ部は前記シフトモード時に互いに直列に連結し、前記第１及び第２グループ用前記複数のラッチデータ群それぞれ独立してシフト動作を行い、第１及び第２グループ用スキャンパス信号としてシリアルにそれぞれ出力し、
前記第１及び第２グループ用スキャンパス信号のうち、一のスキャンパス信号を前記救済解析用スキャンパス信号として選択的に出力する選択回路をさらに備え、
前記救済解析回路は前記救済解析用スキャンパス信号に基づき前記第１及び第２グループ用救済解析情報を選択的に得る、
半導体集積回路。
【請求項１４】
冗長メモリ部を有し、所定ビット数のデータ入出力機能を有するメモリ回路と、
前記メモリ回路における前記所定ビット数のデータ入出力に対する制御が可能なデータ入出力制御部とを備え、
前記データ入出力制御部は、
前記所定ビット数のデータ入出力に対応して設けられ、前記メモリ回路の前記所定ビット数のデータ出力それぞれと期待値とを比較して所定ビット数の比較結果を順次得る所定ビット数の比較回路を含む所定ビット数の１ビット入出力制御部と、
前記所定ビット数の比較結果に基づき、前記所定ビット数よりも少ない圧縮ビット数の符号化データを順次得るエンコード回路と、
圧縮ビット数のラッチ回路を有し、前記圧縮ビット数の符号化データを順次受け、所定の条件を満足する一の前記圧縮ビット数の符号化データを前記圧縮ビット数のラッチ回路内にラッチするキャプチャ回路とを備え、
前記圧縮ビット数の符号化データは、前記所定ビット数のデータ入出力に関し、故障ビット無しに関する第１の故障情報及び１ビット故障の存在とそのビット位置に関する第２の故障情報とを少なくとも示すことが可能である、
半導体集積回路。
【請求項１５】
請求項１４記載の半導体集積回路であって、
前記圧縮ビット数の符号化データは、２ビット以上の故障に関する第３の故障情報をさらに示すことが可能である、
半導体集積回路。
【請求項１６】
請求項１５記載の半導体集積回路であって、
前記圧縮ビット数のラッチ回路は、前記圧縮ビット数の符号化データをシリアルに出力するシフト動作可能に接続される、
半導体集積回路。
【請求項１７】
請求項１６記載の半導体集積回路であって、
前記所定の条件は、
前記圧縮ビット数の符号化データが前記第２の故障情報を示す場合、前記第１の故障情報を示す場合よりも優先してラッチし、順次得られる前記圧縮ビット数の符号化データによって前記第２の故障情報が複数回示された場合、最初の前記第２の故障情報を優先してラッチする条件を含む、
半導体集積回路。
【請求項１８】
請求項１６あるいは請求項１７に記載の半導体集積回路であって、
前記所定の条件は、
前記複数ビット数の符号化データが前記第３の故障情報を示す場合、前記第１及び第２の故障情報を示す場合よりも優先してラッチする条件を含む、
半導体集積回路。
【請求項１９】
所定ビット数のデータ入出力機能を有するメモリ回路と、
前記メモリ回路における前記所定ビット数のデータ入出力に対する制御が可能なデータ入出力制御部とを備え、
前記データ入出力制御部は、
前記所定ビット数のデータ出力のうち２以上の所定の選択数のデータ出力に対応して設けられ、データ出力選択信号に基づき、前記所定の選択数のデータ出力のいずれかを選択データ出力として選択する少なくとも一つの選択回路と、
前記選択データ出力と期待値とを比較して少なくとも１ビットの比較結果を得る少なくとも一つの比較回路と、
を備える半導体集積回路。
【請求項２０】
請求項１９記載の半導体集積回路であって、
前記データ入出力制御部は、
前記少なくとも１ビットの比較結果をラッチするラッチ部をさらに含む、
半導体集積回路。
【請求項２１】
請求項１９記載の半導体集積回路であって、
前記少なくとも一つの選択回路は複数の選択回路を含み、
前記少なくとも一つの比較回路は前記複数の選択データ出力それぞれと期待値とを比較して複数の比較結果を得る複数の比較回路を含み、
前記データ入出力制御部は、
前記複数の比較結果を受け、前記複数の比較結果のうち少なくとも一つの比較結果が故障ビットを指示するか否かを判定して得られる総合比較結果を出力する総合比較結果出力部と、
前記総合比較結果をラッチするラッチ部とをさらに備える、
半導体集積回路。
【請求項２２】
チップイネーブル入力、ライトイネーブル入力、アドレス入力及びデータ入力を有する複数のメモリ回路と、
前記複数のメモリ回路をグループ毎に順次テストする場合において、テスト対象外のメモリ回路に対して、前記チップイネーブル入力を不活性に設定するとともに、前記ライトイネーブル入力、前記アドレス入力及び前記データ入力のうち少なくともいずれかに固定信号を付与するテスト対象外時無効化手段と、
を備える半導体集積回路。
【請求項２３】
各々がメモリ回路を有し、該メモリ回路に対する故障救済解析機能を有する複数のメモリ部を備え、前記複数のメモリ部は内部の前記メモリ回路の故障箇所を“１”で示し、他は“０”で示すビット群からなる複数の故障シリアル情報を出力し、前記複数の故障シリアル情報における前記ビット群のビット数は同一ビット数で統一され、
前記複数の故障シリアル情報をビット単位に受け、前記複数の故障シリアル情報のビット単位の論理和より順次得られる総合故障シリアル情報を出力する総合故障判断部と、
前記総合故障シリアル情報に基づき救済可能性の有無を検出する救済可能性検証部と、
前記総合故障シリアル情報に基づき故障個所を求めて救済情報を得る救済情報取得部と、
を備える半導体集積回路。
【請求項２４】
請求項２３記載の半導体集積回路であって、
前記故障個所は対応する前記メモリ回路の故障ロウアドレス位置を含む、
半導体集積回路。
【請求項２５】
請求項２４記載の半導体集積回路であって、
前記故障個所は対応する前記メモリ回路の故障入出力ビット位置をさらに含む、
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＲＡＭ等のメモリ回路を内蔵した半導体集積回路において、上記メモリ回路の救済機能を備えた半導体集積回路に関する。
【背景技術】
【０００２】
システムＬＳＩには多数のＲＡＭが内蔵されており、これらのＲＡＭで発生する欠陥を救済し、製造歩留まりを向上させることが求められている。ＬＳＩのテスト工程においてＬＳＩ用ロジックテスタを用いてＲＡＭの救済解析を行うことは困難であるため、これを補助する目的でＬＳＩ自体に救済解析回路が搭載されるようになってきている。しかし、ＲＡＭの数量の増加に伴い救済解析回路の規模増大や消費電力の増大が問題となっている。
【０００３】
従来のシステムＬＳＩにおけるＲＡＭの救済機能を備えた半導体集積回路として、例えば、特許文献１に開示された半導体集積回路（論理集積回路）がある。
【０００４】
以下、特許文献１に開示されたＲＡＭの救済機能を備えた半導体集積回路に代表される、従来の半導体集積回路について説明する。
【０００５】
従来の半導体集積回路において、救済の対象となるのはＬＳＩの各種回路ブロックに含まれている複数のＲＡＭであり、ＬＳＩ上にはこれらＲＡＭをテストするための広義のＢＩＳＴ回路（内蔵自己テスト(built in self-test)回路）が搭載されている。
【０００６】
各ＲＡＭは予備メモリ列を持ち、通常使用のメモリ列に故障が存在（特許文献１の図５では、メモリ列C[2]）する場合は、セレクタ（特許文献１の図５ではSLT0〜SLT31）により予備メモリ列を含む故障が無いメモリ列群を選択し、選択された信号がＬＳＩ内の所望の回路に伝達される。なお、特許文献１の図５のデコーダDECは救済情報（故障メモリ列の位置を示す情報）であるrai[0]〜rai[4]を入力とし、上記セレクタが故障メモリ列の選択を避けるように制御信号を発生する。
【０００７】
ＢＩＳＴ回路の構成例と予備メモリ列付きのＲＡＭ群との接続内容が特許文献１の図１及び図２に示されている。このＢＩＳＴ回路は、少なくともＢＩＳＴ制御回路、パターン発生器、境界ラッチ、比較器、救済解析回路から構成される。以下、上記従来の半導体集積回路によるＲＡＭの救済テストの動作を簡単に説明する。
【０００８】
（１）BIST制御回路により、境界ラッチ内を初期化（内部のフリップフロップ(FF)を“０”に設定）する。
【０００９】
（２）BIST制御回路により、パターン発生器よるテストパターン発生を開始させる。
【００１０】
（３）テストパターンの走行中は比較器により、期待値とＲＡＭ出力データが比較される。故障が見つかれば、境界ラッチのデータ部の FF（以下、「結果FF」と略記）のうち、故障に対応した IOビットの FFのデータが“１”に変化する。
【００１１】
（４）テストパターンの走行完了後、結果FFに蓄積されたテスト結果のシリアル読み出しを行いながら、各ＲＡＭに対応して設けられた救済解析回路で救済情報を生成する。なお、救済情報rai[0]〜rai[4]の生成は救済解析回路内のシーケンシャルエンコーダ回路により行われる。
【００１２】
また、上記特許分文献１で開示された技術ではＲＡＭのＩ／Ｏビット数分のＦＦ（フリップフロップ）が比較結果の保持に使用されており、この点においても回路規模が大きくなるという第１の問題点を誘発していた。
【００１３】
図２５及び図２６は特許文献１で開示された従来のＲＡＭのデータＩ／Ｏ部のテスト回路部分を示す回路図である。図２５はＲＡＭ５０に対応して設けられた１ビット分のデータ入出力制御部５１を示している。
【００１４】
図２５に示すように、ＲＡＭ５０の１ビット入出力であるデータ入力Ｄin［ｉ］及びデータ出力Ｄout［ｉ］に対して１つのデータ入出力制御部５１が設けられている。したがって、ＲＡＭ５０がｎビットのデータ入出力機能を有する場合、ｉ＝１〜ｎのいずれかとなり、データ入出力制御部５１に相当する構成がｎ個設けられることになる。
【００１５】
データ入出力制御部５１は、セレクタ６１，６２、ＥＸＯＲゲートＧ８１、ＡＮＤゲートＧ８２、ＯＲゲートＧ８３及びフリップフロップ（ＦＦ）６３から構成される。
【００１６】
セレクタ６１は書き込みデータsys_din[i]及び書き込みデータbist_din[k]を“０”入力及び“１”入力に受け、モードセレクタ制御信号selmiを制御入力に受け、セレクタ６１の出力であるＲＡＭ入力データmem_din[i]がデータ入力Ｄin［ｉ］に入力される。
【００１７】
ＥＸＯＲゲートＧ８１は一方入力に期待値ｃｄ［ｋ］を受け、他方入力にデータ出力Ｄout［ｉ］を受ける。ＡＮＤゲートＧ８２は一方入力に比較イネーブル信号comp_enを受け、他方入力にＥＸＯＲゲートＧ８１の出力を受ける。ＯＲゲートＧ８３は一方入力にＡＮＤゲートＧ８２の出力を受ける。セレクタ６２は“１”入力にシリアルデータ入力Ｓｉを受け、“０”入力にＯＲゲートＧ８３の出力を受け、制御入力にシリアルシフト制御信号sdrを受ける。フリップフロップ６３は入力部にセレクタ６２の出力を受け、出力がシリアルデータ出力Ｓｏとして出力されるともに、ＯＲゲートＧ８３の他方入力として帰還する。また、データ出力Ｄout［ｉ］は読み出しデータsys_dout[i]として出力される。
【００１８】
このような構成において、ＲＡＭ５０のデータ入力Ｄin［ｉ］の前段にセレクタ６１が設けられ、システム側入力である書き込みデータsys_din[i]とBIST側入力である書き込みデータbist_din[k]とがモードセレクタ制御信号selmiによって切り替えられる。
【００１９】
ＲＡＭ５０のデータ出力Ｄout［ｉ］はコンパレータ回路（ＥＸＯＲゲートＧ８１＋ＡＮＤゲートＧ８２）に付与され、上記コンパレター回路によって期待値ｃｄ［ｋ］とデータ出力Ｄout［ｉ］との一致／不一致が比較され、比較イネーブル信号comp_enが“１”の時、ＡＮＤゲートＧ８２の出力によって期待値ｃｄ［ｋ］とデータ出力Ｄout［ｉ］との比較結果を得ることができる。
【００２０】
すなわち、比較イネーブル信号comp_enが“１”の比較イネーブル時に、期待値ｃｄ［ｋ］とデータ出力Ｄout［ｉ］とが不一致であれば、ＡＮＤゲートＧ８２の出力として“１”が出力される。
【００２１】
上記比較結果は、ＯＲゲートＧ８３、セレクタ６２及びフリップフロップ６３で構成されるループ回路により保持される。
【００２２】
ただし、テスト開始前に、シリアルシフト制御信号sdrを“１”に設定し、シリアルデータ入力Ｓｉから“０”をフリップフロップ６３にシフトインすることにより、フリップフロップ６３に保持される比較結果を“０”に初期化しておく必要がある。
【００２３】
テスト開始前にシリアルシフト制御信号sdrを“０”に設定し、上記ループ回路の構成を有効にしておく。比較イネーブル信号comp_enが“０”の状態では、フリップフロップ６３にクロック（図示せず）が入力されても、フリップフロップ６３の格納値は変化しない。
【００２４】
テスト時は、テスト用期待値である期待値ｃｄ［ｋ］と“１”の比較イネーブル信号comp_enを図示しないパターン発生回路（図１のパターン発生回路１２０相当）から与えながら、フリップフロップ６３にクロックを与える。テスト中に１回でも故障が検出されれば（ＡＮＤゲートＧ８２の出力である比較結果が“１”になれば）、ＯＲゲートＧ８３の出力が“１”になり、この“１”が上記ループ回路で保持される。
【００２５】
図２５では基本回路を示したが、特許文献１ではこれを改良した図２６の回路が用いられている。
【００２６】
図２６に示すように、ＲＡＭ５０の１ビット入出力であるデータ入力Ｄin［ｉ］及びデータ出力Ｄout［ｉ］に対して１つのデータ入出力制御部５２が設けられている。
【００２７】
データ入出力制御部５２は、セレクタ６１，６２、ＥＸＯＲゲートＧ８１、ＡＮＤゲートＧ８２、ＯＲゲートＧ８３及びフリップフロップ６３に加えて、さらにセレクタ６４及び６５を有している。
【００２８】
セレクタ６４は“０”入力にセレクタ６１の出力であるＲＡＭ入力データmem_din[i]を受け、“１”入力にセレクタ６２の出力を受け、制御入力にキャプチャ制御信号Irsを受ける。そして、セレクタ６４の出力がフリップフロップ６３の入力部に付与される。
【００２９】
セレクタ６５“１”入力にフリップフロップ６３の出力を受け、“０”入力にデータ出力Ｄout［ｉ］を受け、制御入力にモードセレクタ制御信号selmoを受ける。セレクタ６５の出力が読み出しデータsys_dout[i]として出力されるとともに、ＥＸＯＲゲートＧ８１の他方入力となる。なお、他の構成は図２５で示したセレクタ６１と同様であるため、説明を省略する。
【００３０】
このような構成において、データ入出力制御部５２は、キャプチャ制御信号Irsを“１”、モードセレクタ制御信号selmoを“０”に設定することにより、データ入出力制御部５１と等価な動作を行うことができる。さらに、データ入出力制御部５２は以下の動作を行うことができる。
【００３１】
データ入出力制御部５２は、ロジック回路のスキャンテストに活用することができる。具体的には、スキャンテスト時にはモードセレクタ制御信号selmoを“１”に設定し、フリップフロップ６３の出力を読み出しデータsys_dout[i]として出力させることができる。
【００３２】
また、データ入出力制御部５２は、キャプチャ制御信号Irsを“０”に設定することにより、データ入力Ｄin［ｉ］をフリップフロップ６３にラッチして、データ入力Ｄin［ｉ］をモニタすることができる。
【００３３】
なお、本明細書においては図２６で示した改良旺盛は既知のものとして、説明を容易にするために、図２５で示したデータ入出力制御部５１の構成を基準として説明を行う。
【００３４】
図２７は図２５で示したデータ入出力制御部５１を直列接続して８ビット構成のデータ入出力制御部５３を設けることにより、入出力が８ビット構成のＲＡＭ５０に対応させている。なお、説明の都合上、データ入力Ｄｉｎ［０］〜Ｄｉｎ［３］及びデータ出力Ｄout［０］〜Ｄout［３］に対応して設けられるスキャンフリップフロップＳＦＦ２０〜ＳＦＦ２３のみ図示している。
【００３５】
スキャンフリップフロップＳＦＦ２０〜ＳＦＦ２３はそれぞれ図２５で示したデータ入出力制御部５１と同様な構成をしている。
【００３６】
ただし、スキャンフリップフロップＳＦＦ２０は、データ入力Ｄin［０］及びデータ出力Ｄout［０］に対応して設けられ、書き込みデータsys_din[0]、書き込みデータbist_din[0]及び書き込みデータbist_exp[0]を入力としており、読み出しデータsys_dout[0]を出力としている。
【００３７】
同様にして、スキャンフリップフロップＳＦＦ２ｐ（ｐ＝１〜３のいずれか）は、データ入力Ｄin［ｐ］及びデータ出力Ｄout［ｐ］に対応して設けられ、書き込みデータsys_din[p]、書き込みデータbist_din[p]及び書き込みデータbist_exp[p]を入力としており、読み出しデータsys_dout[p]を出力としている。
【００３８】
また、図２７では図示しないスキャンフリップフロップＳＦＦ２ｑ（ｑ＝４〜７のいずれか）は、データ入力Ｄin［ｑ］及びデータ出力Ｄout［ｑ］に対応して設けられ、書き込みデータsys_din[q]、書き込みデータbist_din[q]及び書き込みデータbist_exq[q]を入力としており、読み出しデータsys_dout[q]を出力としている。
【００３９】
なお、テスト用書き込みデータやテスト用期待値は信号配線を減らす目的で、偶数番と奇数番のビットの２つにグループ化することが一般に行われている（wd[q],wd[1],cd[q],cd[1]）。
【００４０】
図２７で示す例では、テスト用入力データｗｄ[1]が書き込みデータbist_din[1]及びbist_din[3]として、スキャンフリップフロップＳＦＦ２１及びＳＦ２３のセレクタ６１の“１”入力に取り込まれる。同様にして、テスト用入力データｗｄ[0]が書き込みデータbist_din[0]及び書き込みデータbist_din[2]としてスキャンフリップフロップＳＦＦ２０及びＳＦ２２のセレクタ６１の“１”入力に取り込まれる。
【００４１】
また、テスト用期待値ｃｄ［１］が書き込みデータbist_exp[1]及びbist_exp[3]としてスキャンフリップフロップＳＦＦ２１及びＳＦ２３のＥＸＯＲゲートＧ８１の一方入力として付与される。同様にして、テスト用期待値ｃｄ［０］が書き込みデータbist_exp[0]及びbist_exp[2]として、スキャンフリップフロップＳＦＦ２０及びＳＦ２２のＥＸＯＲゲートＧ８１の一方入力として付与される。
【００４２】
このように、データ入出力制御部５３は、ＲＡＭ５０のＲＡＭのＩ／Ｏ数（入出力ビット数）に応じた数のスキャンフリップフロップが必要になっている。
【００４３】
【特許文献１】特開２００６−２３６５５１号公報（図１，図２，図５）
【発明の開示】
【発明が解決しようとする課題】
【００４４】
上述した従来の半導体集積回路は、内部の救済解析回路がＲＡＭに対して１対１で設けられており、ＬＳＩに多数のＲＡＭが搭載される場合は、救済解析回路の規模の増大してしまい、回路の集積度の増大を招くという問題点があった。
【００４５】
加えて、図２５〜図２７で示したように、従来のテスト回路として用いられるデータ入出力制御部は、ＲＡＭのＩ／Ｏ数に対応する数のスキャンＦＦを設ける必要があるため、ＲＡＭのＩ／Ｏ数増大と共に、回路の回路の集積度の増大を招くという問題点があった。
【００４６】
この発明は上記問題点を解決するためになされたもので、ＲＡＭ等の内部の少なくとも一つのメモリ回路の救済が可能であり、かつ集積度の向上を図った半導体集積回路を得ることを目的とする。
【課題を解決するための手段】
【００４７】
この発明の一実施の形態によれば、エンコード回路は、所定ビットの故障ビットデータをエンコードして、所定ビットよりも少ない圧縮ビット数の符号化データを順次得る。キャプチャ回路は、圧縮ビット数のラッチ回路を有し、上記圧縮ビット数の符号化データを順次受け、所定のラッチ条件を満足する一の上記圧縮ビット数の符号化データを上記圧縮ビット数のラッチ回路内にラッチする。上記圧縮ビット数の符号化データは、上記所定ビット数のデータ入出力に関し、故障ビット無しに関する第１の故障情報及び１ビット故障の存在とそのビット位置に関する第２の故障情報とを少なくとも示すことが可能である。
【発明の効果】
【００４８】
この実施の形態によれば、半導体集積回路におけるキャプチャ回路は、データ入出力ビット数よりも少ない圧縮ビット数のラッチ回路を設けるだけで、故障ビット無しに関する第１の故障情報と、１ビット故障の存在とそのビット位置に関するす第２の故障情報を示すことが可能な圧縮ビット数の符号化データをラッチすることができる。
【００４９】
したがって、上記半導体集積回路は、所定ビット数のデータ入出力に対し、所定ビット数より少ない圧縮ビット数のラッチ回路を設ける構成で済ませる分、集積度を向上させながら、圧縮ビット数の符号化データに基づき冗長メモリ部を用いたメモリ回路に対する故障救済を図ることができる効果を奏する。
【発明を実施するための最良の形態】
【００５０】
＜実施の形態１＞
図１はこの発明の実施の形態１であるＲＡＭ救済機能を有する半導体集積回路の構成を示すブロック図である。
【００５１】
同図に示すように、メモリ回路である３つのＲＡＭ１０１，１０２，及び１０３に対応してブリッジ回路３０１，３０２，及び３０３を接続している。ＲＡＭ１０１〜１０３はそれぞれチップイネーブル入力ＣＥ、ライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］、及びデータ入力Ｄin［＊］を有している。なお、本明細書中において、複数ビット構成の信号Ｘを単にＸ［＊］と標記する場合がある。
【００５２】
また、ＲＡＭ１０１は６ビットのデータ出力（出力Ｄout［０］〜Ｄout［５］）を有し、ＲＡＭ１０２は１２ビットのデータ出力（出力Ｄout［０］〜Ｄout［１１］）を有し、ＲＡＭ１０３は８ビットのデータ出力（出力Ｄout［０］〜Ｄout［７］）を有している。
【００５３】
ブリッジ回路３０１は、モードセレクタ２１１、比較器２２１及び結果ラッチ２０１（結果ラッチ部）から構成され、ブリッジ回路３０２はモードセレクタ２１２、比較器２２２及び結果ラッチ２０２から構成され、ブリッジ回路３０３はモードセレクタ２１３、比較器２２３及び結果ラッチ２０３から構成される。ブリッジ回路３０１〜３０３の比較器２２１〜２２３はＲＡＭ１０１〜１０３のデータ出力ビット数に対応した比較能力を有している。同様に、結果ラッチ２０１〜２０３は比較器２２１〜２２３のビット数に対応したラッチ能力を有している。
【００５４】
ブリッジ回路３０１〜３０３間において、結果ラッチ２０１〜２０３は直列に接続され、結果ラッチ２０１〜２０３内の格納データは、結果ラッチ２０３からのスキャンパス信号ＳＰ３（救済解析用スキャンパス信号）として順次シリアル出力することができる。すなわち、結果ラッチ２０１〜２０３に格納されたラッチデータ群はスキャンパス信号ＳＰ３として検出することができる。
【００５５】
救済解析回路１５０はスキャンパス信号ＳＰ３に基づき後に詳述する救済解析動作を行い、救済解析情報ＩＲをテスト制御回路であるＢＩＳＴ制御回路１１０に出力する。また、救済解析情報ＩＲはテスタ等の外部装置からも認識可能なように外部にも出力される。
【００５６】
パターン発生回路１２０はＲＡＭ１０１〜１０３に対するテストパターン（アドレス信号bist_ad[*]、チップイネーブル信号bist_ce、書き込みデータbist_din[*]、期待値ｃｄ[*]、比較イネーブルcomp_enを含む）を発生する。なお、図１に示すように、パターン発生回路１２０はＲＡＭ１０１〜１０３間で共有して用いてもよいし、一点鎖線で示したように、ＲＡＭ１０１〜１０３に１対１に対応するようにパターン発生回路１２１〜１２３を設けてもよい。
【００５７】
ＢＩＳＴ制御回路１１０は１つ（パターン発生回路１２０）又は複数のパターン発生器（パターン発生回路１２１〜１２３）を制御する。また、ＢＩＳＴ制御回路１１０は一の救済解析回路１５０を制御する。なお、図１で示すような複数のＲＡＭ１０１〜１０３とこれらに対応する救済解析回路１５０との関係が複数存在する場合、セレクタ群１１１は、複数存在する救済解析回路１５０相当の回路を１つのＢＩＳＴ制御回路１１０によって制御することができる。なお、ＢＩＳＴ制御回路１１０自身が出力する制御信号として後述するシフト動作信号br_shift、モードセレクタ制御信号selmi等がある。
【００５８】
また、ＢＩＳＴ制御回路１１０は救済解析回路１５０を直接制御しても良く、パターン発生回路１２０を介して間接的に救済解析回路１５０を制御することも可能である。
【００５９】
図２はブリッジ回路３０１の内部構成の詳細を示す回路図である。以下、同図を参照してブリッジ回路３０１を構成するモードセレクタ２１１、比較器２２１及び結果ラッチ２０１の詳細について説明する。
【００６０】
モードセレクタ２１１はセレクタＳＬ１〜ＳＬ４から構成される。セレクタＳＬ１は“１”入力にチップイネーブル信号bist_ceを受け、“０”入力にチップイネーブル信号sys_ceを受ける。セレクタＳＬ２は“１”入力にライトイネーブル信号bist_weを受け、“０”入力にライトイネーブル信号sys_weを受ける。セレクタＳＬ３は“１”入力にアドレス信号bist_ad[*]を受け、“０”入力にアドレス信号sys_ad[*]を受ける。セレクタＳＬ４は“１”入力に書き込みデータbist_din[*]を受け、“０”入力に書き込みデータsys_din[*]を受ける。
【００６１】
このように、セレクタＳＬ１〜ＳＬ４は、パターン発生回路１２０からのテスト用信号を受け、“０”入力に通常動作用の信号を受ける。
【００６２】
そして、セレクタＳＬ１〜ＳＬ４はモードセレクタ制御信号selmiがテストモードを指示する“１”のとき、セレクタＳＬ１〜ＳＬ４の“１”入力より得られたチップイネーブル信号bist_ce、ライトイネーブル信号bist_we、アドレス信号bist_ad[*]及び書き込みデータbist_din[*]を選択する。その結果、ＲＡＭ１０１のチップイネーブル入力ＣＥ、ライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］及びデータ入力Ｄin［＊］に出力する。
【００６３】
一方、セレクタＳＬ１〜ＳＬ４はモードセレクタ制御信号selmiがシステムモードを指示する“０”のとき、セレクタＳＬ１〜ＳＬ４の“０”入力より得られたチップイネーブル信号sys_ce、ライトイネーブル信号sys_we、アドレス信号sys_ad[*]及び書き込みデータsys_din[*]を選択する。その結果、ＲＡＭ１０１のチップイネーブル入力ＣＥ、ライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］及びデータ入力Ｄin［＊］に出力する。
【００６４】
比較器２２１は６ビットのデータ出力Ｄout［０］〜Ｄout［５］に対応すべく、６個のＥＸＯＲゲートＥＸ１０〜ＥＸ１５及び６個のＡＮＤゲートＡＧ１０〜ＡＧ１５から構成される。
【００６５】
すなわち、ＥＸＯＲゲートＥＸ１０〜ＥＸ１５は一方入力にデータ出力Ｄout［０］〜Ｄout［５］を受ける。そして、ＥＸＯＲゲートＥＸ１０，ＥＸ１２，及びＥＸＭ１４は他方入力に期待値ｃｄ［０］を受け、ＥＸＯＲゲートＥＸ１１，ＥＸ１３，及びＥＸＭ１５は他方入力に期待値ｃｄ［１］を受ける。なお、期待値ｃｄ［０］〜ｃｄ［１］はパターン発生回路１２０から発生される。
【００６６】
ＡＮＤゲートＡＧ１０〜ＡＧ１５は一方入力にＥＸＯＲゲートＥＸ１０〜ＥＸ１５の出力を受け、他方入力に比較イネーブル信号comp_enを共通に受ける。これらＡＮＤゲートＡＧ１０〜ＡＧ１５の出力が比較器２２１の比較結果となる。なお、比較イネーブル信号comp_enはパターン発生回路１２０から出力される。
【００６７】
このような構成の比較器２２１は、比較イネーブル信号comp_enが“１”（“Ｈ”）のとき、活性状態となり、データ出力Ｄout［０］〜Ｄout［５］と期待値ｃｄ［０］あるいはｃｄ［１］との比較結果（一致したとき“０”，不一致（故障発生）のとき“１”）をＡＮＤゲートＡＧ１０〜ＡＧ１５の出力として得る。
【００６８】
結果ラッチ２０１は６ビットの比較結果に対応すべく、６個のＯＲゲートＯＧ１０〜ＯＧ１５、６個のセレクタＳＬ１０〜ＳＬ１５、及び６個のフリップフロップＦＦ１００〜ＦＦ１０５から構成される。
【００６９】
ＯＲゲートＯＧ１０〜ＯＧ１５は一方入力にＡＮＤゲートＡＧ１０〜ＡＧ１５の出力を受ける。ＯＲゲートＯＧ１０〜ＯＧ１５の出力がセレクタＳＬ１０〜ＳＬ１５“０”入力に付与され、セレクタＳＬ１０〜ＳＬ１５の出力がフリップフロップＦＦ１００〜ＦＦ１０５のデータ入力部に付与される。セレクタＳＬ１０〜ＳＬ１５は制御信号としてシフト動作信号br_shiftを共通に受ける。そして、セレクタＳＬ１０〜ＳＬ１５は、シフト動作信号br_shiftが“１”（“Ｈ”）のとき“１”入力の信号を出力し、“０”（“Ｌ”）のとき“０”入力の信号を出力する。
【００７０】
フリップフロップＦＦ１００〜ＦＦ１０５の出力がＯＲゲートＯＧ１０〜ＯＧ１５の他方入力として帰還する。さらに、フリップフロップＦＦ１０１〜ＦＦ１０５の出力がセレクタＳＬ１０〜ＳＬ１４の“１”入力に帰還する。
【００７１】
また、セレクタＳＬ１５の“１”入力にはシフト入力信号br_sinが入力され、フリップフロップＦＦ１００の出力がシフト出力信号br_soutをして外部に出力される。なお、シフト動作信号br_shift及びシフト出力信号br_soutはＢＩＳＴ制御回路１１０から出力される。
【００７２】
このような構成の結果ラッチ２０１は、シフト動作信号br_shiftが“０”の時は、比較器２２１からの比較結果（ＡＮＤゲートＡＧ１０〜ＡＧ１５の出力）をフリップフロップＦＦ１００〜ＦＦ１０５にラッチする。すなわち、ＡＮＤゲートＡＧ１ｉ（ｉ＝０〜５）の出力が一度でも“１”となれば、フリップフロップＦＦ１０ｉに“１”（故障ビット）がラッチされる。なお、フリップフロップＦＦ１００〜ＦＦ１０５はラッチ開始時に“０”に初期化する必要がある。このように、フリップフロップＦＦ１００〜ＦＦ１０５は対応する比較器２２１Ｊからの比較結果をラッチデータ群として格納する。
【００７３】
一方、結果ラッチ２０１は、シフト動作信号br_shiftが“１”の時は、直列に接続されたフリップフロップＦＦ１００〜ＦＦ１０５間でシフト入力信号br_sinの直列シフト動作を行う。すなわち、フリップフロップＦＦ１０５にはシフト入力信号br_sinが入力され、フリップフロップＦＦ１００〜ＦＦ１０４にはフリップフロップＦＦ１０１〜ＦＦ１０５の出力が入力され、フリップフロップＦＦ１００の出力がシフト出力信号br_soutとし出力される。このように、結果ラッチ２０１は、シフト動作信号br_shiftが“１”のとき、フリップフロップＦＦ１０５〜ＦＦ１００のラッチデータをフリップフロップＦＦ１００〜ＦＦ１０５間で順次シフトさせ、最終的にフリップフロップＦＦ１００からシフト出力信号br_soutとして出力させるという、直列シフト動作を行う。
【００７４】
なお、この直列シフト動作を利用して、シフト入力信号br_sinに“０”を連続的に入力することにより、フリップフロップＦＦ１００〜ＦＦ１０５を“０”に初期化することができる。また、フリップフロップＦＦ１０５が非同期リセット機能、あるいは同期リセット機能を有する場合、リセットさせることによりフリップフロップＦＦ１００〜ＦＦ１０５を“０”に初期化することも可能である。
【００７５】
なお、ブリッジ回路３０２の内部構成も図２で示したブリッジ回路３０１と同様である。すなわち、ブリッジ回路３０２のモードセレクタ２１２、比較器２２２及び結果ラッチ２０２は、ブリッジ回路３０１のモードセレクタ２１１、比較器２２１及び結果ラッチ２０１と同様な構成を呈する。ただし、比較器２２２及び結果ラッチ２０２はＲＡＭ１０２のデータ出力Ｄout［０］〜Ｄout［１１］に対応可能に１２ビットで構成される。
【００７６】
また、ブリッジ回路３０３の内部構成も図２で示したブリッジ回路３０１と同様である。すなわち、ブリッジ回路３０３のモードセレクタ２１３、比較器２２３及び結果ラッチ２０３は、ブリッジ回路３０１のモードセレクタ２１１、比較器２２１及び結果ラッチ２０１と同様な構成を呈する。ただし、比較器２２３及び結果ラッチ２０３はＲＡＭ１０３のデータ出力Ｄout［０］〜Ｄout［７］に対応可能に８ビットで構成される。
【００７７】
図３は、図１で示した救済解析回路１５０の内部構成の具体例を示す回路図である。図４は実施の形態１の半導体集積回路において、救済解析回路１５０、ブリッジ回路３０１〜３０３、ＲＡＭ１０１〜１０３及び救済デコーダ１３１〜１３３の詳細を示す説明図である。
【００７８】
図４に示すように、救済解析回路１５０は、結果ラッチ２０３のスキャンパス信号ＳＰ３をシリアル入力信号sin_encとして受け、ＢＩＳＴ制御回路１１０からスキャンパス無効指示信号である有効ビット情報bitcount_en及びリセット信号reset_encを含む制御信号を入力する。そして、救済解析回路１５０は、上記制御信号に従いシリアル入力信号sin_encに基づき救済解析動作を行うことにより、故障情報ｒｅｉ、マルチフェイル信号multifail、救済情報ｒａｉ［ｋ−１：０］及び故障検出予告信号fail_noticeからなる救済解析情報ＩＲをＢＩＳＴ制御回路１１０及び外部に出力する。
【００７９】
図３に示すように、救済解析回路１５０は、マルチフェイル回路１５２及びシーケンシャルエンコーダ回路１５３から構成される。
【００８０】
マルチフェイル回路１５２は、ＡＮＤゲートＡＧ２１〜ＡＧ２４、ＯＲゲートＯＧ２１，ＯＧ２２及びフリップフロップＦＦ２１，ＦＦ２２から構成される。
【００８１】
ＡＮＤゲートＡＧ２１は一方入力にシリアル入力信号sin_encを受け、他方入力に有効ビット情報bitcount_enを受ける。ＯＲゲートＯＧ２１は一方入力にＡＮＤゲートＡＧ２１の出力を受ける。このＯＲゲートＯＧ２１の出力が故障検出予告信号fail_noticeとして出力される。
【００８２】
ＡＮＤゲートＡＧ２２は一方入力にＯＲゲートＯＧ２１の出力（故障検出予告信号fail_notice）を受け、他方入力にリセット信号reset_encの反転信号を受ける。フリップフロップＦＦ２１は入力部にＡＮＤゲートＡＧ２２の出力を受け、その出力が故障情報ｒｅｉとして出力される。また、故障情報ｒｅｉはＯＲゲートＯＧ２１の他方入力として帰還する。
【００８３】
ＡＮＤゲートＡＧ２３は一方入力に故障情報ｒｅｉを受け、他方入力にＡＮＤゲートＡＧ２１の出力を受ける。ＯＲゲートＯＧ２２は一方入力にＡＮＤゲートＡＧ２３の出力を受ける。ＡＮＤゲートＡＧ２４は一方入力にＯＲゲートＯＧ２２の出力を受け、他方入力にリセット信号reset_encの反転信号を受ける。フリップフロップＦＦ２２は入力部にＡＮＤゲートＡＧ２４の出力を受け、その出力がマルチフェイル信号multifailとして出力される。また、マルチフェイル信号multifailはＯＲゲートＯＧ２２の他方入力として帰還する。
【００８４】
このような構成のマルチフェイル回路１５２は、後に詳述するように、シリアル入力信号sin_encのうち、有効ビット情報（bitcount_en=1の時のシリアル入力信号sin_enc）を解析し、１個（１ビット）以上の故障の有無を故障情報ｒｅｉとして出力し、２個（２ビット）以上の故障の有無をマルチフェイル信号multifailとして出力する。また、最初に故障が検出されると、“１”を指示する故障検出予告信号fail_noticeを出力する。
【００８５】
シーケンシャルエンコーダ回路１５３は、ＡＮＤゲートＡＧ２５，ＡＧ２６，インクリメントアダー１５４、セレクタＳＬ２１、カウント用フリップフロップ群zerocnt_ff［k-1:0］から構成される。
【００８６】
ＡＮＤゲートＡＧ２５は一方入力に故障検出予告信号fail_noticeの反転信号を受け、他方入力に有効ビット情報bitcount_enを受ける。このＡＮＤゲートＡＧ２５の出力がカウント制御信号count_upとなる。
【００８７】
インクリメントアダー１５４はカウント用フリップフロップ群zerocnt_ff［k-1:0］のｋビット出力ＣＴｋを“１”カウントアップ（インクリメント）し、カウントアップ出力値Ｖ１５４を出力する。セレクタＳＬ２１は“１”入力にカウントアップ出力値Ｖ１５４を受け、“０”入力にｋビット出力ＣＴｋを受け、制御入力にカウント制御信号count_upを受ける。そして、セレクタＳＬ２１はカウント制御信号count_upが“１”のときカウントアップ出力値Ｖ１５４を出力し、“０”のときｋビット出力ＣＴｋを出力する。
【００８８】
ＡＮＤゲートＡＧ２６は一方入力にリセット信号reset_encの反転信号受け、他方入力にセレクタＳＬ２１の出力を受ける。なお、ＡＮＤゲートＡＧ２６は説明の都合上、一単位のみ図示しているが、実際にはｋビット出力ＣＴｋ及びカウントアップ出力値Ｖ１５４に対応すべく、ｋビットのセレクタＳＬ２１の出力に対するＡＮＤ演算が可能に構成される。
【００８９】
カウント用フリップフロップ群zerocnt_ff［k-1:0］はｋ個のフリップフロップの並列接続により構成され、ＡＮＤゲートＡＧ２６のｋビット出力をラッチする。そして、カウント用フリップフロップ群zerocnt_ff［k-1:0］の最終的なｋビット出力ＣＴｋが救済情報ｒａｉ［ｋ−１：０］として外部に出力される。
【００９０】
このような構成のシーケンシャルエンコーダ回路１５３は、後に詳述するように、シリアル入力信号sin_encのうち、有効ビット（bitcount_en=1の時）情報を解析し、故障ビット位置を示す救済情報ｒａｉ［ｋ−１：０］から出力する。
【００９１】
また、マルチフェイル回路１５２及びシーケンシャルエンコーダ回路１５３はリセット信号reset_encによりリセットされる。リセット信号reset_encが“１”のとき、マルチフェイル回路１５２のＡＮＤゲートＡＧ２２及びＡＧ２４の出力並びにシーケンシャルエンコーダ回路１５３のＡＮＤゲートＡＧ２６の出力が“０”となる。その結果、次のクロックで故障情報ｒｅｉ、マルチフェイル信号multifail及び救済情報ｒａｉ［ｋ−１：０］の値は全て“０”リセットされる。
【００９２】
ＢＩＳＴ制御回路１１０はブリッジ回路３０１〜３０３、パターン発生回路１２０、救済解析回路１５０を制御してＲＡＭ１０１〜１０３の故障救済テストを行い、救済解析回路１５０から救済解析情報ＩＲを生成させる。
【００９３】
以下に、ＢＩＳＴ制御回路１１０の制御下で行うＲＡＭ１０１〜１０３の救済テストの動作を説明する。
【００９４】
（１）結果ラッチ２０１〜２０３内の初期化を行う。例えば、結果ラッチ２０１に対してフリップフロップＦＦ１００〜ＦＦ１０５の値を“０”に初期化する。
【００９５】
（２）パターン発生回路１２０によるテストパターン発生を開始させる。
【００９６】
（３）パターン発生回路１２０によるテストパターン発生期間中において、比較器２２１〜２２３は、期待値ｃｄ［＊］とＲＡＭ１０１〜１０３のデータ出力Ｄout［＊］とを比較して故障検出動作を行う。この際、シフト動作信号br_shiftを“０”にして、比較器２２１〜２２３で検出された比較結果を結果ラッチ２０１〜２０３にラッチ動作を行わせ、ラッチデータ群としてラッチさせる。
【００９７】
以下、ブリッジ回路３０１の比較器２２１及び結果ラッチ２０１を例に挙げて説明する。データ出力Ｄout［０］〜Ｄout［５］のいずれかに故障ビット（対応する期待値ｃｄ［＊］と異なる値を出力したビット）が見つかれば、故障個所のデータ出力Ｄout［＊］に対応する比較器２２１の出力が“１”となる。仮にデータ出力Ｄout［３］が故障ビットであったとすると、ＡＮＤゲートＡＧ１３の出力が“１”となる。その結果、結果ラッチ２０１のフリップフロップＦＦ１００〜ＦＦ１０５のうちフリップフロップＦＦ１０３に“１”がラッチされる。
【００９８】
（４）テストパターンの発生期間中に行われる比較器２２１〜２２３及び結果ラッチ２０１〜２０３による故障検出動作了後、結果ラッチ２０１〜２０３内のフリップフロップ内のテスト結果（ラッチデータ群）を読み出す。この際、シフト動作信号br_shiftを“１”にして結果ラッチ２０１〜２０３に直列シフト動作を行わせる。その結果、結果ラッチ２０１〜２０３内の３つのラッチデータ群の内容がスキャンパス信号ＳＰ３としてシリアルに出力される。
【００９９】
以下、ブリッジ回路３０１の結果ラッチ２０１を例に挙げて説明する。フリップフロップＦＦ１００〜ＦＦ１０５に直列シフト動作を行わせることにより、シフト出力信号br_soutとしてフリップフロップＦＦ１００〜ＦＦ１０５内のラッチデータの値をシリアルに次段の出力することができる。
【０１００】
この際、図４に示すように、結果ラッチ２０１のシフト出力信号br_soutを結果ラッチ２０２のシフト入力信号br_sinとし、結果ラッチ２０２のシフト出力信号br_soutを結果ラッチ２０３のシフト入力信号br_sinとする。その結果、結果ラッチ２０１〜２０３内のラッチデータ群の値を結果ラッチ２０３のシフト出力信号br_sout、すなわち、スキャンパス信号ＳＰ３としてシリアルに得ることができる。
【０１０１】
（５）直列シフト動作により、結果ラッチ２０１〜２０３内の３つのラッチデータ群の値をスキャンパス信号ＳＰ３として得ると、救済解析回路１５０は、後に詳述する内容で、救済情報ｒａｉ［ｋ−１：０］、故障情報ｒｅｉ、マルチフェイル信号multifail及び故障検出予告信号fail_noticeからなる救済解析情報ＩＲを生成する。
【０１０２】
図１で示した構成では、ＲＡＭ１０１が６ビット、ＲＡＭ１０２が１２ビット、ＲＡＭ１０３が８ビットのデータ出力Ｄout［＊］を有する場合を示しており、合計で２６ビットになる。
【０１０３】
図４に示すように、最大ビット数１２のデータ出力Ｄout［０］〜Ｄout［１１］のＲＡＭ１０２に対応するため、救済解析回路１５０のビット数はｋ＝４のものを用いる。図４に示すように、ＲＡＭ１０１〜１０３はそれぞれ予備メモリ列ＲＭＣ（冗長メモリ部）を有している。
【０１０４】
ＲＡＭ１０１〜１０３の救済は救済デコーダ１３１〜１３３に救済制御信号(rai1[*],ren1, rai2[*],ren2, rai3[*],ren3)を与えることにより行う。これら救済制御信号は第１〜第３の部分救済制御信号に分類される。すなわち、第１の部分救済制御信号はＲＡＭ１０１用の救済情報ｒａｉ１［＊］，救済イネーブル信号ｒｅｎ１となる。また、第２の部分救済制御信号はＲＡＭ１０２用の救済情報ｒａｉ２［＊］，救済イネーブル信号ｒｅｎ２となり、第３の部分救済制御信号はＲＡＭ１０３用の救済情報ｒａｉ３［＊］，救済イネーブル信号ｒｅｎ３となる。
【０１０５】
なお、後に詳述するが、救済情報ｒａｉ１［＊］〜ｒａｉ３［＊］は、救済解析回路１５０より観測タイミングｔ１１〜ｔ１３で得たＲＡＭ１０１〜１０３に対応するカウント用フリップフロップ群zerocnt_ff［k-1:0］（ｋビット出力ＣＴｋ）の値に相当する。また、救済イネーブル信号ｒｅｎ１〜ｒｅｎ３は救済解析回路１５０より観測タイミングｔ１１〜ｔ１３で得たＲＡＭ１０１〜１０３に対応する救済イネーブル信号ｒｅｉに相当する。
【０１０６】
なお、救済イネーブル信号ｒｅｎ１〜ｒｅｎ３は、それぞれ“１”で救済有効、“０”で救済無効を指示する。救済情報ｒａｉ１［＊］〜ｒａｉ３［＊］はＲＡＭ１０１〜１０３の救済すべきビット（メモリ列Ｃ［＊］の位置）を示している。救済デコーダ１３１〜１３３は上記第１〜第３の部分救済制御信号に基づきセレクタ群１１１〜１１３を制御して故障救済を行う。なお、セレクタ群１１１〜１１３はそれぞれデータ出力ビット数＋“１”のセレクタＳＬ２０から構成される。
【０１０７】
以下、救済デコーダ１３３を例に挙げて説明する。救済デコーダ１３３により制御されるセレクタ群１１３は、８個のセレクタＳＬ２０から構成される。各セレクタＳＬ２０は隣接するメモリ列Ｃ［０］，Ｃ［１］、Ｃ［１］，Ｃ［２］、…Ｃ［６］，Ｃ［７］及びＣ［７］，ＲＭＣのいずれかの組を入力し、救済デコーダ１３３の制御下で一方を有効にして、データ出力Ｄout［０］〜Ｄout［７］として出力する。
【０１０８】
第３の部分救済制御信号において、救済イネーブル信号ｒｅｎ３が“１”であり、救済情報ｒａｉ３［＊］が“００１０”（２）を指示するとき、メモリ列Ｃ［２］を無効にし、予備メモリ列ＲＭＣを用いるように救済デコーダ１３３はセレクタ群１１３を制御する。具体的には、メモリ列Ｃ［０］，Ｃ［１］の出力をデータ出力Ｄout［０］，Ｄout［１］として出力し、メモリ列Ｃ［３］〜Ｃ［７］の出力をデータ出力Ｄout［２］〜Ｄout［６］として出力し、予備メモリ列ＲＭＣの出力をデータ出力Ｄout［７］として出力するように、セレクタ群１１３を制御する。
【０１０９】
図４に示すように、上記第１〜第３の部分救済制御信号がＲＡＭ１０１〜１０３間で独立している場合は、救済デコーダ１３１〜１３３がＲＡＭ１０１〜１０３に対する救済制御を行う必要がある。
【０１１０】
なお、図４で示した構成では、結果ラッチ２０１〜２０３それぞれのシフトパスの前後（シリアル入力部，シリアル出力部）に救済解析に無関係な１ビットのダミービットｄ１，ｄ２を格納可能なダミーラッチ部２３１ａ〜２３３ａ及び２３１ｂ〜２３３ｂを有している。
【０１１１】
結果ラッチ２０１を例に挙げれば、有効ビットｂ［５］にシフト入力信号br_sin側にダミーラッチ部２３１ｂを設け、有効ビットｂ［０］のシフト出力信号br_sout側にダミーラッチ部２３１ａを設けている。なお、有効ビットｂ［０］〜ｂ［５］はフリップフロップＦＦ１００〜ＦＦ１０５の内のラッチデータを意味する。
【０１１２】
ダミーラッチ部２３１ａ，２３１ｂは、セレクタＳＬ１ｉ（ｉ＝０〜５のいずれか）及びフリップフロップＦＦ１０ｉと等価に構成することにより実現することができる。また、特許文献１の図２等において示されたフリップフロップ（FF1,FF2,FF20）のように他の信号処理に用いられている回路部分を転用して実現することも考えられる。なお、ダミーラッチ部２３１ａ〜２３３ａ及び２３１ｂ〜２３３ｂは必要不可欠なものではなく、結果ラッチ２０１〜２０３間を直結しても良い。
【０１１３】
前述したように、結果ラッチ２０１〜２０３によるラッチ動作、直列シフト動作、救済解析回路１５０による救済動作を実行させるための、制御信号(reset_enc,bitcount_en,br_shift)はＢＩＳＴ制御回路１１０から出力される。
【０１１４】
図５〜図７は救済解析回路１５０による故障解析動作を示す波形図である。図５はＲＡＭ１０１〜１０３のいずれにも故障がない場合、図６はＲＡＭ１０１〜１０３それぞれにおいて１ビットの故障が発生した場合、図７はＲＡＭ１０１〜１０３それぞれにおいて２ビットの故障が生じた場合を示している。なお、図５〜図７で示す動作は、図４に示すように、結果ラッチ２０１〜２０３のシリアル入出力部にダミーラッチ部２３１ａ，２３１ｂ〜２３１ａ，２３３ｂが設けられた構成を前提としている。
【０１１５】
また、図２〜図４には図示しないが、救済解析回路１５０あるいは結果ラッチ２０１内のフリップフロップ等はクロックＣＬＫに同期して動作する。例えば、フリップフロップＦＦ２１，ＦＦ２２はクロックＣＬＫの立ち上がりエッジに同期してデータ入力を取り込む。なお、説明の都合上、図５〜図７それぞれにおいて、クロックＣＬＫの１周期毎にクロックNo.０〜３６を示した。
【０１１６】
まず、図５を参照して、救済解析回路１５０による救済解析動作を説明する。クロックNo.２〜３にかけてリセット信号reset_encの“Ｈ”パルスが発生する。すると、マルチフェイル回路１５２のＡＮＤゲートＡＧ２２，ＡＧ２４の出力が“０”になりフリップフロップＦＦ２１，ＦＦ２２が“０”に初期化される。同様にして、シーケンシャルエンコーダ回路１５３のＡＮＤゲートＡＧ２６の出力が“０”となり、カウント用フリップフロップ群zerocnt_ff［k-1:0］のｋビット出力ＣＴｋ（zerocnt_ff）が“０”に初期化される。
【０１１７】
したがって、救済イネーブル信号ｒｅｉ、故障検出予告信号fail_notice及びマルチフェイル信号multifailは“０”に初期化される。
【０１１８】
クロックＣＬＫのクロックNo.３の期間中にシフト動作信号br_shiftが“１”となり、結果ラッチ２０１〜２０３及びダミーラッチ部２３１ａ，２３１ｂ〜２３３ａ，２３３ｂ内のフリップフロップ（フリップフロップＦＦ１００〜ＦＦ１０５等）による直列シフト動作が開始される。その結果、ブリッジ回路３０３のダミービットｄ１の内容を指示するスキャンパス信号ＳＰ３がシリアル入力信号sin_encとして救済解析回路１５０に取り込まれる。このとき、有効ビット情報bitcount_enが“０”ため、救済解析回路１５０はシリアル入力信号sin_encを無効ビットと判断し、無視する。
【０１１９】
クロックＣＬＫのクロックNo.４の期間中に、ブリッジ回路３０３の有効ビットｂ［０］の内容を指示するスキャンパス信号ＳＰ３がシリアル入力信号sin_encとして救済解析回路１５０に取り込まれる。このとき、有効ビット情報bitcount_enが“１”に変化するため、救済解析回路１５０はシリアル入力信号sin_encを有効ビットと判断し、カウント制御信号count_upが“１”となり、カウントアップ動作が有効となる。すなわち、インクリメントアダー１５４はｋビット出力ＣＴｋに対しカウントアップ動作を行って得られる“１”を指示するカウントアップ出力値Ｖ１５４がセレクタＳＬ２１及びＡＮＤゲートＡＧ２６を介してカウント用フリップフロップ群zerocnt_ff［k-1:0］に出力される。
【０１２０】
クロックＣＬＫのクロックNo.５の期間中に“１”を指示するカウントアップ出力値Ｖ１５４がカウント用フリップフロップ群zerocnt_ff［k-1:0］に取り込まれ、ｋビット出力ＣＴｋが“１”にカウントアップする。
【０１２１】
以降、クロックＣＬＫのクロックNo.５〜No.１１にかけて、ｋビット出力ＣＴｋがカウントアップする。ＲＡＭ１０３には故障ビットが存在しないため、シリアル入力信号sin_encは“０”を維持する。
【０１２２】
そして、クロックＣＬＫのクロックNo.１２の立ち上がりエッジに設定された観測タイミングｔ１１で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋを観測する。その結果、救済イネーブル信号ｒｅｉが“０”のため、ＲＡＭ１０３には故障ビットが存在しないことを認識することができる。このように、観測タイミングｔ１１で観測した故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋが救済解析情報ＩＲ内の一部であるＲＡＭ１０３についての第３の部分救済解析情報となる。
【０１２３】
したがって、外部のテスタあるいはＢＩＳＴ制御回路１１０等が、上記第３の部分救済解析情報の救済イネーブル信号ｒｅｉに基づき、救済イネーブル信号ｒｅｎ３として“０”（無効）を決定することができる。この場合、救済情報ｒａｉ３［＊］は任意で良い。
【０１２４】
その後、結果ラッチ２０３のデータラッチ群と結果ラッチ２０２のデータラッチ群との切り替わりのダミービットｄ２，ｄ１の発生期間中であるクロックＣＬＫのクロックNo.１２〜１３にかけてリセット信号reset_encの“Ｈ”パルスが発生する。すると、マルチフェイル回路１５２のフリップフロップＦＦ２１，ＦＦ２２が“０”に初期化され、カウント用フリップフロップ群zerocnt_ff［k-1:0］のｋビット出力ＣＴｋが“０”に初期化される。
【０１２５】
したがって、救済イネーブル信号ｒｅｉ、故障検出予告信号fail_notice及びマルチフェイル信号multifailは“０”に再び初期化される。
【０１２６】
クロックＣＬＫのクロックNo.１２〜１３の期間もシフト動作信号br_shiftは“１”を維持するが、有効ビット情報bitcount_enが“０”と無効を指示する。したがって、クロックＣＬＫのクロックNo.１２〜１３の期間において、ブリッジ回路３０３のダミービットｄ２及びブリッジ回路３０２のダミービットｄ１がシリアル入力信号sin_encとして入力されるが、救済解析回路１５０の動作に支障は生じない。
【０１２７】
クロックＣＬＫのクロックNo.１４の期間中に、ブリッジ回路３０２の有効ビットｂ［０］の内容を指示するスキャンパス信号ＳＰ３がシリアル入力信号sin_encとして救済解析回路１５０に取り込まれる。このとき、有効ビット情報bitcount_enが“１”に回復するため、救済解析回路１５０はシリアル入力信号sin_encを有効ビットと判断し、カウント制御信号count_upが“１”となり、カウントアップ動作が有効となる。
【０１２８】
クロックＣＬＫのクロックNo.１５の期間中に“１”を指示するカウントアップ出力値Ｖ１５４がカウント用フリップフロップ群zerocnt_ff［k-1:0］に取り込まれ、ｋビット出力ＣＴｋが“１”にカウントアップする。
【０１２９】
以降、クロックＣＬＫのクロックNo.１６〜No.２５にかけて、ｋビット出力ＣＴｋがカウントアップする。ＲＡＭ１０２には個故障ビットが存在しないため、シリアル入力信号sin_encは“０”を維持する。
【０１３０】
そして、クロックＣＬＫのクロックNo.２６の立ち上がりエッジ設定された観測タイミングｔ１２で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋ（第２の部分救済解析情報）を観測する。その結果、救済イネーブル信号ｒｅｉが“０”のため、ＲＡＭ１０２には故障ビットが存在しないことを認識することができる。
【０１３１】
したがって、外部のテスタあるいはＢＩＳＴ制御回路１１０等が、上記第２の部分救済解析情報の救済イネーブル信号ｒｅｉに基づき、救済イネーブル信号ｒｅｎ２として“０”（無効）を決定することができる。この場合、救済情報ｒａｉ２［＊］は任意で良い。
【０１３２】
以下、同様にして、クロックＣＬＫのクロックNo.２７〜３３間において、ＲＡＭ１０１の故障ビット検出が行われる。
【０１３３】
そして、クロックＣＬＫのクロックNo.３４の立ち上がりエッジ設定された観測タイミングｔ１３で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋ（第１の部分救済解析情報）を観測する。その結果、救済イネーブル信号ｒｅｉが“０”のため、ＲＡＭ１０１には故障ビットが存在しないことを認識することができる。
【０１３４】
したがって、外部のテスタあるいはＢＩＳＴ制御回路１１０等が、上記第１の部分救済解析情報の救済イネーブル信号ｒｅｉに基づき、救済イネーブル信号ｒｅｎ１として“０”（無効）を決定することができる。この場合、救済情報ｒａｉ１［＊］は任意で良い。
【０１３５】
次に、図６を参照して、救済解析回路１５０による救済解析動作を説明する。なお、説明の都合上、図５で説明した動作内容と同様な動作部分は適宜省略する。また、クロックＣＬＫのクロックNo.及び結果ラッチ２０１〜２０３内のラッチデータ群の内容がシリアル入力信号sin_encとして読み出されるタイミングは図５と同様である。
【０１３６】
結果ラッチ２０３の有効ビットｂ［２］が“１”のため、クロックＣＬＫのクロックNo.６〜７にかけてシリアル入力信号sin_encが“１”となる。その結果、マルチフェイル回路１５２のＡＮＤゲートＡＧ２１が“１”となるため、シリアル入力信号sin_encの“１”立ち上がりに同期して故障検出予告信号fail_noticeが“１”（“Ｈ”）に立ち上がる。
【０１３７】
そして、クロックＣＬＫのクロックNo.７の立ち上がりに同期してフリップフロップＦＦ２１内に故障検出予告信号fail_noticeの内容がラッチされる結果、救済イネーブル信号ｒｅｉが“１”となる。
【０１３８】
その後、救済イネーブル信号ｒｅｉ及び故障検出予告信号fail_noticeの“１”は、ＯＲゲートＯＧ２１、ＡＮＤゲートＡＧ２２及びフリップフロップＦＦ２１間で形成されるループ内で保持される。このため、以降、救済イネーブル信号ｒｅｉ及び故障検出予告信号fail_noticeは“１”を維持する。
【０１３９】
その結果、シーケンシャルエンコーダ回路１５３のＡＮＤゲートＡＧ２５の一方入力（故障検出予告信号fail_noticeの反転信号）が“０”となるため、カウント制御信号count_upが“０”となり、クロックＣＬＫのクロックNo.６を最後にシーケンシャルエンコーダ回路１５３によるカウント動作が停止する。
【０１４０】
したがって、ｋビット出力ＣＴｋはクロックＣＬＫのクロックNo.６中にカウント用フリップフロップ群zerocnt_ff［k-1:0］にラッチされた“２”で終了する。以降、ｋビット出力ＣＴｋの“２”は、セレクタＳＬ２１（“０”入力を選択）、ＡＮＤゲートＡＧ２６、及びカウント用フリップフロップ群zerocnt_ff［k-1:0］間で形成されるループで保持される。このため、以降、Ｋｋビット出力ＣＴｋは“２”を維持する。
【０１４１】
一方、クロックＣＬＫのクロックNo.８の立ち上がり時には、シリアル入力信号sin_encは“０”となっているため、マルチフェイル回路１５２のＡＮＤゲートＡＧ２１の出力は“０”に戻る。したがって、ＡＮＤゲートＡＧ２３の一方入力である救済イネーブル信号ｒｅｉは“Ｈ”であるが、他方入力である有効ビット情報bitcount_enが“Ｌ”であるため、フリップフロップＦＦ２２が“Ｌ”をラッチし続けるため、マルチフェイル信号multifailは初期値の“０”を維持する。
【０１４２】
そして、クロックＣＬＫのクロックNo.１２の立ち上がりエッジ設定された観測タイミングｔ１１で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋ（第３の部分救済解析情報）を観測する。その結果、救済イネーブル信号ｒｅｉが“１”及びマルチフェイル信号multifailが“０”のため、ＲＡＭ１０３には救済可能な１ビット故障ビットが存在することを認識することができる。そして、その故障個所である“２”を示すｋビット出力ＣＴｋが救済情報ｒａｉ［ｋ−１：０］として出力される。したがって、救済情報ｒａｉ［ｋ−１：０］を参照するおとにより、ＲＡＭ１０３のメモリ列Ｃ［２］に故障ビットが存在することを認識することができる。
【０１４３】
したがって、外部のテスタあるいはＢＩＳＴ制御回路１１０等が、上記第３の部分救済解析情報の救済イネーブル信号ｒｅｉ及びマルチフェイル信号multifailに基づき、救済イネーブル信号ｒｅｎ３として“１”（有効）を決定することができる。そして、救済情報ｒａｉ３［＊］として救済情報ｒａｉ［ｋ−１：０］をそのまま用いることができる。
【０１４４】
次に、クロックＣＬＫのクロックNo.１３〜２６間において、ＲＡＭ１０２の故障ビット検出が行われる。
【０１４５】
結果ラッチ２０２の有効ビットｂ［７］が“１”のため、クロックＣＬＫのクロックNo.２１〜２２にかけてシリアル入力信号sin_encが“１”となる。その結果、シリアル入力信号sin_encの“１”立ち上がりに同期して故障検出予告信号fail_noticeが“１”に立ち上がる。
【０１４６】
そして、クロックＣＬＫのクロックNo.２２の立ち上がりに同期して救済イネーブル信号ｒｅｉが“１”となる。その後、前述したように、救済イネーブル信号ｒｅｉ及び故障検出予告信号fail_noticeは“１”を維持する。
【０１４７】
その結果、シーケンシャルエンコーダ回路１５３のＡＮＤゲートＡＧ２５の一方入力（故障検出予告信号fail_noticeの反転信号）が“０”となるため、カウント制御信号count_upが“０”となり、クロックＣＬＫのクロックNo.２１を最後にシーケンシャルエンコーダ回路１５３によるカウント動作が停止する。
【０１４８】
したがって、ｋビット出力ＣＴｋはクロックＣＬＫのクロックNo.２１中にカウント用フリップフロップ群zerocnt_ff［k-1:0］にラッチされた“７”で終了する。以降、ｋビット出力ＣＴｋの“７”は、前述したように維持される。
【０１４９】
一方、クロックＣＬＫのクロックNo.２３の立ち上がり時には、シリアル入力信号sin_encは“０”となっているため、マルチフェイル信号multifailは初期値の“０”を維持する。
【０１５０】
そして、クロックＣＬＫのクロックNo.２６の立ち上がりエッジに設定された観測タイミングｔ１２で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋ（第２の部分救済解析情報）を観測する。その結果、救済イネーブル信号ｒｅｉが“１”及びマルチフェイル信号multifailが“０”のため、ＲＡＭ１０２には救済可能な１ビット故障ビットが存在することを認識することができる。そして、その故障個所である“７”を示すｋビット出力ＣＴｋが救済情報ｒａｉ［ｋ−１：０］として出力される。この救済情報ｒａｉ［ｋ−１：０］を参照することにより、ＲＡＭ１０２のメモリ列Ｃ［７］に故障ビットが存在することを認識することができる。
【０１５１】
したがって、外部のテスタあるいはＢＩＳＴ制御回路１１０等が、上記第２の部分救済解析情報の救済イネーブル信号ｒｅｉ及びマルチフェイル信号multifailに基づき、救済イネーブル信号ｒｅｎ２として“１”（有効）を決定することができる。そして、救済情報ｒａｉ２［＊］として救済情報ｒａｉ［ｋ−１：０］をそのまま用いることができる。
【０１５２】
以下、クロックＣＬＫのクロックNo.２７〜３３間において、ＲＡＭ１０１の故障ビット検出が行われる。結果ラッチ２０１の有効ビットｂ［３］には“１”がラッチされているため、結果ラッチ２０３，２０２の場合と同様に、ｋビット出力ＣＴｋの値が“３”で停止し、故障検出予告信号fail_notice及び救済イネーブル信号ｒｅｉが“Ｈ”となり、マルチフェイル信号multifailは“Ｌ”を維持する。
【０１５３】
そして、クロックＣＬＫのクロックNo.３４の立ち上がりエッジ設定された観測タイミングｔ１３で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋ（第１の部分救済解析情報）を観測する。その結果、救済イネーブル信号ｒｅｉが“１”及びマルチフェイル信号multifailが“０”のため、ＲＡＭ１０２には救済可能な１ビット故障ビットが存在することを認識することができる。そして、その故障個所である“３”を示すｋビット出力ＣＴｋが救済情報ｒａｉ［ｋ−１：０］として出力される。この救済情報ｒａｉ［ｋ−１：０］を参照することにより、ＲＡＭ１０１のメモリ列Ｃ［３］に故障ビットが存在することを認識することができる。
【０１５４】
したがって、外部のテスタあるいはＢＩＳＴ制御回路１１０等が、上記第１の部分救済解析情報の救済イネーブル信号ｒｅｉ及びマルチフェイル信号multifailに基づき、救済イネーブル信号ｒｅｎ１として“１”（有効）を決定することができる。そして、救済情報ｒａｉ１［＊］として救済情報ｒａｉ［ｋ−１：０］をそのまま用いることができる。
【０１５５】
次に、図７を参照して、救済解析回路１５０による救済解析動作を説明する。なお、説明の都合上、図５及び図６で説明した動作内容と同様な動作部分は適宜省略する。また、クロックＣＬＫのクロックNo.及び結果ラッチ２０１〜２０３の内容がシリアル入力信号sin_encとして読み出されるタイミングは図５及び図６と同様である。
【０１５６】
結果ラッチ２０３の有効ビットｂ［２］が“１”のため、図６を参照して説明したように、クロックＣＬＫのクロックNo.６〜７にかけてシリアル入力信号sin_encが“１”となり、このシリアル入力信号sin_encの“１”立ち上がりに同期して故障検出予告信号fail_noticeが“１”に立ち上がる。
【０１５７】
そして、クロックＣＬＫのクロックNo.７の立ち上がりに同期してフリップフロップＦＦ２１内に故障検出予告信号fail_noticeの内容がラッチされる結果、救済イネーブル信号ｒｅｉが“１”となる。その後、救済イネーブル信号ｒｅｉ及び故障検出予告信号fail_noticeは“１”を維持する。その結果、クロックＣＬＫのクロックNo.６を最後にシーケンシャルエンコーダ回路１５３によるカウント動作が停止する。
【０１５８】
さらに、結果ラッチ２０３の有効ビットｂ［４］も“１”のため、クロックＣＬＫのクロックNo.８〜９にかけてシリアル入力信号sin_encが再び“１”となる。
【０１５９】
したがって、クロックＣＬＫのクロックNo.９の立ち上がり時にシリアル入力信号sin_encは“１”となり、マルチフェイル回路１５２のＡＮＤゲートＡＧ２１の出力は“１”になる。このため、ＡＮＤゲートＡＧ２３の一方入力（救済イネーブル信号ｒｅｉ）及び他方入力（ＡＮＤゲートＡＧ２１の出力）は共に“１”となり、ＯＲゲートＯＧ２２、ＡＮＤゲートＡＧ２を介して、“１”がフリップフロップＦＦ２２にデータ入力に出力される。その結果、クロックＣＬＫのクロックNo.９の立ち上がり時にデータ入力“１”がフリップフロップＦＦ２２にラッチされる結果、マルチフェイル信号multifailが“１”となる。
【０１６０】
その後、マルチフェイル信号multifailの“１”は、ＯＲゲートＯＧ２２、ＡＮＤゲートＡＧ２４及びフリップフロップＦＦ２２間で形成されるループ内で保持される。このため、以降、マルチフェイル信号multifailは“１”を維持する。
【０１６１】
そして、クロックＣＬＫのクロックNo.１２の立ち上がりエッジ設定された観測タイミングｔ１１で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋ（第３の部分救済解析情報）を観測する。その結果、マルチフェイル信号multifailが“１”のため、ＲＡＭ１０３には多ビット故障ビットが存在することを認識することができる。すなわち、ＲＡＭ１０３は救済不可能であることを認識することができる。
【０１６２】
次に、クロックＣＬＫのクロックNo.１３〜２６間において、ＲＡＭ１０２の故障ビット検出が行われる。
【０１６３】
結果ラッチ２０２の有効ビットｂ［７］が“１”のため、図６を参照して説明したように、シリアル入力信号sin_encの“１”立ち上がりに同期して故障検出予告信号fail_noticeが“１”に立ち上がる。
【０１６４】
そして、クロックＣＬＫのクロックNo.２２の立ち上がりに同期して救済イネーブル信号ｒｅｉが“１”となる。その後、救済イネーブル信号ｒｅｉ及び故障検出予告信号fail_noticeは“１”を維持する。
【０１６５】
その結果、カウント制御信号count_upが“０”となり、クロックＣＬＫのクロックNo.２１を最後にシーケンシャルエンコーダ回路１５３によるカウント動作が停止し、ｋビット出力ＣＴｋは“７”で固定する。
【０１６６】
さらに、結果ラッチ２０２の有効ビットｂ［１０］も“１”のため、クロックＣＬＫのクロックNo.２４〜２５にかけてシリアル入力信号sin_encが再び“１”となる。
【０１６７】
したがって、クロックＣＬＫのクロックNo.２５の立ち上がり時にシリアル入力信号sin_encは“１”となる結果、クロックＣＬＫのクロックNo.２５の立ち上がり時にマルチフェイル信号multifailが“１”となる。その後、マルチフェイル信号multifailは“１”を維持する。
【０１６８】
そして、クロックＣＬＫのクロックNo.２６の立ち上がりエッジ設定された観測タイミングｔ１２で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋ（第２の部分救済解析情報）を観測する。その結果、マルチフェイル信号multifailが“１”のため、ＲＡＭ１０２には多ビット故障ビットが存在することを認識することができる。すなわち、ＲＡＭ１０２は救済不可能であることを認識することができる。
【０１６９】
以下、同様にして、クロックＣＬＫのクロックNo.２７〜３３間において、ＲＡＭ１０１の故障ビット検出が行われる。結果ラッチ２０１の有効ビットｂ［３］及びｂ［４］には“１”がラッチされているため、結果ラッチ２０３，２０２の場合と同様に、ｋビット出力ＣＴｋの値が“３”で停止し、故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ及びマルチフェイル信号multifailが“Ｈ”となる。
【０１７０】
そして、クロックＣＬＫのクロックNo.３４の立ち上がりエッジに設定された観測タイミングｔ１３で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋ（第１の部分救済解析情報）を観測する。その結果、マルチフェイル信号multifailが“１”のため、ＲＡＭ１０１には多ビット故障ビットが存在することを認識することができる。すなわち、ＲＡＭ１０１は救済不可能であることを認識することができる。
【０１７１】
このように、ＢＩＳＴ制御回路１１０は、ブリッジ回路３０１〜３０３それぞれのダミービットｄ１，ｄ２（無効ビット）を解析対象から避けるように有効ビット情報bitcount_enを発生する。さらに、ＢＩＳＴ制御回路１１０は、結果ラッチ２０１〜２０３それぞれの有効ビットの救済解析開始前に“Ｈ”のリセット信号reset_encを発生することにより、ＲＡＭ１０１〜１０３それぞれの故障検出を一連の解析処理中に一括して行うことができる。
【０１７２】
そして、観測タイミングｔ１１〜ｔ１３で第１〜第３の部分救済解析情報（fail_notice，rei、multifail ，ＣＴｋ（zerocnt_ff：raiと同じ)）を観測することにより、ＲＡＭ１０１〜１０３それぞれの故障の有無、マルチビット故障の有無（有りの場合、故障救済できない）、及び故障ビット位置を正確に認識することができる。
【０１７３】
上述したように、この発明に係る実施の形態１の半導体集積回路は、１単位の救済解析回路１５０のみにより複数のＲＡＭ１０１〜１０３に関する救済解析情報ＩＲを得ることができるため、集積度を損ねることなく複数のＲＡＭに対する故障救済を行うことができる。
【０１７４】
さらに、実施の形態１の半導体集積回路は、ＲＡＭ１０１〜１０３に対応して救済デコーダ１３１〜１３３を備え、救済解析回路１５０より得られる救済解析情報ＩＲはＲＡＭ１０１〜１０３それぞれの救済の必要性の有無（ｒｅｉ，multifail）、及び故障箇所（ｒａｉ［ｋ−１：０］）を示すため、ＲＡＭ１０１〜１０３それぞれについて独立した故障救済を行うことができる。
【０１７５】
さらに、実施の形態１の半導体集積回路におけるＢＩＳＴ制御回路１１０は、スキャンパス信号ＳＰ３（シリアル入力信号sin_enc）して出力されている結果ラッチ２０１〜２０３のラッチデータ群間の切り替わり時に切り替わりを指示するリセット信号reset_encを出力する。このため、リセット信号reset_encにより救済解析回路１５０による救済解析動作を適宜初期化することにより、ＢＩＳＴ制御回路１１０の制御下で、スキャンパス信号ＳＰ３に基づき結果ラッチ２０１〜２０３にラッチされたラッチデータ群に対応した上記第１〜第３の部分救済解析情報を効率的に得ることができる。
【０１７６】
加えて、実施の形態１における半導体集積回路のＢＩＳＴ制御回路１１０は、スキャンパス信号ＳＰ３としてダミービットｄ１，ｄ２が出力されている期間にリセット信号reset_encを出力するため、シフト動作を停止さることなく、スキャンパス信号ＳＰ３に基づき結果ラッチ２０１〜２０３のラッチデータ群に対応した第１〜第３の部分救済解析情報を救済解析回路１５０より効率的に得ることができる。
【０１７７】
また、ＢＩＳＴ制御回路１１０は、リセット信号reset_encが出力されている期間はスキャンパス信号ＳＰ３の無効を指示する“Ｌ”の有効ビット情報bitcount_enを出力するため、故障解析回路１５０がダミーデータｄ１，ｄ２に基づき誤って故障解析動作を行うことを確実に回避することができる。
【０１７８】
さらに、実施の形態１半導体集積回路のおいて結果ラッチ２０１〜２０３は、ＢＩＳＴ制御回路１１０からのシフト動作信号br_shiftに基づく制御下で、結果ラッチ２０１〜２０３における複数のラッチデータ群をスキャンパス信号ＳＰ３としてシリアルに出力することができる。その結果、救済解析回路１５０は、スキャンパス信号ＳＰ３に基づきＲＡＭ１０１〜１０３それぞれに対応した第１〜第３の部分救済解析情報を含む救済解析情報ＩＲを効率的に得ることができる。
【０１７９】
さらに、実施の形態１の半導体集積回路は、１ビット以上の故障を指示する救済イネーブル信号ｒｅｉ（１ビット故障情報）に基づき、ＲＡＭ１０１〜１０３それぞれについての１箇所以上の故障の有無を認識することができる。
【０１８０】
加えて、実施の形態１の半導体集積回路は、２ビット以上の故障を指示するマルチフェイル信号multifailに基づき、ＲＡＭ１０１〜１０３それぞれについての２箇所以上の故障の有無を認識することができる。その結果、１ビット故障情報と併せて複数のＲＡＭ１０１〜１０３それぞれについて救済可能な１箇所のみの故障の有無を正確に認識することができる。
【０１８１】
なお、実施の形態１ではＲＡＭ１０１〜１０３全てが救済機能（予備メモリ列ＲＭＣ）を有する構成を例にあげたが、複数のＲＡＭの一部に救済機能を持たないＲＡＭが含まれてもよい。
【０１８２】
その場合は、当該救済機能を持たないＲＡＭについては、救済イネーブル信号ｒｅｉが“１”でマルチフェイル信号multifailが“０”の場合も救済できず、ＬＳＩ（半導体集積回路）全体として救済できないことになる。
【０１８３】
図１では結果ラッチ２０１〜２０３のラッチ情報をスキャンパス信号ＳＰ３として外部に読み出す手段として ＴＡＰ（Test-Access-Port）回路１５５を示している。ＴＡＰ回路１５５は、例えば、IEEE１１４９．１規格に示されているTAP回路を用いてもよい。ただし、ＴＡＰ回路１５５は本発明の必須要素ではない。
【０１８４】
＜実施の形態２＞
図８は実施の形態２の半導体集積回路において、救済解析回路１６０、ブリッジ回路３０１〜３０３、ＲＡＭ１０１〜１０３及び救済デコーダ１３０の詳細を示す説明図である。なお、全体構成は図１で示した実施の形態１の構成と同様である。
【０１８５】
図８に示すように、救済解析回路１６０は、結果ラッチ２０３のスキャンパス信号ＳＰ３をシリアル入力信号sin_encとして受け、ＢＩＳＴ制御回路１８０から有効ビット情報bitcount_en及びリセット信号reset_encを入力する。そして、救済解析回路１６０は、故障情報ｒｅｉ、マルチフェイル信号multifail、救済情報ｒａｉ［ｋ−１：０］及び故障検出予告信号fail_noticeからなる救済解析情報ＩＲをＢＩＳＴ制御回路１８０に出力する。
【０１８６】
救済解析回路１６０は、図３で示した実施の形態１の救済解析回路１５０と同様、マルチフェイル回路１５２及びシーケンシャルエンコーダ回路１５３から構成される。
【０１８７】
ＢＩＳＴ制御回路１８０はブリッジ回路３０１〜３０３、パターン発生回路１２０、救済解析回路１６０を制御してＲＡＭ１０１〜１０３の故障救済制御を行う。
【０１８８】
実施の形態２では、図８に示すように、３つのＲＡＭ１０１〜１０３に対して１つの救済デコーダ１３０を設けている（救済制御信号はrai123[*],ren123）。そして、３つのＲＡＭ１０１〜１０３のうち、１つのＲＡＭの１ビット入出力の故障を救済の対象としている。したがって、２つ以上のＲＡＭの故障や、１つのＲＡＭに２ビット入出力の故障は救済できない。
【０１８９】
実施の形態２では、ＲＡＭ１０１〜１０３全体のビット数の合計である、総ビット数（２６＝６＋１２＋８）を救済情報ｒａｉ１２３［＊］としている。したがって、救済デコーダ１３０は、ＲＡＭ１０１〜１０３間において２６個の救済セレクタＳＬ２５からなるセレクタ群１１５を制御する。つまり、救済の観点からは、３つのＲＡＭ１０１〜１０３を、２６ビットの入出力を有する１つのＲＡＭと想定して行っている。
【０１９０】
この場合、救済解析回路１６０は、上記総ビット数２６に対応したビット数の各ビット位置をコード化できるものが必要になる。図１０の例では、ｋ＝５の救済解析回路１６０が必要になる。また、救済解析は２６ビット入出力の１つのＲＡＭと仮想して行うため、これに対応した制御信号を発生するようにＢＩＳＴ制御回路１８０を構成する必要がある。
【０１９１】
図９〜図１１は救済解析回路１６０による故障解析動作を示す波形図である。図９はＲＡＭ１０１〜１０３のいずれにも故障がない場合、図１０はＲＡＭ１０１〜１０３全体において１ビットの故障が発生した場合、図１１はＲＡＭ１０１〜１０３全体において２ビットの故障が生じた場合を示している。なお、図９〜図１１で示す動作は、図８に示すように、結果ラッチ２０１〜２０３のシリアル入出力部にダミーラッチ部２３１ａ，２３１ｂ〜２３３ａ，２３３ｂが設けられた構成を前提としている。
【０１９２】
また、図１，図８には図示しないが、救済解析回路１６０あるいは結果ラッチ２０１内のフリップフロップ等はクロックＣＬＫに同期して動作する。なお、説明の都合上、図９〜図１１それぞれにおいて、クロックＣＬＫの１周期毎にクロックNo.０〜３６を示した。
【０１９３】
まず、図９を参照して、救済解析回路１６０による救済解析動作を説明する。クロックNo.２〜３にかけてリセット信号reset_encの“Ｈ”パルスが発生する。すると、実施の形態１と同様、マルチフェイル回路１５２のフリップフロップＦＦ２１，ＦＦ２２が“０”に初期化され、カウント用フリップフロップ群zerocnt_ff［k-1:0］のｋビット出力ＣＴｋ（zerocnt_ff）が“０”に初期化される。
【０１９４】
したがって、救済イネーブル信号ｒｅｉ、故障検出予告信号fail_notice及びマルチフェイル信号multifailは“０”に初期化される。
【０１９５】
クロックＣＬＫのクロックNo.３の期間中にシフト動作信号br_shiftが“１”となり、実施の形態１と同様、結果ラッチ２０１〜２０３のラッチデータ群間の直列シフト動作が開始される。その結果、ブリッジ回路３０３のダミービットｄ１の内容を指示するスキャンパス信号ＳＰ３がシリアル入力信号sin_encとして救済解析回路１６０に取り込まれる。このとき、有効ビット情報bitcount_enが“０”ため、救済解析回路１６０はシリアル入力信号sin_encを無効ビットと判断し、無視する。
【０１９６】
クロックＣＬＫのクロックNo.４の期間中に、ブリッジ回路３０３の有効ビットｂ［０］の内容を指示するスキャンパス信号ＳＰ３がシリアル入力信号sin_encとして救済解析回路１６０に取り込まれる。このとき、有効ビット情報bitcount_enが“１”のため、救済解析回路１６０はシリアル入力信号sin_encを有効ビットと判断し、カウント制御信号count_upが“１”となり、実施の形態１と同様、シーケンシャルエンコーダ回路１５３によるカウントアップ動作が有効となる。
【０１９７】
以降、クロックＣＬＫのクロックNo.５〜No.３４にかけて、ｋビット出力ＣＴｋをカウントアップする。ＲＡＭ１０３には故障ビットが存在しないため、シリアル入力信号sin_encは“０”を維持する。
【０１９８】
また、ダミービットｄ１，ｄ２が出力されるクロックＣＬＫのクロックNo.１２，１３及びNo.２６，２７の期間は、有効ビット情報bitcount_enが“０”となり、救済解析回路１６０がダミービットｄ１，ｄ２に基づき誤って救済解析を行うことを確実に回避している。また、上記期間において、有効ビット情報bitcount_enを入力するシーケンシャルエンコーダ回路１５３のＡＮＤゲートＡＧ２５（図３参照）の出力であるカウント制御信号count_upが“０”となるため、ダミービットｄ１，ｄ２の入力によってｋビット出力ＣＴｋがカウントアップすることもない。
【０１９９】
そして、クロックＣＬＫのクロックNo.３５の立ち上がりエッジ設定された観測タイミングｔ１５で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋからなる救済解析情報ＩＲを観測する。その結果、救済イネーブル信号ｒｅｉが“０”のため、ＲＡＭ１０１〜１０３全体に故障ビットが存在しないことを認識することができる。
【０２００】
次に、図１０を参照して、救済解析回路１６０による救済解析動作を説明する。なお、説明の都合上、図９で説明した動作内容と同様な動作部分の説明は適宜省略する。また、クロックＣＬＫのクロックNo.及び結果ラッチ２０１〜２０３の内容がシリアル入力信号sin_encとして読み出されるタイミングは図９と同様である。
【０２０１】
結果ラッチ２０２の有効ビットｂ［７］が“１”のため、クロックＣＬＫのクロックNo.２１〜２２にかけてシリアル入力信号sin_encが“１”となる。その結果、マルチフェイル回路１５２のＡＮＤゲートＡＧ２１が“１”となるため（図３参照）、シリアル入力信号sin_encの“１”立ち上がりに同期して故障検出予告信号fail_noticeが“１”に立ち上がる。
【０２０２】
そして、クロックＣＬＫのクロックNo.２２の立ち上がりに同期してフリップフロップＦＦ２１内に故障検出予告信号fail_noticeの内容がラッチされる結果、救済イネーブル信号ｒｅｉが“１”（“Ｈ”）となる。
【０２０３】
その後、救済イネーブル信号ｒｅｉ及び故障検出予告信号fail_noticeの“１”は、実施の形態１と同様、維持される。その結果、クロックＣＬＫのクロックNo.２１を最後にシーケンシャルエンコーダ回路１５３によるカウント動作が停止する。
【０２０４】
したがって、ｋビット出力ＣＴｋはクロックＣＬＫのクロックNo.２１中にカウント用フリップフロップ群zerocnt_ff［k-1:0］にラッチされた“１５”で終了する。以降、ｋビット出力ＣＴｋの“１５”は、実施の形態１と同様、維持される。
【０２０５】
一方、クロックＣＬＫのクロックNo.２３の立ち上がり時には、シリアル入力信号sin_encは“０”となっているため、マルチフェイル回路１５２のＡＮＤゲートＡＧ２１の出力は“０”に戻る結果、マルチフェイル信号multifailは初期値の“０”を維持する。
【０２０６】
そして、クロックＣＬＫのクロックNo.３５の立ち上がりエッジ設定された観測タイミングｔ１５で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋからなる救済解析情報ＩＲを観測する。その結果、救済イネーブル信号ｒｅｉが“１”及びマルチフェイル信号multifailが“０”のため、ＲＡＭ１０１〜１０３全体として救済可能な１ビット故障ビットが存在することを認識することができる。そして、その故障個所である“１５”を示すｋビット出力ＣＴｋが救済情報ｒａｉ［ｋ−１：０］として認識される。すなわち、救済情報ｒａｉ［ｋ−１：０］を参照することにより、ＲＡＭ１０１〜１０３のうちＲＡＭ１０２のメモリ列Ｃ［７］（１５＝８＋７）に故障ビットが存在することを認識することができる。
【０２０７】
次に、図１１を参照して、救済解析回路１６０による救済解析動作を説明する。なお、説明の都合上、図９及び図１０で説明した動作内容と同様な動作部分は適宜省略する。また、クロックＣＬＫのクロックNo.及び結果ラッチ２０１〜２０３の内容がシリアル入力信号sin_encとして読み出されるタイミングは図９及び図１０と同様である。
【０２０８】
結果ラッチ２０３の有効ビットｂ［２］が“１”のため、クロックＣＬＫのクロックNo.６〜７にかけてシリアル入力信号sin_encが“１”となり、このシリアル入力信号sin_encの“１”立ち上がりに同期して故障検出予告信号fail_noticeが“１”に立ち上がる。
【０２０９】
そして、クロックＣＬＫのクロックNo.７の立ち上がりに同期してフリップフロップＦＦ２１内に故障検出予告信号fail_noticeの内容がラッチされる結果、救済イネーブル信号ｒｅｉが“１”となる。その後、救済イネーブル信号ｒｅｉ及び故障検出予告信号fail_noticeは“１”を維持する。その結果、クロックＣＬＫのクロックNo.６を最後にシーケンシャルエンコーダ回路１５３によるカウント動作が停止する。
【０２１０】
さらに、結果ラッチ２０２の有効ビットｂ［７］が“１”のため、クロックＣＬＫのクロックNo.２１〜２２にかけてシリアル入力信号sin_encが再び“１”となる。
【０２１１】
したがって、クロックＣＬＫのクロックNo.２２の立ち上がり時にシリアル入力信号sin_encは“１”となり、マルチフェイル回路１５２のＡＮＤゲートＡＧ２１の出力は“１”になる（図３参照）。このため、ＡＮＤゲートＡＧ２３の一方入力（救済イネーブル信号ｒｅｉ）及び他方入力（ＡＮＤゲートＡＧ２１の出力）は共に“１”となり、その出力である“１”がＯＲゲートＯＧ２２及びＡＮＤゲートＡＧ２４を介してフリップフロップＦＦ２２にラッチされる。その結果、クロックＣＬＫのクロックNo.２２の立ち上がり時にマルチフェイル信号multifailが“１”となる。
【０２１２】
その後、マルチフェイル信号multifailの“１”は、ＯＲゲートＯＧ２２、ＡＮＤゲートＡＧ２４及びフリップフロップＦＦ２２間で形成されるループ内で保持される。このため、以降、マルチフェイル信号multifailは“１”を維持する。
【０２１３】
そして、クロックＣＬＫのクロックNo.３５の立ち上がりエッジ設定された観測タイミングｔ１５で故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びｋビット出力ＣＴｋからなる救済解析情報ＩＲを観測する。その結果、マルチフェイル信号multifailが“１”のため、ＲＡＭ１０３には多ビット故障ビットが存在することを認識することができる。すなわち、ＲＡＭ１０１〜１０３全体として救済不可能であることを認識することができる。
【０２１４】
このように、ＢＩＳＴ制御回路１８０は、実施の形態１のＢＩＳＴ制御回路１１０と同様、ブリッジ回路３０１〜３０３それぞれのダミービットｄ１，ｄ２（無効ビット）を解析対象から避けるように有効ビット情報bitcount_enを発生する。さらに、ＢＩＳＴ制御回路１８０は、結果ラッチ２０１〜２０３全体の有効ビットの救済解析開始前に“Ｈ”のリセット信号reset_encを発生することにより、ＲＡＭ１０１〜１０３全体の故障検出を一括して行うことができる。
【０２１５】
そして、観測タイミングｔ１５で救済解析情報（rei、multifail 、ＣＴｋ（zerocnt_ff：raiと同じ)を観測すれば、ＲＡＭ１０１〜１０３全体における故障の有無、マルチビット故障の有無（有りの場合、故障救済できない）、及び故障ビット位置を正確に認識することができる。
【０２１６】
このように、この発明に係る実施の形態２の半導体集積回路は、実施の形態１と同様、３つのＲＡＭ１０１〜１０３全体における救済解析を１つの救済解析回路１６０のみを用いて行うことができる。
【０２１７】
さらに、実施の形態２の半導体集積回路は、ＲＡＭ１０１〜１０３全体について一の救済デコーダ１３０を備え、ＲＡＭ１０１〜１０３全体について故障救済を行うことができる。その結果、ＲＡＭ１０１〜１０３に対し一単位の救済デコーダ１３０を設ける構成が実現できるため、実施の形態１以上に集積度の向上を図ることができる。
【０２１８】
また、実施の形態２半導体集積回路は、ＢＩＳＴ制御回路１８０からのシフト動作信号br_shiftに基づく制御下で、結果ラッチ２０１〜２０３における複数のラッチデータ群をスキャンパス信号ＳＰ３としてシリアルに出力することができる。その結果、救済解析回路１６０は、スキャンパス信号ＳＰ３に基づきＲＡＭ１０１〜１０３全体に対応した救済解析情報ＩＲを効率的に得ることができる。
【０２１９】
加えて、実施の形態２の半導体集積回路は救済イネーブル信号ｒｅｉからＲＡＭ１０１〜１０３全体についての１ビット以上の故障の有無を認識することができる。
【０２２０】
さらに、実施の形態２の半導体集積回路はマルチフェイル信号multifailからＲＡＭ１０１〜１０３全体についての２ビット上の故障の有無を認識することができる。その結果、救済イネーブル信号ｒｅｉと併せてＲＡＭ１０１〜１０３全体について救済可能な１ビットのみの故障の有無を正確に認識することができる。
【０２２１】
なお、実施の形態２では全てのＲＡＭ１０１〜１０３が救済機能（予備メモリ列ＲＭＣ）を有する構成を例にあげたが、複数のＲＡＭの一部に救済機能を持たないＲＡＭが含まれてもよい。
【０２２２】
その場合は、当該救済機能を持たないＲＡＭについては、救済イネーブル信号ｒｅｉが“１”でマルチフェイル信号multifailが“０”の場合も救済できず、ＬＳＩ（半導体集積回路）全体として救済できないことになる。
【０２２３】
ＲＡＭ１０１〜１０３の救済は救済デコーダ１３０に救済制御信号(rai123[*],ren123)を与えることで行う。なお、救済情報ｒａｉ１２３［＊］は救済解析回路１６０より得たカウント用フリップフロップ群zerocnt_ff［k-1:0］（ｋビット出力ＣＴｋ）の値に相当し、救済イネーブル信号ｒｅｎ１２３は救済の有効／無効を指示する信号であり、救済解析回路１６０より得た救済イネーブル信号ｒｅｉ及びマルチフェイル信号multifailの値に基づき決定される。
【０２２４】
なお、救済イネーブル信号ｒｅｎ１２３は、“１”で救済有効、“０”で救済無効を指示する。救済情報ｒａｉ１２３［＊］はＲＡＭ１０１〜１０３全体における救済すべきビット（メモリ列Ｃ［＊］の位置）を示している。救済デコーダ１３０は上記救済制御信号に基づきセレクタ群１１５を制御して故障救済を行う。セレクタ群１１５はＲＡＭ１０１〜１０３全体に対応して設けられる。
【０２２５】
以下、例に挙げて説明する。救済イネーブル信号ｒｅｎ１２３が“１”であり、救済情報ｒａｉ１２３［＊］が“０１１１１”（１５）を指示するとき、ＲＡＭ１０２のメモリ列Ｃ［７］を（８（ＲＡＭ１０３のビット数）＋７）無効にし、ＲＡＭ１０２の予備メモリ列ＲＭＣを用いるように救済デコーダ１３０はセレクタ群１１５を制御する。具体的には、ＲＡＭ１０２においてメモリ列Ｃ［０］〜Ｃ［６］の出力をデータ出力Ｄout［０］〜Ｄout［６］として出力し、メモリ列Ｃ［８］〜Ｃ［１１］の出力をデータ出力Ｄout［７］〜Ｄout［１０］として出力し、予備メモリ列ＲＭＣの出力をデータ出力Ｄout［１１］として出力するように、セレクタ群１１５を制御する。なお、この際、ＲＡＭ１０１及びＲＡＭ１０３は予備メモリ列ＲＭＣによる置き換えは行わない。すなわち、ＲＡＭ１０１においてはメモリ列Ｃ［０］〜Ｃ［５］の出力をデータ出力Ｄout［０］〜Ｄout［５］として出力し、ＲＡＭ１０３においてはメモリ列Ｃ［０］〜Ｃ［７］の出力をデータ出力Ｄout［０］〜Ｄout［７］として出力するようにセレクタ群１１５を制御する。
【０２２６】
＜実施の形態３＞
図１２は実施の形態３の半導体集積回路の構成を示すブロック図である。実施の形態３の半導体集積回路は、ＲＡＭグループ４００〜４０２に対して一つの救済解析回路１７０を設けた構成を呈している。
【０２２７】
ＲＡＭグループ４００はＲＡＭ１０４〜１０６（第１種のメモリ回路）及びブリッジ回路３０４〜３０６に対応して一対一に設けられた救済デコーダ１３４〜１３６からなる構成である。ＲＡＭグループ４００のＲＡＭ１０４〜１０６、ブリッジ回路３０４〜３０６及び救済デコーダ１３４〜１３６は、図１，図４で示した実施の形態１のＲＡＭ１０１〜１０３、ブリッジ回路３０１〜３０３及び救済デコーダ１３１〜１３３と等価な関係を有している。加えて、ブリッジ回路３０４〜３０６は図１，図４で示した構成と同様、第１〜第３の結果ラッチ部（複数の第１グループ用結果ラッチ部）及び第１〜第３の比較器（複数の第１グループ用比較器）を有している。
【０２２８】
一方、ＲＡＭグループ４０１はＲＡＭ１０１〜１０３（第２種のメモリ回路）、ブリッジ回路３０１〜３０３及び救済デコーダ１３０からなり、図１，図８で示した実施の形態２の構成と同様な構成を呈している。そして、ブリッジ回路３０１〜３０３は図１，図８で示した構成と同様、第１〜第３の結果ラッチ部（複数の第２グループ用結果ラッチ部）及び第１〜第３の比較器（複数の第２グループ用比較器）を有している。
【０２２９】
また、ＲＡＭグループ４０２はＲＡＭ１０７〜１０９，ブリッジ回路３０７〜３０９及び救済デコーダ１３７からなり、ＲＡＭグループ４０１と等価な構成を呈している。すなわち、ＲＡＭ１０７〜１０９，ブリッジ回路３０７〜３０９及び救済デコーダ１３７は、ＲＡＭグループ４０１のＲＡＭ１０１〜１０３、ブリッジ回路３０１〜３０３及び救済デコーダ１３０に対応する。
【０２３０】
このような構成において、ブリッジ回路３０７〜３０９，３０１〜３０３及び３０４〜３０６内のフリップフロップを直列に接続してＲＡＭグループ間ＦＦ直列接続構成を実現している。すなわち、ＲＡＭグループ４０２のブリッジ回路３０９から出力されるスキャンパス信号ＳＰ４０２がＲＡＭグループ４０１のブリッジ回路３０１へのシフト入力信号br_sinとして入力される。さらに、ＲＡＭグループ４０１のブリッジ回路３０３から出力されるスキャンパス信号ＳＰ４０１がＲＡＭグループ４００のブリッジ回路３０４のシフト入力信号br_sinとして入力される。
【０２３１】
したがって、シフト動作信号br_shiftが“１”の時、ＲＡＭグループ間ＦＦ直列接続構成のＦＦのラッチデータを順次、ブリッジ回路３０６から出力されるスキャンパス信号ＳＰ４００から救済解析回路１７０のシリアル入力信号sin_encとして取り込むことができる。
【０２３２】
救済解析回路１７０は、スキャンパス信号ＳＰ４００として入力されるブリッジ回路３０４〜３０６の有効ビットｂ［＊］に基づき、実施の形態１の救済解析回路１５０と同様な救済解析を行う。そして、救済解析回路１７０は、ＲＡＭ１０４〜１０６に対応する（第１グループ用）第１〜第３の部分救済解析情報として、各々故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びカウント用フリップフロップ群zerocnt_ff［k-1:0］を得る。
【０２３３】
実施の形態１と同様、救済解析回路１７０から得られる上記第１〜第２の部分救済解析情報に基づき、図示しないＢＩＳＴ制御回路やテスタによって、回路救済デコーダ１３４〜１３６へ与える第１〜第３の部分救済制御信号を得ることができる。すなわち、救済デコーダ１３４用の第１の部分救済制御信号として救済情報ｒａｉ４［＊］及び救済イネーブル信号ｒｅｎ４を得、救済デコーダ１３５用の第２の部分救済制御信号として救済情報ｒａｉ５［＊］及び救済イネーブル信号ｒｅｎ５を得、救済デコーダ１３６用の第３の部分救済制御信号として救済情報ｒａｉ６［＊］及び救済イネーブル信号ｒｅｎ６を得る。
【０２３４】
さらに、救済解析回路１７０は、スキャンパス信号ＳＰ４００として入力されるブリッジ回路３０１〜３０３の有効ビットｂ［＊］に基づき、実施の形態２の救済解析回路１６０と同様な救済解析を行い、第２グループ用救済解析情報（その１）として、ＲＡＭグループ４０１内で１種類の救済情報ｒａｉ［ｋ−１：０］及び救済イネーブル信号ｒｅｉを得る。その結果、実施の形態２と同様、上記第２グループ用救済解析情報（その１）に基づき、図示しないＢＩＳＴ制御回路あるいはテスタによって、救済デコーダ１３０へ与える第２のグループ用救済制御信号（救済情報ｒａｉ１２３［＊］及び救済イネーブル信号ｒｅｎ１２３）を得ることができる。
【０２３５】
加えて、救済解析回路１７０は、スキャンパス信号ＳＰ４００として入力されるブリッジ回路３０７〜３０９の有効ビットｂ［＊］に基づき、実施の形態２の救済解析回路１６０と同様な救済解析を行い、第２グループ用救済解析情報（その２）として、ＲＡＭグループ４０２内で１種類の救済情報ｒａｉ［ｋ−１：０］及び救済イネーブル信号ｒｅｉを得る。その結果、実施の形態２と同様、上記第２グループ用救済解析情報（その２）に基づき、図示しないＢＩＳＴ制御回路あるいはテスタによって、救済デコーダ１３０へ与える救済制御信号を（救済情報ｒａｉ７８９［＊］及び救済イネーブル信号ｒｅｎ７８９）を得ることができる。
【０２３６】
このように、実施の形態３の半導体集積回路における救済解析回路１７０は、第１グループ（ＲＡＭグループ４０１）用の第１〜第３の部分救済解析情報及び第２グループ（ＲＡＭグループ４０２，４０３）用の救済解析情報を得る。そして、最終的に救済デコーダ１３４〜１３６によりＲＡＭ１０４〜１０６それぞれの救済制御を行うとともに、救済デコーダ１３０（１３７）によりＲＡＭ１０１〜１０３（１０７〜１０９）中の一のＲＡＭそれぞれに対し救済制御を行っている。
【０２３７】
すなわち、実施の形態３の半導体集積回路における救済解析回路１７０は、実施の形態１のようにＲＡＭグループ４００内のＲＡＭ１０４〜１０６それぞれに対する救済解析動作と、実施の形態２のようにＲＡＭグループ４０１，４０２内のＲＡＭ１０１〜１０３全体，ＲＡＭ１０７〜１０９全体に対する救済解析動作を併せて行うことができる。
【０２３８】
その結果、第１グループであるＲＡＭグループ４００と第２グループであるＲＡＭグループ４０１，４０２とで異なった内容の救済制御を、一の救済解析回路１７０から得られる救済解析情報（第１グループ用第１〜第３の部分救済制御情報及び第２グループ用救済解析情報）に基づいて行うことができる。すなわち、集積度を損ねることなく、異なるグループに属するＲＡＭに対し異なる内容の救済制御を行うことができる効果を奏する。
【０２３９】
また、実施の形態３の半導体集積回路は、一の救済解析用スキャンパス信号ＳＰ４００に基づき、ＲＡＭグループ４００〜４０２のＲＡＭ１０１〜１０９に対する故障解析情報を一括して得ることができる。
【０２４０】
このような複数種の救済解析動作を可能にすべく、実施の形態３のＢＩＳＴ制御回路（図示せず）は、実施の形態１のＢＩＳＴ制御回路１１０及び実施の形態２のＢＩＳＴ制御回路１８０双方の制御動作を併せ持っている。
【０２４１】
＜実施の形態４＞
図１３は実施の形態４の半導体集積回路の構成を示すブロック図である。実施の形態４の半導体集積回路は、実施の形態３と同様、ＲＡＭグループ４００〜４０２に対して一つの救済解析回路１７０を設けた構成を呈している。
【０２４２】
このような構成において、ブリッジ回路３０７〜３０９，３０１〜３０３及び３０４〜３０６から出力されるスキャンパス信号ＳＰ４０２，ＳＰ４０１及びＳＰ４００をセレクタ４０５が入力している。
【０２４３】
セレクタ４０５はＢＩＳＴ制御回路（図示せず）からの制御信号ＳＣ４０５に基づき、スキャンパス信号ＳＰ４００〜ＳＰ４０２のいずれかを選択して選択スキャンパス信号ＳＰ４０５（救済解析用スキャンパス信号）を出力する。制御信号ＳＣ４０５を出力するＢＩＳＴ制御回路は救済解析対象のＲＡＭグループを認識することができる。
【０２４４】
救済解析回路１７１は選択スキャンパス信号ＳＰ４０５をシリアル入力信号sin_encとして取り込み、救済解析動作を行う。
【０２４５】
救済解析回路１７１の救済解析動作について説明する。まず、スキャンパス信号ＳＰ４００が選択スキャンパス信号ＳＰ４０５として選択される場合の第１の救済解析動作について説明する。
【０２４６】
救済解析回路１７１は、選択スキャンパス信号ＳＰ４０５として入力されるブリッジ回路３０４〜３０６の有効ビットｂ［＊］に基づき、実施の形態１の救済解析回路１５０と同様な第１の救済解析動作を行う。その結果、救済解析回路１７１は、ＲＡＭ１０４〜１０６に対応する（第１グループ用）第１〜第３の部分救済解析情報として、各々故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びカウント用フリップフロップ群zerocnt_ff［k-1:0］を得る。その結果、実施の形態３と同様、上記第１グループ用第１〜第３の救済解析情報に基づき、図示しないＢＩＳＴ制御回路あるいはテスタによって、救済デコーダ１３４〜１３６へ与える第１グループ用第１〜第３の部分救済制御信号を得ることができる。
【０２４７】
次に、スキャンパス信号ＳＰ４０１が選択スキャンパス信号ＳＰ４０５として選択される場合の第２の救済解析動作について説明する。
【０２４８】
救済解析回路１７１は、選択スキャンパス信号ＳＰ４０５として入力されるブリッジ回路３０１〜３０３の有効ビットｂ［＊］に基づき、実施の形態２の救済解析回路１６０と同様な第２の救済解析動作を行う。そして、救済解析回路１７１は、第２グループ用救済解析情報として１種類の故障検出予告信号fail_notice、救済イネーブル信号ｒｅｉ、マルチフェイル信号multifail及びカウント用フリップフロップ群zerocnt_ff［k-1:0］を得る。その結果、実施の形態２と同様、上記第２グループ用救済解析情報に基づき、図示しないＢＩＳＴ制御回路あるいはテスタによって、救済デコーダ１３０へ与える第２グループ用救済制御信号（救済情報ｒａｉ１２３［＊］及び救済イネーブル信号ｒｅｎ１２３）を得ることができる。
【０２４９】
最後に、スキャンパス信号ＳＰ４０２が選択スキャンパス信号ＳＰ４０５として選択される場合の第３の救済解析動作について説明する。
【０２５０】
救済解析回路１７１は、選択スキャンパス信号ＳＰ４０５として入力されるブリッジ回路３０１〜３０３の有効ビットｂ［＊］に基づき、実施の形態２の救済解析回路１６０と同様、すなわち、上記第２の救済解析動作と同じ内容の第３の救済解析動作を行う。そして、救済解析回路１７１は、第２グループ用救済解析情報である１種類の救済情報ｒａｉ［ｋ−１：０］及び救済イネーブル信号ｒｅｉを得る。その結果、実施の形態２と同様、上記第２グループ用救済解析情報に基づき、ＢＩＳＴ制御回路あるいはテスタによって、救済デコーダ１３０へ与える第２グループ用救済制御信号（救済情報ｒａｉ７８９［＊］及び救済イネーブル信号ｒｅｎ７８９）を得ることができる。
【０２５１】
このように、この発明に係る実施の形態４の半導体集積回路における救済解析回路１７１は、実施の形態３の救済解析回路１７０と同様、実施の形態１のようにＲＡＭグループ４００内のＲＡＭ１０４〜１０６それぞれに対する救済解析動作と、実施の形態２のようにＲＡＭグループ４０１，４０２内のＲＡＭ１０１〜１０３全体，ＲＡＭ１０７〜１０９全体に対する救済解析動作を併せて行うことができる。
【０２５２】
さらに、実施の形態４の半導体集積回路における救済解析回路１７１は、スキャンパス信号ＳＰ４００〜ＳＰ４０２から選択された選択スキャンパス信号ＳＰ４０５に基づきＲＡＭグループ４００〜４０２のうちいずれかのグループ用救済解析情報を選択的に得ることができるため、ＲＡＭグループ４００〜４０２のうち救済解析を望むグループに対してのみ選択的に故障救済を行うことができる。
【０２５３】
このような複数種の救済解析動作を可能にすべく、実施の形態４のＢＩＳＴ制御回路（図示せず）は、実施の形態１のＢＩＳＴ制御回路１１０及び実施の形態２のＢＩＳＴ制御回路１８０双方の制御動作並びにセレクタ４０５に対する制御信号ＳＣ４０５を併せ持っている。
【０２５４】
実施の形態４は、セレクタ４０５によりスキャンパス信号ＳＰ４００〜ＳＰ４０２を選択スキャンパス信号ＳＰ４０５として適宜選択でできるため、ＲＡＭグループ４００〜４０２に対する上記第１〜第３の救済解析動作を選択的に実行することにより、一部のＲＡＭグループに対してのみ救済解析を容易に行うことができる。例えば、ＲＡＭグループ４０２に対する第３の救済解析動作のみを行いたい場合、選択スキャンパス信号ＳＰ４０５としてスキャンパス信号ＳＰ４０２のみを選択すれば良い。
【０２５５】
同様なことを実施の形態３の半導体集積回路で行う場合、スキャンパス信号ＳＰ４００からＲＡＭグループ４０１やＲＡＭ１０４、１０５，１０６に対する第２及び第１の救済解析動作をスキップするためにダミーのシフト動作が必要であり、その制御は複雑になり時間を要してしまう。
【０２５６】
一方、実施の形態４の半導体集積回路では、そのような制御が不要であり、目的のＲＡＭグループを容易かつ迅速に救済解析することができる。特に、特定のＲＡＭグループのみ不良が多く発生してる場合の不良解析に有効となる。
【０２５７】
＜その他＞
上述したように、救済制御信号(rai1[*],ren1, rai2[*],ren2, rai3[*],ren3,rai123[*],ren123・・・等)は、救済解析情報である救済情報ｒａｉ［ｋ−１：０］及び救済イネーブル信号ｒｅｉ等に基づき得ることができる。したがって、ＢＩＳＴ制御回路１１０（１８０）を介して上記救済解析情報をテスタに与え、テスタにより所望の救済制御信号が生成されるヒューズ回路を構成する。ヒューズ回路の代わりに所望の救済制御信号を出力するレジスタを用いても良い。また、救済制御信号自体をＢＩＳＴ制御回路１１０（１８０）から出力するようにしても良い。
【０２５８】
なお、ＢＩＳＴ制御回路１１０（１８０）から救済制御信号を出力する場合は、救済解析回路１５０（１６０，１７０，１７１）の出力データを処理して救済制御信号を発生するセルフリペア制御回路をＢＩＳＴ制御回路１１０内に設けることもできる。この場合は、いわゆる自己修復（BISR：Built-In Self-Repair）が可能になる。
【０２５９】
つまり、実施の形態１〜実施の形態４で示した半導体集積回路に自己修復機能を持たせることにより、セルフテストを実行し、救済解析を行い、救済制御信号を発生し、ＲＡＭを救済する一連の動作を内部処理することができる。
【０２６０】
＜実施の形態５＞
図１４はこの発明の実施の形態５であるＲＡＭ救済機能を有する半導体集積回路の構成を示す回路図である。同図に示すように、ＲＡＭ１は８ビット（所定ビット数）のデータ入出力機能（入力Ｄin［０］〜Ｄin［７］及びデータ出力Ｄout［０］〜Ｄout［７］に対応する機能）を有している。また、ＲＡＭ１は図示しないが、例えば、実施の形態１において図４で示した予備メモリ列ＲＭＣのような冗長メモリ部を有している。
【０２６１】
ＲＡＭ１のデータ入力Ｄin［０］〜Ｄin［７］及びデータ出力Ｄout［０］〜Ｄout［７］に対する制御が可能なデータ入出力制御部２が設けられる。
【０２６２】
データ入出力制御部２はエンコード回路（ＥＮＣ回路）３、キャプチャ回路（ＥＦＣ回路）４、１ビット入出力制御部１０〜１３，…から構成されている。なお、説明の都合上、データ入力Ｄｉｎ［０］〜Ｄｉｎ［３］及びデータ出力Ｄout［０］〜Ｄout［３］に対応して設けられる１ビット入出力制御部１０〜１３のみ図示している。実際には、データ出力Ｄout［７：４］及びデータ入力Ｄin［７：４］に対応する１ビット入出力制御部も設けられている。
【０２６３】
同図に示すように、１ビット入出力制御部１０は、セレクタＳＴ０、ＥＸＯＲゲートＧ１０及びＡＮＤゲートＧ２０から構成される。
【０２６４】
セレクタＳＴ０は“０”入力に書き込みデータsys_din[0]を受け、“１”入力に書き込みデータbist_din[0]を受け、制御入力にモードセレクタ制御信号selmiを受ける。そして、セレクタＳＴ０の出力がＲＡＭ入力データmem_din[0]としてＲＡＭ１のデータ入力Ｄin［０］に入力される。
【０２６５】
ＥＸＯＲゲートＧ１０は一方入力に書き込みデータbist_exp[0]を受け、他方入力にデータ出力Ｄout［０］（ＲＡＭ出力データmem_dout[0]，読み出しデータsys_dout[0]）を受ける。ＡＮＤゲートＧ２０は一方入力に比較イネーブル信号comp_enを受け、他方入力にＥＸＯＲゲートＧ１０の出力を受ける。ＡＮＤゲートＧ２０の出力が故障ビットデータｆａｉｌ［０］としてエンコード回路３に付与される。
【０２６６】
同様にして、１ビット入出力制御部１ｐ（ｐ＝１〜３のいずれか）は、セレクタＳＴｐ、ＥＸＯＲゲートＧ１ｐ及びＡＮＤゲートＧ２ｐから構成される。
【０２６７】
セレクタＳＴｐは“０”入力に書き込みデータsys_din[p]を受け、“１”入力に書き込みデータbist_din[p]を受け、制御入力にモードセレクタ制御信号selmiを受ける。そして、セレクタＳＴｐの出力がＲＡＭ入力データmem_din[p]としてＲＡＭ５ｐのデータ入力Ｄin［ｐ］に入力される。
【０２６８】
ＥＸＯＲゲートＧ１ｐは一方入力に書き込みデータbist_exp[p]を受け、他方入力にデータ出力Ｄout［ｐ］（ＲＡＭ出力データmem_dout[p]，読み出しデータsys_dout[p]）を受ける。ＡＮＤゲートＧ２ｐは一方入力に比較イネーブル信号comp_enを受け、他方入力にＥＸＯＲゲートＧ１ｐの出力を受ける。ＡＮＤゲートＧ２ｐの出力が故障ビットデータｆａｉｌ［ｐ］としてエンコード回路３に付与される。
【０２６９】
同様にして、図示しない１ビット入出力制御部１ｑ（ｑ＝４〜７のいずれか）は、図１４上では図示しないが、セレクタＳＴ０、ＥＸＯＲゲートＧ１０及びＡＮＤゲートＧ２０と等価な、セレクタＳＴｑ、ＥＸＯＲゲートＧ１ｑ及びＡＮＤゲートＧ２ｑから構成される。
【０２７０】
セレクタＳＴｑは“０”入力に書き込みデータsys_din[q]を受け、“１”入力に書き込みデータbist_din[q]を受け、制御入力にモードセレクタ制御信号selmiを受ける。そして、セレクタＳＴｑの出力がＲＡＭ入力データmem_din[q]としてＲＡＭ５ｑのデータ入力Ｄin［ｑ］に入力される。
【０２７１】
ＥＸＯＲゲートＧ１ｑは一方入力に書き込みデータbist_exq[q]を受け、他方入力にデータ出力Ｄout［ｑ］（ＲＡＭ出力データmem_dout[q]，読み出しデータsys_dout[q]）を受ける。ＡＮＤゲートＧ２ｑは一方入力に比較イネーブル信号comq_enを受け、他方入力にＥＸＯＲゲートＧ１ｑの出力を受ける。ＡＮＤゲートＧ２ｑの出力が故障ビットデータｆａｉｌ［ｑ］としてエンコード回路３に付与される。
【０２７２】
そして、テスト用入力データｗｄ[1]が書き込みデータbist_din[1]，bist_din[3]，bist_din[5]及びbist_din[7]（[5]，[7]は図示せず）として、１ビット入出力制御部１１，１３，１５及び１７（１５，１７は図示せず）のセレクタＳＴ１，ＳＴ３，ＳＴ５，ＳＴ７（ＳＴ５，ＳＴ７は図示せず）の“１”入力に取り込まれる。
【０２７３】
同様にして、テスト用入力データｗｄ[0]が書き込みデータbist_din[0]，bist_din[2]，bist_din[4]及びbist_din[6]（[4]，[6]は図示せず）として１ビット入出力制御部１０，１２，１４及び１６（１４，１６は図示せず）のセレクタＳＴ０，ＳＴ２，ＳＴ４及びＳＴ６（ＳＴ４，ＳＴ６は図示せず）の“１”入力に取り込まれる。
【０２７４】
また、テスト用期待値ｃｄ［１］が書き込みデータbist_exp[1]，bist_exp[3]，bist_exp[5]及びbist_exp[7]（[5]，[7]は図示せず）として１ビット入出力制御部１１，１３，１５，１７のＥＸＯＲゲートＧ１１，Ｇ１３，Ｇ１５，Ｇ１７（Ｇ１５，Ｇ１７は図示せず）の一方入力として付与される。
【０２７５】
同様にして、テスト用期待値ｃｄ［０］が書き込みデータbist_exp[0]，bist_exp[2]，bist_exp[4]及びbist_exp[6]（[4]，[6]は図示せず）として、１ビット入出力制御部１０，１２，１４及び１６のＥＸＯＲゲートＧ１０，Ｇ１２，Ｇ１４及びＧ１６（Ｇ１４，Ｇ１６は図示せず）の一方入力として付与される。
【０２７６】
このように、テスト用書き込みデータ（ｗｄ[0]，ｗｄ[1]）やテスト用期待値（ｃｄ［０］，ｃｄ［０１）は信号配線を減らす目的で、偶数番と奇数番の入出力ビット（データ出力Ｄout［ｉ］及びデータ入力Ｄin［ｉ］の「ｉ」）の２つにグループ化している。
【０２７７】
このような構成の１ビット入出力制御部１０〜１７において、比較イネーブル信号comp_enが“１”の際、書き込み期待値bist_ext[ｉ]（ｉ＝０〜７のいずれか）とデータ出力Ｄout［ｉ］との不一致が比較回路（ＥＸＯＲゲートＧ１ｉ及びＡＮＤゲートＧ２ｉ）により検出されると、故障ビットデータｆａｉｌ［ｉ］として“１”が出力される。一方、上記不一致が比較回路によって検出されない場合は故障ビットデータｆａｉｌ［ｉ］は“０”となる。
【０２７８】
このような比較回路による比較結果である故障ビットデータｆａｉｌ［ｉ］は、実施の形態１の半導体集積回路の場合と同様、テストパターンの発生期間中に順次得られる。すなわち、テスト用書き込みデータ（ｗｄ[0]，ｗｄ[1]）を順次与え、データ出力Ｄout［ｉ］と対応するテスト用期待値（ｃｄ［０］，ｃｄ［０１）とを順次比較することにより、故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］が順次得られる。なお、実施の形態５では詳述しないが実施の形態１と同様にパターン発生回路によってテスト用入力データｗｄ[0]，ｗｄ[1]，期待値ｃｄ［０］，ｃｄ［１］が順次出力される。
【０２７９】
エンコード回路３は故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］を受け、これら８ビットの故障ビットデータｆａｉｌ［７：０］をエンコードして４ビット（圧縮ビット数）の符号化データｅｆ［３：０］を順次出力する。この符号化データｅｆ［３：０］によってＲＡＭ１の後述する第１〜第３の故障情報を示すことができる。
【０２８０】
キャプチャ回路４はシリアルデータ入力Ｓｉ、シリアルシフト制御信号sdr及び符号化データｅｆ［３：０］を受け、後述するラッチ条件（所定の条件）を満足する符号化データｅｆ［３：０］をラッチデータｃｆ［３：０］としてラッチする。
【０２８１】
また、キャプチャ回路４はラッチデータｃｆ［３：０］の直列シフト動作が可能であり、ラッチデータｃｆ［３：０］をシリアルデータ出力Ｓｏとしてシリアルに出力することができる。
【０２８２】
図１５は図１４で示したエンコード回路３の入出力関係を模式的に示す説明図である。同図に示すように、エンコード回路３は。８ビットの故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］を受け、これらのデータをエンコードして、４ビットに圧縮した符号化データｅｆ［０］〜ｅｆ［３］を得る。
【０２８３】
図１６はエンコード回路３による第１のエンコード例を表形式で示す説明図である。同図に示すように、故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］が全て“０”の場合は、符号化データｅｆ［０］〜ｅｆ［３］は全て“０”となる。
【０２８４】
また、故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］のうち一箇所のみに“１”（故障ビット）が検出された場合、符号化データｅｆ［３］を“１”にする。そして、“１”を示した故障ビットデータｆａｉｌ［ｉ］の位置（ｉ）を符号化データｅｆ［０］〜ｅｆ［２］の２進数で表す。例えば、故障ビットデータｆａｉｌ［６］＝“１”の場合は、ef[2]=1,ef[1]=1,ef[0]=0であり、ef[2:0]=”110”（２進数）=６（１０進数）となっている。
【０２８５】
そして、故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］のうち２箇所以上に“１”が検出された場合、符号化データｅｆ［３］＝０，符号化データｅｆ［２］＝１に設定する。なお、この場合、符号化データｅｆ［１]及び符号化データｅｆ［０］の値は任意である。
【０２８６】
図１７はエンコード回路３による第２のエンコード例を表形式で示す説明図である。同図に示すように、故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］が全て“０”の場合は、符号化データｅｆ［０］〜ｅｆ［３］は全て“０”となる。
【０２８７】
また、故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］のうち一箇所のみに“１”（故障ビット）が検出された場合、“１”を示した故障ビットデータｆａｉｌ［ｉ］の位置に“１”をインクリメントした値（ｉ＋１）を符号化データｅｆ［０］〜ｅｆ［３］の２進数で表す。例えば、故障ビットデータｆａｉｌ［６］＝“１”の場合は、ef[3]=0,ef[2]=1,ef[1]=1,ef[0]=1であり、ef[3:0]=”0111”（２進数）=７（１０進数）となっている。
【０２８８】
そして、故障ビットデータｆａｉｌ［０］〜ｆａｉｌ［７］のうち２箇所以上に“１”が検出された場合、符号化データｅｆ［３：０］を“１１１１”に設定する。
【０２８９】
図１８は図１６で示した第１のエンコード例でエンコードを行うエンコード回路３に対応するキャプチャ回路４の第１の構成であるキャプチャ回路４Ａの内部構成を示す回路図である。
【０２９０】
同図に示すように、キャプチャ回路４Ａは、セレクタＳＴ１０〜ＳＴ１３、セレクタＳＴ２０〜ＳＴ２３、フリップフロップＦＦ１０〜ＦＦ１３、ＡＮＤゲートＧ３１，Ｇ３２，Ｇ３５，及びＯＲゲートＧ３３，Ｇ３４から構成される。
【０２９１】
セレクタＳＴ１０は“０”入力に符号化データｅｆ［０］を受ける。セレクタＳＴ２０は“１”入力にシリアルデータ入力Ｓｉを受け、“０”入力にセレクタＳＴ１０の出力を受け、制御入力にシリアルシフト制御信号sdrを受ける。フリップフロップＦＦ１０はセレクタＳＴ２０の出力を入力部に受け、その出力であるラッチデータｃｆ［０］がセレクタＳＴ１０の“０”入力として帰還する。
【０２９２】
セレクタＳＴ１１は“０”入力に符号化データｅｆ［１］を受ける。セレクタＳＴ２１は“１”入力にフリップフロップＦＦ１０のラッチデータｃｆ［０］を受け、“０”入力にセレクタＳＴ１１の出力を受け、制御入力にシリアルシフト制御信号sdrを受ける。フリップフロップＦＦ１１はセレクタＳＴ２１の出力を入力部に受け、その出力であるラッチデータｃｆ［１］がセレクタＳＴ１１の“０”入力として帰還する。
【０２９３】
セレクタＳＴ１２は“０”入力に符号化データｅｆ［２］を受ける。セレクタＳＴ２２は“１”入力にフリップフロップＦＦ１１のラッチデータｃｆ［１］を受け、“０”入力にセレクタＳＴ１２の出力を受け、制御入力にシリアルシフト制御信号sdrを受ける。フリップフロップＦＦ１２はセレクタＳＴ２２の出力を入力部に受け、その出力であるラッチデータｃｆ［２］がセレクタＳＴ１２の“０”入力として帰還する。
【０２９４】
セレクタＳＴ１３は“０”入力に符号化データｅｆ［３］を受ける。セレクタＳＴ２３は“１”入力にフリップフロップＦＦ１２のラッチデータｃｆ［２］を受け、“０”入力にセレクタＳＴ１３の出力を受け、制御入力にシリアルシフト制御信号sdrを受ける。フリップフロップＦＦ１３はセレクタＳＴ２３の出力を入力部に受け、その出力であるラッチデータｃｆ［３］がセレクタＳＴ１３の“０”入力として帰還するとともに、シリアルデータ出力Ｓｏとして出力される。
【０２９５】
ＡＮＤゲートＧ３１は一方入力に符号化データｅｆ［２］を受け、他方入力に符号化データｅｆ［３］の反転信号を受ける。ＡＮＤゲートＧ３２は一方入力に符号化データｅｆ［３］を受ける。ＯＲゲートＧ３３は一方入力にＡＮＤゲートＧ３１の出力を受け、他方入力にＡＮＤゲートＧ３２の出力を受ける。このＯＲゲートＧ３３の出力がキャプチャ信号ＣＰＴとしてセレクタＳＴ１０〜ＳＴ１３の制御入力として付与される。
【０２９６】
ＡＮＤゲートＧ３５は一方入力にラッチデータｃｆ［２］を受け、他方入力にラッチデータｃｆ［３］の反転信号を受ける。ＯＲゲートＧ３４は一方入力にＡＮＤゲートＧ３５のＡＮＤゲート出力信号Ｓ３５を受け、他方入力にラッチデータｃｆ［３］を受ける。このＯＲゲートＧ３４のＯＲゲート出力信号Ｓ３４の反転信号がＡＮＤゲートＧ３２の他方入力として付与される。
【０２９７】
図１８で示した構成のキャプチャ回路４Ａのキャプチャ動作について説明する。なお、キャプチャ動作は、フリップフロップＦＦ１０〜ＦＦ１３を“０”に初期化した後、シリアルシフト制御信号sdrを“０”にして実行される。
【０２９８】
なお、初期化は、sdr=1,si=0に設定してフリップフロップＦＦ１０〜ＦＦ１３にクロックを与えて行ってもよい（シフト動作による初期化）し、図示していないリセット手段（例えば、フリップフロップＦＦ１０〜ＦＦ１３としてリセット機能付ＦＦを用いる）を用いてもよい。初期化の結果、フリップフロップＦＦ１０〜ＦＦ１３のラッチデータｃｆ［０］〜ｃｆ［３］は“０”に初期設定される。
【０２９９】
まず、故障ビットが“０”の場合、すなわち、符号化データｅｆ［３：０］が“００００”の場合について説明する。
【０３００】
この場合、｛ef[２]＝“０”ef[３]＝“０”｝であり、ＡＮＤゲートＧ３１及びＧ３２の出力は共に０”となるため、キャプチャ信号ＣＰＴは“０”で安定する。したがって、セレクタＳＴ１ｊ，セレクタＳＴ２ｊ及びＦＦ１ｊ（ｊ＝０〜３）によるループは形成されるため、フリップフロップＦＦ１０〜ＦＦ１３のラッチデータｃｆ［３：０］は初期値“００００”を維持する。
【０３０１】
その後、最初に１ビット故障が検出された場合の動作について説明する。この場合、ｅｆ[３]＝“１”となる。この瞬間、ラッチデータｃｆ［２］，ｃｆ[３]は初期化時の“０”を維持しているため、ＯＲゲート出力信号Ｓ３４は“０”を維持している。
【０３０２】
したがって、ＡＮＤゲートＧ３２の一方入力（符号化データｅｆ［３］）及び他方入力（ＯＲゲート出力信号Ｓ３４の反転信号）は共に“１”となるため、その出力が“１”となり、ＯＲゲートＧ３３の出力であるキャプチャ信号ＣＰＴが“１”となる。
【０３０３】
その結果、符号化データｅｆ［３］＝“１”の時の最新の符号化データｅｆ［０］〜ｅｆ［３］の値がラッチデータｃｆ［０］〜ｃｆ［３］としてフリップフロップＦＦ１０〜ＦＦ１３にラッチされる。
【０３０４】
そして、フリップフロップＦＦ１３にラッチされたラッチデータｃｆ［３］により、ＯＲゲート出力信号Ｓ３４が“１”となり、ＡＮＤゲートＧ３２の出力が“０”となる結果、ＯＲゲートＧ３３の出力であるキャプチャ信号ＣＰＴが再び“０”に戻る。
【０３０５】
その結果、セレクタＳＴ１ｊ，セレクタＳＴ２ｊ及びＦＦ１ｊよるループ回路が再び形成され、ラッチデータｃｆ［０］〜ｃｆ［３］の値が維持される。したがって、その後に入力される新たな符号化データｅｆ［０］〜ｅｆ［３］がフリップフロップＦＦ１０〜ＦＦ１３のラッチデータｃｆ［０］〜ｃｆ［３］としてラッチされることはない。
【０３０６】
また、符号化データｅｆ［３］＝“１”がフリップフロップＦＦ１３にラッチされた後は、ラッチデータｃｆ［３］が“１”となり、前述したように、ＯＲゲートＧ３４のＯＲゲート出力信号Ｓ３４が“１”に固定される。
【０３０７】
したがって、その後に符号化データｅｆ［３］＝“１”の（１ビット故障）が検出されても、ＡＮＤゲートＧ３２の他方入力が“０”（“１”のＯＲゲート出力信号Ｓ３４の反転信号）であるため、当該符号化データｅｆ［３：０］がフリップフロップＦＦ１０〜ＦＦ１３に取り込まれることはない。
【０３０８】
次に、２ビット以上の故障が検出された場合を説明する。この場合｛ef[3]=0,ef[2]=1｝を満足するため、ＡＮＤゲートＧ３１の出力が“１”となり、ＯＲゲートＧ３３の出力であるキャプチャ信号ＣＰＴが“１”となる。
【０３０９】
その結果、符号化データｅｆ［３］＝“０”及び符号化データｅｆ［２］＝“１”が、フリップフロップＦＦ１２及びＦＦ１３にラッチされる。
【０３１０】
そして、“０”のラッチデータｃｆ［３］及び“１”のラッチデータｃｆ［２］により、ＡＮＤゲート出力信号Ｓ３５が“１”となり、ＯＲゲート出力信号Ｓ３４が“１”となる。したがって、ＡＮＤゲートＧ３２の出力が“０”となる結果、ＯＲゲートＧ３３の出力であるキャプチャ信号ＣＰＴが再び“０”に戻る。
【０３１１】
その結果、セレクタＳＴ１ｊ，セレクタＳＴ２ｊ及びＦＦ１ｊよるループ回路が再び形成され、ラッチデータｃｆ［０］〜ｃｆ［３］の値が維持される。したがって、その後に入力される新たな符号化データｅｆ［０］〜ｅｆ［３］がフリップフロップＦＦ１０〜ＦＦ１３のラッチデータｃｆ［０］〜ｃｆ［３］としてラッチされることはない。
【０３１２】
また、符号化データｅｆ［３］＝“０”がフリップフロップＦＦ１３にラッチされ、符号化データｅｆ［２］＝“１”がフリップフロップＦＦ１２にラッチされた後は、前述したように、ＯＲゲートＧ３４のＯＲゲート出力信号Ｓ３４が“１”に固定される。したがって、その後に符号化データｅｆ［３］＝“１”の（１ビット故障）が検出されても、フリップフロップＦＦ１０〜ＦＦ１３に取り込まれることはない。
【０３１３】
このように、キャプチャ回路４Ａは、故障が全く無い場合はラッチデータｃｆ［０］〜ｃｆ［３］として全て“０”をラッチする。１ビット故障が検出された場合は、ラッチデータｃｆ［３］＝“１”と最初に検出された１ビット故障の故障位置を示すラッチデータｃｆ［０］〜ｃｆ［２］をラッチする。そして、２ビット以上故障が検出された場合は、符号化データｅｆ［３］＝“１”及び符号化データｅｆ［２］＝“１”をラッチする。
【０３１４】
そして、キャプチャ回路４Ａはキャプチャ動作終了後は、シリアルシフト制御信号sdrを“１”にして、フリップフロップＦＦ１０〜ＦＦ１３にラッチされた符号化データｅｆ［０］〜ｅｆ［３］を、シリアルデータ出力Ｓｏとしてシリアルに出力することができる。
【０３１５】
このように、キャプチャ回路４Ａの直列シフト動作により、シリアルデータ出力Ｓｏとして故障情報が読み出せる。すなわち、シリアルデータ出力Ｓｏとして、特許文献１のシーケンシャルエンコーダ回路と同等の結果が得られることを意味し、図２７で示した構成に比べ、実施の形態５の半導体集積回路は、フリップフロップの数を減少させることにより（８から４に減少）、集積度の向上を図ることができる。
【０３１６】
上述したように、実施の形態５の半導体集積回路におけるキャプチャ回路４Ａは、データ入出力ビット数である８ビットよりも少ない圧縮ビット数である４ビットのラッチ回路（フリップフロップＦＦ１０〜ＦＦ１３）を設けるだけで構成することができる。そして、ラッチデータｃｆ［３：０］は、故障ビット無しに関する第１の故障情報と、１ビット故障の存在とそのビット位置に関する第２の故障情報を示すことができる。
【０３１７】
したがって、実施の形態５の半導体集積回路は、ビット数８のデータ入出力に対し、４ビットのラッチ回路を設ける構成で済ませる分、集積度を向上させながら、ラッチデータｃｆ［３：０］に基づき冗長メモリ部を用いたＲＡＭ１に対する故障救済を図ることができる効果を奏する。
【０３１８】
さらに、実施の形態５の半導体集積回路は、ラッチデータｃｆ［３：０］（符号化データｅｆ［３：０］）によりＲＡＭ１のデータ入出力に２ビット以上の故障が存在することを認識することができるため、より精度の高い故障解析が行える。
【０３１９】
加えて、実施の形態５の半導体集積回路のキャプチャ回路４Ａは、ラッチデータｃｆ［３：０］をシリアルデータ出力Ｓｏからシリアルに出力することにより、外部からシリアルデータとしてラッチデータｃｆ［３：０］の内容を認識することができる。
【０３２０】
また、実施の形態５の半導体集積回路のキャプチャ回路４Ａのラッチ条件は、１ビット故障の故障位置に関する最初の第２の故障情報を故障無しに関する第１の故障情報より優先的にラッチするという条件を有している。このため、ＲＡＭ１のデータ入出力に１ビットの故障が存在することを認識した場合、最初に検出された故障ビットの入出力に関し故障回復を確実に図ることができる。
【０３２１】
さらに、実施の形態５の半導体集積回路のキャプチャ回路４Ａのラッチ条件は、２ビット以上の故障に関する第３の故障情報を第１及び第２の故障情報より優先的にラッチする条件を有している。このため、一般的に救済不能なデータ入出力の２ビット故障の情報を優先的に得ることができ、故障回復不可能なメモリ回路の故障救済を回避して、効率的な故障回復が行える効果を奏する。
【０３２２】
図１９は図１７で示した第２のエンコード例でエンコードを行うエンコード回路３に対応するキャプチャ回路４の第２の構成であるキャプチャ回路４Ｂの内部構成を示す回路図である。
【０３２３】
同図に示すように、キャプチャ回路４Ｂは、セレクタＳＴ１０〜ＳＴ１３、セレクタＳＴ２０〜ＳＴ２３、フリップフロップＦＦ１０〜ＦＦ１３、ＡＮＤゲートＧ６１，Ｇ６３、及びＯＲゲートＧ６２，Ｇ６３，Ｇ６５から構成される。
【０３２４】
セレクタＳＴ１０〜ＳＴ１３、セレクタＳＴ２０〜ＳＴ２３、及びフリップフロップＦＦ１０〜ＦＦ１３によるループ構成は図１８で示したキャプチャ回路４Ａの場合と同様であるため、説明を省略する。
【０３２５】
４入力のＡＮＤゲートＧ６１は第１〜第４入力に符号化データｅｆ［０］〜ｅｆ［３］を受ける。４入力のＯＲゲートＧ６２は第１〜第４入力に符号化データｅｆ［０］〜ｅｆ［３］を受ける。３入力のＡＮＤゲートＧ６３は第１入力にＡＮＤゲートＧ６１の出力反転信号を受け、第２入力にＯＲゲートＧ６２の出力信号を受ける。
【０３２６】
ＯＲゲートＧ６４は一方入力にＡＮＤゲートＧ６１の出力信号を受け、他方入力にＡＮＤゲートＧ６３の出力信号を受ける。このＯＲゲートＧ６４の出力信号がキャプチャ信号ＣＰＴとしてセレクタＳＴ１０〜ＳＴ１３の制御入力に付与される。
【０３２７】
４入力のＯＲゲートＧ６５は第１〜第４入力にラッチデータｃｆ［０］〜ｃｆ［３］を受け、その出力信号であるフェイルフラグfail_flagがＡＮＤゲートＧ６３の第３入力となる。
【０３２８】
図１９で示した構成のキャプチャ回路４Ｂのキャプチャ動作について説明する。なお、キャプチャ動作は、キャプチャ回路４Ａと同様、フリップフロップＦＦ１０〜ＦＦ１３を“０”に初期化した後、シリアルシフト制御信号sdrを“０”にして実行される。
【０３２９】
まず、故障ビットが“０”の場合、すなわち、符号化データｅｆ［３：０］が“００００”の場合について説明する。
【０３３０】
この場合、｛符号化データｅｆ［３：０］＝“００００”｝であり、ＡＮＤゲートＧ６１の出力が“０”、ＯＲゲートＧ６２の出力が“０”となりＡＮＤゲートＧ６３の出力が“０”となるため、ＯＲゲートＧ６４の出力であるキャプチャ信号ＣＰＴは“０”で安定する。
【０３３１】
したがって、セレクタＳＴ１ｊ，セレクタＳＴ２ｊ及びＦＦ１ｊ（ｊ＝０〜３）によるループは形成されるため、フリップフロップＦＦ１０〜ＦＦ１３のラッチデータｃｆ［３：０］は初期値“００００”を維持する。
【０３３２】
その後、最初に１ビット故障が検出された場合の動作について説明する。この場合、符号化データｅｆ［３：０］＝“１１１１”でなく、かつ、符号化データｅｆ［０］〜ｅｆ［３］の少なくとも一つが“１”となる。以下、この場合の符号化データｅｆ［３：０］を１ビット故障検出時の符号化データｅｆ［３：０］と呼ぶ。
【０３３３】
この瞬間、ラッチデータｃｆ［０］〜ｃｆ［３］は全て初期化時の“０”を維持しているため、ＯＲゲートＧ６５の出力であるフェイルフラグfail_flagは“０”を維持している。
【０３３４】
したがって、ＡＮＤゲートＧ６１の出力が“０”（反転信号が“１”）、ＯＲゲートＧ６２の出力が“１”、フェイルフラグfail_flagが“０”（反転信号が“１”）となるため、ＡＮＤゲートＧ６３の出力が“１”となり、ＯＲゲートＧ６４の出力であるキャプチャ信号ＣＰＴが“１”となる。
【０３３５】
その結果、最新の符号化データｅｆ［０］〜ｅｆ［３］の値がフリップフロップＦＦ１０〜ＦＦ１３にラッチされる。
【０３３６】
そして、符号化データｅｆ［０］〜ｅｆ［３］のうち少なくとも一つが“１”となり、フェイルフラグfail_flagが“１”となり、ＡＮＤゲートＧ６３の出力が“０”に戻る結果、ＯＲゲートＧ６４の出力であるキャプチャ信号ＣＰＴが再び“０”に戻る。
【０３３７】
その後、ラッチされたラッチデータｃｆ［０］〜ｃｆ［３］が、セレクタＳＴ１ｊ，セレクタＳＴ２ｊ及びＦＦ１ｊよるループ回路により維持される。
【０３３８】
符号化データｅｆ［３：０］＝“１１１１”でなく、かつ、符号化データｅｆ［０］〜ｅｆ［３］の少なくとも一つが“１”となる符号化データｅｆ［０］〜ｅｆ［３］がフリップフロップＦＦ１０〜ＦＦ１３にラッチされる。その結果、前述したように、ＯＲゲートＧ６５の出力であるフェイルフラグfail_flagが“１”に固定される。したがって、その後に、１ビット故障検出時の符号化データｅｆ［３：０］が入力されても、ＡＮＤゲートＧ６３の出力が“１”になることはなく、キャプチャ信号ＣＰＴは“０”を維持し、フリップフロップＦＦ１０〜ＦＦ１３に取り込まれることはない。
【０３３９】
次に、２ビット以上の故障が検出された場合を説明する。この場合｛符号化データｅｆ［３：０］＝“１１１１”｝を満足するため、ＡＮＤゲートＧ６１の出力が“１”となり、ＯＲゲートＧ６４の出力であるキャプチャ信号ＣＰＴが“１”となる。
【０３４０】
その結果、符号化データｅｆ［３：０］＝“１１１１”が、フリップフロップＦＦ１０〜ＦＦ１３にラッチされる。
【０３４１】
そして、符号化データｅｆ［０］〜ｅｆ［３］の全てが“１”となり、フェイルフラグfail_flagが“１”となり、ＡＮＤゲートＧ６３の出力が“０”に戻る結果、新たな符号化データｅｆ［３：０］の入力時には、ＯＲゲートＧ６４の出力であるキャプチャ信号ＣＰＴが再び“０”に戻る。
【０３４２】
また、符号化データｅｆ［３：０］＝“１１１１”がフリップフロップＦＦ１０〜ＦＦ１３にラッチされる。したがって、前述したようにＯＲゲートＧ６５の出力であるフェイルフラグfail_flagが“１”に固定される。したがって、その後に、１ビット故障検出時の符号化データｅｆ［３：０］が入力されても、フリップフロップＦＦ１０〜ＦＦ１３に取り込まれることはない。
【０３４３】
このように、第２の構成例であるキャプチャ回路４Ｂは、故障が全く無い場合はラッチデータｃｆ［０］〜ｃｆ［３］として全て“０”となる。１ビット故障が検出された場合は、最初に検出された１ビット故障の｛故障位置＋１｝を示すラッチデータｃｆ［０］〜ｃｆ［３］をラッチする。そして、２ビット以上故障が検出された場合は、符号化データｅｆ［３：０］＝“１１１１”をラッチする。
【０３４４】
そして、キャプチャ回路４Ｂはキャプチャ動作終了後は、シリアルシフト制御信号sdrを“１”にして、フリップフロップＦＦ１０〜ＦＦ１３にラッチされた符号化データｅｆ［０］〜ｅｆ［３］を、シリアルデータ出力Ｓｏとしてシリアルに出力することができる。
【０３４５】
このように、キャプチャ回路４Ｂを用いることによってもキャプチャ回路４Ａを用いる場合と同様の効果を得ることができる。
【０３４６】
＜実施の形態６＞
図２０はこの発明の実施の形態６である故障解析機能を有する半導体集積回路の第１の態様を示す回路図である。同図に示すように、ＲＡＭ９は、４ビット（所定ビット数）のデータ入出力機能（データ入力Ｄin［０］〜Ｄin［３］及びデータ出力Ｄout［０］〜Ｄout［３］についての機能）を有している。
【０３４７】
ＲＡＭ９のデータ入力Ｄin［０］〜Ｄin［３］及びデータ出力Ｄout［０］〜Ｄout［３］に対する制御可能なデータ入出力制御部５が設けられる。
【０３４８】
同図に示すように、１ビット入出力制御部２０は、セレクタＳＴ０、ＥＸＯＲゲートＧ１０及びＡＮＤゲートＧ２０に加え、セレクタＳＴ３０，ＳＴ４０，ＯＲゲートＧ４０及びフリップフロップＦＦ３０から構成される。
【０３４９】
セレクタＳＴ０は“０”入力に書き込みデータsys_din[0]を受け、“１”入力に書き込みデータbist_din[0]を受け、制御入力にモードセレクタ制御信号selmiを受ける。そして、セレクタＳＴ０の出力がＲＡＭ入力データmem_din[0]としてＲＡＭ９のデータ入力Ｄin［０］に入力される。
【０３５０】
セレクタＳＴ３０は“１”入力にデータ出力Ｄout［２］を受け、“０”入力にデータ出力Ｄout［０］を受け、制御入力にデータ出力選択信号seldoを受ける。ＥＸＯＲゲートＧ１０は一方入力に書き込みデータbist_exp[0]を受け、他方入力にセレクタＳＴ３０の出力を受ける。ＡＮＤゲートＧ２０は一方入力に比較イネーブル信号comp_enを受け、他方入力にＥＸＯＲゲートＧ１０の出力を受ける。
【０３５１】
ＯＲゲートＧ４０は一方入力にＡＮＤゲートＧ２０の出力を受ける。セレクタＳＴ４０は“１”入力に１ビット入出力制御部２１のフリップフロップＦＦ３１の出力を受け、“０”入力にＯＲゲートＧ４０の出力を受け、制御入力にシリアルシフト制御信号sdrを受ける。
【０３５２】
フリップフロップＦＦ３０は入力部にセレクタＳＴ４０の出力を受け、その出力がＯＲゲートＧ４０の他方入力として帰還する。また、フリップフロップＦＦ３０の出力はシリアルデータ出力Ｓｏして出力される。データ出力Ｄout［０］は書き込みデータsys_din[0]として出力される。
【０３５３】
また、１ビット入出力制御部２１は、セレクタＳＴ１、ＥＸＯＲゲートＧ１１及びＡＮＤゲートＧ２１に加え、セレクタＳＴ３１，ＳＴ４１，ＯＲゲートＧ４１及びフリップフロップＦＦ３１から構成される。
【０３５４】
セレクタＳＴ１は“０”入力に書き込みデータsys_din[1]を受け、“１”入力に書き込みデータbist_din[1]を受け、制御入力にモードセレクタ制御信号selmiを受ける。そして、セレクタＳＴ１の出力がＲＡＭ入力データmem_din[1]としてＲＡＭ９のデータ入力Ｄin［１］に入力される。
【０３５５】
セレクタＳＴ３１は“１”入力にデータ出力Ｄout［３］を受け、“０”入力にデータ出力Ｄout［１］を受け、制御入力にデータ出力選択信号seldoを受ける。ＥＸＯＲゲートＧ１１は一方入力に書き込みデータbist_exp[1]を受け、他方入力にセレクタＳＴ３１の出力を受ける。ＡＮＤゲートＧ２１は一方入力に比較イネーブル信号comp_enを受け、他方入力にＥＸＯＲゲートＧ１１の出力を受ける。
【０３５６】
ＯＲゲートＧ４１は一方入力にＡＮＤゲートＧ２１の出力を受ける。セレクタＳＴ４１は“１”入力にシリアルデータ入力Ｓｉを受け、“０”入力にＯＲゲートＧ４１の出力を受け、制御入力にシリアルシフト制御信号sdrを受ける。
【０３５７】
フリップフロップＦＦ３１は入力部にセレクタＳＴ４１の出力を受け、その出力がＯＲゲートＧ４１の他方入力として帰還する。また、フリップフロップＦＦ３１の出力は前述したように１ビット入出力制御部２０のセレクタＳＴ４０の“１”入力にも付与される。また、データ出力Ｄout［１］は書き込みデータsys_din[1]として出力される。
【０３５８】
一方、１ビット入出力制御部２２は、セレクタＳＴ２のみから構成される。セレクタＳＴ２は“０”入力に書き込みデータsys_din[2]を受け、“１”入力に書き込みデータbist_din[2]を受け、制御入力にモードセレクタ制御信号selmiを受ける。そして、セレクタＳＴ２の出力がＲＡＭ入力データmem_din[2]としてＲＡＭ９のデータ入力Ｄin［２］に入力される。
【０３５９】
また、データ出力Ｄout［２］は書き込みデータsys_din[2]として出力されるとともに、前述したように１ビット入出力制御部２０のセレクタＳＴ３０“１”入力にも付与される。
【０３６０】
同様にして、１ビット入出力制御部２３は、セレクタＳＴ３のみから構成される。セレクタＳＴ３は“０”入力に書き込みデータsys_din[3]を受け、“１”入力に書き込みデータbist_din[3]を受け、制御入力にモードセレクタ制御信号selmiを受ける。そして、セレクタＳＴ３の出力がＲＡＭ入力データmem_din[3]としてＲＡＭ９のデータ入力Ｄin［３］に入力される。
【０３６１】
また、データ出力Ｄout［３］は書き込みデータsys_din[3]として出力されるとともに、前述したように１ビット入出力制御部２１のセレクタＳＴ３１“１”入力にも付与される。
【０３６２】
このような構成において、データ出力選択信号seldoによって書き込みデータbist_exp[0]と比較するデータ出力を、データ出力Ｄout［０］あるいはデータ出力Ｄout［２］に切り替えて、比較回路（ＥＸＯＲゲートＧ１０，ＡＮＤゲートＧ２０）に入力し、その比較結果をフリップフロップＦＦ３０にラッチさせることができる。
【０３６３】
同様にして、データ出力選択信号seldoによって書き込みデータbist_exp[1]と比較するデータ出力を、データ出力Ｄout［１］あるいはデータ出力Ｄout［３］に切り替えて、比較回路（ＥＸＯＲゲートＧ１１，ＡＮＤゲートＧ２１）に入力し、その比較結果をフリップフロップＦＦ３１にラッチさせることができる。
【０３６４】
また、実施の形態６の半導体集積回路は、実施の形態５の半導体集積回路と同様、テスト用書き込みデータ（ｗｄ[0]，ｗｄ[1]）やテスト用期待値（ｃｄ［０］，ｃｄ［０１）は信号配線を減らす目的で、偶数番と奇数番の入出力ビットの２つにグループ化している。
【０３６５】
このように、テスト時にデータ出力選択信号seldoを適宜変化させてＲＡＭ９のデータ出力Ｄout［０］〜Ｄout［３］全てにアクセスさせることにより、４ビットのデータ出力Ｄout［０］〜Ｄout［３］に対する比較結果を、２つのフリップフロップＦＦ３０，ＦＦ３１にラッチさせることができる。
【０３６６】
実施の形態６の第１の態様の半導体集積回路のデータ入出力制御部５は、故障位置情報が不要な場合（例えば、ＲＡＭ９に対するＩＯ救済を適用しない場合等）に有効な回路である。
【０３６７】
ただし、第１の態様では、フリップフロップＦＦ３０及びＦＦ３１のうち、いずれのラッチデータであったかを識別することにより、故障ビットが奇数ビットで発生したか、偶数ビットで発生したかを認識することはできる。
【０３６８】
このように、実施の形態６の半導体集積回路の第１の態様は、２つのデータ出力Ｄout［ｉ］に対して１つの割合で設けられた比較回路（Ｇ１０，Ｇ２０あるいはＧ１１，Ｇ２１）の比較結果を一つのフリップフロップ（ＦＦ３０あるいはＦＦ３１）に格納させている。このため、図２７で示した従来構成のデータ入出力が４ビット構成であると仮定した場合に比べ、データ入出力ビット数「４」よりも少ないフリップフロップの数「２」で構成できるため、集積度の向上を図りながら、ＲＡＭ９に対する故障解析を行うことができる効果を奏する。
【０３６９】
図２０で示したデータ入出力制御部５では、２入力のセレクタＳＴ３０，ＳＴ３１を用いて２ビットのデータ出力Ｄout［ｉ］の選択を行っているが、ＲＡＭのＩ／Ｏビット数に応じて３入力以上のセレクタを用いて３ビット以上のデータ出力Ｄout［ｉ］の選択を行うことにより、さらなる集積度向上を図ることができる。
【０３７０】
図２１はこの発明の実施の形態６である故障解析機能を有する半導体集積回路の第２の態様を示す回路図である。同図に示すように、ＲＡＭ９に対してデータ入出力制御部６が設けられている。
【０３７１】
同図に示すように、１ビット入出力制御部３０は、セレクタＳＴ０、ＥＸＯＲゲートＧ１０に加え、セレクタＳＴ３０，ＳＴ４０，ＯＲゲートＧ４０及びフリップフロップＦＦ３０から構成される。
【０３７２】
セレクタＳＴ０は“０”入力に書き込みデータsys_din[0]を受け、“１”入力に書き込みデータbist_din[0]を受け、制御入力にモードセレクタ制御信号selmiを受ける。そして、セレクタＳＴ０の出力がＲＡＭ入力データmem_din[0]としてＲＡＭ９のデータ入力Ｄin［０］に入力される。
【０３７３】
セレクタＳＴ３０は“１”入力にデータ出力Ｄout［２］を受け、“０”入力にデータ出力Ｄout［０］を受け、制御入力にデータ出力選択信号seldoを受ける。ＥＸＯＲゲートＧ１０は一方入力に書き込みデータbist_exp[0]を受け、他方入力にセレクタＳＴ３０の出力を受ける。
【０３７４】
ＯＲゲートＧ４０は一方入力に１ビット入出力制御部３１からの故障信号Ｓｆａｉｌを受ける。セレクタＳＴ４０は“１”入力にシリアルデータ入力Ｓｉを受け、“０”入力にＯＲゲートＧ４０の出力を受け、制御入力にシリアルシフト制御信号sdrを受ける。
【０３７５】
フリップフロップＦＦ３０は入力部にセレクタＳＴ４０の出力を受け、その出力がＯＲゲートＧ４０の他方入力として帰還する。また、フリップフロップＦＦ３０の出力はシリアルデータ出力Ｓｏして出力される。データ出力Ｄout［０］は書き込みデータsys_din[0]として出力される。
【０３７６】
また、１ビット入出力制御部３１は、セレクタＳＴ１、ＥＸＯＲゲートＧ１１及びＡＮＤゲートＧ２１に加え、セレクタＳＴ３１及びＯＲゲート２９から構成される。
【０３７７】
セレクタＳＴ１は“０”入力に書き込みデータsys_din[1]を受け、“１”入力に書き込みデータbist_din[1]を受け、制御入力にモードセレクタ制御信号selmiを受ける。そして、セレクタＳＴ１の出力がＲＡＭ入力データmem_din[1]としてＲＡＭ９のデータ入力Ｄin［１］に入力される。
【０３７８】
セレクタＳＴ３１は“１”入力にデータ出力Ｄout［３］を受け、“０”入力にデータ出力Ｄout［１］を受け、制御入力にデータ出力選択信号seldoを受ける。ＥＸＯＲゲートＧ１１は一方入力に書き込みデータbist_exp[1]を受け、他方入力にセレクタＳＴ３１の出力を受ける。
【０３７９】
ＯＲゲート２９は一方入力にＥＸＯＲゲートＧ１１の出力を受け、他方入力に１ビット入出力制御部３０のＥＸＯＲゲートＧ１０の出力を受ける。
【０３８０】
ＡＮＤゲートＧ２１は一方入力に比較イネーブル信号comp_enを受け、他方入力にＯＲゲート２９の出力を受ける。このＡＮＤゲートＧ２１の出力が前述したように故障信号Ｓｆａｉｌとして１ビット入出力制御部３０のＯＲゲートＧ４０の一方入力として付与される。
【０３８１】
一方、１ビット入出力制御部３２は、セレクタＳＴ２のみから構成され、第１の態様の１ビット入出力制御部２２と同様な構成を呈する。また、１ビット入出力制御部３３は、セレクタＳＴ３のみから構成され、第１の態様の１ビット入出力制御部２３と同様な構成を呈する。
【０３８２】
このような構成において、データ出力選択信号seldoによって書き込みデータbist_exp[0]と比較するデータ出力を、データ出力Ｄout［０］あるいはデータ出力Ｄout［２］に切り替えて、比較回路（ＥＸＯＲゲートＧ１０，ＯＲゲート２９，ＡＮＤゲートＧ２１）に入力し、その比較結果をフリップフロップＦＦ３０にラッチさせるさせることができる。
【０３８３】
同様にして、データ出力選択信号seldoによって書き込みデータbist_exp[1]と比較するデータ出力を、データ出力Ｄout［１］あるいはデータ出力Ｄout［３］に切り替えて、比較回路（ＥＸＯＲゲートＧ１１，ＯＲゲート２９，ＡＮＤゲートＧ２１）に入力し、その比較結果をフリップフロップＦＦ３０にラッチさせることができる。
【０３８４】
このように、第２の態様では、テスト時にデータ出力選択信号seldoを適宜変化させてＲＡＭ９のデータ出力Ｄout［０］〜Ｄout［３］全てにアクセスさせることにより、４ビットのデータ出力Ｄout［０］〜Ｄout［３］に対する比較結果を、２つの比較結果（ＥＸＯＲゲートＧ１０，Ｇ１１の出力）として得ることができる。
【０３８５】
さらに、実施の形態６の半導体集積回路の第２の態様は、上記した２つの比較結果のうち少なくとも一つの比較結果が故障ビット有りを指示するか否かを判定して得られる総合比較結果である故障信号Ｓｆａｉｌをラッチするラッチ部（フリップフロップＦＦ３０）を設ける構成を呈している。
【０３８６】
その結果、２つの比較結果に対し故障信号Ｓｆａｉｌをラッチする一のフリップフロップＦＦ３０を設ける構成が実現する分、実施の形態６の第２の態様は第１の態様以上に集積度を向上させながら、ＲＡＭ９に対する故障解析を行うことができる効果を奏する。
【０３８７】
このように、実施の形態６の半導体集積回路の第２の態様は、第１の態様の効果と併せて、４ビットのデータ出力Ｄout［ｉ］に対する比較結果を一つのフリップフロップに格納させることにより、図２７で示した構成に比べ、フリップフロップの数を減少させることにより（４から１に減少）、さらなる集積度の向上を図ることができる。
【０３８８】
ただし、第２の態様では、第１の態様のように、故障ビットが奇数ビットで発生したか、偶数ビットで発生したかを認識することはできない。
【０３８９】
実施の形態６の第２の態様の半導体集積回路のデータ入出力制御部６は、第１の態様と同様、故障位置情報が不要な場合に有効な回路である。
【０３９０】
図２１で示したデータ入出力制御部６では、２入力のセレクタＳＴ３０，ＳＴ３１を用いてデータ出力Ｄout［ｉ］の選択を行っているが、ＲＡＭのＩ／Ｏビット数に応じて３入力以上のセレクタを用いることもできる。
【０３９１】
＜実施の形態７＞
（発明の原理）
図２８は従来の故障解析機能を有する半導体集積回路の構成を示す説明図である。同図に示すように、ＲＡＭ４１はチップイネーブル入力ＣＥ、ライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］、データ入力Ｄin［＊］及びデータ出力Ｄoutを有してる。
【０３９２】
そして、ＲＡＭ４１に対する故障ビットの有無をテスト可能にすべく、比較部４２、セレクタＳＴ５０〜ＳＴ５３及びＡＮＤゲートＧ５０を設けている。
【０３９３】
比較部４２はデータ出力Ｄoutと書き込み期待値bist_extとを比較して、故障ビットの有無を示す比較結果信号bist_resultとして出力する。
【０３９４】
セレクタＳＴ５０は“１”入力にチップイネーブル信号bist_ceを受け、“０”入力にチップイネーブル信号sys_ceを受け、制御入力にモードセレクタ制御信号selmiを受ける。
【０３９５】
ＡＮＤゲートＧ５０は一方入力にセレクタＳＴ５０の出力を受け、他方入力にテスト選択信号Ｔselを受ける。テスト選択信号Ｔselはテスト時においてテスト時選択対象ＲＡＭに対し“１”、テスト時対象外のＲＡＭに対し“０”となる信号である。このＡＮＤゲートＧ５０の出力がＲＡＭ４１のチップイネーブル入力ＣＥに付与される。
【０３９６】
セレクタＳＴ５１は“１”入力にライトイネーブル信号bist_weを受け、“０”入力にライトイネーブル信号sys_weを受け、制御入力にモードセレクタ制御信号selmiを受ける。セレクタＳＴ５１の出力がＲＡＭ４１のライトイネーブル入力ＷＥに付与される。
【０３９７】
セレクタＳＴ５２は“１”入力にアドレス信号bist_ad[*]を受け、“０”入力にアドレス信号sys_ad[*]を受け、制御入力にモードセレクタ制御信号selmiを受ける。セレクタＳＴ５２の出力がＲＡＭ４１のアドレス入力ＡＤ［＊］に付与される。
【０３９８】
セレクタＳＴ５３は“１”入力にアドレス信号書き込みデータbist_din[*]を受け、“０”入力に書き込みデータsys_din[*]を受け、制御入力にモードセレクタ制御信号selmiを受ける。セレクタＳＴ５３の出力がＲＡＭ４１のデータ入力Ｄin［＊］に付与される。
【０３９９】
なお、チップイネーブル信号bist_ce、ライトイネーブル信号bist_we、アドレス信号bist_ad[*]、書き込みデータbist_din[*]はテスト時に用いられる信号を意味する。一方、チップイネーブル信号sys_ce、ライトイネーブル信号sys_we、アドレス信号sys_ad[*]、書き込みデータsys_din[*]は通常動作時に用いられる信号を意味する。
【０４００】
このような構成において、テスト選択信号Ｔselが“０”である、ＲＡＭ４１がテスト対象外である場合に、ＡＮＤゲートＧ５０の出力を“０”にしてＲＡＭ４１のチップイネーブル入力ＣＥを強制的に“０”にしてＲＡＭ４１を不活性に制御する。その結果、ＲＡＭ４１がテスト対象外の場合におけるテスト時のＲＡＭ４１の消費電力を減らすことが行われていた。
【０４０１】
しかし、ライトイネーブル信号bist_we、アドレス信号bist_ad[*]、及び書き込みデータbist_din[*]が、ＲＡＭ４１のライトイネーブル信号ＷＥや、アドレス信号ＡＤ、及びデータ入力信号Ｄｉｎとして入力されていた。
【０４０２】
したがって、ＲＡＭ４１のライトイネーブル信号ＷＥや、アドレス信号ＡＤ、及びデータ入力信号Ｄｉｎが変化することにより、テスト対象外の場合でもテスト時にＲＡＭ４１の内部の信号バッファ等が動作し、電力を消費するという問題があった。
【０４０３】
例えば、ＲＡＭ４１相当の１００個のＲＡＭが存在し、１０個のＲＡＭをテストする時に９０個のＲＡＭをテスト対象外としてチップイネーブル入力ＣＥを“０”に制御しても、これら９０個のＲＡＭの内部で電力が僅かずつ消費されるために全体として大きな電力を消費することになる。この不要な電力消費はテスト時の電源電圧変動などを招き、高精度なテストを妨げる要因になるという問題点があった。実施の形態７は上記問題点を解決するためになされたものである。
【０４０４】
（実施の形態７の構成）
図２２はこの発明の実施の形態７である故障解析機能を有する半導体集積回路の構成を示す説明図である。同図に示すように、ＲＡＭ４１はチップイネーブル入力ＣＥ、ライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］、データ入力Ｄin［＊］及びデータ出力Ｄoutを有してる。
【０４０５】
そして、ＲＡＭ４１に対する故障ビットの有無をテスト可能にすべく、比較部４２、セレクタＳＴ５０〜ＳＴ５３及びＡＮＤゲートＧ５０〜Ｇ５３を設けている。以下、図２８で示した構成と異なる点を中心に説明する。
【０４０６】
セレクタＳＴ５１は“１”入力にライトイネーブル信号bist_weを受け、“０”入力にライトイネーブル信号sys_weを受け、制御入力にモードセレクタ制御信号selmiを受ける。
【０４０７】
ＡＮＤゲートＧ５１は一方入力にセレクタＳＴ５１の出力を受け、他方入力にテスト選択信号Ｔselを受ける。ＡＮＤゲートＧ５１の出力がＲＡＭ４１のライトイネーブル入力ＷＥに付与される。
【０４０８】
セレクタＳＴ５２は“１”入力にアドレス信号bist_ad[*]を受け、“０”入力にアドレス信号sys_ad[*]を受け、制御入力にモードセレクタ制御信号selmiを受ける。
【０４０９】
ＡＮＤゲートＧ５２は一方入力にセレクタＳＴ５２の出力を受け、他方入力にテスト選択信号Ｔselを受ける。ＡＮＤゲートＧ５２の出力がＲＡＭ４１のアドレス入力ＡＤ［＊］に付与される。
【０４１０】
セレクタＳＴ５３は“１”入力にアドレス信号書き込みデータbist_din[*]を受け、“０”入力に書き込みデータsys_din[*]を受け、制御入力にモードセレクタ制御信号selmiを受ける。
【０４１１】
ＡＮＤゲートＧ５３は一方入力にセレクタＳＴ５３の出力を受け、他方入力にテスト選択信号Ｔselを受ける。このＡＮＤゲートＧ５３のがＲＡＭ４１のデータ入力Ｄin［＊］に付与される。なお、他の構成は図２８で示した構成と同様である。
【０４１２】
したがって、ＡＮＤゲートＧ５０〜Ｇ５３は、テスト選択信号Ｔselがテスト対象外であることを指示する“０”である場合、チップイネーブル入力ＣＥ、ライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］、データ入力Ｄin［＊］を“０”に無効化するテスト対象外時無効化手段として機能する。
【０４１３】
このような構成において、実施の形態７の半導体集積回路は、テスト選択信号Ｔselを“０”とすることにより、ＲＡＭ４１がテスト対象外の場合に、ＲＡＭ４１のチップイネーブル入力ＣＥを“０”にしてＲＡＭ４１を不活性に制御してスト時の消費電力を減らす。
【０４１４】
さらに、実施の形態７の半導体集積回路は、ＡＮＤゲートＧ５１〜Ｇ５３の出力をも“０”にして、ＲＡＭ４１のライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］及びデータ入力Ｄin［＊］をも強制的に“０”にして、これらの入力をも固定する。
【０４１５】
その結果、ＲＡＭ４１のライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］及びデータ入力Ｄin［＊］の電圧変化に起因する消費電力増大を完全に回避することができる。その結果、テスト対象外の場合はテスト時の電源電圧変動などを招くことはなく、高精度なテストを妨げる要因を皆無にすることにより、実施の形態７の半導体集積回路は、より精度の高い故障検出を行うことができるという効果を奏する。
【０４１６】
なお、実施の形態７では、ライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］及びデータ入力Ｄin［＊］の全てを固定にする構成にしたが、部分的にゲート回路を挿入しても効果が得られる。例えば、データ入力Ｄin［＊］のみをテスト選択信号Ｔselの“０”時に固定する構成にしても、固定される信号についての影響を確実に回避する効果を奏する。
【０４１７】
また、図２２ではＡＮＤゲートＧ５０〜Ｇ５３をＲＡＭの４１入力端子部に挿入しているが、セレクタＳＴ５０〜ＳＴ５３のＢＩＳＴ信号入力側（bist_ce,bist_we,bist_ad,bist_din）に挿入してもよい。この場合、半導体集積回路のノーマル動作時にテスト選択信号Ｔselを“１”に設定する必要はなくなるという利点がある。
【０４１８】
なお、図２２では１つのＲＡＭ４１を例に挙げて示したが、チップイネーブル入力ＣＥ、ライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］及びデータ入力Ｄin［＊］の入力制御をＲＡＭ４１と同様に行う複数のＲＡＭから半導体集積回路を構成することも考えられる。すなわち、ＲＡＭ４１相当の複数のＲＡＭと、複数のＲＡＭに対して設けられた複数の上記テスト対象外無効化手段相当の手段（但し、テスト選択信号Ｔselは各々独立）からなる半導体集積回路を構成することが考えられる。そして、上述した複数の上記テスト対象外無効化手段相当の手段を一括りとして一のテスト対象外無効化手段と考えることができる。
【０４１９】
このような構成の半導体集積回路に対し、上記複数のＲＡＭのうちの一部のグループ毎に順次テストする場合は以下の処理が可能となる。この場合、上記複数のＲＡＭのうちテスト対象外のＲＡＭは、上記一のテスト対象外無効化手段（テスト対象外のＲＡＭに対応する上記テスト対象外時無効化手段相当の手段）により、チップイネーブル入力ＣＥを“０”に設定すると共に、ライトイネーブル入力ＷＥ、アドレス入力ＡＤ［＊］、及びデータ入力Ｄin［＊］のうち少なくとも一つを"０"に無効化することができる。
【０４２０】
＜実施の形態８＞
図２３はこの発明の実施の形態８である故障解析機能を有する半導体集積回路の構成を示す説明図である。
【０４２１】
同図に示すように、ｎ個の救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎに対し、一単位のＯＲゲート４５、１ビット以上エラー検出部４６、２ビット以上エラー検出部４７及びシーケンシャルエンコーダ４８を設けている。
【０４２２】
救済解析回路付きＲＡＭ部Ｍ１は、ＲＡＭ４１、セレクタＳＴ５０〜ＳＴ５３、ＡＮＤゲートＧ５０、比較部４２、ＦＡＣ回路４３及びシリアライザー４４から構成される。なお、説明の都合上、図２３において救済解析回路付きＲＡＭ部Ｍ１についてのみ内部構成の詳細を図示している。
【０４２３】
ＲＡＭ４１は、図示しないが、ロウアドレス単位に置き換え可能な冗長メモリ部を有している。
【０４２４】
ＦＡＣ（Fail Address Capture)回路４３は比較部４２より故障発生の有無を示す故障信号Ｓｆａｉｌを受け、故障信号Ｓｆａｉｌが“１”を出力したときの、アドレス信号bist_ad[*]を認識する。そして、ＦＡＣ回路４３は、故障信号Ｓｆａｉｌが“１”の時に認識したアドレス信号bist_ad[*]のうちロウアドレスを指示するアドレスをファイルアドレスfail_addressとして出力する。
【０４２５】
シリアライザー４４は故障信号Ｓｆａｉｌ及びファイルアドレスfail_addressを受け、一度でも故障信号Ｓｆａｉｌが“１”（故障有り）を出力した場合、ファイルアドレスfail_addressに基づき得られる３２ビットのOne-HotデータＯＨ１（故障シリアル情報）を出力する。One-HotデータＯＨ１は、ファイルアドレスfail_addressを指示する箇所のビットのみ“１”に変換して、他は“０”にした３２ビット構成のビット群からなるデータを意味する。
【０４２６】
なお、救済解析回路付きＲＡＭ部Ｍ１における他の構成は図２８で示した構成と同様であるため、説明を省略する。
【０４２７】
救済解析回路付きＲＡＭ部Ｍｎも救済解析回路付きＲＡＭ部Ｍ１と同様な構成を呈し、シリアライザー４４より３２ビットのOne-HotデータＯＨｎを出力する。なお、救済解析回路付きＲＡＭ部Ｍｎの実際のOne-Hotデータの有効ビット数は１６ビットであるが、他のOne-Hotデータとの整合を取るべく３２ビットで出力される。この場合、先頭の１６ビットは“０”に固定される。
【０４２８】
同様にして、他の救済解析回路付きＲＡＭ部Ｍｖ（ｖ＝２〜（ｎ−１））も同様に構成され、シリアライザー４４相当から３２ビット構成のビット群からなるOne-HotデータＯＨｖがそれぞれ出力される。
【０４２９】
このように、One-HotデータＯＨ１〜ＯＨｎ間において、ビット群のビット数は同一ビット数である３２ビットで統一される。
【０４３０】
図２３で示す例では、故障信号Ｓｆａｉｌが“１”となった時のアドレス信号bist_ad[*]のロウアドレス信号（この例では、bist_ad[6:2]）をＦＡＣ回路４３でキャプチャ動作を行う。例えば、ファイルアドレスfail_addressとして“１１１０１”（１０進で「２９」）がＦＡＣ回路４３でキャプチャされた場合、テスト終了後にこの５ビットのデータをシリアライザー４４によって、３２ビットのOne-Hotデータ(“１”が１つだけ存在)に変換する。
【０４３１】
シリアライザー４４として例えばカウントダウン処理が可能なダウンカウンタを用い、ファイルアドレスfail_addressを初期値として入力する構成が考えられる。この場合、シリアライザー４４は、ファイルアドレスfail_addresssのロード後に、カウントダウンを行う毎に“０”をシリアルに出力し、カウント値が“０”なった時だけ“１”を出力する。そして、シリアライザー４４は、“１”出力後は、One-HotデータＯＨ１のビット群のビット数を満足させるビット数分“０”をシリアル出力する。
【０４３２】
ｎ入力のＯＲゲート４５はOne-HotデータＯＨ１〜ＯＨｎを先頭ビットからビット単位にシリアル入力し、ビット単位にｎ個のシリアル出力の論理和を得、論理和によりなる３２ビット構成のビット群を出力信号Ｓ４５として出力する。この出力信号Ｓ４５がOne-HotデータＯＨ１〜ＯＨｎのビット単位の論理和より順次得られる総合故障シリアル情報となる。
【０４３３】
１ビット以上エラー検出部４６は出力信号Ｓ４５を１ビット毎に検証し、１ビット以上の“１”を検出したとき、救済要否フラグＦ１を“１”に設定し、それ以外の場合は救済要否フラグＦ１を“０”に設定する。
【０４３４】
２ビット以上エラー検出部４７は出力信号Ｓ４５を１ビット毎に検証し、２ビット以上の“１”を検出したとき、救済不可フラグＦ２を“１”に設定し、それ以外の場合は救済不可フラグＦ２を“０”に設定する。
【０４３５】
シーケンシャルエンコーダ４８は出力信号Ｓ４５をシリアル入力し、出力信号Ｓ４５の“１”入力位置に基づき、その故障個所を示す救済ロウアドレスＲＲＡを出力する。
【０４３６】
このような構成の実施の形態８の半導体集積回路は、救済要否フラグＦ１＝“１”でかつ、救済不可フラグＦ２が“０”の場合、救済可能な救済ロウアドレスＲＲＡは一意に決定する。このように、救済要否フラグＦ１を設定する１ビット以上エラー検出部４６と救済不可フラグＦ２を設定する２ビット以上エラー検出部４７とにより救済可能性の有無を検出する救済可能性検証部を構成している。
【０４３７】
その結果、救済要否フラグＦ１＝“１”，救済不可フラグＦ２＝“０”の際、救済解析回路付きＲＡＭ部Ｍ１〜ＭｎのＲＡＭ４１に対し一括して、救済ロウアドレスＲＲＡの指示するロウアドレスを救済メモリのアドレスに置き換えることにより、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎ全体として故障救済を図ることができる。このように、シーケンシャルエンコーダ４８は、出力信号Ｓ４５に基づき故障個所を求めて救済情報を得る救済情報取得部として機能する。
【０４３８】
図２３で示す例では、One-HotデータＯＨ１のみ“０００…０１００”で、One-HotデータＯＨ２〜ＯＨｎが全ビット“０”の場合、救済要否フラグＦ１が“１”、救済不可フラグＦ２が“０”、救済ロウアドレスＲＲＡとして“１１１０１”（１０進数で２９）が出力される。その結果、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎそれぞれにおいてロウアドレス２９番の故障救済を行うことにより、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎ全体の故障救済を図ることができる。なお、故障救済は図示しないヒューズ回路やレジスタにより置換アドレス及び置換イネーブル信号を救済解析回路付きＲＡＭ部Ｍ１〜ＭｎのＲＡＭ４１に与えることより行われる。
【０４３９】
なお、上記例の場合、救済解析回路付きＲＡＭ部Ｍ１以外の救済解析回路付きＲＡＭ部Ｍ２〜Ｍｎは、実際には故障していないロウアドレス２９番が冗長メモリに置換されることになるが、冗長メモリが正常であれば、動作に支障が生じることはない。
【０４４０】
このように、実施の形態８の半導体集積回路は、複数の故障シリアル情報であるOne-HotデータＯＨ１〜ＯＨｎのビット単位の論理和より順次得られる総合故障シリアル情報である出力信号Ｓ４５を得ている。そして、出力信号Ｓ４５に基づき、１ビット以上エラー検出部４６、２ビット以上エラー検出部４７及びシーケンシャルエンコーダ４８により、救済可能性の有無を検出し、故障個所を求めて救済情報を得ている。
【０４４１】
したがって、実施の形態８の半導体集積回路は、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎに対し一括して故障救済を図ることができる分、故障救済機能を効率化を図ることができる。
【０４４２】
この際、実施の形態８の半導体集積回路は、救済ロウアドレスＲＲＡに基づき、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎに対する故障ロウアドレスの救済を図ることができる。
【０４４３】
＜実施の形態９＞
図２４はこの発明の実施の形態９である故障解析機能を有する半導体集積回路の構成を示す説明図である。
【０４４４】
同図に示すように、ｎ個の救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎに対し、一単位のＡＮＤゲート５４、ＯＲゲート５５、１ビット以上エラー検出部４６、２ビット以上エラー検出部４７、シーケンシャルエンコーダ４８及びヒューズ回路７１を設けている。
【０４４５】
救済解析回路付きＲＡＭ部Ｍ１は、図２３で示した実施の形態８と同様、ＲＡＭ４１、セレクタＳＴ５０〜ＳＴ５３、ＡＮＤゲートＧ５０、比較部４２、ＦＡＣ回路４３及びシリアライザー４４から構成される。
【０４４６】
同様にして、図示しない他の救済解析回路付きＲＡＭ部Ｍｖ（ｖ＝２〜ｎ）も同様に構成され、シリアライザー４４相当からOne-HotデータＯＨｖがそれぞれ出力される。ただし、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎの少なくとも一つにＩ／Ｏビットに関する救済解析回路付きＲＡＭ部Ｍｋを含んでいる。
【０４４７】
救済解析回路付きＲＡＭ部Ｍｋは、ＲＡＭ４９、セレクタＳＴ６０〜ＳＴ６２、ＡＮＤゲートＧ６０及びデータ入出力制御部８から構成される。ＲＡＭ４９は図示しないが、例えば、実施の形態１において図４で示した予備メモリ列ＲＭＣのような冗長メモリ部を有している。
【０４４８】
セレクタＳＴ６０〜ＳＴ６２は、救済解析回路付きＲＡＭ部Ｍ１のセレクタＳＴ５０〜ＳＴ５２と等価な働きをし、ＡＮＤゲートＧ６０はＡＮＤゲートＧ５０と等価な働きをする。データ入出力制御部８はデータ入力Ｄin及びデータ出力Ｄoutに接続され、図２７で示したデータ入出力制御部５３と等価な働きをする。したがって、データ入出力制御部８のシリアルデータ出力ＳｏからＩ／Ｏビットの故障解析結果をシリアルに出力することができる。
【０４４９】
ＡＮＤゲート５４は一方入力をデータ入出力制御部８のシリアルデータ出力Ｓｏからの出力とし、他方入力に有効ビット指示シリアル信号valid_soを受ける。有効ビット指示シリアル信号valid_soは、データ入出力制御部８の有効Ｉ／Ｏビット数分“１”を示し、以降は“０”のシリアル出力を行う。
【０４５０】
したがって、ＡＮＤゲート５４は救済解析回路付きＲＡＭ部Ｍｋの故障Ｉ／Ｏビット位置のみ“１”を示すOne-HotデータＯＨｋを出力することができる。例えば、ＲＡＭ４９の有効ビット数が４で、故障Ｉ／Ｏビット番号が３の場合を考える。この場合、データ入出力制御部８のシリアルデータ出力Ｓｏからの出力は“０００１×××…”（×は不定）となる。一方、有効ビット指示シリアル信号valid_soは“１１１１００００…”となる。その結果、One-HotデータＯＨｋは“０００１００００…”となる。
【０４５１】
そして、このように、One-HotデータＯＨ１〜ＯＨｎ間において、実施の形態８と同様、ビット群のビット数は同一ビット数である３２ビットで統一される。
【０４５２】
ｎ入力のＯＲゲート５５は、One-HotデータＯＨ１〜ＯＨｎを先頭ビットからビット単位にシリアル入力し、シリアルにｎ個のＯＲ演算出力の３２ビット分のビット群を出力信号Ｓ５５としてシリアルに出力する。この出力信号Ｓ５５がOne-HotデータＯＨ１〜ＯＨｎのビット単位の論理和より順次得られる総合故障シリアル情報となる。
【０４５３】
１ビット以上エラー検出部４６は出力信号Ｓ５５を１ビット毎に検証し、１ビット以上の“１”を検出したとき、救済要否フラグＦ１を“１”に設定し、それ以外のとき救済要否フラグＦ１を“０”に設定する。
【０４５４】
２ビット以上エラー検出部４７は出力信号Ｓ５５を１ビット毎に検証し、２ビット以上の“１”を検出したとき、救済不可フラグＦ２を“１”に設定し、それ以外のとき救済不可フラグＦ２を“０”に設定する。
【０４５５】
シーケンシャルエンコーダ４８は出力信号Ｓ５５をシリアル入力し、その故障個所を示す救済ロウアドレスＲＲＡを出力する。なお、救済ロウアドレスＲＲＡは救済解析回路付きＲＡＭ部Ｍｋについては救済Ｉ／Ｏビット位置を意味する。
【０４５６】
このような構成の実施の形態９の半導体集積回路は、救済要否フラグＦ１＝“１”でかつ、救済不可フラグＦ２が“０”の場合、救済可能な救済ロウアドレスＲＲＡは一意に決定する。
【０４５７】
すなわち、ヒューズ回路７１が救済ロウアドレスＲＲＡに基づき、救済ロウアドレスＲＲＡの指示するロウアドレスを置換アドレスRep_Addとして出力し、置換イネーブル信号Rep_Enを“１”（有効）として、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎに付与する。その結果、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎで一括して置換アドレスRep_Addの指示するアドレスを救済することができる。これらの置換アドレスRep_Add及び置換イネーブル信号Rep_Enは、実施の形態１〜実施の形態４で示した救済制御信号(rai1[*],ren1, rai2[*],ren2, rai3[*],ren3等)に相当する。
【０４５８】
なお、救済解析回路付きＲＡＭ部Ｍｋについては置換アドレスRep_Addは置換Ｉ／Ｏビット番号Rep_I/Oとしてとして入力されることになる。
【０４５９】
図２４で示す例では、One-HotデータＯＨｋのみ“０００１００００…”で、他のOne-Hotデータが全ビット“０”の場合、救済要否フラグＦ１が“１”、救済不可フラグＦ２が“０”、救済ロウアドレスＲＲＡが“０００１１”（１０進数で３）を出力する。その結果、ヒューズ回路７１から、救済解析回路付きＲＡＭ部Ｍ１〜ＭｎそれぞれのＲＡＭ４１においてロウアドレス（置換アドレスRep_Add）３番の故障救済を行うことにより、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎ全体の故障救済を図ることができる。ただし、救済解析回路付きＲＡＭ部ＭｋのＲＡＭ４９に対してはＩ／Ｏビット番号（置換Ｉ／Ｏビット番号Rep_I/O）３のＩ／Ｏビットの救済が行われる。
【０４６０】
上記例の場合、救済解析回路付きＲＡＭ部Ｍｋ以外の救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎは、実際には故障していないロウアドレス３番が冗長メモリに置換されることになるが、冗長メモリが正常であれば、動作に支障が生じることはない。
【０４６１】
一方、図２３で示す実施の形態８の例のように、One-HotデータＯＨ１のみ“０００…０１００”で、One-HotデータＯＨ２〜ＯＨｎが全ビット“０”の場合、救済要否フラグＦ１が“１”、救済不可フラグＦ２が“０”、救済ロウアドレスＲＲＡとして“１１１０１”（１０進数で２９）が出力される。その結果、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎそれぞれにおいてロウアドレス２９番の故障救済を行うことにより、救済解析回路付きＲＡＭ部Ｍ１〜Ｍｎ全体の故障救済を図ることができる。ただし、救済解析回路付きＲＡＭ部ＭｋのＲＡＭ４９に対してはＩ／Ｏビット番号１（２９の下位２ビットの値が“０１”のため）のＩ／Ｏビットの救済が行われる。
【０４６２】
なお、上記例の場合、救済解析回路付きＲＡＭ部Ｍ１以外の救済解析回路付きＲＡＭ部Ｍ２〜Ｍｎは、実際には故障していないロウアドレス２９番が冗長メモリに置換されることになるが、冗長メモリが正常であれば、動作に支障が生じることはない。
【０４６３】
このように、実施の形態９の半導体集積回路は、実施の形態８の半導体集積回路の効果に加え、救済解析回路付きＲＡＭ部Ｍ１〜ＭｎのＲＡＭ４１に対する故障ロウアドレスの救済と共に救済解析回路付きＲＡＭ部ＭｋのＲＡＭ４９の入出力ビットの救済をも図ることができる効果を奏する。
【産業上の利用可能性】
【０４６４】
本発明は複数のＲＡＭ（メモリ回路）を搭載したＬＳＩに広く適用できる。特に、歩留まり向上のための冗長技術を適用したＲＡＭを含むＬＳＩへの適用に適しており、生成された故障情報を用いて、故障の救済を行うことができる。
【図面の簡単な説明】
【０４６５】
【図１】この発明の実施の形態１であるＲＡＭ救済機能を有する半導体集積回路の構成を示すブロック図である。
【図２】図１で示したブリッジ回路の内部構成の詳細を示す回路図である。
【図３】図１で示した救済解析回路の内部構成の具体例を示す回路図である。
【図４】実施の形態１の半導体集積回路において、救済解析回路、救済デコーダ等の詳細を示す説明図である。
【図５】実施の形態１の救済解析回路による故障解析動作を示す波形図である。
【図６】実施の形態１の救済解析回路による故障解析動作を示す波形図である。
【図７】実施の形態１の救済解析回路による故障解析動作を示す波形図である。
【図８】実施の形態２の半導体集積回路において、救済解析回路、救済デコーダ等の詳細を示す説明図である。
【図９】実施の形態２の救済解析回路による故障解析動作を示す波形図である。
【図１０】実施の形態２の救済解析回路による故障解析動作を示す波形図である。
【図１１】実施の形態２の救済解析回路による故障解析動作を示す波形図である。
【図１２】この発明の実施の形態３であるＲＡＭ救済機能を有する半導体集積回路の構成を示すブロック図である。
【図１３】この発明の実施の形態４であるＲＡＭ救済機能を有する半導体集積回路の構成を示すブロック図である。
【図１４】この発明の実施の形態５であるＲＡＭ救済機能を有する半導体集積回路の構成を示す回路図である。
【図１５】図１４で示したエンコード回路の入出力関係を模式的に示す説明図である。
【図１６】図１４で示したエンコード回路による第１のエンコード例を表形式で示す説明図である。
【図１７】図１４で示したエンコード回路による第２のエンコード例を表形式で示す説明図である。
【図１８】図１６で示した第１のエンコード例でエンコードを行うエンコード回路に対応するキャプチャ回路の第１の構成の内部構成を示す回路図である。
【図１９】図１６で示した第１のエンコード例でエンコードを行うエンコード回路に対応するキャプチャ回路の第２の構成の内部構成を示す回路図である。
【図２０】この発明の実施の形態６である故障解析機能を有する半導体集積回路の第１の態様を示す回路図である。
【図２１】この発明の実施の形態６である故障解析機能を有する半導体集積回路の第２の態様を示す回路図である。
【図２２】この発明の実施の形態７である故障解析機能を有する半導体集積回路の構成を示す説明図である。
【図２３】この発明の実施の形態８である故障解析機能を有する半導体集積回路の構成を示す説明図である。
【図２４】この発明の実施の形態９である故障解析機能を有する半導体集積回路の構成を示す説明図である。
【図２５】従来のＲＡＭのデータＩ／Ｏ部のテスト回路部分を示す回路図である。
【図２６】従来のＲＡＭのデータＩ／Ｏ部のテスト回路部分を示す回路図である。
【図２７】図２５で示したデータ入出力制御部を直列接続して８ビット構成のデータ入出力制御部を示す回路図である。
【図２８】従来の故障解析機能を有する半導体集積回路の構成を示す説明図である。
【符号の説明】
【０４６６】
１，９  ＲＡＭ、２，５，６  データ入出力制御部、３  エンコード回路（ＥＮＣ回路）、４，４Ａ，４Ｂ  キャプチャ回路（ＥＦＣ回路）、４４  シリアライザー、４５，５５  ＯＲゲート、４６  １ビット以上エラー検出部、４７  ２ビット以上エラー検出部、４８  シーケンシャルエンコーダ、５４，Ｇ５０〜Ｇ５３  ＡＮＤゲート、１０１〜１０９  ＲＡＭ、１１０，１８０  ＢＩＳＴ制御回路、１１１〜１１３，１１５  セレクタ群、１２０〜１２３  パターン発生回路、１３０〜１３７  救済デコーダ、１５０，１６０，１７０，１７１  救済解析回路、１５２  マルチフェイル回路、１５３  シーケンシャルエンコーダ、２０１〜２０３  結果ラッチ、２１１〜２１３  モードセレクタ、２２１〜２２３  比較器、３０１〜３０９  ブリッジ回路、４００〜４０２  ＲＡＭグループ、４０５  セレクタ、Ｍ１〜Ｍｎ，Ｍｋ  救済解析回路付きＲＡＭ部。
【図１】
2009146487.tif 000003
【図２】
2009146487.tif 000004
【図３】
2009146487.tif 000005
【図４】
2009146487.tif 000006
【図５】
2009146487.tif 000007
【図６】
2009146487.tif 000008
【図７】
2009146487.tif 000009
【図８】
2009146487.tif 000010
【図９】
2009146487.tif 000011
【図１０】
2009146487.tif 000012
【図１１】
2009146487.tif 000013
【図１２】
2009146487.tif 000014
【図１３】
2009146487.tif 000015
【図１４】
2009146487.tif 000016
【図１５】
2009146487.tif 000017
【図１６】
2009146487.tif 000018
【図１７】
2009146487.tif 000019
【図１８】
2009146487.tif 000020
【図１９】
2009146487.tif 000021
【図２０】
2009146487.tif 000022
【図２１】
2009146487.tif 000023
【図２２】
2009146487.tif 000024
【図２３】
2009146487.tif 000025
【図２４】
2009146487.tif 000026
【図２５】
2009146487.tif 000027
【図２６】
2009146487.tif 000028
【図２７】
2009146487.tif 000029
【図２８】
2009146487.tif 000030