(57)【要約】【課題】半導体集積回路に存在する故障を検出する効率を向上可能な半導体集積回路を提供する。【解決手段】半導体集積回路が、スキャンイン兼入出力端子３と、スキャンシフト信号がオン信号であるときは、第１テストパターンをスキャンイン兼入出力端子３から入力し、スキャンシフト信号がオフ信号であるときは、第１テスト結果をスキャンイン兼入出力端子３へ出力するスキャンインセレクタ回路４と、第１テストパターンをスキャンシフト入力する第１スキャンチェーン９ｃと、スキャンシフト信号がオン信号であるときに、第２テストパターンをスキャンシフト入力する第２スキャンチェーン９ｅと、スキャンシフト信号がオフ信号であるときに、第２スキャンチェーンから第２テストパターンを入力し、キャプチャを行い、第１テスト結果をスキャンインセレクタ回路４へ出力する第２組合せ回路１０ｂを有する。【選択図】図１
2006041264.tif 000002
【特許請求の範囲】
【請求項１】
入出力端子と、
入出力端が前記入出力端子に接続され、入出力制御端にスキャンシフト信号が入力される入出力バッファ回路とを備えた半導体集積回路。
【請求項２】
スキャンイン兼入出力端子と、
入出力端が前記スキャンイン兼入出力端子に接続された入出力バッファ回路と、
スキャンシフト信号を第１の入力端とし、出力端を前記入出力バッファ回路の入出力制御端に接続された論理回路と、
前記入出力バッファ回路の入力端に接続された第１の組み合わせ回路と、
前記論理回路の第２の入力端に接続された第２の組み合わせ回路とを備えた半導体集積回路。
【請求項３】
前記スキャンシフト信号がオン信号のとき前記入出力バッファ回路は入力状態となり、前記スキャンイン兼入出力端子から信号を入力し、前記スキャンシフト信号がオフ信号のとき前記入出力バッファ回路は出力状態となり、前記第１の組み合わせ回路の出力信号を前記スキャンイン兼入出力端子から出力することを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
スキャンアウト兼入出力端子と、
入出力端が前記スキャンアウト兼入出力端子に接続された入出力バッファ回路と、
スキャンシフト信号を第１の入力端とし、出力端を前記入出力バッファ回路の入出力制御端とされた論理回路と、
出力端が前記入出力バッファ回路の入力端に接続され、第１の入力端がスキャンチェーンに接続され、第２の入力端が第１の組み合わせ回路と接続され、前記第１と第２の入力端を前記スキャンシフト信号によって選択するセレクタ回路と、
前記論理回路の第２の入力端に接続された第２の組み合わせ回路とを備えた半導体集積回路。
【請求項５】
前記スキャンシフト信号がオン信号のとき前記入出力バッファ回路は出力状態となり、前記スキャンアウト兼入出力端子から前記スキャンチェーンから信号を出力し、前記スキャンシフト信号がオフ信号のとき前記入出力バッファ回路は出力状態となり、前記第１の組み合わせ回路の出力信号を前記スキャンアウト兼入出力端子から出力することを特徴とする請求項４に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特に、半導体集積回路のテストを容易化する半導体集積回路に関する。
【背景技術】
【０００２】
近年、半導体集積回路の高集積化が進められており、半導体集積回路の故障を容易に検出することがますます重要になってきている。半導体集積回路の故障を検出する方法として、スキャン方式が提案されている（例えば、特許文献１参照。）。しかしながら、スキャン方式によっても、検出されない故障が半導体集積回路に存在する場合が考えられた。
【特許文献１】特開２００３−７５５１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的とするところは、半導体集積回路に存在する故障を検出する効率の向上可能な半導体集積回路を提供することにある。
【課題を解決するための手段】
【０００４】
上記問題点を解決するための本発明の第１の特徴は、入出力端子と、入出力端が入出力端子に接続され入出力制御端にスキャンシフト信号が入力される入出力バッファ回路とを備えた半導体集積回路にある。
【０００５】
本発明の第２の特徴は、スキャンイン兼入出力端子と、入出力端がスキャンイン兼入出力端子に接続された入出力バッファ回路と、スキャンシフト信号を第１の入力端とし出力端を入出力バッファ回路の入出力制御端に接続された論理回路と、入出力バッファ回路の入力端に接続された第１の組み合わせ回路と、論理回路の第２の入力端に接続された第２の組み合わせ回路とを備えた半導体集積回路にある。
【０００６】
本発明の第３の特徴は、スキャンアウト兼入出力端子と、入出力端がスキャンアウト兼入出力端子に接続された入出力バッファ回路と、スキャンシフト信号を第１の入力端とし出力端を入出力バッファ回路の入出力制御端とされた論理回路と、出力端が入出力バッファ回路の入力端に接続され第１の入力端がスキャンチェーンに接続され第２の入力端が第１の組み合わせ回路と接続され第１と第２の入力端をスキャンシフト信号によって選択するセレクタ回路と、論理回路の第２の入力端に接続された第２の組み合わせ回路とを備えた半導体集積回路にある。
【発明の効果】
【０００７】
以上説明したように、本発明によれば、半導体集積回路に存在する故障を検出する効率の向上可能な半導体集積回路を提供できる。
【発明を実施するための最良の形態】
【０００８】
次に、図面を参照して、本発明の実施の形態について説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【０００９】
（比較例１）
比較例１では、スキャン方式によっては検出されない故障が、半導体集積回路に存在しうることを明らかにする。
【００１０】
図８に示すように、半導体集積回路はフリップフロップ１４乃至１６を有し、フリップフロップ１４乃至１６の状態が遷移する順序回路である。スキャン方式では、スキャンテストモード信号端子２４からスキャンテストモード信号のオン信号を入力することにより、フリップフロップ１４、１５と他の記憶素子を用いたスキャンチェーン９ｄを有するスキャンチェーン９ｅと、フリップフロップ１６と他の記憶素子を用いたスキャンチェーン９ａを有するスキャンチェーン９ｃと、スキャンチェーン９ｆを形成する。半導体集積回路からフリップフロップ１４乃至１６と他の記憶素子を除いた回路は、もはや順序回路ではなく、複数の組合せ回路１０ａ、１０ｂ、１０ｅにすぎない。組合せ回路１０ａ、１０ｂ、１０ｅでは、遷移する状態が存在しないので故障を検出するためのテストを容易にすることができる。
【００１１】
スキャン方式では、半導体集積回路の動作モードとして、通常動作モードとスキャンテストモードがある。通常動作モードでは、半導体集積回路は、目的の機能が発揮されるように順序回路として動作する。スキャンテストモードでは、半導体集積回路に、スキャンチェーン９ｅ、９ｃ、９ｆと組合せ回路１０ａ、１０ｂ、１０ｅが構成され、スキャンチェーン９ｅ、９ｃ、９ｆを用いて組合せ回路１０ａ、１０ｂ、１０ｅにおける故障が検出される。スキャンテストモードは、さらに、スキャンシフトモードとキャプチャモードに分けられる。スキャンチェーン９ｅ、９ｃ、９ｆでは、フリップフロップ１４乃至１６と他の記憶素子が鎖状に接続されており、スキャンシフトモードにおいて、テストパターンをスキャンチェーン９ｅ、９ｃ、９ｆにスキャンイン入力し、フリップフロップ１４乃至１６と他の記憶素子にテストパターンを記憶させる。キャプチャモードでは、記憶されたテストパターンをスキャンチェーン９ｅ、９ｃ、９ｆのフリップフロップ１４乃至１６と他の記憶素子から組合せ回路１０ａ、１０ｂ、１０ｅに出力する。組合せ回路１０ａ、１０ｂ、１０ｅはテスト結果を出力する。テスト結果を組合せ回路１０ａ、１０ｂ、１０ｅとテストパターンから期待される期待値と比較し、テスト結果と期待値とが異なることにより半導体集積回路の故障が検出できる。
【００１２】
ところで、半導体集積回路では、高集積化に伴い、入出力端子のピン数も増加する傾向にある。しかし、半導体集積回路の大きさの制限から、入出力端子のピン数も制限される。入出力端子のピン数を減らす目的で、通常動作モードで半導体集積回路の目的の機能を発揮するためデータの入出力を行う入出力端子と、スキャンテストモードでテストパターンをスキャンイン入力する入力端子を、１ピンのスキャンイン兼入出力端子３で兼ねている。
【００１３】
スキャンイン兼入出力端子３から、テストパターンをスキャンイン入力できるのは、スキャンテストモードのときである。半導体集積回路の故障検出を行うか否かはオペレータが判断し、スキャンテストモード信号端子２４からスキャンテストモード信号のオン信号として１が入力される。スキャンテストモード信号のオン信号の１の入力により、半導体集積回路はスキャンテストモードになる。なお、スキャンテストモードになることで複数のスキャンチェーン９ｅ、９ｃ、９ｆと複数の組合せ回路１０ａ、１０ｂ、１０ｅが形成される。組合せ回路１０ａはスキャンチェーン９ｅのフリップフロップ１４に接続している。組合せ回路１０ｂはスキャンチェーン９ｅのフリップフロップ１５に接続している。スキャンチェーン９ｅはテストパターンをシフトインする。組合せ回路１０ｅはスキャンチェーン９ｃのスキャンチェーン９ａとフリップフロップ１６に接続している。スキャンチェーン９ｃはテストパターンをシフトインする。組合せ回路１０ｅはスキャンチェーン９ｆに接続している。スキャンチェーン９ｆは組合せ回路１０ｅのテスト結果をシフトアウトする。
【００１４】
通常、スキャンテストモードにおいては、組合せ回路１０ｅのように入力端子、出力端子ともにスキャンチェーン９ｃ、９ｆに接続している。組合せ回路１０ｅのテストパターンが、スキャンイン兼入出力端子３から入力バッファ１３を経由してスキャンチェーン９ｃにスキャンインされる。一方、組合せ回路１０ａと１０ｂの出力端子は、スキャンチェーンに接続されておらず、組合せ回路１０ａと１０ｂのテスト結果はキャプチャの際に論理和ＯＲと出力バッファ１２に出力される。
【００１５】
一方、スキャンテストモードのときは、スキャンテストモード信号の１により、入出力制御セレクタである論理和ＯＲの出力信号が１に固定される。論理和ＯＲの出力信号１により出力バッファ１２は出力禁止状態になる。このことにより、スキャンイン兼入出力端子３は、入力可能な状態になる。スキャンイン兼入出力端子３から、入力バッファ１３を経由してスキャンチェーン９ｃにテストパターンを入力する。しかし、組合せ回路１０ｂのテスト結果は、出力バッファ１２から出力されることはない。出力バッファ１２がスキャンテストモード信号で制御され、出力禁止状態になっている。組合せ回路１０ａのテスト結果が、出力バッファ１２の出力に反映されることはない。入出力制御フリップフロップ１４から組合せ回路１０ａを経て論理和ＯＲまでの経路の故障検出ができないことがわかる。また、出力データフリップフロップ１５から組合せ回路１０ｂを経て出力バッファ１２までの経路の故障検出ができないことがわかる。
【００１６】
出力バッファ１２がスキャンテストモード信号によって制御されているため、キャプチャモードの際も含めてスキャンテストモードにおいては、常に、出力バッファ１２はテスト結果を出力しないことがわかる。
【００１７】
（比較例２）
比較例２でも、スキャン方式によっては検出されない故障が、半導体集積回路に存在しうることを明らかにする。
【００１８】
図９に示すように、半導体集積回路はフリップフロップ２１乃至２３を有し、フリップフロップ２１乃至２３の状態が遷移する順序回路である。スキャン方式では、フリップフロップ２１と２２を用いたスキャンチェーン９ｉと、スキャンチェーン９ｂとフリップフロップ２３を用いたスキャンチェーン９ｈと、スキャンチェーン９ｇを形成する。半導体集積回路からフリップフロップ２１乃至２３と他の記憶素子を除いた回路は、もはや順序回路ではなく、複数の組合せ回路１０ｃ、１０ｄ、１０ｆにすぎない。
【００１９】
組合せ回路１０ｃはスキャンチェーン９ｉのフリップフロップ２１に接続している。組合せ回路１０ｄはスキャンチェーン９ｉのフリップフロップ２２に接続している。スキャンチェーン９ｉはテストパターンをシフトインする。組合せ回路１０ｆはスキャンチェーン９ｇに接続している。スキャンチェーン９ｇはテストパターンをシフトインする。組合せ回路１０ｆはスキャンチェーン９ｈのフリップフロップ２３とスキャンチェーン９ｂに接続している。スキャンチェーン９ｈは組合せ回路１０ｆのテスト結果をシフトアウトする。
【００２０】
通常、スキャンテストモードにおいては、組合せ回路１０ｆのように入力端子、出力端子ともにスキャンチェーン９ｇ、９ｈに接続している。組合せ回路１０ｆのテスト結果が、スキャンチェーン９ｈに記憶され、スキャンチェーン９ｈから出力データセレクタ１７と入力バッファ１３を経由してスキャンアウト兼出力端子６にスキャンアウトされる。一方、組合せ回路１０ｃと１０ｄは、出力端子がスキャンチェーンに接続されておらず、組合せ回路１０ｃと１０ｄのテスト結果はキャプチャモードの際に論理積ＡＮＤと出力データセレクタ１７に出力される。しかし、出力データセレクタ１７がそのテスト結果を出力せず、論理積ＡＮＤは組合せ回路１０ｃのテスト結果によらずスキャンテストモードにおいて常に０を出力するので、組合せ回路１０ｃと１０ｄのテスト結果から故障の検出はできないことがわかる。
【００２１】
（第１の実施の形態）
図１に示すように、本発明の第１の実施の形態に係る半導体集積回路１は、複数のスキャンチェーン９ｅ、９ｃ、９ｆと、複数の組合せ回路１０ａ、１０ｂ、１０ｅと、スキャンイン兼入出力端子３と、スキャンインセレクタ回路４と、スキャンシフト端子７と、スキャンクロック端子８と、スキャンテストモード信号端子２４と、スキャンイン端子２５と、スキャンアウト端子２６を有している。
【００２２】
スキャンテストモード信号端子２４は、スキャンテストモード信号のオン信号とオフ信号を入力する。半導体集積回路１は、オン信号を入力することによりスキャンテストモードになり、オフ信号を入力することにより通常動作モードになる。
【００２３】
スキャンシフト端子７は、スキャンシフト信号のオン信号とオフ信号を入力する。半導体集積回路１は、オン信号を入力することによりスキャンシフトモードになり、オフ信号を入力することによりキャプチャモードになる。
【００２４】
スキャンクロック端子８は、スキャンクロックを入力する。
【００２５】
スキャンインセレクタ回路４は、スキャンシフト信号がオン信号であるときは、組合せ回路１０ｅのテストパターンをスキャンイン兼入出力端子３から入力する。スキャンインセレクタ回路４は、スキャンシフト信号がオフ信号であるときは、組合せ回路１０ｂのテスト結果をスキャンイン兼入出力端子３へ出力する。スキャンインセレクタ回路４は、スキャンシフト信号がオン信号であるときに、組合せ回路１０ａと１０ｂのテスト結果のスキャンイン兼入出力端子３への伝達を遮断する。スキャンインセレクタ回路４は、論理和ＯＲ、出力バッファ１２と入力バッファ１３を有している。論理和ＯＲの入力端子は、スキャンシフト端子７に接続し、スキャンシフト信号を入力する。論理和ＯＲの出力端子は、出力バッファ１２の開閉制御端子に接続する。論理和ＯＲの出力信号は、反転して出力バッファ１２に入力される。出力バッファ１２の入力端子は組合せ回路１０ｂの出力端に接続する。出力バッファ１２の出力端子はスキャンイン兼入出力端子３に接続する。入力バッファ１３の入力端子はスキャンイン兼入出力端子３に接続する。入力バッファ１３の出力端子はフリップフロップ１６の入力端子ＴＩに接続する。
【００２６】
スキャンチェーン９ｃは、スキャンクロック信号に同期しながら、組合せ回路１０ｅのテストパターンをスキャンシフト入力する。スキャンチェーン９ｃは、フリップフロップ１６とスキャンチェーン９ａを有している。
【００２７】
組合せ回路１０ｅは、スキャンクロック信号をトリガとして、スキャンチェーン９ｃからテストパターンを入力し、キャプチャを行い、テスト結果を出力する。組合せ回路１０ｅはスキャンチェーン９ｃのフリップフロップ１６とスキャンチェーン９ａに接続している。組合せ回路１０ｅはスキャンチェーン９ｆに接続している。
【００２８】
スキャンチェーン９ｅは、スキャンシフト信号がオン信号であるときに、スキャンクロック信号に同期しながら、組合せ回路１０ａと１０ｂのテストパターンをスキャンシフト入力する。スキャンチェーン９ｅは、フリップフロップ１４と１５とスキャンチェーン９ｄを有している。
【００２９】
組合せ回路１０ａと１０ｂは、スキャンシフト信号がオフ信号であるときに、スキャンクロック信号をトリガとして、スキャンチェーン９ｅからテストパターンを入力し、キャプチャを行い、テスト結果をスキャンインセレクタ回路４へ出力する。組合せ回路１０ａはスキャンチェーン９ｅのフリップフロップ１４に接続している。組合せ回路１０ｂはスキャンチェーン９ｅのフリップフロップ１５に接続している。
【００３０】
スキャンチェーン９ｆは、スキャンクロック信号に同期しながら、組合せ回路１０ｅのテスト結果をシフトアウトする。
【００３１】
通常、スキャンテストモードにおいては、組合せ回路１０ｅのように入力端子、出力端子ともにスキャンチェーン９ｃ、９ｆに接続している。スキャンテストモードでさらにスキャンシフトモードにおいて、組合せ回路１０ｅのテストパターンが、スキャンイン兼入出力端子３から入力バッファ１３を経由してスキャンチェーン９ｃにスキャンインされる。一方、スキャンテストモードでさらにキャプチャモードにおいて、組合せ回路１０ａと１０ｂは、出力端子がスキャンチェーンに接続されておらず、組合せ回路１０ａと１０ｂのテスト結果はスキャンインセレクタ回路４の論理和ＯＲと出力バッファ１２に出力される。論理和ＯＲがスキャンシフト信号ではなく組合せ回路１０ａのテスト結果によって制御されているために、出力バッファ１２も組合せ回路１０ａのテスト結果によって制御されている。出力バッファ１２は、組合せ回路１０ａのテスト結果によっては、組合せ回路１０ｂのテスト結果を出力できる。
【００３２】
このように、スキャンシフトモードでは、入力バッファ１３から組合せ回路１０ｅのテストパターンを入力し、キャプチャモードでは、出力バッファ１２から組合せ回路１０ａのテスト結果を反映した組合せ回路１０ｂのテスト結果を出力する。このように、組合せ回路１０ａと１０ｂの故障検出が可能になり、半導体集積回路１の故障検出率を上げることができる。
【００３３】
図２に示すように、本発明の第１の実施の形態に係る半導体集積回路１の故障検出方法は、まず、ステップＳ１で、スキャンテストモードのはじまりとして、オペレータや外部装置が、半導体集積回路１の図１のスキャンテストモード信号端子２４へ、図３に示すようなスキャンテストモード信号のオン信号を入力する。この入力により、半導体集積回路１内に、スキャンチェーン９ｃ、９ｄ、９ｆが編成される。そして、組合せ回路１０ａ、１０ｂ、１０ｅが編成される。
【００３４】
ステップＳ２で、スキャンシフトのはじまりとして、オペレータや外部装置が、スキャンシフト端子７へ、図５に示すようなスキャンシフト信号のオン信号を入力する。具体的には図１に示すようにスキャンシフト信号のオン信号として１をスキャンシフト端子７に設定する。
【００３５】
ステップＳ３で、スキャンシフト信号のオン信号により、スキャンインセレクタ回路４が、スキャンイン兼入出力端子３との接続を組合せ回路１０ｂからスキャンチェーン９ｃに切り換える。スキャンインセレクタ回路４は、スキャンイン兼入出力端子３から入力されるテストパターンをスキャンチェーン９ｃに伝達可能にする。スキャンシフト信号のオン信号により、スキャンインセレクタ回路４が、スキャンチェーン９ｃとスキャンイン兼入出力端子３を導通させる。スキャンインセレクタ回路４が、組合せ回路１０ｂとスキャンイン兼入出力端子３の接続を遮断する。論理和ＯＲは、スキャン入力（ＳＣＡＮ  ＩＮ）状態と通常動作状態をとりうる。図１に示すように、スキャンシフト信号がオン信号１であるので、論理和ＯＲがスキャン入力状態になる。スキャン入力状態により、出力バッファ１２が出力禁止状態になる。スキャンイン兼入出力端子３は入力状態になる。
【００３６】
ステップＳ４で、スキャンチェーン９ｃ、９ｅが、図３に示すような時刻ｔ１乃至ｔ３において、スキャンクロック信号をスキャンクロック端子８から入力する。スキャンクロック信号に同期しながら、時刻ｔ１乃至ｔ３において、スキャンチェーン９ｃが、テストパターンをスキャンイン兼入出力端子３からスキャンインセレクタ回路４を経由してスキャンシフト入力する。スキャンクロック信号に同期しながら、時刻ｔ１乃至ｔ３において、スキャンチェーン９ｅが、テストパターンをスキャンイン端子２５からスキャンシフト入力する。
【００３７】
ステップＳ５で、テストパターンのスキャンシフト入力後に、スキャンキャプチャのはじまりとして、オペレータや外部装置が、スキャンシフト端子７へ、図３に示すようなスキャンシフト信号のオフ信号を入力する。具体的には図４に示すように、スキャンシフト信号のオフ信号として０をスキャンシフト端子７に設定する。
【００３８】
ステップＳ６で、スキャンシフト信号のオフ信号０により、スキャンインセレクタ回路４が、スキャンイン兼入出力端子３との接続をスキャンチェーン９ｃから組合せ回路１０ｂに切り換える。スキャンインセレクタ回路４が、組合せ回路１０ｂのテスト結果をスキャンイン兼入出力端子３に伝達可能にする。スキャンインセレクタ回路４が、組合せ回路１０ｂとスキャンイン兼入出力端子３を導通させる。スキャンインセレクタ回路４が、スキャンチェーン９ｃとスキャンイン兼入出力端子３の接続を遮断する。スキャンシフト信号のオフ信号０により、論理和ＯＲが通常動作状態になる。通常動作状態では、論理和ＯＲは、組合せ回路１０ａからの入力信号に応じて出力信号を出力する。論理和ＯＲの出力信号に応じて、出力バッファ１２が出力状態になる。出力バッファ１２の出力状態に対応してスキャンイン兼入出力端子３が出力状態になる。
【００３９】
ステップＳ７で、スキャンチェーン９ｅ、９ｃが、図３の時刻ｔ４におけるスキャンクロック信号をスキャンクロック端子８から入力する。スキャンクロック信号をトリガとして、スキャンチェーン９ｃ、９ｅが、テストパターンを組合せ回路１０ａ、１０ｂ、１０ｅに出力する。
【００４０】
ステップＳ８で、組合せ回路１０ａ、１０ｂ、１０ｅにおいて、スキャンキャプチャが行われる。組合せ回路１０ａはテスト結果を論理和ＯＲに出力する。組合せ回路１０ｂはテスト結果を出力バッファ１２に出力する。組合せ回路１０ｅはテスト結果をスキャンチェーン９ｆに出力する。
【００４１】
ステップＳ９で、組合せ回路１０ｂからのテスト結果を組合せ回路１０ａからのテスト結果に応じてスキャンインセレクタ回路４を経由してスキャンイン兼入出力端子３から外部装置に出力する。スキャンシフト信号がオフ状態になっているので、論理和回路ＯＲの出力は組合せ回路１０ａから出力されたテスト結果のみで制御できる。出力バッファ１２はスキャンシフト信号によって制御されない。すなわち、組合せ回路１０ａから出力されたテスト結果で、出力バッファ１２を制御できる。そして、組合せ回路１０ｂから出力されたテスト結果を出力バッファ１２からスキャンイン兼入出力端子に出力することができる。組合せ回路１０ｅから出力されたテスト結果は、スキャンチェーン９ｆに出力される。テスト結果は、スキャンチェーン９ｆに記憶される。スキャンチェーン９ｆは、スキャンシフト信号が再びオン信号になった際に、テスト結果をスキャンアウト端子２６にスキャン出力する。入出力制御フリップフロップ１４から組合せ回路１０ａを経て論理和ＯＲまでの通常入出力制御経路の故障検出ができる。また、出力データフリップフロップ１５から組合せ回路１０ｂを経て出力バッファ１２までの通常出力データ経路の故障検出ができる。
【００４２】
ステップＳ１０で、オペレータ又は外部装置が、すべてのテストパターンをテストしたか判断する。テストすべきテストパターンが残っている場合は、ステップＳ２に進む。すべてのテストパターンをテストした場合は、半導体集積回路１の故障検出方法をストップする。
【００４３】
このように、スキャンシフト信号によりスキャンシフト時はスキャンイン経路を、キャプチャ時は通常動作経路を有効にしているので、スキャンテストにおいて、スキャンイン兼入出力端子３に接続する組合せ回路１０ａと１０ｂの故障検出ができる。そして、組合せ回路１０ａと１０ｂのテスト結果をシフトアウトするスキャンチェーンが必要ないので、スキャンチェーンを構成するフリップフロップを削減することができる。
【００４４】
（第２の実施の形態）
図５に示すように、本発明の第２の実施の形態に係る半導体集積回路１は、複数のスキャンチェーン９ｇ、９ｈ、９ｉと、複数の組合せ回路１０ｃ、１０ｄ、１０ｆと、スキャンアウト兼入出力端子６と、スキャンアウトセレクタ回路５と、スキャンシフト端子７と、スキャンクロック端子８と、スキャンテストモード信号端子２４と、スキャンイン端子２７を有している。
【００４５】
スキャンアウトセレクタ回路５は、スキャンシフト信号がオン信号１であるときは、組合せ回路１０ｆのテスト結果をスキャンアウト兼入出力端子６へスキャンシフト出力する。スキャンアウトセレクタ回路５は、スキャンシフト信号がオフ信号０であるときは、組合せ回路１０ｃのテスト結果に応じて、組合せ回路１０ｄのテスト結果をスキャンアウト兼入出力端子６へ出力することができる。スキャンアウトセレクタ回路５が、スキャンシフト信号がオン信号１であるときに、組合せ回路１０ｄのテスト結果の組合せ回路１０ｄからスキャンアウト兼入出力端子６への伝達を遮断する。
【００４６】
スキャンアウトセレクタ回路５は、論理積ＡＮＤ、出力データセレクタ１７、出力バッファ１８と入力バッファ１９を有している。論理積ＡＮＤの入力端子は、スキャンシフト端子７に接続し、スキャンシフト信号の反転信号を入力する。また、論理積ＡＮＤの入力端子は組合せ回路１０ｃの出力端に接続する。論理積ＡＮＤの出力端子は、出力バッファ１８の開閉制御端子に接続する。論理積ＡＮＤの出力信号は、反転して出力バッファ１８に入力する。出力バッファ１８の入力端子は出力データセレクタ１７の出力端子に接続する。出力バッファ１８の出力端子はスキャンアウト兼入出力端子６に接続する。入力バッファ１９の入力端子はスキャンアウト兼入出力端子６に接続する。出力データセレクタ１７の入力端子は、フリップフロップ２３の出力端子ＳＯと組合せ回路１０ｄの出力端に接続する。出力データセレクタ１７の制御端子はスキャンシフト端子７に接続する。スキャン信号がオン信号１のとき、出力データセレクタ１７は、フリップフロップ２３の出力信号を選択して出力する。スキャン信号がオフ信号０のとき、出力データセレクタ１７は、組合せ回路１０ｄの出力信号を選択して出力する。
【００４７】
スキャンチェーン９ｉは、スキャンシフト信号がオン信号１であるときに、組合せ回路１０ｃ、１０ｄのテストパターンをスキャンイン端子２７からスキャンチェーン９ｇを介してスキャンシフト入力する。スキャンチェーン９ｇは、スキャンシフト信号がオン信号１であるときに、組合せ回路１０ｆのテストパターンをスキャンイン端子２７からスキャンシフト入力する。
【００４８】
組合せ回路１０ｃは、スキャンシフト信号がオフ信号０であるときに、スキャンチェーン９ｉの入出力制御フリップフロップ２１からテストパターンを入力し、キャプチャを行い、テスト結果をスキャンアウトセレクタ回路５の論理積ＡＮＤへ出力する。組合せ回路１０ｃはスキャンチェーン９ｉのフリップフロップ２１に接続している。
【００４９】
組合せ回路１０ｄは、スキャンシフト信号がオフ信号０であるときに、スキャンチェーン９ｉの出力データフリップフロップ２２からテストパターンを入力し、キャプチャを行い、テスト結果をスキャンアウトセレクタ回路５の出力データセレクタ１７へ出力する。組合せ回路１０ｄはスキャンチェーン９ｉのフリップフロップ２２に接続している。
【００５０】
組合せ回路１０ｆは、スキャンシフト信号がオフ信号０であるときに、スキャンチェーン９ｇからテストパターンを入力し、キャプチャを行い、テスト結果をスキャンチェーン９ｈのスキャンチェーン９ｂとフリップフロップ２３に出力する。組合せ回路１０ｆはスキャンチェーン９ｇに接続している。組合せ回路１０ｆはスキャンチェーン９ｈのフリップフロップ２３とスキャンチェーン９ｂに接続している。
【００５１】
スキャンチェーン９ｈは、スキャンシフト信号がオフ信号０であるときに、組合せ回路１０ｆからテスト結果を入力し、組合せ回路１０ｆのテスト結果をスキャンアウトセレクタ回路５へスキャンシフト出力する。
【００５２】
このように、出力データセレクタ１７と出力バッファ１８がスキャンシフト信号によって制御されているために、スキャンシフトの際には、組合せ回路１０ｆのテスト結果を出力し、キャプチャの際には、組合せ回路１０ｃのテスト結果に応じて組合せ回路１０ｄのテスト結果を出力することができる。このことにより、組合せ回路１０ｃと１０ｄの故障検出が可能になり、半導体集積回路１の故障検出率を上げることができる。
【００５３】
図６に示すように、本発明の第２の実施の形態に係る半導体集積回路１の故障検出方法は、まず、ステップＳ１１で、スキャンテストモードのはじまりとして、オペレータや外部装置が、半導体集積回路１の図５のスキャンテストモード信号端子２４へ、図３に示すようなスキャンテストモード信号のオン信号を入力する。この入力により、半導体集積回路１内に、スキャンチェーン９ｇ、９ｈ、９ｉが編成される。そして、組合せ回路１０ｃ、１０ｄ、１０ｆが編成される。
【００５４】
ステップＳ１２で、スキャンシフトのはじまりとして、オペレータや外部装置が、スキャンシフト端子７へ、図５に示すようなスキャンシフト信号のオン信号を入力する。具体的には図５に示すようにスキャンシフト信号として１をスキャンシフト端子７に設定する。
【００５５】
ステップＳ１３で、スキャンシフト信号のオン信号１により、スキャンアウトセレクタ回路５が、スキャンアウト兼入出力端子６との接続を組合せ回路１０ｄからスキャンチェーン９ｈに切り換える。スキャンアウトセレクタ回路５は、スキャンチェーン９ｈから出力される組合せ回路１０ｆのテスト結果をスキャンアウト兼入出力端子６に伝達可能にする。スキャンシフト信号のオン信号１により、スキャンアウトセレクタ回路５が、スキャンチェーン９ｈとスキャンアウト兼入出力端子６を導通させる。スキャンアウトセレクタ回路５が、組合せ回路１０ｄとスキャンアウト兼入出力端子６の接続を遮断する。論理積ＡＮＤと出力データセレクタ１７は、スキャン出力（ＳＣＡＮ  ＯＵＴ）状態と通常動作状態をとりうる。図５に示すように、スキャンシフト信号がオン信号１であるので、論理積ＡＮＤと出力データセレクタ１７がスキャン出力状態になる。スキャンシフト信号のオン信号１により、出力データセレクタ１７がスキャンチェーン９ｈのテスト結果を出力バッファ１８に伝達させる。論理積ＡＮＤは、出力バッファ１８に出力データセレクタ１７が出力したテスト結果をスキャンアウト兼入出力端子６へ伝達させる。スキャン出力状態により、出力データセレクタ１７がスキャンチェーン９ｈを選択した状態になり、出力バッファ１８が出力状態になる。スキャンアウト兼入出力端子６は出力状態になる。
【００５６】
ステップＳ１４で、スキャンチェーン９ｇ、９ｈ、９ｉが、図５に示すような時刻ｔ１乃至ｔ３において、スキャンクロック信号をスキャンクロック端子８から入力する。スキャンクロック信号に同期しながら、時刻ｔ１乃至ｔ３において、スキャンチェーン９ｇ、９ｉが、組合せ回路１０ｆ、１０ｃ、１０ｄのテストパターンをスキャンイン端子７からスキャンシフト入力する。スキャンクロック信号に同期しながら、時刻ｔ１乃至ｔ３において、スキャンチェーン９ｈが、組合せ回路１０ｆの前回のテストパターンによるテスト結果をスキャンアウトセレクタ回路５を経由してスキャンアウト兼入出力端子６へスキャンシフト出力する。スキャンテストが初回であれば、組合せ回路１０ｆでテスト結果が生成されておらず、テスト結果はスキャンチェーン９ｈに記憶されていないので、テスト結果ではない信号がシフト出力される。
【００５７】
ステップＳ１５で、テストパターンのスキャンシフト入力後で、テスト結果のスキャンシフト出力後に、スキャンキャプチャのはじまりとして、オペレータや外部装置が、スキャンシフト端子７へ、図５に示すようなスキャンシフト信号のオフ信号０を入力する。具体的には図７に示すように、スキャンシフト信号としてオフ信号０をスキャンシフト端子７に設定する。
【００５８】
ステップＳ１６で、スキャンシフト信号のオフ信号０により、スキャンアウトセレクタ回路５が、スキャンアウト兼入出力端子６との接続をスキャンチェーン９ｈから組合せ回路１０ｄに切り換える。スキャンアウトセレクタ回路５が、組合せ回路１０ｄのテスト結果をスキャンアウト兼入出力端子６に伝達可能にする。スキャンアウトセレクタ回路５が、組合せ回路１０ｄとスキャンアウト兼入出力端子６を導通させる。スキャンアウトセレクタ回路５が、スキャンチェーン９ｈとスキャンアウト兼入出力端子６の接続を遮断する。スキャンシフト信号のオフ信号０により、論理積ＡＮＤと出力データセレクタ１７が通常動作状態になる。通常動作状態により、出力データセレクタ１７が組合せ回路１０ｄを選択した状態になり、出力バッファ１８が、組合せ回路１０ｃのテスト結果にのみ関係して出力状態と出力禁止状態になる。スキャンアウト兼入出力端子６から組合せ回路１０ｃと１０ｄのテスト結果に応じた出力信号を得ることができる。
【００５９】
ステップＳ１７で、スキャンチェーン９ｇ、９ｉが、図３の時刻ｔ４におけるスキャンクロック信号をスキャンクロック端子８から入力する。スキャンクロック信号をトリガとして、スキャンチェーン９ｇ、９ｉが、テストパターンを組合せ回路１０ｆ、１０ｃ、１０ｄに出力する。フリップフロップ２１、２２がテストパターンを組合せ回路１０ｃ、１０ｄに出力する。
【００６０】
ステップＳ１８で、組合せ回路１０ｆにおいて、スキャンキャプチャが行われ、テスト結果をスキャンチェーン９ｈのスキャンチェーン９ｂとフリップフロップ２３に出力する。組合せ回路１０ｃにおいて、スキャンキャプチャが行われ、テスト結果をスキャンアウトセレクタ回路５の論理積ＡＮＤに出力する。組合せ回路１０ｄにおいて、スキャンキャプチャが行われ、テスト結果をスキャンアウトセレクタ回路５の出力データセレクタ１７に出力する。
【００６１】
ステップＳ１９で、組合せ回路１０ｄからのテスト結果をスキャンアウトセレクタ回路５を経由してスキャンアウト兼入出力端子６から外部装置に出力する。通常動作状態により、出力データセレクタ１７が、組合せ回路１０ｄのテスト結果信号を出力バッファ１８に伝達する。スキャンシフト信号がオフ信号０になっているので、論理積回路ＡＮＤの出力は組合せ回路１０ｃから出力されたテスト結果のみで制御できる。出力バッファ１８は、スキャンシフト信号によって制御されない。すなわち、組合せ回路１０ｃから出力されたテスト結果で、出力バッファ１８を制御できる。出力バッファ１８が、出力データセレクタ１７が出力したテスト結果信号を、組合せ回路１０ｃのテスト結果に応じてスキャンアウト兼入出力端子６に伝達したり、伝達しなかったりする。このことにより、入出力制御フリップフロップ２１から組合せ回路１０ｃを経て論理積ＡＮＤまでの通常入出力制御経路の故障検出ができる。また、出力データフリップフロップ２２から組合せ回路１０ｄと出力データセレクタ１７を経て出力バッファ１８までの通常出力データ経路の故障検出ができる。これは、組合せ回路１０ｃ、１０ｄのテスト結果の期待値からスキャンアウト兼入出力端子６の出力信号の期待値が算出できるからである。一方、組合せ回路１０ｆから出力されたテスト結果は、スキャンチェーン９ｈのスキャンチェーン９ｂとフリップフロップ２３に出力される。テスト結果は、スキャンチェーン９ｈのスキャンチェーン９ｂとフリップフロップ２３に記憶される。次回、スキャンシフト信号がオン信号０になったときに、ステップＳ１４において、テスト結果は、スキャンチェーン９ｈからスキャン出力される。
【００６２】
ステップＳ２０で、オペレータ又は外部装置が、すべてのテストパターンをテストしたか判断する。テストすべきテストパターンが残っている場合は、ステップＳ１２に進む。すべてのテストパターンをテストした場合は、半導体集積回路１の故障検出方法をストップする。
【００６３】
このように、スキャンシフト信号によりスキャンシフト時はスキャンアウト経路を有効にし、キャプチャ時は通常動作経路を有効にしているので、スキャンテストにおいて、スキャンアウト兼入出力端子６に接続する組合せ回路１０ｃと１０ｄの故障検出ができる。
【００６４】
また、組合せ回路１０ｃと１０ｄのテスト結果を合成したテスト結果がスキャンアウト兼入出力端子６から出力されていると考えることができる。よって、組合せ回路１０ｃと１０ｄに故障が存在するか判定することができる。
【００６５】
さらに、組合せ回路１０ｃと１０ｄのテスト結果をシフトアウトするスキャンチェーンが必要ないので、スキャンチェーンを構成するフリップフロップを削減することができる。
【図面の簡単な説明】
【００６６】
【図１】第１の実施の形態に係る半導体集積回路の回路図（その１）である。
【図２】第１の実施の形態に係る半導体集積回路の故障検出方法のフローチャートである。
【図３】第１の実施の形態に係る半導体集積回路の故障検出方法のタイミングチャートである。
【図４】第１の実施の形態に係る半導体集積回路の回路図（その２）である。
【図５】第２の実施の形態に係る半導体集積回路の回路図（その１）である。
【図６】第２の実施の形態に係る半導体集積回路の故障検出方法のフローチャートである。
【図７】第２の実施の形態に係る半導体集積回路の回路図（その２）である。
【図８】比較例１の半導体集積回路の回路図である。
【図９】比較例２の半導体集積回路の回路図である。
【符号の説明】
【００６７】
１    半導体集積回路
３    スキャンイン兼入出力端子
４    スキャンインセレクタ回路
５    スキャンアウトセレクタ回路
６    スキャンアウト兼入出力端子
７    スキャンシフト端子
８    スキャンクロック端子
９ａ乃至９ｉ    スキャンチェーン
１０ａ乃至１０ｆ    組合せ回路
１２    出力バッファ
１３    入力バッファ
１４    入出力制御フリップフロップ
１５    出力データフリップフロップ
１６    フリップフロップ
１７    出力データセレクタ
１８    出力バッファ
１９    入力バッファ
２１    入出力制御フリップフロップ
２２    出力データフリップフロップ
２３    フリップフロップ
２４    スキャンテストモード信号端子
【図１】
2006041264.tif 000003
【図２】
2006041264.tif 000004
【図３】
2006041264.tif 000005
【図４】
2006041264.tif 000006
【図５】
2006041264.tif 000007
【図６】
2006041264.tif 000008
【図７】
2006041264.tif 000009
【図８】
2006041264.tif 000010
【図９】
2006041264.tif 000011