"スキャンテストのテストパタン作成方法であって、組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を、記録媒体から読み出し、前記少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出し、前記抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定し、前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得し、前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定するテストパタン作成方法。前記期待値の必要性の判定は、前記抽出したフリップフロップについて、前記期待値が不定値である場合、前記期待値が不要と判定することを特徴とする請求項1記載のテストパタン作成方法。前記期待値の必要性の判定は、前記抽出したフリップフロップが接続される組み合わせ論理回路において新規故障箇所が検出されない場合、前記期待値が不要と判定することを特徴とする請求項1または2記載のテストパタン作成方法。前記テストパタンは、前記スキャンシフト回数に応じて生成され、生成されたテストパタンが記録媒体に格納されることを特徴とする請求項1乃至3のいずれか一項に記載のテストパタン作成方法。前記テストパタンは、前記スキャンシフト回数のスキャンシフト動作が実施されると、前記スキャンシフト動作によって入力端子から入力されるシフトデータと、前記スキャンキャプチャ動作によってフリップフロップが取り込んだキャプチャデータとのいずれかを、前記スキャンチェーンを構成するフリップフロップが保持するように生成されることを特徴とする請求項1乃至4のいずれか一項に記載のテストパタン作成方法。前記テストパタンは、次のスキャンシフト動作で入力するシフトデータとして、前記スキャンシフト回数と同じ数のシフトデータを含むことを特徴とする請求項1乃至5のいずれか一項に記載のテストパタン作成方法。前記テストパタンは、前記期待値として、前記スキャンシフト回数と同じ数の期待値を含むことを特徴とする請求項1乃至6のいずれか一項に記載のテストパタン作成方法。前記スキャンチェーン内に、前記期待値が必要と判定されるフリップフロップが存在せず、かつ、すべての故障検出が完了していないと判定される場合、前記スキャンシフト回数を、前記スキャンチェーンに含まれるフリップフロップの総数に一致させることを特徴とする請求項1乃至7のいずれか一項に記載のテストパタン作成方法。前記少なくとも一つのスキャンチェーンが、複数のスキャンチェーンから構成され、前記複数のスキャンチェーンそれぞれに含まれるフリップフロップについて、前記期待値が不要と判定されたフリップフロップが連続して存在するフリップフロップの数を取得し、スキャンチェーン毎に、一つのスキャンチェーンに含まれるフリップフロップの総数から、前記取得したフリップフロップの数との差分を、前記一つのスキャンチェーンのスキャンシフト回数として取得し、スキャンチェーン毎に取得したスキャンシフト回数のうち、最大値をスキャンキャプチャ動作後のスキャンシフト回数として決定することを特徴とする請求項1乃至8のいずれか一項に記載のテストパタン作成方法。前記テストパタンは、複数種類の前記スキャンシフト回数に応じて生成され、スキャンシフト動作を3回以上のX回Xは、3以上の整数行う場合、フリップフロップの総数をMMは1以上の整数、K回目のスキャンシフト動作のスキャンシフト回数をN[K]Kは1以上X以下の整数、Nは0以上M以下の整数とすると、各スキャンシフト動作で用いるテスト用のデータとして、1回目のスキャンシフト動作に対して、個数Mのシフトデータ、X-1回目のスキャンシフト動作に対して、個数M-N[X-1]のシフトデータ及び期待値、または、個数Mのシフトデータ、及びX回目のスキャンシフト動作に対して、個数M-N[X]の期待値、を含むテストパタンが作成されることを特徴とする請求項1乃至9のいずれか一項に記載のテストパタン作成方法。前記期待値は、前記シフトデータと、前記スキャンキャプチャ動作によっていずれかのフリップフロップが取り込んだキャプチャデータとの、少なくとも一方を用いて前記組み合わせ回路が演算する演算結果であることを特徴とする請求項5記載のテストパタン作成方法。前記テストパタンは、スキャンシフト動作を実施すると、前記入力側に最も近いフリップフロップから前記スキャンシフト回数に一致するフリップフロップまでに、前記シフトデータが保持され、他のフリップフロップには、一つ前のスキャンキャプチャ動作によって前記組み合わせ回路から各フリップフロップへ取り込まれ、前記スキャンシフト動作によってシフトされるキャプチャデータが保持されるように生成されることを特徴とする請求項5または11記載のテストパタン作成方法。スキャンテストのテストパタン作成方法を実現するプログラムであって、コンピュータに、組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を、記録媒体から読み出す処理と、前記少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出し、抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定する処理と、前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得する処理と、前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する処理とを実行させるプログラム。スキャンテストのテストパタン作成装置であって、組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を格納する記録媒体と、前記少なくとも一つのスキャンチェーンの情報を前記記録媒体から読み出し、スキャンチェーンの入力側に近いフリップフロップから順番に抽出し、抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定し、前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得する抽出部と、前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する決定部と、を備えるテストパタン作成装置。前記請求項1乃至11に記載のテストパタン作成方法によって生成されたテストパタンを用いて、スキャンテストを実施するテスタ。前記請求項1乃至11に記載のテストパタン作成方法によって生成されたテストパタンを用いて、スキャンテストを実施する半導体集積回路のテスト方法。しかしながら、従来技術は、LSIのテスト時間が増大するという問題がある。その理由は、シフト動作2pにおいて、CLKをM回入れる事で、シフトアウトを行なうが、シフトインを行いフリップフロップの値を確定する為に、不定値となり期待値を出力する必要ないフリップフロップのデータを出力する。加えて、新規故障検出を伴わず期待値を出力する必要ないフリップフロップのデータも出力する。このように、フリップフロップが組み込み論理回路から取り込んだ期待値のうち、シフトアウト動作により出力する必要のない、不必要なシフト動作を行なっている。また、スキャンテスト時間を短縮する手法として、特許文献1、2に関連する技術が開示されている。しかしながら、いずれもスキャン回路の回路構成を変える必要があり、回路面積の増加、制御信号の追加が必要となる。このように、スキャンテストに要する時間を削減することが望まれていた。発明者は、スキャンテストにおけるスキャンシフト動作を削減することにより、スキャン回路の構成を変えることなく、LSIテストに要する時間を削減できることを発見した。本発明に係るテストパタン作成方法の一態様は、スキャンテストのテストパタン作成方法であって、組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を、記録媒体から読み出し、前記少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出し、前記抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定し、前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得し、前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する。上述した通り、テストパタン作成方法では、スキャンチェーンを構成する各フリップフロップについて、スキャンキャプチャ動作によって当該フリップフロップが取り込むキャプチャデータを期待値と照合する必要性を判定する。判定結果に基づいて、入力端子側に近いフリップフロップから、期待値が不要なフリップフロップが連続する場合、言い換えると、入力端子側から期待値が必要なフリップフロップが検出されるまでの間に存在するフリップフロップに対して、スキャンテストにおいてキャプチャデータを出力しないでスキャンシフト動作を実施するような、スキャンテスト回数が変動するテストパタンを作成する手法を提供する。その結果、スキャンテストにおいて、スキャンシフト回数をスキャンチェーンに含まれるフリップフロップの総数に一致させることなく、フリップフロップの総数以下のスキャンシフト動作を実行可能にする。これにより、スキャンシフト回数が削減できるため、スキャンテストに掛かる時間を削減することができる。本発明に係るプログラムの一態様は、スキャンテストのテストパタン作成方法を実現するプログラムであって、コンピュータに、少なくとも次の処理を実行させる。組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を、記録媒体から読み出す処理。前記少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出し、抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定する処理。前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得する処理。前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する処理。本発明に係るテストパタン作成装置の一態様は、スキャンテストのテストパタン作成装置であって、記録媒体、抽出部、及び決定部を備える。記録媒体は、組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報を格納する。抽出部は、前記少なくとも一つのスキャンチェーンの情報を前記記録媒体から読み出し、スキャンチェーンの入力側に近いフリップフロップから順番に抽出し、抽出したフリップフロップがスキャンキャプチャ動作によって前記組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定し、前記期待値が不要と判定されたフリップフロップが前記入力側から連続して存在するフリップフロップの数を取得する。決定部は、前記スキャンチェーンに含まれるフリップフロップの総数と、前記取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する。さらに、本発明に係るテスタ、または、テスト方法の一態様は、上述したテストパタン作成方法によって生成されたテストパタンを用いて、スキャンテストを実施する。本発明によれば、スキャンテストに要する時間を削減するテストパタンを提供することが可能となる。以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。本発明のテストパタン作成方法は、期待値を必要としないフリップフロップが、SI端子から連続して存在する数を取得するステップと、スキャンチェーンを構成するフリップフロップの総数と、期待値を必要としないフリップフロップがSI端子から連続して存在する数との差分からスキャンシフト動作時のスキャンシフト回数を決定するステップとを有する。期待値を必要としないフリップフロップは、期待値が不定値となるため、期待値を必要としないこと、及び/または、新規故障検出を伴わないため、期待値を必要としないこと、の要件を満たすフリップフロップの個数を取得する。取得したフリップフロップの個数に応じて、スキャンシフト動作を実施することを可能にする。これにより、シフト動作の回数削減が可能となり、LSIのテスト時間を短縮することができる。実施形態1.実施形態1の構成図1,2に、本発明の実施形態1のテストパタン作成方法の動作例を示すフローチャートを示す。図1,2に示すフローチャートでは、図13と同様の処理を実施する工程には同じステップ番号を付している。本実施形態では、テストパタン作成方法をプログラムソフトウェアによって実現することを前提として説明する。まず、図3を参照して、テストパタン作成方法を実行する装置の構成例を説明する。図3は、本発明の実行プログラムなどを実行させる為のシステムの構成例を示す図である。システムは、一つ以上のコンピュータ装置601、サーバ602、記録媒体603、及び、ネットワーク604で構成される。コンピュータ装置601は、エンジニアリングワークステーション等の情報処理装置であり、例えば、CPUCentralProcessingUnitで構成される処理部、ハードディスクやRAMRandomAccessMemoryやROMReadOnlyMemoryといった記録部、ネットワーク604とのインターフェースである通信部、及び、キーボードやマウスなどの入出力インターフェースである入出力部等を備える。コンピュータ装置601は、ネットワーク604を介してサーバと接続する。サーバ602は、記録媒体603に加え、CPUで構成される処理部611と、ネットワーク604とのインターフェースである通信部612とを少なくとも備える。サーバ602は、さらに、入出力インターフェースである入出力部、ハードディスクやRAMやROMといった記録部記録領域を備えていてもよい。サーバ602は、ネットワーク604を介してコンピュータ装置601に接続する。記録媒体603は、プログラム実行プログラム、ネットリスト、及び、テストパタンなどを格納する記憶装置であり、サーバ602に保持されている。図3では、記録媒体603は、サーバ602に配置される構成例を示しているが、これに限られることはなく、例えば、ネットワーク604を介してサーバ602が読み出し、書き込み可能な場所に配置してもよい。回路構成情報は、少なくとも組み合わせ論理回路とスキャンチェーンとに関する情報を含む。テストパタンは、シフトデータ入力パタンと期待値期待値パタン、出力パタンとを含む。シフトデータは、スキャンシフト動作シフトインにより入力される値であり、各フリップフロップが保持する値を確定させるために用いる。期待値は、スキャンシフト動作シフトアウトにより出力される、フリップフロップのキャプチャデータを照合するための値である。スキャンテストのキャプチャ動作では、フリップフロップは組み合わせ論理回路の演算結果をキャプチャデータとして、当該回路から取り込み、保持している。ネットワーク604は、コンピュータ装置601とサーバ602との間の通信を接続する。例えば、ネットワーク604は、インターネット、移動体通信網や、専用線網や、LANLocalAreaNetworkといった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。記録媒体603に格納されているプログラムは、ネットワーク604を介してコンピュータ装置601により実行される構成になっている。言い換えると、ユーザがコンピュータ装置601を介してプログラムのコマンドを入力することによって、コンピュータ装置601は、ネットワーク604を介してサーバ602へプログラムの起動を指示する。サーバ602では、プログラムの起動の指示を通信部612によって受け付けると、処理部611が、記録媒体603に格納されたプログラムを読み出し、プログラムに含まれる命令群を順次実行する。本実施形態では、処理部611が、図1,2のフローチャートに示す動作例を実現するプログラムを実行する。本実施形態では、プログラムはサーバ602に、少なくとも次の処理を実行させる。組み合わせ論理回路と少なくとも一つのスキャンチェーンとに関する情報回路構成情報を、記録媒体603から読み出す処理。少なくとも一つのスキャンチェーンの入力SI端子側に近いフリップフロップから順番に抽出して、期待値の必要性を判定することを、期待値が必要なフリップフロップが検出されるまで繰り返す処理。スキャンチェーンの入力側から連続して存在する、期待値が不要と判定されたフリップフロップの数を取得する処理。言い換えると、入力側に近いフリップフロップから期待値が必要と判定されたフリップフロップの直前のフリップフロップまでの数を取得する処理。スキャンチェーンに含まれるフリップフロップの総数と、取得したフリップフロップの数との差分を、スキャンキャプチャ動作後のスキャンシフト回数として決定する処理。各処理ついては、図1,2を参照して動作の説明において詳述する。実施形態1の動作次に、実施形態1のテストパタン作成方法の動作を、図1,2を参照して説明する。図1では、図13の動作に加え、スキャンシフト回数を決定する処理ステップS11、決定したスキャンシフト回数のスキャンシフト動作を行う処理ステップS13及びS14、及び、期待値を必要としないフリップフロップの数がゼロであるかを判定する処理ステップS12を有する。ステップS82-S84、及びステップS87の動作は、図13と同様であるため、適宜説明を省略する。ステップS82では、ネットリスト、スキャンシフト動作で用いるシフトデータ等は、予めあるいは処理の工程に応じて、記録媒体603に格納されていることを前提とする。ここでは、一例として、図4に示すスキャンチェーンを形成したスキャンチェーン回路のテストパタンを生成する場合を説明する。従って、記録媒体603には、図4に示すスキャンチェーンを形成した回路に関して、組み合わせ論理回路702とスキャンチェーンとに関する情報を含むネットリストが格納されていることを前提とする。以降の説明では個数MMは1以上の整数と個数NNは0以上M以下の整数とを用いてスキャンシフト回数を決定する動作を説明する。個数Mは、SI端子からSO端子までのスキャンチェーンに含まれるフリップフロップの総数である。個数Nは、期待値を必要としないフリップフロップの個数である。個数Nは、各フリップフロップについて、期待値の必要性を判定することによって取得される数である。なお、図4、5では、期待値が不要のフリップフロップの個数Nがゼロでない場合を前提として示している。加えて、図4では、個数Nは2より大きく、個数N1が個数Mより小さい場合を示し、図5では、個数Nは2より大きく、個数M-N1が個数Mより小さい場合を示している。これは、説明をわかりやすくするため、個数Mと個数Nとの関係の一例を示したものであり、個数Mと個数Nとの関係、個数Mの値、個数Nの値などはこれらに限定されるものではない。例えば個数Nはゼロ、1、2、あるいは個数Mと一致する場合があり得る。また、その他の図面においても、説明をわかりやすくするために、個数M、個数N、及び、個数Mと個数Nとの関係の一例を示したものであり、本発明を限定して解釈するものではない。スキャンシフト回数は、次のスキャンシフト動作で実施するシフトの数であり、個数Mと個数Nとの差分により決定される。期待値の必要性は、テストパタンに、フリップフロップの期待値を含める必要があるか否かを意味する。言い換えると、実際に回路をスキャンテストする場合に、スキャンキャプチャ動作によってフリップフロップが組み合わせ論理回路から取り込んだキャプチャデータについて、キャプチャデータと期待値との照合が必要か不要かを意味する。期待値が不要なフリップフロップを抽出するため、テストパタンを作成するときに、1キャプチャデータ期待値が不定値となるため、期待値が必要ないフリップフロップ、及び/または、2新規故障検出箇所がないため、期待値が必要ないフリップフロップを抽出する。本実施形態では、個数Nを、上述した1、及び2の要件の少なくとも一方に合致するフリップフロップを抽出する場合を説明する。スキャンキャプチャ動作後ステップS84、スキャンシフト回数決定処理を行うステップS11。スキャンシフト回数決定処理ステップS11では、スキャンチェーンの情報から、SI端子から近い順にフリップフロップを抽出し、1キャプチャデータが不定値となるフリップフロップの個数、及び、2新規故障検出箇所がないフリップフロップの個数を、期待値が必要なフリップフロップを検出するまでカウントする。これにより、削減できるスキャンシフトの数個数Nを計算すること、スキャンシフト動作を実施する直前のスキャンキャプチャ動作において、組み合わせ論理回路からフリップフロップに取り込まれたデータ組み合わせ論理回路の演算結果をシフトデータとして用いる。図2に、図1のスキャンシフト回数決定処理ステップS11の詳細な動作例を示す。ステップS21において、ステップS82にて抽出された、図4のスキャンチェーン回路に含まれるフリップフロップのうち、SI端子に最も近い1番目のフリップフロップ703を抽出する。この処理では、ステップS84にてキャプチャされたデータが、ステップS22にて不定値であるかの判定と、ステップS25にて新規故障検出箇所があるかを判定する。判定した結果、再びステップS21に戻ってきた場合は、次にSI端子に近い2番目のフリップフロップ705を抽出する。以後、ステップS21に戻ってくる度に、3番目のフリップフロップ、、M番目のフリップフロップ707とスキャンチェーンの順番にフリップフロップを抽出するステップS21。ステップS22において、ステップS21にて抽出されたフリップフロップについて、当該フリップフロップのキャプチャデータ直前のスキャンキャプチャ動作でキャプチャされたキャプチャデータが不定値であるか否かを比較するステップS22。直前のスキャンキャプチャ動作により、スキャンチェーンを構成する各フリップフロップには、各フリップフロップにシフトインされたシフトデータに基づいて、組み合わせ論理回路を動作させたときの出力結果が、キャプチャデータとして取り込まれている。テストパタン生成における各フリップフロップに取り込まれたキャプチャデータは、実際に回路をスキャンテストする場合には、各フリップフロップからシフトアウトされたキャプチャデータと照合する期待値となる。キャプチャデータが不定値であるということは、実際に回路をスキャンテストしたとき、フリップフロップに取り込まれているキャプチャデータと期待値との照合が必要ないことを意味する。従って、このようなフリップフロップのキャプチャデータに対する期待値をテストパタンに含める必要がない。このため、期待値の必要性の判定に、キャプチャデータが不定値であるか否かを用いる。不定値である場合ステップS22でYES、ステップS23へと進み、期待値が不要なフリップフロップとしてカウントし、ステップS21へ戻るステップS23。カウントしたカウント値は、サーバ602内の記録媒体603に保持してもよいし、サーバ602内の他の記録部記録領域に保持してもよい。不定値でない場合ステップS22でNO、ステップS24へ進み、回路構成情報に含まれる組み合わせ論理回路の情報を用いて、フリップフロップに接続されている組み合わせ論理回路を抽出し、ステップS25に進むステップS24。ステップS25では、キャプチャデータが、ステップS24で抽出した組み合わせ論理回路に対して、新規故障検出箇所を抽出しているか判定を行うステップS25。この判定は、既存のテストパタンを作成するツールにより実現できるものであるため、詳細な説明を省略する。新規故障検出箇所を抽出していない場合ステップS25でYES、ステップS26へ進み、期待値が必要ないフリップフロップとしてカウントし、ステップS21へ戻るステップS23。新規故障検出箇所を抽出している場合ステップS25でNO、ステップS27へと進み、SI端子から期待値が不要なフリップフロップの個数Nを保持するカウント値を読み出すことによって取得し、ステップS28に進むステップS27。図4に、期待値が不要なフリップフロップ群301と、期待値が必要なフリップフロップ群302に切り分けたスキャンチェーン回路を表す。SI端子に最も近い1番目のフリップフロップ703から順番にフリップフロップを抽出して判定した結果、N1番目のフリップフロップ304を期待値が必要となるフリップフロップとして判定した場合を示す。スキャンテストにおいて、フリップフロップ群301は、シフトアウトを必要としないグループである。一方、フリップフロップ群302は、シフトアウトが必要となるグループである。これは、N1番目のフリップフロップ304がキャプチャデータと期待値との照合を必要とするため、N1番目のフリップフロップ304を含め、これより後段のフリップフロップについてシフトアウトを必要とするからである。ステップS28では、スキャンシフト回数を個数Mから個数Nを差し引いた回数以下、適宜、M-Nともいうと決定し、ステップS87に進むステップS28。これらの処理により、スキャンシフト回数を決定する。続いて、図1に戻り、動作を説明する。ステップS87では、組み合わせ論理回路及び各フリップフロップに対して、故障検出箇所の抽出を行い、故障検出が全て完了したもしくは、新規の故障検出ができないかどうかの判定を行うステップS87。この判定は、既存のテストパタン生成のツールを用いて実現可能なため、詳細な説明を省略する。新規故障検出ができない場合ステップS87でYES、ステップS14へ進み、新規故障検出ができる場合ステップS87でNO、ステップS12へ進む。ステップS12では、M-Nの値の比較を行なう。M-Nがゼロとなる場合ステップS12でYES、スキャンシフト回数がゼロとなり、スキャンシフト動作が行なわれなくなってしまう。言い換えると、スキャンシフト回数決定処理ステップS11によって期待値が不要なフリップフロップの個数Nが個数Mと一致すると判定されたものの、全故障検出が完了していないステップS87でNO状態である。例えば、新たなシフトデータを設定するテストなど、テストパタンを変更して実施するスキャンテストが必要であると判定される場合である。その為、ステップS83に戻り、新たなシフトデータを用いて、全フリップフロップへスキャンシフト動作を行う。M-Nがゼロではない場合ステップS12でNO、ステップS13へ進む。ステップS13では、M-N回のスキャンシフト動作により、期待値パタンとして作成するキャプチャデータを保持するN1番目のフリップフロップ304からM番目のフリップフロップ707の値を全てSO端子から出力する。図5に、SI端子よりシフトインされ値が確定されたフリップフロップ群403と、キャプチャデータをシフトインデータとして流用するフリップフロップ群404に切り分けたスキャンチェーン回路を表す。スキャンシフト回数がM-Nであるため、SI端子に最も近い1番目のフリップフロップ703からM-N番目のフリップフロップ401までは、シフトデータにより値が確定する。M-N1番目のフリップフロップ402以降では、前段のフリップフロップ、具体的には、1番目からM-N番目のフリップフロップのいずれかが保持する値がシフトされて設定されることになる。通常、スキャンシフト動作の際、シフトインにより1番目からM番目のフリップフロップの値を設定させる。しかしながら、本実施形態では、N回分シフト回数を削減する為、シフトデータを、SI端子に一番近い1番目のフリップフロップからM-N番目のフリップフロップ401までしか送ることができない。その結果、M-N1番目のフリップフロップ402からM番目のフリップフロップ707までのフリップフロップ群404へ、シフトデータのシフトインによる値を入力させる事ができない。この為、ステップS13では、直前のスキャンキャプチャ動作ステップS84によって、1番目のフリップフロップ703からN番目のフリップフロップ303が取り込んだキャプチャデータを、シフトデータとして流用する。フリップフロップ群403が保持するキャプチャデータを、シフトデータのかわりに用いる事で、M-N1番目のフリップフロップ402からM番目のフリップフロップ707までのフリップフロップ群404の値を、テスト実施者が把握できる値に設定する事が可能となる。テスト実施者が把握できる値とは、テスト実施者が各フリップフロップにどのような値を設定しているかが把握できる値であることを意味する。具体的には、キャプチャデータをシフトデータとして流用するため、フリップフロップに設定する値として、確定した値のみならず、不定値である場合も含むことを意味する。このような場合、スキャンテストでは、所定のフリップフロップでは不定値が設定されていることを前提として、組み合わせ論理回路の出力結果の期待値パタンを生成する。上記では、ステップS13に関して、図5を用いて、個数Nがゼロでなく、かつ、個数Nは2より大きく、個数M-N1が個数Mより小さい場合を一例として具体的に説明した。しかし、ステップS13では、個数Nがゼロである場合も含まれる。具体的にはM-Nが個数Mと一致する場合である。この場合、全フリップフロップのキャプチャデータをスキャンアウトするとともに、シフトデータを各フリップフロップへシフトインすることになる。このようにして、M-N回のスキャンシフト動作によって、フリップフロップに保持されたデータがシフトアウトされ、シフトアウトされたデータを期待値とするテストパタンを作成する。M-N回のシフト動作後は、ステップS84へ進むステップS13。ステップS14では、M-N回のスキャンシフト動作によりキャプチャデータを保持するN1番目のフリップフロップ304からM番目のフリップフロップ707の値を全てSO端子から出力し、出力された値を期待値としてテストパタンを生成して動作を終了するステップS14。上述のように、ステップS83~S14までを繰り返すことにより、シフトイン時にSI端子に入力するシフトデータ、及び、シフトアウト時にSO端子から出力される値を期待値とするテストパタンを順次作成していく。実施形態1のメカニズムおよび効果実施形態1のスキャンテストのテストパタン作成方法は、LSIのスキャンテスト時間を短縮することが出来る。その理由は、図14の一般的なスキャンチェーンを形成した回路のタイミングチャートのシフト動作2pがスキャンシフト動作をM回繰り返すのに対し、本実施形態は、図6の本発明のタイミングチャートのシフト動作2のように、スキャンシフト回数M-Nを決定しステップS11、M-N回のスキャンシフト動作を行うステップS13及びS14為、N回分のシフト動作を省略する事が出来る為である。本実施形態では、図4に示すように、ステップS27にて決定された、期待値が不要のフリップフロップであるためにシフトアウトが不要なフリップフロップ群301と、シフトアウトが必要なフリップフロップ群302に切り分けた回路イメージになる。加えて、図5に示すように、ステップS13にて、SI端子よりシフトデータがシフトインされ、値が確定されるフリップフロップ群403と、キャプチャデータをシフトインデータとして使用するフリップフロップ群404に切り分けた回路イメージになる。図6は、実施形態1のテストパタン作成方法でテストパタンを作成する動作例を示すタイミングチャートである。シフト動作2が、ステップS13のタイミングチャートになる。シフト動作1では、SE信号を1に設定し、SI端子よりシフトデータSD21、SD22、SD2M-2、、SD2M-N-1、SD2M-Nを入力する。CLK動作により1番目のフリップフロップ703図6では、FF1と表示からシフトデータを順次伝播させ、CLKをM-N回入れる事でM-N番目のフリップフロップ401図14では、FFM-Nと表示までシフトデータを伝播する。M-N1番目のフリップフロップ402図14では、FFM-N1と表示からM番目のフリップフロップ707図14では、FFMと表示には、キャプチャ動作1にて、任意のフリップフロップより前段に配置されたフリップフロップが取り込んだキャプチャデータCD11、CD12、、CD1Nが、順次伝播される。キャプチャ動作2では、シフト動作2により伝播されたシフトデータまたはキャプチャデータSD2M-N、SD2M-N-1、、SD21、CD11、、CD1Nを用いて、組み合わせ論理回路の出力CD21、CD22、CD2M-N、CD2M-N1、CD1Mを全フリップフロップに取り込む。次に、テストパタンについて説明する。テストパタンは、次のデータから構成される。1回目のスキャンシフト動作において、スキャンチェーンを構成する複数のフリップフロップへ既知の値を設定するシフトインためのシフトデータ。2回目以降、最後のスキャンシフト動作の一つ前のスキャンシフト動作において、複数のフリップフロップへ設定するための複数のシフトデータ入力パタンと、直前のスキャンキャプチャ動作によって各フリップフロップに取り込まれたキャプチャデータを出力させシフトアウト、出力されたキャプチャデータと照合させるための複数の期待値期待値パタン。最後のスキャンシフト動作において、直前のスキャンキャプチャ動作によって各フリップフロップに取り込まれたキャプチャデータを出力させシフトアウト、出力されたキャプチャデータと照合させるための複数の期待値。本実施形態に係るテストパタン作成方法を用いてテストパタンを作成すると、スキャンシフト動作で用いるテストパタンは、スキャンテスト回数に応じて作成されるため、シフトデータ及び期待値は、1回目からZ回目まで同一個数でなく、複数種類の個数となる。スキャンシフト動作を3回以上のX回Xは、3以上の整数行う場合、フリップフロップの総数をMMは1以上の整数、K回目Kは1以上X以下の整数のスキャンシフト動作が不要なフリップフロップの数をN[K]Nは0以上M以下の整数、K回目のスキャンシフト動作のスキャンシフト回数をM-N[K]とすると、テストパタンには、各スキャンシフト動作で用いるテスト用のデータとして、1回目のスキャンシフト動作に対して、個数Mのシフトデータ、X-1回目のスキャンシフト動作それぞれに対して、個数M-N[X-1]と、個数Mとのいずれかのシフトデータ及び期待値、X回目のスキャンシフト動作に対して、個数M-N[X]の期待値、を含むことになる。図7に、テストパタン作成方法により作成したテストパタンのデータ構成例のイメージを示す。図7では、作成されるシフトデータ及び期待値の数の変動をわかりやすく示すため、データの値には記号を用い、一つのシフトデータを三角、一つの期待値を丸で示している。なお、図7に示すスキャンテスト回数、シフトデータ、または、期待値等の個数は一例であり、説明を容易にするために、M-5、M-10、M-15等の数値を用いている。しかしながら、本発明のテストパタン作成方法により作成したテストパタンが図7に示すイメージに限定されるものでない。以下、図7を参照してテストパタンの一例を説明する。シフト動作11回目のシフト動作、2回目以降も同様では、シフトインのみであり、スキャンシフト回数は、フリップフロップの総数と一致するため、M個のシフトデータが作成される。図1のステップ83で用いるシフトデータに相当する。シフト動作2では、期待値が不要なフリップフロップ数N[2]が5、決定されたスキャンシフト回数、M-N[2]がM-5である場合を一例として示す。従って、M-5個のシフトデータと期待値とが作成される。図1のステップS13でシフトインするシフトデータ及びシフトアウトする期待値に相当する。シフト動作X-2では、期待値が不要なフリップフロップ数N[X-2]がM、決定されたスキャンシフト回数、M-N[X-2]がゼロ、すなわち、個数Mと個数Nとが一致する場合を一例として示す。これは、図2のステップS12でYESとなり、ステップS83に戻って処理をすることになる。従って、フリップフロップの総数と一致するM個のシフトデータが作成される。シフト動作X-1では、期待値が不要なフリップフロップ数N[X-1]が10、決定されたスキャンシフト回数、M-N[X-1]がM-10である場合を一例として示す。従って、図2のステップS12でYESとなる。従って、M-10個のシフトデータと期待値とが作成される。シフト動作2と同様に、図1のステップS13でシフトインするシフトデータ及びシフトアウトする期待値に相当する。シフト動作Xでは、シフトアウトが実施される。期待値が不要なフリップフロップ数N[X]が15、決定されたスキャンシフト回数、M-N[X]がM-15である場合を一例として示す。従って、M-10個のシフトデータと期待値とが作成される。図1のステップS14でシフトアウトする期待値に相当する。なお、図7では示していないが、図1のステップS13において、個数Nがゼロの場合、M-Nは個数Mと一致する。従って、スキャンシフト回数がMとなり、M個のシフトデータと期待値とが作成されることになる。以上説明したように、本実施形態によれば、スキャンチェーンを構成するフリップフロップについて、入力側のSI端子に近いものから順番に、期待値の必要性を判定し、期待値の要否に応じて、スキャンシフト回数を決定する。これにより、スキャンテストにおいて、スキャンシフト動作の回数を削減することができる。従って、スキャンテストに係る時間を削減することが可能になる。その結果、LSIテストのコストを抑制することができる。実施形態2.実施形態1では、一つのスキャンチェーンが形成されている回路を前提として説明したが、実施形態2は、複数のスキャンチェーンが形成されている回路に適用する場合を説明する。本実施形態では、実施形態1で説明した図3の構成でテストパタン作成方法を実現することを前提として説明する。図8は、複数のスキャンチェーンが形成された例を示すイメージ図である。図8では、テスト対象回路に、SC1からSCZZは2以上の整数までのZ個のスキャンチェーンが形成され、SC1は、M個のフリップフロップ、SC2は、M-2個のフリップフロップ、SCZは、M-1個のフリップフロップから構成される例を示す。複数のスキャンチェーンが異なるフリップフロップの数によって構成されている場合においても、スキャンシフト動作は、同じクロックを用いて同時に複数のスキャンチェーンを構成するフリップフロップに対して処理する。このため、フリップフロップの総数個数Mには、複数のスキャンチェーンのうち、一番多いフリップフロップの個数を設定する。また、スキャンシフト回数M-Nには、各スキャンチェーンでシフトアウトを必要とするフリップフロップの数に対応することが必要となる。従って、各スキャンチェーンでスキャンシフト回数を取得し、取得した複数のスキャンシフト回数から最大値をスキャンシフト回数M-Nとして決定する。スキャンチェーン毎に取得したスキャンシフト回数の最大値を用いることにより、複数のスキャンチェーンすべてにおいて、スキャンシフトが必要なキャプチャデータを取り出すことが可能になる。例えば、SC1のスキャンチェーンでは、個数Mが10、個数Nが6、スキャンシフト回数M-Nが4、SCZのスキャンチェーンでは、個数Mが4、個数Nが1、スキャンシフト回数M-Nが3という値を取得した場合、より大きいスキャンシフト回数を選択して、スキャンシフト回数M-N4を決定する。以降の説明では、任意のスキャンチェーンを示すため、変数JJは1からZの整数を用いる。J番目のスキャンチェーンについて、フリップフロップの総数をM[J]、期待値が不要と判定されるフリップフロップの個数をN[J]、スキャンシフト回数を、M-N[J]とする。なお、図8では、異なる個数のフリップフロップから構成される複数のスキャンチェーンが形成されている場合を示したが、同じ数のフリップフロップから構成される複数のスキャンチェーンが形成されている場合であっても同様に本発明を適用することができる。以下に、本実施形態の図1のスキャンシフト回数決定処理の詳細を、図9を参照して説明する。図9は、実施形態2のテストパタン作成方法複数のスキャンチェーンが形成される場合の動作例を示すフローチャートである。図2と同じステップ番号の処理は実施形態1と同様であるため、適宜説明を省略する。実施形態2では、図1のステップS82において、複数のスキャンチェーンの情報が抽出されることになる。具体的には、J番目のスキャンチェーンについて、M[J]、N[J]が抽出される。まず、複数のスキャンチェーンから、未解析のスキャンチェーンを選択するステップS31。ここでは、SC1から順番にSCZまでのスキャンチェーンを解析するものとする。選択されたスキャンチェーンに対して、ステップS21からS25の処理を実施形態1と同様に実行する。その際、実施形態1のステップS23にかえて、ステップS32の処理を実行する。ステップS32では、スキャンチェーン毎に、期待値が不要なフリップフロップをカウントする。例えば、個数N[1]をスキャンチェーンSC1、個数N[2]をスキャンチェーンSC2、、個数N[Z]をスキャンチェーンSCZというように、各スキャンチェーンについて期待値が不要なフリップフロップをカウントし、記録媒体603に保持する。解析中のスキャンチェーンについて、ステップS21からS25、及びS32の処理を繰り返して、期待値が必要なフリップフロップが検出されると、期待値が不要なフリップフロップの数のカウントが終了するとステップS22でNO、及びステップS25でNO、未解析のスキャンチェーンが存在するかを判定する。未解析のスキャンチェーンが存在する場合ステップS33でYES、ステップS31へ戻り、次のスキャンチェーンを選択してステップS21以降の処理を繰り返す。未解析のスキャンチェーンが存在せず、全部のスキャンチェーンの解析が終了した場合ステップS33でNO、スキャンチェーン毎にスキャンシフト回数M-N[J]を取得する。具体的には、各スキャンチェーンについて、M[J]からN[J]を差し引いて、M-N[J]を算出するステップS34。次に、複数のスキャンシフト回数から最大値を選択し、次のスキャンシフト動作のスキャンシフト回数として決定するステップS35。ここで決定した回数が、図1に記載の、スキャンシフト回数M-Nに対応する。このように、複数のスキャンチェーンが形成された回路であっても、各スキャンチェーンを解析し、期待値が不要なフリップフロップ数個数Nとして、複数のスキャンチェーンで取得されたスキャンシフト回数のうち最大値を選択することにより、スキャンシフト回数を決定することができる。これにより、実施形態1と同様の効果を奏することが可能となる。実施形態3.上記各実施形態では、本発明に係るテストパタン作成方法をプログラムによって実現する場合を説明したが、これに限られるわけではない。テストパタン作成方法は、例えば、組み込みシステムのように、ハードウェアとソフトウェアとの組合せにより実現してもよく、ハードウェア、ファームウェア、ソフトウェアのいずれか、あるいは、これらの二つ以上の組合せにより実現してもよい。図10は、テストパタン作成方法を実現するテストパタン作成装置の構成例を示すブロック図である。テストパタン作成装置100は、抽出部シフトアウト不要フリップフロップ抽出部1、決定部スキャンシフト回数決定部2、及び、記録媒体3を備え、抽出部1は、判定部11と計数部12とを含む。記録媒体3は、組み合わせ論理回路とスキャンチェーンとに関する情報を含む回路構成情報ネットリストを格納する。図3の記録媒体603に相当する。抽出部1は、実施形態1で説明した、期待値が不要なフリップフロップを抽出する。具体的には、抽出部1の判定部11は、組み合わせ論理回路と少なくとも一つのスキャンチェーンに関する情報を含む回路構成情報を記録媒体3から読み出し、回路構成情報から、少なくとも一つのスキャンチェーンの入力側に近いフリップフロップから順番に抽出する。抽出したフリップフロップについて、当該フリップフロップが組み合わせ論理回路から取り込むキャプチャデータと照合する期待値の必要性を判定する。判定部11は、期待値が必要なフリップフロップを検出するまで、入力側から近いフリップフロップの順に、期待値の必要性を判定する。続いて、抽出部1の計数部12は、期待値が不要と判定されたフリップフロップが入力側から連続して存在するフリップフロップの数を取得する。抽出部1は、図2のステップS21からS27までの処理、図9のステップS31からS33までの処理に対応する。決定部2は、スキャンチェーンに含まれるフリップフロップの総数個数Mと、取得した期待値が不要なフリップフロップの数個数Nとの差分M-Nを、スキャンキャプチャ動作後のスキャンシフト回数として決定する。決定部2は、図2及び図9のステップS28の処理に対応する。上述したように、図10に示す抽出部1と決定部2とを、ハードウェア、ファームウェア、ソフトウェアのいずれか、あるいは、これらの二つ以上の組合せにより実現してもよい。また、図10には図示していないが、テストパタン作成装置は、構成形態に応じて、各構成要素あるいは装置全体に、CPUで構成される一つ以上の処理部を備え、処理部が各処理の実行を制御する。図10では、テストパタンのシフトデータ及び期待値パタンを生成する生成部4をテストパタン作成装置100に外部に備える構成例を示している。生成部4とは、記録媒体3を介して、スキャンシフト回数を受け取り、スキャンシフト回数に応じたテストパタンを作成する。言い換えると、本発明に係るテストパタン作成装置100は、スキャンシフト回数を生成部4へ提供する装置であるともいえる。選択的には、テストパタン作成装置100は、自装置内に記録媒体3を備えていない場合であってもよく、例えば、生成部4を備える装置が利用する記録媒体へ、スキャンシフト回数を書き込む構成であってもよい。さらに、テストパタン作成装置100は、テストパタンのシフトデータ及び期待値パタンを生成する生成部4を備える構成パタン生成装置101であってもよい。例えば、テストパタン作成装置100あるいはパタン生成装置101が、図3のサーバ602に組み込まれている形態であってもよい。実施形態4.実施形態1では、期待値が不要なフリップフロップの数をカウントして個数Nを取得する場合を説明したが、実施形態4では、フリップフロップのインスタンス名を図3の記録媒体603図10の場合、記録媒体3に格納する場合を説明する。図11は、本発明の実施形態4のテストパタン作成方法フリップフロップのインスタンス名を保存する場合の動作例を示すフローチャートである。図2と同じステップ番号の処理は、実施形態1と同様であるため、適宜説明を省略する。ここでは、主に、ステップS41、S42、及び、関連する処理について説明する。ステップS22において、キャプチャデータが不定値となる場合ステップS22でYES、ステップS41へと進み、不定値となるフリップフロップであり、期待値を持たないフリップフロップとして記録媒体603に当該フリップフロップのインスタンス名を格納し、ステップS21へ戻るステップ41。不定値でない場合ステップS22でNO、ステップS24へ進み、フリップフロップに接続されている組み合わせ論理回路の抽出を行いステップS25に進むステップS24。ステップS25において、新規故障検出箇所を抽出していない場合ステップS25でYES、ステップS42へ進み、新規故障を検出しないフリップフロップとして記録媒体603にインスタンス名を格納し、ステップS21へ戻るステップS42。新規故障検出箇所を抽出している場合ステップS25でNO、ステップS43へと進む。ステップS43において、ステップS41及びステップS42において記録媒体603へ格納した、期待値を持たないフリップフロップのインスタンス名の数と、新規故障を検出しないフリップフロップのインスタンス名の数とをカウントし、両方のインスタンス名の数を加算して、期待値が不要なフリップフロップ数個数Nを取得するステップS43。図11では、実施形態1の動作例を変更した場合を説明したが、実施形態2の動作例にも同様に適用することが可能になる。ステップS41、S42において期待値が不要なフリップフロップのインスタンス名を格納することにより、例えば、テストパタンの生成するツール図10の生成部4などがインスタンス名に応じてテストパタンを作成することが可能になる。例えば、インスタンス名を用いることにより、スキャンテストの効率を向上させるテストパタンの作成に用いることが期待できる。実施形態5.上記各実施形態では、期待値が不要なフリップフロップを、1キャプチャデータ期待値が不定値となるため、期待値を必要としないフリップフロップ、及び、2新規故障検出箇所がないため、期待値を必要としないフリップフロップのいずれかに合致するフリップフロップを抽出する場合を説明した。しかし、期待値が不要なフリップフロップの個数Nを、上述した1、または2のいずれが一方のみを用いて抽出する場合であってもよい。期待値が不要なフリップフロップとして、1キャプチャデータ期待値が不定値となるフリップフロップのみを抽出する場合、図2及び図9では、ステップS24、S25の処理を実施しない動作例となる。図11では、ステップS25、S42の処理を実施しない動作例となる。期待値が不要なフリップフロップとして、2新規故障検出箇所がないフリップフロップのみ抽出する場合、図2及び図9では、ステップS22の処理を実施しない動作例となる。図11では、ステップS22、S41の処理を実施しない動作例となる。加えて、期待値が不要なフリップフロップを、1キャプチャデータ期待値が不定値となるフリップフロップ、及び、2新規故障検出箇所がないフリップフロップのうち、1、2の両方、1のみ、2のみ、のいずれの手法を用いるかについて、テストパタン作成時に選択可能とすることもできる。例えば、ユーザが、コンピュータ装置601の入出力部を介してコマンドを入力する際に、オプションとして、期待値パタンを出力する必要のないフリップフロップを抽出する要件を選択できるようにしてもよい。この場合、プログラムでは、オプションに対応する実行プログラムサブルーチンを用意しておき、入力されたオプションに応じて、読み出すサブルーチンを変更することによって動作するようにできる。上記各実施形態では、期待値が不要なフリップフロップを判定する二つの要件を用いる場合を説明したが、本実施形態によれば、テストパタンを作成する要件をユーザの要望に対応させるテストパタン作成方法を提供することができる。さらに、ユーザがテストパタン作成時にオプションとして要件を選択可能とすることにより、ユーザがテストパタン作成方法を利用する際に、ユーザの要望に柔軟に対応させることが可能となる。その他の実施形態上述の各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体nontransitorycomputerreadablemediumを用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体tangiblestoragemediumを含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ、光磁気記録媒体例えば光磁気ディスク、CD-ROMReadOnlyMemory、CD-R、CD-R/W、半導体メモリ例えば、マスクROM、PROMProgrammableROM、EPROMErasablePROM、フラッシュROM、RAMRandomAccessMemoryを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体transitorycomputerreadablemediumによってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。加えて、本発明のテストパタン作成方法を実現するプログラムは、テストパタンを生成するツールの一部分として組み込まれている場合であってもよい。あるいは、独立したプログラムとして存在可能であり、テストパタンを生成するツールと組み合わせて用いられる場合、例えば、ツールから呼び出される起動されることによってプログラムが実行される場合であってもよい。尚、スキャンテスト時間を短縮する従来技術である特許文献1、特許文献2についても不必要なシフトが発生する可能性がある為、上記各実施形態のテストパタン作成方法を適用する事で、更なるスキャンテスト時間削減が可能となる。上記各実施形態で説明した通り、本発明に係るテストパタン作成方法によれば、スキャンテストを実施するテスト方法において、スキャンシフト回数を削減することが可能になる。従って、スキャンテストに要するテスト時間コストを削減することが可能になる。加えて、スキャンシフト動作によってシフトインするシフトデータ及びシフトアウトする期待値パタンを削減することになるため、テストパタンとして記録媒体に保持するデータ量を削減することができる。例えば、テスタにテストパタンを書き込む場合にも、テストパタンに含まれるデータ数を削減することが可能になることから、テストに係る時間を削減することができる。なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。"