(57)【特許請求の範囲】
【請求項１】
第１論理回路と、
前記第１論理回路から出力される第１出力データを論理処理して第２出力データを出力する第２論理回路と、
第１保持データを前記第１論理回路に出力する前段スキャンフリップフロップ、及び、前記第２出力データが入力される後段スキャンフリップフロップを含む複数のスキャンフリップフロップが多段に接続されたスキャンチェーンと、
前記第１論理回路と前記第２論理回路との間に設けられ、前記第１出力データと前記前段スキャンフリップフロップが保持する前記第１保持データとに基づいて、第２保持データを保持するとともに出力する中間スキャンフリップフロップと、
前記中間スキャンフリップフロップから出力される前記第２保持データが入力され、第３保持データを保持するとともに出力する制御スキャンフリップフロップと、
前記第１出力データと、前記中間スキャンフリップフロップから出力される第２保持データとのいずれかを前記制御スキャンフリップフロップから出力される前記第３保持データに応じて選択し、該選択したデータを前記第２論理回路に出力する選択回路と、
を備えることを特徴とする半導体集積回路。
【請求項２】
前記制御スキャンフリップフロップは、
スキャンイン端子、データ入力端子、リセット端子と、出力端子を有し、
前記中間スキャンフリップフロップが保持する前記第２保持データが前記スキャンイン端子に入力され、
前記出力端子及びデータ入力端子が接続され、前記出力端子から前記第３保持データを前記選択回路に出力することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記スキャンチェーンに含まれる前記複数のスキャンフリップフロップと前記中間スキャンフリップフロップと前記制御スキャンフリップフロップは、第１のクロック信号に同期して動作することを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
請求項１〜３のいずれか１つに記載の半導体集積回路を備えたことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
半導体集積回路及び電子機器に関するものである。
【背景技術】
【０００２】
半導体集積回路の製造後、半導体集積回路は故障検出を行う必要がある。このため、半導体集積回路は、通常動作を行う通常モードと故障検出を行うテストモードを有している。従来、半導体集積回路には、テストの容易性を高め、テストパターンの作成期間やテストパターンサイズ、テスト時間、故障検出率を最適化するためテスト回路が設けられている。このような設計手法は、テスト容易化設計（Ｄｅｓｉｇｎ  Ｆｏｒ  Ｔｅｓｔａｂｉｌｉｔｙ：ＤＦＴ）と呼ばれている。テスト容易化設計の一手法として、「スキャン設計」が知られている（例えば、特許文献１を参照）。
【０００３】
スキャン設計は、設計回路内のフリップフロップの全て又は一部が、スキャンフリップフロップに置き換えられる。テストモードにおいて、それらスキャンフリップフロップをシリアルに接続することでシフトレジスタを形成してスキャンチェーンを構成する。そのスキャンチェーンを通してテストパターンを入力及び出力することにより、スキャンテストが行なわれる。なお、テストパターンは、ＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）ツールによって自動的に生成される。
【０００４】
ところで、図３に示すように、半導体集積回路３０において、スキャンフリップフロップとしての第１及び第２フリップフロップ回路（以下、ＦＦ回路という）３１，３２の間に接続される第１及び第２論理回路３３，３４の中の論理段数が増加すると、後段の第２論理回路３４の故障検出率が低下してしまう。
【０００５】
つまり、第１及び第２論理回路３３，３４の中の論理段数が増加すると、第１及び第２論理回路３３，３４の動作を検証するテストパターンも増加する。これにより、第１及び第２論理回路３３，３４の全ての故障を検出するためのテストパターンをＡＴＰＧツールで生成することが困難になってしまう。
【０００６】
そこで、従来、図４に示すように、半導体集積回路３０ａは、第１論理回路３３と第２論理回路３４の間に第３ＦＦ回路３５を設け、第１及び第２論理回路３３，３４の故障検出率を高くしていた（例えば、特許文献２、特許文献３を参照）。
【０００７】
すなわち、半導体集積回路３０ａは、第１論理回路３３と第２論理回路３４の間に第３ＦＦ回路３５を設けることで、第１及び第２論理回路３３，３４の故障検出を別のテストパターンにて行う。従って、第１及び第２論理回路３３，３４の全ての故障を検出するためのテストパターンが減少し、そのテストパターンをＡＴＰＧツールで生成可能になる。
【０００８】
この場合、半導体集積回路３０ａは、１段の第３ＦＦ回路３５を設けた分、通常動作時において、信号を入力してから出力されるまでの時間であるレイテンシーが１サイクル遅くなってしまう。このため、半導体集積回路３０ａは、選択回路３６を設けていた。選択回路３６は、モード選択信号Ｓｓに応じて、経路Ａ又は経路Ｂのいずれかを通過したデータを選択して第２論理回路３４に出力する。
【０００９】
具体的には、選択回路３６は、モード選択信号Ｓｓが通常動作モードの信号の場合には、経路Ａを通過したデータを第２論理回路３４に出力し、一方、選択回路３６は、モード選択信号Ｓｓがテストモードの信号の場合には、経路Ｂを通過したデータを第２論理回路３４に出力する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平６−１８６２９４公報
【特許文献２】特開平７−１１３８４７公報
【特許文献３】特開平１０−２６７９９４公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記の場合、半導体集積回路３０ａは、テストモードにおいて、データが経路Ａを通過しないため、経路Ａにて発生する故障を検出することができない。また、半導体集積回路３０ａは、選択回路３６にモード選択信号Ｓｓを入力するための外部端子が必要になってしまう。
【００１２】
この半導体集積回路及び電子機器は、外部端子を削減しつつ、半導体集積回路の全経路の故障を検出することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一側面によれば、第１論理回路と、前記第１論理回路から出力される第１出力データを論理処理して第２出力データを出力する第２論理回路と、第１保持データを前記第１論理回路に出力する前段スキャンフリップフロップ、及び、前記第２出力データが入力される後段スキャンフリップフロップを含む複数のスキャンフリップフロップが多段に接続されたスキャンチェーンと、前記第１論理回路と前記第２論理回路との間に設けられ、前記第１出力データと前記前段スキャンフリップフロップが保持する前記第１保持データとに基づいて、第２保持データを保持するとともに出力する中間スキャンフリップフロップと、前記中間スキャンフリップフロップから出力される前記第２保持データが入力され、第３保持データを保持するとともに出力する制御スキャンフリップフロップと、前記第１出力データと、前記中間スキャンフリップフロップから出力される第２保持データとのいずれかを前記制御スキャンフリップフロップから出力される前記第３保持データに応じて選択し、該選択したデータを前記第２論理回路に出力する選択回路と、を備える。
【発明の効果】
【００１４】
本発明の一側面によれば、半導体集積回路及び電子機器は、外部端子を削減しつつ、半導体集積回路の全経路の故障を検出することができる。
【図面の簡単な説明】
【００１５】
【図１】半導体集積回路のブロック図である。
【図２】（ａ），（ｂ）は半導体集積回路の動作説明図である。
【図３】従来の半導体集積回路のブロック図である。
【図４】従来の半導体集積回路のブロック図である。
【発明を実施するための形態】
【００１６】
以下、実施形態を図１及び図２に従って説明する。
図１に示すように、半導体集積回路１０は、スキャンフリップフロップとしての第１〜第４ＦＦ回路１１〜１４、第１及び第２論理回路２１，２２、選択回路２３を有している。
【００１７】
半導体集積回路１０は、故障検出を行うテストモードにおいて、テスタ装置（図示せず）からシリアルデータであるテストパターンを入力する（スキャンイン）。そして、半導体集積回路１０は、入力されたテストパターンを論理処理してシリアルデータである出力データＤｏをテスタ装置（図示せず）に出力する（スキャンアウト）。
【００１８】
テスタ装置は、半導体集積回路１０から入力されたシリアルデータである出力データＤｏと、テストパターンに対する予め設定された期待値とを比較して故障検出を行う。具体的には、テスタ装置は、入力した出力データＤｏと、テストパターンに対する予め設定された期待値が一致すると、半導体集積回路１０に故障がないと判断する。反対に、テスタ装置は、入力した出力データＤｏと、テストパターンに対する予め設定された期待値が一致しないと、半導体集積回路１０に故障があると判断する。
【００１９】
第１ＦＦ回路１１は、スキャンイン端子ＳＩ、データ入力端子Ｄを有している。そして、第１ＦＦ回路１１のスキャンイン端子ＳＩは、テスタ装置を使ったテストモードの時には、テスタ装置からシリアルデータＤｓが入力されるようになっている。また、第１ＦＦ回路１１のデータ入力端子Ｄは、テスタ装置を使ったテストモードの時には、テスタ装置から通常データＤｎが入力されるようになっている。
【００２０】
また、第１ＦＦ回路は、選択入力端子Ｓ、クロック端子を有している。そして、第１ＦＦ回路１１の選択入力端子Ｓは、テスタ装置を使ったテストモードの時には、テスタ装置から入力選択信号Ｓｍが入力されるようになっている。第１ＦＦ回路１１のクロック端子は、テスタ装置を使ったテストモードの時には、テスタ装置からクロック信号ＣＬＫが入力されるようになっている。
【００２１】
ここで、第１ＦＦ回路１１は、その選択入力端子ＳにＬレベルの入力選択信号Ｓｍが入力されると、データ入力端子Ｄが入力する通常データＤｎを保持する。反対に、第１ＦＦ回路１１は、その選択入力端子ＳにＨレベルの入力選択信号Ｓｍが入力されると、スキャンイン端子ＳＩが入力するシリアルデータＤｓを保持する。
【００２２】
従って、第２〜第４ＦＦ回路１２〜１４も同様に、その選択入力端子ＳにＬレベルの入力選択信号Ｓｍが入力されると、データ入力端子Ｄが入力するデータを保持する。反対に、その選択入力端子ＳにＨレベルの入力選択信号Ｓｍが入力されると、スキャンイン端子ＳＩが入力するデータを保持するようになっている。
【００２３】
そして、第１ＦＦ回路１１は、入力選択信号Ｓｍに応じて、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、シリアルデータＤｓ又は通常データＤｎを第１保持データＤｍ１として保持するとともに、その第１保持データＤｍ１を出力端子Ｑから第１論理回路２１及び第２ＦＦ回路１２のスキャンイン端子ＳＩに出力する。
【００２４】
具体的には、第１ＦＦ回路１１は、Ｌレベルの入力選択信号Ｓｍを入力する場合、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、通常データＤｎを第１保持データＤｍ１として保持するとともに出力する。反対に、第１ＦＦ回路１１は、Ｈレベルの入力選択信号Ｓｍを入力する場合、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、シリアルデータＤｓを第１保持データＤｍ１として保持するとともに出力する。
【００２５】
なお、第２〜第４ＦＦ回路１２〜１４も同様に、その選択入力端子ＳにＬレベルの入力選択信号Ｓｍが入力されると、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、データ入力端子Ｄが入力するデータを保持するとともに出力端子Ｑから出力するようになっている。また、第２〜第４ＦＦ回路１２〜１４は、その選択入力端子ＳにＨレベルの入力選択信号Ｓｍが入力されると、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、スキャンイン端子ＳＩが入力するデータを保持するとともに出力端子Ｑから出力するようになっている。
【００２６】
第１論理回路２１は、第１ＦＦ回路１１から第１保持データＤｍ１が入力される。第１論理回路２１は、入力された第１保持データＤｍ１を論理処理して第１処理データＤｐ１として第２ＦＦ回路１２のデータ入力端子Ｄに出力するとともに、経路Ａを介して選択回路２３に出力する。
【００２７】
第２ＦＦ回路１２は、第１ＦＦ回路１１と同様なＦＦ回路であって、スキャンイン端子ＳＩ、データ入力端子Ｄ、選択入力端子Ｓ、クロック端子、出力端子Ｑを有している。
第２ＦＦ回路１２は、そのデータ入力端子Ｄに第１論理回路２１からの第１処理データＤｐ１が入力される。また、第２ＦＦ回路１２は、そのスキャンイン端子ＳＩに第１ＦＦ回路１１から第１保持データＤｍ１が入力される。
【００２８】
さらに、第２ＦＦ回路１２は、その選択入力端子Ｓにテスタ装置から入力選択信号Ｓｍが入力され、そのクロック端子にテスタ装置からクロック信号ＣＬＫが入力される。
そして、第２ＦＦ回路１２は、入力選択信号Ｓｍに応じて、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、第１保持データＤｍ１又は第１処理データＤｐ１を第２保持データＤｍ２として保持し、その第２保持データＤｍ２を出力端子Ｑから第３ＦＦ回路１３のスキャンイン端子ＳＩに出力するとともに、経路Ｂを介して選択回路２３に出力する。
【００２９】
具体的には、第２ＦＦ回路１２は、Ｌレベルの入力選択信号Ｓｍを入力する場合、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、第１処理データＤｐ１を第２保持データＤｍ２として保持するとともに出力する。反対に、第２ＦＦ回路１２は、Ｈレベルの入力選択信号Ｓｍを入力する場合、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、第１保持データＤｍ１を第２保持データＤｍ２として保持するとともに出力する。
【００３０】
第３ＦＦ回路１３は、第１ＦＦ回路１１と同様なＦＦ回路であって、スキャンイン端子ＳＩ、データ入力端子Ｄ、選択入力端子Ｓ、クロック端子、リセット端子Ｒ、出力端子Ｑを有している。
【００３１】
第３ＦＦ回路１３は、そのスキャンイン端子ＳＩに第２ＦＦ回路１２から第２保持データＤｍ２が入力されている。また、第３ＦＦ回路１３は、そのデータ入力端子Ｄに自身の出力端子Ｑが互いに接続されている。第３ＦＦ回路１３は、その選択入力端子Ｓにテスタ装置から入力選択信号Ｓｍが入力され、そのクロック端子にテスタ装置からクロック信号ＣＬＫが入力される。
【００３２】
そして、第３ＦＦ回路１３は、入力選択信号Ｓｍに応じて、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、第２ＦＦ回路１２からの第２保持データＤｍ２、又は、自身の出力端子Ｑから出力される第３保持データＤｍ３を第３保持データＤｍ３として保持するとともに出力する。ただし、第３ＦＦ回路１３は、リセット端子ＲにＬレベルのリセット信号Ｒｓが入力される場合、出力端子Ｑから出力される第３保持データＤｍ３はＬレベルに固定される。
【００３３】
具体的には、第３ＦＦ回路１３は、Ｌレベルの入力選択信号Ｓｍを入力する場合、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、自身の出力端子Ｑから出力される第３保持データＤｍ３を第３保持データＤｍ３として保持するとともに出力する。つまり、第３ＦＦ回路１３は、Ｌレベルの入力選択信号Ｓｍを入力するとき、そのとき保持している第３保持データＤｍ３の保持を維持する。反対に、第３ＦＦ回路１３は、Ｈレベルの入力選択信号Ｓｍを入力する場合、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、第２保持データＤｍ２を第３保持データＤｍ３として保持するとともに出力する。第３ＦＦ回路１３は、通常動作を行う通常モードにおいて、初期リセットとしてリセット端子ＲにＬレベルのリセット信号Ｒｓが入力されると第３保持データＤｍ３はＬレベルに固定される。
【００３４】
選択回路２３は、第１論理回路２１から経路Ａを介して第１処理データＤｐ１、第２ＦＦ回路１２から経路Ｂを介して第２保持データＤｍ２、第３ＦＦ回路１３から第３保持データＤｍ３がそれぞれ入力される。選択回路２３は、入力された第３保持データＤｍ３に応じて、第１処理データＤｐ１又は第２保持データＤｍ２を選択し、その選択したデータを選択データＤｅとして第２論理回路２２に出力する。
【００３５】
詳しくは、選択回路２３は、Ｌレベルの第３保持データＤｍ３を入力すると、第１処理データＤｐ１を選択データＤｅとして出力する。反対に、選択回路２３は、Ｈレベルの第３保持データＤｍ３を入力すると、第２保持データＤｍ２を選択データＤｅとして出力する。
【００３６】
第２論理回路２２は、選択回路２３から選択データＤｅが入力される。第２論理回路２２は、入力された選択データＤｅを論理処理して第２処理データＤｐ２として第４ＦＦ回路１４に出力する。
【００３７】
第４ＦＦ回路１４は、第１ＦＦ回路１１と同様なＦＦ回路であって、スキャンイン端子ＳＩ、データ入力端子Ｄ、選択入力端子Ｓ、クロック端子、出力端子Ｑを有している。
第４ＦＦ回路１４は、そのスキャンイン端子ＳＩに第３ＦＦ回路１３から第３保持データＤｍ３が入力され、そのデータ入力端子Ｄに第２論理回路２２から第２処理データＤｐ２が入力される。第４ＦＦ回路１４は、その選択入力端子Ｓにテスタ装置から入力選択信号Ｓｍが入力され、そのクロック端子にテスタ装置からクロック信号ＣＬＫが入力される。
【００３８】
そして、第４ＦＦ回路１４は、入力選択信号Ｓｍに応じて、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、第３保持データＤｍ３又は第２処理データＤｐ２を出力データＤｏとして保持するとともにテスタ装置に出力する。
【００３９】
具体的には、第４ＦＦ回路１４は、Ｌレベルの入力選択信号Ｓｍを入力する場合、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、第２処理データＤｐ２を出力データＤｏとして保持するとともに出力する。反対に、第４ＦＦ回路１４は、Ｈレベルの入力選択信号Ｓｍを入力する場合、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、第３保持データＤｍ３を第４保持データＤｍ４（出力データＤｏ）として保持するとともに出力する。
【００４０】
上記の回路構成により、第１〜第４ＦＦ回路１１〜１４は、Ｈレベルの入力選択信号Ｓｍを入力すると、シフトレジスタを形成してスキャンチェーンを構成する。従って、第１〜第４ＦＦ回路１１〜１４は、テストモードにおいて、Ｈレベルの入力選択信号Ｓｍを入力すると、クロック信号ＣＬＫがＬレベルからＨレベルに立ち上がる毎に、第１ＦＦ回路１１のスキャンイン端子ＳＩに入力されるテストパターンとしてのシリアルデータＤｓを順次入力して保持していく。
【００４１】
このテストパターンとして入力されるシリアルデータＤｓに応じて、第３ＦＦ回路１３は、Ｌレベル又はＨレベルの第３保持データＤｍ３を出力する。これに伴い、選択回路２３は、経路Ａを通過する第１処理データＤｐ１又は経路Ｂを通過する第２保持データＤｍ２を選択し、その選択したデータを選択データＤｅとして第２論理回路２２に出力する。
【００４２】
例えば、第１ＦＦ回路１１のスキャンイン端子ＳＩに「１０１１」のテストパターンがシリアルデータＤｓとして入力されると、第３ＦＦ回路１３は、出力端子ＱからＬレベルの第３保持データＤｍ３を出力する。選択回路２３は、第３ＦＦ回路１３の出力端子ＱからＬレベルの第３保持データＤｍ３が入力されるため、経路Ａを通過する第１処理データＤｐ１の選択データＤｅを出力する。
【００４３】
一方、第１ＦＦ回路１１のスキャンイン端子ＳＩに「１１００」のテストパターンがシリアルデータＤｓとして入力されると、第３ＦＦ回路１３は、出力端子ＱからＨレベルの第３保持データＤｍ３を出力する。選択回路２３は、第３ＦＦ回路１３の出力端子ＱからＨレベルの第３保持データＤｍ３を入力するため、経路Ｂを通過する第２保持データＤｍ２の選択データＤｅを出力する。
【００４４】
以下、半導体集積回路１０に「１０１１」、「１１００」のテストパターンが入力される場合について図２（ａ），（ｂ）に従って説明する。
最初に、図２（ａ）に示すように半導体集積回路１０が「１０１１」のテストパターンを入力する場合、まず、時刻ｔ１において、テスタ装置からの入力選択信号ＳｍがＬレベルからＨレベルに立ち上がると、第１〜第４ＦＦ回路１１〜１４は、シフトレジスタを形成してスキャンチェーンを構成する。
【００４５】
そして、時刻ｔ２のクロック信号ＣＬＫのＬレベルからＨレベルへの立ち上りから、第１〜第４ＦＦ回路１１〜１４は、第１ＦＦ回路１１のスキャンイン端子ＳＩにテスタ装置から入力される「１０１１」のテストパターンであるシリアルデータＤｓを、クロック信号ＣＬＫの立ち上がりに応答して、順番に第１〜第４保持データＤｍ１〜Ｄｍ４として保持していく。
【００４６】
以下、クロック信号ＣＬＫのＬレベルからＨレベルへの立ち上がりを、単にクロック信号ＣＬＫの立ち上がりという。また、クロック信号ＣＬＫのＨレベルからＬレベルへの立ち下がりを、単にクロック信号ＣＬＫの立ち下がりという。
【００４７】
そして、時刻ｔ３において、すなわち、時刻ｔ２から数えてクロック信号ＣＬＫが３回立ち上がると、第３ＦＦ回路１３は、シリアルデータＤｓの先頭のビットデータである「１」を第３保持データＤｍ３として保持するとともに出力端子Ｑから第４ＦＦ回路１４に出力する。
【００４８】
また、第３ＦＦ回路１３は、その自身の出力端子Ｑから出力される「１」の第３保持データＤｍ３が自身のデータ入力端子Ｄに入力される。さらに、第３ＦＦ回路１３は、そのスキャンイン端子ＳＩに第２ＦＦ回路１２からシリアルデータＤｓの２番目のビットデータである「０」の第２保持データＤｍ２が入力される。
【００４９】
換言すると、時刻ｔ３において、すなわち、時刻ｔ２から数えてクロック信号ＣＬＫが３回立ち上がると、第３ＦＦ回路１３は、入力されたシリアルデータＤｓの「１０１１」のテストパターンの最上位ビットである「１」の第３保持データＤｍ３を保持するとともに出力する。
【００５０】
この状態から、時刻ｔ４において、すなわち、時刻ｔ２から数えてクロック信号ＣＬＫが４回立ち上がると、第３ＦＦ回路１３は、シリアルデータＤｓの２番目のビットデータである「０」の第３保持データＤｍ３を保持するとともに出力端子Ｑから第４ＦＦ回路１４に出力する。
【００５１】
この時、第３ＦＦ回路１３は、そのデータ入力端子Ｄに自身の出力端子ＱからシリアルデータＤｓの２番目のビットデータである「０」の第３保持データＤｍ３が入力される。また、選択回路２３は、第３ＦＦ回路１３の出力端子Ｑから同じく「０」の第３保持データＤｍ３が入力され、経路Ａを選択する。
【００５２】
つまり、時刻ｔ４において、すなわち、時刻ｔ２から数えてクロック信号ＣＬＫが４回立ち上がると、第１〜第４ＦＦ回路１１〜１４は、「１０１１」のテストパターンを第１〜第４保持データＤｍ１〜Ｄｍ４としてそれぞれ保持するとともに出力する。
【００５３】
因みに、第１ＦＦ回路１１は、入力された「１０１１」のテストパターンの最下位ビットである「１」を第１保持データＤｍ１として保持するとともに出力している。また、第２ＦＦ回路１２は、入力された「１０１１」のテストパターンの最下位ビットから２ビット目である「１」を第２保持データＤｍ２として保持するとともに出力している。
【００５４】
さらに、第３ＦＦ回路１３は、入力された「１０１１」のテストパターンの最上位ビットから２ビット目である「０」を第３保持データＤｍ３として保持するとともに出力している。第４ＦＦ回路１４は、入力された「１０１１」のテストパターンの最上位ビットである「１」を第４保持データＤｍ４として保持するとともに出力している。
【００５５】
また、時刻ｔ４において、入力選択信号ＳｍがＨレベルからＬレベルに立ち下がると、第１〜第４ＦＦ回路１１〜１４は、時刻ｔ５のクロック信号ＣＬＫの立ち上がりでデータ入力端子Ｄから入力されるデータを保持するとともに出力するようになる。
【００５６】
そして、時刻ｔ５において、クロック信号ＣＬＫが立ち上がると、第４ＦＦ回路１４は、第１及び第２論理回路２１，２２が「１０１１」のテストパターンの最下位ビット「１」の第１保持データＤｍ１を論理処理した第２処理データＤｐ２をデータ入力端子Ｄから入力し出力データＤｏとして保持するとともに出力する。
【００５７】
即ち、テスタ装置は、時刻ｔ５において、半導体集積回路１０が第１及び第２論理回路２１，２２を介して論理処理して得た前記第１保持データＤｍ１に対する第２処理データＤｐ２を、出力データＤｏとして同半導体集積回路１０から入力することになる。
【００５８】
また、時刻ｔ５において、第２ＦＦ回路１２は、「１０１１」のテストパターンの最下位ビット「１」の第１保持データＤｍ１を第１論理回路２１にて論理処理した第１処理データＤｐ１をデータ入力端子Ｄから入力し第２保持データＤｍ２として保持するとともに出力する。
【００５９】
一方、第３ＦＦ回路１３は、自身の出力端子Ｑからの「０」の第３保持データＤｍ３を保持する。すなわち、第３ＦＦ回路１３は、入力選択信号ＳｍがＬレベルからＨレベルに立ち上がるまで、「０」の第３保持データＤｍ３を保持する。これに伴い、選択回路２３は、第３ＦＦ回路１３から「０」の第３保持データＤｍ３が入力されるため、入力選択信号ＳｍがＬレベルからＨレベルに立ち上がるまで経路Ａを通過する第１論理回路２１からの第１処理データＤｐ１の選択を継続する。
【００６０】
さらに、時刻ｔ５において、入力選択信号ＳｍがＬレベルからＨレベルに立ち上がり、第１〜第４ＦＦ回路１１〜１４は、シフトレジスタを形成してスキャンチェーンを構成する。
【００６１】
そして、時刻ｔ６のクロック信号ＣＬＫの立ち上りから、第１〜第４ＦＦ回路１１〜１４は、第４ＦＦ回路１４の出力端子Ｑからテスタ装置に対して、第１〜第４保持データＤｍ１〜Ｄｍ４を、クロック信号ＣＬＫの立ち上がりに応答して、順番に出力データＤｏとして出力していく。
【００６２】
つまり、半導体集積回路１０は、時刻ｔ７において、すなわち、時刻ｔ５から数えて３個目のクロック信号ＣＬＫが立ち上がった時、「１０１１」のテストパターンの最下位ビット「１」の第１保持データＤｍ１を、第１論理回路２１を介して論理処理して得た第１処理データＤｐ１を、出力データＤｏとしてテスタ装置に対して出力する。
【００６３】
換言すると、テスタ装置は、時刻ｔ７において、すなわち、時刻ｔ５から数えて３個目のクロック信号ＣＬＫが立ち上がった時、半導体集積回路１０の第１論理回路２１が出力する前記第１保持データＤｍ１に対する第１処理データＤｐ１を、出力データＤｏとして同半導体集積回路１０から入力することになる。
【００６４】
そして、テスタ装置は、時刻ｔ５において半導体集積回路１０からの出力データＤｏ（即ち、半導体集積回路１０の第１及び第２論理回路２１，２２を介して得られた出力信号）と、時刻ｔ７において半導体集積回路１０からの出力データＤｏ（即ち、半導体集積回路１０の第１論理回路２１のみを介して得られた出力信号）とを入力し、これら入力された出力データＤｏと予め設定された期待値とを比較する。そして、テスタ装置は、第１論理回路２１の検査及び経路Ａを含む第１及び第２論理回路２１，２２の検査を行う。
【００６５】
次に、図２（ｂ）に示すように半導体集積回路１０が「１１００」のテストパターンを入力する場合、まず、時刻ｔ１１において、テスタ装置からの入力選択信号ＳｍがＬレベルからＨレベルに立ち上がると、第１〜第４ＦＦ回路１１〜１４は、シフトレジスタを形成してスキャンチェーンを構成する。
【００６６】
そして、時刻ｔ１２のクロック信号ＣＬＫの立ち上りから、第１〜第４ＦＦ回路１１〜１４は、第１ＦＦ回路１１のスキャンイン端子ＳＩにテスタ装置から入力される「１１００」のテストパターンであるシリアルデータＤｓを、クロック信号ＣＬＫの立ち上がりに応答して、順番に第１〜第４保持データＤｍ１〜Ｄｍ４として保持していく。
【００６７】
そして、時刻ｔ１３において、すなわち、時刻ｔ１２から数えてクロック信号ＣＬＫが３回立ち上がると、第３ＦＦ回路１３は、シリアルデータＤｓの先頭のビットデータである「１」を第３保持データＤｍ３として保持するとともに出力端子Ｑから第４ＦＦ回路１４に出力する。
【００６８】
また、第３ＦＦ回路１３は、その自身の出力端子Ｑから出力される「１」の第３保持データＤｍ３が自身のデータ入力端子Ｄに入力される。さらに、第３ＦＦ回路１３は、そのスキャンイン端子ＳＩに第２ＦＦ回路１２からシリアルデータＤｓの２番目のビットデータである「１」の第２保持データＤｍ２が入力される。
【００６９】
換言すると、時刻ｔ１３において、すなわち、時刻ｔ１２から数えてクロック信号ＣＬＫが３回立ち上がると、第３ＦＦ回路１３は、入力されたシリアルデータＤｓの「１１００」のテストパターンの最上位ビットである「１」の第３保持データＤｍ３を保持するとともに出力する。
【００７０】
この状態から、時刻ｔ１４において、すなわち、時刻ｔ１２から数えてクロック信号ＣＬＫが４回立ち上がると、第３ＦＦ回路１３は、シリアルデータＤｓの２番目のビットデータである「１」の第３保持データＤｍ３を保持するとともに出力端子Ｑから第４ＦＦ回路１４に出力する。
【００７１】
この時、第３ＦＦ回路１３は、そのデータ入力端子Ｄに自身の出力端子ＱからシリアルデータＤｓの２番目のビットデータである「１」の第３保持データＤｍ３が入力される。また、選択回路２３は、第３ＦＦ回路１３の出力端子Ｑから同じく「１」の第３保持データＤｍ３が入力され、経路Ｂを選択する。
【００７２】
つまり、時刻ｔ１４において、すなわち、時刻ｔ１２から数えてクロック信号ＣＬＫが４回立ち上がると、第１〜第４ＦＦ回路１１〜１４は、「１１００」のテストパターンを第１〜第４保持データＤｍ１〜Ｄｍ４としてそれぞれ保持するとともに出力する。
【００７３】
因みに、第１ＦＦ回路１１は、入力された「１１００」のテストパターンの最下位ビットである「０」を第１保持データＤｍ１として保持するとともに出力している。また、第２ＦＦ回路１２は、入力された「１１００」のテストパターンの最下位ビットから２ビット目である「０」を第２保持データＤｍ２として保持するとともに出力している。
【００７４】
さらに、第３ＦＦ回路１３は、入力された「１１００」のテストパターンの最上位ビットから２ビット目である「１」を第３保持データＤｍ３として保持するとともに出力している。第４ＦＦ回路１４は、入力された「１１００」のテストパターンの最上位ビットである「１」を第４保持データＤｍ４として保持するとともに出力している。
【００７５】
また、時刻ｔ１４において、入力選択信号ＳｍがＨレベルからＬレベルに立ち下がると、第１〜第４ＦＦ回路１１〜１４は、時刻ｔ１５のクロック信号ＣＬＫの立ち上がりでデータ入力端子Ｄから入力されるデータを保持するとともに出力するようになる。
【００７６】
そして、時刻ｔ１５において、クロック信号ＣＬＫが立ち上がると、第４ＦＦ回路１４は、第２論理回路２２が「１１００」のテストパターンの最下位ビットから２ビット目である「０」の第２保持データＤｍ２を論理処理した第２処理データＤｐ２をデータ入力端子Ｄから入力し出力データＤｏとして保持するとともに出力する。
【００７７】
即ち、テスタ装置は、時刻ｔ１５において、半導体集積回路１０が第２論理回路２２を介して論理処理して得た前記第２保持データＤｍ２に対する第２処理データＤｐ２を、出力データＤｏとして同半導体集積回路１０から入力することになる。
【００７８】
また、時刻ｔ１５において、第２ＦＦ回路１２は、「１１００」のテストパターンの最下位ビット「０」の第１保持データＤｍ１を第１論理回路２１にて論理処理した第１処理データＤｐ１をデータ入力端子Ｄから入力し第２保持データＤｍ２として保持するとともに出力する。
【００７９】
一方、第３ＦＦ回路１３は、自身の出力端子Ｑからの「１」の第３保持データＤｍ３を保持する。すなわち、第３ＦＦ回路１３は、入力選択信号ＳｍがＬレベルからＨレベルに立ち上がるまで、「１」の第３保持データＤｍ３を保持する。これに伴い、選択回路２３は、第３ＦＦ回路１３から「１」の第３保持データＤｍ３が入力されるため、入力選択信号ＳｍがＬレベルからＨレベルに立ち上がるまで経路Ｂを通過する第１論理回路２１からの第１処理データＤｐ１の選択を継続する。
【００８０】
さらに、時刻ｔ１５において、入力選択信号ＳｍがＬレベルからＨレベルに立ち上がり、第１〜第４ＦＦ回路１１〜１４は、シフトレジスタを形成してスキャンチェーンを構成する。そして、時刻ｔ１６のクロック信号ＣＬＫの立ち上りから、第１〜第４ＦＦ回路１１〜１４は、第４ＦＦ回路１４の出力端子Ｑからテスタ装置に第１〜第４保持データＤｍ１〜Ｄｍ４を、クロック信号ＣＬＫの立ち上がりに応答して、順番に出力データＤｏとして出力していく。
【００８１】
つまり、半導体集積回路１０は、時刻ｔ１７において、すなわち、時刻ｔ１５から数えて３個目のクロック信号ＣＬＫが立ち上がった時、「１１００」のテストパターンの最下位ビット「０」の第１保持データＤｍ１を、第１論理回路２１を介して論理処理して得た第１処理データＤｐ１を、出力データＤｏとしてテスタ装置に対して出力する。
【００８２】
換言すると、テスタ装置は、時刻ｔ１７において、すなわち、時刻ｔ１５から数えて３個目のクロック信号ＣＬＫが立ち上がった時、半導体集積回路１０の第１論理回路２１が出力する前記第１保持データＤｍ１に対する第１処理データＤｐ１を、出力データＤｏとして同半導体集積回路１０から入力することになる。
【００８３】
そして、テスタ装置は、時刻ｔ１５において半導体集積回路１０からの出力データＤｏ（即ち、半導体集積回路１０の第２論理回路２２を介して得られた出力信号）と、時刻ｔ１７において半導体集積回路１０からの出力データＤｏ（即ち、半導体集積回路１０の第１論理回路２１を介して得られた出力信号）とを入力し、これら入力された出力データＤｏと予め設定された期待値とを比較する。そして、テスタ装置は、第１論理回路２１の検査及び経路Ｂを含む第２論理回路２２の検査を行う。
【００８４】
以上記述したように、本実施の形態によれば、以下の効果を奏する。
（１）スキャンチェーンを構成する第２ＦＦ回路１２と第４ＦＦ回路１４との間に、第３ＦＦ回路１３を設けた。選択回路２３は、スキャンチェーンを構成する第３ＦＦ回路１３からの第３保持データＤｍ３に応じて経路Ａを通過する第１処理データＤｐ１又は経路Ｂを通過する第２保持データＤｍ２を選択するようにした。
【００８５】
従って、選択回路２３は、第１ＦＦ回路１１のスキャンイン端子ＳＩに入力されるテストパターンとしてのシリアルデータＤｓに基づいて、経路Ａを通過する第１処理データＤｐ１又は経路Ｂを通過する第２保持データＤｍ２を選択する。
【００８６】
この結果、半導体集積回路１０は、従来のスキャンチェーンに含まれる経路Ｂを通過するテストパターンの故障検出に加え、通常動作にて用いられる経路Ａを通過するテストパターンの故障検出を行うことができる。さらに、半導体集積回路１０は、従来の選択回路２３が経路Ａを通過する第１処理データＤｐ１又は経路Ｂを通過する第２保持データＤｍ２を選択する制御信号を入力するための外部端子が必要なく、外部端子を削減することができる。
【００８７】
尚、上記実施の形態は、以下の態様で実施してもよい。
・本実施形態では、スキャンチェーンを第１〜第４ＦＦ回路１１〜１４にて構成していたが、スキャンチェーンの段数は特に制限されない。
【００８８】
・本実施形態では、第１及び第２論理回路２１，２２は、対応する第１保持データＤｍ１及び選択データＤｅが入力され、第１及び第２処理データＤｐ１，Ｄｐ２を出力していた。これに限らず、第１及び第２論理回路２１，２２の入出力数は特に制限されない。この変更に伴い、第１及び第２論理回路２１，２２の入出力数に対応したＦＦ回路を設けることになる。
【００８９】
・本実施形態では、駆動能力不足による回路動作の遅延を改善するために回路を複数の経路に分ける、つまり、冗長にする場合、各経路に対して上記の第３ＦＦ回路１３及び選択回路２３の構成をそれぞれ設けてもよい。このとき、論理合成では、上記の第３ＦＦ回路１３及び選択回路２３の構成が１つの経路のみ設けられてしまうが、ネットリストに上記の第３ＦＦ回路１３及び選択回路２３の構成を直接記述することで対処可能になる。
【符号の説明】
【００９０】
１１〜１４  スキャンフリップフロップ（第１〜第４フリップフロップ）
１１  前段スキャンフリップフロップ（第１フリップフロップ）
１２  中間スキャンフリップフロップ（第２フリップフロップ）
１３  制御スキャンフリップフロップ（第３フリップフロップ）
１４  後段スキャンフリップフロップ（第４フリップフロップ）
１０  半導体集積回路
２１  第１論理回路
２２  第２論理回路
２３  選択回路
Ｄ  データ入力端子
Ｄｍ１  第１保持データ
Ｄｍ２  第２保持データ
Ｄｍ３  第３保持データ
Ｄｐ１  第１出力データ（第１処理データ）
Ｄｐ２  第２出力データ（第２処理データ）
ＳＩ  スキャンイン端子
Ｒ  リセット端子
Ｑ  出力端子
【図１】
0005499528.tif 000002
【図２】
0005499528.tif 000003
【図３】
0005499528.tif 000004
【図４】
0005499528.tif 000005