(57)【要約】【課題】  未テストの信号線を残すことなく、論理回路のテストと並列してメモリのテストを行うことができる半導体集積回路を提供する。【解決手段】  テスト対象となる論理回路３と、その論理回路３に接続されたテスト対象となるメモリ５０と、そのメモリ５０のテストを行うメモリ自己テスト回路３０と、論理回路３の間を接続する信号線及びメモリ５０とメモリ自己テスト回路３０との間を接続する信号線を有する迂回回路４０とを備え、迂回回路４０は、論理回路３のテストとメモリ５０のテストとを並列して行う並列回路状態のときの信号経路と、論理回路３のテストとメモリ５０のテストとの一方のみを行う並列回路状態とは異なる回路状態のときの信号経路とを、並列回路状態とは異なる回路状態のときの信号経路が並列回路状態のときの信号経路では通過しない信号経路を含むように、選択的に切り替える。【選択図】      図１
2005135527.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象となる論理回路と、
該論理回路に接続されたテスト対象となるメモリと、
該メモリのテストを行うメモリ自己テスト回路と、
前記論理回路の間を接続する信号線及び前記メモリと前記メモリ自己テスト回路との間を接続する信号線を有する迂回回路とを備え、
前記迂回回路は、前記論理回路のテストと前記メモリのテストとを並列して行う並列回路状態のときの信号経路と、前記論理回路のテストと前記メモリのテストとの一方のみを行う前記並列回路状態とは異なる回路状態のときの信号経路とを、前記並列回路状態とは異なる回路状態のときの信号経路が前記並列回路状態のときの信号経路では通過しない信号経路を含むように、選択的に切り替えることを特徴とする半導体集積回路。
【請求項２】
前記迂回回路は、
前記並列回路状態のときに前記メモリ自己テスト回路から伝達された前記メモリのテストのためのメモリ書き込み用テストデータを選択する第１入力側前段マルチプレクサと、
前記並列回路状態のときに前記論理回路から伝達された前記論理回路のテストのための論理回路用テストデータを選択する第１入力側後段マルチプレクサと、
前記並列回路状態のときに前記第１入力側後段マルチプレクサに選択された前記論理回路用テストデータを選択して前記論理回路に伝達する第１出力側前段マルチプレクサと、
前記並列回路状態のときに前記メモリ書き込み用テストデータに応じて前記メモリから読み出されたメモリ読み出し用テストデータを選択して前記メモリ自己テスト回路に伝達する前記第１出力側後段マルチプレクサ
とを備えることを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記並列回路状態と異なる前記回路状態のときに、
前記第１入力側前段マルチプレクサは前記メモリ自己テスト回路から伝達された前記メモリ書き込み用テストデータを選択して前記メモリに伝達し、
前記第１出力側前段マルチプレクサは前記メモリから読み出された前記メモリ読み出し用データを選択し、且つ、
前記第１出力側後段マルチプレクサは第１出力側前段マルチプレクサに選択された前記メモリ読み出し用データを選択して前記メモリ自己テスト回路に伝達する
ことを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記並列回路状態と異なる前記回路状態のときに、
前記第１入力側前段マルチプレクサは前記論理回路から伝達された前記論理回路用テストデータを選択し、
前記第１入力側後段マルチプレクサは第１入力側前段マルチプレクサに選択された前記論理回路用テストデータを選択し、且つ
前記第１出力側前段マルチプレクサは前記第１入力側後段マルチプレクサに選択された前記論理回路用テストデータを選択して前記論理回路に伝達する
ことを特徴とする請求項２に記載の半導体集積回路。
【請求項５】
前記迂回回路は、
前記メモリ自己テスト回路及び前記論理回路に入力側が接続され、前記メモリに出力側が接続された第２入力側前段マルチプレクサと、
前記論理回路及び前記第２入力側前段マルチプレクサに入力側が接続された第２入力側後段マルチプレクサと、
前記第１入力側後段マルチプレクサ及び前記第２入力側後段マルチプレクサと、前記第１出力側前段マルチプレクサとの間に接続された排他的論理和ゲート
とを更に備えることを特徴とする請求項２〜４のいずれか１項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に係り、特に半導体集積回路自身のテストを行う組み込み自己テスト（ＢＩＳＴ）回路を有する半導体集積回路に関する。
【背景技術】
【０００２】
データの書き込み及び読み出し可能なメモリが組み込まれた半導体集積回路の故障検出工程において、ＢＩＳＴにより故障を検出する手法が知られている（例えば、特許文献１参照。）。半導体集積回路の論理部に内蔵されたメモリを対象としたテストを行うＢＩＳＴ回路（以下において「メモリ自己テスト回路」という。）３０は、図１４に示すように、メモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮを生成し、メモリ５０へ伝達する。メモリ自己テスト回路３０は更に、メモリ５０からメモリ読み出し用テストデータＴＱ１を得て、メモリ５０の動作が正常であるか否かの解析を行う。メモリ自己テスト回路３０は、外部クロックＣＫが供給されるのみでテストを進行するので、テストを容易に実行できる。このため、メモリ自己テスト回路３０は、メモリ５０以外の論理回路３を対象としたテストと並列してメモリ５０のテストを実現し易いという利点を有する。
【０００３】
また、スキャンテストや、論理回路３を対象としたＢＩＳＴ回路（以下において「ロジック自己テスト回路」という。）を用いたテストにより故障を検出する手法が知られている（例えば、特許文献２参照。）。スキャンテストでは、論理回路３内の複数のレジスタ（フリップ・フロップ）がそれぞれスキャンレジスタに置換され互いに直列接続されるスキャン設計技術を用いてテストが行われる。この際、スキャンレジスタは外部から直接制御及び観測が可能となるので、論理回路３内のレジスタ以外の論理部分を、入力条件により出力が一意に決定する組み合わせ回路とみなしてテストパターンを自動で生成できる。ここで、論理回路３に接続されているメモリ５０は順序的な動作をするため、組み合わせ回路とはみなせず、テストパターンを生成する際の扱いが難しい。
【０００４】
このため一般的に、論理部において、図１４に模式的に示すように、論理回路３から伝達された論理回路用テストデータＤ１〜Ｄ３を論理回路３に接続されているメモリ５０の入力側から出力側へ迂回させるための迂回信号経路ＢＰ１１〜ＢＰ１３を有する迂回回路４０ｘがメモリ５０の周辺に配置される。但し、迂回回路４０ｘは、メモリ５０のテストのときに、メモリ自己テスト回路３０から出力されたメモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮをメモリ５０入力へ伝達するための入力切り替え回路（マルチプレクサ）４１ｘ〜４１ｚ、及び論理回路用テストデータＤ０と通常動作時のシステムデータとを切り替えて伝搬するためのマルチプレクサ４３ｘも含む必要がある。図１４に示すように、論理回路３から出力された論理回路用テストデータＤ１〜Ｄ３は、マルチプレクサ４１ｘ〜４１ｚの前で分岐し、迂回信号経路ＢＰ１１〜ＢＰ１３して、排他的論理和ゲート５２ａ及びマルチプレクサ４３ｘを経由した後、論理回路３へ伝搬する。一方、メモリ５０のテストを行うメモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮは、メモリ自己テスト回路３０からマルチプレクサ４１ｘ〜４１ｚを経由してメモリ５０に入力される。メモリ読み出し用データＴＱ１は、マルチプレクサ４３ｘの前で分岐し、メモリ自己テスト回路３０に伝達される。このように、図１４に示した迂回回路４０ｘを用いれば、論理テスト用の信号とメモリＢＩＳＴ用の信号は同じ信号線上を通ることがないため、論理回路３のテストと、メモリ５０のテストを並列に実行できる。
【特許文献１】特開平３−２１６９００号公報
【特許文献２】特開平１１−３５２１８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、図１４に示した迂回回路４０ｘでは、マルチプレクサ４１ｘ〜４１ｚ，４３ｘの前の分岐からマルチプレクサ４１ｘ〜４１ｚ，４３ｘの入力までの信号線Ｌ１１，Ｌ１２，Ｌ１３，Ｌ１７は、論理回路用テストデータＤ１〜Ｄ３、メモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮ及びメモリ読み出し用テストデータＴＱ１のいずれも通ることがないため、テストすることができず、故障検出率が低下してしまう。この残存する未テストの信号線Ｌ１１〜Ｌ１３，Ｌ１７をテストできるように、図１５に模式的に示すようにマルチプレクサ４１ｘ〜４１ｚ，４３ｘの後に分岐を設けた迂回回路４０ｙを構成すると、論理回路用テストデータＤ１〜Ｄ３と、メモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ、メモリ用制御信号ＷＥＮ及びメモリ読み出し用テストデータＴＱ１とが同じ信号線Ｌ１４，Ｌ１５，Ｌ１６，Ｌ１８を重複して通ることになり、論理回路３のテストと並列してメモリ５０のテストを行うことができない。
【０００６】
上記問題点を鑑み、本発明は、未テストの信号線を残すことなく、論理回路のテストと並列してメモリのテストを行うことができる半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の特徴は、（イ）テスト対象となる論理回路と、（ロ）その論理回路に接続されたテスト対象となるメモリと、（ロ）そのメモリのテストを行うメモリ自己テスト回路と、（ハ）論理回路の間を接続する信号線及びメモリとメモリ自己テスト回路との間を接続する信号線を有する迂回回路とを備え、（ニ）迂回回路は、論理回路のテストとメモリのテストとを並列して行う並列回路状態のときの信号経路と、論理回路のテストとメモリのテストとの一方のみを行う並列回路状態とは異なる回路状態のときの信号経路とを、並列回路状態とは異なる回路状態のときの信号経路が並列回路状態のときの信号経路では通過しない信号経路を含むように、選択的に切り替えることを特徴とする半導体集積回路であることを要旨とする。
【発明の効果】
【０００８】
以上説明したように、本発明によれば、未テストの信号線を残すことなく、論理回路のテストと並列してメモリのテストを行うことができる半導体集積回路を提供する。
【発明を実施するための最良の形態】
【０００９】
以下図面を参照して、本発明の実施の形態を説明する。図面の記載において同一あるいは類似部分には同一あるいは類似な符号を付している。ただし、図面は模式的なものである。
【００１０】
（第１の実施の形態）
本発明の第１の実施の形態に係る半導体集積回路１は、図１に示すように、クロック生成回路６０と、クロック生成回路６０に接続された論理部２と、クロック生成回路６０及び論理部２に接続されたメモリ自己テスト回路３０を備える。クロック生成回路６０は、外部クロック入力端子１０２に接続されたバッファ６１と、バッファ６１に接続されたＰＬＬ回路６２を有する。バッファ６１は、外部のコントローラ等から外部クロック入力端子１０２を介して供給された外部クロックＣＫをバッファリングする。ＰＬＬ回路６２は、バッファリングされた外部クロックＣＫを逓倍して、外部クロックＣＫよりも高速な高速クロックＨＣＫを生成する。
【００１１】
図１に示したメモリ自己テスト回路３０は、論理部２に内蔵されたメモリ５０のテストを行う組み込み自己テスト回路である。メモリ自己テスト回路３０は、バッファ６１、ＰＬＬ回路６２、初期化信号入力端子１０３及びメモリテスト開始信号入力端子１０４にそれぞれ接続された入力端子１３１ａ〜１３１ｄと、判定信号出力端子１０６に接続された出力端子１３２ｅ等を有する。メモリ自己テスト回路３０は、詳細には図２に示すように、入力端子１３１ａに接続された保持時間計測カウンタ３１と、入力端子１３１ｂ〜１３１ｄに接続され且つ保持時間計測カウンタ３１に接続されたメモリ自己テスト制御回路３２と、メモリ自己テスト制御回路３２、入力端子１３１ｂ及び出力端子１３２ａに接続されたデータ生成器３４と、メモリ自己テスト制御回路３２、入力端子１３１ｂ及び出力端子１３２ｂに接続されたアドレス生成器３５と、メモリ自己テスト制御回路３２、入力端子１３１ｂ及び出力端子１３２ｃに接続された制御信号生成器３６と、メモリ自己テスト制御回路３２、データ生成器３４、入力端子１３１ｂ，１３２ｄ及び出力端子１３２ｅに接続された結果解析器３７を有する。
【００１２】
保持時間計測カウンタ３１は、バッファリングされた外部クロックＣＫに同期して、図１に示した論理部２に内蔵されたメモリ５０の保持テストに必要な保持時間を計測する。ここで、「保持テスト」とは、メモリをテストするためのメモリ書き込み用テストデータをメモリに書き込んだ後に、メモリへ書き直しを行わずに記憶情報を保持している時間が規格を満足するか否かを調べるテストである。保持時間計測カウンタ３１は、メモリ自己テスト制御回路３２から伝達された書き込み終了信号ＨＬＤをトリガ信号として得たとき、保持時間の計測を開始する。また、保持時間計測カウンタ３１は、保持時間が経過したときに時間経過信号ＴＳを生成し、メモリ自己テスト制御回路３２へ伝達する。
【００１３】
メモリ自己テスト制御回路３２は、高速クロックＨＣＫに同期して、データ生成器３４、アドレス生成器３５、制御信号生成器３６及び結果解析器３７をそれぞれ制御するためのメモリテスト制御信号ＣＳ１〜ＣＳ４を生成する。メモリテスト制御信号ＣＳ１〜ＣＳ４はそれぞれ、データ生成器３４、アドレス生成器３５、制御信号生成器３６及び結果解析器３７へ伝達される。メモリ自己テスト制御回路３２は、外部のコントローラ等から図１に示した初期化信号入力端子１０３を介して初期化信号ＲＥＳが伝達されたとき、メモリ自己テスト回路３０を初期化させる。また、メモリ自己テスト制御回路３２は、外部のコントローラ等からメモリテスト開始信号入力端子１０４を介してメモリテスト開始信号ＳＴＡＲＴが伝達されたとき、図１に示した論理部２に内蔵されたメモリ５０のテストを開始させる。また、メモリ自己テスト制御回路３２は、保持テストにおいてメモリ５０の全ビットにメモリ書き込み用テストデータの書き込みが終了したとき、メモリ５０へのアクセスを一時中断させ動作保持モードとし、且つ書き込み終了信号ＨＬＤを生成する。また、メモリ自己テスト制御回路３２は、時間経過信号ＴＳが伝達されたとき、動作保持モードを抜けてメモリ５０へのアクセスを再開させる。
【００１４】
図２に示したデータ生成器３４は、高速クロックＨＣＫに同期して、メモリテスト制御信号ＣＳ１に応じて図１に示した論理部２に内蔵されたメモリ５０のテストのためのメモリ書き込み用テストデータＴＤ１を生成する。データ生成器３４は更に、メモリ書き込み用テストデータＴＤ１に相当する期待値データＥＴＤを生成し、結果解析器３７へ伝達する。アドレス生成器３５は、高速クロックＨＣＫに同期して、メモリテスト制御信号ＣＳ２に応じてメモリ書き込み用テストデータＴＤ１を書き込むべきメモリ５０のアドレスを指定するアドレス信号ＴＡを生成する。制御信号生成器３６は、高速クロックＨＣＫに同期して、メモリテスト制御信号ＣＳ３に応じてメモリ５０の動作状態を制御するためのメモリ用制御信号ＷＥＮを生成する。このようにそれぞれ生成されたメモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮは、出力端子１３２ａ〜１３２ｄを介して図１に示した論理部２内の迂回回路４０へそれぞれ伝達される。なお、図２は模式的に示しており、データ生成器３４は、メモリ５０の種類に応じて複数のメモリ書き込み用テストデータＴＤ１，ＴＤ２，ＴＤ３，・・・・・を生成しても良い。また、メモリ用制御信号ＷＥＮとしては、メモリ５０を読み出し状態にするリードイネーブル信号、メモリ５０を書き込み状態にするライトイネーブル信号、チップイネーブル信号、及びビットライトイネーブル信号等の複数の信号があり、メモリ５０の種類に応じて適宜設けられる。
【００１５】
図２に示した結果解析器３７は、高速クロックＨＣＫに同期して、メモリテスト制御信号ＣＳ４に応じて、期待値データＥＴＤと、図１に示した論理部２に内蔵されたメモリ５０から読み出されたメモリ読み出し用テストデータＴＱ１とを比較して判定信号ＯＵＴを生成する。生成された判定信号ＯＵＴは、出力端子１３２ｅを介して外部の例えばテスタへ伝達される。外部のテスタ等により、判定信号ＯＵＴに基づいてメモリ５０の動作が正常か否かが判定される。
【００１６】
一方、図１に示した論理部２は、論理回路３、論理回路３に接続された迂回回路４０、迂回回路４０に接続されたメモリ５０等を備える。論理回路３は例えば、スキャンチェーン２１と、スキャンチェーン２１に接続された組み合わせ回路１１を有する。スキャンチェーン２１は、外部クロック入力端子１０２にバッファ６１を介してそれぞれ接続され、スキャンイネーブル信号入力端子１００にそれぞれ接続され、且つ互いに直列接続された複数のスキャンレジスタ２１ａ，２１ｂ，２１ｃ，２１ｄ，２１ｅ，２１ｆ，・・・・・，２１ｎを有する。初段のスキャンレジスタ２１ａは、スキャン入力端子１０１に入力側が接続されている。また、最終段のスキャンレジスタ２１ｎは、スキャン結果出力端子１０５に出力側が接続されている。スキャンレジスタ２１ａ〜２１ｎは、論理回路３のテストのひとつであるスキャンテストを行うために通常動作時に用いられる複数のレジスタがスキャン設計技術により置換されたものである。例えばスキャンレジスタ２１ａは、組み合わせ回路１１、スキャン入力端子１０１、スキャンイネーブル信号入力端子１００及びバッファ６１にそれぞれ接続された入力端子２６ａ〜２６ｄと、スキャンレジスタ２１ｂ及び組み合わせ回路１１に接続された出力端子２６ｅとを有する。スキャンレジスタ２１ａは、図３に示すように、例えば入力端子２６ａ，２６ｂに入力側が接続されたマルチプレクサ２４と、そのマルチプレクサ２４及び入力端子２６ｄに入力側が接続され、出力端子２６ｅに出力側が接続されたレジスタ２５をそれぞれ有する。マルチプレクサ２４は、図１に示したスキャンイネーブル信号入力端子１００から入力端子２６ｃを介して入力されるスキャン選択制御信号ＳＣＥＮにより制御される。図１に示したスキャンレジスタ２１ｂ〜２１ｎも、図３に示したスキャンレジスタ２１ａと同様の構成であるので重複した説明を省略する。この結果、スキャンレジスタ２１ａ〜２１ｎは、外部から直接制御及び観測が可能となる。なお、スキャンチェーン２１に含まれるスキャンレジスタ２１ａ〜２１ｎの数は特に限定されない。
【００１７】
組み合わせ回路１１は、スキャンレジスタ２１ａ〜２１ｎに接続されている。組み合わせ回路１１は更に、迂回回路４０のシステム用入力端子１４１ａ〜１４１ｃに出力側が接続され、迂回回路４０のシステム用出力端子１４５ａに入力側が接続されている。組み合わせ回路１１は、論理回路３のうち、入力条件により出力が一意に決定する論理部分である。
【００１８】
論理回路３をテストするときには、スキャンチェーン２１内のスキャンレジスタ２１ａに外部のテスタ等からスキャン入力端子１０１を介してスキャンデータＳＣＩが供給される。スキャンレジスタ２１ａ〜２１（ｎ−１）はそれぞれ、バッファリングされた外部クロックＣＫに同期して、保持しているスキャンデータＳＣＩを次段のスキャンレジスタ２１ｂ〜２１ｎへシフトさせる。例えばスキャンレジスタ２１ａにおいて、図３に示すように、マルチプレクサ２４は、スキャンイネーブル信号ＳＣＥＮに応じて、入力端子２６ｂを介して伝達されたスキャンデータＳＣＩをレジスタ２５に伝達する。レジスタ２５はスキャンデータＳＣＩを保持し、外部クロックＣＫに応じて保持していたスキャンデータＳＣＩを出力端子２６ｅを介して図１に示したスキャンレジスタ２１ｂに伝達（シフト）する。このシフトを繰り返して、全てのスキャンレジスタ２１ａ〜２１ｎにスキャンデータＳＣＩが書き込まれる。その後、スキャンレジスタ２１ａ〜２１ｎにより保持されたスキャンデータＱａ〜Ｑｎが組み合わせ回路１１に組み込まれ、組み合わせ回路１１のテストが行われる。この際、組み合わせ回路１１から迂回回路４０のシステム用入力端子１４１ａ〜１４１ｃに伝達される論理回路用テストデータＤ１〜Ｄ３は、メモリ５０を迂回するように迂回回路４０を通過して、論理回路用テストデータＤ１〜Ｄ３に応じた論理回路用テストデータＤ０がシステム用出力端子１４５ａから組み合わせ回路１１へ伝達される（迂回回路４０の詳細な構造は後述する。）。組み合わせ回路１１のテスト結果Ｄａ〜Ｄｎがスキャンレジスタ２１ａ〜２１ｎに取り込まれる。スキャンレジスタ２１ａ〜２１ｎが再びシフトし、最終段のスキャンレジスタ２１ｎから伝達されたスキャン結果データＳＣＯが、スキャン結果出力端子１０５を介して外部のテスタへ伝達される。外部のテスタにより、スキャン結果データＳＣＯに基づき、スキャンチェーン２１及び組み合わせ回路１１を含む論理回路３の動作が正常か否かが判定される。
【００１９】
なお、通常動作のときには、組み合わせ回路１１は、スキャンレジスタ２１ａ〜２１ｎにデータをそれぞれ伝達する。スキャンレジスタ２１ａ〜２１ｎはそれぞれ、通常動作のときに用いるシステムクロックに同期してデータを保持し、組み合わせ回路１１に伝達する。ここで、組み合わせ回路１１から迂回回路４０のシステム用入力端子１４１ａ〜１４１ｃに伝達されたデータは、迂回回路４０を通過して、出力端子１４３ａ〜１４３ｃを介してメモリ５０に伝達される。また、メモリ５０から読み出されたデータは、迂回回路４０の入力端子１４４ａに伝達され、システム用出力端子１４５ａから組み合わせ回路１１へ伝達される。
【００２０】
図１に示した迂回回路４０は、選択制御信号出力端子１０７ａ，１０７ｂにそれぞれ接続された入力端子１４０ａ，１４０ｂと、バイパスモード選択制御信号出力端子１０７ｃに接続された入力端子１４０ｃと、組み合わせ回路１１に接続されたシステム用入力端子１４１ａ〜１４１ｃ及びシステム用出力端子１４５ａと、メモリ５０に接続された出力端子１４３ａ〜１４３ｃ及び入力端子１４４ａと、メモリ自己テスト回路３０に接続されたテスト用入力端子１４２ａ〜１４２ｃ及びテスト用出力端子１４６ａを有する。迂回回路４０は、論理回路３のテストとメモリ５０のテストとを並列して行う並列回路状態のときの信号経路と、論理回路３のテストとメモリ５０のテストとの一方のみを行う並列回路状態とは異なる回路状態のときの信号経路とを、並列回路状態とは異なる回路状態のときの信号経路が並列回路状態のときの信号経路では通過しない信号経路を含むように、選択的に切り替える。迂回回路４０は、図４に模式的に示すように、第１〜第３の入力選択回路４１〜４３と、第１〜第３の入力選択回路４１〜４３に接続された排他的論理和ゲート５２ａと、排他的論理和ゲート５２ａに接続された第１の出力選択回路５１を備える。
【００２１】
第１の入力選択回路４１は、システム用入力端子１４１ａ及びテスト用入力端子１４２ａに入力側が接続され且つ出力端子１４３ａに出力側が接続された第１入力側前段マルチプレクサ４１ａと、システム用入力端子１４１ａ及び第１入力側前段マルチプレクサ４１ａに入力側が接続された第１入力側後段マルチプレクサ４２ａを有する。第２の入力選択回路４２は、システム用入力端子１４１ｂ及びテスト用入力端子１４２ｂに入力側が接続され且つ出力端子１４３ｂに出力側が接続された第２入力側前段マルチプレクサ４１ｂと、システム用入力端子１４１ｂ及び第２入力側前段マルチプレクサ４１ｂに入力側が接続された第２入力側後段マルチプレクサ４２ｂを有する。第３の入力選択回路４３は、システム用入力端子１４１ｃ及びテスト用入力端子１４２ｃに入力側が接続され且つ出力端子１４３ｃに出力側が接続された第３入力側前段マルチプレクサ４１ｃと、システム用入力端子１４１ｃ及び第３入力側前段マルチプレクサ４１ｃに入力側が接続された第３入力側後段マルチプレクサ４２ｃを有する。即ち、第１〜第３の入力選択回路４１〜４３において、第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃと第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃで２段に構成している点が、図１４及び図１５に示したマルチプレクサ４１ｘ〜４１ｚ，４３ｘを有する迂回回路４０ｘ，４０ｙに対して異なる。また、第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃは入力端子１４０ａから伝達される選択制御信号ＳＥＬａにより、また第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃは入力端子１４０ｂから伝達される選択制御信号ＳＥＬｂによりそれぞれ制御され、伝搬する信号を切り替える。
【００２２】
一方、排他的論理和ゲート５２ａは、第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃに入力側が接続されている。第１の出力選択回路５１は、マルチプレクサを２段構成とし、入力端子１４４ａ及び排他的論理和ゲート５２ａに入力側が接続され且つシステム用出力端子１４５ａに出力側が接続された第１出力側前段マルチプレクサ４３ａと、第１出力側前段マルチプレクサ４３ａ及び入力端子１４４ａに入力側が接続され且つテスト用出力端子１４６ａに出力側が接続された第１出力側後段マルチプレクサ４４ａを有する。第１の出力選択回路５１は、入力端子１４４ａと第１出力側後段マルチプレクサ４４ａとの間に接続されたバッファ４５を更に備える。また、第１出力側前段マルチプレクサ４３ａは入力端子１４０ｃから伝達されるバイパス選択制御信号ＢＹＰＡＳＳにより、また第１出力側後段マルチプレクサ４４ａは入力端子１４０ｂから伝達される選択制御信号ＳＥＬｂによりそれぞれ制御され、伝播する信号を切り替える。
【００２３】
第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃは、入力端子１４０ａを介して伝達された選択制御信号ＳＥＬａに応じて、組み合わせ回路１１からシステム用入力端子１４１ａ〜１４１ｃを介して伝達された論理回路用テストデータＤ１〜Ｄ３と、図２に示したデータ生成器３４、アドレス生成器３５及び制御信号生成器３６からテスト用入力端子１４２ａ〜１４２ｃを介してそれぞれ伝達されたメモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮとのいずれかをそれぞれ選択的に入力して伝達する。第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃは、入力端子１４０ｂを介して伝達された選択制御信号ＳＥＬｂに応じて、組み合わせ回路１１から、システム用入力端子１４１ａ〜１４１ｃを介してあるいは第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃを介して伝達された論理回路用テストデータＤ１〜Ｄ３をそれぞれ選択的に入力し伝達する。排他的論理和ゲート５２ａは、第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃからそれぞれ伝達された論理回路用テストデータＤ１〜Ｄ３の排他的論理和を論理回路用テストデータＤ０として第１の出力選択回路５１へ伝達する。第１出力側前段マルチプレクサ４３ａは、入力端子１４０ｃを介して伝達されたバイパスモード選択制御信号ＢＹＰＡＳＳに基づき、排他的論理和ゲート５２ａから伝達された論理回路用テストデータＤ０及びメモリ５０から読み出されたメモリ読み出し用テストデータＴＱ１のいずれかを選択的に切り替えて伝達する。第１出力側後段マルチプレクサ４４ａは、選択制御信号ＳＥＬｂに応じて、メモリ５０から読み出されたメモリ読み出し用テストデータＴＱ１を入力端子１４４ａ及び第１出力側前段マルチプレクサ４３ａのいずれかを介して選択的に得て、テスト用出力端子１４６ａを介して図２に示した結果解析器３７へ選択的に伝達する。
【００２４】
なお、第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃは、通常動作のときに、図１に示した組み合わせ回路１１からシステム用入力端子１４１ａ〜１４１ｃを介して伝達されたデータをそれぞれ入力し、出力端子１４３ａ〜１４３ｃを介してメモリ５０へ伝達する。第１出力側前段マルチプレクサ４３ａは、通常動作のときに、図１に示したメモリ５０から読み出されたデータを入力端子１４４ａを介して入力し、システム用出力端子１４５ａを介して組み合わせ回路１１へ伝達する。
【００２５】
メモリ５０のテスト及び論理回路３のテストを並列して行うとき、メモリ自己テスト回路３０からメモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮが迂回回路４０に伝達される。迂回回路４０はこのとき、選択制御信号ＳＥＬａ，ＳＥＬｂ及びバイパス選択制御信号ＢＹＰＡＳＳにより、迂回信号経路ＢＰ１〜ＢＰ３を有効とする並列回路状態（第１の回路状態）に制御される。迂回回路４０において、図４に示すように、メモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮが、第１〜３入力側前段マルチプレクサ４１ａ〜４１ｃから図１に示したメモリ５０へそれぞれ伝達される。メモリ用制御信号ＷＥＮにより書き込み状態にされたメモリ５０の、アドレス信号ＴＡにより指定されたアドレスにメモリ書き込み用テストデータＴＤ１が書き込まれる。そして、メモリ５０からメモリ書き込み用テストデータＴＤ１に応じて読み出されたメモリ読み出し用テストデータＴＱ１が入力端子１４４ａを介して図４に示した第１出力側後段マルチプレクサ４４ａからテスト用出力端子１４６ａを介して図２に示した結果解析器３７へ伝達される。
【００２６】
図１に示したメモリ５０のテスト及び論理回路３のテストを並列して行うとき、更に、組み合わせ回路１１から論理回路用テストデータＤ１〜Ｄ３が迂回回路４０へそれぞれ伝達される。図４に示した迂回回路４０において、論理回路用テストデータＤ１が、第１入力側後段マルチプレクサ４２ａから排他的論理和ゲート５２ａへ伝達される。また、論理回路用テストデータＤ２が、第２入力側後段マルチプレクサ４２ｂから排他的論理和ゲート５２ａへ伝達される。また、論理回路用テストデータＤ３が、第３入力側後段マルチプレクサ４２ｃから排他的論理和ゲート５２ａへ伝達される。排他的論理和ゲート５２ａにより、論理回路用テストデータＤ１〜Ｄ３の排他的論理和が論理回路用テストデータＤ０として第１出力側前段マルチプレクサ４３ａへ伝達される。第１出力側前段マルチプレクサ４３ａから論理回路用テストデータＤ０がシステム用出力端子１４５ａを介して図１に示した組み合わせ回路１１へ伝達される。以上説明したように、迂回回路４０によれば、図４に示すような回路動作を行うことにより、論理回路３のテストとメモリ５０のテストを並列して行うことができる。
【００２７】
上述したメモリ５０のテスト及び論理回路３のテストを並列して行った場合、図４に示した第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃ、第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃ、第１出力側前段マルチプレクサ４３ａ及び第１出力側後段マルチプレクサ４４ａの前の分岐から各第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃ、第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃ、第１出力側前段マルチプレクサ４３ａ及び第１出力側後段マルチプレクサ４４ａの入力までの信号線Ｌ１〜Ｌ３、Ｌ４〜Ｌ５、Ｌ７及びＬ８が未テストである。迂回回路４０によれば、迂回回路４０内の回路状態を切り替えて動作させることで、これらの未テストの信号線Ｌ１〜Ｌ８を以下に一例を示すようにテストする。
【００２８】
まず、上述した未テストの第１出力側前段マルチプレクサ４３ａの入力側の信号線Ｌ７、及び第１出力側後段マルチプレクサ４４ａの入力側の信号線Ｌ８を故障検出対象としたテストを行うときは、図１に示したメモリ自己テスト回路３０から、メモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮが迂回回路４０へそれぞれ伝達される。迂回回路４０は、図５に模式的に示すような回路状態（第２の回路状態）に切り替えられる。即ち、迂回回路４０において、メモリ書き込み用テストデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮが、第１〜３入力側前段マルチプレクサ４１ａ〜４１ｃから出力端子１４３ａ〜１４３ｃを介してメモリ５０へそれぞれ伝達され、メモリ書き込み用テストデータＴＤ１がメモリ５０に書き込まれる。メモリ５０から読み出されたメモリ読み出し用テストデータＴＱ１が入力端子１４４ａ及び信号線Ｌ７を介して第１出力側前段マルチプレクサ４３ａへ伝達される。第１出力側前段マルチプレクサ４３ａからメモリ読み出し用テストデータＴＱ１が信号線Ｌ８を介して第１出力側後段マルチプレクサ４４ａへ選択的に伝達される。メモリ読み出し用テストデータＴＱ１が、第１出力側後段マルチプレクサ４４ａからテスト用出力端子１４６ａを介して図２に示した結果解析器３７へ伝達される。このように、迂回回路４０によれば、図５に示すような第２の回路状態に切り替えることにより、未テストの信号線Ｌ７，Ｌ８をテストすることができる。
【００２９】
次に、上述した２種類のテストで未テストの第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃの入力側の信号線Ｌ１〜Ｌ３、及び第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃの入力側の信号線Ｌ４〜Ｌ６を故障検出対象とするテストを行うときは、スキャンテスト等を用いて、図１に示した組み合わせ回路１１から論理回路用テストデータＤ１〜Ｄ３が迂回回路４０へ伝達される。迂回回路４０は、図６に模式的に示すように迂回信号経路ＢＰ１〜ＢＰ３を有効とする図４の第１及び第２の回路状態とは異なる回路状態（第３の回路状態）に切り替えられる。迂回回路４０において、論理回路用テストデータＤ１〜Ｄ３が、信号線Ｌ１〜Ｌ３を介して第１入力側前段マルチプレクサ４１ａ〜４１ｃへ伝達される。第１入力側前段マルチプレクサ４１ａ〜４１ｃから論理回路用テストデータＤ１〜Ｄ３が信号線Ｌ４〜Ｌ６を介して第１入力側後段マルチプレクサ４２ａ〜４２ｃへそれぞれ伝達され、排他的論理和ゲート５２ａへそれぞれ伝達される。排他的論理和ゲート５２ａにより論理回路用テストデータＤ１〜Ｄ３の排他的論理和が演算され、論理回路用テストデータＤ０として第１出力側前段マルチプレクサ４３ａへ伝達される。第１出力側前段マルチプレクサ４３ａから論理回路用テストデータＤ０がシステム用出力端子１４５ａを介して図１に示した組み合わせ回路１１へ伝達される。図６に示すような第３の回路状態に切り替えることで、未テストの信号線Ｌ１〜Ｌ６をテストすることができる。
【００３０】
このように、図１４に示した迂回回路４０ｘでは入力側及び出力側にマルチプレクサ４１ａ〜４１ｄ，４３ａが一段しかなく信号線Ｌ１１〜Ｌ１４をテストすることができず、図１５に示した迂回回路４０ｙでも論理回路３のテストとメモリ５０のテストを行う信号線が重複してしまい２つのテストを並列して行うことができなかったが、図４〜図６に示した迂回回路４０によれば、メモリ５０のテストと論理回路３のテストを並列して行うことができ、更に、並列したテストで未テストの信号線Ｌ１〜Ｌ８を第２及び第３の回路状態に切り替えることによりテストでき、迂回回路４０内の全ての信号線のテストを行うことが可能となる。
【００３１】
一方、図１に示したメモリ５０は、ＰＬＬ回路６２に入力側が接続されている。メモリ５０は、メモリ用制御信号ＷＥＮにより書き込み状態、読み出し状態に制御される。メモリ５０は、書き込み状態のときには、高速クロックＨＣＫに同期してアドレス信号ＴＡにより指定されたアドレスに、メモリ書き込み用テストデータＴＤ１が書き込まれる。メモリ５０は、読み出し状態のときには、高速クロックＨＣＫに同期してメモリ書き込み用テストデータＴＤ１に対応するメモリ読み出し用テストデータＴＱ１が読み出される。メモリ５０としては、例えばＳＲＡＭ及びＤＲＡＭ等が採用可能である。なお、図１はメモリ５０の入出力を省略して模式的に示しており、メモリ５０は現実には多数の入出力を有するのは勿論である。
【００３２】
以下において、図７を参照して、図１に示した半導体集積回路１における論理回路３のテスト及びメモリ５０のテストが並列して行われるときのテストの進行を説明する。
【００３３】
（イ）図７に示した時刻ｔ０〜ｔ１において、外部のコントローラ等から図１に示した初期化信号入力端子１０３を介して伝達された初期化信号ＲＥＳが、図２に示したメモリ自己テスト制御回路３２へ伝達され、メモリ自己テスト回路３０が初期化される。
【００３４】
（ロ）図７に示した時刻ｔ１において、図１に示した論理回路３のテスト（スキャンテスト）の実行が開始されると同時に、メモリテスト開始信号ＳＴＡＲＴがメモリ自己テスト制御回路３２に供給され、メモリ５０のテストの実行が並列して開始される。メモリ５０のテストは論理回路３をテストするためのテストパターンの前後に、初期化及び結果判定を行うパターンを追加している。したがって、メモリ５０のテストの動作はスキャンテストの動作に影響を与えない。また、メモリ５０のテストの実行中、メモリ自己テスト回路３０は外部クロックＣＫ及び高速クロックＨＣＫが供給されるのみで動作するので、論理回路３のテストに影響を与えない。メモリ５０のテストにおいてＢＩＳＴの実行が終了した後、時刻ｔ２において、メモリ５０に対するＢＩＳＴの実行を終了する。
【００３５】
（ハ）時刻ｔ２〜ｔ３において、メモリ自己テスト回路３０は、論理回路３のテストが終了するまで一時停止する。論理回路３のテストの実行中、メモリ自己テスト回路３０に高速クロックＨＣＫが継続して供給される。論理回路３のテストにおいて全てのスキャン結果データＳＣＯが外部のテスタへ伝達された後、時刻ｔ３において、論理回路３のテストの実行を終了する。
【００３６】
（ニ）時刻ｔ３〜ｔ４において、外部のテスタにより結果解析器３７から伝達された判定信号ＯＵＴに基づいて、メモリ５０の動作が正常か否かが判定される。判定後、時刻ｔ４において、メモリ５０のテストを終了する。
【００３７】
以上のように、論理回路３のテスト及びメモリ５０のテストが並列して行われる。更に、上述した並列したテストの前又は後に、未テストの図４に示した第１出力側前段マルチプレクサ４３ａの入力側の信号線Ｌ７、及び第１出力側後段マルチプレクサ４４ａの入力側の信号線Ｌ８を故障検出対象とするテストが先に述べたように行われる。故障検出対象が第１出力側前段マルチプレクサ４３ａの入力側の信号線Ｌ７及び第１出力側後段マルチプレクサ４４ａの入力側の信号線Ｌ８であるので、全論理回路３のテストに比べて極めて短時間で完了する。
【００３８】
また、上述した２種類のテストの前又は後に、上述した２種類のテストで未テストの第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃの入力側の信号線Ｌ１〜Ｌ３、及び第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃの入力側の信号線Ｌ４〜Ｌ６を故障検出対象とするテストが先に述べたように行われる。故障検出対象が第１〜第３入力側前段マルチプレクサ４１ａ〜４１ｃの入力側の信号線Ｌ１〜Ｌ３並びに、第１〜第３入力側後段マルチプレクサ４２ａ〜４２ｃの入力側の信号線Ｌ４〜Ｌ６であるので、論理回路３の全てのスキャンテストに比べて極めて短時間で完了する。
【００３９】
次に、図８を参照して、論理回路３のテスト及び保持テストを含むメモリ５０のテストが並列して行われる一例を説明する。
【００４０】
（イ）図８に示す時刻ｔ１０〜ｔ１１において、図７に示した時刻ｔ０〜ｔ１における手順と同様に、メモリ自己テスト回路３０が初期化される。メモリ自己テスト回路３０が初期化された後、時刻ｔ１１において、メモリ５０のテスト及び論理回路３のテストの実行が開始される。時刻ｔ１１〜ｔ１２において、メモリ自己テスト回路３０からメモリ５０へメモリ書き込み用テストデータＴＤ１が書き込まれる。
【００４１】
（ロ）メモリ５０の全アドレスへメモリ書き込み用テストデータＴＤ１が書き込まれた後、時刻ｔ１２において、保持テストのためにメモリ自己テスト回路３０は動作を一時中断し、動作保持モードに入る。この際、メモリ自己テスト制御回路３２から書き込み終了信号ＨＬＤが保持時間計測カウンタ３１へ伝達される。保持時間計測カウンタ３１が、書き込み終了信号ＨＬＤを得て保持時間の計測を開始する。時刻ｔ１２〜ｔ１３において、保持時間計測カウンタ３１は、外部クロック入力端子１０２を介して供給された外部クロックＣＫに同期して、保持テストに必要な保持時間を計測する。
【００４２】
（ハ）保持テストに必要な保持時間が経過した後、時刻ｔ１３において、保持時間計測カウンタ３１から、メモリ自己テスト制御回路３２に時間経過信号ＴＳが伝達されると、メモリ５０から読み出しが開始される。時刻ｔ１３〜ｔ１４において、メモリ５０の全アドレスからメモリ読み出し用テストデータＴＱ１が読み出される。その後、時刻ｔ１４において、メモリ５０への書き込み動作が開始される。ここで、メモリ５０の読み書きは例えば、全ビット０及び全ビット１の２種類のパターンで行われる。したがって、時刻ｔ１１〜ｔ１２においてメモリ５０の全ビットに”０”が書き込まれた場合、時刻ｔ１４〜ｔ１５においてメモリ５０の全ビットに”１”が書き込まれる。
【００４３】
（ニ）メモリ５０の全アドレスへメモリ書き込み用テストデータＴＤ１が書き込まれた後、時刻ｔ１５において、保持テストのためにメモリ自己テスト回路３０は再度、動作保持モードに入る。時刻ｔ１５〜ｔ１６において、保持時間計測カウンタ３１は、時刻ｔ１２〜ｔ１３と同様に、外部クロック入力端子１０２を介して供給された外部クロックＣＫに同期して保持テストに必要な保持時間の計測を開始する。
【００４４】
（ホ）保持テストに必要な保持時間が経過した後、時刻ｔ１６において、保持時間計測カウンタ３１から時間経過信号ＴＳがメモリ自己テスト制御回路３２に伝達される。保持テストを終了、換言すれば動作保持モードを抜け、時刻ｔ１６〜ｔ１７において、メモリ５０からメモリ読み出し用テストデータＴＱ１が読み出される。メモリ５０の全アドレスからメモリ読み出し用テストデータＴＱ１が読み出された後、時刻ｔ１７において、メモリ５０のテストの実行を終了する。時刻ｔ１７〜ｔ１８において、図７に示した時刻ｔ２〜ｔ３と同様に、論理回路３のテストが進行する。時刻ｔ１８において論理回路３のテストが終了した後、時刻ｔ１８〜１９においてメモリ５０のテストの結果判定が行われる。時刻ｔ８において、メモリ５０のテストを終了する。
【００４５】
以上説明したように、本発明の第１の実施の形態によれば、迂回回路４０内の全ての信号線をテストすることができるので、高い故障検出率が得られる。更に、論理回路３のテストと並列してメモリ５０のテストを行うことができ、論理回路３及びメモリ５０を含む論理部２のテストに要する時間を短縮できる。  
また、図８に示した時刻ｔ１３、ｔ１６における動作保持モードの終了判定の方法には、外部より終了信号を入力する方法と、上述したように保持時間計測カウンタ３１のようなカウンタで保持時間を計測する方法とがある。外部より終了信号を入力する方法では、自己テスト再開信号を設けて、この信号を変化させることにより、動作保持モードの終了を知らせている。これにより終了判定が行えるが、この外部端子を変化させるためには、保持時間に応じてテストパターン及びテスタプログラムを修正する必要がある。特に、論理回路のテストと並列してＢＩＳＴを実行している場合、論理回路のテストのテストパターンにこの信号変化を組み込まなければならず、保持時間の設定を変化させてテストが行われる場合、作業が非常に煩雑になる。一方、ＬＳＩ内に保持時間計測カウンタを設けて保持時間を計測する方法では、予めＬＳＩ内にカウンタを持たない場合、ＢＩＳＴ用に新たにカウンタを配置する必要がある。ここで、メモリＢＩＳＴは高速で動作させることが多いため、保持テストに必要な時間を計測するカウンタを設けることは、回路規模の増大につながる。特に、それぞれ構成の異なる複数のメモリをそれぞれテストしている場合、ＢＩＳＴにより動作保持モードに入るタイミングが異なるため、カウンタを共有することができず、回路規模が更に大きくなる。
【００４６】
これに対して、本発明の第１の実施の形態によれば、図２に示した保持時間計測カウンタ３１が、ＰＬＬ回路６２から伝達された高速クロックＨＣＫよりも低速な外部クロックＣＫに同期して保持テストの保持時間を計測するので、保持時間計測カウンタ３１のビット幅を削減でき、全体の回路規模を削減できる。この結果、保持テストでの動作保持モード終了の判定する信号を変化させるための、保持時間に応じたテストパターンあるいはテスタプログラムの修正等の煩雑な作業が不要となる。特に論理回路３のテスト及びメモリ５０のテストを並列して行うときに、論理回路３のテストのテストパターンにこの信号変化を組み込む必要がなくなる。したがって、特に保持時間の設定を変化させてテストが行われるような場合に作業が非常に容易となる。
【００４７】
（第１の実施の形態の変形例）
本発明の第１の実施の形態の変形例に係る半導体集積回路１ａは、図９に示すように、テスト対象である論理部２ａ、クロック生成回路６０ａ、及びメモリ自己テスト回路３０ａを備える。クロック生成回路６０ａは、バッファ６１と、論理部２ａ及びメモリ自己テスト回路３０ａとの間に接続された分周回路６３を更に有する点が、図１に示したクロック生成回路６０と異なる。分周回路６３は、バッファリングされた外部クロックＣＫを分周して外部クロックＣＫより低速な低速クロックＬＣＫを生成する。
【００４８】
図９に示した論理部２ａは、論理回路３ａ、論理回路３ａに接続された迂回回路４０ａ、迂回回路４０ａに接続されたメモリ５０ａ等を含む。論理回路３ａは、スキャンチェーン２１ｘと、スキャンチェーン２１ｘに接続された組み合わせ回路１１ａを有する。スキャンチェーン２１ｘは、分周回路６３にそれぞれ接続され、互いに直列接続された複数のスキャンレジスタ２３ａ，２３ｂ，２３ｃ，２３ｄ，２３ｅ，２３ｆ，・・・・・，２３ｎを有する。スキャンレジスタ２３ａ〜２３ｃは、組み合わせ回路１１ａではなく、迂回回路４０ａのシステム用入力端子１４１ａ〜１４１ｃに接続されている点が、図１に示したスキャンレジスタ２１ａ〜２１ｃと異なる。スキャンレジスタ２３ｄ〜２３ｎは、組み合わせ回路１１ａにそれぞれ接続されている。
【００４９】
メモリ５０ａは、入力端子と出力端子の数が一致している点が、図１に示したメモリ５０と異なる。なお、メモリ５０ａは模式的に省略して示しており、現実には多数の入出力端子を有する。迂回回路４０ａは、スキャンレジスタ２３ａ〜２３ｃに接続されたシステム用入力端子１４１ａ〜１４１ｃ及びシステム用出力端子１４５ａ〜１４５ｃと、メモリ自己テスト回路３０ａに接続されたテスト用入力端子１４２ａ〜１４２ｃ及びテスト用出力端子１４６ａ〜１４６ｃと、メモリ５０に接続された出力端子１４３ａ〜１４３ｃ及び入力端子１４４ａ〜１４４ｃとを有する。迂回回路４０ａは、図１０に示すように、第１〜第３の入力選択回路４１〜４３と、第１〜第３の入力選択回路４１〜４３にそれぞれ接続された第１〜第３の出力選択回路５１〜５３を有する。第１の出力選択回路５１は、排他的論理和ゲートを介さずに第１の入力選択回路４１に接続されている。このように、メモリ５０ａの入出力端子数に応じて、図４に示すような排他的論理和ゲート５２ａの数は適宜選択可能である。第２の出力選択回路５２は、第２の入力選択回路４２及び入力端子１４４ｂに入力側が接続され且つ出力端子１４５ｂ及び出力端子１４６ｂに出力側が接続されている。第３の出力選択回路５３は、第３の入力選択回路４３及び入力端子１４４ｃに入力側が接続され且つ出力端子１４５ｃ及び出力端子１４６ｃに出力側が接続されている。第２及び第３の出力選択回路５２，５３の構造は、第１の出力選択回路５１と同様の構造であるので、重複した説明を省略する。
【００５０】
本発明の第１の実施の形態の変形例においても、メモリ５０ａのテスト及び論理回路３ａのテストが並列で行われる。並列したテストのときに、図１０に示した迂回回路４０ａにおいて、第１〜第３の入力選択回路４１〜４３からメモリ書き込みデータＴＤ１、アドレス信号ＴＡ及びメモリ用制御信号ＷＥＮがそれぞれ出力端子１４３ａ〜１４３ｃを介してメモリ５０ａに伝達され、メモリ書き込み用テストデータＴＤ１がメモリ５０ａに書き込まれる。その後、メモリ５０ａからメモリ読み出し用テストデータＴＱ１〜ＴＱ３が入力端子１４４ａ〜１４４ｃを介して第１〜第３の出力選択回路５１〜５３にそれぞれ伝達される。第１〜第３の出力選択回路５１〜５３からメモリ読み出し用テストデータＴＱ１〜ＴＱ３がテスト用出力端子１４６ａ〜１４６ｃを介して、図９に示したメモリ自己テスト回路３０ａ内の結果解析器に伝達される。
【００５１】
一方、スキャンテストにより、スキャンチェーン２１ｘ内のスキャンレジスタ２３ａ〜２３ｎは低速クロックＬＣＫに同期してスキャンデータＳＣＩをシフトして、値が設定される。スキャンレジスタ２３ａ〜２３ｃから論理回路用テストデータＤ１〜Ｄ３が迂回回路４０ａへそれぞれ伝達される。迂回回路４０ａにおいて、図１０に示すように、論理回路用テストデータＤ１〜Ｄ３が第１〜第３の入力選択回路４１〜４３から第１〜第３の出力選択回路５１〜５３へそれぞれ伝達される。そして、第１〜第３の出力選択回路５１〜５３から、論理回路用テストデータＤ１〜Ｄ３がテスト結果データとして図９に示したスキャンレジスタ２３ａ〜２３ｃに取り込まれる。また、スキャンレジスタ２３ｄ〜２３ｎから論理回路用テストデータＱｄ〜Ｑｎが組み合わせ回路１１ａに組み込まれる。組み合わせ回路１１ａのテスト後、テスト結果データＤｄ〜Ｄｎがスキャンレジスタ２３ｄ〜２３ｎに取り込まれる。
【００５２】
また、メモリ自己テスト回路３０ａを用いて保持テストを含むメモリ５０ａのテストを行う場合、図２に示した保持時間計測カウンタ３１と同様な保持時間計測カウンタが、分周回路６３から伝達された低速クロックＬＣＫに同期して動作する。また、メモリ自己テスト回路３０ａ内の結果解析器としては、例えばテスト用出力端子１４６ａ〜１４６ｃを介して伝達されたメモリ読み出し用テストデータＴＱ１〜ＴＱ３を並列に入力し、圧縮して判定信号ＯＵＴとするような圧縮器方式のものが採用可能である。
【００５３】
本発明の第１の実施の形態の変形例によれば、図１０に示すような迂回回路４０ａを用いた場合も第１の実施の形態と同様に、未テストの信号線を残すことなく、論理回路３ａのテストと並列してメモリ５０ａのテストを行うことができる。
【００５４】
更に、保持時間計測カウンタ３１が、ＰＬＬ回路６２から伝達された高速クロックＨＣＫよりも低速な低速クロックＬＣＫに同期して保持テストの保持時間を計測すれば、分周回路６３の回路規模の増大はあるが、保持時間計測カウンタ３１のビット幅を削減でき、全体の回路規模を削減できる。特に、半導体集積回路１内にメモリ５０ａ及びメモリ自己テスト回路３０ａの他に複数のメモリ及び対応する複数のメモリ自己テスト回路がある場合、複数のメモリ自己テスト回路内の保持時間計測カウンタがそれぞれ分周回路６３を共有すれば、ビット数を削減でき、より顕著に回路規模を削減できる。
【００５５】
（第２の実施の形態）
本発明の第２の実施の形態に係る半導体集積回路１ｂは、図１１に示すように、クロック生成回路６０ｂと、クロック生成回路６０ｂに接続されたロジック自己テスト回路８０と、クロック生成回路６０ｂ及びロジック自己テスト回路８０に接続された論理部２ｂと、クロック生成回路６０ｂ、ロジック自己テスト回路８０及び論理部２ｂに接続されたメモリ自己テスト回路３０ｂを備える。クロック生成回路６０ｂは、外部クロック入力端子１０２に接続されたバッファ６１と、バッファ６１に接続されたＰＬＬ回路６２を有する。バッファ６１は、外部クロックＣＫをバッファリングする。ＰＬＬ回路６２は、バッファリングされた外部クロックＣＫを逓倍して高速クロックＨＣＫを生成する。
【００５６】
図１１に示したロジック自己テスト回路８０は、論理テスト開始信号入力端子１０８に接続された入力端子１８１と、圧縮信号出力端子１０９に接続された出力端子１８５と、クロック生成回路６０ｂに接続された入力端子１８２と、メモリ自己テスト回路３０ｂに接続された出力端子１８３，１８４と、論理部２にそれぞれ接続された複数（第１〜第ｎ）の出力端子２００ａ〜２００ｎ及び複数（第１〜第ｎ）の入力端子２０１ａ〜２０１ｎを有する。
【００５７】
ロジック自己テスト回路８０は、詳細には図１２に示すように、入力端子１８１に接続されたロジック自己テスト制御回路８１と、ロジック自己テスト制御回路８１、及び複数（第１〜第ｎ）の出力端子２００ａ〜２００ｎに接続されたテストパターン生成器８５と、ロジック自己テスト制御回路８１、複数（第１〜第ｎ）の入力端子２０１ａ〜２０１ｎ、及び出力端子１８５に接続された圧縮器８６と、ロジック自己テスト制御回路８１、出力端子１８３に接続されたシフトカウンタ８３と、ロジック自己テスト制御回路８１に接続されたパターンカウンタ８２と、入力端子１８２及び出力端子１８３に接続されたクロック制御回路８４を有する。テストパターン生成器８５としては、例えば単一入力シグネチャレジスタ（ＳＩＳＲ）、直列フィードバックシグニチャレジスタ（ＬＦＳＲ）及び擬似乱数パターン発生器（ＰＲＰＧ）等が採用可能である。圧縮器８６としては、例えば多入力シグネチャレジスタ（ＭＩＳＲ）等が使用可能である。ロジック自己テスト回路８０としては、例えばＳＴＵＭＰＳ（Self-Testing Using MISR and Parallel SRSGs）と呼ばれる回路を用いることができる。
【００５８】
ロジック自己テスト制御回路８１は、外部のテスタから入力端子１８１を介して伝達された論理回路３ｂのテストを開始するための論理テスト開始信号ＬＳＴＡＲＴを得て、論理テスト制御信号ＣＴＲＬ１，ＣＴＲＬ２を生成する。生成された論理テスト制御信号ＣＴＲＬ１，ＣＴＲＬ２は、テストパターン生成器８５及び圧縮器８６へそれぞれ伝達される。クロック制御回路８４は、高速クロックＨＣＫを分周して低速クロックＬＣＫを生成する。
【００５９】
テストパターン生成器８５は、論理テスト制御信号ＣＴＲＬ１に応じて擬似乱数的なテストパターン（論理回路用テストデータ）ＴＰを順次生成する。生成されたテストパターンＴＰは、図１１に示した論理回路３内のスキャンチェーン２２ａ〜２２ｎに並列に伝達される。図１２に示した圧縮器８６は、スキャンチェーン２２ａ〜２２ｎから伝達された並列のテスト結果パターンＴＱを順次取り込み、圧縮する。圧縮器８６は更に、圧縮された最終的な状態の圧縮信号ＬＯＵＴを外部のテスタへ伝達する。圧縮信号ＬＯＵＴは、外部のテスタによりテスタ上の期待値と比較され、故障が検出される。
【００６０】
図１２に示したシフトカウンタ８３は、外部クロックＣＫに同期して、図１１に示したスキャンチェーン２２ａ〜２２ｎのシフト動作の回数をカウントする。テスト結果パターンＴＱの取り込み動作への切り替え時期と判定された場合、切り替え信号ＳＷＩＴＣＨをロジック自己テスト制御回路８１へ伝達する。パターンカウンタ８２は、ロジック自己テスト制御回路８１から伝達されたカウント信号ＰＣＯＵＮＴを得て、シフト動作と取り込み動作の繰り返し回数をカウントする。パターンカウンタ８２は、充分な故障検出率が得られる回数までカウントしたとき、停止信号ＰＳＴＯＰをロジック自己テスト制御回路８１へ伝達する。
【００６１】
図１１に示した論理部２ｂは、ロジック自己テスト回路８０の出力端子２００ａ〜２００ｎに入力側がそれぞれ接続され且つロジック自己テスト回路８０の入力端子２０１ａ〜２０１ｎに出力側がそれぞれ接続されたスキャンチェーン２２ａ，２２ｂ，２２ｃ，・・・・・，２２ｎと、スキャンチェーン２２ａ〜２２ｎに接続された組み合わせ回路１１ｂと、組み合わせ回路１１ｂにシステム用入力端子１４１ａ〜１４１ｃ及びシステム用出力端子１４５ａが接続された迂回回路４０ａと、迂回回路４０ａの出力端子１４３ａ〜１４３ｃ及び入力端子１４４ａに接続されたメモリ５０を備える。
【００６２】
スキャンチェーン２２ａ〜２２ｎは、図１に示したスキャンチェーン２１と同様に、通常の動作時に用いられるレジスタが予め置換され、互いに直列接続された複数のスキャンレジスタをそれぞれ有する。図１に示したスキャンチェーン２１がスキャン入力端子１０１及びスキャン結果出力端子１０５に接続されるスキャン設計技術に対して、図１２に示したスキャンチェーン２２ａ〜２２ｎのそれぞれの初段のスキャンレジスタの入力側及び最終段のスキャンレジスタの出力側が、ロジック自己テスト回路８０にそれぞれ接続される点が異なる。
【００６３】
スキャンチェーン２２ａ〜２２ｎ内の複数のスキャンレジスタはそれぞれ、低速クロックＬＣＫに同期してテストパターンＴＰを次段のスキャンレジスタへ順次シフトし、値が設定される。また、スキャンチェーン２２ａ〜２２ｎのスキャンレジスタはそれぞれテストパターンＴＰを組み合わせ回路１１ｂに組み込む。組み合わせ回路１１ｂから迂回回路４０のシステム用入力端子１４１ａ〜１４１ｃに伝達されたテストパターンＴＰは、第１の実施の形態と同様に、メモリ５０を迂回するように迂回回路４０を通過して、システム用出力端子１４５ａから組み合わせ回路１１ｂに伝達される。スキャンチェーン２２ａ〜２２ｎ内のスキャンレジスタはそれぞれ、テストパターンＴＰに応じて組み合わせ回路１１ｂから伝達されたテスト結果パターンＴＱを取り込む。再びスキャンチェーン２２ａ〜２２ｎのそれぞれのスキャンレジスタの値が順次シフトされ、最終段のスキャンレジスタからテスト結果パターンＴＱが並列に圧縮器８６にそれぞれ伝達される。
【００６４】
図１１に示したメモリ自己テスト回路３０ｂは、ＰＬＬ回路６２、ロジック自己テスト回路８０の出力端子１８３，１８４にそれぞれ接続された入力端子１３１ａ，１３１ｂ，１３１ｅを有する。メモリ自己テスト回路３０ｂは、図１３に示した保持時間計測カウンタ３１ａが、入力端子１３１ａに更に接続されている点が図２に示した保持時間計測カウンタ３１に対して異なる。保持時間計測カウンタ３１ａは、クロック制御回路８４から伝達された低速クロックＬＣＫに同期して、保持テストに必要な保持時間を計測する。保持時間計測カウンタ３１ａは、図１２に示したシフトカウンタ８３の最上位ビットあるいはそのカウント最大値を認識する信号が伝達されたとき、時間経過信号ＴＳをメモリ自己テスト制御回路３２へ伝達する。他の構成は、図２に示したメモリ自己テスト回路３０と同様であるので、重複した説明を省略する。
【００６５】
本発明の第２の実施の形態に係るテスト方法は、本発明の第１の実施の形態と同様に、メモリ５０のテスト及び論理回路３のテストが並列して行われる。メモリ自己テスト回路３０ｂを用いたメモリ５０のテストは、図１及び図２に示したメモリ自己テスト回路３０を用いたテスト方法と同様であるので、重複した説明を省略する。また、論理回路３のテストとして、スキャンテストの代わりに、ロジック自己テスト回路８０を用いたテストが行われる。ロジック自己テスト回路８０を用いたテストは、テストパターン生成器８５により生成されたテストパターンＴＰのシフト、テスト結果パターンＴＱのスキャンレジスタへの取り込み、取り込んだテスト結果パターンＴＱのシフト、圧縮器によるテスト結果パターンＴＱの圧縮という手順を、充分な故障検出率が得られるまで繰り返すことにより行われる。メモリ５０のメモリ自己テスト回路３０ａ及びロジック自己テスト回路８０はそれぞれ、クロックを入力するのみでテストを進行させるので、保持テストの実行によりテストの並列性に影響を及ぼすことはない。
【００６６】
以上説明したように、本発明の第２の実施の形態によれば、第１の実施の形態と同様に、迂回回路４０ａ内の全ての信号線をテストすることができるので、高い故障検出率が得られる。更に、論理回路３ａのテストと並列してメモリ５０のテストを行うことができ、論理部２ｂのテストに要する時間を短縮できる。
【００６７】
また、図１３に示した保持時間計測カウンタ３１ａは、シフトカウンタ８３を下位ビットとして用いることができるので、ビット数を削減でき、回路規模を削減できる。特に、複数のメモリ自己テスト回路を用いて、互いに異なる構成の複数のメモリをそれぞれテストする場合、動作保持モードに入るタイミングはメモリ自己テスト回路によって異なるために、複数のメモリに対して複数の持時間計測カウンタをそれぞれ設ける必要があるが、シフトカウンタ８３を下位ビットとして用いることができるので、ビット数をそれぞれ削減でき、回路規模を更に削減できる。
【００６８】
更に、図１２に示したパターンカウンタ８２は、シフトカウンタ８３の上位ビットとして動作する。よって、保持時間計測カウンタ３１ａは、シフトカウンタ８３の代わりにパターンカウンタ８２を下位ビットとして用いることができ、保持時間計測カウンタ３１ａのビット数を更に削減できる。
【００６９】
（その他の実施の形態）
本発明は、第１及び第２の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。例えば、本発明の第１及び第２の実施の形態において、メモリ５０をひとつ示したが、メモリ５０と同様の構造又は異なる構造の複数のメモリを有していても良く、メモリ５０の数や種類は特に限定されない。また、複数のメモリを有する場合、複数のメモリをそれぞれ対応する種類のメモリ自己テスト回路も、メモリに対応する数だけ配置しても良い。また、メモリ自己テスト回路３０及び迂回回路４０の信号線の数も、メモリ５０に対応して増減できる。
【００７０】
図４に示した迂回回路４０において、第１〜第３の入力選択回路４１〜４３を説明したが、実際にはメモリ５０には複数（第１〜第ｎ）の入力がある。したがって、第４，第５，第６，・・・・・，第ｎの入力に対応して、第４，第５，第６，・・・・・，第ｎの入力選択回路を備えていれば良い。また、第１の出力選択回路５１が示されているが、メモリに複数（第１〜第ｍ）の出力がある場合、第２〜第ｍの出力に対応して、第２〜第ｍの出力選択回路を備えていれば良い。その場合、排他的論理和ゲート５２ａの入力及び出力数は、第１〜第ｎの入力選択回路及び第１〜第ｍの出力選択回路に接続される信号線の本数に応じて適宜選択可能である。
【００７１】
また、図２に示したメモリ５０から読み出されたメモリ読み出し用テストデータＴＱ１を順次メモリ自己テスト回路３０内で生成した期待値データＥＴＤと比較する「比較器方式」のメモリ自己テスト回路３０を説明したが、出力データを順次圧縮していき、最終的な圧縮結果を予め計算された期待値データと比較する「圧縮器方式」のメモリ自己テスト回路を用いても良い。また、論理回路３のテストとして、スキャンテスト及びロジック自己テスト回路８０を用いたテストを示したが、特に限定されない。
【００７２】
また、図２及び図１３に示した保持時間計測カウンタ３１，３１ａを有するメモリ自己テスト回路３０を示したが、保持時間計測カウンタ３１，３１ａを有さない、即ち、保持テスト機能を有さないメモリ自己テスト回路であっても良い。このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論であり、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１の実施の形態に係る半導体集積回路の構成を示す回路図である。
【図２】本発明の第１の実施の形態に係るメモリ自己テスト回路の構成を示す回路図である。
【図３】本発明の第１の実施の形態に係るレジスタの構成を示す回路図である。
【図４】本発明の第１の実施の形態に係る迂回回路の構成を示す回路図（その１）である。
【図５】本発明の第１の実施の形態に係る迂回回路の構成を示す回路図（その２）である。
【図６】本発明の第１の実施の形態に係る迂回回路の構成を示す回路図（その３）である。
【図７】本発明の第１の実施の形態に係る論理回路のテストと並列にメモリのテストを行うテスト方法を説明するための図である。
【図８】本発明の第１の実施の形態に係る論理回路のテストと並列に保持時間を追加したメモリのテストを行うテスト方法を説明するための図である。
【図９】本発明の第１の実施の形態の変形例に係る迂回回路の構成を示す回路図である。
【図１０】本発明の第１の実施の形態の変形例に係る半導体集積回路の構成を示す回路図である。
【図１１】本発明の第２の実施の形態に係る半導体集積回路の構成を示す回路図である。
【図１２】本発明の第２の実施の形態に係るロジック自己テスト回路の構成を示す回路図である。
【図１３】本発明の第２の実施の形態に係るメモリ自己テスト回路の構成を示す回路図である。
【図１４】従来の迂回回路の構成を示す回路図である。
【図１５】従来の迂回回路の構成を示す回路図である。
【符号の説明】
【００７４】
１，１ａ，１ｂ…半導体集積回路
２，２ａ，２ｂ…論理部
３，３ａ，３ｂ…論理回路
１１，１１ａ，１１ｂ…組み合わせ回路
２１，２１ｘ…スキャンチェーン
２１ａ〜２１ｎ…スキャンレジスタ
２２ａ〜２２ｎ…スキャンチェーン
２３ａ〜２３ｆ…スキャンレジスタ
２４…マルチプレクサ
２５…レジスタ
３０，３０ａ，３０ｂ…メモリ自己テスト回路
３１，３１ａ…保持時間計測カウンタ
３２…メモリ自己テスト制御回路
３４…データ生成器
３５…アドレス生成器
３６…制御信号生成器
３７…結果解析器
４０，４０ａ，４０ｘ，４０ｙ…迂回回路
４１〜４３…第１〜第３の入力選択回路
４１ａ〜４１ｃ…第１〜第３入力側前段マルチプレクサ
４１ｘ〜４１ｚ…マルチプレクサ
４２ａ〜４２ｃ…第１〜第３入力側後段マルチプレクサ
４３ａ…第１出力側前段マルチプレクサ
４３ｘ…マルチプレクサ
４４ａ…第１出力側後段マルチプレクサ
４５…バッファ
５０，５０ａ…メモリ
５１〜５３…第１〜第３の出力選択回路
５２ａ…排他的論理和ゲート
６０，６０ａ，６０ｂ…クロック生成回路
６１…バッファ
６２…ＰＬＬ回路
６３…分周回路
８０…ロジック自己テスト回路
８１…ロジック自己テスト制御回路
８２…パターンカウンタ
８３…シフトカウンタ
８４…クロック制御回路
８５…テストパターン生成器
８６…圧縮器
１０１…スキャン入力端子
１０２…外部クロック入力端子
１０３…初期化信号入力端子
１０４…自己テスト開始信号入力端子
１０５…スキャン結果出力端子
１０６…判定信号出力端子
１０７…選択制御信号出力端子
１０８…制御信号入力端子
１０９…テスト結果圧縮信号出力端子
１３１ａ〜１３１ｅ…入力端子
１３２ａ〜１３２ｅ…出力端子
１４０…入力端子
１４１ａ〜１４１ｃ…システム用入力端子
１４２ａ〜１４２ｃ…テスト用入力端子
１４３ａ〜１４３ｃ…出力端子
１４４ａ〜１４４ｃ…入力端子
１４５ａ〜１４５ｃ…出力端子
１４６ａ〜１４６ｃ…出力端子
１８１，１８２…入力端子
１８３〜１８５…出力端子
２００ａ〜２００ｎ…出力端子
２０１ａ〜２０１ｎ…入力端子
ＢＰ１〜ＢＰ３…迂回信号経路
ＢＰ１１〜ＢＰ１３…迂回信号経路
Ｌ１〜Ｌ８…信号線
Ｌ１１〜Ｌ１８…信号線
【図１】
2005135527.tif 000003
【図２】
2005135527.tif 000004
【図３】
2005135527.tif 000005
【図４】
2005135527.tif 000006
【図５】
2005135527.tif 000007
【図６】
2005135527.tif 000008
【図７】
2005135527.tif 000009
【図８】
2005135527.tif 000010
【図９】
2005135527.tif 000011
【図１０】
2005135527.tif 000012
【図１１】
2005135527.tif 000013
【図１２】
2005135527.tif 000014
【図１３】
2005135527.tif 000015
【図１４】
2005135527.tif 000016
【図１５】
2005135527.tif 000017