(57)【要約】【課題】  リセット無しＦＦに置き換えても何ら問題の生じないリセット付きＦＦを自動で検出することができる半導体集積回路設計支援システムを得る。【解決手段】  先頭ＦＦ検出手段２は、対象回路１００の入力ポート１０１，１０２に接続されている最初のフリップフロップを検出し、これをリセット必要ＦＦリスト５に記憶させる。自己ループＦＦ検出手段３は、対象回路１００において、接続先が自分に戻っている状態にあるフリップフロップを検出し、これをリセット必要ＦＦリスト５に記憶させる。置き換えＦＦ判定手段４は、リセット必要ＦＦリスト５に記憶されている以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する。【選択図】        図１
2005293493.tif 000002
【特許請求の範囲】
【請求項１】
リセット端子付きフリップフロップを含む回路に対して、当該回路における前記リセット端子付きフリップフロップの接続関係に基づき、リセット端子無しフリップフロップに置き換えても問題の生じないリセット端子付きフリップフロップを検出する置き換えＦＦ検出手段を備えた半導体集積回路設計支援システム。
【請求項２】
入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段と、
接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段と、
これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段とを備えた請求項１記載の半導体集積回路設計支援システム。
【請求項３】
入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段と、
接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段と、
これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出されたフリップフロップのうち、予め設定したリセット端子無しフリップフロップに該当するか否かを判定し、該当したフリップフロップかつ、これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段とを備えた請求項１記載の半導体集積回路設計支援システム。
【請求項４】
入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段と、
接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段と、
予め設定したリセット端子付きフリップフロップに該当するかを判定し、該当しないフリップフロップで、かつ、これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段とを備えた請求項１記載の半導体集積回路設計支援システム。
【請求項５】
リセット端子付きフリップフロップを含む回路は、階層構造となっており、
かつ、
最上位の階層における入力ポートから接続されている最初のフリップフロップを検出すると共に、任意の下位階層ブロックの入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段と、
接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段と、
これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段とを備えた請求項１記載の半導体集積回路設計支援システム。
【請求項６】
コンピュータを、リセット端子付きフリップフロップを含む回路に対して、当該回路における前記リセット端子付きフリップフロップの接続関係に基づき、リセット端子無しフリップフロップに置き換えても問題の生じないリセット端子付きフリップフロップを検出する置き換えＦＦ検出手段として機能させるための半導体集積回路設計支援システムのプログラム。
【請求項７】
コンピュータを、入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段と、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段と、これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段として機能させるための請求項１記載の半導体集積回路設計支援システムのプログラム。
【請求項８】
コンピュータを、入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段と、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段と、これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出されたフリップフロップのうち、予め設定したリセット端子無しフリップフロップに該当するか否かを判定し、該当したフリップフロップかつ、これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段として機能させるための請求項１記載の半導体集積回路設計支援システムのプログラム。
【請求項９】
コンピュータを、入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段と、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段と、予め設定したリセット端子付きフリップフロップに該当するかを判定し、該当しないフリップフロップで、かつ、これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段として機能させるための請求項１記載の半導体集積回路設計支援システムのプログラム。
【請求項１０】
コンピュータを、階層構造を有するリセット端子付きフリップフロップを含む回路に対して、最上位の階層における入力ポートから接続されている最初のフリップフロップを検出すると共に、任意の下位階層ブロックの入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段と、前記回路に対して、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段と、これら先頭ＦＦ検出手段および自己ループＦＦ検出手段で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段として機能させるための請求項１記載の半導体集積回路設計支援システムのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路を設計する際に、リセット端子付きフリップフロップをリセット端子無しフリップフロップに置き換え可能なフリップフロップを検出する半導体集積回路設計支援システムおよびそのプログラムに関するものである。
【背景技術】
【０００２】
従来、半導体集積回路設計において、ＬＳＩのゲート数削減やレイアウト性向上のためリセット端子付フリップフロップ(以降、リセット付きＦＦと呼ぶ)をリセット端子無しフリップフロップ(以降、リセット無しＦＦと呼ぶ)に置き換えることがある。例えば、特許文献１ではリセット端子無しフリップフロップを使用することが当然のように記載されている。
【０００３】
しかしながら、この弊害としてゲートレベルシミュレーション実行時初期リセット解除後に不定値が伝播することがあり、この場合、ＲＴＬ(Register Transfer Level)シミュレーションとの結果が不一致となり解析性が非常に困難となる。そのため、その対象回路に精通した設計者が全てのＦＦについて不定値が出ないように考えながらリセット無しＦＦへの置き換えを行っていた。例えば、特許文献２ではフリップフロップの出力値が不定になることを防ぐ方法が記載されている。
【０００４】
【特許文献１】特開平１０−９７５５７号公報
【特許文献２】特開平１１−１４５７８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の半導体集積回路設計手法では、対象回路に精通した設計者が全てのＦＦについて不定値が伝播しないように考えながらリセット無しＦＦへの置き換えを行う必要があったため、その対象回路に精通した者でなければ作業が困難であった。しかも、このような対象回路に精通した設計者であっても、かなりの時間を要し、かつ、手作業のため間違えた置き換えを行ってしまい、その解析に時間を費やしてしまう、といった問題があった。
【０００６】
また、設計の初期段階から行う場合は比較的余分な時間を費やさずに設計者が対応出来るが、既にある程度完成した回路ブロックを使用する場合（他部門や他社(特にＬＳＩ設計について慣れていない設計部門)の回路ブロックを受け入れた場合や過去の開発で使用した回路ブロックの流用を行う場合等）、設計当事者であれ受け入れ部門であれ、このような作業は非常に困難であった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、リセット無しＦＦに置き換えても何ら問題の生じないリセット付きＦＦを自動で検出することができる半導体集積回路設計支援システム及びそのプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る半導体集積回路設計支援システムは、リセット端子付きフリップフロップを含む回路に対して、その回路におけるリセット端子付きフリップフロップの接続関係に基づき、リセット端子無しフリップフロップに置き換えても問題の生じないリセット端子付きフリップフロップを検出する置き換えＦＦ検出手段を備えたものである。
【発明の効果】
【０００９】
この発明の半導体集積回路設計支援システムは、リセット端子付きフリップフロップの接続関係に基づき、リセット端子無しフリップフロップに置き換えても問題の生じないリセット端子付きフリップフロップを置き換えＦＦ検出手段で検出するようにしたので、たとえ対象回路に精通した設計者でなくとも、リセット無しＦＦに置き換えても何ら問題の生じないリセット付きＦＦを容易に検出することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１による半導体集積回路設計支援システムを示す構成図である。
図において、対象回路１００は半導体集積回路を示しており、入力ポート１０１，１０２、出力ポート１０３、フリップフロップ１〜５（ＦＦ１〜５）１０４〜１０８、組み合わせ回路１〜６（Ｃ１〜Ｃ６）１０９〜１１４を備えている。尚、以降、フリップフロップ１〜５はＦＦ１〜５、組み合わせ回路１〜６はＣ１〜Ｃ６と呼ぶ。
【００１１】
入力ポート１０１，１０２は、対象回路１００の外部からの信号入力ポートであり、出力ポート１０３は、この対象回路１００の外部への信号出力ポートである。また、ＦＦ１〜ＦＦ５（１０４〜１０８）は、リセット端子付きフリップフロップ、Ｃ１〜Ｃ６（１０９〜１１４）は、ＦＦやラッチを包含しない組み合わせ回路である。また、Ｃ１（１０９）は入力ポート１０１に接続され、以下、ＦＦ１（１０４）、Ｃ２（１１０）、ＦＦ２（１０５）、Ｃ３（１１１）、ＦＦ３（１０６）、Ｃ４（１１２）、ＦＦ４（１０７）、Ｃ５（１１３）、ＦＦ５（１０８）、Ｃ６（１１４）と順番に接続され、Ｃ６（１１４）の出力が出力ポート１０３に接続されている。また、入力ポート１０２は、Ｃ３（１１１）に接続されている。更に、ＦＦ４（１０７）の出力はＣ４の入力側に接続され、ＦＦ４（１０７）は自己ループの回路を構成している。
【００１２】
置き換えＦＦ検出手段１は、対象回路１００に対して、リセット端子無しフリップフロップに置き換えても問題の生じないリセット端子付きフリップフロップを検出する機能を有するもので、先頭ＦＦ検出手段２、自己ループＦＦ検出手段３、置き換えＦＦ判定手段４を備えている。
【００１３】
先頭ＦＦ検出手段２は、対象回路１００において、入力ポート１０１，１０２から接続されている最初のフリップフロップを検出する機能を有している。自己ループＦＦ検出手段３は、接続先が自分に戻っている状態にあるフリップフロップを検出する機能を有している。置き換えＦＦ判定手段４は、リセット必要ＦＦリスト５を有し、これら先頭ＦＦ検出手段２および自己ループＦＦ検出手段３で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する機能を有している。即ち、先頭ＦＦ検出手段２で検出されたフリップフロップと自己ループＦＦ検出手段３で検出されたフリップフロップはリセット必要ＦＦリスト５に記憶され、置き換えＦＦ判定手段４は、このリセット必要ＦＦリスト５に存在しないフリップフロップを置き換え対象のフリップフロップとして判定するよう構成されている。
【００１４】
尚、置き換えＦＦ検出手段１はコンピュータを用いて実現され、先頭ＦＦ検出手段２〜置き換えＦＦ判定手段４の各構成は、それぞれの機能に対応するソフトウェアと、これらのソフトウェアを実行するためのＣＰＵやメモリ等のハードウェアから構成されている。
【００１５】
次に、実施の形態１の動作を説明する。
図２は、実施の形態１の動作を示すフローチャートである。
先ず、先頭ＦＦ検出手段２は、全ての入力ポート１０１，１０２から接続されている最初のフリップフロップ（以降、１ｓｔＦＦと呼ぶ）(図１ではＦＦ１（１０４）、ＦＦ３（１０６）がこれに相当する)を全て検出し、リセット必要ＦＦリスト５に記憶する（ステップＳＴ１）。
【００１６】
次に、置き換えＦＦ判定手段４は、その１ｓｔＦＦに繋がっている次のＦＦ(ＦＦ２（１０５）、ＦＦ４（１０７）が相当)が他の１ｓｔＦＦでないかどうか確認する（ステップＳＴ２）。このＦＦが他の１ｓｔＦＦであればそのＦＦにはリセットが必要ということで後述するステップＳＴ６に飛び、その次に繋がっているＦＦの調査に入る。ステップＳＴ２において１ｓｔＦＦでない場合、自己ループＦＦ検出手段３によって、そのＦＦは、接続先が自分に戻っている状態(以降、自己ループと呼ぶ)であるかどうかを判別する（ステップＳＴ３）。自己ループの場合(ＦＦ４（１０７）が相当)はリセットが必要ということで、リセット必要ＦＦリスト５に記憶し、ステップＳＴ６に飛ぶ（ステップＳＴ４）。自己ループでない場合（ＦＦ２（１０５）が相当）、置き換えＦＦ判定手段４はそのＦＦをリセット無しＦＦに置き換え（ステップＳＴ５）、その次に繋がっているＦＦの調査に入る（ステップＳＴ６）。
【００１７】
次に、置き換えＦＦ判定手段４は、その次のＦＦ(ＦＦ３（１０６）、ＦＦ５（１０８）が相当)が、これまでのリセット必要ＦＦリスト５に記憶されているＦＦであるかをチェックする（ステップＳＴ７）。それが既に記憶されているＦＦ(ＦＦ３（１０６）が相当)であれば、調査するまでも無くそのＦＦにリセットが必要ということでステップＳＴ１１に飛び、その次に繋がっているＦＦの調査に入る。リストにないＦＦであれば、上述したステップＳＴ３〜ステップＳＴ６で行った処理と同様の処理を行う（ステップＳＴ８〜ステップＳＴ１１）。そして、前記のステップＳＴ７〜ステップＳＴ１１の調査を全てのＦＦについて行う（ステップＳＴ１２）。
【００１８】
ここまでの動作により、リセットの必要ない箇所にはリセット無しＦＦが置き換えられ、かつ、リセットの必要な箇所のＦＦはリセット必要ＦＦリスト５に抽出されて完了となる（ステップＳＴ１３）。
【００１９】
ここで、自己ループについて補足する。図１のＦＦ４（１０７）がこれに相当するが、ＦＦ４（１０７）がリセット無しＦＦであった場合、仮にその前に接続されているＦＦ３（１０６）がリセット付きＦＦであり、値が固定されるとしても、不定値であるＦＦ４（１０７）の出力が組み合わせ回路Ｃ４（１１２）に入力されてＦＦ４（１０７）の値はいつまでも固定値にならない可能性がある。従って、不定値をなくすためには自己ループを持ったＦＦ(ＦＦ４)はリセット付きＦＦにする必要がある。
【００２０】
また、自己ループを検出するにはいろいろな方法が考えられるが、ここで検出方法の一例について若干言及しておく。その調査対象となるＦＦをスタートポイントとして接続先を追っていき、最終的に出力ポートにのみ達すれば、そのＦＦは自己ループを持っていないことになる。一方、接続先が回りまわって自分(ＦＦ)の入力に接続されている場合、たとえ別のパス（接続先）が出力パスに達していようとも、そのＦＦは自己ループを持っていることになる。例えば、それを図１において説明する。
【００２１】
ＦＦ２（１０５）の場合、接続先はＣ３→ＦＦ３→Ｃ４→ＦＦ４→Ｃ５→ＦＦ５→Ｃ６→出力ポート１０３というパスか、Ｃ３→ＦＦ３→Ｃ４→ＦＦ４→Ｃ４→ＦＦ４→Ｃ５→ＦＦ５→Ｃ６→出力ポート３というパスであり、両パスとも自分(ＦＦ２)の入力に戻ることはなく、出力ポートに接続されているので、自己ループを持っていないことになる。一方、ＦＦ４の場合の接続先は、Ｃ５→ＦＦ５→Ｃ６→出力ポート１０３というパスか、Ｃ４→ＦＦ４→Ｃ５→ＦＦ５→Ｃ６→出力ポート１０３というパスとなり、後者のパスはＣ４を介して自分(ＦＦ４)に戻っているので、ＦＦ４は自己ループを持ったＦＦということになる。
【００２２】
以上のように、実施の形態１によれば、リセット端子付きフリップフロップを含む対象回路１００に対して、その回路におけるリセット端子付きフリップフロップの接続関係に基づき、リセット端子無しフリップフロップに置き換えても問題の生じないリセット端子付きフリップフロップを検出する置き換えＦＦ検出手段１を備えたので、例えば、半導体集積回路のネットリストやハードウェア記述言語で出力する場合でも、設計者の手を煩わすことなく迅速に、かつ、何の弊害も発生させることもなく、容易に置き換え可能なフリップフロップを検出することができ、その結果、ゲート数削減、レイアウト性向上を達成することができる。
【００２３】
また、実施の形態１によれば、入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段２と、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段３と、これら先頭ＦＦ検出手段２および自己ループＦＦ検出手段３で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段４とを備えたので、容易に、かつ、確実に置き換え可能なフリップフロップを検出することができる。
【００２４】
また、実施の形態１によれば、コンピュータを、リセット端子付きフリップフロップを含む回路に対して、その回路におけるリセット端子付きフリップフロップの接続関係に基づき、リセット端子無しフリップフロップに置き換えても問題の生じないリセット端子付きフリップフロップを検出する置き換えＦＦ検出手段１として機能させるためのプログラムを備えたので、設計者の手を煩わすことなく迅速に、かつ、何の弊害も発生させることもなく、容易に置き換え可能なフリップフロップを検出することができる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【００２５】
また、実施の形態１によれば、コンピュータを、入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段２と、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段３と、これら先頭ＦＦ検出手段２および自己ループＦＦ検出手段３で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段４として機能させるためのプログラムを備えたので、容易に、かつ、確実に置き換え可能なフリップフロップを検出することができる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【００２６】
実施の形態２．
実施の形態２は、任意のフリップフロップをリセット端子無しフリップフロップに指定する構成を付加したものである。
【００２７】
図３は、実施の形態２における置き換えＦＦ検出手段１ａの構成図である。
実施の形態２では、置き換えＦＦ検出手段１ａの各部の基本的な構成は実施の形態１と同様であるが、置き換えＦＦ判定手段４が、リセット無しＦＦリスト６を有している点が異なっている。このリセット無しＦＦリスト６は、ユーザの指定によりリセット端子無しフリップフロップとしたい場合にそのフリップフロップを登録するものである。また、置き換えＦＦ判定手段４は、対象となるフリップフロップがこのリセット無しＦＦリスト６にあった場合は、リセット必要ＦＦリスト５に該当するフリップフロップであってもリセット端子無しフリップフロップとして判定するよう構成されている。尚、対象回路１００は実施の形態１と同様であるため、その図示は省略している。
【００２８】
次に、実施の形態２の動作について説明する。
図４は、実施の形態２の動作を示すフローチャートである。
ここで、実施の形態１と同様の処理については、同一のステップ番号を付与している。
先ず、任意のＦＦをリセット無しＦＦに指定するため、リセット無しＦＦリスト６を作成する（ステップＳＴ２１）。次に、実施の形態１と同様に先頭ＦＦ検出手段２によって１ｓｔＦＦを検出する（ステップＳＴ２２）。次に、置き換えＦＦ判定手段４は、その１ｓｔＦＦがリセット無しＦＦリスト６にあるかどうかチェックする（ステップＳＴ２３）。本リストにない場合は実施の形態１と同様にリセット必要ＦＦリスト５に記憶する（ステップＳＴ２４）。本リストにあった場合はリセット必要ＦＦリスト５に記憶せず、次のＦＦ調査（ステップＳＴ２、ＳＴ３）に移る。
【００２９】
ステップＳＴ３において、自己ループＦＦ検出手段３が、自己ループを持ったＦＦを検出した場合、置き換えＦＦ判定手段４は、そのＦＦがリセット無しＦＦリスト６にあるかをチェックする（ステップＳＴ２５）。本リストに存在しない場合は、実施の形態１と同様にリセット必要ＦＦリスト５に記憶する（ステップＳＴ４）。本リストに存在する場合は、自己ループを持ったＦＦでもリセット無しＦＦに置き換える（ステップＳＴ５）。その後、次に繋がっているＦＦの調査に入る（ステップＳＴ６）。
【００３０】
ステップＳＴ６〜ステップＳＴ１１の動作は、同一のステップ番号を有する実施の形態１の動作と同様である。また、ステップＳＴ８において、自己ループＦＦ検出手段３が、自己ループを持ったＦＦを検出した場合、置き換えＦＦ判定手段４は、そのＦＦがリセット無しＦＦリスト６にあるかをチェックし（ステップＳＴ２６）、本リストに存在しない場合は、リセット必要ＦＦリスト５に記憶する（ステップＳＴ９）。本リストに存在する場合は、自己ループを持ったＦＦでもリセット無しＦＦに置き換える（ステップＳＴ１０）。ステップＳＴ１１以降の動作は、実施の形態１と同様である。
【００３１】
尚、上記の実施の形態２では、単に任意のＦＦをリセット無しＦＦに指定しているだけであるが、１ｓｔＦＦに限っては、ステップＳＴ２１において、そのＦＦの指定ではなく、その接続元の入力ポートを指定することで、その入力ポートに関してはステップＳＴ２２における１ｓｔＦＦの検出作業を省略することも出来る。即ち、入力ポートを指定することによって１ｓｔＦＦがどのＦＦであるかは明らかであるからである。
【００３２】
以上のように実施の形態２によれば、入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段２と、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段３と、これら先頭ＦＦ検出手段２および自己ループＦＦ検出手段３で検出されたフリップフロップのうち、予め設定したリセット端子無しフリップフロップに該当するか否かを判定し、該当したフリップフロップかつ、これら先頭ＦＦ検出手段２および自己ループＦＦ検出手段３で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段４とを備えたので次のような効果がある。
【００３３】
例えば、リセット解除後に不定値にならないことが分かっている入力ポートや自己ループが複数重なり合っている場合等に、実施の形態１よりも更にゲート数削減、レイアウト性向上を達成することができる。
【００３４】
また、実施の形態２によれば、コンピュータを、入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段２と、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段３と、これら先頭ＦＦ検出手段２および自己ループＦＦ検出手段３で検出されたフリップフロップのうち、予め設定したリセット端子無しフリップフロップに該当するか否かを判定し、該当したフリップフロップかつ、これら先頭ＦＦ検出手段２および自己ループＦＦ検出手段３で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段４として機能させるためのプログラムを備えたので次のような効果がある。
【００３５】
例えば、リセット解除後に不定値にならないことが分かっている入力ポートや自己ループが複数重なり合っている場合等に、実施の形態１よりも更にゲート数削減、レイアウト性向上を達成することができる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【００３６】
実施の形態３．
実施の形態３は、任意のフリップフロップをリセット端子付きフリップフロップに指定する構成を付加したものである。
【００３７】
実施の形態３における図面上の構成は、図１に示した実施の形態１と同様であるため、図１を援用して説明する。
実施の形態３では、リセット必要ＦＦリスト５に対して、ユーザが予めリセット端子付きＦＦとしたいフリップフロップを登録しておき、置き換えＦＦ判定手段４は、このリセット必要ＦＦリスト５を参照して置き換えＦＦを判定するよう構成されている。その他の構成は実施の形態１と同様である。
【００３８】
次に、実施の形態３の動作について説明する。
図５は、実施の形態３の動作を示すフローチャートである。
先ず、任意のＦＦをリセット付きＦＦに指定するため、リセット必要ＦＦリスト５に記載する（ステップＳＴ３１）。次に、実施の形態１と同様に１ｓｔＦＦを検出する（ステップＳＴ１）。次に、置き換えＦＦ判定手段４は、その次のＦＦがリセット必要ＦＦリスト５に記憶されたＦＦかどうかをチェックする（ステップＳＴ３２）。本リストにない場合は、これ以降、実施の形態１と同様に行う。本リストにある場合は、そのＦＦが他の１ｓｔＦＦか？（ステップＳＴ２）、自己ループか？（ステップＳＴ３）というチェックを行わずに次に接続されているＦＦの調査（ステップＳＴ６）に移行する。
【００３９】
以上のように、実施の形態３によれば、入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段２と、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段３と、予め設定したリセット端子付きフリップフロップに該当するかを判定し、該当しないフリップフロップで、かつ、これら先頭ＦＦ検出手段２および自己ループＦＦ検出手段３で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段４とを備えたので、例えば、初期値設定をしたいレジスタ（ＦＦ）等があった場合でも、容易に不要なリセット端子付きＦＦをリセット端子無しＦＦに置き換えることができる。
【００４０】
また、実施の形態３によれば、コンピュータを、入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段２と、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段３と、予め設定したリセット端子無しフリップフロップに該当するか否かを判定し、該当しないフリップフロップで、かつ、これら先頭ＦＦ検出手段２および自己ループＦＦ検出手段３で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段４として機能させるためのプログラムを備えたので、例えば、初期値設定をしたいレジスタ（ＦＦ）等があった場合でも、容易に不要なリセット端子付きＦＦをリセット端子無しＦＦに置き換えることができる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【００４１】
実施の形態４．
実施の形態４は、対象回路が階層構造になっている場合に、リセット端子付きＦＦをリセット端子無しＦＦに置き換えるフリップフロップを検出するようにしたものである。
【００４２】
図６は、実施の形態４の半導体集積回路設計支援システムの構成図である。
図において、対象回路２００は、対象ブロックを全て含む最上位階層２００ａと、その下に存在する内部階層２００ｂの階層構造になっている。最上位階層２００ａにおいて、入力ポート１０１，１０２、出力ポート１０３、フリップフロップ１，５（ＦＦ１，ＦＦ５）１０４，１０８および組み合わせ回路１，６（Ｃ１，Ｃ６）１０９，１１４は、実施の形態１と同様である。また、内部階層２００ｂは、ＦＦ１（１０４）の出力に接続された内部入力ポート１２０と、入力ポート１０２に接続された内部入力ポート１２１と、Ｃ５（１１３）の出力に接続された内部出力ポート１２２が設けられている。内部入力ポート１２１には、Ｃ２（１１０）→ＦＦ４２（１０５ａ）→Ｃ３（１１１）→ＦＦ３（１０６）→Ｃ４（１１２）→ＦＦ４（１０７）→Ｃ５（１１３）→内部出力ポート１２２が順番に接続されている。また、内部出力ポート１２２は、Ｃ３（１１１）の入力側に接続されている。
【００４３】
また、置き換えＦＦ検出手段１ｂは、先頭ＦＦ検出手段２ａ、自己ループＦＦ検出手段３、置き換えＦＦ判定手段４を備えている。ここで、先頭ＦＦ検出手段２ａは、最上位の階層における入力ポートから接続されている最初のフリップフロップを検出すると共に、任意の下位階層ブロックの入力ポートから接続されている最初のフリップフロップを検出する機能を有するものである。また、自己ループＦＦ検出手段３およびリセット必要ＦＦリスト５を含む置き換えＦＦ判定手段４の構成は、実施の形態１と同様である。
【００４４】
次に、実施の形態４の動作について説明する。
図７は、実施の形態４の動作を示すフローチャートである。
先ず、先頭ＦＦ検出手段２ａによって、１ｓｔＦＦを検出し、リセット必要ＦＦリスト５に記憶する（ステップＳＴ１）のは、実施の形態１と同様である。次に、置き換えＦＦ判定手段４は、その次に接続されているＦＦが下位の内部階層（図６の内部階層２００ｂが相当）の中にあるかどうかをチェックする（ステップＳＴ４１）。もしそのＦＦが内部階層の中に無い場合は、以降の動作は実施の形態１と全く同様である。しかし、そのＦＦが内部階層の中にある場合（図中のＦＦ４２（１０５ａ）が相当）は、リセット付きＦＦが必要ということで、先頭ＦＦ検出手段２は、このＦＦをリセット必要ＦＦリスト５に記憶し（ステップＳＴ４）、次に接続されているＦＦの調査に移行する。ステップＳＴ６以降のＦＦについてもステップＳＴ４１と同様の調査を行い（ステップＳＴ４２）、内部階層の中にある場合は、そのＦＦをリセット必要ＦＦリスト５に記憶する（ステップＳＴ９）。
【００４５】
また、ステップＳＴ１１以降は、全てのＦＦについてステップＳＴ４２〜ステップＳＴ１１の処理を繰り返し、全てのＦＦについて調査が終了した場合に、検出動作を完了する（ステップＳＴ１３）。尚、階層構造が予め分かっており、その階層に相当する数だけステップＳＴ４１，ＳＴ４２の判定処理が行われた場合は、ステップＳＴ１２において、ステップＳＴ７〜ステップＳＴ１１の処理を行うようにしてもよい。例えば、図６の対象回路２００の場合であれば、ステップＳＴ１２では、ステップＳＴ７以降の処理であればよい。
【００４６】
以上のように、実施の形態４によれば、リセット端子付きフリップフロップを含む回路は、階層構造となっており、かつ、最上位の階層における入力ポートから接続されている最初のフリップフロップを検出すると共に、任意の下位階層ブロックの入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段２ａと、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段３と、これら先頭ＦＦ検出手段２ａおよび自己ループＦＦ検出手段３で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段４とを備えたので、次のような効果がある。
【００４７】
即ち、階層構造を有する対象回路において、仮に何らかのミスで不定値伝播が生じたとしても、その伝播は下位階層ブロック内で閉じているので、不具合箇所の発見を容易に行うことができる。
【００４８】
また、実施の形態４によれば、コンピュータを、階層構造を有するリセット端子付きフリップフロップを含む回路に対して、最上位の階層における入力ポートから接続されている最初のフリップフロップを検出すると共に、任意の下位階層ブロックの入力ポートから接続されている最初のフリップフロップを検出する先頭ＦＦ検出手段２ａと、前記の回路に対して、接続先が自分に戻っている状態にあるフリップフロップを検出する自己ループＦＦ検出手段３と、これら先頭ＦＦ検出手段２ａおよび自己ループＦＦ検出手段３で検出された以外のフリップフロップをリセット端子無しフリップフロップへの置き換え対象と判定する置き換えＦＦ判定手段４として機能させるためのプログラムを備えたので、仮に何らかのミスで不定値伝播が生じたとしても、その伝播は下位階層ブロック内で閉じているので、不具合箇所の発見を容易に行うことができるような半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【００４９】
尚、上記実施の形態４では、置き換えＦＦ検出手段１ｂとして実施の形態１の置き換えＦＦ検出手段１と同等の機能を有するよう構成したが、実施の形態２や実施の形態３の構成を適用してもよい。
【００５０】
また、各実施の形態において、対象回路１００，２００のＦＦは全てリセット付きＦＦであることが前提で説明したが、ある程度リセット無しＦＦに変更済みの対象回路においても、同様にチェックして不定値が発生しないかどうか確認する、という使い方も可能である。
【図面の簡単な説明】
【００５１】
【図１】この発明の実施の形態１による半導体集積回路設計支援システムを示す構成図である。
【図２】この発明の実施の形態１の動作を示すフローチャートである。
【図３】この発明の実施の形態２における置き換えＦＦ検出手段の構成図である。
【図４】この発明の実施の形態２の動作を示すフローチャートである。
【図５】この発明の実施の形態３の動作を示すフローチャートである。
【図６】この発明の実施の形態４による半導体集積回路設計支援システムを示す構成図である。
【図７】この発明の実施の形態４の動作を示すフローチャートである。
【符号の説明】
【００５２】
１，１ａ，１ｂ  置き換えＦＦ検出手段、２，２ａ  先頭ＦＦ検出手段、３  自己ループＦＦ検出手段、４  置き換えＦＦ判定手段、５  リセット必要ＦＦリスト、６  リセット無しＦＦリスト、１００，２００  対象回路、１０１，１０２  入力ポート、１２０，１２１  内部入力ポート、１０４〜１１４，１０５ａ  フリップフロップ（ＦＦ１〜ＦＦ５，ＦＦ４２）、２００ａ  最上位階層、２００ｂ  内部階層。
【図１】
2005293493.tif 000003
【図２】
2005293493.tif 000004
【図３】
2005293493.tif 000005
【図４】
2005293493.tif 000006
【図５】
2005293493.tif 000007
【図６】
2005293493.tif 000008
【図７】
2005293493.tif 000009