半導体集積回路の設計データに基づいて半導体集積回路の設計を支援する設計支援装置であって、設計データを複数のFSMFiniteStateMachineに変換するFSM変換部と、前記複数のFSMから前記設計支援装置が動作するために必要な論理構造を生成するFSMデータ探索部と、前記論理構造から前記設計支援装置の不具合が再現可能な縮小データを出力する縮小データ生成部と、を備えることを特徴とする半導体集積回路の設計支援装置。前記FSMデータ探索部は、前記論理構造に基づいて前記設計支援装置が動作可能な動作確認用データを生成し、前記動作確認用データを用いて前記設計支援装置の不具合の発生確認を繰り返すことで、前記論理構造の中から前記設計支援装置に不具合を発生させる不具合再現論理構造を特定し、前記縮小データ生成部は、前記不具合発生論理構造から前記設計データと同じ言語形式、又は、ユーザが指定する言語形式で前記縮小データを生成する請求項1の半導体集積回路の設計支援装置。前記FSMデータ探索部は、前記複数のFSMから第1のFSMを選択し、前記第1のFSMに含まれる論理式の処理の内容を示す右辺を構成する信号を抽出し、前記信号の生成源となる第2のFSMを探索すると共に、前記第2のFSMの探索の間に検出するFSMを、前記信号を生成するための状態群として記憶し、前記状態群から前記論理構造を生成する請求項1又は2の半導体集積回路の設計支援装置。前記FSMデータ探索部は、前記第1のFSMに含まれる論理式の処理の内容を示す右辺を構成する信号が複数存在する場合には、前記複数の信号それぞれに対して前記状態群を複数抽出し、前記複数の状態群を組み合わせることで前記論理構造を生成する請求項3の半導体集積回路の設計支援装置。前記FSMデータ探索部は、前記複数のFSMから第1のFSMを第1の処理対象FSMと定め、前記第1の処理対象FSMを遷移先とする第2のFSMを抽出し、前記第2のFSMが複数存在する場合には、前記第1の処理対象FSMと前記第2のFSMを新たな前記第1の処理対象FSMとして定めることを繰り返すと共に、前記第1のFSMを第2の処理対象FSMと定め、前記第2の処理対象FSMから遷移する第3のFSMを抽出し、前記第3のFSMが複数存在する場合には、前記第2の処理対象FSMと前記第3のFSMを新たな前記第2の処理対象FSMと定めることを繰り返すことで、前記第1のFSMを遷移先とするFSMが1、かつ、前記第1のFSMの遷移先のFSMが1となるFSMの状態群を抽出し、前記状態群から前記論理構造を生成する請求項1又は2の半導体集積回路の設計支援装置。前記FSMデータ探索部は、前記論理構造に分岐条件が含まれる場合には、前記分岐条件に相当するFSMを削除する請求項5の半導体集積回路の設計支援装置。半導体集積回路の設計データに基づいて半導体集積回路の設計を支援する設計支援装置の設計支援方法であって、設計データを複数のFSMFiniteStateMachineに変換するFSM変換工程と、前記複数のFSMから前記設計支援装置が動作するために必要な論理構造を生成するFSMデータ探索工程と、前記論理構造から前記設計支援装置の不具合が再現可能な縮小データを出力する縮小データ生成工程と、を含むことを特徴とする半導体集積回路の設計支援方法。前記FSMデータ探索工程は、前記論理構造に基づいて前記設計支援装置が動作可能な動作確認用データを生成し、前記動作確認用データを用いて前記設計支援装置の不具合の発生確認を繰り返すことで、前記論理構造の中から前記設計支援装置に不具合を発生させる不具合再現論理構造を特定し、前記縮小データ生成工程は、前記不具合発生論理構造から前記設計データと同じ言語形式、又は、ユーザが指定する言語形式で前記縮小データを生成する請求項7の半導体集積回路の設計支援方法。前記FSMデータ探索工程は、前記複数のFSMから第1のFSMを選択し、前記第1のFSMに含まれる論理式の処理の内容を示す右辺を構成する信号を抽出し、前記信号の生成源となる第2のFSMを探索すると共に、前記第2のFSMの探索の間に検出するFSMを、前記信号を生成するための状態群として記憶し、前記状態群から前記論理構造を生成する請求項7又は8の半導体集積回路の設計支援方法。前記FSMデータ探索工程は、前記第1のFSMに含まれる論理式の処理の内容を示す右辺を構成する信号が複数存在する場合には、前記複数の信号それぞれに対して前記状態群を複数抽出し、前記複数の状態群を組み合わせることで前記論理構造を生成する請求項9の半導体集積回路の設計支援方法。前記FSMデータ探索工程は、前記複数のFSMから第1のFSMを第1の処理対象FSMと定め、前記第1の処理対象FSMを遷移先とする第2のFSMを抽出し、前記第2のFSMが複数存在する場合には、前記第1の処理対象FSMと前記第2のFSMを新たな前記第1の処理対象FSMとして定めることを繰り返すと共に、前記第1のFSMを第2の処理対象FSMと定め、前記第2の処理対象FSMから遷移する第3のFSMを抽出し、前記第3のFSMが複数存在する場合には、前記第2の処理対象FSMと前記第3のFSMを新たな前記第2の処理対象FSMと定めることを繰り返すことで、前記第1のFSMを遷移先とするFSMが1、かつ、前記第1のFSMの遷移先のFSMが1となるFSMの状態群を抽出し、前記状態群から前記論理構造を生成する請求項7又は8の半導体集積回路の設計支援方法。前記FSMデータ探索工程は、前記論理構造に分岐条件が含まれる場合には、前記分岐条件に相当するFSMを削除する請求項11の半導体集積回路の設計支援方法。半導体集積回路の設計データに基づいて半導体集積回路の設計を支援する設計支援装置を構成するコンピュータに実行させるプログラムであって、設計データを複数のFSMFiniteStateMachineに変換するFSM変換処理と、前記複数のFSMから前記設計支援装置が動作するために必要な論理構造を生成するFSMデータ探索処理と、前記論理構造から前記設計支援装置の不具合が再現可能な縮小データを出力する縮小データ生成処理と、を実行するプログラム。前記FSMデータ探索処理は、前記論理構造に基づいて前記設計支援装置が動作可能な動作確認用データを生成し、前記動作確認用データを用いて前記設計支援装置の不具合の発生確認を繰り返すことで、前記論理構造の中から前記設計支援装置に不具合を発生させる不具合再現論理構造を特定し、前記縮小データ生成処理は、前記不具合発生論理構造から前記設計データと同じ言語形式、又は、ユーザが指定する言語形式で前記縮小データを生成する請求項13のプログラム。前記FSMデータ探索処理は、前記複数のFSMから第1のFSMを選択し、前記第1のFSMに含まれる論理式の処理の内容を示す右辺を構成する信号を抽出し、前記信号の生成源となる第2のFSMを探索すると共に、前記第2のFSMの探索の間に検出するFSMを、前記信号を生成するための状態群として記憶し、前記状態群から前記論理構造を生成する請求項13又は14のプログラム。前記FSMデータ探索処理は、前記第1のFSMに含まれる論理式の処理の内容を示す右辺を構成する信号が複数存在する場合には、前記複数の信号それぞれに対して前記状態群を複数抽出し、前記複数の状態群を組み合わせることで前記論理構造を生成する請求項15のプログラム。前記FSMデータ探索処理は、前記複数のFSMから第1のFSMを第1の処理対象FSMと定め、前記第1の処理対象FSMを遷移先とする第2のFSMを抽出し、前記第2のFSMが複数存在する場合には、前記第1の処理対象FSMと前記第2のFSMを新たな前記第1の処理対象FSMとして定めることを繰り返すと共に、前記第1のFSMを第2の処理対象FSMと定め、前記第2の処理対象FSMから遷移する第3のFSMを抽出し、前記第3のFSMが複数存在する場合には、前記第2の処理対象FSMと前記第3のFSMを新たな前記第2の処理対象FSMと定めることを繰り返すことで、前記第1のFSMを遷移先とするFSMが1、かつ、前記第1のFSMの遷移先のFSMが1となるFSMの状態群を抽出し、前記状態群から前記論理構造を生成する請求項13又は14のプログラム。前記FSMデータ探索処理は、前記論理構造に分岐条件が含まれる場合には、前記分岐条件に相当するFSMを削除する請求項17のプログラム。以下の分析は、本発明の観点からなされたものである。上述のように、不具合が再現可能であり、かつ、設計情報を極力含まない再現データを提供するための技術が特許文献1で開示されている。ここで、特許文献1で開示された技術では、設計データをモジュールごとに分割することで再現データを生成している。しかし、このような再現データの生成方法では、ユーザによるHDLVHDL、Verilog-HDLなどの記述内容に依存して分割する単位再現データが定まってしまい、再現データの秘匿性が低下するという問題がある。以上のとおり、従来技術には、解決すべき問題点が存在する。本発明の一側面において、不具合の再現が可能であって、秘匿性の高い再現データの生成が可能な半導体集積回路の設計支援装置、設計支援方法及びプログラムが、望まれる。本発明の第1の視点によれば、半導体集積回路の設計データに基づいて半導体集積回路の設計を支援する設計支援装置であって、設計データを複数のFSMFiniteStateMachineに変換するFSM変換部と、前記複数のFSMから前記設計支援装置が動作するために必要な論理構造を生成するFSMデータ探索部と、前記論理構造から前記設計支援装置の不具合が再現可能な縮小データを出力する縮小データ生成部と、を備える半導体集積回路の設計支援装置が提供される。本発明の第2の視点によれば、半導体集積回路の設計データに基づいて半導体集積回路の設計を支援する設計支援装置の設計支援方法であって、設計データを複数のFSMFiniteStateMachineに変換するFSM変換工程と、前記複数のFSMから前記設計支援装置が動作するために必要な論理構造を生成するFSMデータ探索工程と、前記論理構造から前記設計支援装置の不具合が再現可能な縮小データを出力する縮小データ生成工程と、を含む半導体集積回路の設計支援方法が提供される。本発明の第3の視点によれば、半導体集積回路の設計データに基づいて半導体集積回路の設計を支援する設計支援装置を構成するコンピュータに実行させるプログラムであって、設計データを複数のFSMFiniteStateMachineに変換するFSM変換処理と、前記複数のFSMから前記設計支援装置が動作するために必要な論理構造を生成するFSMデータ探索処理と、前記論理構造から前記設計支援装置の不具合が再現可能な縮小データを出力する縮小データ生成処理と、を実行するプログラムが提供される。本発明の各視点によれば、不具合の再現が可能であって、秘匿性の高い再現データの生成が可能な半導体集積回路の設計支援装置、設計支援方法及びプログラムが、提供される。初めに、図1を用いて実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。上述のように、特許文献1で開示された技術では、設計データをモジュールごとに分割することで再現データを生成する。しかし、このような再現データの生成方法では、再現データの秘匿性が低下するという問題がある。そのため、不具合の再現が可能であって、秘匿性の高い再現データ以後、縮小データと呼ぶの生成が可能な半導体集積回路の設計支援装置が必要である。そこで、図1に示す半導体集積回路の設計支援装置を提供する。図1に示す設計支援装置は、設計データを複数のFSMに変換するFSM変換部と、複数のFSMから装置が動作するために必要な論理構造を生成するFSMデータ探索部と、論理構造から装置の不具合が再現可能な縮小データを出力する縮小データ生成部と、を備えている。FSMデータ探索部においては、任意に選択したFSMから設計支援装置が動作可能であって、必要最低限の情報しか含まない情報を探索し、生成する。ここで、ユーザが設計支援装置を使って設計をしている半導体集積回路の全ての情報が設計支援装置の不具合の再現に必要な訳ではない。一方、ユーザから不具合の報告を受けた設計支援装置の開発元では、ユーザから提供されるデータを用いて再現確認をすることになる。その際に、特定のFSMに含まれる論理式のみ提供されても設計支援装置を動作させることができず、ある程度の論理的な整合性がとれたデータが必要となる。そこで、FSMデータ探索部において、FSMに含まれる論理式を構成する信号に対してファンインの探索を行ない、任意に選択したFSMの論理構造を成立させるデータの探索を行なう。若しくは、任意に選択したFSMを含み、入出力が1系統となる範囲のFSMの状態群を探索することで整合性のとれたデータを生成する。そして、FSMデータ探索部が生成した論理構造から設計支援装置の動作確認が可能なデータを生成し、不具合の再現確認を行なう。その後、FSMデータ生成部では不具合の再現した論理構造から縮小データの出力を行なう。このように、ユーザが記述したHDLファイルに依存せず、不具合の再現が可能な縮小データを生成することで、設計支援装置の開発元に提供するデータの秘匿性を向上させることができる。[第1の実施形態]次に、本発明の第1の実施形態について、図面を用いてより詳細に説明する。初めに、設計支援装置1の構成及びその動作を説明し、その後、具体的なデータを用いて動作の説明を行なう。図2は、本発明の第1の実施形態に係る設計支援装置1の内部構成を示す図である。設計支援装置1は、表示部10と、操作部20と、記憶部30と、FSM変換部40と、FSMデータ探索部50と、縮小データ生成部60と、制御部70から構成されている。表示部10は、ユーザが設計支援装置1を操作する際に必要な情報を表示する。操作部20では、ユーザからの操作を受け付ける。記憶部30は、設計支援装置1の動作に必要なデータを記憶する。FSM変換部40は、設計データから状態遷移を制御する有限状態機械FSMを生成する。FSMデータ探索部50は、FSM変換部40において変換したFSMから半導体集積回路の設計支援装置1の不具合を再現させるために必要なデータを抽出する。縮小データ生成部60は、FSM変換部40が抽出したデータから設計支援装置1で発生した不具合の再現が可能であって、秘匿性の高いデータ縮小データを生成する。制御部70は、設計支援装置1の表示部10、操作部20、記憶部30、FSM変換部40、FSMデータ探索部50、縮小データ生成部60の制御を行なう。図3は、設計支援装置1を本来の設計支援装置として機能させる際に必要なデータと出力するデータの関係を示す図である。設計支援装置1では、設計の対象としている半導体集積回路の設計データ入力データと、設計データで使われているセルの詳細な情報が記憶されているセルライブラリを必要とする。セルライブラリは、記憶部30に記憶されているものを指定しても良いし、ネットワーク上のサーバに記憶されたものであっても良い。設計支援装置1は、セルライブラリを参照し、設計データから出力データを生成する。設計支援装置1の出力データは、設計支援装置1が備える機能によって異なり、例えば、設計支援装置1が半導体集積回路の動作確認シミュレーションを行なう機能を備えていれば、そのシミュレーション結果等を出力データとして出力する。なお、設計支援装置1に不具合があり、ユーザから縮小データの提供を受けた開発元では、縮小データを図3に示す入力データとして設計支援装置を動作させ、不具合を再現させることになる。次に、設計支援装置1の動作について説明する。図4は、縮小データの生成処理の概要を示すフローチャートである。ステップS01では、設計データの入力をする。設計データは、Verilog-HDL、VHDLといったハードウェア記述言語HDLや、C言語、C言語、SystemCなどのプログラム言語によって記述されている。ステップS02では、FSM変換部40において、入力された設計データをFSMに変換する。本実施形態に係る設計支援装置1においては、設計データからFSMに変換できれば、そのアルゴリズムについての制限はない。ステップS03では、FSMデータ探索部50において、変換後のFSMに対してFSMデータ探索処理を行ない、不具合を再現させるために必要となるデータ論理構造の抽出を行なう。ステップS04では、縮小データ生成部60において、FSMデータ探索部50が抽出したデータから縮小データの出力を行う。次に、上述のステップS03のFSMデータ探索処理について、より詳細に説明する。図5は、FSMデータ探索部50におけるFSMデータ探索処理の概要を示すフローチャートである。ステップS11において、生成されたFSMの中からデータ抽出を開始するFSMを選択する。この際に選択するFSMは任意のFSMで良く、ユーザが選択しても設計支援装置1が自動的に決定しても良い。ステップS12では、選択したFSMのみで不具合が再現するか否かを確認する。不具合が再現することが確認できれば処理を終了し、不具合が再現できない場合にはステップS14に遷移するステップS13。ステップS14では、ステップS11で選択したFSMに含まれる論理式の右辺を構成する信号を抽出する。その際に、定数や入力端子信号については抽出対象から除外する。なお、FSMに含まれる論理式のうち、処理内容を示すものを右辺、その処理の結果を示すものを左辺として以下の説明をする。ステップS15では、ステップS14で信号の抽出を行なった結果、論理式の右辺に抽出対象となる信号が存在するか確認する。信号の抽出の結果、論理式の右辺に信号がない場合、探索すべき信号は存在しないと判断し、処理を終了する。一方、信号の抽出の結果、論理式の右辺に信号が存在する場合、ステップS16に遷移する。ステップS16では、ステップS14で抽出した信号に対してファンインの探索を行なう。本ステップでは、ステップS11で任意に選択したFSMに含まれる論理式から抽出した信号に対してファンインの探索を行なうことで、ステップS11で選択したFSMの論理を構成するために必要となるFSMの集合以後、状態群と呼ぶを生成する。即ち、ステップS11で選択したFSMに含まれる論理式を成立させるために必要なFSMの集合を抽出する処理を本ステップでは実行する。ファンインの探索の詳細については後述する。ステップS17では、ステップS14で抽出した全ての信号に対してファンインの探索が終了したか否かを判断する。全ての信号についてファンインの探索が終了している場合にはステップS18に遷移する。全ての信号についてファンインの探索が終了していない場合には、ステップS16に遷移し、ファンインの探索を継続する。ステップS18では、ステップS11で選択したFSMに含まれる論理式の右辺に存在する全ての信号についてファンインの探索が終了したので、FSMの論理式の右辺を構成する信号ごとにファンインの探索により生成された状態群からそれぞれ状態群を1つ選択する。そして、異なる信号の状態群を組み合わせることで、設計支援装置1の動作に必要不具合の再現に必要なな動作確認用データを生成し、生成したデータを用いて不具合が再現するか否かを確認する。例えば、ステップS11で選択したFSMに含まれる論理式から、信号X及び信号Yがファンインの対象として抽出され、ステップS16の処理を実行した結果、信号Xを生成するために必要なFSMの状態群としてG1{X1、X2、X3}が生成され、信号Yを生成するために必要なFSMの状態群としてG2{Y1、Y2}が生成されたものとする。次に、G1の中から1つの状態群を選択し、さらにG2の中から1つの状態群を選択し、これらを組み合わせて設計支援装置1の動作に必要なデータを生成し、不具合の再現を試みる。本ステップでの処理を必要状態生成処理と呼び、後に詳細を説明する。次に、上述のステップS16におけるファンインの探索について説明する。図6は、ファンインの探索処理のフローチャートである。ファンインの探索処理は、図5のステップS14で抽出した信号の生成源となるFSMを探索する処理である。ステップS101では、ステップS11で選択したFSMを遷移先現在の処理対象のFSMに定め、処理対象となっているFSMに遷移する前のFSMを遷移元として、全ての遷移元のFSMを抽出する。なお、全ての遷移元のFSMを抽出するとは、処理対象となっているFSMが1つのFSMから遷移するとは限らず、処理対象となっているFSMを遷移先に持つ全てのFSMを抽出することを意味する。ステップS102では、ステップS101で抽出した、それぞれの各遷移元のFSMにおいて、遷移先のFSMに含まれる論理式の右辺から抽出した信号が、遷移元のFSMに含まれる論理式の左辺に存在するか否かを探索する。ステップS103では、遷移元のFSMに含まれる論理式の左辺に、遷移先のFSMの論理式の右辺から抽出した信号が存在するか否かを確認する。信号が存在しなければステップS104に遷移する。信号が存在すればステップS105に遷移する。ステップS104では、遷移元のFSMを新たな遷移先のFSMとしてファンインの探索を行なう。即ち、現在行なっているファンインの探索処理ステップS16において、同じファンインの探索処理を再帰的に実行する。再帰的にファンインの探索処理を実行することで、最終的に目的とする信号の生成源となっているFSMを特定することが可能になる。ステップS105では、遷移元のFSMを、遷移先のFSMに含まれる論理式を構成するために必要なFSMの状態群の中の1つとして記憶する。その際の記憶方法は木構造などのデータ構造を採用する。後の処理において遷移先のFSMの右辺から抽出した信号が、どのようなFSMを経由して生成された信号であるかといった情報が必要になるためである。木構造などのデータ構造を採用することで、それぞれの信号がどのFSMを経由しているかを認識可能とする。本実施形態においては、信号ごとの状態群を木構造で記憶した場合について説明する。遷移先のFSMを親ノード、遷移元のFSMを子ノードとして記憶する。なお、各信号が伝播する状態を順番に記憶経路を記憶することができれば、他のデータ構造でも採用可能なことは当然である。ステップS106では、抽出した信号を左辺に持つ遷移元のFSMに含まれる論理式において、その論理式の右辺から、さらに信号を抽出する。なお、信号を抽出する際には、定数や入力端子信号については除外し、これらの定数や入力端子信号については信号とは扱わない。ステップS107では、遷移元のFSMに含まれる論理式の右辺に信号が存在するか否か確認する。信号が存在すればステップS108に遷移し、信号が存在しなければ、ファンインの探索対象となる信号は存在しないと判断し、ステップS110に遷移する。ステップS108では、ステップS106で抽出した信号に対して、さらに遷移元のFSMを新たな処理対象としてファンインの探索を行なう。本ステップにおいても、ステップS104と同様にファンインの探索処理の再帰実行が行なわれる。ステップS109では、ステップS106で抽出した全ての信号についてファンインの探索を実行したか否かを確認する。全ての信号について、ファンインの探索を実行していなければステップS108に遷移し、ファンインの探索を継続する。全ての信号について、ファンインの探索を実行していれば、ステップS110に遷移する。ステップS110では、ステップS101で抽出した全てのFSMについて、ステップS102以降の処理信号ごとのファンインの探索処理を実行したか否か確認する。全てのFSMについてステップS102以降の処理を実行している場合には、ファンインの探索処理を終了し、全てのFSMに対してステップS102以降の処理を実行していない場合にはステップS102に遷移し、処理を継続する。次に、必要状態生成処理の詳細について説明する。図7は、図5の必要状態生成処理ステップS18を示すフローチャートである。ステップS201では、図5のステップS11で選択したFSMに含まれる論理式を構成する各信号について、ステップS16のファンインの探索により生成された信号ごとの状態群を抽出する。具体的には、図6のステップS105で生成した木構造データの末端の子ノードから順に、親ノードまでたどり、各ノードに記憶した一連のFSMを状態群として抽出する。ステップS202では、信号ごとに抽出した状態群から1つの状態群を選択し、処理対象となるFSMの状態群を選択する。ステップS203では、抽出したFSMの状態群から、重複して選択されたFSMが存在する場合には、重複したFSMを削除する。ステップS203により生成されたFSMの状態群は、設計支援装置1を動作させるために必要なFSMの中から必要最低限のFSMを選択したものといえる。ステップS204では、ステップS203で生成した、設計支援装置1の動作に必要なFSMの状態群から生成したデータを使用して動作確認不具合の再現確認を行なう。ここで、図8を用いてFSMデータ探索処理における動作確認の方法について説明する。図8は、動作確認方法不具合の再現確認を示すフローチャートである。ステップS1001では、動作確認の対象となるFSMの状態群から論理式を抽出し、抽出した論理式の中から、設計支援装置1の動作に必要な論理構造入出力信号及び内部信号を決定する。その際の決定方法については、特許文献2の図7で開示されている方法を始めとして、どのようなアルゴリズムでも良い。ステップS1002では、ステップS1001で決定した信号情報に基づいて、入力した設計データと同じ言語仕様に基づくファイル形式で動作確認用データを生成する。例えば、Verilog-HDLで記述したデータを入力データとした時は、Verilog-HDLで動作確認用データを記述する。ステップS1003では、ステップS1002で生成した動作確認用データを用いて、設計支援装置1を動作させ、不具合の再現確認を行なう。以上が、動作確認方法に関する説明である。再び、図7を用いて必要状態生成処理の説明を継続する。図7のステップS205では、上述の動作確認によって不具合が再現したか否かを確認する。不具合の再現が行なえた場合には、動作確認用データを作り出した論理構造を記憶部30に記憶し、処理を終了する。不具合の再現が行なえなかった場合には、ステップS206に遷移する。ステップS206では、候補となる状態群の組み合わせが全て終了したか否かを判断する。全ての組み合せが終了していれば処理を終了する。全ての組み合せが終了していなければ、ステップS202に遷移して、組み合せが異なる状態群に対して処理を継続する。さらに、縮小データ生成部60では、記憶部30に記憶されている論理構造から縮小データを出力する。なお、その際の縮小データの形式は設計データと同じ形式でも良いし、ユーザが縮小データの形式を選択しても良い。以上が、設計支援装置1における縮小データの生成処理の説明である。次に、本実施形態に係る設計支援装置1における縮小データの生成を具体的なデータを用いて説明する。図9は、設計データをFSMに変換し、変換後のFSMの状態遷移から一部を抜粋した一例である。図9には、7つのFSMが示されており、FSM101乃至FSM105には論理式を記載している。図9に示す状態遷移が入手できているので、図4のステップS02までは既に終了しているものとし、図4のステップS03以降について具体的に説明する。図4のステップS03の詳細は、図5に示されているため、図5に示すフローチャートに従いFSMデータ探索処理について説明する。図5のステップS11では、複数のFSMから任意のFSMを選択する。ここでは、FSM105を選択したものとする。ステップS12では、選択したFSM105のみで設計支援装置1の不具合が再現できるか確認する。選択したFSM105のみでは不具合が再現できなかったものとする。従って、ステップS14に遷移するステップS13。ステップS14では、FSM105の論理式から右辺の信号を抽出する。FSM105に含まれる論理式はH=CF/Eであるから、信号C、信号F、信号Eがそれぞれ抽出される。ステップS15では、FSM105の論理式に信号が存在するか否かを判断する。上述のように、信号C、信号F、信号Eが存在するためステップS16に遷移する。ステップS16では、抽出したそれぞれの信号信号C、信号F、信号Eについてファンインの探索を行なう。ここで、ファンインの探索に関する説明は図6に基づいて行なう。ステップS101では、ファンインの探索の対象となっている信号が、信号Cであれば、FSM105の遷移元であるFSM102及びFSM104が抽出される。ステップS102では、それぞれの遷移元であるFSM102及びFSM104に含まれる論理式の左辺に信号Cが存在するか否か探索する。図9の例においては、FSM102に含まれる論理式の左辺に信号Cが存在する。FSM104に含まれる論理式の左辺には信号Cは存在しない。ステップS103では、FSM102に含まれる論理式の左辺に信号Cが存在するためステップS105に遷移する。遷移元がFSM104であれば、FSM104に含まれる論理式の左辺に信号Cは存在しないためステップS104に遷移する。ステップS104において、FSM104を新たな遷移先としてファンインの探索を再帰的に行なう。しかし、遷移元のFSM103、さらに、FSM101においても、信号CはFSMに含まれる論理式の左辺に発見できないのでFSM104側には信号Cに関する状態群は存在しないことが確定する。ステップS105では、遷移先のFSM105を親ノード、遷移元のFSM102を子ノードとして木構造により記憶する。図10は、信号CについてのFSMの状態遷移を記憶する木構造データの一例を示す図である。記憶部30の配列201に、信号C用のエリア202が確保される。ステップS105において、状態群として記憶すべきFSMとしてFSM105及びFSM102を抽出した際に、ノードN01及びN02を生成する。その後、それぞれのノードにFSM105及びFSM102をポインタP01及びP02により接続し、記憶する。さらに、配列201から親ノードN01へのポインタP03を登録すると共に、親ノードN01から子ノードN02を示すポインタP04を登録することで、親子関係の構築を行なう。また、子ノードから親ノードを探索できるように親ノードを示すポインタP05を登録する。親ノードN01には上位のノード親ノードは存在しないので、ノードN01の親ノードを示すポインタP06は未使用とする。図10では、ポインタP06は未使用であることを明示するため、ENDと記述している。また、遷移元状態が複数ある場合には、子ノードと並列に兄弟ノードとして登録して記憶する。図10において、ノードN01及びN02の兄弟ノードを示すポインタP07及びP08は未使用である。再び、図6に基づいて説明を継続する。図6のステップS105において、遷移先のFSMと遷移元のFSMを木構造により記憶した後は、ステップS106を実行する。ステップS106では、FSM102に含まれる論理式の右辺から信号の抽出を行なう。図9の例においては、信号Aが抽出される。ステップS107では、ステップS106でFSM102の論理式から信号Aが抽出されたのでステップS108に遷移する。ステップS108では、FSM102を新たな遷移先として、信号Aについてファンインの探索を再帰的に行なう。すると、FSM102の遷移元であるFSM101に含まれる論理式の左辺に信号Aが存在することがわかる。このFSM101に含まれる論理式においては、信号Aについての右辺は定数であるのでこれ以上の探索ができない。従って、FSM101までの探索で処理を終了する。信号Cについての状態群として、FSM101が検出されたので木構造データに登録する。図10の木構造データに、FSM101を記憶する際には、登録済みであるFSM102についてのノードN02を親ノードとして、ノードN03を新たに生成する。さらに、FSM101へのポインタP09を登録する。また、親ノードN02から子ノードN03を示すポインタP10を親ノードN02に登録し、子ノードN03から親ノードN02を示すポインタP11を子ノードN03に登録する。ノードN03の子ノードを示すポインタP12と、兄弟ノードを示すポインタP13は未使用である。以上の処理により、FSM105、FSM102、FSM101の各FSMを信号Cについての状態群として木構造データにより記憶する。なお、図9においては、信号Cについての状態群は1つしか発見できなかったが、複数存在する場合もある。さらに、信号Cに対してのファンインの探索において1通りしか状態群は記憶されなかったため、1列の木構造になっているが、検出された遷移元状態が複数存在する場合には子ノードが多数存在することになるため、多分木構造でデータの記憶を行なう。信号Cに対して行なったファンインの探索と同様に、信号F及び信号Eについてもファンインの探索を行なう。その結果、信号FはFSM105、FSM104、FSM101を状態群として持ち、信号EはFSM105及びFSM104を状態群として持つ。以上で、図5におけるステップS17までの処理を説明した。次に、図5のステップS18の処理を行なう。ステップS18では、信号C、信号F、信号Eについて、それぞれ抽出した各状態群を組み合わせて、設計支援装置1の動作確認に必要な必要状態生成を行なう。次に、図7を用いて必要状態生成の具体例を説明する。図7のステップS201では、状態群の抽出を行なう。各信号について抽出した状態群は、それぞれ1つ存在する。信号Cについての状態群は、FSM105、FSM102、FSM101である。信号Fについての状態群は、FSM105、FSM104、FSM101である。信号Eについての状態群は、FSM105、FSM104である。ここでは、各信号についての状態群はそれぞれ1つしか存在しないため、状態群の組み合わせも1通りとなる。ステップS202では、ステップS201で抽出した状態群から不具合再現の際に候補となるFSMの組み合わせを選択する。その組み合わせを列挙すると、FSM105、FSM102、FSM101、FSM105、FSM104、FSM101、FSM105、FSM104となる。ステップS203では、ステップS202で生成したFSMの組み合わせからから重複するFSMを削除する。すると、FSM101、FSM102、FSM104、FSM105が残る。図11に、ステップS203で抽出したFSMに含まれる論理式の一例を示す。次に、図7のステップS204を実行する。ステップS204の動作確認は、抽出したFSMを用いて論理構造を生成し、不具合動作の再現を行なう処理である。図8を用いて、ステップS204の具体的な処理を説明する。図8のステップS1001では、抽出したFSMに含まれる論理式から、右辺にしか存在しない信号を入力信号、左辺にしか存在しない信号を出力信号と定める。さらに、論理式の右辺及び左辺に存在する信号を内部信号と定める。例えば、図11においては、信号Hは出力信号、信号A、信号B、信号C、信号D、信号E、信号Fは内部信号と決定する。このようにして、設計支援装置1が動作するために必要な論理構造を生成する。ステップS1002では、論理構造から動作確認用データを、入力データと同じ形式で出力する。図12は、ステップS1001で生成した論理構造各信号の情報から、Verilog-HDL形式で出力した動作確認用データの一例を示す図である。ステップS1003では、生成した動作確認用データを用いて、設計支援装置1における動作を実行する。以上の動作で、図7のステップS204まで終了したことになる。図7のステップS205では、設計支援装置1の不具合が再現できれば、その際の論理構造を記憶し、図7の処理を終了する。不具合が再現できなければステップS206において、状態群の全ての組み合わせにおいて不具合再現を試みたかを確認し、不具合の再現を試みていない組み合せが存在すればステップS202に遷移し、処理を継続する。その後、縮小データ生成部60において、ユーザから設計支援装置1の開発元に提出する縮小データを出力する。以上が、縮小データを生成する処理である。以上のように、半導体集積回路の設計支援装置1において、任意のFSMを選択し、選択したFSMの論理を構成する信号に対して、信号ごとにファンインの探索をする。さらに、その結果から、設計支援装置1の不具合再現に必要なFSMの状態群を生成する。その後、FSMの状態群を組み合わせて設計支援装置1で動作確認が可能な動作確認用データを生成する。この動作確認用データを用いて、設計支援装置1の不具合再現確認を行い、不具合の再現が確認できれば縮小データとして出力する。この縮小データは、不具合の再現に必要な回路のみ抽出されており、縮小データから半導体集積回路の設計意図を推測することが非常に困難になる。なお、特許文献1に開示された技術では、ユーザが提供するHDLファイルに記述されたモジュールや論理ブロックをそのまま流用しており、ユーザの設計意図を認識することが容易である。そのため、特許文献1に開示された不具合再現のためのデータの秘匿性は必ずしも高いとはいえない。一方、本実施形態に係る設計支援装置1が出力する縮小データは、必要最低限の情報だけを含み、設計支援装置1が自動的に生成するユーザの記述するHDLファイルに依存しないものであるため、設計データの秘匿性が向上しているといえる。[第2の実施形態]続いて、第2の実施形態について図面を参照して詳細に説明する。本実施形態に係る設計支援装置1aの内部構成は設計支援装置1と同様であるため、図2に相当する説明を省略する。設計支援装置1と設計支援装置1aの相違点は、FSMデータ探索部50におけるデータ探索の方法である。第1の実施形態に係る設計支援装置1では、各FSMに含まれる論理の内容に基づいて縮小データの生成を行なっていたが、本実施形態ではFSM間の接続関係を調べることで、不具合の再現に必要なFSMを決定する。図13を用いて、本実施形態におけるFSMデータ探索の処理について説明する。図13は、本実施形態におけるFSMデータ探索の概要を示すフローチャートである。ステップS21では、複数のFSMから任意のFSMを選択する。なお、以後の説明において、現在の処理対象となっているFSMを遷移先、遷移先のFSMに遷移する前のFSMを遷移元とする。また、あるFSMへ別のFSMからの遷移を入力エッジ、あるFSMから別のFSMへの遷移を出力エッジと呼ぶ。ステップS22では、ステップS21で選択した現在の処理対象となっているFSMにおいて他のFSMと接続している入力エッジの本数を数え、そのような入力エッジが1本より多く存在するか判断する。入力エッジが1本より多い場合には、ステップS23に遷移する。入力エッジが1本以下であれば、ステップS24に遷移する。ステップS23では、遷移元のFSMについて遷移元範囲拡大処理を行なう。遷移元範囲拡大処理については後述する。ステップS24では、現在の処理対象となっているFSMにおいて他のFSMと接続している出力エッジの本数を数える。その後、そのような出力エッジが1本より多く存在するか判断する。出力エッジが1本より多い場合には、ステップS25に遷移する。出力エッジが1本以下であれば、ステップS26に遷移する。ステップS25では、遷移先のFSMについて遷移先範囲拡大処理を行なう。遷移先範囲拡大処理については後述する。以上の処理を実行することで、入力エッジが1本、出力エッジが1本となる範囲のFSMを抽出する。ステップS26では、この抽出したFSMに対して、図8で説明した動作確認と同様の処理を行なう。ステップS27では、不具合の再現を判断し、不具合が再現すればFSMデータ探索処理は終了する。不具合が再現できなければ、ステップS28に遷移する。ステップS28では、遷移元のFSMについての範囲拡大処理を行ない、遷移元のFSMが存在せず、範囲の拡大が行なえなくなるまで処理を継続する。ステップS29では、遷移元のFSMについて範囲拡大ができない場合に、ステップS25に遷移し、遷移先のFSMについて範囲拡大処理を行ない範囲の拡大が行なえなくなるまで処理を継続する。その後、遷移先のFSMについて範囲の拡大が行なえない場合に処理を終了する。次に、ステップS25における遷移先範囲拡大処理について説明する。図14は、図13のステップS23で示した遷移元範囲拡大処理のフローチャートである。ステップS301では、現在の処理対象となっているFSMの遷移元を探索し、遷移元のFSMを抽出する。ステップS302では、ステップS301で抽出した遷移元のFSMの出力エッジ数と現在の処理対象となっているFSMの入力エッジ数をそれぞれ数え、比較する。そして、現在の処理対象となっているFSMの入力エッジ数が、遷移元の出力エッジ数よりも多い場合には、ステップS303に遷移する。現在の処理対象となっているFSMの入力エッジ数が、遷移元の出力エッジ数以下の場合には、ステップS304に遷移する。ステップS303では、遷移元のFSMを探索候補のFSMとして記憶する。この際の記憶データ構造は、配列やリスト構造など複数の状態を記憶できる方式であればどのような方式でも良い。ステップS304では、ステップ302において数えた遷移元のFSMの出力エッジ数と現在の処理対象となっているFSMの入力エッジ数が等しいか確認する。遷移元のFSMの出力エッジ数が現在の処理対象となっているFSMの入力エッジ数と等しくない場合には、ステップS305に遷移する。遷移元のFSMの出力エッジ数が現在の処理対象となっているFSMの入力エッジ数と等しい場合には、ステップS306に遷移する。ステップS305では、遷移先のFSMに対して遷移先範囲拡大処理を行なう。ステップS306では、ステップS301で抽出した全ての遷移元のFSMについて探索が終了したか否か判断する。探索が終了していれば、ステップS307に遷移する。探索が終了していなければステップS302に遷移し、処理を継続する。ステップS307では、ステップS303で記憶した探索候補のFSMが存在するか否かを判断する。探索候補のFSMが存在する場合には、ステップS301に遷移し、探索候補のFSMを新たな遷移先に設定し、処理を継続する。探索候補のFSMが存在しない、又は、ステップS303で記憶した探索候補のFSMを全て探索した場合には、ステップS308に遷移する。ステップS308では、探索したFSMにおいて、探索したFSMの範囲外のFSMから遷移している入力エッジの総数が1本であるか否かを判断する。なお、探索したFSMの範囲外のFSMから遷移している入力エッジの総数を、以後、相互に接続していない総入力エッジ数と呼ぶ。相互に接続していない総入力エッジ数が1本であれば処理を終了する。1本でなければ、ステップS309に遷移する。ステップS309では、ステップS301で抽出したFSMを新たな現在の処理対象のFSMとして、遷移元のFSMについての遷移元範囲拡大処理を行なう。次に、遷移先範囲拡大処理について説明する。図15は、図13のステップS25で示した遷移先範囲拡大処理のフローチャートである。現在の処理対象となっているFSMの状態を遷移元のFSMの状態とする。ステップS401では、FSMの遷移元の遷移先を探索し、遷移先のFSMを抽出する。ステップS402では、現在の処理対象となっているFSMの出力エッジ数とステップS401で抽出した遷移先のFSMの入力エッジ数をそれぞれ数え、比較する。そして、現在の処理対象となっているFSMの出力エッジ数が、遷移先の入力エッジ数よりも多い場合には、ステップS403に遷移する。現在の処理対象となっているFSMの出力エッジ数が、遷移先の入力エッジ数以下の場合には、ステップS404に遷移する。ステップS403では、遷移先のFSMを探索候補のFSMとして記憶する。この際の記憶データ構造も配列やリスト構造など複数の状態を記憶できる方式であれば良い。ステップS404では、ステップS402において数えた現在の処理対象となっているFSMの出力エッジ数と遷移先のFSMの入力エッジ数が等しいか確認する。現在の処理対象となっているFSMの出力エッジ数と遷移先のFSMの入力エッジ数が等しくない場合には、ステップS405に遷移する。現在の処理対象となっているFSMの出力エッジ数と遷移先のFSMの入力エッジ数が等しい場合には、ステップS406に遷移する。ステップS405では、遷移元のFSMに対して遷移元範囲拡大処理を行なう。ステップS406では、ステップS401で抽出した全ての遷移先のFSMについて探索が終了したか否か判断する。探索が終了していれば、ステップS407に遷移し、探索が終了していなければステップS402に遷移し、処理を継続する。ステップS407では、ステップS403で記憶した探索候補のFSMが存在するか否かを判断する。探索候補のFSMが存在する場合には、ステップS401に遷移し、探索候補のFSMを新たな遷移元に設定した上で処理を継続する。探索候補のFSMが存在しない、又は、ステップS403で記憶した探索候補のFSMを全て探索した場合には、ステップS408に遷移する。ステップS408では、探索したFSMにおいて、探索したFSMの範囲外へ遷移している出力エッジの総数が1本であるか否かを判断する。なお、探索したFSMの範囲外へ遷移している出力エッジの総数を、以後、相互に接続していない総出力エッジ数と呼ぶ。相互に接続していない総出力エッジ数が1本であれば処理を終了する。1本以外であれば、ステップS409に遷移する。ステップS409では、ステップS401で抽出したFSMを新たな現在の処理対象のFSMとして、遷移先のFSMについての遷移先範囲拡大処理を行なう。次に、本実施形態に係る設計支援装置1aにおけるFSMから不具合の再現に必要となるFSMを抽出するまでの処理を具体的なデータを用いて説明する。図16は、設計データから生成したFSMの状態遷移の一部の一例を示す図である。図17は、図16に対応するVerilog-HDL記述の一部についての一例である。図18は、図16に示すFSM若しくは、範囲と図17のVerilog-HDL記述の範囲との関係を示す図である。ここで、図16の範囲301は、範囲310とFSM308を含む範囲である。つまり、図16の範囲301は図17の範囲403のVerilog-HDL記述に相当し、Verilog-HDL記述404の条件分岐処理if文とVerilog-HDL記述408の逐次処理に相当する。以下に、図16のFSM308から探索を開始し、図16の範囲301に存在するFSMを抽出する手順を具体的に説明する。説明は、図13乃至15のフローチャートを参照しながら行なう。図13のステップS21において、FSM308を選択する。FSM308には、入力エッジとしてエッジE01の1本のみ存在し、出力エッジとしてエッジE02の1本が存在する。従って、ステップS22からステップS24に遷移し、さらにステップS26に遷移する。ステップS26では、FSM308のみを用いて、設計支援装置1aの動作確認を行なう。ここでは、FSM308のみでは不具合は再現できなかったものとする。従って、ステップS28に遷移するステップS27。FSM308には遷移元のFSM307が存在するので、遷移元のFSMについての範囲拡大処理が可能であるステップS28。次に、図14を用いて、FSM307を遷移元のFSMとする遷移元範囲拡大処理について説明する。図14のステップS301では、現在の処理対象のFSMはFSM308が抽出され、現在の処理対象であるFSM308の遷移元をたどり、FSM307を検出し、記憶する。ステップS302では、遷移元のFSM307の出力エッジ数と、現在の処理対象であるFSM308の入力エッジ数を比較する。遷移元のFSM307にある出力エッジ数は、エッジE01のみであるからその数は1である。また、現在の処理対象であるFSM308にある入力エッジ数は、エッジE01のみであるから、その数は1である。従って、ステップS302からステップS304に遷移する。また、遷移元のFSM307の出力エッジ数と現在の処理対象であるFSM308入力エッジ数は等しいのでステップS306に遷移する。ステップS301で抽出したFSMはFSM307のみであるので、ステップS301で抽出した全ての遷移元のFSMの探索が終了したことなり、ステップS307に遷移するステップS306。ステップS307においては、ステップS303を実行していないため、記憶された探索候補のFSMは存在せず、ステップS308に遷移する。FSM308及びFSM307の相互に接続していない総入力エッジ数はエッジE03乃至E05の3本であるので、ステップS309に遷移し、遷移元のFSM307について遷移元範囲拡大処理を実行するステップS308。ここで、遷移元範囲拡大処理が再帰的に実行されるが、その際の現在の処理対象のFSMはFSM307となる。従って、ステップS301における、遷移元のFSMの探索では、FSM304、FSM305、FSM306のそれぞれが抽出される。ステップS301で抽出されたFSMの中から順に、遷移元範囲拡大処理が実行される。ここでは、上記の3つのFSMのうちFSM304を選択して、処理を説明する。ステップS302では、遷移元のFSM304の出力エッジ数と現在の処理対象であるFSM307の入力エッジ数を比較する。遷移元のFSM304が有する出力エッジはエッジE03のみであるから、その数は1本である。一方、現在の処理対象であるFSM307が有する入力エッジは、エッジE03乃至E05であるから、その数は3本である。従って、出力エッジ数は入力エッジ数より小さいのでステップS303に遷移する。ステップS303では、FSM304を探索候補のFSMとして記憶する。ステップS306では、ステップS301で抽出した全ての遷移元となるFSMについて探索を行なっていないので、ステップS302に遷移し、処理を継続する。既にFSM304についての探索処理は終了したので、ステップS301で抽出したFSMのうち、対象となるのはFSM305及びFSM306である。これらについても、FSM304と同様に処理し、FSM305及びFSM306がステップS303において、探索候補のFSMとして記憶される。以上の処理が終了すると、ステップS306からステップS307に遷移する。ステップS307では、探索候補となるFSMの存在を確認するが、既にFSM304、FSM305、FSM306が探索候補として記憶されているので、ステップS308に遷移する。ステップS308では、FSM307の入力エッジの数は3本であるので、それぞれの探索候補について遷移元のFSMを探索するステップS309に遷移する。ステップS309では、遷移元範囲拡大処理が、FSM304、FSM305、FSM306を対象として再帰的に実行される。ここでは、探索候補であるFSM304の遷移元を探索することとする。ステップS301では、探索候補のFSM304の遷移元を探索し、FSM303を抽出する。遷移元のFSM303が有する出力エッジはエッジE06乃至E08であるから、3本である。一方、現在の処理対象であるFSM307が有する入力エッジはエッジE03乃至E05であるから、3本である。従って、出力エッジ数は入力エッジ数より少ないわけではないので、ステップS304の処理へ進むステップS302。さらに、出力エッジ数と入力エッジ数は等しいのでステップS306の処理へ進むステップS304。ステップS306では、ステップS301で抽出したFSMの状態304についての遷移元のFSMはFSM303のみであるので、全ての遷移元のFSMの状態を探索終了したと判断される。さらに、ステップS303は実行されていないので、探索候補のFSMは記憶されておらず、ステップS308に遷移するステップS307。なお、探索候補であるFSM304と同様に、他の探索候補であるFSM305及びFSM306について、遷移元のFSMを探索する。このようにして、FSM305、FSM306についての探索処理が終了すると、最終的には、FSM308、FSM307、FSM304、FSM305、FSM306、FSM303において、相互に接続していない総入力エッジ数は、エッジE09の1本のみ存在する。従って、遷移元範囲拡大処理は終了するステップS308。以上の処理で、図13におけるステップS23が終了したことになる。次に、相互に接続していない総出力エッジ数は、エッジE02の1本のみであるから、図13のステップS24からステップS26に遷移する。ステップS26では、抽出したFSM308、FSM307、FSM304、FSM305、FSM306、FSM303を用いて不具合の再現確認を行なう。不具合の再現を確認すれば、処理を終了するステップS27。以上の手順によって、不具合の再現確認に必要となるFSMの状態群として範囲301が選択できる。以上のように、本実施形態に係る設計支援装置1aにおいて、任意に選択したFSMを含む特定の範囲のFSMの状態が、入力エッジが1本、出力エッジが1本となる範囲を抽出する。入力エッジが1本、出力エッジが1本となるような範囲は、回路全体の構成により特定の論理構造を持つことになり、設計支援装置1aでの動作確認が行なえる。そのような特定の論理構造には、図16の範囲310と図17の404が示すように、条件分岐処理が含まれることもある。即ち、特定の範囲のFSMの状態において、入力エッジが1本、出力エッジが1本となる範囲を検出することで、一定の論理構造に則した範囲のFSMの抽出が可能となる。従って、本実施形態においても、ユーザが記述したモジュールや論理ブロックに依存せずに、不具合の再現確認に必要な回路を抽出することが可能となるため、再現データの秘匿性を高めることができる。[第3の実施形態]続いて、第3の実施形態について図面を参照して詳細に説明する。本実施形態に係る設計支援装置1bの内部構成は設計支援装置1及び設計支援装置1aと同様であるため、図2に相当する説明を省略する。本実施形態に係る設計支援装置1bは、第2の実施形態において説明した処理に回路の一部を縮小する処理を追加するものである。図19は、本実施形態に係る設計支援装置1bの回路の一部を縮小する処理を示すフローチャートである。ステップS2001では、第2の実施形態において抽出したFSMの状態に対して、条件分岐処理の有無の発見を目的として、いずれかのFSMから複数の遷移先のFSMに向けた遷移が存在するか否かを確認する。なお、複数の遷移先のFSMに向けた遷移があったFSMを分岐の先頭と呼び、分岐の先頭のFSMの出力エッジ数と同じ入力エッジ数を持つFSMを、分岐の終端と呼ぶ。ステップS2002において、条件分岐処理が発見できなかった場合には、回路をこれ以上、縮小することはできないので処理を終了する。条件分岐処理が発見された場合、ステップS2003に遷移する。ステップS2003では、分岐の先頭から分岐の終端の間にあるFSMの状態群を、分岐後のFSMの状態として、分岐の数と同数だけ抽出する。例えば、2系統の分岐処理が存在すれば、2つのFSMの状態群が抽出できる。ステップS2004では、ステップS2003で抽出した分岐後のFSMの状態を、第2の実施形態において抽出したFSMの状態から削除したFSMの状態を抽出する。ステップS2005では、ステップS2004で抽出したFSMの状態を用いて動作確認を行なう。その際の確認は、図5のステップS12と同様の方法で行なう。ステップS2006では、不具合の動作確認を行ない、不具合が再現できれば処理を終了する。再現できなければ、ステップS2007に遷移する。ステップS2007では、ステップS2003で抽出した他の分岐後のFSMの状態に対して処理が終了したか判断し、終了していなければステップS2004に遷移し、処理を継続する。次に、具体的なデータを用いて、本実施形態に係る縮小データの抽出について説明する。ここでは、図16の範囲301が不具合の再現確認に必要となるFSMの状態群として抽出されたものとして説明を行なう。範囲301に含まれるFSMを先頭のFSMから探索すると、FSM303は複数の出力エッジE06乃至E08を有することがわかるステップS2001。複数の出力エッジを持つということは、条件分岐処理を持つということと等価であるので、ステップS2003に遷移するステップS2002。また、分岐の先頭のFSM303の出力エッジはエッジE06乃至E08の3本である。一方、FSM303の遷移先のFSMを探索するとFSM307の入力エッジは、エッジE03乃至E05の3本であるので、FSM307が分岐の終端に定まる。従って、ステップS2003では、分岐の先頭のFSM303と分岐の終端のFSM307の間にあるFSM304と、FSM305と、FSM306が分岐後のFSMとして抽出される。ステップS2004では、ステップS2003で抽出した分岐後のFSMに対して、順にステップS2004の処理を実行する。初めに、FSM304について、ステップS2004の処理を実行する。範囲301に含まれるFSM303乃至308から、FSM304を除いたFSM303、FSM305、FSM306、FSM307、FSM308を抽出する。ステップS2005では、このステップS2004で抽出したFSMの状態を用いて動作確認を行なう。不具合の再現確認が行なえれば、処理を終了するステップS2006。なお、FSM304を除いた時点で不具合動作が再現したとしても、それ以外のFSM305又はFSM306を削除して、不具合の再現が確認できれば、より小さい縮小データの生成が可能になる。第2の実施形態において抽出したFSMの状態において、条件分岐を含んでいる場合、分岐後のFSMが条件分岐数の数と同数存在することになる。一部の分岐後のFSMの状態が不具合を再現する動作に影響を与えなければ、分岐後のFSMの状態の一部を除くことで、縮小データを、より小さくすることが可能になる。その結果、縮小データの秘匿性をさらに高めることが可能となる。なお、上記の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示請求の範囲を含むの枠内において、さらにその基本的技術思想に基づいて、実施形態の変更調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であれば、なし得るであろう各種変形、修正を含むことは勿論である。例えば、設計支援装置の各部の処理は、コンピュータに半導体集積回路の設計支援プログラムを実行させることで実現されるようにしても良い。若しくは、ネットワーク上のサーバ上でプログラムを実行し、各クライアントからプログラムを呼び出す構成であっても良い。