"内部のフリップフロップを介した通常のフリップフロップ動作または前記フリップフロップを介したスキャンテスト動作のいずれかを行う第1及び第2のスキャンフリップフロップと、前記第1及び第2のスキャンフリップフロップの前記スキャンテスト動作を制御するスキャン制御部と、を備える半導体集積回路であって、前記第1のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第1のスキャンフリップフロップ内の第1のフリップフロップが内部状態として保持しているバックアップデータを出力する第1のバックアップ出力部を有し、前記第2のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第1のスキャンフリップフロップから出力されたバックアップデータを、前記第2のスキャンフリップフロップ内の第2のフリップフロップに保持する第1のバックアップ入力部を有する、半導体集積回路。前記第1のバックアップ出力部は、前記第1のスキャンフリップフロップのスキャンテストが開始する前に、前記バックアップデータを出力し、前記第1のバックアップ入力部は、前記第1のスキャンフリップフロップのスキャンテストが終了するまで、前記バックアップデータを保持する、請求項1に記載の半導体集積回路。前記第1のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、前記バックアップデータは、前記スレーブラッチが保持するデータである、請求項1または2に記載の半導体集積回路。前記第2のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、前記マスタラッチが、前記バックアップデータを保持する、請求項1乃至3のいずれか一項に記載の半導体集積回路。前記第2のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第2のフリップフロップが保持したバックアップデータを出力する第2のバックアップ出力部を有し、前記第1のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第2のスキャンフリップフロップから出力されたバックアップデータを前記第1のフリップフロップの内部状態に回復する第2のバックアップ入力部を有する、請求項1乃至4のいずれか一項に記載の半導体集積回路。前記第2のバックアップ出力部は、前記第1のスキャンフリップフロップのスキャンテストが終了した後、前記バックアップデータを出力し、前記第2のバックアップ入力部は、前記第1のスキャンフリップフロップが通常のフリップフロップ動作を開始する前に、前記バックアップデータを回復する、請求項5に記載の半導体集積回路。前記第2のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、前記マスタラッチが、前記バックアップデータを出力する、請求項5または6に記載の半導体集積回路。前記第1のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、前記バックアップデータは、前記スレーブラッチに保持されて前記内部状態が回復する、請求項5乃至7のいずれか一項に記載の半導体集積回路。前記第2のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第1のスキャンフリップフロップからスキャンテスト動作により出力されたテストデータを、前記第2のフリップフロップを介さずスルーパスにより出力するスルーパス出力部を有する、請求項1乃至8のいずれか一項に記載の半導体集積回路。前記スルーパス出力部は、前記第1のスキャンフリップフロップのスキャンテストの開始から終了までの間、前記スルーパスにより出力する、請求項9に記載の半導体集積回路。前記スルーパス出力部は、前記第2のフリップフロップが前記バックアップデータを保持している間、前記スルーパスにより出力する、請求項9に記載の半導体集積回路。複数の前記第1のスキャンフリップフロップと、前記第1のスキャンフリップフロップと同じ数の複数の前記第2のスキャンフリップフロップとを備え、前記複数の第1のスキャンフリップフロップのそれぞれは、対応する前記複数の第2のスキャンフリップフロップへ前記バックアップデータを出力し、前記複数の第2のスキャンフリップフロップのそれぞれは、前記複数の第1のスキャンフリップフロップから出力された前記バックアップデータを保持する、請求項1乃至11のいずれか一項に記載の半導体集積回路。前記複数の第2のスキャンフリップフロップのそれぞれは、対応する前記複数の第1のスキャンフリップフロップへ前記保持したバックアップデータを出力し、前記複数の第1のスキャンフリップフロップのそれぞれは、前記複数の第2のスキャンフリップフロップから出力された前記バックアップデータを内部状態に回復する、請求項12に記載の半導体集積回路。前記複数の第1のスキャンフリップフロップは、それぞれ接続されてスキャンチェーンを構成し、前記複数の第2のスキャンフリップフロップは、それぞれ接続されて、前記複数の第1のスキャンフリップフロップとは別のスキャンチェーンを構成する、請求項12または13に記載の半導体集積回路。入力データを保持し出力するマスタラッチと、前記マスタラッチが出力するデータを保持し出力するスレーブラッチとを備えるスキャンフリップフロップであって、前記マスタラッチが保持するマスタデータと前記スレーブラッチが保持するスレーブデータとのいずれかをバックアップデータとして出力する第1のセレクタ回路と、外部の論理回路から入力される入力論理データと、スキャンシフトするためのスキャンシフトデータと、他のスキャンフリップフロップから出力される前記バックアップデータとのいずれかを、前記マスタラッチへ入力する第2のセレクタ回路と、を備えるスキャンフリップフロップ。前記第1のセレクタ回路は、動作モードを通常動作モードもしくはスキャンテストモードに切り替えるためのスキャンモード制御信号に基づいて、前記マスタデータまたは前記スレーブデータを出力する、請求項15に記載のスキャンフリップフロップ。前記第2のセレクタ回路は、出力するバックアップデータを選択するためのバックアップデータ選択信号に基づいて、前記入力論理データ、前記スキャンシフトデータ、または前記バックアップデータを出力する、請求項15または16に記載のスキャンフリップフロップ。前記マスタラッチ及び前記スレーブラッチの保持動作を制御するクロック信号と、前記マスタラッチの保持動作を制御するロード信号との論理和の結果を出力する論理和回路を有し、前記マスタラッチは、前記論理和回路の出力に基づき、前記第2のセレクタ回路の出力データを保持し、前記スレーブラッチは、前記クロック信号に基づき、前記マスタラッチの出力データを保持する、請求項15乃至17のいずれか一項に記載のスキャンフリップフロップ。前記入力論理データ、前記スキャンシフトデータ、または前記スレーブデータのいずれかを、前記スキャンフリップフロップの出力データとして出力する、第3のセレクタ回路を備える、請求項15乃至18のいずれか一項に記載のスキャンフリップフロップ。前記第3のセレクタ回路は、出力するバックアップデータを選択するためのバックアップデータ選択信号に基づいて、前記入力論理データ、前記スキャンシフトデータ、または前記スレーブデータのいずれかを出力する、請求項19に記載のスキャンフリップフロップ。動作モードを通常動作モードもしくはスキャンテストモードに切り替えるためのスキャンモード制御信号に基づいて、前記入力論理データまたは前記スキャンシフトデータのいずれかを、前記第2のセレクタ回路へ出力する、第4のセレクタ回路を備える、請求項15乃至20のいずれか一項に記載のスキャンフリップフロップ。動作モードを通常動作モードもしくはスキャンテストモードに切り替えるためのスキャンモード制御信号に基づいて、前記入力論理データまたは前記スキャンシフトデータのいずれかを、前記第2のセレクタ回路及び前記第3のセレクタ回路へ出力する、第4のセレクタ回路を備える、請求項19または20に記載のスキャンフリップフロップ。内部のフリップフロップを介した通常のフリップフロップ動作または前記フリップフロップを介したスキャンテスト動作のいずれかを行う第1及び第2のスキャンフリップフロップを備える半導体集積回路のテスト方法であって、前記第1のスキャンフリップフロップは、前記第1のスキャンフリップフロップ内の第1のフリップフロップが内部状態として保持しているバックアップデータを出力し、前記第2のスキャンフリップフロップは、前記第1のスキャンフリップフロップから出力されたバックアップデータを、前記第2のスキャンフリップフロップ内の第2のフリップフロップに保持する、半導体集積回路のテスト方法。前記第1のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、前記バックアップデータは、前記スレーブラッチが保持するデータである、請求項23に記載の半導体集積回路のテスト方法。前記第2のフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチの出力データを保持するスレーブラッチとを有し、前記マスタラッチが、前記バックアップデータを保持する、請求項23または24に記載の半導体集積回路のテスト方法。上記のように、特許文献1に記載された従来の半導体集積回路では、稼働中の故障診断を可能にするため、スキャンフリップフロップのデータである論理回路の内部状態を記憶するレジスタと、保持しておいた内部状態を論理回路に復帰する復帰回路とが、論理回路とは別に新たに必要となる。近年、論理回路の大規模化が進んでいるため、内部状態の記憶及び復帰を図るためには、レジスタ及び復帰回路の回路規模も大規模なものになる。したがって、従来の半導体集積回路では、稼働中の故障診断を行うために内部状態の退避及び復帰を図ろうとすると、回路規模が増大するという問題があった。本発明に係る半導体集積回路は、内部のフリップフロップを介した通常のフリップフロップ動作または前記フリップフロップを介したスキャンテスト動作のいずれかを行う第1及び第2のスキャンフリップフロップと、前記第1及び第2のスキャンフリップフロップの前記スキャンテスト動作を制御するスキャン制御部と、を備える半導体集積回路であって、前記第1のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第1のスキャンフリップフロップ内の第1のフリップフロップが内部状態として保持しているバックアップデータを出力するバックアップ出力部を有し、前記第2のスキャンフリップフロップは、前記スキャン制御部の制御に基づいて、前記第1のスキャンフリップフロップから出力されたバックアップデータを、前記第2のスキャンフリップフロップ内の第2のフリップフロップに保持するバックアップ入力部を有するものである。本発明に係るフリップフロップは、入力データを保持し出力するマスタラッチと、前記マスタラッチが出力するデータを保持し出力するスレーブラッチとを備えるスキャンフリップフロップであって、前記マスタラッチが保持するマスタデータと前記スレーブラッチが保持するスレーブデータとのいずれかをバックアップデータとして出力する第1のセレクタ回路と、外部の論理回路から入力される入力論理データと、スキャンシフトするためのスキャンシフトデータと、他のスキャンフリップフロップから出力される前記バックアップデータとのいずれかを、前記マスタラッチへ入力する第2のセレクタ回路と、を備えるものである。本発明に係る半導体集積回路のテスト方法は、内部のフリップフロップを介した通常のフリップフロップ動作または前記フリップフロップを介したスキャンテスト動作のいずれかを行う第1及び第2のスキャンフリップフロップを備える半導体集積回路のテスト方法であって、前記第1のスキャンフリップフロップは、前記第1のスキャンフリップフロップ内の第1のフリップフロップが内部状態として保持しているバックアップデータを出力し、前記第2のスキャンフリップフロップは、前記第1のスキャンフリップフロップから出力されたバックアップデータを、前記第2のスキャンフリップフロップ内の第2のフリップフロップに保持するものである。本発明では、第1のスキャンフリップフロップが内部状態をバックアップデータとして出力し、第2のスキャンフリップフロップが第1のスキャンフリップフロップのバックアップデータを保持するため、従来の半導体集積回路ように新たにレジスタ及び復帰回路を備える必要がなく、回路規模の増大を防ぐことができる。本発明によれば、内部状態の退避及び復帰により稼働中の故障診断が可能であるとともに、回路規模の増大を防ぐことが可能な半導体集積回路、フリップフロップ及び半導体集積回路のテスト方法を提供することができる。本発明の実施の形態1以下、図面を参照して本発明の実施の形態1について説明する。まず、図1~図4を用いて、本発明の実施の形態1に係る半導体集積回路の構成について説明する。図1は、本発明の実施の形態1に係る半導体集積回路の概略構成図である。図に示されるように、この半導体集積回路10は、スキャン制御部100と、スキャン1群200と、スキャン2群300を備えている。半導体集積回路10は、不図示の論理回路を多数備える1チップの半導体装置である。半導体集積回路10は、稼働中に、内部の論理回路のテスト故障診断を行う。すなわち、半導体集積回路10は、動作モードに従って動作し、動作モードとして、通常の動作を行う実動作モードと、スキャンテストを行うテストモードとを有している。さらに、テストモードとして、スキャン1群200のスキャンテストを行うスキャン1群スキャンテストモードと、スキャン2群300のスキャンテストを行うスキャン2群スキャンテストモードを有している。スキャン1群200は、1つ以上のスキャンフリップフロップ以下SCFFと略すとしてSCFF210を備えている。またスキャン2群300は、スキャン1群と同数のSCFFとしてSCFF310を備えている。これらのスキャン群は、複数のSCFFを含むスキャンテストを実施するためのグループであり、スキャン群ごとにスキャンテストが行われる。スキャン1群200の各SCFF210と、スキャン2群300の各SCFF310とは、それぞれ1対1で対応しており、SCFF210に対しスキャンテストする場合、SCFF210の内部状態をSCFF310にバックアップし、また、SCFF310に対しスキャンテストする場合、SCFF310の内部状態をSCFF210にバックアップする。なお、1対のSCFF210、SCFF310のうち、いずれかのSCFFを、一方のSCFF、または、他方のSCFFと呼ぶ場合がある。本実施形態では、スキャン1群200とスキャン2群300とは、含まれるSCFFの数が同じであればよく、スキャン1群200内の各SCFF210に関連性は不要であり、スキャン2群300内の各SCFF310にも関連性は不要である。すなわち、少なくとも、一方のスキャン群のテスト中に、他方のスキャン群はテストせずにバックアップできればよい。スキャン制御部100は、入力されるモード信号に従って、スキャン1群200及びスキャン2群300のテスト動作を制御する。スキャン制御部100には、スキャン群の動作モードを設定するためのモード信号MD1,MD2と、スキャンテストに必要な動作クロックを供給するシステムクロックSYSCLKと、SCFFのスキャンテストモードを制御するスキャン制御信号SMCが入力される。例えば、半導体集積回路10には、外部端子が設けられており、外部のテスト装置から外部端子を介してモード信号MD1,MD2、システムクロックSYSCLK、スキャン制御信号SMCが入力される。なお、システムクロックSYSCLKは、半導体集積回路10の内部のクロック発生回路から供給されてもよい。具体的には、モード信号MD1とMD2はスキャン制御部100のMD1端子とMD2端子に入力され、システムクロックSYSCLKはスキャン制御部100のSYSCLK端子に入力され、スキャン制御信号SMCはスキャン制御部100のSMC端子に入力される。また、スキャン制御部100は、SCFFの内部状態であるバックアップデータの入出力を制御するバックアップデータ選択信号NM、スキャン制御信号SMC、SCFFの保持動作保持状態を制御するロード信号LOAD、SCFFに動作クロックを供給するクロックCLKを、スキャン1群200及びスキャン2群300のSCFFにそれぞれ出力する。後述するようにスキャン1群200、スキャン2群300のテストを行うため、スキャン制御部100は、入力されるモード信号MD1、MD2に基づいて、スキャン1群200、スキャン2群300を選択し、SCFFへ出力するバックアップデータ選択信号NM、ロード信号LOADを生成し、また、入力されるシステムクロックSYSCLKに基づいて、SCFFへ出力するクロックCLKを生成し、さらに、入力されるスキャン制御信号SMCに基づいて、SCFFへ出力するスキャン制御信号SMCを生成する。具体的には、スキャン1群用のスキャン1群バックアップデータ選択信号NM1は、スキャン制御部100のNM1端子から出力されて、SCFF210のNM端子に入力される。スキャン1群用のスキャン1群ロード信号LOAD1は、スキャン制御部100のLOAD1端子から出力されて、SCFF210のLOAD端子に入力される。スキャン1群用のスキャン1群スキャン制御信号SMC1は、スキャン制御部100のSMC1端子から出力されて、SCFF210のSMC端子に入力される。スキャン1群用のスキャン1群クロックCLK1は、スキャン制御部100のCLK1端子から出力されて、SCFF210のCLK端子に入力される。同様に、スキャン2群用のスキャン2群バックアップデータ選択信号NM2は、スキャン制御部100のNM2端子から出力されて、SCFF310のNM端子に入力される。スキャン2群用のスキャン2群ロード信号LOAD2は、スキャン制御部100のLOAD2端子から出力されて、SCFF310のCLK端子に入力される。スキャン2群用のスキャン2群スキャン制御信号SMC2は、スキャン制御部100のSMC2端子から出力されて、SCFF310のSMC端子に入力される。スキャン2群用のスキャン2群クロックCLK2は、スキャン制御部100のCLK2端子から出力されて、SCFF310のCLK端子に入力される。さらに、スキャン1群200、スキャン2群300の各SCFFは、他の論理回路からの論理データDATA、スキャンテストにおけるスキャンシフトデータSIが入力され、また、SCFFの出力データである論理データQ、内部状態をバックアップするためのバックアップデータMEMを出力する。例えば、論理データDATAは、半導体集積回路10の内部または外部の論理回路から入力され、スキャンシフトデータSIは、半導体集積回路10の外部のテスト装置、または、他方のSCFFから入力される。具体的には、スキャン1群用の論理データD11は、外部からSCFF210のDATA端子に入力される。スキャン1群用のスキャンシフトデータS11は、外部からSCFF210のSI端子に入力される。スキャン1群が出力する論理データQ11は、SCFF210のQ端子からSCFF310のSI端子に入力される。スキャン1群が出力するバックアップデータME121は、SCFF210のMEM端子からSCFF310のLD端子に入力される。同様に、スキャン2群用の論理データD21は、外部からSCFF310のDATA端子に入力される。スキャン2群が出力する論理データQ21は、SCFF310のQ端子から外部へ出力される。スキャン2群が出力するバックアップデータME211は、SCFF310のMEM端子から出力され、SCFF210のLD端子に入力される。例えば、論理データQ21は、半導体集積回路10の外部端子を介してテスト装置へ出力され、テスト装置は、このデータにより論理回路の故障診断を行う。図2は、本発明の実施の形態1に係るスキャン制御部100において、入力されるモード信号MD1,MD2と動作モードの関係を示す動作真理値表である。スキャン制御部100にモード信号MD1=0、MD2=0が入力された場合は、実動作モードである。この場合、スキャン制御部100は、スキャン1群200のSCFF210、スキャン2群300のSCFF310が、通常動作を行うように制御する。スキャン制御部100にモード信号MD1=0、MD2=1が入力された場合は、スキャン2群スキャンテストモードである。この場合、スキャン制御部100は、スキャン2群300のSCFF310がスキャンテストを行うように制御する。また、スキャン2群300のSCFF310の内部状態を、スキャンテスト前に、スキャン1群200のSCFF210にバックアップ退避し、スキャンテスト後に、スキャン1群200のSCFF210にバックアップした内部状態を、スキャン2群300のSCFF310にリストア復帰する。また、スキャン制御部100は、スキャン1群200のSCFF210がスルーパス動作を行うように制御する。スルーパスとは、後述するように、SCFF内のフリップフロップを介さずにバイパスするだけの動作である。スルーパスにより、SCFF内のフリップフロップのデータの破壊を防ぐことができ、また、SCFF間を接続する信号線の故障診断を行うこともできる。スキャン制御部100にモード信号MD1=1、MD2=0が入力された場合は、スキャン1群スキャンテストモードである。この場合、スキャン制御部100は、スキャン1群200のSCFF210がスキャンテストを行うように制御する。また、スキャン1群200のSCFF210の内部状態を、スキャンテスト前に、スキャン2群300のSCFF310にバックアップし、スキャンテスト後に、スキャン2群300のSCFF310にバックアップした内部状態を、スキャン1群200のSCFF210にリストアする。また、スキャン制御部100は、スキャン2群300のSCFF310がスルーパス動作を行うように制御する。なお、スキャン制御部100にモード信号MD1=1、MD2=1が入力された場合は、不定である。この場合、任意にSCFFを制御してもよい。例えば、内部状態のバックアップを行わずにスキャンテストを行ってもよい。図3は、本発明の実施の形態1に係るSCFFの回路構成マクロ構成を示している。このSCFF11は、スキャン1群200におけるSCFF210、スキャン2群300におけるSCFF310である。図に示されるように、SCFF11は、セレクタ400、410、440、450と、マスタラッチ420、スレーブラッチ430と、論理和460で構成されている。また、マスタラッチ420及びスレーブラッチ430はフリップフロップ12を構成している。図6の従来のSCFFと対比すると、図3のセレクタ400及びフリップフロップ12が、図6のセレクタ7及びフリップフロップ8と同様の構成である。すなわち、本実施形態では、従来の構成に対し、セレクタ410、440、450及び論理和460が追加されている。また、入出力信号については、バックアップデータ選択信号NM、ロードデータLD、ロード信号LOAD、バックアップデータMEMが追加されている。SCFF11は、フリップフロップ12を介した通常のフリップフロップ動作またはフリップフロップ12を介したスキャンテスト動作のいずれかを行う。なお、通常のフリップフロップ動作とは、実動作モードにおいて、入力される論理データをフリップフロップ12により保持し出力する動作であり、スキャンテスト動作とは、スキャンテストモードにおいて、入力されるスキャンシフトデータをシフトして出力、あるいは、入力されるキャプチャデータを出力する動作である。まず、SCFF11内の入出力関係について説明する。スキャン制御部100から入力されるバックアップデータ選択信号NMは、セレクタ410と450のS端子に入力される。スキャン制御部100から入力されるスキャン制御信号SMCは、セレクタ400と440のS端子に入力される。外部から入力されるスキャンシフトデータSIは、セレクタ400のA端子に入力される。外部から入力される論理データDATAは、セレクタ400のB端子に入力される。他方のSCFF11から入力されるロードデータLDは、セレクタ410のB端子に入力される。スキャン制御部100から入力されるLOAD信号は、論理和460の他方の入力端に入力される。スキャン制御部100から入力されるクロックCLKは、論理和460の一方の入力端とスレーブラッチ430のG端子に入力される。セレクタ400から出力されるスキャン論理データSDINは、セレクタ410のA端子とセレクタ450のB端子に入力される。セレクタ410から出力されるスキャン論理ロードデータSDLINは、マスタラッチ420のD端子に入力される。マスタラッチ420のQ端子から出力されるマスタラッチ出力LD1は、スレーブラッチ430のD端子とセレクタ440のA端子に入力される。スレーブラッチ430のQ端子から出力されるスレーブラッチ出力LD2は、セレクタ450のA端子とセレクタ440のB端子に入力される。論理和460から出力されるマスタクロックMCLKは、マスタラッチ420のGB端子に入力される。セレクタ450から出力される論理データQはSCFF11の外部へ出力される。セレクタ440から出力されるバックアップデータMEMはSCFF11の外部へ出力される。次に、SCFF11内の各構成について説明する。セレクタ400第4のセレクタ回路は、スキャン制御信号SMCに基づいて、SCFF11に入力される論理データDATAまたはスキャンシフトデータSIを、セレクタ410及び450へ出力する。すなわち、セレクタ400は、スキャン制御信号SMCに基づいて、論理データDATAまたはスキャンシフトデータSIを、マスタラッチ420及びスレーブラッチ430フリップフロップ12に保持させる選択回路であり、また、スキャン制御信号SMCに基づいて、論理データDATAまたはスキャンシフトデータSIを、マスタラッチ420及びスレーブラッチ430フリップフロップ12を介さずにスルーパス動作によりSCFF11から出力させる選択回路である。セレクタ410第2のセレクタ回路は、バックアップデータ選択信号NMに基づいて、セレクタ400から出力される論理データDATAもしくはスキャンシフトデータSIスキャン論理データSDIN、または、SCFF11に入力されるロードデータLDのいずれかを、マスタラッチ420へ出力する。すなわち、セレクタ410は、バックアップデータ選択信号NMに基づいて、ロードデータLDとして他方のSCFF11から入力されるバックアップデータを、マスタラッチ420またはスレーブラッチ430フリップフロップ12に保持させる選択回路である。セレクタ410は、マスタラッチ420と共に、他方のSCFF11の内部状態であるバックアップデータを入力し保持するバックアップ入力部でもある。このバックアップデータは少なくとも他方のSCFF11のスキャンテストが終了するまで保持される。また、セレクタ410は、スレーブラッチ430と共に、他方のSCFF11がバックアップしていた、自SCFF11の内部状態であるバックアップデータを入力し内部状態に回復するバックアップ入力部でもある。このバックアップデータは少なくともSCFF11のスキャンテストが終了し通常の動作を開始する前までに回復させる。論理和460は、SCFF11に入力されるロード信号LOADとクロックCLKとを論理和演算し、その演算結果をマスタラッチ420へ出力する。ロード信号LOADが1であれば、マスタラッチ420に1が入力され、マスタラッチ420はデータを保持したままとなる。すなわち、論理和460は、ロード信号LOADに基づいて、マスタラッチ420の保持動作を制御する回路である。マスタラッチ420は、クロックCLKまたはロード信号LOADマスタクロックMCLKに基づいて、SCFF11に入力される論理データDATA、スキャンシフトデータSI、またはロードデータLDスキャン論理ロードデータSDLINを一時的に保持する。例えば、マスタラッチ420は、GB端子に入力されるクロックCLKの立ち下りのタイミングで、D端子に入力されるデータを保持し、保持したデータをQ端子から出力する。スレーブラッチ430は、クロックCLKに基づいて、マスタラッチ420が保持したデータマスタラッチ出力LD1を一時的に保持する。例えば、スレーブラッチ430は、G端子に入力されるクロックCLKの立ち上りのタイミングで、D端子に入力されるデータを保持し、保持したデータをQ端子から出力する。スレーブラッチ430が保持しているデータが、SCFF11フリップフロップ12の内部状態である。本実施形態では、稼働中のテストを可能にするために、この内部状態のバックアップ及びリストアを行う。すなわち、スレーブラッチ430の保持している内部状態を、他方のSCFF11のマスタラッチ420へバックアップする。また、他方のSCFF11のマスタラッチ420がバックアップしているバックアップデータを、自SCFF11のスレーブラッチ430へリストアする。セレクタ440第1のセレクタ回路は、スキャン制御信号SMCに基づいて、マスタラッチ420から出力される論理データQマスタラッチ出力LD1またはスレーブラッチ430から出力される論理データQスレーブラッチ出力LD2をバックアップデータMEMとして外部へ出力する。すなわち、セレクタ440は、スキャン制御信号SMCに基づいて、スレーブラッチ430が保持している自SCFFの内部状態、あるいは、マスタラッチ420が保持している他方のSCFFの内部状態を他方のSCFFへ出力するバックアップ出力部である。スレーブラッチ430が保持する自SCFF11の内部状態であるバックアップデータMEMは、少なくともSCFF11のスキャンテストが開始される前に出力される。また、マスタラッチ420が保持する他方のSCFF11の内部状態であるバックアップデータMEMは、少なくとも他方のSCFF11のスキャンテストが終了した後に出力される。セレクタ450第3のセレクタ回路は、バックアップデータ選択信号NMに基づいて、セレクタ400から出力される論理データDATAもしくはスキャンシフトデータSIスキャン論理データSDIN、または、スレーブラッチ430から出力される論理データQスレーブラッチ出力LD2をSCFF11の論理データQとして外部へ出力する。すなわち、セレクタ450は、バックアップデータ選択信号NMに基づいて、論理データDATAまたはスキャンシフトデータSIを、マスタラッチ420及びスレーブラッチ430フリップフロップ12を介さずにSCFF11から出力させるスルーパス出力部である。少なくとも他方のSCFF11のスキャンテストが実施されている間、すなわち、スキャンテストの開始から終了まで、また、他方のSCFF11のバックアップデータを保持している間、スルーパスにより出力される。図4は、本発明の実施の形態1に係るSCFFにおいて、各動作モードと、入力信号及び出力信号との関係を示す真理値表である。図のモード1~8は、テストモード時におけるSCFF11のモードであり、モード9,10は、実動作モード時におけるSCFF11のモードである。本実施形態のSCFF11では、一方のSCFF11の内部状態を他方のSCFF11にバックアップするデータバックアップモードモード1,2、一方のSCFF11によりスキャンテストを行うスキャンテストモードモード3,4、他方のSCFF11が一方のSCFF11のテストデータに対しスルーパス動作をするスルーパスモードモード5,6、他方のSCFF11がバックアップしている内部状態を一方のSCFF11にリストアするデータリストアモードモード7,8、実動作モードにおける通常の動作であるノーマルフリップFF動作モードを有している。モード1は、データバックアップモードであり、特に、データバックアップ時にスレーブラッチ430のバックアップデータDATA1をMEM端子から他方のSCFF11へ出力するスレーブラッチ出力モードである。このモードでは、スキャン制御部100から、クロックCLKに0クロック停止、ロード信号LOADに1、スキャン制御信号SMCに1がSCFF11に入力される。クロックCLKが0、ロード信号LOADが1であるため、スレーブラッチ430はデータ保持状態となる。すなわち、保持データが入力データDにより影響を受けない状態となる。そして、スキャン制御信号SMCが1であるため、セレクタ440の入力Bが選択され、スレーブラッチ430のQ出力からセレクタ440を通過してMEM端子からDATA1が外部へ出力される。このように、モード1では、スレーブラッチ430の内部状態であるバックアップデータが、他方のSCFF11でバックアップするために出力される。モード2は、データバックアップモードであり、特に、データバックアップ時にLD端子からバックアップデータDATA1をマスタラッチ420へ読み込むマスタラッチ入力モードである。このモードでは、スキャン制御部100から、クロックCLKに0クロック停止、ロード信号LOADに0、バックアップデータ選択信号NMに1がSCFF11に入力され、さらに、一方のSCFF11からバックアップデータであるDATA1が入力される。クロックCLKが0、ロード信号LOADが0であるため、マスタラッチ420は、読み込み可能な状態となる。そして、バックアップデータ選択信号NMが1であるため、セレクタ410の入力Bが選択され、LD端子から入力されるDATA1がセレクタ410を通過しマスタラッチ420に読み込まれる。このように、モード2では、他方のSCFF11から出力されたバックアップデータが、マスタラッチ420に保持されバックアップされる。モード3は、スキャンテストモードであり、特に、スキャンテスト時のキャプチャ動作を行うキャプチャモードである。このモードでは、スキャン制御部100から、クロックCLKに動作クロック、ロード信号LOADに0、バックアップデータ選択信号NMに0、スキャン制御信号SMCに1が入力され、外部の回路から、DATA端子にキャプチャデータDATA2Aが入力される。クロックCLKがクロック動作、ロード信号LOADが0であるため、マスタラッチ420とスレーブラッチ430はフリップフロップとして動作する。すなわち、クロックCLKに基づいてデータDをラッチする。そして、バックアップデータ選択信号NMが0であるため、セレクタ410のA入力とセレクタ450のA入力が選択され、さらに、スキャン制御信号SMCが1であるため、セレクタ400のB入力が選択される。そうすると、SCFF11のDATA端子からデータDATA2Aが入力され、セレクタ400とセレクタ410を通過し、クロックCLKのクロック動作によりマスタラッチ420のD入力からQ出力へ、スレーブラッチ430のD入力からQ出力へデータが遷移し、セレクタ450を通過しSCFF11のQ端子から外部へDATA2が出力される。このように、モード3では、スキャンテスト時に入力されるキャプチャデータがクロックCLKに従ってキャプチャされて出力される。モード4は、スキャンテストモードであり、特に、スキャンテスト時のスキャンシフト動作を行うスキャンシフトモードである。このモードでは、スキャン制御部100から、クロックCLKに動作クロック、ロード信号LOADに0、バックアップデータ選択信号NMに0、スキャン制御信号SMCに0が入力され、外部の回路から、SI端子にスキャンシフトデータDATA2Bが入力される。クロックCLKがクロック動作、ロード信号LOADが0であるため、マスタラッチ420とスレーブラッチ430はフリップフロップとして動作する。そして、バックアップデータ選択信号NMが0であるため、セレクタ410のA入力とセレクタ450のA入力が選択され、さらに、スキャン制御信号SMCが0であるため、セレクタ400のA入力を選択する。そうすると、SCFF11のSI端子からデータDATA2Bが入力され、セレクタ400とセレクタ410を通過し、クロックCLKのクロック動作によりマスタラッチ420のD入力からQ出力へ、スレーブラッチ430のD入力からQ出力へデータが遷移し、セレクタ450を通過しSCFF11のQ端子から外部へDATA2Bが出力される。このように、モード4では、スキャンテスト時に入力されるスキャンシフトデータがクロックCLKに従ってシフトされて出力される。モード5は、スルーパスモードであり、特に、スキャンテストのキャプチャ時にスルーパス動作を行うキャプチャスルーパスモードである。このモードでは、スキャン制御部100から、クロックCLKに0クロック停止、ロード信号LOADに1、バックアップデータ選択信号NMに1、スキャン制御信号SMCに1が入力され、スキャンテスト中のSCFF11からDATA端子にキャプチャデータDATA2Aが入力される。クロックCLKが0、ロード信号LOADが1であるため、マスタラッチ420とスレーブラッチ430はデータ保持状態となる。すなわち、保持データが入力データDにより影響を受けない。そして、バックアップデータ選択信号NMが1であるため、セレクタ450のB入力が選択され、スキャン制御信号SMCが1であるため、セレクタ400のBを選択する。そうすると、SCFF11のDATA端子からデータDATA2Aが入力され、マスタラッチ420とスレーブラッチ430をバイパスする経路でセレクタ450を通過し、SCFF11のQ端子から外部へDATA2Aが出力される。このように、モード5では、スキャンテスト時に他方のSCFF11が出力するキャプチャデータを、自SCFF11内のフリップフロップを介さないスルーパスにより出力する。モード6は、スルーパスモードであり、特に、スキャンテストのスキャンシフト時にスルーパス動作を行うスキャンシフトスルーパスモードである。このモードでは、スキャン制御部100から、クロックCLKに0クロック停止、ロード信号LOADに1、バックアップデータ選択信号NMに1、スキャン制御信号SMCに0が入力され、スキャンテスト中のSCFF11からSI端子にスキャンシフトデータDATA2Bが入力される。クロックCLKが0、ロード信号LOADが1であるため、マスタラッチ420とスレーブラッチ430はデータ保持状態となる。そして、バックアップデータ選択信号NMが1であるため、セレクタ450のB入力が選択され、スキャン制御信号SMCが0であるため、セレクタ400のAを選択する。そうすると、SCFF11のSI端子からデータDATA2Bが入力され、セレクタ400でマスタラッチ420とスレーブラッチ430をバイパスする経路でセレクタ450を通過し、SCFF11のQ端子から外部へDATA2Bが出力される。このように、モード6では、スキャンテスト時に他方のSCFF11が出力するスキャンシフトデータを、自SCFF11内のフリップフロップを介さないスルーパスにより出力する。モード7は、データリストアモードであり、特に、データリストア時にマスタラッチ420が保持するバックアップデータをMEM端子から他方のSCFF11へ出力するマスタラッチ出力モードである。このモードでは、スキャン制御部100から、クロックCLKに0クロック停止、ロード信号LOADに1、バックアップデータ選択信号NMに1、スキャン制御信号SMCに0がSCFF11に入力される。クロックCLKが0、ロード信号LOADが1であるため、マスタラッチ420はデータ保持状態となる。すなわち、保持データが入力データDにより影響を受けない。そして、スキャン制御信号SMCが0であるため、セレクタ440のA端子が選択され、マスタラッチ420のデータがQ出力からセレクタ440を通過しMEM端子からDATA3が外部へ出力される。このように、モード7では、マスタラッチ420がバックアップしていた他方のSCFF11の内部状態を、他方のSCFF11でリストアするために出力される。モード8は、データリストアモードであり、特に、データリストア時にLD端子からバックアップデータDATA3をマスタラッチ420へ読み込むスレーブラッチ入力モードである。このモードでは、スキャン制御部100から、クロックCLKに0から1クロック、ロード信号LOADに0、バックアップデータ選択信号NMに1がSCFF11に入力され、さらに、一方のSCFF11からバックアップデータであるDATA3が入力される。まず、クロックCLKが0、ロード信号LOADが0であるため、マスタラッチ420は読み込み可能状態となり、バックアップデータ選択信号NMが1であるためセレクタ410の入力Bが選択され、LD端子からデータDATA3がセレクタ410を通過しマスタラッチ420に読み込まれる。その後、クロックCLKが1クロック動作し、ロード信号LOADが0であるため、マスタラッチ420とスレーブラッチ430はフリップフロップとして動作し、マスタラッチ420からスレーブラッチ430へデータDATA3が読み込まれる。このように、モード8では、他方のSCFF11でバックアップされていたバックアップデータが、スレーブラッチ430に保持され自SCFF11の内部状態としてリストアされる。モード9は、ノーマルFF動作モードであり、特に、通常動作時にスレーブラッチ430のデータを保持し続ける保持モードである。このモードでは、スキャン制御部100から、クロックCLKに0クロック停止、ロード信号LOADに0、バックアップデータ選択信号NMに1、スキャン制御信号SMCに0がSCFF11に入力される。クロックCLKが0、ロード信号LOADが0であるため、マスタラッチ420は、読み込み可能な状態となる。そして、バックアップデータ選択信号NMが0であるため、セレクタ410の入力Aが選択され、さらに、スキャン制御信号SMCが1であるため、セレクタ400のB入力が選択される。ただし、クロックCLKが0であるため、スレーブラッチ430はデータ保持状態であり、保持データがSCFF11のQ端子から出力される。このように、モード9では、入力データにかかわらず、スレーブラッチ430がデータを保持し続け、保持しているデータを出力する。モード10は、ノーマルFF動作モードであり、特に、通常動作時に入力データをフリップフロップにより保持し出力するアクティブモードである。このモードでは、スキャン制御部100から、クロックCLKに動作クロック、ロード信号LOADに0、バックアップデータ選択信号NMに0、スキャン制御信号SMCに1が入力され、外部の回路から、DATA端子に通常データDATA4が入力される。クロックCLKがクロック動作、ロード信号LOADが0であるため、マスタラッチ420とスレーブラッチ430はフリップフロップとして動作する。すなわち、クロックCLKに基づいてデータDをラッチする。そして、バックアップデータ選択信号NMが0であるため、セレクタ410のA入力とセレクタ450のA入力が選択され、さらに、スキャン制御信号SMCが1であるため、セレクタ400のB入力が選択される。そうすると、SCFF11のDATA端子からデータDATA4が入力され、セレクタ400とセレクタ410を通過し、クロックCLKのクロック動作によりマスタラッチ420のD入力からQ出力へ、スレーブラッチ430のD入力からQ出力へデータが遷移し、セレクタ450を通過しSCFF11のQ端子から外部へDATA4が出力される。このように、モード10では、通常動作時に入力される通常データがクロックCLKに従って出力される。次に、図5~図6を用いて、本発明の実施の形態1に係る半導体集積回路の故障診断動作について説明する。図5は、本発明の実施の形態1に係る故障診断動作を示すフローチャート図である。この故障診断動作では、まず、スキャン1群のスキャンテストを行った後ステップST1~ST4、スキャン2群のスキャンテストを行うステップST5~ST8。なお、スキャン2群のスキャンテストを行った後に、スキャン1群のスキャンテストを行ってもよい。まず、半導体集積回路10の故障診断が開始されると、ステップST1において、動作モードをスキャン1群200のテストモードに設定する。すなわち、故障診断開始時に外部からスキャン制御部100に対して、モード信号MD1=1とMD2=0を入力し、動作モードをスキャン1群テストモードとする。これにより、スキャン制御部100は、スキャンテストするスキャン群として、スキャン1群200を選択し、スキャンテストのバックアップをするスキャン群として、スキャン2群300を選択する。次いで、ステップST2において、スキャン1群200のSCFF210のスレーブデータをスキャン2群300のSCFF310のマスタラッチへ転送する。すなわち、スキャン制御部100は、スキャン1群200のSCFF210をスレーブラッチ出力モード図4のモード1に設定し、スキャン2群300のSCFF310をマスタラッチ入力モード図4のモード2に設定する。そうすると、スキャン1群200に配置されたSCFF210のスレーブラッチ430に格納されたデータ内部状態が、スキャン2群300に配置されスキャン1群200のSCFF210に対応したSCFF310のマスタラッチ420に一時記憶され、データがバックアップされる。次いで、ステップST3において、スキャン1群200のスキャンテストを実施し、スキャン2群300をスルーパスに設定する。すなわち、スキャン制御部100は、スキャン1群200のSCFF210をキャプチャモード図4のモード3,スキャンシフトモード図4のモード4に設定し、スキャン2群300のSCFF310をキャプチャスルーパスモード図4のモード5,スキャンシフトスルーパスモード図4のモード6に設定する。そうすると、スキャン1群200に配置されたSCFF210は予め設定されたスキャン条件でスキャンテストが実施されると同時に、スキャン2群300に配置されたSCFF310はフリップフロップをバイパスしデータが通過するだけの動作となり、スキャン1群200の故障診断が行われる。例えば、スキャンテストは、スキャンイン動作、キャプチャ動作、スキャンアウト動作により行われる。スキャンイン動作では、テストデータであるスキャンシフトデータが、スキャンシフトモードのSCFF210によりシフトされ、シフトされたデータが、スキャンシフトスルーパスモードのSCFF310から出力される。キャプチャ動作では、スキャンインされた状態で論理回路が動作され、論理回路の論理データが、キャプチャモードのSCFF210に取り込まれ、取り込まれたデータが、キャプチャスルーパスモードのSCFF310から出力される。スキャンアウト動作では、キャプチャによりSCFFに取り込まれているデータが、スキャンシフトモードのSCFF210によりシフトされ、シフトされたデータが、スキャンシフトスルーパスモードのSCFF310から出力される。スキャンアウトにより得られるデータを、スキャンインのデータに対する期待値と比較し、故障の有無が判定される。次いで、ステップST4において、スキャン2群300のSCFF310のマスタラッチ420のデータをスキャン1群200のSCFF210のスレーブラッチ430へリストアする。すなわち、スキャン制御部100は、スキャン2群300のSCFF310をマスタラッチ出力モード図4のモード7に設定し、スキャン1群200のSCFF210をスレーブラッチ入力モード図4のモード8に設定する。そうすると、ステップST2で、スキャン2群300のSCFF310のマスタラッチ420に一時記憶させたデータを、スキャン1群200に配置されたSCFF210のスレーブラッチ430にリストアすることで、スキャン1群200のSCFF210の状態を故障診断前の状態に復帰させる。これにより、スキャン1群200のテストが終了する。次いで、ステップST5において、動作モードをスキャン2群300のテストモードに設定する。すなわち、スキャン1群のテストが終了し、次にスキャン2群のテストを行うため、外部からスキャン制御部100に対して、モード信号MD1=0とMD2=1を入力し、動作モードをスキャン2群テストモードとする。これにより、スキャン制御部100は、スキャンテストするスキャン群として、スキャン2群300を選択し、スキャンテストのバックアップをするスキャン群として、スキャン1群200を選択する。次いで、ステップST6において、スキャン2群300のSCFF310のスレーブデータをスキャン1群200のSCFF210のマスタラッチへ転送する。すなわち、スキャン制御部100は、スキャン2群300のSCFF310をスレーブラッチ出力モード図4のモード1に設定し、スキャン1群200のSCFF210をマスタラッチ入力モード図4のモード2に設定する。そうすると、スキャン2群300に配置されたSCFF310のスレーブラッチ430に格納されたデータ内部状態が、スキャン1群200に配置されスキャン2群300のSCFF310に対応したSCFF210のマスタラッチ420に一時記憶され、データがバックアップされる。次いで、ステップST7において、スキャン2群300のスキャンテストを実施し、スキャン1群200をスルーパスに設定する。すなわち、スキャン制御部100は、スキャン2群300のSCFF310をキャプチャモード図4のモード3,スキャンシフトモード図4のモード4に設定し、スキャン1群200のSCFF210をキャプチャスルーパスモード図4のモード5,スキャンシフトスルーパスモード図4のモード6に設定する。そうすると、スキャン2群300に配置されたSCFF310は予め設定されたスキャン条件でスキャンテストが実施されると同時に、スキャン1群200に配置されたSCFF210はデータをスルーパスする動作となり、スキャン2群300の故障診断が行われる。次いで、ステップST8において、スキャン1群200のSCFF210のマスタラッチ420のデータをスキャン2群300のSCFF310のスレーブラッチ430へリストアする。すなわち、スキャン制御部100は、スキャン1群200のSCFF210をマスタラッチ出力モード図4のモード7に設定し、スキャン2群300のSCFF310をスレーブラッチ入力モード図4のモード8に設定する。そうすると、ステップST6で、スキャン1群200のSCFF210のマスタラッチ420に一時記憶させたデータを、スキャン2群300に配置されたSCFF310のスレーブラッチ430にリストアすることで、スキャン2群300のSCFF310の状態を故障診断前の状態に復帰させる。これにより、スキャン2群300のテストが終了し、半導体集積回路10のテストが完了する。このとき、スキャン1群100、スキャン2群200の全てのSCFFの内部状態が、テスト前の状態に回復しているため、すぐに通常動作が可能である。したがって、半導体集積回路を含むシステムが稼働中であっても、安全にテストを行うことができる。図6は、本発明の実施の形態1に係る故障診断動作を示すタイミングチャートである。図6では、スキャン1群のスキャンテスト動作である、図5のステップST2からST4までの動作を示している。図6において、状態1は、スキャン1群200のSCFF210からスキャン2群300のSCFF310へのデータバックアップの動作を行う状態であり、図5のステップST2に対応している。状態2は、スキャン1群200のSCFF210のスキャンテストの動作とスキャン2群300のSCFF310のスルーパスの動作を行う状態であり、図5のステップST3に対応している。状態3は、スキャン2群300のSCFF310からスキャン1群200のSCFF210へのデータリストアの動作を行う状態であり、図5のステップST4に対応している。状態1~状態3において、スキャン制御部100には、SYSCLKに動作クロック信号、モード信号MD1に1、MD2に0が入力されており、半導体集積回路10の動作モードがスキャン1群テストモードとなる。まず、スキャン1群200からスキャン2群300へのデータバックアップの動作を示す状態1では、スキャン制御部100は、スキャン1群200のSCFF210をスレーブラッチ出力モード図4のモード1に設定し、スキャン2群300のSCFF310をマスタラッチ入力モード図4のモード2に設定する。すなわち、スキャン1群200のSCFF210では、スキャン1群クロックCLK1が0、スキャン1群ロード信号LOAD1が1により、スレーブラッチ430のデータを保持し、スキャン1群スキャン制御信号SMCが1によりスキャン1群200のSCFF310のスレーブラッチ430の論理データDATA1が、MEM端子から出力される図4のモード1。また、スキャン2群300のSCFF310では、スキャン2群クロックCLK2が0、スキャン2群ロード信号LOAD2が0により、マスタラッチ420が読み込み可能な状態となり、スキャン2群バックアップデータ選択信号NM2が1により、スキャン1群200のMEM端子から出力された論理データDATA1が、スキャン2群300のLD端子からスキャン2群300のSCFF310のマスタラッチ420へ遷移し記憶される図4のモード2。次いで、スキャン1群200のスキャンテストの動作とスキャン2群300のスルーパスの動作を示す状態2では、スキャン制御部100は、スキャン1群200のSCFF210をキャプチャモード図4のモード3、スキャンシフトモード図4のモード4に設定し、スキャン2群300のSCFF310をキャプチャスルーパスモード図4のモード5、スキャンシフトスルーパスモード図4のモード6に設定する。ここでは、スキャンシフトモードの動作について説明する。すなわち、スキャン1群200のSCFF210では、スキャン1群スキャン制御信号SMC1が0、スキャン1群バックアップデータ選択信号NM1が0、スキャン1群ロード信号LOAD1が0になることで、スキャン1群クロックCLK1からSCFF個数分のクロック供給が開始されると、スキャン1群200のSCFF210はスキャンシフト動作となりスキャン1群200のSCFF210のS11からQ11へ論理データDATA2がシフトする図4のモード4。また、スキャン2群300のSCFF310では、スキャン2群スキャン制御信号SMC2が0、スキャン2群バックアップデータ選択信号NM2が1、スキャン2群ロード信号LOAD2が1、スキャン2群クロックCLK2が0により、スキャン1群のQ11から出力されたスキャンシフトデータDATA2はスキャン2群S21から入力され、マスタラッチ420とスレーブラッチ430をバイパスする経路で通過し、Q21から論理データDATA2が外部へ出力される図4のモード6。このとき、状態1で保持したスキャン1群200のデータであるDATA1は、マスタラッチ420に保持されており、スキャン2群300のデータはスレーブラッチ430に保持されたままの状態である。なお、キャプチャモードでは、スキャン1群のSCFF210は、スキャン1群スキャン制御信号SMC1が1になり、D11からQ11へ論理データがキャプチャされ図4のモード3、スキャン2群のSCFF310は、スキャン2群スキャン制御信号SMC2が1になり、D21からQ21へ論理データがスルーパスにより出力される図4のモード5。次いで、スキャン2群300からスキャン1群200へのデータリストアの動作を示す状態3は、スキャン制御部100は、スキャン1群200のSCFF210をスレーブラッチ入力モード図4のモード8に設定し、スキャン2群300のSCFF310をマスタラッチ出力モード図4のモード7に設定する。すなわち、スキャン2群300のSCFF310では、スキャン2群クロックCLK2は0、スキャン2群ロード信号LOAD2は1により、マスタラッチ420のデータを保持して、スキャン2群スキャン制御信号SMC2が0により、スキャン2群300のマスタラッチ420の論理データDATA1は、スキャン2群300のMEM端子から出力される図4のモード7。また、スキャン1群200のSCFF210では、スキャン1群クロックCLK1が0、スキャン1群ロード信号LOAD1が0により、マスタラッチ420は読み込み可能状態となり、スキャン1群バックアップデータ選択信号NM1が1により、スキャン2群300から出力された論理データDATA1が、LD1端子からスキャン1群200のSCFF210のマスタラッチ420に論理データDATA1が遷移し、さらにスキャン1群クロックCLK1に1クロック入力されると、スキャン1群200のマスタラッチ420からスレーブラッチ430へ遷移し記憶される図4のモード8。なお、ここでは、スキャン1群のスキャンテストの動作説明を行ったが、スキャン2群のスキャンテストについてはモードの設定とスキャン1群とスキャン2群の動作を入れ替えるだけで同様に行える。以上説明のしたように、本実施形態では、テスト開始前にテスト対象のスキャン1群のフリップフロップのデータをスキャン2群のフリップフロップのマスタラッチに一時的にデータをバックアップし、テスト終了時にスキャン2群のフリップフロップのマスタラッチから一時的にデータをスキャン1群のフリップフロップにリストアする。このため、フリップフロップの内部状態のバックアップ及びリストアにより、内部状態を破壊することがないため、稼働中の故障診断が可能であるとともに、フリップフロップを内蔵するSCFFが内部状態を保持する記憶回路となるため、回路規模の増大を防ぐことができる。フリップフロップの内部状態であるスレーブラッチのラッチデータを、他のフリップフロップのマスタラッチに保持するようにした。フリップフロップの内部状態に影響が少ないマスタラッチに、内部状態をバックアップすることにより、既存の回路を効率よく利用できる。また、バックアップしている間は、フリップフロップを介さないスルーパス動作させることにより、フリップフロップのマスタラッチのデータ及びスレーブラッチのデータが更新されることを防ぐことができる。これにより、スキャンテストの実施による内部状態の破壊を防ぎ、スキャンテスト後に確実に内部状態を復帰させることができる。全てのSCFFをバックアップさせる必要がある場合、従来技術では、構成しているSCFFの数だけ、データをバックアップする機能の記憶装置と復帰回路が必要となる。そのため同じ種類のSCFF相当の回路規模が増加する。本発明の場合、既存のSCFFを使ってスキャンテストをする機能とデータをバックアップする機能を兼用するため、スキャンテストとデータをバックアップする切り替えを制御するセレクタ回路の回路規模が増加するに留まる。よって、総SCFFの数分の回路規模と復帰回路を加えた回路規模から機能切り替えセレクタの回路規模を差し引いた数だけ回路規模を削減できる。大規模集積回路では、SCFFの数も多いため、SCFFをバックアップデータの記憶回路とすることによる効果は大きい。さらに、従来技術はデータのバックアップとリストアを制御回路で行い、その制御回路の動作をするためには多数の回路か、もしくは制御用のタイミングを作成する必要があるが、本発明はSCFFのデータのバックアップとリストアを単純な動作で簡単に行うことができるという効果もある。すなわち、バックアップ時は、一方のSCFFをスレーブラッチ出力モードにし、他方のSCFFをマスタラッチ入力モードにするだけで、バックアップすることができ、また、リストア時は、一方のSCFFをマスタラッチ出力モードにし、他方のSCFFをスレーブラッチ入力モードにするだけでよいため、より単純かつ高速にバックアップ及びリストアを行うことが可能である。本発明の実施の形態2以下、図面を参照して本発明の実施の形態2について説明する。図7は、本発明の実施の形態2に係る半導体集積回路の概略構成図である。図に示されるように、この半導体集積回路20は、スキャン制御部100と、スキャン1群500と、スキャン2群600を備えている。スキャン1群500とスキャン2群600は、それぞれ別のスキャンチェーンであり、本実施形態のスキャン群は、スキャンチェーンごとにグループ化されている。スキャンチェーンごとに分かれているため、スキャン群ごとにまとめてテストが行われる。スキャン1群500は、SCFF510、SCFF511を含む複数のSCFFを備えている。またスキャン2群600は、SCFF610、SCFF611を含む複数のSCFFを備えている。スキャン1群500のスキャンチェーンとスキャン2群600のスキャンチェーンとは、SCFFの数が同じである。スキャン1群500のスキャンチェーンと、スキャン2群600のスキャンチェーンとが対応している例として、システムのメイン処理回路をテストするためのスキャンチェーンと、システムのバックアップ処理回路をテストするためのスキャンチェーンとが挙げられる。ここでは、2つのスキャンチェーンの先頭から順に、SCFF510とSCFF610とが対応し、SCFF511とSCFF611とが対応している。なお、スキャンチェーンの先頭から順に対応していなくてもよく、少なくともSCFFが1対1で対応していればよい。スキャン1群バックアップデータ選択信号NM1は、スキャン制御部100のNM1端子から出力され、SCFF510、SCFF511、その他のスキャン1群500のSCFFのNM端子に入力される。スキャン1群ロード信号LOAD1は、スキャン制御部100のLOAD1端子から出力され、SCFF510、SCFF511、その他のスキャン1群500のSCFFのLOAD端子に入力される。スキャン1群スキャン制御信号SMC1は、スキャン制御部100のSMC1端子から出力され、SCFF510、SCFF511、その他のスキャン1群500のSCFFのSMC端子に入力される。スキャン1群クロックCLK1は、スキャン制御部100のCLK1端子から出力され、SCFF510、SCFF520、その他のスキャン1群のSCFFのCLK端子に入力される。スキャン1群500の外部からの論理データD11は、SCFF510のD端子に入力され、スキャン1群500の外部からの論理データD12は、SCFF511のDATA端子に入力される。スキャン1群500の外部からのスキャンシフトデータS11は、SCFF510のSI端子に入力され、スキャン1群500内でSCFF510のQ端子から出力される論理データQ11は、SCFF511のSI端子に入力される。スキャン1群500内でSCFF511のQ端子から出力される論理データQ12は、SCFF511に隣接する他のSCFFのSI端子に入力される。スキャン1群500のSCFF510のMEM端子から出力されるスキャン1群バックアップデータME121は、スキャン2群600のSCFF610のLD端子に入力される。スキャン1群500のSCFF511のMEM端子から出力されるスキャン1群バックアップデータME122は、スキャン2群600のSCFF611のLD端子に入力される。スキャン2群バックアップデータ選択信号NM2は、スキャン制御部100のNM2端子から出力され、SCFF610、SCFF611、その他のSCAN2群600のSCFFのNM端子に入力される。スキャン2群ロード信号LOAD2は、スキャン制御部100のLOAD2端子から出力され、SCFF610、SCFF611、その他のSCAN2群600のSCFFのLOAD端子に入力される。スキャン2群スキャン制御信号SMC2は、スキャン制御部100のSMC2端子から出力され、SCFF610、SCFF611、その他のSCAN2群600のSCFFのSMC端子に入力する。スキャン2群クロックCLK2は、スキャン制御部100のCLK2端子から出力され、SCFF610、SCFF611、その他のSCAN2群600のSCFFのCLK端子に入力される。スキャン2群600の外部からの論理データD21は、SCFF610のD端子に入力され、スキャン2群600の外部からの論理データD22は、SCFF611のDATA端子へ入力される。スキャン2群600の外部からのスキャンシフトデータS21は、SCFF610のSI端子に入力される。スキャン2群600内でSCFF610のQ端子から出力される論理データQ21は、SCFF611のSI端子に入力される。スキャン2群600内でSCFF611のQ端子から出力される論理データQ22は、SCFF611に隣接する他のSCFFのSI端子に入力される。スキャン2群600内のSCFF610のMEM端子から出力されるバックアップデータME211は、スキャン1群500内のSCFF510のLD端子に入力される。スキャン2群600内のSCFF611のMEM端子から出力されるバックアップデータME212は、スキャン1群500内のSCFF511のLD端子に入力される。スキャン1群500のスキャンチェーンは、外部からのS11信号がSCFF510のSI端子に入力され、SCFF510のQ端子からSCFF511のSI端子に入力され、SCFF511のQ端子へと他のスキャン1群のSCFFへデータがシフトする構成である。スキャン2群600のスキャンチェーンは、外部からのS21信号がSCFF610のSI端子に入力され、SCFF610のQ端子からSCFF611のSI端子に入力され、SCFF611のQ端子へと他のスキャン2群のSCFFへデータがシフトする構成である。図8は、本発明の実施の形態2に係るSCFFの回路構成図である。このSCFF21は、スキャン1群500におけるSCFF510,511、スキャン2群600におけるSCFF610,611である。図に示されるように、SCFF21は、セレクタ700、710、740と、マスタラッチ720、スレーブラッチ730と、論理和760で構成されている。また、マスタラッチ720及びスレーブラッチ730はフリップフロップ22を構成している。まず、SCFF21内の入出力関係について説明する。スキャン制御部100から入力されるバックアップデータ選択信号NMは、セレクタ710のS端子に入力される。スキャン制御部100から入力されるスキャン制御信号SMCは、セレクタ700と740のS端子に入力される。外部から入力されるスキャンシフトデータSIは、セレクタ700のA端子に入力される。外部から入力される論理データDATAは、セレクタ700のB端子に入力される。他方のSCFF21から入力されるロードデータLDは、セレクタ710のB端子に入力される。スキャン制御部100から入力されるLOAD信号は、論理和760の他方の入力端に入力される。スキャン制御部100から入力されるクロックCLKは、論理和760の一方の入力端とスレーブラッチ730のG端子に入力される。セレクタ700から出力されるスキャン論理データSDINは、セレクタ710のA端子に入力される。セレクタ710から出力されるスキャン論理ロードデータSDLINは、マスタラッチ720のD端子に入力される。マスタラッチ720のQ端子から出力されるマスタラッチ出力LD1は、スレーブラッチ730のD端子とセレクタ740のA端子に入力される。スレーブラッチ730のQ端子から出力されるスレーブラッチ出力Q論理データQは、セレクタ740のB端子に入力されるとともに、SCFF21の外部へ出力される。論理和760から出力されるマスタクロックMCLKは、マスタラッチ720のGB端子に入力される。セレクタ740から出力されるバックアップデータMEMは、SCFF21の外部へ出力される。次に、SCFF21内の各構成について説明する。図8のセレクタ700、710、740、マスタラッチ720、スレーブラッチ730、論理和760は、図3のSCFF11におけるセレクタ400、410、440、マスタラッチ420、スレーブラッチ430、論理和460と同様の構成である。図8のSCFF21では、図3のSCFF11のセレクタ450を備えていない点のみが相違している。すなわち、セレクタ700は、スキャン制御信号SMCに基づいて、SCFF21に入力される論理データDATAまたはスキャンシフトデータSIを、セレクタ710のみに出力し、スレーブラッチ730から出力される論理データQスレーブラッチ出力LD2が、外部へ出力される。また、バックアップデータ選択信号NMに基づいて、セレクタ710のみが制御され、スキャン論理ロードデータSDLINがマスタラッチ720へ出力される。したがって、図8のSCFF21は、マスタラッチ720及びスレーブラッチ730フリップフロップ22を介さないスルーパス動作は行わず、常に、マスタラッチ720及びスレーブラッチ730フリップフロップ22を介して論理データQが出力される。図9は、本発明の実施の形態2に係る故障診断動作を示すフローチャート図である。なお、図5と同様の動作については説明を適宜省略する。まず、半導体集積回路20の故障診断が開始されると、ステップST11において、動作モードをスキャン1群500のテストモードに設定する。次いで、ステップST12において、スキャン1群500のSCFF510,511のスレーブデータをスキャン2群600のSCFF610,611のマスタラッチへ転送する。すなわち、スキャン制御部100は、スキャン1群500のSCFF510,511をスレーブラッチ出力モード図4のモード1に設定し、スキャン2群600のSCFF610,611をマスタラッチ入力モード図4のモード2に設定する。そうすると、スキャン1群500のSCFF510のデータバックアップでは、スキャン1群500に配置されたSCFF510のスレーブラッチ730に格納されたデータが、SCFF510のMEM出力端子から出力される。出力されたデータは、他の隣接するスキャンチェーン構成のスキャン2群600に配置されたSCFF610のLD端子から入力され、SCFF610のマスタラッチ720に一時記憶される。また、スキャン1群500のSCFF511のデータバックアップでは、スキャン1群500に配置されたSCFF511のスレーブラッチ730に格納されたデータが、SCFF511のMEM出力端子から出力される。出力されたデータは、他の隣接するスキャンチェーン構成のスキャン2群600に配置されたSCFF611のLD端子から入力され、SCFF611のマスタラッチ720に一時記憶される。次いで、ステップST13において、スキャン1群500のスキャンテストを実施する。すなわち、スキャン制御部100は、スキャン1群500のSCFF510,511をキャプチャモード図4のモード3,スキャンシフトモード図4のモード4に設定する。そうすると、スキャン1群500に配置されたSCFF510,511に対し予め設定されたスキャン条件でスキャンテストが実施される。本実施形態では、実施の形態1のようにスキャン2群をスルーパス動作させずに、スキャン1群のスキャンテストを行う。スキャン1群500のスキャンシフト動作は、スキャン1群500内のスキャンチェーンのパス上で行われる。具体的には、外部からスキャン1群500のS11に入力されたスキャンシフトデータが、SCFF510のSI端子に入力され、S11をシフトしたデータQ11が、SCFF510のQ端子からSCFF511のSI端子に入力され、Q11をシフトしたデータQ12がSCFF511のQ端子から出力され、他の隣接するSCFFのSI端子へデータが入力される。これにより、スキャン1群500内のSCFFがシフトレジスタとしてスキャンシフトデータをシフトする。本実施形態では、スキャンシフトデータは、スキャン1群500内のスキャンチェーンのみ通過し、スキャン2群600を通過することはない。次いで、ステップST14において、スキャン2群600のSCFF610,611のマスタラッチ720のデータをスキャン1群500のSCFF510,511のスレーブラッチ730へリストアする。すなわち、スキャン制御部100は、スキャン2群600のSCFF610,611をマスタラッチ出力モード図4のモード7に設定し、スキャン1群500のSCFF510,511をスレーブラッチ入力モード図4のモード8に設定する。そうすると、スキャン2群600のSCFF610のデータリストアでは、スキャン2群600のSCFF610のマスタラッチ720に一時記憶したデータが、SCFF610のMEM端子から出力される。出力されたデータは、スキャン1群500に配置されたSCFF510のLD端子に入力され、SCFF510のマスタラッチ720を経由してスレーブラッチ730にリストアされる。また、スキャン2群600のSCFF611のデータリストアでは、スキャン2群600のSCFF611のマスタラッチ720に一時記憶したデータが、SCFF611のMEM端子から出力される。出力されたデータは、スキャン1群500に配置されたSCFF511のLD端子に入力され、SCFF511のマスタラッチ720を経由してスレーブラッチ730にリストアされる。これにより、スキャン1群500のテストが終了する。次いで、ステップST15~ステップST18では、ステップST11~ステップ14と同様に、スキャン2群のテストが行われる。すなわち、動作モードをスキャン2群300のテストモードに設定しST15、スキャン2群600のSCFF610,611のスレーブデータをスキャン1群500のSCFF510,511のマスタラッチ720へ転送しST16、スキャン2群600のスキャンテストを実施しST17、スキャン1群500のSCFF510,511のマスタラッチ720のデータをスキャン2群600のSCFF610,611のスレーブラッチ730へリストアするST18。これにより、スキャン2群600のテストが終了し、半導体集積回路20のテストが完了する。このように、本実施形態では、テスト開始前にテスト対象のスキャン1群スキャンチェーンAのSCFFのデータをスキャン2群スキャンチェーンBのSCFFのマスタラッチに一時的にデータをバックアップする。したがって、実施の形態1と同様に、SCFFにより内部状態のバックアップを行うことにより、従来の半導体集積回路と比べて、回路規模の増大を防ぐことができる。さらに、本実施形態では、スキャンチェーンごとにモードを切り替えられることから、SCFFにスルーパスモードが不要であるため、回路規模をさらに削減することができる。図4のスルーパスモードモード5、モード6の機能を有する必要がなく、図2のSCFFの内部に備えられていたセレクタ450を削減できる。つまり、SCFFの機能を簡素化し、セル数、回路規模を削減し故障診断前の状態に復帰することが可能となる。なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、半導体集積回路が有する複数のSCFFについて、全てのSCFFに上記発明を適用してもよいし、一部のSCFFにのみ上記発明を適用してもよい。例えば、システムの安全動作に必要な内部状態のみバックアップしてもよい。すなわち、内部状態のバックアップが必要なSCFFにのみ上記発明を適用することで、さらに回路規模の増大を防ぐことができる。"