(57)【要約】【課題】稼働中の故障診断の際に内部状態の退避及び復帰を図ることができるとともに、回路規模の増大を防ぐことが可能にする。【解決手段】本発明に係る半導体集積回路１０は、スキャンフリップフロップ２１０，３１０と、スキャン制御部１００とを備え、スキャンフリップフロップ２１０は、スキャン制御部１００の制御に基づいて、内部状態として保持しているバックアップデータを出力し、のスキャンフリップフロップ３１０は、スキャン制御部１００の制御に基づいて、スキャンフリップフロップ２１０から出力されたバックアップデータを、スキャンフリップフロップ３１０内に保持するものである。【選択図】図１
2013024788.tif 000002
【特許請求の範囲】
【請求項１】
内部のフリップフロップを介した通常のフリップフロップ動作または前記フリップフロップを介したスキャンテスト動作のいずれかを行う第１及び第２のスキャンフリップフロップと、前記第１及び第２のスキャンフリップフロップの前記スキャンテスト動作を制御するスキャン制御部と、を備える半導体集積回路であって、
前記第１のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第１のスキャンフリップフロップ内の第１のフリップフロップが内部状態として保持しているバックアップデータを出力する第１のバックアップ出力部を有し、
前記第２のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第１のスキャンフリップフロップから出力されたバックアップデータを、前記第２のスキャンフリップフロップ内の第２のフリップフロップに保持する第１のバックアップ入力部を有する、
半導体集積回路。
【請求項２】
前記第１のバックアップ出力部は、前記第１のスキャンフリップフロップのスキャンテストが開始する前に、前記バックアップデータを出力し、
前記第１のバックアップ入力部は、前記第１のスキャンフリップフロップのスキャンテストが終了するまで、前記バックアップデータを保持する、
請求項１に記載の半導体集積回路。
【請求項３】
前記第１のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、
前記バックアップデータは、前記スレーブラッチが保持するデータである、
請求項１または２に記載の半導体集積回路。
【請求項４】
前記第２のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、
前記マスタラッチが、前記バックアップデータを保持する、
請求項１乃至３のいずれか一項に記載の半導体集積回路。
【請求項５】
前記第２のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第２のフリップフロップが保持したバックアップデータを出力する第２のバックアップ出力部を有し、
前記第１のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第２のスキャンフリップフロップから出力されたバックアップデータを前記第１のフリップフロップの内部状態に回復する第２のバックアップ入力部を有する、
請求項１乃至４のいずれか一項に記載の半導体集積回路。
【請求項６】
前記第２のバックアップ出力部は、前記第１のスキャンフリップフロップのスキャンテストが終了した後、前記バックアップデータを出力し、
前記第２のバックアップ入力部は、前記第１のスキャンフリップフロップが通常のフリップフロップ動作を開始する前に、前記バックアップデータを回復する、
請求項５に記載の半導体集積回路。
【請求項７】
前記第２のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、
前記マスタラッチが、前記バックアップデータを出力する、
請求項５または６に記載の半導体集積回路。
【請求項８】
前記第１のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、
前記バックアップデータは、前記スレーブラッチに保持されて前記内部状態が回復する、
請求項５乃至７のいずれか一項に記載の半導体集積回路。
【請求項９】
前記第２のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第１のスキャンフリップフロップからスキャンテスト動作により出力されたテストデータを、前記第２のフリップフロップを介さずスルーパスにより出力するスルーパス出力部を有する、
請求項１乃至８のいずれか一項に記載の半導体集積回路。
【請求項１０】
前記スルーパス出力部は、前記第１のスキャンフリップフロップのスキャンテストの開始から終了までの間、前記スルーパスにより出力する、
請求項９に記載の半導体集積回路。
【請求項１１】
前記スルーパス出力部は、前記第２のフリップフロップが前記バックアップデータを保持している間、前記スルーパスにより出力する、
請求項９に記載の半導体集積回路。
【請求項１２】
複数の前記第１のスキャンフリップフロップと、前記第１のスキャンフリップフロップと同じ数の複数の前記第２のスキャンフリップフロップとを備え、
前記複数の第１のスキャンフリップフロップのそれぞれは、対応する前記複数の第２のスキャンフリップフロップへ前記バックアップデータを出力し、
前記複数の第２のスキャンフリップフロップのそれぞれは、前記複数の第１のスキャンフリップフロップから出力された前記バックアップデータを保持する、
請求項１乃至１１のいずれか一項に記載の半導体集積回路。
【請求項１３】
前記複数の第２のスキャンフリップフロップのそれぞれは、対応する前記複数の第１のスキャンフリップフロップへ前記保持したバックアップデータを出力し、
前記複数の第１のスキャンフリップフロップのそれぞれは、前記複数の第２のスキャンフリップフロップから出力された前記バックアップデータを内部状態に回復する、
請求項１２に記載の半導体集積回路。
【請求項１４】
前記複数の第１のスキャンフリップフロップは、それぞれ接続されてスキャンチェーンを構成し、
前記複数の第２のスキャンフリップフロップは、それぞれ接続されて、前記複数の第１のスキャンフリップフロップとは別のスキャンチェーンを構成する、
請求項１２または１３に記載の半導体集積回路。
【請求項１５】
入力データを保持し出力するマスタラッチと、前記マスタラッチが出力するデータを保持し出力するスレーブラッチとを備えるスキャンフリップフロップであって、
前記マスタラッチが保持するマスタデータと前記スレーブラッチが保持するスレーブデータとのいずれかをバックアップデータとして出力する第１のセレクタ回路と、
外部の論理回路から入力される入力論理データと、スキャンシフトするためのスキャンシフトデータと、他のスキャンフリップフロップから出力される前記バックアップデータとのいずれかを、前記マスタラッチへ入力する第２のセレクタ回路と、
を備えるスキャンフリップフロップ。
【請求項１６】
前記第１のセレクタ回路は、動作モードを通常動作モードもしくはスキャンテストモードに切り替えるためのスキャンモード制御信号に基づいて、前記マスタデータまたは前記スレーブデータを出力する、
請求項１５に記載のスキャンフリップフロップ。
【請求項１７】
前記第２のセレクタ回路は、出力するバックアップデータを選択するためのバックアップデータ選択信号に基づいて、前記入力論理データ、前記スキャンシフトデータ、または前記バックアップデータを出力する、
請求項１５または１６に記載のスキャンフリップフロップ。
【請求項１８】
前記マスタラッチ及び前記スレーブラッチの保持動作を制御するクロック信号と、前記マスタラッチの保持動作を制御するロード信号との論理和の結果を出力する論理和回路を有し、
前記マスタラッチは、前記論理和回路の出力に基づき、前記第２のセレクタ回路の出力データを保持し、
前記スレーブラッチは、前記クロック信号に基づき、前記マスタラッチの出力データを保持する、
請求項１５乃至１７のいずれか一項に記載のスキャンフリップフロップ。
【請求項１９】
前記入力論理データ、前記スキャンシフトデータ、または前記スレーブデータのいずれかを、前記スキャンフリップフロップの出力データとして出力する、第３のセレクタ回路を備える、
請求項１５乃至１８のいずれか一項に記載のスキャンフリップフロップ。
【請求項２０】
前記第３のセレクタ回路は、出力するバックアップデータを選択するためのバックアップデータ選択信号に基づいて、前記入力論理データ、前記スキャンシフトデータ、または前記スレーブデータのいずれかを出力する、
請求項１９に記載のスキャンフリップフロップ。
【請求項２１】
動作モードを通常動作モードもしくはスキャンテストモードに切り替えるためのスキャンモード制御信号に基づいて、前記入力論理データまたは前記スキャンシフトデータのいずれかを、前記第２のセレクタ回路へ出力する、第４のセレクタ回路を備える、
請求項１５乃至２０のいずれか一項に記載のスキャンフリップフロップ。
【請求項２２】
動作モードを通常動作モードもしくはスキャンテストモードに切り替えるためのスキャンモード制御信号に基づいて、前記入力論理データまたは前記スキャンシフトデータのいずれかを、前記第２のセレクタ回路及び前記第３のセレクタ回路へ出力する、第４のセレクタ回路を備える、
請求項１９または２０に記載のスキャンフリップフロップ。
【請求項２３】
内部のフリップフロップを介した通常のフリップフロップ動作または前記フリップフロップを介したスキャンテスト動作のいずれかを行う第１及び第２のスキャンフリップフロップを備える半導体集積回路のテスト方法であって、
前記第１のスキャンフリップフロップは、前記第１のスキャンフリップフロップ内の第１のフリップフロップが内部状態として保持しているバックアップデータを出力し、
前記第２のスキャンフリップフロップは、前記第１のスキャンフリップフロップから出力されたバックアップデータを、前記第２のスキャンフリップフロップ内の第２のフリップフロップに保持する、
半導体集積回路のテスト方法。
【請求項２４】
前記第１のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、
前記バックアップデータは、前記スレーブラッチが保持するデータである、
請求項２３に記載の半導体集積回路のテスト方法。
【請求項２５】
前記第２のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、
前記マスタラッチが、前記バックアップデータを保持する、
請求項２３または２４に記載の半導体集積回路のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、スキャンフリップフロップ及び半導体集積回路のテスト方法に関し、特に、フリップフロップの内部状態をバックアップデータとして出力する半導体集積回路、スキャンフリップフロップ及びテスト方法に関する。
【背景技術】
【０００２】
近年、自動車やなどのように、半導体集積回路により様々な安全制御を行なうシステムが増加している。このようなシステムでは、安全性を確認するため、製品出荷時の故障診断だけでなく製品出荷後に於いてもシステム稼動中に回路の故障診断が必要である。このため、半導体集積回路には、内部回路を故障診断するための診断回路が内蔵されている。
【０００３】
一般に、半導体集積回路は内部状態を保持しながら動作しており、システム稼働中に診断回路により故障診断を行うと、この内部状態が変更されてしまう。内部状態にはシステムの動作に必要なパラメータ等も含まれており、内部状態が破壊されると、システムの稼働に大きな影響を及ぼす。そのため、故障診断中に診断前の内部状態を破壊しない故障診断方法が強く望まれている。
【０００４】
システム稼動中に故障診断を行う半導体集積回路として、例えば特許文献１が知られている。特許文献１では、故障診断後に、診断前の内部状態に復帰する機能を有している。
【０００５】
図１０は、特許文献１に記載された従来の半導体集積回路の構成を示す構成図である。この従来の半導体集積回路は、論理回路１と、この論理回路１の故障診断を行う診断回路２と、論理回路１の内部状態を保持する記憶回路であるレジスタ３と、このレジスタ３に保持された内部状態を論理回路１に入力する復帰回路４などを有して構成されている。
【０００６】
また、論理回路１への入力信号を元に論理回路１へ診断を開始することを示す診断開始信号を出力し、診断動作から通常動作へ移行することを示す復帰要求信号を復帰回路４へ出力する応答回路５を有している。
【０００７】
従来の半導体集積回路では、半導体集積回路が稼動中でも故障診断を行うことができる診断回路２を有しており、半導体集積回路の診断中に別の回路からのアクセスが来ても、このアクセスに応答しながら診断を続けたり、適切に診断動作を中断して診断前の状態に復帰したりすることが可能である。故障診断前に論理回路の内部状態をレジスタに記憶しておき、故障診断後に保持しておいた内部状態を論理回路に復帰することで、稼働中の故障診断を可能にしている。
【０００８】
図１１は、従来の半導体集積回路の論理回路１に含まれる従来のスキャンフリップフロップ（スキャンレジスタ）の構成を示している。この従来のスキャンフリップフロップ６は、セレクタ７とフリップフロップ８で構成されている。セレクタ７は、選択信号ＳＥＬに従って、他の論理回路からの論理データとスキャンインデータとのいずれかを選択し、フリップフロップ８へ出力する。フリップフロップ８は、クロックＣＬＫに基づいて、クロックセレクタ７から入力されるデータを保持し出力する。
【０００９】
従来の半導体集積回路では、論理回路１のスキャンテスト開始前に、従来のスキャンフリップフロップ６が保持しているデータをレジスタ３に退避する。そして、従来のスキャンフリップフロップ６にスキャンインデータが入力されて、スキャンテストが実施される。スキャンテスト終了後、復帰回路４が、レジスタ３のデータを、従来のスキャンフリップフロップ６に復帰させている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−３００６５０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記のように、特許文献１に記載された従来の半導体集積回路では、稼働中の故障診断を可能にするため、スキャンフリップフロップのデータである論理回路の内部状態を記憶するレジスタと、保持しておいた内部状態を論理回路に復帰する復帰回路とが、論理回路とは別に新たに必要となる。近年、論理回路の大規模化が進んでいるため、内部状態の記憶及び復帰を図るためには、レジスタ及び復帰回路の回路規模も大規模なものになる。
【００１２】
したがって、従来の半導体集積回路では、稼働中の故障診断を行うために内部状態の退避及び復帰を図ろうとすると、回路規模が増大するという問題があった。
【課題を解決するための手段】
【００１３】
本発明に係る半導体集積回路は、内部のフリップフロップを介した通常のフリップフロップ動作または前記フリップフロップを介したスキャンテスト動作のいずれかを行う第１及び第２のスキャンフリップフロップと、前記第１及び第２のスキャンフリップフロップの前記スキャンテスト動作を制御するスキャン制御部と、を備える半導体集積回路であって、前記第１のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第１のスキャンフリップフロップ内の第１のフリップフロップが内部状態として保持しているバックアップデータを出力するバックアップ出力部を有し、前記第２のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第１のスキャンフリップフロップから出力されたバックアップデータを、前記第２のスキャンフリップフロップ内の第２のフリップフロップに保持するバックアップ入力部を有するものである。
【００１４】
本発明に係るフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチが出力するデータを保持し出力するスレーブラッチとを備えるスキャンフリップフロップであって、前記マスタラッチが保持するマスタデータと前記スレーブラッチが保持するスレーブデータとのいずれかをバックアップデータとして出力する第１のセレクタ回路と、外部の論理回路から入力される入力論理データと、スキャンシフトするためのスキャンシフトデータと、他のスキャンフリップフロップから出力される前記バックアップデータとのいずれかを、前記マスタラッチへ入力する第２のセレクタ回路と、を備えるものである。
【００１５】
本発明に係る半導体集積回路のテスト方法は、内部のフリップフロップを介した通常のフリップフロップ動作または前記フリップフロップを介したスキャンテスト動作のいずれかを行う第１及び第２のスキャンフリップフロップを備える半導体集積回路のテスト方法であって、前記第１のスキャンフリップフロップは、前記第１のスキャンフリップフロップ内の第１のフリップフロップが内部状態として保持しているバックアップデータを出力し、前記第２のスキャンフリップフロップは、前記第１のスキャンフリップフロップから出力されたバックアップデータを、前記第２のスキャンフリップフロップ内の第２のフリップフロップに保持するものである。
【００１６】
本発明では、第１のスキャンフリップフロップが内部状態をバックアップデータとして出力し、第２のスキャンフリップフロップが第１のスキャンフリップフロップのバックアップデータを保持するため、従来の半導体集積回路ように新たにレジスタ及び復帰回路を備える必要がなく、回路規模の増大を防ぐことができる。
【発明の効果】
【００１７】
本発明によれば、内部状態の退避及び復帰により稼働中の故障診断が可能であるとともに、回路規模の増大を防ぐことが可能な半導体集積回路、フリップフロップ及び半導体集積回路のテスト方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態１に係る半導体集積回路の概略構成図である。
【図２】本発明の実施の形態１に係る半導体集積回路におけるスキャン制御部の真理値表である。
【図３】本発明の実施の形態１に係るスキャンフリップフロップの回路構成図である。
【図４】本発明の実施の形態１に係るスキャンフリップフロップの真理値表である。
【図５】本発明の実施の形態１に係る半導体集積回路のテスト方法を示すフローチャート図である。
【図６】本発明の実施の形態１に係る半導体修正機回路のテスト方法を示すタイミングチャート図である。
【図７】本発明の実施の形態２に係る半導体集積回路の概略構成図である。
【図８】本発明の実施の形態２に係るスキャンフリップフロップの回路構成図である。
【図９】本発明の実施の形態２に係る半導体集積回路のテスト方法を示すフローチャート図である。
【図１０】従来の半導体集積回路の構成を示す構成図である。
【図１１】従来のスキャンフリップフロップの構成を示す回路構成図である。
【発明を実施するための形態】
【００１９】
本発明の実施の形態１
以下、図面を参照して本発明の実施の形態１について説明する。まず、図１〜図４を用いて、本発明の実施の形態１に係る半導体集積回路の構成について説明する。
【００２０】
図１は、本発明の実施の形態１に係る半導体集積回路の概略構成図である。図に示されるように、この半導体集積回路１０は、スキャン制御部１００と、スキャン１群２００と、スキャン２群３００を備えている。
【００２１】
半導体集積回路１０は、不図示の論理回路を多数備える１チップの半導体装置である。半導体集積回路１０は、稼働中に、内部の論理回路のテスト（故障診断）を行う。すなわち、半導体集積回路１０は、動作モードに従って動作し、動作モードとして、通常の動作を行う実動作モードと、スキャンテストを行うテストモードとを有している。さらに、テストモードとして、スキャン１群２００のスキャンテストを行うスキャン１群スキャンテストモードと、スキャン２群３００のスキャンテストを行うスキャン２群スキャンテストモードを有している。
【００２２】
スキャン１群２００は、１つ以上のスキャンフリップフロップ（以下ＳＣＦＦと略す）としてＳＣＦＦ２１０を備えている。またスキャン２群３００は、スキャン１群と同数のＳＣＦＦとしてＳＣＦＦ３１０を備えている。これらのスキャン群は、複数のＳＣＦＦを含むスキャンテストを実施するためのグループであり、スキャン群ごとにスキャンテストが行われる。
【００２３】
スキャン１群２００の各ＳＣＦＦ２１０と、スキャン２群３００の各ＳＣＦＦ３１０とは、それぞれ１対１で対応しており、ＳＣＦＦ２１０に対しスキャンテストする場合、ＳＣＦＦ２１０の内部状態をＳＣＦＦ３１０にバックアップし、また、ＳＣＦＦ３１０に対しスキャンテストする場合、ＳＣＦＦ３１０の内部状態をＳＣＦＦ２１０にバックアップする。なお、１対のＳＣＦＦ２１０、ＳＣＦＦ３１０のうち、いずれかのＳＣＦＦを、一方のＳＣＦＦ、または、他方のＳＣＦＦと呼ぶ場合がある。本実施形態では、スキャン１群２００とスキャン２群３００とは、含まれるＳＣＦＦの数が同じであればよく、スキャン１群２００内の各ＳＣＦＦ２１０に関連性は不要であり、スキャン２群３００内の各ＳＣＦＦ３１０にも関連性は不要である。すなわち、少なくとも、一方のスキャン群のテスト中に、他方のスキャン群はテストせずにバックアップできればよい。
【００２４】
スキャン制御部１００は、入力されるモード信号に従って、スキャン１群２００及びスキャン２群３００のテスト動作を制御する。スキャン制御部１００には、スキャン群の動作モードを設定するためのモード信号ＭＤ１，ＭＤ２と、スキャンテストに必要な動作クロックを供給するシステムクロックＳＹＳＣＬＫと、ＳＣＦＦのスキャンテストモードを制御するスキャン制御信号ＳＭＣが入力される。例えば、半導体集積回路１０には、外部端子が設けられており、外部のテスト装置から外部端子を介してモード信号ＭＤ１，ＭＤ２、システムクロックＳＹＳＣＬＫ、スキャン制御信号ＳＭＣが入力される。なお、システムクロックＳＹＳＣＬＫは、半導体集積回路１０の内部のクロック発生回路から供給されてもよい。
【００２５】
具体的には、モード信号ＭＤ１とＭＤ２はスキャン制御部１００のＭＤ１端子とＭＤ２端子に入力され、システムクロックＳＹＳＣＬＫはスキャン制御部１００のＳＹＳＣＬＫ端子に入力され、スキャン制御信号ＳＭＣはスキャン制御部１００のＳＭＣ端子に入力される。
【００２６】
また、スキャン制御部１００は、ＳＣＦＦの内部状態であるバックアップデータの入出力を制御するバックアップデータ選択信号ＮＭ、スキャン制御信号ＳＭＣ、ＳＣＦＦの保持動作（保持状態）を制御するロード信号ＬＯＡＤ、ＳＣＦＦに動作クロックを供給するクロックＣＬＫを、スキャン１群２００及びスキャン２群３００のＳＣＦＦにそれぞれ出力する。後述するようにスキャン１群２００、スキャン２群３００のテストを行うため、スキャン制御部１００は、入力されるモード信号ＭＤ１、ＭＤ２に基づいて、スキャン１群２００、スキャン２群３００を選択し、ＳＣＦＦへ出力するバックアップデータ選択信号ＮＭ、ロード信号ＬＯＡＤを生成し、また、入力されるシステムクロックＳＹＳＣＬＫに基づいて、ＳＣＦＦへ出力するクロックＣＬＫを生成し、さらに、入力されるスキャン制御信号ＳＭＣに基づいて、ＳＣＦＦへ出力するスキャン制御信号ＳＭＣを生成する。
【００２７】
具体的には、スキャン１群用のスキャン１群バックアップデータ選択信号ＮＭ１は、スキャン制御部１００のＮＭ１端子から出力されて、ＳＣＦＦ２１０のＮＭ端子に入力される。スキャン１群用のスキャン１群ロード信号ＬＯＡＤ１は、スキャン制御部１００のＬＯＡＤ１端子から出力されて、ＳＣＦＦ２１０のＬＯＡＤ端子に入力される。スキャン１群用のスキャン１群スキャン制御信号ＳＭＣ１は、スキャン制御部１００のＳＭＣ１端子から出力されて、ＳＣＦＦ２１０のＳＭＣ端子に入力される。スキャン１群用のスキャン１群クロックＣＬＫ１は、スキャン制御部１００のＣＬＫ１端子から出力されて、ＳＣＦＦ２１０のＣＬＫ端子に入力される。
【００２８】
同様に、スキャン２群用のスキャン２群バックアップデータ選択信号ＮＭ２は、スキャン制御部１００のＮＭ２端子から出力されて、ＳＣＦＦ３１０のＮＭ端子に入力される。スキャン２群用のスキャン２群ロード信号ＬＯＡＤ２は、スキャン制御部１００のＬＯＡＤ２端子から出力されて、ＳＣＦＦ３１０のＣＬＫ端子に入力される。スキャン２群用のスキャン２群スキャン制御信号ＳＭＣ２は、スキャン制御部１００のＳＭＣ２端子から出力されて、ＳＣＦＦ３１０のＳＭＣ端子に入力される。スキャン２群用のスキャン２群クロックＣＬＫ２は、スキャン制御部１００のＣＬＫ２端子から出力されて、ＳＣＦＦ３１０のＣＬＫ端子に入力される。
【００２９】
さらに、スキャン１群２００、スキャン２群３００の各ＳＣＦＦは、他の論理回路からの論理データＤＡＴＡ、スキャンテストにおけるスキャンシフトデータＳＩが入力され、また、ＳＣＦＦの出力データである論理データＱ、内部状態をバックアップするためのバックアップデータＭＥＭを出力する。例えば、論理データＤＡＴＡは、半導体集積回路１０の内部または外部の論理回路から入力され、スキャンシフトデータＳＩは、半導体集積回路１０の外部のテスト装置、または、他方のＳＣＦＦから入力される。
【００３０】
具体的には、スキャン１群用の論理データＤ１１は、外部からＳＣＦＦ２１０のＤＡＴＡ端子に入力される。スキャン１群用のスキャンシフトデータＳ１１は、外部からＳＣＦＦ２１０のＳＩ端子に入力される。スキャン１群が出力する論理データＱ１１は、ＳＣＦＦ２１０のＱ端子からＳＣＦＦ３１０のＳＩ端子に入力される。スキャン１群が出力するバックアップデータＭＥ１２１は、ＳＣＦＦ２１０のＭＥＭ端子からＳＣＦＦ３１０のＬＤ端子に入力される。
【００３１】
同様に、スキャン２群用の論理データＤ２１は、外部からＳＣＦＦ３１０のＤＡＴＡ端子に入力される。スキャン２群が出力する論理データＱ２１は、ＳＣＦＦ３１０のＱ端子から外部へ出力される。スキャン２群が出力するバックアップデータＭＥ２１１は、ＳＣＦＦ３１０のＭＥＭ端子から出力され、ＳＣＦＦ２１０のＬＤ端子に入力される。例えば、論理データＱ２１は、半導体集積回路１０の外部端子を介してテスト装置へ出力され、テスト装置は、このデータにより論理回路の故障診断を行う。
【００３２】
図２は、本発明の実施の形態１に係るスキャン制御部１００において、入力されるモード信号ＭＤ１，ＭＤ２と動作モードの関係を示す動作真理値表である。
【００３３】
スキャン制御部１００にモード信号ＭＤ１＝０、ＭＤ２＝０が入力された場合は、実動作モードである。この場合、スキャン制御部１００は、スキャン１群２００のＳＣＦＦ２１０、スキャン２群３００のＳＣＦＦ３１０が、通常動作を行うように制御する。
【００３４】
スキャン制御部１００にモード信号ＭＤ１＝０、ＭＤ２＝１が入力された場合は、スキャン２群スキャンテストモードである。この場合、スキャン制御部１００は、スキャン２群３００のＳＣＦＦ３１０がスキャンテストを行うように制御する。また、スキャン２群３００のＳＣＦＦ３１０の内部状態を、スキャンテスト前に、スキャン１群２００のＳＣＦＦ２１０にバックアップ（退避）し、スキャンテスト後に、スキャン１群２００のＳＣＦＦ２１０にバックアップした内部状態を、スキャン２群３００のＳＣＦＦ３１０にリストア（復帰）する。また、スキャン制御部１００は、スキャン１群２００のＳＣＦＦ２１０がスルーパス動作を行うように制御する。スルーパスとは、後述するように、ＳＣＦＦ内のフリップフロップを介さずにバイパスするだけの動作である。スルーパスにより、ＳＣＦＦ内のフリップフロップのデータの破壊を防ぐことができ、また、ＳＣＦＦ間を接続する信号線の故障診断を行うこともできる。
【００３５】
スキャン制御部１００にモード信号ＭＤ１＝１、ＭＤ２＝０が入力された場合は、スキャン１群スキャンテストモードである。この場合、スキャン制御部１００は、スキャン１群２００のＳＣＦＦ２１０がスキャンテストを行うように制御する。また、スキャン１群２００のＳＣＦＦ２１０の内部状態を、スキャンテスト前に、スキャン２群３００のＳＣＦＦ３１０にバックアップし、スキャンテスト後に、スキャン２群３００のＳＣＦＦ３１０にバックアップした内部状態を、スキャン１群２００のＳＣＦＦ２１０にリストアする。また、スキャン制御部１００は、スキャン２群３００のＳＣＦＦ３１０がスルーパス動作を行うように制御する。
【００３６】
なお、スキャン制御部１００にモード信号ＭＤ１＝１、ＭＤ２＝１が入力された場合は、不定である。この場合、任意にＳＣＦＦを制御してもよい。例えば、内部状態のバックアップを行わずにスキャンテストを行ってもよい。
【００３７】
図３は、本発明の実施の形態１に係るＳＣＦＦの回路構成（マクロ構成）を示している。このＳＣＦＦ１１は、スキャン１群２００におけるＳＣＦＦ２１０、スキャン２群３００におけるＳＣＦＦ３１０である。
【００３８】
図に示されるように、ＳＣＦＦ１１は、セレクタ４００、４１０、４４０、４５０と、マスタラッチ４２０、スレーブラッチ４３０と、論理和４６０で構成されている。また、マスタラッチ４２０及びスレーブラッチ４３０はフリップフロップ１２を構成している。図６の従来のＳＣＦＦと対比すると、図３のセレクタ４００及びフリップフロップ１２が、図６のセレクタ７及びフリップフロップ８と同様の構成である。すなわち、本実施形態では、従来の構成に対し、セレクタ４１０、４４０、４５０及び論理和４６０が追加されている。また、入出力信号については、バックアップデータ選択信号ＮＭ、ロードデータＬＤ、ロード信号ＬＯＡＤ、バックアップデータＭＥＭが追加されている。
【００３９】
ＳＣＦＦ１１は、フリップフロップ１２を介した通常のフリップフロップ動作またはフリップフロップ１２を介したスキャンテスト動作のいずれかを行う。なお、通常のフリップフロップ動作とは、実動作モードにおいて、入力される論理データをフリップフロップ１２により保持し出力する動作であり、スキャンテスト動作とは、スキャンテストモードにおいて、入力されるスキャンシフトデータをシフトして出力、あるいは、入力されるキャプチャデータを出力する動作である。
【００４０】
まず、ＳＣＦＦ１１内の入出力関係について説明する。スキャン制御部１００から入力されるバックアップデータ選択信号ＮＭは、セレクタ４１０と４５０のＳ端子に入力される。スキャン制御部１００から入力されるスキャン制御信号ＳＭＣは、セレクタ４００と４４０のＳ端子に入力される。外部から入力されるスキャンシフトデータＳＩは、セレクタ４００のＡ端子に入力される。外部から入力される論理データＤＡＴＡは、セレクタ４００のＢ端子に入力される。他方のＳＣＦＦ１１から入力されるロードデータＬＤは、セレクタ４１０のＢ端子に入力される。スキャン制御部１００から入力されるＬＯＡＤ信号は、論理和４６０の他方の入力端に入力される。スキャン制御部１００から入力されるクロックＣＬＫは、論理和４６０の一方の入力端とスレーブラッチ４３０のＧ端子に入力される。
【００４１】
セレクタ４００から出力されるスキャン論理データＳＤＩＮは、セレクタ４１０のＡ端子とセレクタ４５０のＢ端子に入力される。セレクタ４１０から出力されるスキャン論理ロードデータＳＤＬＩＮは、マスタラッチ４２０のＤ端子に入力される。マスタラッチ４２０のＱ端子から出力されるマスタラッチ出力ＬＤ１は、スレーブラッチ４３０のＤ端子とセレクタ４４０のＡ端子に入力される。スレーブラッチ４３０のＱ端子から出力されるスレーブラッチ出力ＬＤ２は、セレクタ４５０のＡ端子とセレクタ４４０のＢ端子に入力される。論理和４６０から出力されるマスタクロックＭＣＬＫは、マスタラッチ４２０のＧＢ端子に入力される。
【００４２】
セレクタ４５０から出力される論理データＱはＳＣＦＦ１１の外部へ出力される。セレクタ４４０から出力されるバックアップデータＭＥＭはＳＣＦＦ１１の外部へ出力される。
【００４３】
次に、ＳＣＦＦ１１内の各構成について説明する。セレクタ４００（第４のセレクタ回路）は、スキャン制御信号ＳＭＣに基づいて、ＳＣＦＦ１１に入力される論理データＤＡＴＡまたはスキャンシフトデータＳＩを、セレクタ４１０及び４５０へ出力する。
【００４４】
すなわち、セレクタ４００は、スキャン制御信号ＳＭＣに基づいて、論理データＤＡＴＡまたはスキャンシフトデータＳＩを、マスタラッチ４２０及びスレーブラッチ４３０（フリップフロップ１２）に保持させる選択回路であり、また、スキャン制御信号ＳＭＣに基づいて、論理データＤＡＴＡまたはスキャンシフトデータＳＩを、マスタラッチ４２０及びスレーブラッチ４３０（フリップフロップ１２）を介さずにスルーパス動作によりＳＣＦＦ１１から出力させる選択回路である。
【００４５】
セレクタ４１０（第２のセレクタ回路）は、バックアップデータ選択信号ＮＭに基づいて、セレクタ４００から出力される論理データＤＡＴＡもしくはスキャンシフトデータＳＩ（スキャン論理データＳＤＩＮ）、または、ＳＣＦＦ１１に入力されるロードデータＬＤのいずれかを、マスタラッチ４２０へ出力する。
【００４６】
すなわち、セレクタ４１０は、バックアップデータ選択信号ＮＭに基づいて、ロードデータＬＤとして他方のＳＣＦＦ１１から入力されるバックアップデータを、マスタラッチ４２０またはスレーブラッチ４３０（フリップフロップ１２）に保持させる選択回路である。セレクタ４１０は、マスタラッチ４２０と共に、他方のＳＣＦＦ１１の内部状態であるバックアップデータを入力し保持するバックアップ入力部でもある。このバックアップデータは少なくとも他方のＳＣＦＦ１１のスキャンテストが終了するまで保持される。また、セレクタ４１０は、スレーブラッチ４３０と共に、他方のＳＣＦＦ１１がバックアップしていた、自ＳＣＦＦ１１の内部状態であるバックアップデータを入力し内部状態に回復するバックアップ入力部でもある。このバックアップデータは少なくともＳＣＦＦ１１のスキャンテストが終了し通常の動作を開始する前までに回復させる。
【００４７】
論理和４６０は、ＳＣＦＦ１１に入力されるロード信号ＬＯＡＤとクロックＣＬＫとを論理和演算し、その演算結果をマスタラッチ４２０へ出力する。ロード信号ＬＯＡＤが１であれば、マスタラッチ４２０に１が入力され、マスタラッチ４２０はデータを保持したままとなる。すなわち、論理和４６０は、ロード信号ＬＯＡＤに基づいて、マスタラッチ４２０の保持動作を制御する回路である。
【００４８】
マスタラッチ４２０は、クロックＣＬＫまたはロード信号ＬＯＡＤ（マスタクロックＭＣＬＫ）に基づいて、ＳＣＦＦ１１に入力される論理データＤＡＴＡ、スキャンシフトデータＳＩ、またはロードデータＬＤ（スキャン論理ロードデータＳＤＬＩＮ）を一時的に保持する。例えば、マスタラッチ４２０は、ＧＢ端子に入力されるクロックＣＬＫの立ち下りのタイミングで、Ｄ端子に入力されるデータを保持し、保持したデータをＱ端子から出力する。
【００４９】
スレーブラッチ４３０は、クロックＣＬＫに基づいて、マスタラッチ４２０が保持したデータ（マスタラッチ出力ＬＤ１）を一時的に保持する。例えば、スレーブラッチ４３０は、Ｇ端子に入力されるクロックＣＬＫの立ち上りのタイミングで、Ｄ端子に入力されるデータを保持し、保持したデータをＱ端子から出力する。スレーブラッチ４３０が保持しているデータが、ＳＣＦＦ１１（フリップフロップ１２）の内部状態である。本実施形態では、稼働中のテストを可能にするために、この内部状態のバックアップ及びリストアを行う。すなわち、スレーブラッチ４３０の保持している内部状態を、他方のＳＣＦＦ１１のマスタラッチ４２０へバックアップする。また、他方のＳＣＦＦ１１のマスタラッチ４２０がバックアップしているバックアップデータを、自ＳＣＦＦ１１のスレーブラッチ４３０へリストアする。
【００５０】
セレクタ４４０（第１のセレクタ回路）は、スキャン制御信号ＳＭＣに基づいて、マスタラッチ４２０から出力される論理データＱ（マスタラッチ出力ＬＤ１）またはスレーブラッチ４３０から出力される論理データＱ（スレーブラッチ出力ＬＤ２）をバックアップデータＭＥＭとして外部へ出力する。
【００５１】
すなわち、セレクタ４４０は、スキャン制御信号ＳＭＣに基づいて、スレーブラッチ４３０が保持している自ＳＣＦＦの内部状態、あるいは、マスタラッチ４２０が保持している他方のＳＣＦＦの内部状態を他方のＳＣＦＦへ出力するバックアップ出力部である。スレーブラッチ４３０が保持する自ＳＣＦＦ１１の内部状態であるバックアップデータＭＥＭは、少なくともＳＣＦＦ１１のスキャンテストが開始される前に出力される。また、マスタラッチ４２０が保持する他方のＳＣＦＦ１１の内部状態であるバックアップデータＭＥＭは、少なくとも他方のＳＣＦＦ１１のスキャンテストが終了した後に出力される。
【００５２】
セレクタ４５０（第３のセレクタ回路）は、バックアップデータ選択信号ＮＭに基づいて、セレクタ４００から出力される論理データＤＡＴＡもしくはスキャンシフトデータＳＩ（スキャン論理データＳＤＩＮ）、または、スレーブラッチ４３０から出力される論理データＱ（スレーブラッチ出力ＬＤ２）をＳＣＦＦ１１の論理データＱとして外部へ出力する。
【００５３】
すなわち、セレクタ４５０は、バックアップデータ選択信号ＮＭに基づいて、論理データＤＡＴＡまたはスキャンシフトデータＳＩを、マスタラッチ４２０及びスレーブラッチ４３０（フリップフロップ１２）を介さずにＳＣＦＦ１１から出力させるスルーパス出力部である。少なくとも他方のＳＣＦＦ１１のスキャンテストが実施されている間、すなわち、スキャンテストの開始から終了まで、また、他方のＳＣＦＦ１１のバックアップデータを保持している間、スルーパスにより出力される。
【００５４】
図４は、本発明の実施の形態１に係るＳＣＦＦにおいて、各動作モードと、入力信号及び出力信号との関係を示す真理値表である。図のモード１〜８は、テストモード時におけるＳＣＦＦ１１のモードであり、モード９，１０は、実動作モード時におけるＳＣＦＦ１１のモードである。
【００５５】
本実施形態のＳＣＦＦ１１では、一方のＳＣＦＦ１１の内部状態を他方のＳＣＦＦ１１にバックアップするデータバックアップモード（モード１，２）、一方のＳＣＦＦ１１によりスキャンテストを行うスキャンテストモード（モード３，４）、他方のＳＣＦＦ１１が一方のＳＣＦＦ１１のテストデータに対しスルーパス動作をするスルーパスモード（モード５，６）、他方のＳＣＦＦ１１がバックアップしている内部状態を一方のＳＣＦＦ１１にリストアするデータリストアモード（モード７，８）、実動作モードにおける通常の動作であるノーマルフリップ（ＦＦ）動作モードを有している。
【００５６】
モード１は、データバックアップモードであり、特に、データバックアップ時にスレーブラッチ４３０のバックアップデータＤＡＴＡ１をＭＥＭ端子から他方のＳＣＦＦ１１へ出力するスレーブラッチ出力モードである。
【００５７】
このモードでは、スキャン制御部１００から、クロックＣＬＫに０（クロック停止）、ロード信号ＬＯＡＤに１、スキャン制御信号ＳＭＣに１がＳＣＦＦ１１に入力される。
【００５８】
クロックＣＬＫが０、ロード信号ＬＯＡＤが１であるため、スレーブラッチ４３０はデータ保持状態となる。すなわち、保持データが入力データＤにより影響を受けない状態となる。そして、スキャン制御信号ＳＭＣが１であるため、セレクタ４４０の入力Ｂが選択され、スレーブラッチ４３０のＱ出力からセレクタ４４０を通過してＭＥＭ端子からＤＡＴＡ１が外部へ出力される。このように、モード１では、スレーブラッチ４３０の内部状態であるバックアップデータが、他方のＳＣＦＦ１１でバックアップするために出力される。
【００５９】
モード２は、データバックアップモードであり、特に、データバックアップ時にＬＤ端子からバックアップデータＤＡＴＡ１をマスタラッチ４２０へ読み込むマスタラッチ入力モードである。
【００６０】
このモードでは、スキャン制御部１００から、クロックＣＬＫに０（クロック停止）、ロード信号ＬＯＡＤに０、バックアップデータ選択信号ＮＭに１がＳＣＦＦ１１に入力され、さらに、一方のＳＣＦＦ１１からバックアップデータであるＤＡＴＡ１が入力される。
【００６１】
クロックＣＬＫが０、ロード信号ＬＯＡＤが０であるため、マスタラッチ４２０は、読み込み可能な状態となる。そして、バックアップデータ選択信号ＮＭが１であるため、セレクタ４１０の入力Ｂが選択され、ＬＤ端子から入力されるＤＡＴＡ１がセレクタ４１０を通過しマスタラッチ４２０に読み込まれる。このように、モード２では、他方のＳＣＦＦ１１から出力されたバックアップデータが、マスタラッチ４２０に保持されバックアップされる。
【００６２】
モード３は、スキャンテストモードであり、特に、スキャンテスト時のキャプチャ動作を行うキャプチャモードである。
【００６３】
このモードでは、スキャン制御部１００から、クロックＣＬＫに動作クロック、ロード信号ＬＯＡＤに０、バックアップデータ選択信号ＮＭに０、スキャン制御信号ＳＭＣに１が入力され、外部の回路から、ＤＡＴＡ端子にキャプチャデータＤＡＴＡ２Ａが入力される。
【００６４】
クロックＣＬＫがクロック動作、ロード信号ＬＯＡＤが０であるため、マスタラッチ４２０とスレーブラッチ４３０はフリップフロップとして動作する。すなわち、クロックＣＬＫに基づいてデータＤをラッチする。そして、バックアップデータ選択信号ＮＭが０であるため、セレクタ４１０のＡ入力とセレクタ４５０のＡ入力が選択され、さらに、スキャン制御信号ＳＭＣが１であるため、セレクタ４００のＢ入力が選択される。そうすると、ＳＣＦＦ１１のＤＡＴＡ端子からデータＤＡＴＡ２Ａが入力され、セレクタ４００とセレクタ４１０を通過し、クロックＣＬＫのクロック動作によりマスタラッチ４２０のＤ入力からＱ出力へ、スレーブラッチ４３０のＤ入力からＱ出力へデータが遷移し、セレクタ４５０を通過しＳＣＦＦ１１のＱ端子から外部へＤＡＴＡ２が出力される。このように、モード３では、スキャンテスト時に入力されるキャプチャデータがクロックＣＬＫに従ってキャプチャされて出力される。
【００６５】
モード４は、スキャンテストモードであり、特に、スキャンテスト時のスキャンシフト動作を行うスキャンシフトモードである。
【００６６】
このモードでは、スキャン制御部１００から、クロックＣＬＫに動作クロック、ロード信号ＬＯＡＤに０、バックアップデータ選択信号ＮＭに０、スキャン制御信号ＳＭＣに０が入力され、外部の回路から、ＳＩ端子にスキャンシフトデータＤＡＴＡ２Ｂが入力される。
【００６７】
クロックＣＬＫがクロック動作、ロード信号ＬＯＡＤが０であるため、マスタラッチ４２０とスレーブラッチ４３０はフリップフロップとして動作する。そして、バックアップデータ選択信号ＮＭが０であるため、セレクタ４１０のＡ入力とセレクタ４５０のＡ入力が選択され、さらに、スキャン制御信号ＳＭＣが０であるため、セレクタ４００のＡ入力を選択する。そうすると、ＳＣＦＦ１１のＳＩ端子からデータＤＡＴＡ２Ｂが入力され、セレクタ４００とセレクタ４１０を通過し、クロックＣＬＫのクロック動作によりマスタラッチ４２０のＤ入力からＱ出力へ、スレーブラッチ４３０のＤ入力からＱ出力へデータが遷移し、セレクタ４５０を通過しＳＣＦＦ１１のＱ端子から外部へＤＡＴＡ２Ｂが出力される。このように、モード４では、スキャンテスト時に入力されるスキャンシフトデータがクロックＣＬＫに従ってシフトされて出力される。
【００６８】
モード５は、スルーパスモードであり、特に、スキャンテストのキャプチャ時にスルーパス動作を行うキャプチャスルーパスモードである。
【００６９】
このモードでは、スキャン制御部１００から、クロックＣＬＫに０（クロック停止）、ロード信号ＬＯＡＤに１、バックアップデータ選択信号ＮＭに１、スキャン制御信号ＳＭＣに１が入力され、スキャンテスト中のＳＣＦＦ１１からＤＡＴＡ端子にキャプチャデータＤＡＴＡ２Ａが入力される。
【００７０】
クロックＣＬＫが０、ロード信号ＬＯＡＤが１であるため、マスタラッチ４２０とスレーブラッチ４３０はデータ保持状態となる。すなわち、保持データが入力データＤにより影響を受けない。そして、バックアップデータ選択信号ＮＭが１であるため、セレクタ４５０のＢ入力が選択され、スキャン制御信号ＳＭＣが１であるため、セレクタ４００のＢを選択する。そうすると、ＳＣＦＦ１１のＤＡＴＡ端子からデータＤＡＴＡ２Ａが入力され、マスタラッチ４２０とスレーブラッチ４３０をバイパスする経路でセレクタ４５０を通過し、ＳＣＦＦ１１のＱ端子から外部へＤＡＴＡ２Ａが出力される。このように、モード５では、スキャンテスト時に他方のＳＣＦＦ１１が出力するキャプチャデータを、自ＳＣＦＦ１１内のフリップフロップを介さないスルーパスにより出力する。
【００７１】
モード６は、スルーパスモードであり、特に、スキャンテストのスキャンシフト時にスルーパス動作を行うスキャンシフトスルーパスモードである。
【００７２】
このモードでは、スキャン制御部１００から、クロックＣＬＫに０（クロック停止）、ロード信号ＬＯＡＤに１、バックアップデータ選択信号ＮＭに１、スキャン制御信号ＳＭＣに０が入力され、スキャンテスト中のＳＣＦＦ１１からＳＩ端子にスキャンシフトデータＤＡＴＡ２Ｂが入力される。
【００７３】
クロックＣＬＫが０、ロード信号ＬＯＡＤが１であるため、マスタラッチ４２０とスレーブラッチ４３０はデータ保持状態となる。そして、バックアップデータ選択信号ＮＭが１であるため、セレクタ４５０のＢ入力が選択され、スキャン制御信号ＳＭＣが０であるため、セレクタ４００のＡを選択する。そうすると、ＳＣＦＦ１１のＳＩ端子からデータＤＡＴＡ２Ｂが入力され、セレクタ４００でマスタラッチ４２０とスレーブラッチ４３０をバイパスする経路でセレクタ４５０を通過し、ＳＣＦＦ１１のＱ端子から外部へＤＡＴＡ２Ｂが出力される。このように、モード６では、スキャンテスト時に他方のＳＣＦＦ１１が出力するスキャンシフトデータを、自ＳＣＦＦ１１内のフリップフロップを介さないスルーパスにより出力する。
【００７４】
モード７は、データリストアモードであり、特に、データリストア時にマスタラッチ４２０が保持するバックアップデータをＭＥＭ端子から他方のＳＣＦＦ１１へ出力するマスタラッチ出力モードである。
【００７５】
このモードでは、スキャン制御部１００から、クロックＣＬＫに０（クロック停止）、ロード信号ＬＯＡＤに１、バックアップデータ選択信号ＮＭに１、スキャン制御信号ＳＭＣに０がＳＣＦＦ１１に入力される。
【００７６】
クロックＣＬＫが０、ロード信号ＬＯＡＤが１であるため、マスタラッチ４２０はデータ保持状態となる。すなわち、保持データが入力データＤにより影響を受けない。そして、スキャン制御信号ＳＭＣが０であるため、セレクタ４４０のＡ端子が選択され、マスタラッチ４２０のデータがＱ出力からセレクタ４４０を通過しＭＥＭ端子からＤＡＴＡ３が外部へ出力される。このように、モード７では、マスタラッチ４２０がバックアップしていた他方のＳＣＦＦ１１の内部状態を、他方のＳＣＦＦ１１でリストアするために出力される。
【００７７】
モード８は、データリストアモードであり、特に、データリストア時にＬＤ端子からバックアップデータＤＡＴＡ３をマスタラッチ４２０へ読み込むスレーブラッチ入力モードである。
【００７８】
このモードでは、スキャン制御部１００から、クロックＣＬＫに０から１クロック、ロード信号ＬＯＡＤに０、バックアップデータ選択信号ＮＭに１がＳＣＦＦ１１に入力され、さらに、一方のＳＣＦＦ１１からバックアップデータであるＤＡＴＡ３が入力される。
【００７９】
まず、クロックＣＬＫが０、ロード信号ＬＯＡＤが０であるため、マスタラッチ４２０は読み込み可能状態となり、バックアップデータ選択信号ＮＭが１であるためセレクタ４１０の入力Ｂが選択され、ＬＤ端子からデータＤＡＴＡ３がセレクタ４１０を通過しマスタラッチ４２０に読み込まれる。
【００８０】
その後、クロックＣＬＫが１クロック動作し、ロード信号ＬＯＡＤが０であるため、マスタラッチ４２０とスレーブラッチ４３０はフリップフロップとして動作し、マスタラッチ４２０からスレーブラッチ４３０へデータＤＡＴＡ３が読み込まれる。このように、モード８では、他方のＳＣＦＦ１１でバックアップされていたバックアップデータが、スレーブラッチ４３０に保持され自ＳＣＦＦ１１の内部状態としてリストアされる。
【００８１】
モード９は、ノーマルＦＦ動作モードであり、特に、通常動作時にスレーブラッチ４３０のデータを保持し続ける保持モードである。
【００８２】
このモードでは、スキャン制御部１００から、クロックＣＬＫに０（クロック停止）、ロード信号ＬＯＡＤに０、バックアップデータ選択信号ＮＭに１、スキャン制御信号ＳＭＣに０がＳＣＦＦ１１に入力される。
【００８３】
クロックＣＬＫが０、ロード信号ＬＯＡＤが０であるため、マスタラッチ４２０は、読み込み可能な状態となる。そして、バックアップデータ選択信号ＮＭが０であるため、セレクタ４１０の入力Ａが選択され、さらに、スキャン制御信号ＳＭＣが１であるため、セレクタ４００のＢ入力が選択される。ただし、クロックＣＬＫが０であるため、スレーブラッチ４３０はデータ保持状態であり、保持データがＳＣＦＦ１１のＱ端子から出力される。
【００８４】
このように、モード９では、入力データにかかわらず、スレーブラッチ４３０がデータを保持し続け、保持しているデータを出力する。
【００８５】
モード１０は、ノーマルＦＦ動作モードであり、特に、通常動作時に入力データをフリップフロップにより保持し出力するアクティブモードである。
【００８６】
このモードでは、スキャン制御部１００から、クロックＣＬＫに動作クロック、ロード信号ＬＯＡＤに０、バックアップデータ選択信号ＮＭに０、スキャン制御信号ＳＭＣに１が入力され、外部の回路から、ＤＡＴＡ端子に通常データＤＡＴＡ４が入力される。
【００８７】
クロックＣＬＫがクロック動作、ロード信号ＬＯＡＤが０であるため、マスタラッチ４２０とスレーブラッチ４３０はフリップフロップとして動作する。すなわち、クロックＣＬＫに基づいてデータＤをラッチする。そして、バックアップデータ選択信号ＮＭが０であるため、セレクタ４１０のＡ入力とセレクタ４５０のＡ入力が選択され、さらに、スキャン制御信号ＳＭＣが１であるため、セレクタ４００のＢ入力が選択される。そうすると、ＳＣＦＦ１１のＤＡＴＡ端子からデータＤＡＴＡ４が入力され、セレクタ４００とセレクタ４１０を通過し、クロックＣＬＫのクロック動作によりマスタラッチ４２０のＤ入力からＱ出力へ、スレーブラッチ４３０のＤ入力からＱ出力へデータが遷移し、セレクタ４５０を通過しＳＣＦＦ１１のＱ端子から外部へＤＡＴＡ４が出力される。このように、モード１０では、通常動作時に入力される通常データがクロックＣＬＫに従って出力される。
【００８８】
次に、図５〜図６を用いて、本発明の実施の形態１に係る半導体集積回路の故障診断動作について説明する。
【００８９】
図５は、本発明の実施の形態１に係る故障診断動作を示すフローチャート図である。この故障診断動作では、まず、スキャン１群のスキャンテストを行った後（ステップＳＴ１〜ＳＴ４）、スキャン２群のスキャンテストを行う（ステップＳＴ５〜ＳＴ８）。なお、スキャン２群のスキャンテストを行った後に、スキャン１群のスキャンテストを行ってもよい。
【００９０】
まず、半導体集積回路１０の故障診断が開始されると、ステップＳＴ１において、動作モードをスキャン１群２００のテストモードに設定する。すなわち、故障診断開始時に外部からスキャン制御部１００に対して、モード信号ＭＤ１＝１とＭＤ２＝０を入力し、動作モードをスキャン１群テストモードとする。これにより、スキャン制御部１００は、スキャンテストするスキャン群として、スキャン１群２００を選択し、スキャンテストのバックアップをするスキャン群として、スキャン２群３００を選択する。
【００９１】
次いで、ステップＳＴ２において、スキャン１群２００のＳＣＦＦ２１０のスレーブデータをスキャン２群３００のＳＣＦＦ３１０のマスタラッチへ転送する。すなわち、スキャン制御部１００は、スキャン１群２００のＳＣＦＦ２１０をスレーブラッチ出力モード（図４のモード１）に設定し、スキャン２群３００のＳＣＦＦ３１０をマスタラッチ入力モード（図４のモード２）に設定する。
【００９２】
そうすると、スキャン１群２００に配置されたＳＣＦＦ２１０のスレーブラッチ４３０に格納されたデータ（内部状態）が、スキャン２群３００に配置されスキャン１群２００のＳＣＦＦ２１０に対応したＳＣＦＦ３１０のマスタラッチ４２０に一時記憶され、データがバックアップされる。
【００９３】
次いで、ステップＳＴ３において、スキャン１群２００のスキャンテストを実施し、スキャン２群３００をスルーパスに設定する。すなわち、スキャン制御部１００は、スキャン１群２００のＳＣＦＦ２１０をキャプチャモード（図４のモード３），スキャンシフトモード（図４のモード４）に設定し、スキャン２群３００のＳＣＦＦ３１０をキャプチャスルーパスモード（図４のモード５），スキャンシフトスルーパスモード（図４のモード６）に設定する。
【００９４】
そうすると、スキャン１群２００に配置されたＳＣＦＦ２１０は予め設定されたスキャン条件でスキャンテストが実施されると同時に、スキャン２群３００に配置されたＳＣＦＦ３１０はフリップフロップをバイパスしデータが通過するだけの動作となり、スキャン１群２００の故障診断が行われる。
【００９５】
例えば、スキャンテストは、スキャンイン動作、キャプチャ動作、スキャンアウト動作により行われる。スキャンイン動作では、テストデータであるスキャンシフトデータが、スキャンシフトモードのＳＣＦＦ２１０によりシフトされ、シフトされたデータが、スキャンシフトスルーパスモードのＳＣＦＦ３１０から出力される。キャプチャ動作では、スキャンインされた状態で論理回路が動作され、論理回路の論理データが、キャプチャモードのＳＣＦＦ２１０に取り込まれ、取り込まれたデータが、キャプチャスルーパスモードのＳＣＦＦ３１０から出力される。スキャンアウト動作では、キャプチャによりＳＣＦＦに取り込まれているデータが、スキャンシフトモードのＳＣＦＦ２１０によりシフトされ、シフトされたデータが、スキャンシフトスルーパスモードのＳＣＦＦ３１０から出力される。スキャンアウトにより得られるデータを、スキャンインのデータに対する期待値と比較し、故障の有無が判定される。
【００９６】
次いで、ステップＳＴ４において、スキャン２群３００のＳＣＦＦ３１０のマスタラッチ４２０のデータをスキャン１群２００のＳＣＦＦ２１０のスレーブラッチ４３０へリストアする。すなわち、スキャン制御部１００は、スキャン２群３００のＳＣＦＦ３１０をマスタラッチ出力モード（図４のモード７）に設定し、スキャン１群２００のＳＣＦＦ２１０をスレーブラッチ入力モード（図４のモード８）に設定する。
【００９７】
そうすると、ステップＳＴ２で、スキャン２群３００のＳＣＦＦ３１０のマスタラッチ４２０に一時記憶させたデータを、スキャン１群２００に配置されたＳＣＦＦ２１０のスレーブラッチ４３０にリストアすることで、スキャン１群２００のＳＣＦＦ２１０の状態を故障診断前の状態に復帰させる。これにより、スキャン１群２００のテストが終了する。
【００９８】
次いで、ステップＳＴ５において、動作モードをスキャン２群３００のテストモードに設定する。すなわち、スキャン１群のテストが終了し、次にスキャン２群のテストを行うため、外部からスキャン制御部１００に対して、モード信号ＭＤ１＝０とＭＤ２＝１を入力し、動作モードをスキャン２群テストモードとする。これにより、スキャン制御部１００は、スキャンテストするスキャン群として、スキャン２群３００を選択し、スキャンテストのバックアップをするスキャン群として、スキャン１群２００を選択する。
【００９９】
次いで、ステップＳＴ６において、スキャン２群３００のＳＣＦＦ３１０のスレーブデータをスキャン１群２００のＳＣＦＦ２１０のマスタラッチへ転送する。すなわち、スキャン制御部１００は、スキャン２群３００のＳＣＦＦ３１０をスレーブラッチ出力モード（図４のモード１）に設定し、スキャン１群２００のＳＣＦＦ２１０をマスタラッチ入力モード（図４のモード２）に設定する。
【０１００】
そうすると、スキャン２群３００に配置されたＳＣＦＦ３１０のスレーブラッチ４３０に格納されたデータ（内部状態）が、スキャン１群２００に配置されスキャン２群３００のＳＣＦＦ３１０に対応したＳＣＦＦ２１０のマスタラッチ４２０に一時記憶され、データがバックアップされる。
【０１０１】
次いで、ステップＳＴ７において、スキャン２群３００のスキャンテストを実施し、スキャン１群２００をスルーパスに設定する。すなわち、スキャン制御部１００は、スキャン２群３００のＳＣＦＦ３１０をキャプチャモード（図４のモード３），スキャンシフトモード（図４のモード４）に設定し、スキャン１群２００のＳＣＦＦ２１０をキャプチャスルーパスモード（図４のモード５），スキャンシフトスルーパスモード（図４のモード６）に設定する。
【０１０２】
そうすると、スキャン２群３００に配置されたＳＣＦＦ３１０は予め設定されたスキャン条件でスキャンテストが実施されると同時に、スキャン１群２００に配置されたＳＣＦＦ２１０はデータをスルーパスする動作となり、スキャン２群３００の故障診断が行われる。
【０１０３】
次いで、ステップＳＴ８において、スキャン１群２００のＳＣＦＦ２１０のマスタラッチ４２０のデータをスキャン２群３００のＳＣＦＦ３１０のスレーブラッチ４３０へリストアする。すなわち、スキャン制御部１００は、スキャン１群２００のＳＣＦＦ２１０をマスタラッチ出力モード（図４のモード７）に設定し、スキャン２群３００のＳＣＦＦ３１０をスレーブラッチ入力モード（図４のモード８）に設定する。
【０１０４】
そうすると、ステップＳＴ６で、スキャン１群２００のＳＣＦＦ２１０のマスタラッチ４２０に一時記憶させたデータを、スキャン２群３００に配置されたＳＣＦＦ３１０のスレーブラッチ４３０にリストアすることで、スキャン２群３００のＳＣＦＦ３１０の状態を故障診断前の状態に復帰させる。
【０１０５】
これにより、スキャン２群３００のテストが終了し、半導体集積回路１０のテストが完了する。このとき、スキャン１群１００、スキャン２群２００の全てのＳＣＦＦの内部状態が、テスト前の状態に回復しているため、すぐに通常動作が可能である。したがって、半導体集積回路を含むシステムが稼働中であっても、安全にテストを行うことができる。
【０１０６】
図６は、本発明の実施の形態１に係る故障診断動作を示すタイミングチャートである。図６では、スキャン１群のスキャンテスト動作である、図５のステップＳＴ２からＳＴ４までの動作を示している。
【０１０７】
図６において、状態１は、スキャン１群２００のＳＣＦＦ２１０からスキャン２群３００のＳＣＦＦ３１０へのデータバックアップの動作を行う状態であり、図５のステップＳＴ２に対応している。状態２は、スキャン１群２００のＳＣＦＦ２１０のスキャンテストの動作とスキャン２群３００のＳＣＦＦ３１０のスルーパスの動作を行う状態であり、図５のステップＳＴ３に対応している。状態３は、スキャン２群３００のＳＣＦＦ３１０からスキャン１群２００のＳＣＦＦ２１０へのデータリストアの動作を行う状態であり、図５のステップＳＴ４に対応している。
【０１０８】
状態１〜状態３において、スキャン制御部１００には、ＳＹＳＣＬＫに動作クロック信号、モード信号ＭＤ１に１、ＭＤ２に０が入力されており、半導体集積回路１０の動作モードがスキャン１群テストモードとなる。
【０１０９】
まず、スキャン１群２００からスキャン２群３００へのデータバックアップの動作を示す状態１では、スキャン制御部１００は、スキャン１群２００のＳＣＦＦ２１０をスレーブラッチ出力モード（図４のモード１）に設定し、スキャン２群３００のＳＣＦＦ３１０をマスタラッチ入力モード（図４のモード２）に設定する。
【０１１０】
すなわち、スキャン１群２００のＳＣＦＦ２１０では、スキャン１群クロックＣＬＫ１が０、スキャン１群ロード信号ＬＯＡＤ１が１により、スレーブラッチ４３０のデータを保持し、スキャン１群スキャン制御信号ＳＭＣが１によりスキャン１群２００のＳＣＦＦ３１０のスレーブラッチ４３０の論理データ（ＤＡＴＡ１）が、ＭＥＭ端子から出力される（図４のモード１）。
【０１１１】
また、スキャン２群３００のＳＣＦＦ３１０では、スキャン２群クロックＣＬＫ２が０、スキャン２群ロード信号ＬＯＡＤ２が０により、マスタラッチ４２０が読み込み可能な状態となり、スキャン２群バックアップデータ選択信号ＮＭ２が１により、スキャン１群２００のＭＥＭ端子から出力された論理データ（ＤＡＴＡ１）が、スキャン２群３００のＬＤ端子からスキャン２群３００のＳＣＦＦ３１０のマスタラッチ４２０へ遷移し記憶される（図４のモード２）。
【０１１２】
次いで、スキャン１群２００のスキャンテストの動作とスキャン２群３００のスルーパスの動作を示す状態２では、スキャン制御部１００は、スキャン１群２００のＳＣＦＦ２１０をキャプチャモード（図４のモード３）、スキャンシフトモード（図４のモード４）に設定し、スキャン２群３００のＳＣＦＦ３１０をキャプチャスルーパスモード（図４のモード５）、スキャンシフトスルーパスモード（図４のモード６）に設定する。ここでは、スキャンシフトモードの動作について説明する。
【０１１３】
すなわち、スキャン１群２００のＳＣＦＦ２１０では、スキャン１群スキャン制御信号ＳＭＣ１が０、スキャン１群バックアップデータ選択信号ＮＭ１が０、スキャン１群ロード信号ＬＯＡＤ１が０になることで、スキャン１群クロックＣＬＫ１からＳＣＦＦ個数分のクロック供給が開始されると、スキャン１群２００のＳＣＦＦ２１０はスキャンシフト動作となりスキャン１群２００のＳＣＦＦ２１０のＳ１１からＱ１１へ論理データ（ＤＡＴＡ２）がシフトする（図４のモード４）。
【０１１４】
また、スキャン２群３００のＳＣＦＦ３１０では、スキャン２群スキャン制御信号ＳＭＣ２が０、スキャン２群バックアップデータ選択信号ＮＭ２が１、スキャン２群ロード信号ＬＯＡＤ２が１、スキャン２群クロックＣＬＫ２が０により、スキャン１群のＱ１１から出力されたスキャンシフトデータＤＡＴＡ２はスキャン２群Ｓ２１から入力され、マスタラッチ４２０とスレーブラッチ４３０をバイパスする経路で通過し、Ｑ２１から論理データ（ＤＡＴＡ２）が外部へ出力される（図４のモード６）。このとき、状態１で保持したスキャン１群２００のデータであるＤＡＴＡ１は、マスタラッチ４２０に保持されており、スキャン２群３００のデータはスレーブラッチ４３０に保持されたままの状態である。
【０１１５】
なお、キャプチャモードでは、スキャン１群のＳＣＦＦ２１０は、スキャン１群スキャン制御信号ＳＭＣ１が１になり、Ｄ１１からＱ１１へ論理データがキャプチャされ（図４のモード３）、スキャン２群のＳＣＦＦ３１０は、スキャン２群スキャン制御信号ＳＭＣ２が１になり、Ｄ２１からＱ２１へ論理データがスルーパスにより出力される（図４のモード５）。
【０１１６】
次いで、スキャン２群３００からスキャン１群２００へのデータリストアの動作を示す状態３は、スキャン制御部１００は、スキャン１群２００のＳＣＦＦ２１０をスレーブラッチ入力モード（図４のモード８）に設定し、スキャン２群３００のＳＣＦＦ３１０をマスタラッチ出力モード（図４のモード７）に設定する。
【０１１７】
すなわち、スキャン２群３００のＳＣＦＦ３１０では、スキャン２群クロックＣＬＫ２は０、スキャン２群ロード信号ＬＯＡＤ２は１により、マスタラッチ４２０のデータを保持して、スキャン２群スキャン制御信号ＳＭＣ２が０により、スキャン２群３００のマスタラッチ４２０の論理データ（ＤＡＴＡ１）は、スキャン２群３００のＭＥＭ端子から出力される（図４のモード７）。
【０１１８】
また、スキャン１群２００のＳＣＦＦ２１０では、スキャン１群クロックＣＬＫ１が０、スキャン１群ロード信号ＬＯＡＤ１が０により、マスタラッチ４２０は読み込み可能状態となり、スキャン１群バックアップデータ選択信号ＮＭ１が１により、スキャン２群３００から出力された論理データ（ＤＡＴＡ１）が、ＬＤ１端子からスキャン１群２００のＳＣＦＦ２１０のマスタラッチ４２０に論理データ（ＤＡＴＡ１）が遷移し、さらにスキャン１群クロックＣＬＫ１に１クロック入力されると、スキャン１群２００のマスタラッチ４２０からスレーブラッチ４３０へ遷移し記憶される（図４のモード８）。
【０１１９】
なお、ここでは、スキャン１群のスキャンテストの動作説明を行ったが、スキャン２群のスキャンテストについてはモードの設定とスキャン１群とスキャン２群の動作を入れ替えるだけで同様に行える。
【０１２０】
以上説明のしたように、本実施形態では、テスト開始前にテスト対象のスキャン１群のフリップフロップのデータをスキャン２群のフリップフロップのマスタラッチに一時的にデータをバックアップし、テスト終了時にスキャン２群のフリップフロップのマスタラッチから一時的にデータをスキャン１群のフリップフロップにリストアする。このため、フリップフロップの内部状態のバックアップ及びリストアにより、内部状態を破壊することがないため、稼働中の故障診断が可能であるとともに、フリップフロップを内蔵するＳＣＦＦが内部状態を保持する記憶回路となるため、回路規模の増大を防ぐことができる。
【０１２１】
フリップフロップの内部状態であるスレーブラッチのラッチデータを、他のフリップフロップのマスタラッチに保持するようにした。フリップフロップの内部状態に影響が少ないマスタラッチに、内部状態をバックアップすることにより、既存の回路を効率よく利用できる。また、バックアップしている間は、フリップフロップを介さないスルーパス動作させることにより、フリップフロップのマスタラッチのデータ及びスレーブラッチのデータが更新されることを防ぐことができる。これにより、スキャンテストの実施による内部状態の破壊を防ぎ、スキャンテスト後に確実に内部状態を復帰させることができる。
【０１２２】
全てのＳＣＦＦをバックアップさせる必要がある場合、従来技術では、構成しているＳＣＦＦの数だけ、データをバックアップする機能の記憶装置と復帰回路が必要となる。そのため同じ種類のＳＣＦＦ相当の回路規模が増加する。本発明の場合、既存のＳＣＦＦを使ってスキャンテストをする機能とデータをバックアップする機能を兼用するため、スキャンテストとデータをバックアップする切り替えを制御するセレクタ回路の回路規模が増加するに留まる。
【０１２３】
よって、総ＳＣＦＦの数分の回路規模と復帰回路を加えた回路規模から機能切り替えセレクタの回路規模を差し引いた数だけ回路規模を削減できる。大規模集積回路では、ＳＣＦＦの数も多いため、ＳＣＦＦをバックアップデータの記憶回路とすることによる効果は大きい。
【０１２４】
さらに、従来技術はデータのバックアップとリストアを制御回路で行い、その制御回路の動作をするためには多数の回路か、もしくは制御用のタイミングを作成する必要があるが、本発明はＳＣＦＦのデータのバックアップとリストアを単純な動作で簡単に行うことができるという効果もある。すなわち、バックアップ時は、一方のＳＣＦＦをスレーブラッチ出力モードにし、他方のＳＣＦＦをマスタラッチ入力モードにするだけで、バックアップすることができ、また、リストア時は、一方のＳＣＦＦをマスタラッチ出力モードにし、他方のＳＣＦＦをスレーブラッチ入力モードにするだけでよいため、より単純かつ高速にバックアップ及びリストアを行うことが可能である。
【０１２５】
本発明の実施の形態２
以下、図面を参照して本発明の実施の形態２について説明する。図７は、本発明の実施の形態２に係る半導体集積回路の概略構成図である。図に示されるように、この半導体集積回路２０は、スキャン制御部１００と、スキャン１群５００と、スキャン２群６００を備えている。
【０１２６】
スキャン１群５００とスキャン２群６００は、それぞれ別のスキャンチェーンであり、本実施形態のスキャン群は、スキャンチェーンごとにグループ化されている。スキャンチェーンごとに分かれているため、スキャン群ごとにまとめてテストが行われる。
【０１２７】
スキャン１群５００は、ＳＣＦＦ５１０、ＳＣＦＦ５１１を含む複数のＳＣＦＦを備えている。またスキャン２群６００は、ＳＣＦＦ６１０、ＳＣＦＦ６１１を含む複数のＳＣＦＦを備えている。スキャン１群５００のスキャンチェーンとスキャン２群６００のスキャンチェーンとは、ＳＣＦＦの数が同じである。スキャン１群５００のスキャンチェーンと、スキャン２群６００のスキャンチェーンとが対応している例として、システムのメイン処理回路をテストするためのスキャンチェーンと、システムのバックアップ処理回路をテストするためのスキャンチェーンとが挙げられる。ここでは、２つのスキャンチェーンの先頭から順に、ＳＣＦＦ５１０とＳＣＦＦ６１０とが対応し、ＳＣＦＦ５１１とＳＣＦＦ６１１とが対応している。なお、スキャンチェーンの先頭から順に対応していなくてもよく、少なくともＳＣＦＦが１対１で対応していればよい。
【０１２８】
スキャン１群バックアップデータ選択信号ＮＭ１は、スキャン制御部１００のＮＭ１端子から出力され、ＳＣＦＦ５１０、ＳＣＦＦ５１１、その他のスキャン１群５００のＳＣＦＦのＮＭ端子に入力される。スキャン１群ロード信号ＬＯＡＤ１は、スキャン制御部１００のＬＯＡＤ１端子から出力され、ＳＣＦＦ５１０、ＳＣＦＦ５１１、その他のスキャン１群５００のＳＣＦＦのＬＯＡＤ端子に入力される。スキャン１群スキャン制御信号ＳＭＣ１は、スキャン制御部１００のＳＭＣ１端子から出力され、ＳＣＦＦ５１０、ＳＣＦＦ５１１、その他のスキャン１群５００のＳＣＦＦのＳＭＣ端子に入力される。スキャン１群クロックＣＬＫ１は、スキャン制御部１００のＣＬＫ１端子から出力され、ＳＣＦＦ５１０、ＳＣＦＦ５２０、その他のスキャン１群のＳＣＦＦのＣＬＫ端子に入力される。
【０１２９】
スキャン１群５００の外部からの論理データＤ１１は、ＳＣＦＦ５１０のＤ端子に入力され、スキャン１群５００の外部からの論理データＤ１２は、ＳＣＦＦ５１１のＤＡＴＡ端子に入力される。スキャン１群５００の外部からのスキャンシフトデータＳ１１は、ＳＣＦＦ５１０のＳＩ端子に入力され、スキャン１群５００内でＳＣＦＦ５１０のＱ端子から出力される論理データＱ１１は、ＳＣＦＦ５１１のＳＩ端子に入力される。スキャン１群５００内でＳＣＦＦ５１１のＱ端子から出力される論理データＱ１２は、ＳＣＦＦ５１１に隣接する他のＳＣＦＦのＳＩ端子に入力される。スキャン１群５００のＳＣＦＦ５１０のＭＥＭ端子から出力されるスキャン１群バックアップデータＭＥ１２１は、スキャン２群６００のＳＣＦＦ６１０のＬＤ端子に入力される。スキャン１群５００のＳＣＦＦ５１１のＭＥＭ端子から出力されるスキャン１群バックアップデータＭＥ１２２は、スキャン２群６００のＳＣＦＦ６１１のＬＤ端子に入力される。
【０１３０】
スキャン２群バックアップデータ選択信号ＮＭ２は、スキャン制御部１００のＮＭ２端子から出力され、ＳＣＦＦ６１０、ＳＣＦＦ６１１、その他のＳＣＡＮ２群６００のＳＣＦＦのＮＭ端子に入力される。スキャン２群ロード信号ＬＯＡＤ２は、スキャン制御部１００のＬＯＡＤ２端子から出力され、ＳＣＦＦ６１０、ＳＣＦＦ６１１、その他のＳＣＡＮ２群６００のＳＣＦＦのＬＯＡＤ端子に入力される。スキャン２群スキャン制御信号ＳＭＣ２は、スキャン制御部１００のＳＭＣ２端子から出力され、ＳＣＦＦ６１０、ＳＣＦＦ６１１、その他のＳＣＡＮ２群６００のＳＣＦＦのＳＭＣ端子に入力する。スキャン２群クロックＣＬＫ２は、スキャン制御部１００のＣＬＫ２端子から出力され、ＳＣＦＦ６１０、ＳＣＦＦ６１１、その他のＳＣＡＮ２群６００のＳＣＦＦのＣＬＫ端子に入力される。
【０１３１】
スキャン２群６００の外部からの論理データＤ２１は、ＳＣＦＦ６１０のＤ端子に入力され、スキャン２群６００の外部からの論理データＤ２２は、ＳＣＦＦ６１１のＤＡＴＡ端子へ入力される。スキャン２群６００の外部からのスキャンシフトデータＳ２１は、ＳＣＦＦ６１０のＳＩ端子に入力される。スキャン２群６００内でＳＣＦＦ６１０のＱ端子から出力される論理データＱ２１は、ＳＣＦＦ６１１のＳＩ端子に入力される。スキャン２群６００内でＳＣＦＦ６１１のＱ端子から出力される論理データＱ２２は、ＳＣＦＦ６１１に隣接する他のＳＣＦＦのＳＩ端子に入力される。スキャン２群６００内のＳＣＦＦ６１０のＭＥＭ端子から出力されるバックアップデータＭＥ２１１は、スキャン１群５００内のＳＣＦＦ５１０のＬＤ端子に入力される。スキャン２群６００内のＳＣＦＦ６１１のＭＥＭ端子から出力されるバックアップデータＭＥ２１２は、スキャン１群５００内のＳＣＦＦ５１１のＬＤ端子に入力される。
【０１３２】
スキャン１群５００のスキャンチェーンは、外部からのＳ１１信号がＳＣＦＦ５１０のＳＩ端子に入力され、ＳＣＦＦ５１０のＱ端子からＳＣＦＦ５１１のＳＩ端子に入力され、ＳＣＦＦ５１１のＱ端子へと他のスキャン１群のＳＣＦＦへデータがシフトする構成である。
【０１３３】
スキャン２群６００のスキャンチェーンは、外部からのＳ２１信号がＳＣＦＦ６１０のＳＩ端子に入力され、ＳＣＦＦ６１０のＱ端子からＳＣＦＦ６１１のＳＩ端子に入力され、ＳＣＦＦ６１１のＱ端子へと他のスキャン２群のＳＣＦＦへデータがシフトする構成である。
【０１３４】
図８は、本発明の実施の形態２に係るＳＣＦＦの回路構成図である。このＳＣＦＦ２１は、スキャン１群５００におけるＳＣＦＦ５１０，５１１、スキャン２群６００におけるＳＣＦＦ６１０，６１１である。
【０１３５】
図に示されるように、ＳＣＦＦ２１は、セレクタ７００、７１０、７４０と、マスタラッチ７２０、スレーブラッチ７３０と、論理和７６０で構成されている。また、マスタラッチ７２０及びスレーブラッチ７３０はフリップフロップ２２を構成している。
【０１３６】
まず、ＳＣＦＦ２１内の入出力関係について説明する。スキャン制御部１００から入力されるバックアップデータ選択信号ＮＭは、セレクタ７１０のＳ端子に入力される。スキャン制御部１００から入力されるスキャン制御信号ＳＭＣは、セレクタ７００と７４０のＳ端子に入力される。外部から入力されるスキャンシフトデータＳＩは、セレクタ７００のＡ端子に入力される。外部から入力される論理データＤＡＴＡは、セレクタ７００のＢ端子に入力される。他方のＳＣＦＦ２１から入力されるロードデータＬＤは、セレクタ７１０のＢ端子に入力される。スキャン制御部１００から入力されるＬＯＡＤ信号は、論理和７６０の他方の入力端に入力される。スキャン制御部１００から入力されるクロックＣＬＫは、論理和７６０の一方の入力端とスレーブラッチ７３０のＧ端子に入力される。
【０１３７】
セレクタ７００から出力されるスキャン論理データＳＤＩＮは、セレクタ７１０のＡ端子に入力される。セレクタ７１０から出力されるスキャン論理ロードデータＳＤＬＩＮは、マスタラッチ７２０のＤ端子に入力される。マスタラッチ７２０のＱ端子から出力されるマスタラッチ出力ＬＤ１は、スレーブラッチ７３０のＤ端子とセレクタ７４０のＡ端子に入力される。スレーブラッチ７３０のＱ端子から出力されるスレーブラッチ出力Ｑ（論理データＱ）は、セレクタ７４０のＢ端子に入力されるとともに、ＳＣＦＦ２１の外部へ出力される。論理和７６０から出力されるマスタクロックＭＣＬＫは、マスタラッチ７２０のＧＢ端子に入力される。セレクタ７４０から出力されるバックアップデータＭＥＭは、ＳＣＦＦ２１の外部へ出力される。
【０１３８】
次に、ＳＣＦＦ２１内の各構成について説明する。図８のセレクタ７００、７１０、７４０、マスタラッチ７２０、スレーブラッチ７３０、論理和７６０は、図３のＳＣＦＦ１１におけるセレクタ４００、４１０、４４０、マスタラッチ４２０、スレーブラッチ４３０、論理和４６０と同様の構成である。図８のＳＣＦＦ２１では、図３のＳＣＦＦ１１のセレクタ４５０を備えていない点のみが相違している。
【０１３９】
すなわち、セレクタ７００は、スキャン制御信号ＳＭＣに基づいて、ＳＣＦＦ２１に入力される論理データＤＡＴＡまたはスキャンシフトデータＳＩを、セレクタ７１０のみに出力し、スレーブラッチ７３０から出力される論理データＱ（スレーブラッチ出力ＬＤ２）が、外部へ出力される。また、バックアップデータ選択信号ＮＭに基づいて、セレクタ７１０のみが制御され、スキャン論理ロードデータＳＤＬＩＮがマスタラッチ７２０へ出力される。
【０１４０】
したがって、図８のＳＣＦＦ２１は、マスタラッチ７２０及びスレーブラッチ７３０（フリップフロップ２２）を介さないスルーパス動作は行わず、常に、マスタラッチ７２０及びスレーブラッチ７３０（フリップフロップ２２）を介して論理データＱが出力される。
【０１４１】
図９は、本発明の実施の形態２に係る故障診断動作を示すフローチャート図である。なお、図５と同様の動作については説明を適宜省略する。
【０１４２】
まず、半導体集積回路２０の故障診断が開始されると、ステップＳＴ１１において、動作モードをスキャン１群５００のテストモードに設定する。
【０１４３】
次いで、ステップＳＴ１２において、スキャン１群５００のＳＣＦＦ５１０，５１１のスレーブデータをスキャン２群６００のＳＣＦＦ６１０，６１１のマスタラッチへ転送する。すなわち、スキャン制御部１００は、スキャン１群５００のＳＣＦＦ５１０，５１１をスレーブラッチ出力モード（図４のモード１）に設定し、スキャン２群６００のＳＣＦＦ６１０，６１１をマスタラッチ入力モード（図４のモード２）に設定する。
【０１４４】
そうすると、スキャン１群５００のＳＣＦＦ５１０のデータバックアップでは、スキャン１群５００に配置されたＳＣＦＦ５１０のスレーブラッチ７３０に格納されたデータが、ＳＣＦＦ５１０のＭＥＭ出力端子から出力される。出力されたデータは、他の隣接するスキャンチェーン構成のスキャン２群６００に配置されたＳＣＦＦ６１０のＬＤ端子から入力され、ＳＣＦＦ６１０のマスタラッチ７２０に一時記憶される。
【０１４５】
また、スキャン１群５００のＳＣＦＦ５１１のデータバックアップでは、スキャン１群５００に配置されたＳＣＦＦ５１１のスレーブラッチ７３０に格納されたデータが、ＳＣＦＦ５１１のＭＥＭ出力端子から出力される。出力されたデータは、他の隣接するスキャンチェーン構成のスキャン２群６００に配置されたＳＣＦＦ６１１のＬＤ端子から入力され、ＳＣＦＦ６１１のマスタラッチ７２０に一時記憶される。
【０１４６】
次いで、ステップＳＴ１３において、スキャン１群５００のスキャンテストを実施する。すなわち、スキャン制御部１００は、スキャン１群５００のＳＣＦＦ５１０，５１１をキャプチャモード（図４のモード３），スキャンシフトモード（図４のモード４）に設定する。
【０１４７】
そうすると、スキャン１群５００に配置されたＳＣＦＦ５１０，５１１に対し予め設定されたスキャン条件でスキャンテストが実施される。本実施形態では、実施の形態１のようにスキャン２群をスルーパス動作させずに、スキャン１群のスキャンテストを行う。
【０１４８】
スキャン１群５００のスキャンシフト動作は、スキャン１群５００内のスキャンチェーンのパス上で行われる。具体的には、外部からスキャン１群５００のＳ１１に入力されたスキャンシフトデータが、ＳＣＦＦ５１０のＳＩ端子に入力され、Ｓ１１をシフトしたデータＱ１１が、ＳＣＦＦ５１０のＱ端子からＳＣＦＦ５１１のＳＩ端子に入力され、Ｑ１１をシフトしたデータＱ１２がＳＣＦＦ５１１のＱ端子から出力され、他の隣接するＳＣＦＦのＳＩ端子へデータが入力される。これにより、スキャン１群５００内のＳＣＦＦがシフトレジスタとしてスキャンシフトデータをシフトする。本実施形態では、スキャンシフトデータは、スキャン１群５００内のスキャンチェーンのみ通過し、スキャン２群６００を通過することはない。
【０１４９】
次いで、ステップＳＴ１４において、スキャン２群６００のＳＣＦＦ６１０，６１１のマスタラッチ７２０のデータをスキャン１群５００のＳＣＦＦ５１０，５１１のスレーブラッチ７３０へリストアする。すなわち、スキャン制御部１００は、スキャン２群６００のＳＣＦＦ６１０，６１１をマスタラッチ出力モード（図４のモード７）に設定し、スキャン１群５００のＳＣＦＦ５１０，５１１をスレーブラッチ入力モード（図４のモード８）に設定する。
【０１５０】
そうすると、スキャン２群６００のＳＣＦＦ６１０のデータリストアでは、スキャン２群６００のＳＣＦＦ６１０のマスタラッチ７２０に一時記憶したデータが、ＳＣＦＦ６１０のＭＥＭ端子から出力される。出力されたデータは、スキャン１群５００に配置されたＳＣＦＦ５１０のＬＤ端子に入力され、ＳＣＦＦ５１０のマスタラッチ７２０を経由してスレーブラッチ７３０にリストアされる。
【０１５１】
また、スキャン２群６００のＳＣＦＦ６１１のデータリストアでは、スキャン２群６００のＳＣＦＦ６１１のマスタラッチ７２０に一時記憶したデータが、ＳＣＦＦ６１１のＭＥＭ端子から出力される。出力されたデータは、スキャン１群５００に配置されたＳＣＦＦ５１１のＬＤ端子に入力され、ＳＣＦＦ５１１のマスタラッチ７２０を経由してスレーブラッチ７３０にリストアされる。これにより、スキャン１群５００のテストが終了する。
【０１５２】
次いで、ステップＳＴ１５〜ステップＳＴ１８では、ステップＳＴ１１〜ステップ１４と同様に、スキャン２群のテストが行われる。すなわち、動作モードをスキャン２群３００のテストモードに設定し（ＳＴ１５）、スキャン２群６００のＳＣＦＦ６１０，６１１のスレーブデータをスキャン１群５００のＳＣＦＦ５１０，５１１のマスタラッチ７２０へ転送し（ＳＴ１６）、スキャン２群６００のスキャンテストを実施し（ＳＴ１７）、スキャン１群５００のＳＣＦＦ５１０，５１１のマスタラッチ７２０のデータをスキャン２群６００のＳＣＦＦ６１０，６１１のスレーブラッチ７３０へリストアする（ＳＴ１８）。これにより、スキャン２群６００のテストが終了し、半導体集積回路２０のテストが完了する。
【０１５３】
このように、本実施形態では、テスト開始前にテスト対象のスキャン１群（スキャンチェーンＡ）のＳＣＦＦのデータをスキャン２群（スキャンチェーンＢ）のＳＣＦＦのマスタラッチに一時的にデータをバックアップする。したがって、実施の形態１と同様に、ＳＣＦＦにより内部状態のバックアップを行うことにより、従来の半導体集積回路と比べて、回路規模の増大を防ぐことができる。
【０１５４】
さらに、本実施形態では、スキャンチェーンごとにモードを切り替えられることから、ＳＣＦＦにスルーパスモードが不要であるため、回路規模をさらに削減することができる。図４のスルーパスモード（モード５、モード６）の機能を有する必要がなく、図２のＳＣＦＦの内部に備えられていたセレクタ４５０を削減できる。
【０１５５】
つまり、ＳＣＦＦの機能を簡素化し、セル数、回路規模を削減し故障診断前の状態に復帰することが可能となる。
【０１５６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、半導体集積回路が有する複数のＳＣＦＦについて、全てのＳＣＦＦに上記発明を適用してもよいし、一部のＳＣＦＦにのみ上記発明を適用してもよい。例えば、システムの安全動作に必要な内部状態のみバックアップしてもよい。すなわち、内部状態のバックアップが必要なＳＣＦＦにのみ上記発明を適用することで、さらに回路規模の増大を防ぐことができる。
【符号の説明】
【０１５７】
１０，２０  半導体集積回路
１１，２１  スキャンフリップフロップ（ＳＣＦＦ）
１２，２２  フリップフロップ
１００  スキャン制御部
２００，５００  スキャン１群
２１０，５１０，５１１  スキャンフリップフロップ
３００，６００  スキャン２群
３１０，６１０，６１１  スキャンフリップフロップ
４００，４１０，４４０，４５０  セレクタ
４２０，７２０  マスタラッチ
４３０，７３０  スレーブラッチ
４６０，７６０  論理和
７００，７１０，７４０  セレクタ
ＳＹＳＣＬＫ  システムクロック
ＭＤ１，ＭＤ２  モード信号
ＣＬＫ    クロック
ＬＯＡＤ  ロード信号
ＮＭ      バックアップデータ選択信号
ＳＭＣ    スキャン制御信号
ＳＩ      スキャンシフトデータ
ＤＡＴＡ  入力論理データ
ＬＤ      ロードデータ
Ｑ        論理データ
ＭＥＭ    バックアップデータ
【図１】
2013024788.tif 000003
【図２】
2013024788.tif 000004
【図３】
2013024788.tif 000005
【図４】
2013024788.tif 000006
【図５】
2013024788.tif 000007
【図６】
2013024788.tif 000008
【図７】
2013024788.tif 000009
【図８】
2013024788.tif 000010
【図９】
2013024788.tif 000011
【図１０】
2013024788.tif 000012
【図１１】
2013024788.tif 000013