(57)【要約】【課題】リセット信号の接続関係を変更した中間回路に含まれるリセット無しＦＦのうち、リセット付きＦＦへの変更で元の回路の出力信号の状態に一致させることができるリセット無しＦＦを自動で検出する半導体集積回路設計支援システムを提供する。【解決手段】リセット信号の接続関係を変更した回路Ｔ２と変更前の回路Ｔ１との各出力ポート１〜６の信号状態を比較して回路Ｔ２内の出力ポートから変更前の回路Ｔ１内の対応する出力ポートの信号状態と異なる出力ポートを検出し、リセット信号を入力するシミュレーション結果に基づいて、検出した出力ポートに繋がるリセット無しＦＦを、回路Ｔ１と回路Ｔ２における当該出力ポート間の信号状態を一致させるリセット付きＦＦに置き換える置き換えＦＦ検出手段１を備える。【選択図】図１
2007316751.tif 000002
【特許請求の範囲】
【請求項１】
リセット信号の接続関係を変更した回路と変更前の回路との各出力ポートの信号状態を比較して前記変更した回路内の出力ポートから前記変更前の回路内の対応する出力ポートの信号状態と異なる出力ポートを検出し、リセット信号を入力するシミュレーション結果に基づいて、前記検出した出力ポートに繋がるリセット信号で制御可能な端子の無いフリップフロップを、前記変更した回路と前記変更前の回路における当該出力ポート間の信号状態を一致させるリセット信号で制御可能な端子の付いたフリップフロップに置き換える置き換えＦＦ検出手段を備えた半導体集積回路設計支援システム。
【請求項２】
置き換えＦＦ検出手段は、
リセット信号のみを入力とした簡易シミュレーションを実行する簡易シミュレーション手段と、
簡易シミュレーション実行後の出力ポートの信号状態を記憶する出力状態記憶手段と、
前記出力状態記憶手段の記憶内容からリセット信号の接続関係を変更した回路と変更前の回路の各出力ポートの信号状態が一致しているか否かを検出する一致検出手段と、
前記一致検出手段により不一致と判定された出力ポートに繋がる前記変更した回路内のフリップフロップを検出する繋続ＦＦ検出手段と、
前記繋続ＦＦ検出手段により検出されたフリップフロップの情報を記憶する検出ＦＦ記憶手段と、
前記検出ＦＦ記憶手段の記憶内容を用いて、前記変更した回路内の出力ポートに繋がるフリップフロップのうち、リセット信号で制御可能な端子の付いたフリップフロップに変更することにより、前記変更した回路と前記変更前の回路における当該出力ポート間の信号状態を一致させることができるリセット信号で制御可能な端子の無いフリップフロップのリスト情報を作成する繋続ＦＦ判定手段と、
前記リスト情報により特定される前記リセット信号で制御可能な端子の無いフリップフロップを、リセット信号で制御可能な端子の付いたフリップフロップに置き換える置き換えＦＦ判定手段とを備えたことを特徴とする請求項１記載の半導体集積回路設計支援システム。
【請求項３】
リセット信号の接続関係を変更した回路と変更前の回路との各出力ポートの信号状態を比較して前記変更した回路内の出力ポートから前記変更前の回路内の対応する出力ポートの信号状態と異なる出力ポートを検出し、リセット信号を入力するシミュレーション結果に基づいて、前記検出した出力ポートに繋がるリセット信号で制御可能な端子の無いフリップフロップを、前記変更した回路と前記変更前の回路における当該出力ポート間の信号状態を一致させるリセット信号で制御可能な端子の付いたフリップフロップに置き換える置き換えＦＦ検出手段としてコンピュータを機能させるプログラム。
【請求項４】
リセット信号のみを入力とした簡易シミュレーションを実行する簡易シミュレーション手段と、
簡易シミュレーション実行後の出力ポートの信号状態を記憶する出力状態記憶手段と、
前記出力状態記憶手段の記憶内容からリセット信号の接続関係を変更した回路と変更前の回路の各出力ポートの信号状態が一致しているか否かを検出する一致検出手段と、
前記一致検出手段により不一致と判定された出力ポートに繋がる前記変更した回路内のフリップフロップを検出する繋続ＦＦ検出手段と、
前記繋続ＦＦ検出手段により検出されたフリップフロップの情報を記憶する検出ＦＦ記憶手段と、
前記検出ＦＦ記憶手段の記憶内容を用いて、前記変更した回路内の出力ポートに繋がるフリップフロップのうち、リセット信号で制御可能な端子の付いたフリップフロップに変更することにより、前記変更した回路と前記変更前の回路における当該出力ポート間の信号状態を一致させることができるリセット信号で制御可能な端子の無いフリップフロップのリスト情報を作成する繋続ＦＦ判定手段と、
前記リスト情報により特定される前記リセット信号で制御可能な端子の無いフリップフロップを、リセット信号で制御可能な端子の付いたフリップフロップに置き換える置き換えＦＦ判定手段とを備えた置き換えＦＦ検出手段としてコンピュータを機能させる請求項３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路設計において、遅延時間や動作タイミングを考慮したリセット信号に関する回路変更を支援するための半導体集積回路設計支援システム及びこのシステムとしてコンピュータを機能させるプログラムに関するものである。
【背景技術】
【０００２】
半導体集積回路設計において、対象回路内のリセット信号の接続関係を変更するため、例えば回路内の一部のリセット信号で制御可能な端子を有するフリップフロップを前記端子が無いフリップフロップに変更したり、その反対に前記端子のないフリップフロップから前記端子のあるフリップフロップへ変更したり、新たにフリップフロップを追加する等の処理が行われる。
【０００３】
また、許容タイミング制約を超過した信号経路が発生した場合には、リタイミングと呼ばれる手法を用いて、許容タイミング制約の超過原因となる信号経路上の回路構成を変更することによりタイミング違反箇所を無くすことができる。
【０００４】
半導体集積回路設計に関する従来の技術としては、例えば特許文献１に開示されるものがある。この特許文献１では、システムリセットを掛けることができないレジスタ（ＦＦ）の出力を不定値のままにすることなく、複数クロックサイクルで規定される期間内でマスクが有効となるマスク回路を自動で追加する。これにより、不定値が不本意に次段回路に伝達されることがなくなって回路全体の安定化が図られ、かつ論理検証を効果的に行うことができる。
【０００５】
また、特許文献２には、リセット信号経路以外の信号経路の遅延期間を短縮するためのリタイミングを阻止する障害の原因となる信号経路上の回路を識別し、タイミング制約を満たす新規回路に変更することにより、クロック周期を縮小した再設計回路を行うことができる。
【０００６】
【特許文献１】特開平３−１５４１７０号公報
【特許文献２】特開平６−２４３１９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の半導体集積回路設計では、対象回路内のリセット信号の接続関係を変更するにあたり、変更後の回路の出力信号の状態が元の回路のものに一致するか否かを容易に確認する方法がなかった。
【０００８】
また、リタイミング機能を有するソフトウエアとしては、例えばＳｙｎｐｏｓｙｓ社のＤｅｓｉｇｎＣｏｍｐｉｌｅｒ（登録商標）等が汎用されている。しかしながら、このソフトウエアによるリタイミングでは、リセット信号を含んでいる回路の場合、リセット信号入力を無効化状態に設定した後でなければ、リタイミング処理を実行できない。このため、対象回路内の中間回路の初期化を目的にリセット信号を動作させる必要があり、リタイミング後の回路と元の回路で出力信号の状態が異なることがあった。
【０００９】
さらに、特許文献１及び特許文献２では、対象回路内へのリタイミングの実行やリセット信号の接続関係の変更後に、対象回路内の中間回路に含まれるリセット信号で制御可能な端子の無いフリップフロップのうち、リセット信号で制御可能な端子の付いたＦＦへ変更することで元の回路の出力信号の状態に一致させることができるフリップフロップを自動で検出することができない。このため、遅延時間や動作タイミングを考慮した半導体集積回路設計を効率的に支援することができない。
【００１０】
この発明は、上記のような課題を解決するためになされたもので、対象回路へのリタイミングの実行やリセット信号の接続関係の変更によって対象回路内の中間回路が元の回路の出力信号の状態と異なるものとなった場合、中間回路に含まれるリセット信号で制御可能な端子の無いフリップフロップのうち、リセット信号で制御可能な端子の付いたフリップフロップへの変更で元の回路の出力信号の状態に一致させることができるフリップフロップを自動で検出できる半導体集積回路設計支援システム及びこのシステムとしてコンピュータを機能させるプログラムを得ることを目的とする。
【課題を解決するための手段】
【００１１】
この発明に係る半導体集積回路設計支援システムは、リセット信号の接続関係を変更した回路と変更前の回路との各出力ポートの信号状態を比較して変更した回路内の出力ポートから変更前の回路内の対応する出力ポートの信号状態と異なる出力ポートを検出し、リセット信号を入力するシミュレーション結果に基づいて、検出した出力ポートに繋がるリセット信号で制御可能な端子が無いフリップフロップを、変更した回路と変更前の回路における当該出力ポート間の信号状態を一致させるリセット信号で制御可能な端子が付いたフリップフロップに置き換える置き換えＦＦ検出手段を備えるものである。
【発明の効果】
【００１２】
この発明によれば、リセット信号の接続関係を変更した回路内の出力ポートから変更前の回路内の対応する出力ポートの信号状態と異なる出力ポートを検出する。そして、リセット信号を入力するシミュレーション結果に基づいて、検出された出力ポートに繋がるリセット無しＦＦを、変更した回路と変更前の回路における当該出力ポート間の信号状態を一致させるリセット付きＦＦに置き換えるので、対象回路へのリタイミングの実行やリセット信号の接続関係の変更によって対象回路内の中間回路が元の回路の出力信号の状態と異なるものとなった場合であっても、中間回路に含まれるリセット信号で制御可能な端子の無いフリップフロップのうち、リセット信号で制御可能な端子の付いたフリップフロップへの変更で元の回路の出力信号の状態に一致させることができるフリップフロップを自動で検出できるという効果がある。
【発明を実施するための最良の形態】
【００１３】
実施の形態１．
図１は、この発明の実施の形態１による半導体集積回路設計支援システムの構成を示すブロック図であり、対象回路である半導体集積回路内の回路（元の回路Ｔ１）と、この対象回路内のリセット信号経路以外へリタイミングを実行した後の回路Ｔ１に対応する回路（中間回路Ｔ２）とを併せて記載している。
【００１４】
元の回路Ｔ１は、外部からの信号入力ポート１〜１０、外部への信号出力ポート１〜６、フリップフロップ（以降、ＦＦと呼ぶ）ＦＦやラッチを包含しない組み合わせ回路Ｃ１〜Ｃ８、リセット信号でリセット可能な端子が付いたＦＦ（以降、リセット付きＦＦと呼ぶ）であるＦＦ１，ＦＦ４〜ＦＦ８、及び、リセット信号で制御可能な端子が無いＦＦ（以降、リセット無しＦＦと呼ぶ）であるＦＦ２，ＦＦ３を備える。また、元の回路Ｔ１における組み合わせ回路Ｃ３には信号ａと信号ｂが入力している。
【００１５】
なお、本発明において、リセット信号で制御可能な端子が付いたＦＦとしては、リセット信号でリセット可能な端子が付いたＦＦであるリセット付きＦＦの他、リセット信号で値の設定制御が可能な端子が付いたＦＦであるセット付きＦＦがある。以降の説明では、リセット信号の入力により、リセット付きＦＦはリセットされて値０になり、セット付きＦＦは値１が設定され、リセット無しＦＦはリセット信号により制御できないので不定値Ｘとなる。
【００１６】
中間回路Ｔ２は、元の回路Ｔ１に対してリセット信号の接続関係を変更する処理（リタイミング処理）を施した後の回路であり、変更前の回路Ｔ１内の対応する出力ポートの信号状態と異なる出力ポートを有する可能性がある。本発明では、中間回路Ｔ２における信号状態の不整合を、リセット無しＦＦからリセット付きＦＦ又はセット付きＦＦに変更することにより修正して後述する最終回路Ｔ３を得る。また、図１に示す中間回路Ｔ２は、入力ポート１〜１０、出力ポート１〜６及び組み合わせ回路Ｃ１〜Ｃ８は回路Ｔ１のままであるが、リセット付きＦＦのＦＦ１１及びリセット無しＦＦのＦＦ１２，ＦＦ１３，ＦＦ２１〜ＦＦ２９を備える構成に変更されている。
【００１７】
なお、中間回路Ｔ２における組み合わせ回路Ｃ３には信号ａ’と信号ｂ’が入力しており、組み合わせ回路Ｃ３からは信号ｃが出力し、組み合わせ回路Ｃ４には信号ｄと信号ｅが入力しており、組み合わせ回路Ｃ４からは信号ｆが出力する。中間回路Ｔ２における組み合わせ回路Ｃ５には信号ｇと信号ｈが入力し、組み合わせ回路Ｃ５からは信号ｉが出力する。組み合わせ回路Ｃ６には信号ｊと信号ｋが入力しており、組み合わせ回路Ｃ６からは信号ｌが出力する。組み合わせ回路Ｃ７には信号ｍと信号ｎが入力しており、組み合わせ回路Ｃ７からは信号ｏが出力する。組み合わせ回路Ｃ８には信号ｐと信号ｑが入力し、組み合わせ回路Ｃ８からは信号ｒが出力する。
【００１８】
なお、図示の例では、元の回路Ｔ１内のＦＦ２、ＦＦ３をリセット無しＦＦとしているがリセット付きＦＦでも良い。また、中間回路Ｔ２内のＦＦ１２、ＦＦ１３もリセット無しＦＦとしているがリセット付きＦＦでも良い。
【００１９】
上述したように、中間回路Ｔ２は、元の回路Ｔ１に対してリタイミング処理を施した状態である。リタイミングでは、許容タイミング制約を超過した信号経路上の回路構成を変更してタイミング違反箇所を無くす処理が行われる。
例えば、元の回路Ｔ１内の入力ポート１から組み合わせ回路Ｃ１〜Ｃ３を順次経由してＦＦ１に到達するまでの経路における信号遅延が許容タイミング制約を超過した場合、図１中に矢印で示すように、組み合わせ回路Ｃ３をＦＦ１１の先（出力ポート１側）に移動させる。
【００２０】
これにより、中間回路Ｔ２において、入力ポート１から組み合わせ回路Ｃ１とＣ２を経由してＦＦ１１に到達するまでの経路、ＦＦ１１から組み合わせ回路Ｃ３を経由して出力ポート１に到達するまでの経路、入力ポート２から組み合わせ回路Ｃ１とＣ２を経由してＦＦ１１に到達するまでの経路、ＦＦ１２から組み合わせ回路Ｃ２を経由してＦＦ１１に到達するまでの経路、ＦＦ１３からＦＦ２１に到達するまでの経路、及び、ＦＦ２１から組み合わせ回路Ｃ３を経由して出力ポート１に到達するまでの経路の計６経路の信号遅延が許容タイミング制約を満たすように回路が変更される。
【００２１】
また、中間回路Ｔ２内には、ＦＦ２１が、組み合わせ回路Ｃ３に入力される信号ａ’と信号ｂ’のサイクルタイミングを合わせるために挿入される。
【００２２】
同様に、元の回路Ｔ１内の入力ポート３から組み合わせ回路Ｃ４を経由してＦＦ４に到達するまでの経路における信号遅延が許容タイミング制約を超過した場合、中間回路Ｔ２のように、ＦＦ４を削除して組み合わせ回路Ｃ４の前（入力ポート３，４側）にＦＦ２２を挿入する。
【００２３】
これにより、中間回路Ｔ２において、入力ポート３からＦＦ２２に到達するまでの経路、ＦＦ２２から組み合わせ回路Ｃ４を経由して出力ポート２に到達するまでの経路、ＦＦ２２から組み合わせ回路Ｃ４とＣ５を経由して出力ポート３に到達するまでの経路、入力ポート４からＦＦ２３に到達するまでの経路、ＦＦ２３から組み合わせ回路Ｃ４を経由して出力ポート２に到達するまでの経路、ＦＦ２３から組み合わせ回路Ｃ４とＣ５を経由して出力ポート３に到達するまでの経路、入力ポート５からＦＦ２４に到達するまでの経路、及び、ＦＦ２４から組み合わせ回路Ｃ５を経由し出力ポート３に到達するまでの経路の計８経路の信号遅延が許容タイミング制約を満たすように回路を変更する。
【００２４】
また、中間回路Ｔ２内には、ＦＦ２３が、組み合わせ回路Ｃ４に入力される信号のサイクルタイミングを合わせるために挿入され、ＦＦ２４が組み合わせ回路Ｃ５に入力される信号のサイクルタイミングを合わせるために挿入される。同様に、元の回路Ｔ１に対してリタイミング処理することで、中間回路Ｔ２のように、ＦＦ６〜ＦＦ８が削除され、組み合わせ回路Ｃ６の前（入力ポート６，７側）にＦＦ２５，ＦＦ２６が挿入され、組み合わせ回路Ｃ７，Ｃ８の前（入力ポート８〜１０側）にＦＦ２７，ＦＦ２８，ＦＦ２９が挿入されている。
【００２５】
本実施の形態１による半導体集積回路設計支援システムを構成する置き換えＦＦ検出手段１は、対象回路に対してリセット付きＦＦに置き換えても不具合が発生することなく、出力信号の状態を一致させるリセット無しＦＦを検出する機能を有する。その構成としては、簡易シミュレーション手段２、出力状態記憶手段３、一致検出手段４、繋続ＦＦ検出手段５、検出ＦＦ記憶手段６、繋続ＦＦ判定手段７、及び置き換えＦＦ判定手段８を有する。
【００２６】
簡易シミュレーション手段２は、リセット信号のみを入力とした簡易シミュレーションを実行する機能を有している。出力状態記憶手段３は、簡易シミュレーション手段２によるシミュレーション実行後の出力信号の状態を記憶する。
【００２７】
一致検出手段４は、出力状態記憶手段３の記憶内容からリセット信号の接続関係を変更した回路（中間回路Ｔ２）の出力ポートと元の回路Ｔ１の出力ポートとにおける出力信号の状態を比較し、信号状態が一致しているか否かを判定する機能に加え、信号状態が異なっている中間回路Ｔ２の出力ポートを検出する機能を備えている。但し、元の回路Ｔ１における出力信号の状態が、不定値‘Ｘ’である場合、中間回路Ｔ２の出力信号の状態に拠らず一致とみなす。
【００２８】
繋続ＦＦ検出手段５は、信号状態が異なる出力ポートに繋がる中間回路Ｔ２内のＦＦを検出する機能を有している。検出ＦＦ記憶手段６は、繋続ＦＦ検出手段５で検出したＦＦの情報を出力ポート毎に記憶する機能を有している。
【００２９】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６において出力ポート毎に記憶された出力ポートに繋がるＦＦのうち、リセット付きＦＦに変更することで出力信号の状態を一致させることができるリセット無しＦＦを検出する機能と、リセット付きＦＦに置き換え可能なＦＦのリストを作成する機能を有している。置き換えＦＦ判定手段８は、繋続ＦＦ判定手段７により作成されたリスト内のＦＦをリセット付きＦＦに置き換える対象として判定する機能を有している。
【００３０】
本実施の形態１では、上述したように、元の回路Ｔ１と中間回路Ｔ２との各々に対して簡易シミュレーション手段２を用いてリセット信号のみを入力した簡易シミュレーションを実行し、回路Ｔ１と回路Ｔ２の各々の出力ポートにおける出力信号の状態を出力状態記憶手段３に記憶させる。
【００３１】
そして、一致検出手段４が、出力状態記憶手段３に記憶された回路Ｔ１と回路Ｔ２の出力信号の状態に基づいて、信号状態が異なっている回路Ｔ２の出力ポートを検出する。繋続ＦＦ検出手段５では、一致検出手段４により検出された出力ポートに繋がるＦＦの情報を検出ＦＦ記憶手段６に記憶させる。
【００３２】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶されたＦＦの情報を用いて出力信号の状態を一致させることができるＦＦを判定し、このＦＦをまとめたリストを作成する。置き換えＦＦ判定手段８は、このリスト内に存在するＦＦをリセット付きＦＦへ置き換える対象として判定する。
【００３３】
本実施の形態１による半導体集積回路設計支援システムを構成する置き換えＦＦ検出手段１は、コンピュータを用いて実現することができる。つまり、簡易シミュレーション手段２、一致検出手段４、繋続ＦＦ検出手段５、繋続ＦＦ判定手段７、及び置き換えＦＦ判定手段８は、本発明に従う半導体集積回路設計支援プログラムを上記コンピュータのＣＰＵに実行させてその動作を制御することにより、ハードウエアとソフトウエアが協働した具体的手段として当該コンピュータ上に実現することができる。
【００３４】
また、出力状態記憶手段３及び検出ＦＦ記憶手段６は、前記コンピュータのメモリや外部記憶装置等に構築される。対象回路の構成要素間の接続関係に関する情報は、例えば上記コンピュータに装備された記憶装置に格納され、上記手段に適宜読み出されて利用される。
【００３５】
なお、以下の説明において、本発明の半導体集積回路設計支援システムを具現化するコンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００３６】
次に動作について説明する。
図２〜図５は、実施の形態１の半導体集積回路設計支援システムによる動作の流れを示すフローチャートであり、この図に沿って動作の詳細を説明する。
先ず、簡易シミュレーション手段２は、ネットリストやハードウェア記述言語等で記述された対象回路の構成要素及びその接続関係に関する情報を入力して、元の回路Ｔ１に対しリセット信号のみを入力した簡易シミュレーションを実施する（ステップＳＴ１）。
【００３７】
簡易シミュレーション手段２によるシミュレーション実施後の回路Ｔ１内の全ての出力信号の状態は、出力状態記憶手段３に記憶される（ステップＳＴ２）。ここでは、簡易シミュレーションの結果として、回路Ｔ１における出力ポート１は値‘０’、出力ポート２は値‘１’、出力ポート３は値‘０’、出力ポート４は値‘１’、出力ポート５は値‘１’、出力ポート６は値‘０’が得られたものとする。
【００３８】
次に、簡易シミュレーション手段２は、ネットリストやハードウェア記述言語等で記述された、回路Ｔ１内のリセット信号の接続関係を変更した中間回路Ｔ２の構成要素及びその接続関係に関する情報を入力して、中間回路Ｔ２に対してリセット信号のみを入力した簡易シミュレーションを実施する（ステップＳＴ３）。
【００３９】
簡易シミュレーション手段２によるシミュレーション実施後の回路Ｔ２内の全ての出力信号の状態は、出力状態記憶手段３に記憶される（ステップＳＴ４）。ここでは、回路Ｔ２における出力ポート１〜６の値が全て不定値‘Ｘ’である簡易シミュレーション結果が得られたものとする。これにより、図６に示すような簡易シミュレーション結果が出力状態記憶手段３に記憶される。図６の各行は出力ポート番号毎の情報であり、列は元の回路Ｔ１と中間回路Ｔ２の信号状態を記載している。
【００４０】
（ａ）出力ポート１
ステップＳＴ５で、中間回路Ｔ２内の任意の出力ポート（図１の例では、出力ポート１〜出力ポート６が相当）から出力ポート１が始点に設定されると、ステップＳＴ６の処理に進む。例えば、本システムを構成するコンピュータに装備されたモニタ等の表示装置に中間回路Ｔ２を表示し、この表示画面を基にして設計者が、マウス等の入力装置を用いて始点の出力ポートを指定する。
【００４１】
一致検出手段４は、中間回路Ｔ２内の出力ポート１が元の回路Ｔ１内の出力ポート１の出力信号の状態と一致しているか否かを判定する（ステップＳＴ６）。このとき、出力信号の状態が一致している場合は、ステップＳＴ８に進む。ここでは、上述したように、中間回路Ｔ２の出力ポート１は不定値‘Ｘ’であり、回路Ｔ１の出力ポート１の値‘０’と信号状態が異なっているので、ステップＳＴ７に進む。
【００４２】
ステップＳＴ７において、繋続ＦＦ検出手段５は、ネットリストやハードウェア記述言語等で記述された回路Ｔ１，Ｔ２の構成要素及びその接続関係に関する情報から、中間回路Ｔ２の出力ポート１に繋がるＦＦ１１（リセット付きＦＦ）とＦＦ２１（リセット無しＦＦ）、回路Ｔ１の出力ポート１に繋がるＦＦ１（リセット付きＦＦ）をそれぞれ検出し、検出ＦＦ記憶手段６にその情報を記憶する。
【００４３】
続いて、繋続ＦＦ検出手段５は、中間回路Ｔ２における全ての出力ポートを回路Ｔ１内の出力ポートの信号状態と比較したか否かを確認する（ステップＳＴ８）。例えば、繋続ＦＦ検出手段５による処理の回数が、中間回路Ｔ２における全ての出力ポート数に達していなければ、ステップＳＴ５の処理に戻って次の出力ポートに対して上述の処理を繰り返す。一方、全ての出力ポートを比較していれば、ステップＳＴ９の処理に進む。
【００４４】
なお、上述の例では、出力ポート１についての処理が完了した状態であるので、ステップＳＴ５に戻り、中間回路Ｔ２の出力ポート２が始点に設定される。以下に、出力ポート２〜６についての処理を詳細に説明する。
【００４５】
（ｂ）出力ポート２
ステップＳＴ６において、一致検出手段４は、中間回路Ｔ２内の出力ポート２が回路Ｔ１内の出力ポート２の信号状態と一致しているか否かを判定する。ここでは、中間回路Ｔ２の出力ポート２は不定値‘Ｘ’であり、回路Ｔ１の出力ポート２の値‘１’と信号状態が異なっているので、ステップＳＴ７に進む。
ステップＳＴ７では、繋続ＦＦ検出手段５が、出力ポート２に繋がる中間回路Ｔ２内のＦＦ２２（リセット無しＦＦ）とＦＦ２３（リセット無しＦＦ）、回路Ｔ１内のＦＦ４（セット付きＦＦ）をそれぞれ検出し、検出ＦＦ記憶手段６にその情報を記憶する。
この後、繋続ＦＦ検出手段５は、中間回路Ｔ２における全ての出力ポートを比較したか否かを確認する（ステップＳＴ８）。なお、この段階では、出力ポート１，２についての処理が完了した状態であって、全ての出力ポートの比較が完了していないので、ステップＳＴ５に戻り、出力ポート３を始点に設定する。
【００４６】
（ｃ）出力ポート３
一致検出手段４は、中間回路Ｔ２内の出力ポート３が回路Ｔ１内の出力ポート３の信号状態と一致しているか否かを判定する（ステップＳＴ６）。ここでは、中間回路Ｔ２の出力ポート３は不定値‘Ｘ’であり、回路Ｔ１の出力ポート３の値‘０’と信号状態が異なっているので、ステップＳＴ７に進む。
繋続ＦＦ検出手段５は、出力ポート３に繋がる中間回路Ｔ２内のＦＦ２２（リセット無しＦＦ）とＦＦ２３（リセット無しＦＦ）、ＦＦ２４（リセット無しＦＦ）をそれぞれ検出し（図１中の中間回路Ｔ２において実線で囲った部分）、出力ポート３に繋がる回路Ｔ１内のＦＦ５（セット付きＦＦ）を検出して、検出ＦＦ記憶手段６にその情報を記憶する。このとき、ＦＦ２２とＦＦ２３は、繋続ＦＦ検出手段５により、先の出力ポート２の繋続ＦＦとして検出されているので、他の出力ポートにも繋がっているＦＦ（以降、共有ＦＦと呼ぶ）として認識される。
この後、繋続ＦＦ検出手段５は、中間回路Ｔ２における全ての出力ポートを比較したか否かを確認する（ステップＳＴ８）。なお、この段階では、出力ポート１〜３についての処理が完了した状態であって、全ての出力ポートの比較が完了していないので、ステップＳＴ５に戻り、出力ポート４を始点に設定する。
【００４７】
（ｄ）出力ポート４
ステップＳＴ６において、一致検出手段４は、中間回路Ｔ２内の出力ポート４が回路Ｔ１内の出力ポート４の信号状態と一致しているか否かを判定する。ここでは、中間回路Ｔ２の出力ポート４は不定値‘Ｘ’であり、回路Ｔ１の出力ポート４の値‘１’と信号状態が異なっているので、ステップＳＴ７に進む。
ステップＳＴ７では、繋続ＦＦ検出手段５が、出力ポート４に繋がる中間回路Ｔ２内のＦＦ２５（リセット無しＦＦ）とＦＦ２６（リセット無しＦＦ）、回路Ｔ１内のＦＦ６（セット付きＦＦ）をそれぞれ検出し、検出ＦＦ記憶手段６にその情報を記憶する。
この後、繋続ＦＦ検出手段５は、中間回路Ｔ２における全ての出力ポートを比較したか否かを確認する（ステップＳＴ８）。なお、この段階では、出力ポート１〜４についての処理が完了した状態であって、全ての出力ポートの比較が完了していないので、ステップＳＴ５に戻り、出力ポート５を始点に設定する。
【００４８】
（ｅ）出力ポート５
一致検出手段４は、中間回路Ｔ２内の出力ポート５が回路Ｔ１内の出力ポート５の信号状態と一致しているか否かを判定する（ステップＳＴ６）。ここでは、中間回路Ｔ２の出力ポート５は不定値‘Ｘ’であり、回路Ｔ１の出力ポート５の値‘１’と信号状態が異なっているので、ステップＳＴ７に進む。
ステップＳＴ７では、繋続ＦＦ検出手段５が、出力ポート５に繋がる中間回路Ｔ２内のＦＦ２７（リセット無しＦＦ）とＦＦ２８（リセット無しＦＦ）、回路Ｔ１内のＦＦ７（セット付きＦＦ）をそれぞれ検出し、検出ＦＦ記憶手段６にその情報を記憶する。
この後、繋続ＦＦ検出手段５は、中間回路Ｔ２における全ての出力ポートを比較したか否かを確認する（ステップＳＴ８）。なお、この段階では、出力ポート１〜５についての処理が完了した状態であって、全ての出力ポートの比較が完了していないので、ステップＳＴ５に戻り、出力ポート６を始点に設定する。
【００４９】
（ｆ）出力ポート６
ステップＳＴ６において、一致検出手段４は、中間回路Ｔ２内の出力ポート６が回路Ｔ１内の出力ポート６の信号状態と一致しているか否かを判定する。ここでは、中間回路Ｔ２の出力ポート６は不定値‘Ｘ’であり、回路Ｔ１の出力ポート６の値‘０’と信号状態が異なっているので、ステップＳＴ７に進む。
繋続ＦＦ検出手段５では、出力ポート６に繋がる中間回路Ｔ２内のＦＦ２８（リセット無しＦＦ）とＦＦ２９（リセット無しＦＦ）、回路Ｔ１内のＦＦ８（セット付きＦＦ）をそれぞれ検出し、検出ＦＦ記憶手段６にその情報を記憶する。このとき、ＦＦ２８は、繋続ＦＦ検出手段５により出力ポート５の繋続ＦＦとして検出されているので、共有ＦＦとして認識される。
この後、繋続ＦＦ検出手段５は、中間回路Ｔ２における全ての出力ポートを比較したか否かを確認する（ステップＳＴ８）。この段階で全ての出力ポートの比較が完了するので、ステップＳＴ９の処理に進む。
【００５０】
上述した処理により、図７に示すような処理結果が検出ＦＦ記憶手段６に記憶される。図７の各行は出力ポート毎の情報を記載しており、列は元の回路Ｔ１に関する情報と中間回路Ｔ２に関する情報に分かれており、フリップフロップ番号毎の情報、中間回路Ｔ２の出力ポートに繋がったＦＦ数（繋続ＦＦ数）、中間回路Ｔ２の他の出力ポートにも繋がっているフリップフロップ数（共有ＦＦ数）、中間回路Ｔ２の出力ポートに繋がったリセット無しＦＦ数の順に記載している。
【００５１】
また、図７中のＲはリセット付きＦＦ、Ｓはセット付きＦＦ、Ｎはリセット無しＦＦを意味する。図中の「−」は出力ポートから入力ポートまで遡った際に経由しないＦＦの情報を意味する。図７中のＲ、Ｓ、Ｎは出力ポートからの距離が１であり、その他の数字は距離を意味する。例えば、距離１とは該当番号のＦＦと該当番号の出力ポートとの間に他のＦＦを含まない。図７中でＲ、Ｓ、Ｎ、「−」の他に表記される数値２（距離２）は、出力ポートから該当番号のＦＦに到達するまでに他のＦＦを１個だけ経由することを意味する。なお、繋続ＦＦ数は、中間回路Ｔ２内の距離１のフリップフロップ数のカウント値である。
【００５２】
図２のフローに戻る。繋続ＦＦ検出手段５により中間回路Ｔ２における全ての出力ポート１〜６の比較が完了すると、ステップＳＴ９に進む。
ステップＳＴ９では、繋続ＦＦ判定手段７が、中間回路Ｔ２内の出力ポートのうち、元の回路Ｔ１の出力ポートの信号状態と異なる全ての出力ポートを判定したか否かを判定する。この段階では、全ての出力ポートの判定が完了していないので、ステップＳＴ１０に進む。一方、全ての出力ポートの判定が完了した場合は、符号Ｂで示す図５のフローに移行する。
【００５３】
（１）出力ポート１に関する処理
ステップＳＴ１０において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータを用いて、元の回路Ｔ１の出力ポートと信号状態が異なる中間回路Ｔ２の出力ポートのうち、出力ポート番号が最小で、かつ繋続ＦＦ数が最も少ない出力ポート１を始点に設定してステップＳＴ１１の処理に進む。
【００５４】
ステップＳＴ１１において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータ（図７参照）を用いて、中間回路Ｔ２の出力ポート１に繋がったフリップフロップにリセット無しＦＦがあるか否かを判定する。図１の例において、中間回路Ｔ２内の出力ポート１には、リセット無しＦＦとしてＦＦ２１が繋がっているので、図２中の符号Ａで示す図３のステップＳＴ１２の処理に進む。なお、リセット無しＦＦが存在していなければ、ステップＳＴ２１に進んでステップＳＴ９に戻る。
【００５５】
図３のステップＳＴ１２において、繋続ＦＦ判定手段７は、解析対象の出力ポート以外の他の出力ポートにも繋がっているフリップフロップ（共有ＦＦ）があるか否かを判定する。図１に示す中間回路Ｔ２内の出力ポート１には共有ＦＦが存在しないのでステップＳＴ１３に進む。なお、共有ＦＦが存在する場合は、符号Ｃで示す図４のフローに進む。
【００５６】
ステップＳＴ１３において、繋続ＦＦ判定手段７は、出力ポートに繋がるリセット無しＦＦ数が２個以上か否かを判定する。出力ポート１の場合、リセット無しＦＦはＦＦ２１だけの１個なので、ステップＳＴ１４に進む。
【００５７】
ここで、具体例として、中間回路Ｔ２内の出力ポート１に出力が接続する２入力１出力の組み合わせ回路Ｃ３を図８に示す２入力のＮＯＲゲートとした場合を説明する。
中間回路Ｔ２内の組み合わせ回路Ｃ３を２入力ＮＯＲゲートとした場合、図１及び図８に示すように、その入力は信号ａ’及び信号ｂ’であり、出力は信号ｃである。
【００５８】
図８の右側に記載した表の１列目は入力信号ａ’の信号状態を意味し、２列目は入力信号ｂ’の信号状態を意味している。３列目は出力信号ｃの信号状態を意味している。即ち、入力信号ａ’と入力信号ｂ’の組み合わせとその組み合わせ時の出力信号ｃの信号状態を記載している。なお、値１と不定値ＸのＮＯＲ演算結果は値０であり、値０と不定値ＸのＮＯＲ演算結果は不定値Ｘとなる。また、不定値Ｘ同士のＮＯＲ演算結果は不定値Ｘとなる。
【００５９】
図３のフローに戻ると、ステップＳＴ１４において、繋続ＦＦ判定手段７は、出力ポート１に繋がるＦＦ２１をリセット付きＦＦに変更して、ステップＳＴ１５の処理に進む。
【００６０】
ステップＳＴ１５において、簡易シミュレーション手段２は、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２１はリセット付きＦＦに変更されたことから、リセット信号が入力されたＦＦ２１の出力信号ｂ’は値０であり、またリセット付きＦＦであるＦＦ１１の出力信号ａ’は値０となる。
【００６１】
これら信号ａ’及び信号ｂ’を入力する組み合わせ回路Ｃ３を２入力ＮＯＲゲートとすると、図８に示すように、その出力信号ｃは値１となる。これにより、中間回路Ｔ２の出力ポート１は値１となる。一方、元の回路Ｔ１では、リセット付きＦＦであるＦＦ１にリセット信号が入力されて値０になることから、出力ポート１が値０となる。
【００６２】
一致検出手段４は、ステップＳＴ１６において、中間回路Ｔ２の出力ポート１の値１と元の回路Ｔ１の出力ポート１の値０が不一致と判定し、ステップＳＴ１７に進む。なお、中間回路Ｔ２と回路Ｔ１とで出力ポート１の信号状態が一致していればステップＳＴ２２に進むことになる。
【００６３】
ステップＳＴ１７において、繋続ＦＦ判定手段７は、出力ポート１に繋がる唯一のリセット無しＦＦであると判定したＦＦ２１をセット付きＦＦに変更して、ステップＳＴ１８に進む。
【００６４】
ステップＳＴ１８において、簡易シミュレーション手段２は、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２１はセット付きＦＦに変更されたことから、リセット信号を入力されたＦＦ２１の出力信号ｂ’は値１であり、リセット付きＦＦであるＦＦ１１の出力信号ａ’は値０である。
【００６５】
これら信号ａ’と信号ｂ’を入力する組み合わせ回路Ｃ３は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｃは値０となる。これにより、中間回路Ｔ２の出力ポート１は値０となる。一方、元の回路Ｔ１では、リセット付きＦＦであるＦＦ１にリセット信号が入力されて値０になることから、出力ポート１が値０となる。
【００６６】
一致検出手段４は、ステップＳＴ１９において、中間回路Ｔ２の出力ポート１の値０と回路Ｔ１の出力ポート１の値０が一致と判定し、ステップＳＴ２０に進む。なお、中間回路Ｔ２と回路Ｔ１とで出力ポート１の信号状態が一致していなればステップＳＴ２３に進むことになる。
【００６７】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート１に繋がったＦＦ２１の情報に対し、リセット無しＦＦからセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。
また、これと同時に、繋続ＦＦ判定手段７は、置き換えＦＦリストを作成して、当該置き換えＦＦリストに対し、ＦＦ２１はリセット無しＦＦからセット付きＦＦに置き換え可能という情報を記載する（ステップＳＴ２０）。この後、ステップＳＴ２１に進み、ステップＳＴ９に戻る。
【００６８】
図９は、上述した各ステップの処理における出力ポート１に関する置き換えＦＦの判定プロセスを示している。図９に示す表の各行は、簡易シミュレーションを１回実行する毎の情報であり、列は関連するステップ番号、フリップフロップ番号毎の変更候補と影響を与える信号の値、前提となる条件値、簡易シミュレーション結果の値、一致検出結果の順に記載している。
【００６９】
上述した出力ポート１に関する処理が完了すると、繋続ＦＦ判定手段７は、中間回路Ｔ２内の出力ポートのうち、元の回路Ｔ１の出力ポートの信号状態と異なる全ての出力ポートを判定したか否かを判定する（ステップＳＴ９）。この段階では、全ての出力ポートの判定が完了していないので、ステップＳＴ１０に進む。一方、全ての出力ポートの判定が完了した場合は、符号Ｂで示す図５のフローに移行する。
【００７０】
（２）出力ポート２に関する処理
ステップＳＴ１０において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータ（図７参照）を用いて、元の回路Ｔ１の出力ポートと信号状態が異なる中間回路Ｔ２の出力ポートのうち、次に繋続ＦＦ数が少ない出力ポート２を始点に設定してステップＳＴ１１の処理に進む。
【００７１】
ステップＳＴ１１において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータを用いて、中間回路Ｔ２の出力ポート２に繋がったフリップフロップにリセット無しＦＦがあるか否かを判定する。図１の例では、中間回路Ｔ２内の出力ポート２には、リセット無しＦＦとしてＦＦ２２及びＦＦ２３が繋がっているので、図２中の符号Ａで示す図３のステップＳＴ１２の処理に進む。なお、リセット無しＦＦが存在していなければ、ステップＳＴ２１に進んでステップＳＴ９に戻る。
【００７２】
図３のステップＳＴ１２において、繋続ＦＦ判定手段７は、解析対象の出力ポート以外の他の出力ポートにも繋がっているフリップフロップ（共有ＦＦ）があるか否かを判定する。出力ポート２の場合、ＦＦ２２とＦＦ２３は、組み合わせ回路Ｃ４，Ｃ５を介して出力ポート３にも繋がっているので２個の共有ＦＦと判定され、符号Ｃで示す図４のステップＳＴ３０に進む。
【００７３】
ステップＳＴ３０において、繋続ＦＦ判定手段７は、出力ポートに繋がるリセット無しＦＦ数が２個以上か否かを判定する。出力ポート２の場合、リセット無しＦＦはＦＦ２２とＦＦ２３の２個なので、ステップＳＴ４０に進む。なお、以降では、図８に示す２入力１出力のＮＯＲゲートを組み合わせ回路Ｃ４として説明する。
【００７４】
（２−１）ＲＲ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、出力ポート２に繋がる全てのリセット無しＦＦを、リセット付きＦＦ又はセット付きＦＦのいずれかの組み合わせに変更する。先ず、繋続ＦＦ判定手段７は、出力ポート２に繋がる２個のリセット無しＦＦであるＦＦ２２とＦＦ２３を共にリセット付きＦＦに変更してステップＳＴ４１に進む。
【００７５】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２及びＦＦ２３はセット付きＦＦに変更されたことから、リセット信号を入力されたＦＦ２２の出力信号ｅは値１であり、ＦＦ２３の出力信号ｄは値１である。
【００７６】
これら信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値１となる。これにより、中間回路Ｔ２の出力ポート２は値１となる。一方、元の回路Ｔ１では、セット付きＦＦであるＦＦ４にリセット信号が入力されて値１になることから、出力ポート２が値１となる。
【００７７】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート２の値１と回路Ｔ１の出力ポート２の値１が一致と判定し、ステップＳＴ４３に進む。なお、中間回路Ｔ２と回路Ｔ１とで出力ポート２の信号状態が一致していなればステップＳＴ４４に進むことになる。
【００７８】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート２に繋がったＦＦ２２とＦＦ２３の情報に対し、リセット無しＦＦからリセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。
これと同時に、繋続ＦＦ判定手段７は、共有含ＦＦリストを作成して、当該共有含リストに対し、出力ポート２に繋がったＦＦ２２及びＦＦ２３をリセット無しＦＦからリセット付きＦＦに置き換えると、出力ポート２の信号状態を一致させることが可能という情報を記載する（ステップＳＴ４３）。
【００７９】
この後、繋続ＦＦ判定手段７は、出力ポート２に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する（ステップＳＴ４４）。この段階では、全ての組み合わせによる処理が完了していないのでステップＳＴ４０に戻る。
【００８０】
（２−２）ＲＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート２に繋がるＦＦ２２をリセット付きＦＦに変更し、ＦＦ２３をセット付きＦＦに変更してステップＳＴ４１に進む。
【００８１】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２はリセット付きＦＦに変更されたことからＦＦ２２の出力信号ｅは値０となり、ＦＦ２３はセット付きＦＦに変更されたことからＦＦ２３の出力信号ｄは値１となる。
【００８２】
これら信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値０となる。これにより、中間回路Ｔ２の出力ポート２は値０となる。一方、元の回路Ｔ１では、セット付きＦＦであるＦＦ４にリセット信号が入力されて値１になることから、出力ポート２が値１となる。
【００８３】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート２の値０と回路Ｔ１の出力ポート２の値１が不一致と判定し、ステップＳＴ４４に進む。
【００８４】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート２に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【００８５】
（２−３）ＳＲ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート２に繋がるＦＦ２２をセット付きＦＦに変更し、ＦＦ２３をリセット付きＦＦに変更してステップＳＴ４１に進む。
【００８６】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２はセット付きＦＦに変更されたことからＦＦ２２の出力信号ｅは値１となり、ＦＦ２３はリセット付きＦＦに変更されたことからＦＦ２３の出力信号ｄは値０となる。
【００８７】
これら信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値０となる。これにより、中間回路Ｔ２の出力ポート２は値０となる。一方、元の回路Ｔ１では、セット付きＦＦであるＦＦ４にリセット信号が入力されて値１になることから、出力ポート２が値１となる。
【００８８】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート２の値０と回路Ｔ１の出力ポート２の値１が不一致と判定し、ステップＳＴ４４に進む。
【００８９】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート２に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【００９０】
（２−４）ＳＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート２に繋がるＦＦ２２及びＦＦ２３を共にセット付きＦＦに変更してステップＳＴ４１に進む。
【００９１】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２はセット付きＦＦに変更されたことからＦＦ２２の出力信号ｅは値１となり、ＦＦ２３はセット付きＦＦに変更されたことからＦＦ２３の出力信号ｄは値１となる。
【００９２】
これら信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値０となる。これにより、中間回路Ｔ２の出力ポート２は値０となる。一方、元の回路Ｔ１では、セット付きＦＦであるＦＦ４にリセット信号が入力されて値１になることから、出力ポート２が値１となる。
【００９３】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート２の値０と回路Ｔ１の出力ポート２の値１が不一致と判定し、ステップＳＴ４４に進む。
【００９４】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート２に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する。この段階で全ての組み合わせによる処理が完了したので、ステップＳＴ４５に進む。
【００９５】
ステップＳＴ４５において、繋続ＦＦ判定手段７は、上述した処理で出力信号が一致する組み合わせが存在したか否かを判定する。ここでは、出力ポート２に繋がるＦＦ２２及びＦＦ２３を共にリセット付きＦＦに置き換える組み合わせが、回路Ｔ１と回路Ｔ２における出力ポート２の信号状態を一致させるので、ステップＳＴ２１に進み、ステップＳＴ９に戻る。
【００９６】
図１０は、上述した各ステップの処理における出力ポート２に関する置き換えＦＦの判定プロセスを示している。図１０に示す表の各行は、図９と同様に、簡易シミュレーションを１回実行する毎の情報であり、列は関連するステップ番号、フリップフロップ番号毎の変更候補と影響を与える信号の値、前提となる条件値、簡易シミュレーション結果の値、一致検出結果の順に記載している。また、図１０中のＲはリセット付きＦＦ、Ｓはセット付きＦＦ、Ｎはリセット無しＦＦを意味する。
【００９７】
上述した出力ポート２に関する処理が完了すると、繋続ＦＦ判定手段７は、中間回路Ｔ２内の出力ポートのうち、元の回路Ｔ１の出力ポートの信号状態と異なる全ての出力ポートを判定したか否かを判定する（ステップＳＴ９）。この段階では、全ての出力ポートの判定が完了していないので、ステップＳＴ１０に進む。
【００９８】
（３）出力ポート４に関する処理
ステップＳＴ１０において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータ（図７参照）を用いて、元の回路Ｔ１の出力ポートと信号状態が異なる中間回路Ｔ２の出力ポートのうち、次に繋続ＦＦ数が少ない出力ポート４を始点に設定してステップＳＴ１１の処理に進む。
【００９９】
ステップＳＴ１１において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータを用いて、中間回路Ｔ２の出力ポート４に繋がったフリップフロップにリセット無しＦＦがあるか否かを判定する。図１の例において、中間回路Ｔ２内の出力ポート４には、リセット無しＦＦとしてＦＦ２５及びＦＦ２６が繋がっているので、図２中の符号Ａで示す図３のステップＳＴ１２の処理に進む。
【０１００】
図３のステップＳＴ１２において、繋続ＦＦ判定手段７は、解析対象の出力ポート以外の他の出力ポートにも繋がっているフリップフロップ（共有ＦＦ）があるか否かを判定する。出力ポート４の場合、ＦＦ２５とＦＦ２６は、他の出力ポートに繋がっていないので共有ＦＦ無しと判定され、ステップＳＴ１３に進む。
【０１０１】
ステップＳＴ１３において、繋続ＦＦ判定手段７は、出力ポートに繋がるリセット無しＦＦ数が２個以上か否かを判定する。出力ポート４の場合、ＦＦ２５及びＦＦ２６は共にリセット無しＦＦであるので、ステップＳＴ２４に進む。なお、以降では、図８に示す２入力１出力のＮＯＲゲートを組み合わせ回路Ｃ６として説明する。
【０１０２】
（３−１）ＲＲ
ステップＳＴ２４において、繋続ＦＦ判定手段７は、出力ポートに繋がる全てのリセット無しＦＦをリセット付きＦＦ又はセット付きＦＦのいずれかの組み合わせに変更する。先ず、繋続ＦＦ判定手段７は、出力ポート４に繋がる２個のリセット無しＦＦであるＦＦ２５とＦＦ２６を共にリセット付きＦＦに変更してステップＳＴ２５に進む。
【０１０３】
ステップＳＴ２５では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２５及びＦＦ２６はリセット付きＦＦに変更されたことから、リセット信号を入力されたＦＦ２５の出力信号ｋは値０であり、ＦＦ２６の出力信号ｊは値０である。
【０１０４】
これら信号ｊと信号ｋを入力する組み合わせ回路Ｃ６は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｌは値１となる。これにより、中間回路Ｔ２の出力ポート４は値１となる。一方、元の回路Ｔ１では、セット付きＦＦであるＦＦ６にリセット信号が入力されて値１になることから、出力ポート４が値１となる。
【０１０５】
一致検出手段４は、ステップＳＴ２６において、中間回路Ｔ２の出力ポート４の値１と回路Ｔ１の出力ポート４の値１が一致と判定し、ステップＳＴ２７に進む。なお、中間回路Ｔ２と回路Ｔ１とで出力ポート４の信号状態が一致していなければステップＳＴ２８に進むことになる。
【０１０６】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート４に繋がったＦＦ２５とＦＦ２６の情報に対し、リセット無しＦＦからリセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。
これと同時に、繋続ＦＦ判定手段７は、置き換えＦＦリストを作成して、当該置き換えＦＦリストに対し、出力ポート４に繋がったＦＦ２５及びＦＦ２６をリセット無しＦＦからリセット付きＦＦに置き換えると、出力ポートの信号状態を一致させることが可能という情報を記載する（ステップＳＴ２７）。この後、繋続ＦＦ判定手段７は、ステップＳＴ２１に進み、ステップＳＴ９に戻る。
【０１０７】
図１１は、上述した各ステップの処理における出力ポート４に関する置き換えＦＦの判定プロセスを示している。図１１に示す表の各行は、図１０と同様に、簡易シミュレーションを１回実行する毎の情報であり、列は関連するステップ番号、フリップフロップ番号毎の変更候補と影響を与える信号の値、前提となる条件値、簡易シミュレーション結果の値、一致検出結果の順に記載している。
【０１０８】
上述した出力ポート４に関する処理が完了すると、繋続ＦＦ判定手段７は、中間回路Ｔ２内の出力ポートのうち、元の回路Ｔ１の出力ポートの信号状態と異なる全ての出力ポートを判定したか否かを判定する（ステップＳＴ９）。この段階では、全ての出力ポートの判定が完了していないので、ステップＳＴ１０に進む。
【０１０９】
（４）出力ポート５に関する処理
ステップＳＴ１０において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータ（図７参照）を用いて、元の回路Ｔ１の出力ポートと信号状態が異なる中間回路Ｔ２の出力ポートのうち、次に繋続ＦＦ数が少ない出力ポート５を始点に設定してステップＳＴ１１の処理に進む。
【０１１０】
ステップＳＴ１１において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータ（図７参照）を用いて、中間回路Ｔ２の出力ポート５に繋がったフリップフロップにリセット無しＦＦがあるか否かを判定する。図１の例において、中間回路Ｔ２内の出力ポート５には、リセット無しＦＦとしてＦＦ２７及びＦＦ２８が繋がっているので、図２中の符号Ａで示す図３のステップＳＴ１２の処理に進む。
【０１１１】
図３のステップＳＴ１２において、繋続ＦＦ判定手段７は、解析対象の出力ポート以外の他の出力ポートにも繋がっているフリップフロップ（共有ＦＦ）があるか否かを判定する。出力ポート５の場合、ＦＦ２７は他の出力ポートに繋がっていないが、ＦＦ２８は、組み合わせ回路Ｃ８を介して出力ポート６にも繋がっているので、１個の共有ＦＦが存在すると判定され、符号Ｃで示す図４のステップＳＴ３０に進む。
【０１１２】
ステップＳＴ３０において、繋続ＦＦ判定手段７は、出力ポートに繋がるリセット無しＦＦ数が２個以上か否かを判定する。出力ポート５の場合、リセット無しＦＦはＦＦ２７とＦＦ２８の２個なので、ステップＳＴ４０に進む。
【０１１３】
ここで、具体例として、中間回路Ｔ２内の出力ポート５に出力が接続する２入力１出力の組み合わせ回路Ｃ７を、図１２に示す２入力のＡＮＤゲートとした場合を説明する。
中間回路Ｔ２内の組み合わせ回路Ｃ７を２入力ＡＮＤゲートとした場合、図１及び図１２に示すように、その入力は信号ｍ及び信号ｎであり、出力は信号ｏである。
【０１１４】
図１２の右側に記載した表の１列目は入力信号ｍの信号状態を意味し、２列目は入力信号ｎの信号状態を意味している。３列目は出力信号ｏの信号状態を意味している。即ち、入力信号ｍと入力信号ｎの組み合わせとその組み合わせ時の出力信号ｏの信号状態を記載している。なお、値１と不定値ＸのＡＮＤ演算結果は不定値Ｘであり、値０と不定値ＸのＡＮＤ演算結果は値０となる。また、不定値Ｘ同士のＡＮＤ演算結果は不定値Ｘとなる。
【０１１５】
（４−１）ＲＲ
図４のフローに戻ると、ステップＳＴ４０において、繋続ＦＦ判定手段７は、出力ポート５に繋がる全てのリセット無しＦＦを、リセット付きＦＦ又はセット付きＦＦのいずれかの組み合わせに変更する。先ず、繋続ＦＦ判定手段７は、出力ポート５に繋がる２個のリセット無しＦＦであるＦＦ２７とＦＦ２８を共にリセット付きＦＦに変更してステップＳＴ４１に進む。
【０１１６】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２７及びＦＦ２８はリセット付きＦＦに変更されたことから、リセット信号を入力されたＦＦ２７の出力信号ｎは値０であり、ＦＦ２８の出力信号ｍは値０である。
【０１１７】
これら信号ｍと信号ｎを入力する組み合わせ回路Ｃ７は２入力ＡＮＤゲートであることから、図１２に示すようにその出力信号ｏは値０となる。これにより、中間回路Ｔ２の出力ポート５は値０となる。一方、元の回路Ｔ１では、セット付きＦＦであるＦＦ７にリセット信号が入力されて値１になることから、出力ポート５が値１となる。
【０１１８】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート５の値０と回路Ｔ１の出力ポート５の値１が不一致と判定し、ステップＳＴ４４に進む。
【０１１９】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート５に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【０１２０】
（４−２）ＲＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート５に繋がるＦＦ２７をリセット付きＦＦに変更し、ＦＦ２８をセット付きＦＦに変更してステップＳＴ４１に進む。
【０１２１】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２７はリセット付きＦＦに変更されたことから出力信号ｎは値０となり、ＦＦ２８はセット付きＦＦに変更されたことから出力信号ｍは値１となる。
【０１２２】
これら信号ｍと信号ｎを入力する組み合わせ回路Ｃ７は２入力ＡＮＤゲートであることから、図１２に示すようにその出力信号ｏは値０となる。これにより、中間回路Ｔ２の出力ポート５は値０となる。一方、元の回路Ｔ１では、セット付きＦＦであるＦＦ７にリセット信号が入力されて値１になることから、出力ポート５が値１となる。
【０１２３】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート５の値０と回路Ｔ１の出力ポート５の値１が不一致と判定し、ステップＳＴ４４に進む。
【０１２４】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート５に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【０１２５】
（４−３）ＳＲ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート５に繋がるＦＦ２７をセット付きＦＦに変更し、ＦＦ２８をリセット付きＦＦに変更してステップＳＴ４１に進む。
【０１２６】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２７はセット付きＦＦに変更されたことからＦＦ２７の出力信号ｎは値１となり、ＦＦ２８はリセット付きＦＦに変更されたことからＦＦ２８の出力信号ｍは値０となる。
【０１２７】
これら信号ｍと信号ｎを入力する組み合わせ回路Ｃ７は２入力ＡＮＤゲートであることから、図１２に示すようにその出力信号ｏは値０となる。これにより、中間回路Ｔ２の出力ポート５は値０となる。一方、元の回路Ｔ１では、セット付きＦＦであるＦＦ７にリセット信号が入力されて値１になることから、出力ポート５が値１となる。
【０１２８】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート５の値０と回路Ｔ１の出力ポート５の値１が不一致と判定し、ステップＳＴ４４に進む。
【０１２９】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート５に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【０１３０】
（４−４）ＳＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート５に繋がるＦＦ２７及びＦＦ２８を共にセット付きＦＦに変更してステップＳＴ４１に進む。
【０１３１】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２７はセット付きＦＦに変更されたことから出力信号ｎは値１となり、ＦＦ２８はセット付きＦＦに変更されたことから出力信号ｍは値１となる。
【０１３２】
これら信号ｍと信号ｎを入力する組み合わせ回路Ｃ７は２入力ＡＮＤゲートであることから、図１２に示すようにその出力信号ｏは値１となる。これにより、中間回路Ｔ２の出力ポート５は値１となる。一方、元の回路Ｔ１では、セット付きＦＦであるＦＦ７にリセット信号が入力されて値１になることから、出力ポート５が値１となる。
【０１３３】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート５の値１と回路Ｔ１の出力ポート５の値１が一致と判定し、ステップＳＴ４３に進む。
【０１３４】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート５に繋がったＦＦ２７とＦＦ２８の情報に対し、リセット無しＦＦからセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。
これと同時に、繋続ＦＦ判定手段７は、共有含ＦＦリストを作成して、当該共有含リストに対し、出力ポート５に繋がったＦＦ２７及びＦＦ２８をリセット無しＦＦからセット付きＦＦに置き換えると、出力ポート５の信号状態を一致させることが可能という情報を記載する（ステップＳＴ４３）。
【０１３５】
この後、繋続ＦＦ判定手段７は、出力ポート５に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する（ステップＳＴ４４）。この段階で全ての組み合わせによる処理が完了したのでステップＳＴ４５に進む。
【０１３６】
ステップＳＴ４５において、繋続ＦＦ判定手段７は、上述した処理で出力信号が一致する組み合わせが存在したか否かを判定する。ここでは、出力ポート５に繋がるＦＦ２７及びＦＦ２８を共にセット付きＦＦに置き換える組み合わせが、回路Ｔ１と回路Ｔ２における出力ポート５の信号状態を一致させるので、ステップＳＴ２１に進み、ステップＳＴ９に戻る。
【０１３７】
図１３は、上述した各ステップの処理における出力ポート５に関する置き換えＦＦの判定プロセスを示している。図１３に示す表の各行は、図１１と同様に、簡易シミュレーションを１回実行する毎の情報であり、列は関連するステップ番号、フリップフロップ番号毎の変更候補と影響を与える信号の値、前提となる条件値、簡易シミュレーション結果の値、一致検出結果の順に記載している。また、図１３中のＲはリセット付きＦＦ、Ｓはセット付きＦＦ、Ｎはリセット無しＦＦを意味する。
【０１３８】
上述した出力ポート５に関する処理が完了すると、繋続ＦＦ判定手段７は、中間回路Ｔ２内の出力ポートのうち、元の回路Ｔ１の出力ポートの信号状態と異なる全ての出力ポートを判定したか否かを判定する（ステップＳＴ９）。この段階では、全ての出力ポートの判定が完了していないので、ステップＳＴ１０に進む。
【０１３９】
（５）出力ポート６に関する処理
ステップＳＴ１０において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータ（図７参照）を用いて、元の回路Ｔ１の出力ポートと信号状態が異なる中間回路Ｔ２の出力ポートのうち、次に繋続ＦＦ数が少ない出力ポート６を始点に設定してステップＳＴ１１の処理に進む。
【０１４０】
ステップＳＴ１１において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータ（図７参照）を用いて、中間回路Ｔ２の出力ポート６に繋がったフリップフロップにリセット無しＦＦがあるか否かを判定する。図１の例において、中間回路Ｔ２内の出力ポート６には、リセット無しＦＦとしてＦＦ２８及びＦＦ２９が繋がっているので、図２中の符号Ａで示す図３のステップＳＴ１２の処理に進む。
【０１４１】
図３のステップＳＴ１２において、繋続ＦＦ判定手段７は、解析対象の出力ポート以外の他の出力ポートにも繋がっているフリップフロップ（共有ＦＦ）があるか否かを判定する。出力ポート６の場合、ＦＦ２９は他の出力ポートに繋がっていないが、ＦＦ２８は、組み合わせ回路Ｃ７を介して出力ポート５にも繋がっているので、１個の共有ＦＦが存在すると判定され、符号Ｃで示す図４のステップＳＴ３０に進む。
【０１４２】
ステップＳＴ３０において、繋続ＦＦ判定手段７は、出力ポートに繋がるリセット無しＦＦ数が２個以上か否かを判定する。出力ポート６の場合、リセット無しＦＦはＦＦ２８とＦＦ２９の２個なので、ステップＳＴ４０に進む。
【０１４３】
ここで、具体例として、中間回路Ｔ２内の出力ポート６に出力が接続する２入力１出力の組み合わせ回路Ｃ８を、図１４に示す２入力のＯＲゲートとした場合を説明する。
中間回路Ｔ２内の組み合わせ回路Ｃ８を２入力ＯＲゲートとした場合、図１及び図１４に示すように、その入力は信号ｐ及び信号ｑであり、出力は信号ｒである。
【０１４４】
図１４の右側に記載した表の１列目は入力信号ｐの信号状態を意味し、２列目は入力信号ｑの信号状態を意味している。３列目は出力信号ｒの信号状態を意味している。即ち、入力信号ｐと入力信号ｑの組み合わせとその組み合わせ時の出力信号ｒの信号状態を記載している。なお、値１と不定値ＸのＯＲ演算結果は値１であり、値０と不定値ＸのＯＲ演算結果は不定値Ｘとなる。また、不定値Ｘ同士のＯＲ演算結果は不定値Ｘとなる。
【０１４５】
（５−１）ＲＲ
図４のフローに戻ると、ステップＳＴ４０において、繋続ＦＦ判定手段７は、出力ポート６に繋がる全てのリセット無しＦＦを、リセット付きＦＦ又はセット付きＦＦのいずれかの組み合わせに変更する。先ず、繋続ＦＦ判定手段７は、出力ポート６に繋がる２個のリセット無しＦＦであるＦＦ２８とＦＦ２９を共にリセット付きＦＦに変更してステップＳＴ４１に進む。
【０１４６】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２８及びＦＦ２９はリセット付きＦＦに変更されたことから、リセット信号を入力されたＦＦ２８の出力信号ｑは値０であり、ＦＦ２９の出力信号ｐは値０である。
【０１４７】
これら信号ｐと信号ｑを入力する組み合わせ回路Ｃ８は２入力ＯＲゲートであることから、図１４に示すようにその出力信号ｒは値０となる。これにより、中間回路Ｔ２の出力ポート６は値０となる。一方、元の回路Ｔ１では、リセット付きＦＦであるＦＦ８にリセット信号が入力されて値０になることから、出力ポート６が値０となる。
【０１４８】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート６の値０と回路Ｔ１の出力ポート６の値０が一致と判定し、ステップＳＴ４３に進む。
【０１４９】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート６に繋がったＦＦ２８とＦＦ２９の情報に対し、リセット無しＦＦからリセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。
これと同時に、繋続ＦＦ判定手段７は、共有含ＦＦリストを作成して、当該共有含リストに対し、出力ポート６に繋がったＦＦ２８及びＦＦ２９をリセット無しＦＦからリセット付きＦＦに置き換えると、出力ポート６の信号状態を一致させることが可能という情報を記載する（ステップＳＴ４３）。
【０１５０】
この後、繋続ＦＦ判定手段７は、出力ポート６に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する（ステップＳＴ４４）。この段階では、全ての組み合わせが完了していないのでステップＳＴ４０に戻る。
【０１５１】
（５−２）ＲＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート６に繋がるＦＦ２８をリセット付きＦＦに変更し、ＦＦ２９をセット付きＦＦに変更してステップＳＴ４１に進む。
【０１５２】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２８はリセット付きＦＦに変更されたことから出力信号ｑは値０となり、ＦＦ２９はセット付きＦＦに変更されたことから出力信号ｐは値１となる。
【０１５３】
これら信号ｐと信号ｑを入力する組み合わせ回路Ｃ８は２入力ＯＲゲートであることから、図１４に示すようにその出力信号ｒは値１となる。これにより、中間回路Ｔ２の出力ポート６は値１となる。一方、元の回路Ｔ１では、リセット付きＦＦであるＦＦ８にリセット信号が入力されて値０になることから、出力ポート６が値０となる。
【０１５４】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート６の値１と回路Ｔ１の出力ポート６の値０が不一致と判定し、ステップＳＴ４４に進む。
【０１５５】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート６に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【０１５６】
（５−３）ＳＲ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート６に繋がるＦＦ２８をセット付きＦＦに変更し、ＦＦ２９をリセット付きＦＦに変更してステップＳＴ４１に進む。
【０１５７】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２８はセット付きＦＦに変更されたことから出力信号ｑは値１となり、ＦＦ２９はリセット付きＦＦに変更されたことから出力信号ｐは値０となる。
【０１５８】
これら信号ｐと信号ｑを入力する組み合わせ回路Ｃ８は２入力ＯＲゲートであることから、図１４に示すようにその出力信号ｒは値１となる。これにより、中間回路Ｔ２の出力ポート６は値１となる。一方、元の回路Ｔ１では、リセット付きＦＦであるＦＦ８にリセット信号が入力されて値０になることから、出力ポート６が値０となる。
【０１５９】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート６の値１と回路Ｔ１の出力ポート６の値０が不一致と判定し、ステップＳＴ４４に進む。
【０１６０】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート６に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【０１６１】
（５−４）ＳＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート６に繋がるＦＦ２８及びＦＦ２９を共にセット付きＦＦに変更してステップＳＴ４１に進む。
【０１６２】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２８はセット付きＦＦに変更されたことから出力信号ｑは値１となり、ＦＦ２９もセット付きＦＦに変更されたことから出力信号ｐは値１となる。
【０１６３】
これら信号ｐと信号ｑを入力する組み合わせ回路Ｃ８は２入力ＯＲゲートであることから、図１４に示すようにその出力信号ｒは値１となる。これにより、中間回路Ｔ２の出力ポート６は値１となる。一方、元の回路Ｔ１では、リセット付きＦＦであるＦＦ８にリセット信号が入力されて値０になることから、出力ポート６が値０となる。
【０１６４】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート６の値１と回路Ｔ１の出力ポート６の値０が不一致と判定し、ステップＳＴ４４に進む。
【０１６５】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート６に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか判定する。この段階で全ての組み合わせによる処理が完了したので、ステップＳＴ４５に進む。
【０１６６】
ステップＳＴ４５において、繋続ＦＦ判定手段７は、上述した処理で出力信号が一致する組み合わせが存在したか否かを判定する。ここでは、出力ポート６に繋がるＦＦ２８及びＦＦ２９を共にリセット付きＦＦに置き換える組み合わせが、回路Ｔ１と回路Ｔ２における出力ポート６の信号状態を一致させるので、ステップＳＴ２１に進み、ステップＳＴ９に戻る。
【０１６７】
図１５は、上述した各ステップの処理における出力ポート６に関する置き換えＦＦの判定プロセスを示している。図１５に示す表の各行は、図１３と同様に、簡易シミュレーションを１回実行する毎の情報であり、列は関連するステップ番号、フリップフロップ番号毎の変更候補と影響を与える信号の値、前提となる条件値、簡易シミュレーション結果の値、一致検出結果の順に記載している。また、図１５中のＲはリセット付きＦＦ、Ｓはセット付きＦＦ、Ｎはリセット無しＦＦを意味する。
【０１６８】
上述した出力ポート６に関する処理が完了すると、繋続ＦＦ判定手段７は、中間回路Ｔ２内の出力ポートのうち、元の回路Ｔ１の出力ポートの信号状態と異なる全ての出力ポートを判定したか否かを判定する（ステップＳＴ９）。この段階では、全ての出力ポートの判定が完了していないので、ステップＳＴ１０に進む。
【０１６９】
（６）出力ポート３に関する処理
ステップＳＴ１０において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータ（図７参照）を用いて、元の回路Ｔ１の出力ポートと信号状態が異なる中間回路Ｔ２の出力ポートのうち、次に繋続ＦＦ数が少ない、即ち繋続ＦＦ数が最も多い出力ポート３を始点に設定してステップＳＴ１１の処理に進む。
【０１７０】
ステップＳＴ１１において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６から読み出したデータ（図７参照）を用いて、中間回路Ｔ２の出力ポート３に繋がったフリップフロップにリセット無しＦＦがあるか否かを判定する。図１の例において、中間回路Ｔ２内の出力ポート３には、図１中に四角で囲んだように、リセット無しＦＦとしてＦＦ２２、ＦＦ２３及びＦＦ２４の３個が繋がっているので、図２中の符号Ａで示す図３のステップＳＴ１２の処理に進む。
【０１７１】
図３のステップＳＴ１２において、繋続ＦＦ判定手段７は、解析対象の出力ポート以外の他の出力ポートにも繋がっているフリップフロップ（共有ＦＦ）があるか否かを判定する。出力ポート３の場合、ＦＦ２４は他の出力ポートに繋がっていないが、ＦＦ２２及びＦＦ２３は組み合わせ回路Ｃ４を介して出力ポート２にも繋がっているので、２個の共有ＦＦが存在すると判定され、符号Ｃで示す図４のステップＳＴ３０に進む。
【０１７２】
ステップＳＴ３０において、繋続ＦＦ判定手段７は、出力ポートに繋がるリセット無しＦＦ数が２個以上か否かを判定する。出力ポート３の場合、リセット無しＦＦはＦＦ２２、ＦＦ２３及びＦＦ２４の３個なので、ステップＳＴ４０に進む。
【０１７３】
なお、以降では、ＦＦ２２及びＦＦ２３が繋がる２入力１出力の組み合わせ回路Ｃ４を図８に示す２入力のＮＯＲゲートとし、ＦＦ２４が繋がる２入力１出力の組み合わせ回路Ｃ５も図８に示す２入力のＮＯＲゲートであるものとして説明する。
【０１７４】
（６−１）ＲＲＲ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、出力ポート３に繋がる全てのリセット無しＦＦを、リセット付きＦＦ又はセット付きＦＦのいずれかの組み合わせに変更する。先ず、繋続ＦＦ判定手段７は、出力ポート３に繋がる３個のリセット無しＦＦであるＦＦ２２、ＦＦ２３及びＦＦ２４を共にリセット付きＦＦに変更してステップＳＴ４１に進む。
【０１７５】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２、ＦＦ２３及びＦＦ２４はリセット付きＦＦに変更されたことから、出力信号ｅ、出力信号ｄ、出力信号ｇは共に値０である。
【０１７６】
信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値１となる。また、信号ｆと信号ｇを入力する組み合わせ回路Ｃ５は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｉは値０となる。これにより、中間回路Ｔ２の出力ポート３は値０となる。一方、元の回路Ｔ１では、出力ポート３に繋がるセット付きＦＦであるＦＦ５にリセット信号が入力されて値０になることから、出力ポート３が値０となる。
【０１７７】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート３の値０と回路Ｔ１の出力ポート３の値０が一致と判定し、ステップＳＴ４３に進む。
【０１７８】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート３に繋がったＦＦ２２、ＦＦ２３及びＦＦ２４の情報に対し、リセット無しＦＦからリセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。これと同時に、繋続ＦＦ判定手段７は、共有含ＦＦリストを作成して、当該共有含リストに対し、出力ポート３に繋がったＦＦ２２、ＦＦ２３及びＦＦ２４をリセット無しＦＦからリセット付きＦＦに置き換えると、出力ポート３の信号状態を一致させることが可能という情報を記載する（ステップＳＴ４３）。
【０１７９】
この後、繋続ＦＦ判定手段７は、出力ポート３に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する（ステップＳＴ４４）。この段階では、全ての組み合わせが完了していないのでステップＳＴ４０に戻る。
【０１８０】
（６−２）ＲＲＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート３に繋がるＦＦ２２及びＦＦ２３を共にリセット付きＦＦに変更し、ＦＦ２４をセット付きＦＦに変更してステップＳＴ４１に進む。
【０１８１】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２及びＦＦ２３はリセット付きＦＦに変更されたことから出力信号ｅ及び出力信号ｄは共に値０である。また、ＦＦ２４はセット付きＦＦに変更されたことから出力信号ｇは値１となる。
【０１８２】
信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値１となる。また、信号ｆと信号ｇを入力する組み合わせ回路Ｃ５は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｉは値０となる。これにより、中間回路Ｔ２の出力ポート３は値０となる。一方、元の回路Ｔ１では、出力ポート３に繋がるセット付きＦＦであるＦＦ５にリセット信号が入力されて値０になることから、出力ポート３が値０となる。
【０１８３】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート３の値０と回路Ｔ１の出力ポート３の値０が一致と判定し、ステップＳＴ４３に進む。
【０１８４】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート３に繋がったＦＦ２２、ＦＦ２３及びＦＦ２４の情報に対し、ＦＦ２２、ＦＦ２３及びＦＦ２４をリセット無しＦＦからリセット付きＦＦ及びセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。これと同時に、繋続ＦＦ判定手段７は、共有含ＦＦリストを作成して、当該共有含リストに対し、出力ポート３に繋がったＦＦ２２及びＦＦ２３をリセット無しＦＦからリセット付きＦＦに置き換え、ＦＦ２４をリセット無しＦＦからセット付きＦＦに置き換えると、出力ポート３の信号状態を一致させることが可能という情報を記載する（ステップＳＴ４３）。
【０１８５】
この後、繋続ＦＦ判定手段７は、出力ポート３に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する（ステップＳＴ４４）。この段階では、全ての組み合わせが完了していないのでステップＳＴ４０に戻る。
【０１８６】
（６−３）ＲＳＲ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート３に繋がるＦＦ２２をリセット付きＦＦに変更し、ＦＦ２３をセット付きＦＦに変更し、ＦＦ２４をリセット付きＦＦに変更してステップＳＴ４１に進む。
【０１８７】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２及びＦＦ２４はリセット付きＦＦに変更されたことから出力信号ｅ及び出力信号ｇは共に値０である。また、ＦＦ２３はセット付きＦＦに変更されたことから出力信号ｄは値１となる。
【０１８８】
信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値０となる。また、信号ｆと信号ｇを入力する組み合わせ回路Ｃ５は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｉは値１となる。これにより、中間回路Ｔ２の出力ポート３は値１となる。一方、元の回路Ｔ１では、出力ポート３に繋がるセット付きＦＦであるＦＦ５にリセット信号が入力されて値０になることから、出力ポート３が値０となる。
【０１８９】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート３の値１と回路Ｔ１の出力ポート３の値０が不一致と判定し、ステップＳＴ４４に進む。
【０１９０】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート３に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【０１９１】
（６−４）ＳＲＲ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート３に繋がるＦＦ２２をセット付きＦＦに変更し、ＦＦ２３及びＦＦ２４をリセット付きＦＦに変更してステップＳＴ４１に進む。
【０１９２】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２３及びＦＦ２４はリセット付きＦＦに変更されたことから出力信号ｄ及び出力信号ｇは共に値０である。また、ＦＦ２２はセット付きＦＦに変更されたことから出力信号ｅは値１となる。
【０１９３】
信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値０となる。また、信号ｆと信号ｇを入力する組み合わせ回路Ｃ５は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｉは値１となる。これにより、中間回路Ｔ２の出力ポート３は値１となる。一方、元の回路Ｔ１では、出力ポート３に繋がるセット付きＦＦであるＦＦ５にリセット信号が入力されて値０になることから、出力ポート３が値０となる。
【０１９４】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート３の値１と回路Ｔ１の出力ポート３の値０が不一致と判定し、ステップＳＴ４４に進む。
【０１９５】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート３に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【０１９６】
（６−５）ＲＳＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート３に繋がるＦＦ２３及びＦＦ２４を共にセット付きＦＦに変更し、ＦＦ２２をリセット付きＦＦに変更してステップＳＴ４１に進む。
【０１９７】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２３及びＦＦ２４はセット付きＦＦに変更されたことから出力信号ｄ及び出力信号ｇは共に値１である。また、ＦＦ２２はリセット付きＦＦに変更されたことから出力信号ｅは値０となる。
【０１９８】
信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値０となる。また、信号ｆと信号ｇを入力する組み合わせ回路Ｃ５は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｉは値０となる。これにより、中間回路Ｔ２の出力ポート３は値０となる。一方、元の回路Ｔ１では、出力ポート３に繋がるセット付きＦＦであるＦＦ５にリセット信号が入力されて値０になることから、出力ポート３が値０となる。
【０１９９】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート３の値０と回路Ｔ１の出力ポート３の値０が一致と判定し、ステップＳＴ４３に進む。
【０２００】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート３に繋がったＦＦ２２、ＦＦ２３及びＦＦ２４の情報に対し、ＦＦ２２、ＦＦ２３及びＦＦ２４をリセット無しＦＦからリセット付きＦＦ及びセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。これと同時に、繋続ＦＦ判定手段７は、共有含ＦＦリストを作成して、当該共有含リストに対し、出力ポート３に繋がったＦＦ２３及びＦＦ２４をリセット無しＦＦからセット付きＦＦに置き換え、ＦＦ２２をリセット無しＦＦからリセット付きＦＦに置き換えると、出力ポート３の信号状態を一致させることが可能という情報を記載する（ステップＳＴ４３）。
【０２０１】
この後、繋続ＦＦ判定手段７は、出力ポート３に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する（ステップＳＴ４４）。この段階では、全ての組み合わせが完了していないのでステップＳＴ４０に戻る。
【０２０２】
（６−６）ＳＲＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート３に繋がるＦＦ２２及びＦＦ２４を共にセット付きＦＦに変更し、ＦＦ２３をリセット付きＦＦに変更してステップＳＴ４１に進む。
【０２０３】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２及びＦＦ２４はセット付きＦＦに変更されたことから出力信号ｅ及び出力信号ｇは共に値１である。また、ＦＦ２３はリセット付きＦＦに変更されたことから出力信号ｄは値０となる。
【０２０４】
信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値０となる。また、信号ｆと信号ｇを入力する組み合わせ回路Ｃ５は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｉは値０となる。これにより、中間回路Ｔ２の出力ポート３は値０となる。一方、元の回路Ｔ１では、出力ポート３に繋がるセット付きＦＦであるＦＦ５にリセット信号が入力されて値０になることから、出力ポート３が値０となる。
【０２０５】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート３の値０と回路Ｔ１の出力ポート３の値０が一致と判定し、ステップＳＴ４３に進む。
【０２０６】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート３に繋がったＦＦ２２、ＦＦ２３及びＦＦ２４の情報に対し、ＦＦ２２、ＦＦ２３及びＦＦ２４をリセット無しＦＦからリセット付きＦＦ及びセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。これと同時に、繋続ＦＦ判定手段７は、共有含ＦＦリストを作成して、当該共有含リストに対し、出力ポート３に繋がったＦＦ２２及びＦＦ２４をリセット無しＦＦからセット付きＦＦに置き換え、ＦＦ２３をリセット無しＦＦからリセット付きＦＦに置き換えると、出力ポート３の信号状態を一致させることが可能という情報を記載する（ステップＳＴ４３）。
【０２０７】
この後、繋続ＦＦ判定手段７は、出力ポート３に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する（ステップＳＴ４４）。この段階では、全ての組み合わせが完了していないのでステップＳＴ４０に戻る。
【０２０８】
（６−７）ＳＳＲ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート３に繋がるＦＦ２２及びＦＦ２３を共にセット付きＦＦに変更し、ＦＦ２４をリセット付きＦＦに変更してステップＳＴ４１に進む。
【０２０９】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２及びＦＦ２３はセット付きＦＦに変更されたことから出力信号ｅ及び出力信号ｄは共に値１である。また、ＦＦ２４はリセット付きＦＦに変更されたことから出力信号ｇは値０となる。
【０２１０】
信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値０となる。また、信号ｆと信号ｇを入力する組み合わせ回路Ｃ５は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｉは値１となる。これにより、中間回路Ｔ２の出力ポート３は値１となる。一方、元の回路Ｔ１では、出力ポート３に繋がるセット付きＦＦであるＦＦ５にリセット信号が入力されて値０になることから、出力ポート３が値０となる。
【０２１１】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート３の値１と回路Ｔ１の出力ポート３の値０が不一致と判定し、ステップＳＴ４４に進む。
【０２１２】
ステップＳＴ４４では、繋続ＦＦ判定手段７が、出力ポート３に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか判定する。この段階では、全ての組み合わせによる処理が完了していないので、ステップＳＴ４０に戻る。
【０２１３】
（６−８）ＳＳＳ
ステップＳＴ４０において、繋続ＦＦ判定手段７は、次の組み合わせとして、出力ポート３に繋がるＦＦ２２、ＦＦ２３及びＦＦ２４を共にセット付きＦＦに変更してステップＳＴ４１に進む。
【０２１４】
ステップＳＴ４１では、簡易シミュレーション手段２が、元の回路Ｔ１と中間回路Ｔ２に対してリセット信号のみを入力するシミュレーションを実施する。ここで、ＦＦ２２、ＦＦ２３及びＦＦ２４はセット付きＦＦに変更されたことから出力信号ｅ、出力信号ｄ及び出力信号ｇは共に値１となる。
【０２１５】
信号ｅと信号ｄを入力する組み合わせ回路Ｃ４は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｆは値０となる。また、信号ｆと信号ｇを入力する組み合わせ回路Ｃ５は２入力ＮＯＲゲートであることから、図８に示すようにその出力信号ｉは値０となる。これにより、中間回路Ｔ２の出力ポート３は値０となる。一方、元の回路Ｔ１では、出力ポート３に繋がるセット付きＦＦであるＦＦ５にリセット信号が入力されて値０になることから、出力ポート３が値０となる。
【０２１６】
一致検出手段４は、ステップＳＴ４２において、中間回路Ｔ２の出力ポート３の値０と回路Ｔ１の出力ポート３の値０が一致と判定し、ステップＳＴ４３に進む。
【０２１７】
繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６に記憶している情報のうち、中間回路Ｔ２の出力ポート３に繋がったＦＦ２２、ＦＦ２３及びＦＦ２４の情報に対し、ＦＦ２２、ＦＦ２３及びＦＦ２４をリセット無しＦＦからセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報とを記憶させる。これと同時に、繋続ＦＦ判定手段７は、共有含ＦＦリストを作成して、当該共有含リストに対し、出力ポート３に繋がったＦＦ２２、ＦＦ２３及びＦＦ２４をリセット無しＦＦからセット付きＦＦに置き換えると、出力ポート３の信号状態を一致させることが可能という情報を記載する（ステップＳＴ４３）。
【０２１８】
この後、繋続ＦＦ判定手段７は、出力ポート３に繋がる全てのリセット無しＦＦに対して、リセット付きＦＦ及びセット付きＦＦによる全ての組み合わせを実施したか否かを判定する（ステップＳＴ４４）。この段階で全ての組み合わせが完了したので、ステップＳＴ４５に進む。
【０２１９】
ステップＳＴ４５において、繋続ＦＦ判定手段７は、上述した処理で出力信号が一致する組み合わせが存在したか否かを判定する。ここでは、出力ポート３に繋がるＦＦ２２、ＦＦ２３及びＦＦ２４を共にリセット付きＦＦに置き換える組み合わせが、回路Ｔ１と回路Ｔ２における出力ポート３の信号状態を一致させるので、ステップＳＴ２１に進み、ステップＳＴ９に戻る。
【０２２０】
図１６は、上述した各ステップの処理における出力ポート３に関する置き換えＦＦの判定プロセスを示している。図１６に示す表の各行は、図１５と同様に、簡易シミュレーションを１回実行する毎の情報であり、列は関連するステップ番号、フリップフロップ番号毎の変更候補と影響を与える信号の値、前提となる条件値、簡易シミュレーション結果の値、一致検出結果の順に記載している。また、図１５中のＲはリセット付きＦＦ、Ｓはセット付きＦＦ、Ｎはリセット無しＦＦを意味する。
【０２２１】
ここで、上述した置き換えＦＦ判定処理により得られた結果を説明する。
図１７は、上述した出力ポート１〜６に対する置き換えＦＦ判定処理により得られた中間回路Ｔ２に関する置き換えＦＦリストであり、図１８はその共有ＦＦ含リストである。図１７における各行は出力ポート毎の情報を記載している。図１７における列は元の回路Ｔ１に関する情報と中間回路Ｔ２に関する情報に分かれており、フリップフロップ番号毎の情報、中間回路Ｔ２の出力ポートに繋がったＦＦ数（繋続ＦＦ数）、中間回路Ｔ２の他の出力ポートにも繋がっているフリップフロップ数（共有ＦＦ数）、中間回路Ｔ２の出力ポートに繋がったリセット無しＦＦ数の順に記載している。
【０２２２】
また、図７と異なる点として、図１７では、出力ポートの信号状態を一致させる共有ＦＦを含んだフリップフロップの組み合わせが存在することを符号Ｃで表している。
【０２２３】
図１８では、中間回路Ｔ２内の共有ＦＦを含む出力ポート毎の情報を各行に記載しており、列はフリップフロップ番号毎の情報を記載している。図１８中の各行は、出力ポートの信号状態を一致させることができるフリップフロップの組み合わせを記載している。
【０２２４】
上述したように、出力ポート３では５通りのフリップフロップの組み合わせで一致させることができる。なお、図１８中のＲはリセット付きＦＦ、Ｓはセット付きＦＦ、Ｎはリセット無しＦＦを意味する。また、図中の「−」は出力ポートから入力ポートまで遡ったときに経由しないＦＦの情報を意味する。
【０２２５】
（７）終了処理
上述した出力ポート３に関する処理が完了すると、繋続ＦＦ判定手段７は、中間回路Ｔ２内の出力ポートのうち、元の回路Ｔ１の出力ポートの信号状態と異なる全ての出力ポートを判定したか否かを判定する（ステップＳＴ９）。この段階で全ての出力ポートの判定が完了したので、図２の符号Ｂで示す図５のステップＳＴ４７に進む。
【０２２６】
ステップＳＴ４７において、繋続ＦＦ判定手段７は、検出ＦＦ記憶手段６における記憶データに、中間回路Ｔ２に関する共有ＦＦ含リストがあるか否かを判定する。上述したように、中間回路Ｔ２には共有ＦＦ含リストが存在するので、ステップＳＴ４８に進む。なお、共有ＦＦ含リストが存在しなければ、ステップＳＴ５６に進む。
【０２２７】
繋続ＦＦ判定手段７は、ステップＳＴ４８において、複数の出力ポートに繋がった共有ＦＦがセット付きＦＦとリセット付きＦＦで矛盾することなく一意の組み合わせを決定できるか否かを判定する。ここで、一意の組み合わせを決定できれば、ステップＳＴ５５に進む。
【０２２８】
ステップＳＴ５５において、繋続ＦＦ判定手段７は、中間回路Ｔ２における全ての共有ＦＦをリセット付きＦＦ又はセット付きＦＦのいずれかの組み合わせに置き換え可能であるという情報と置き換え後の回路の情報を検出ＦＦ記憶手段６に記憶させる。この後、ステップＳＴ５６の処理に進む。
【０２２９】
なお、中間回路Ｔ２では、図１８から明らかなように、共有ＦＦ含リストにおけるＦＦ２８が、出力ポート５との関係ではセット付きＦＦ、出力ポート６との関係ではリセット付きＦＦとなる組み合わせとなり、一意の組み合わせを決定できない。そこで、ステップＳＴ４９に進む。
【０２３０】
（８）組み合わせ決定処理
以降では、中間回路Ｔ２に関する共有含ＦＦリストを基に共有ＦＦがセット付きＦＦとリセット付きＦＦで矛盾することなく一意の組み合わせを決定できるか判定するプロセスを例示する。
【０２３１】
中間回路Ｔ２内の共有ＦＦは、ＦＦ２２、ＦＦ２３、ＦＦ２４及びＦＦ２８である。ＦＦ２２、ＦＦ２３及びＦＦ２４は、出力ポート２及び出力ポート３の繋続ＦＦである。ＦＦ２８は、出力ポート５及び出力ポート６の繋続ＦＦである。
【０２３２】
出力ポート２に関する置き換え候補は、ＦＦ２２とＦＦ２３の両方をリセット付きＦＦに変更することである。また、これを踏まえると、出力ポート３に関する置き換え候補における、ＦＦ２２、ＦＦ２３及びＦＦ２４を全てリセット付きＦＦに変更すること、ＦＦ２２とＦＦ２３をリセット付きＦＦにＦＦ２４をセット付きＦＦに変更すること、のいずれかであれば、出力ポート２と出力ポート３で矛盾なく置き換え後のフリップフロップを決定できる。
【０２３３】
ここでは、ＦＦ２２、ＦＦ２３及びＦＦ２４の全てをリセット付きＦＦに変更することを組み合わせとして決定する。
【０２３４】
一方、出力ポート５に関する置き換え候補は、ＦＦ２８及びＦＦ２８を共にセット付きＦＦに変更することである。これに対し、出力ポート６に関する置き換え候補では、ＦＦ２７及びＦＦ２８を共にリセット付きＦＦに変更する。これにより、両候補は、出力ポート５と出力ポート６では矛盾なく置き換え後のフリップフロップを決定できない。ＦＦ２８の置き換えで矛盾が発生する。
【０２３５】
そこで、繋続ＦＦ判定手段７は、ステップＳＴ４９において、図１８に示す共有ＦＦ含リストに基づいて、論理が矛盾した共有ＦＦの個数が少なくなるようなフリップフロップの組み合わせを決定する。例えば、上述したように、出力ポート２と出力ポート３に関する置き換え候補では、ＦＦ２２とＦＦ２３の両方がリセット付きＦＦに変更される組み合わせであれば、出力ポート２と出力ポート３で矛盾なく置き換え後のフリップフロップを決定できる。そこで、例えばＦＦ２２、ＦＦ２３及びＦＦ２４の全てをリセット付きＦＦに変更することを組み合わせとして決定する。
【０２３６】
ステップＳＴ５０において、繋続ＦＦ判定手段７は、決定した組み合わせに基づき、論理矛盾したＦＦ２８以外の共有ＦＦであるＦＦ２２、ＦＦ２３及びＦＦ２４をリセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報を、検出ＦＦ記憶手段６の置き換えＦＦリストに記憶させて、ステップＳＴ５１に進む。
【０２３７】
繋続ＦＦ判定手段７は、ステップＳＴ５１において、検出ＦＦ記憶手段６に記憶された共有ＦＦ含リストから、論理矛盾した任意の共有ＦＦとしてＦＦ２８を選び、ステップＳＴ５２に進む。
【０２３８】
ステップＳＴ５２において、繋続ＦＦ判定手段７は、下記の処理を実行する。
先ず、ここまでの処理により、出力ポートの信号状態を一致させるのに必要なフリップフロップは出力ポート毎に決まっているので、共有ＦＦの出力からリセット付きＦＦが必要な出力ポートまでの回路と、その回路の他の入力信号とを複製する。
【０２３９】
この後、共有ＦＦをセット付きＦＦに置き換える。
同時に、リセット付きＦＦを回路に追加し、セット付きＦＦの入力信号を分岐させて、リセット付きＦＦにも入力させ、セット付きＦＦとリセット付きＦＦの入力信号を共通化する。
【０２４０】
追加したリセット付きＦＦの出力に、上述した複製回路を繋ぐ。このようにして、出力ポートに繋がる信号を、セット付きＦＦに置き換えた共有ＦＦの出力を起点とした信号から、追加したリセット付きＦＦの出力を起点とした信号に変更し、ステップＳＴ５３に進む。
【０２４１】
中間回路Ｔ２の例で説明すると、出力ポート５はセット付きＦＦを必要としており、出力ポート６はリセット付きＦＦを必要としているので、繋続ＦＦ判定手段７は、共有ＦＦであるＦＦ２８の出力からリセット付きＦＦが必要な出力ポート６までの経路上にある組み合わせ回路Ｃ８と、組み合わせ回路Ｃ８の入力信号である信号ｐとを複製する。
【０２４２】
そして、共有ＦＦであるＦＦ２８をセット付きＦＦに置き換える。
同時に、繋続ＦＦ判定手段７は、リセット付きＦＦである新たなＦＦ３０を回路に追加し、図１に示すようにセット付きＦＦであるＦＦ２８の入力信号ｓを分岐させ、新たに追加したリセット付きＦＦであるＦＦ３０にも入力し、セット付きＦＦとリセット付きＦＦの入力信号を共通化する。
【０２４３】
追加したＦＦ３０の出力に、上述の複製回路を繋ぐ。これにより、出力ポート６に繋がる信号を、ＦＦ２８の出力を起点とした信号から、追加したリセット付きＦＦであるＦＦ３０の出力を起点とした信号に変更し、ステップＳＴ５３に進む。
【０２４４】
ステップＳＴ５３において、繋続ＦＦ判定手段７は、全ての論理矛盾した共有ＦＦを処理したか否かを判定する。中間回路Ｔ２では、論理矛盾した共有ＦＦがＦＦ２８だけであり、先のステップで処理完了したので、ステップＳＴ５４に進む。他にも論理矛盾した共有ＦＦが存在していれば、ステップＳＴ５１に戻る。
【０２４５】
繋続ＦＦ判定手段７は、ステップＳＴ５４において、論理矛盾したＦＦ２８をリセット付きＦＦとセット付きＦＦに置き換え可能という情報と置き換え後の回路の情報を、検出ＦＦ記憶手段６における置き換えＦＦリストに記憶して、ステップＳＴ５６に進む。
【０２４６】
図１９は、上述した処理により作成された最終段階の中間回路Ｔ２に関する置き換えＦＦリストを示している。図１９における各行は出力ポート毎の情報を記載している。列は元の回路Ｔ１に関する情報と中間回路Ｔ２に関する情報に分かれており、フリップフロップ番号毎の情報、中間回路Ｔ２の出力ポートに繋がったＦＦ数（繋続ＦＦ数）、中間回路Ｔ２の他の出力ポートにも繋がっているフリップフロップ数（共有ＦＦ数）、中間回路Ｔ２の出力ポートに繋がったリセット無しＦＦ数の順に記載している。
【０２４７】
図１６と異なる点として、図１９では、論理矛盾していた共有ＦＦであるＦＦ２８のためにＦＦ３０を追加したことである。ＦＦ３０を追加したことにより出力ポート５と出力ポート６の共有ＦＦ数は０個になる。
【０２４８】
繋続ＦＦ判定手段７による最終段階の置き換えＦＦリストの作成が完了すると、置き換えＦＦ判定手段８は、置き換えＦＦリストに沿ってリセット付きＦＦ又はセット付きＦＦに置き換え可能なリセット無しＦＦを判定し、判定結果のリセット無しＦＦをリセット付きＦＦやセット付きＦＦに置き換える（ステップＳＴ５６）。この処理が完了すると全ての処理が終了する（ステップＳＴ５７）。
【０２４９】
図２０は、ステップＳＴ５６で置き換えＦＦ判定手段８により中間回路Ｔ２から置き換え処理が施された最終回路Ｔ３を示す図である。図１９に示す置き換えＦＦリストに沿って、中間回路Ｔ２から最終回路Ｔ３にリセット無しＦＦがリセット付きＦＦやセット付きＦＦに置き換えられている。特に、論理矛盾していた共有ＦＦであるＦＦ２８のために、リセット付きＦＦであるＦＦ３０とこれを入力とする組み合わせ回路Ｃ８が新たに追加されている。
【０２５０】
以上のように、この実施の形態１によれば、リセット信号の接続関係を変更した回路Ｔ２と変更前の回路Ｔ１との各出力ポート１〜６の信号状態を比較して回路Ｔ２内の出力ポートから変更前の回路Ｔ１内の対応する出力ポートの信号状態と異なる出力ポートを検出し、リセット信号を入力するシミュレーション結果に基づいて、検出した出力ポートに繋がるリセット無しＦＦを、回路Ｔ２と回路Ｔ１における当該出力ポート間の信号状態を一致させるリセット付きＦＦに置き換える置き換えＦＦ検出手段１を備えるので、例えば、半導体集積回路のネットリストやハードウェア記述言語で出力する場合でも、迅速にかつ何の弊害も発生させることもなく、容易に置き換え可能なＦＦを検出することができ、リセット信号の接続関係を変更した回路Ｔ２と変更前の元の回路Ｔ１における出力ポートの信号状態を一致させることができる。
【０２５１】
また、この実施の形態１によれば、置き換えＦＦ検出手段１は、リセット信号のみを入力とした簡易シミュレーションを実行する簡易シミュレーション手段２と、簡易シミュレーション実行後の出力ポートの信号状態を記憶する出力状態記憶手段３と、出力状態記憶手段３の記憶内容から回路Ｔ２と回路Ｔ１の各出力ポートの信号状態が一致しているか否かを検出する一致検出手段４と、一致検出手段４により不一致と判定された出力ポートに繋がる回路Ｔ２内のＦＦを検出する繋続ＦＦ検出手段５と、繋続ＦＦ検出手段５により検出されたＦＦの情報を記憶する検出ＦＦ記憶手段６と、検出ＦＦ記憶手段６の記憶内容を用いて、回路Ｔ２内の出力ポートに繋がるＦＦのうち、リセット付きＦＦに変更することにより、回路Ｔ１と回路Ｔ２における当該出力ポート間の信号状態を一致させることができるリセット無しＦＦのリスト情報を作成する繋続ＦＦ判定手段７と、このリスト情報により特定されるリセット無しＦＦをリセット付きＦＦに置き換える置き換えＦＦ判定手段８とを備えたので、容易に、かつ確実に置き換え可能なＦＦを検出することができる。
【０２５２】
さらに、この実施の形態１によれば、リセット信号の接続関係を変更した回路Ｔ２と変更前の回路Ｔ１との各出力ポート１〜６の信号状態を比較して回路Ｔ２内の出力ポートから変更前の回路Ｔ１内の対応する出力ポートの信号状態と異なる出力ポートを検出し、リセット信号を入力するシミュレーション結果に基づいて、出力ポートに繋がるリセット無しＦＦを、回路Ｔ２と回路Ｔ１における当該出力ポート間の信号状態を一致させるリセット付きＦＦに置き換える置き換えＦＦ検出手段１としてコンピュータを機能させるプログラムにより、例えば半導体集積回路のネットリストやハードウェア記述言語で出力する場合でも、迅速にかつ何の弊害も発生させることもなく、容易に置き換え可能なＦＦを検出することができる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【０２５３】
さらに、この実施の形態１によれば、リセット信号のみを入力とした簡易シミュレーションを実行する簡易シミュレーション手段２と、簡易シミュレーション実行後の出力ポートの信号状態を記憶する出力状態記憶手段３と、出力状態記憶手段３の記憶内容から回路Ｔ２と回路Ｔ１の各出力ポートの信号状態が一致しているか否かを検出する一致検出手段４と、一致検出手段４により不一致と判定された出力ポートに繋がる回路Ｔ２内のＦＦを検出する繋続ＦＦ検出手段５と、繋続ＦＦ検出手段５により検出されたＦＦの情報を記憶する検出ＦＦ記憶手段６と、検出ＦＦ記憶手段６の記憶内容を用いて、回路Ｔ２内の出力ポートに繋がるＦＦのうち、リセット付きＦＦに変更することにより、回路Ｔ２と回路Ｔ１における当該出力ポート間の信号状態を一致させることができるリセット無しＦＦのリスト情報を作成する繋続ＦＦ判定手段７と、このリスト情報により特定されるリセット無しＦＦをリセット付きＦＦに置き換える置き換えＦＦ判定手段８としてコンピュータを機能させるプログラムにより、例えば半導体集積回路のネットリストやハードウェア記述言語で出力する場合でも、迅速にかつ何の弊害も発生させることもなく、容易に置き換え可能なＦＦを検出することができる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【０２５４】
なお、上記実施の形態１では、入力ポートが１０個、出力ポートが６個、内部の組み合わせ回路が８個しかない対象回路を例として説明したが、それぞれが多数の場合も同様に適用可能である。また、各ＦＦは接続先が１個又は２個しかない場合を例としたが、複数の接続先が有る場合にも同様に適用可能である。さらに、各組み合わせ回路は入力が２個しかない場合を例として説明したが、より多数の場合にも同様に適用可能である。さらに、複数の階層やモジュールに跨った回路にも適用可能である。
【図面の簡単な説明】
【０２５５】
【図１】この発明の実施の形態１による半導体集積回路設計支援システムの構成を示すブロック図である。
【図２】実施の形態１の半導体集積回路設計支援システムによる動作の流れを示すフローチャートである。
【図３】実施の形態１の半導体集積回路設計支援システムによる動作の流れを示すフローチャートである。
【図４】実施の形態１の半導体集積回路設計支援システムによる動作の流れを示すフローチャートである。
【図５】実施の形態１の半導体集積回路設計支援システムによる動作の流れを示すフローチャートである。
【図６】簡易シミュレーション結果の一例を示す図である。
【図７】検出ＦＦ記憶手段の記憶内容の一例を示す図である。
【図８】組み合わせ回路をＮＯＲゲートとした場合を示す図である。
【図９】出力ポート１に関する置き換えＦＦの判定結果を示す図である。
【図１０】出力ポート２に関する置き換えＦＦの判定結果を示す図である。
【図１１】出力ポート４に関する置き換えＦＦの判定結果を示す図である。
【図１２】組み合わせ回路をＡＮＤゲートとした場合を示す図である。
【図１３】出力ポート５に関する置き換えＦＦの判定結果を示す図である。
【図１４】組み合わせ回路をＯＲゲートとした場合を示す図である。
【図１５】出力ポート６に関する置き換えＦＦの判定結果を示す図である。
【図１６】出力ポート３に関する置き換えＦＦの判定結果を示す図である。
【図１７】中間回路Ｔ２に関する置き換えＦＦリストを示す図である。
【図１８】中間回路Ｔ２に関する共有ＦＦ含リストを示す図である。
【図１９】最終的な置き換えＦＦリストを示す図である。
【図２０】最終回路を示す図である。
【符号の説明】
【０２５６】
１  置き換えＦＦ検出手段、２  簡易シミュレーション手段、３  出力状態記憶手段、４  一致検出手段、５  繋続ＦＦ検出手段、６  検出ＦＦ記憶手段、７  繋続ＦＦ判定手段、８  置き換えＦＦ判定手段。
【図１】
2007316751.tif 000003
【図２】
2007316751.tif 000004
【図３】
2007316751.tif 000005
【図４】
2007316751.tif 000006
【図５】
2007316751.tif 000007
【図６】
2007316751.tif 000008
【図７】
2007316751.tif 000009
【図８】
2007316751.tif 000010
【図９】
2007316751.tif 000011
【図１０】
2007316751.tif 000012
【図１１】
2007316751.tif 000013
【図１２】
2007316751.tif 000014
【図１３】
2007316751.tif 000015
【図１４】
2007316751.tif 000016
【図１５】
2007316751.tif 000017
【図１６】
2007316751.tif 000018
【図１７】
2007316751.tif 000019
【図１８】
2007316751.tif 000020
【図１９】
2007316751.tif 000021
【図２０】
2007316751.tif 000022