(57)【要約】【課題】  予め決められたリセット期間を与えられた設計回路の不定値伝播の生じる箇所を自動的に抽出することができる半導体集積回路設計支援システムを提供する。【解決手段】  対象回路１００内の構成要素の接続先を順々に辿ってリセット付きＦＦを介さずに連続して接続するリセット無しＦＦの段数がリセット期間に相当するクロック段数を超える場合、その超えたリセット無しＦＦを不定値伝播の原因として検出する不定値発生ＦＦ検出手段１を備える。【選択図】        図１
2006344150.tif 000002
【特許請求の範囲】
【請求項１】
設計対象回路内の構成要素の接続先を順々に辿ってリセット信号又はセット信号の入力端子を設けたフリップフロップを介さずに連続して接続するリセット信号又はセット信号の入力端子を有さないフリップフロップの段数とリセット期間に相当するクロック段数との関係から、不定値伝播の原因となるリセット信号又はセット信号の入力端子を有さないフリップフロップを検出する不定値発生ＦＦ検出手段を備えた半導体集積回路設計支援システム。
【請求項２】
不定値発生ＦＦ検出手段は、設計対象回路内の構成要素を検出するリセット無しＦＦ検出手段と、前記リセット無しＦＦ検出手段が前記回路内の構成要素の接続先を順々に辿って検出した結果に基づいて、リセット信号又はセット信号の入力端子を設けたフリップフロップを介さずに連続して接続するリセット信号又はセット信号の入力端子を有さないフリップフロップの段数がリセット期間に相当するクロック段数を超える場合、前記クロック段数を超えたリセット信号又はセット信号の入力端子を有さないフリップフロップを不定値伝播の原因として検出するリセット期間カウント手段とを備えたことを特徴とする請求項１記載の半導体集積回路設計支援システム。
【請求項３】
設計対象回路内の構成要素を検出するリセット無しＦＦ検出手段と、
前記リセット無しＦＦ検出手段が検出したリセット信号又はセット信号の入力端子を有さないフリップフロップの接続段数をカウントするＦＦ段数カウント手段と、
前記ＦＦ段数カウント手段がカウントした接続段数の最大値を記憶する最長ＦＦ段数記憶手段と、
前記最長ＦＦ段数記憶手段に記憶された最も連続した前記リセット信号又はセット信号の入力端子を有さないフリップフロップの接続段数である最大値を不定値伝播が生じない最低限のリセット期間長として検出するリセット許容期間検出手段とを備えた半導体集積回路設計支援システム。
【請求項４】
設計対象回路内の構成要素を検出するリセット無しＦＦ検出手段と、
前記リセット無しＦＦ検出手段が検出したリセット信号又はセット信号の入力端子を有さないフリップフロップの接続段数をカウントするＦＦ段数カウント手段と、
前記ＦＦ段数カウント手段がカウントした接続段数及びその値毎に対応する前記回路内の該当箇所数を記憶するＦＦ段数該当個数記憶手段と、
前記ＦＦ段数該当個数記憶手段に記憶された前記接続段数を前記該当箇所毎の不定値伝播が生じない最低限のリセット期間長としてその該当箇所数と共に検出するリセット許容期間検出手段とを備えた半導体集積回路設計支援システム。
【請求項５】
不定値伝播の原因として検出されたリセット信号又はセット信号の入力端子を有さないフリップフロップをリセット信号又はセット信号の入力端子を設けたフリップフロップに置き換える不定値発生ＦＦ置き換え手段を備えた請求項１又は請求項２記載の半導体集積回路設計支援システム。
【請求項６】
設計対象回路内の構成要素の接続先を順々に辿ってリセット信号又はセット信号の入力端子を設けたフリップフロップを介さずに連続して接続するリセット信号又はセット信号の入力端子を有さないフリップフロップの段数とリセット期間に相当するクロック段数との関係から、不定値伝播の原因となるリセット信号又はセット信号の入力端子を有さないフリップフロップを検出する不定値発生ＦＦ検出手段としてコンピュータを機能させるプログラム。
【請求項７】
不定値発生ＦＦ検出手段は、設計対象回路内の構成要素を検出するリセット無しＦＦ検出手段と、前記リセット無しＦＦ検出手段が前記回路内の構成要素の接続先を順々に辿って検出した結果に基づいて、リセット信号又はセット信号の入力端子を設けたフリップフロップを介さずに連続して接続するリセット信号又はセット信号の入力端子を有さないフリップフロップの段数がリセット期間に相当するクロック段数を超える場合、前記クロック段数を超えたリセット信号又はセット信号の入力端子を有さないフリップフロップを不定値伝播の原因として検出するリセット期間カウント手段とを備えたことを特徴とする請求項６記載のプログラム。
【請求項８】
設計対象回路内の構成要素を検出するリセット無しＦＦ検出手段、前記リセット無しＦＦ検出手段が検出したリセット信号又はセット信号の入力端子を有さないフリップフロップの接続段数をカウントするＦＦ段数カウント手段、前記ＦＦ段数カウント手段がカウントした接続段数の最大値を記憶する最長ＦＦ段数記憶手段、前記最長ＦＦ段数記憶手段に記憶された最も連続した前記リセット信号又はセット信号の入力端子を有さないフリップフロップの接続段数である最大値を不定値伝播が生じない最低限のリセット期間長として検出するリセット許容期間検出手段としてコンピュータを機能させるプログラム。
【請求項９】
設計対象回路内の構成要素を検出するリセット無しＦＦ検出手段、前記リセット無しＦＦ検出手段が検出したリセット信号又はセット信号の入力端子を有さないフリップフロップの接続段数をカウントするＦＦ段数カウント手段、前記ＦＦ段数カウント手段がカウントした接続段数及びその値毎に対応する前記回路内の該当箇所数を記憶するＦＦ段数該当個数記憶手段、前記ＦＦ段数該当個数記憶手段に記憶された前記接続段数を前記該当箇所毎の不定値伝播が生じない最低限のリセット期間長としてその該当箇所数と共に検出するリセット許容期間検出手段としてコンピュータを機能させるプログラム。
【請求項１０】
不定値伝播の原因として検出されたリセット信号又はセット信号の入力端子を有さないフリップフロップをリセット信号又はセット信号の入力端子を設けたフリップフロップに置き換える不定値発生ＦＦ置き換え手段としてコンピュータを機能させる請求項６又は請求項７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路を不具合なく設計するための半導体集積回路設計支援システム及びこの機能をコンピュータに実行させるプログラムに関するものである。
【背景技術】
【０００２】
従来、半導体集積回路設計において、ＬＳＩのゲート数削減やレイアウト性向上のためリセット又はセット端子付きフリップフロップ（以降、リセット付きＦＦと呼ぶ）をリセット又はセット端子無しフリップフロップ（以降、リセット無しＦＦと呼ぶ）に置き換えることがある。例えば、特許文献１では、問題の生じない箇所をリセット無しＦＦに置き換えることが記載されている。
【０００３】
しかしながら、特許文献１に代表される従来の半導体集積回路設計では、リセット期間の長さが考慮されていない。このため、リセット期間が短すぎる場合、ゲートレベルシミュレーション実行時の初期リセット解除後にリセット無しＦＦで不定値がなくならず伝播することがある。このような場合、ＲＴＬ（Register Transfer Level）シミュレーションとの結果が不一致となり解析が非常に困難となってしまう。このような不具合に対し、従来では、対象回路に精通した設計者が、不定値発生箇所を検索し、その箇所のリセット無しＦＦをリセット付きＦＦに手作業で置き換える等の処理で対応していた。
【０００４】
【特許文献１】特開平１０−９７５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の半導体集積回路設計では、対象回路に精通した設計者が全てのＦＦについて不定値が伝播しないように考えながらリセット付きＦＦへの置き換えを行う必要があったため、その対象回路に精通した者でなければ作業が困難であった。しかも、この作業は、対象回路に精通した設計者であっても、かなりの時間を要するものであった。また、手作業のため間違えた置き換えを行ってしまう場合もあり、このような場合にはその解析にさらに時間を費やしてしまう、といった問題もあった。
【０００６】
また、設計の初期段階から行う場合は比較的余分な時間を費やさずに設計者が対応できる場合もある。しかしながら、既にある程度完成した回路ブロックを使用する場合、例えば他部門や他社、特にＬＳＩ設計について慣れていない設計部門の回路ブロックを受け入れる場合や、過去の開発で使用した回路ブロックの流用を行う場合等では、設計当事者であれ受け入れ部門であれ、上述のような修正作業は非常に困難であった。
【０００７】
この発明は、上記のような課題を解決するためになされたもので、設計回路の初期リセット解除後に不定値伝播の生じる箇所を自動的に抽出することができる半導体集積回路設計支援システム及びこの機能をコンピュータに実行させるプログラムを得ることを目的とする。
【０００８】
また、この発明は、不定値伝播が生じないリセット期間長を自動的に検出することができる半導体集積回路設計支援システム及びこの機能をコンピュータに実行させるプログラムを得ることを目的とする。
【０００９】
さらに、この発明は、不定値伝播の生じる箇所を自動的に修正することができる半導体集積回路設計支援システム及びこの機能をコンピュータに実行させるプログラムを得ることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係る半導体集積回路設計支援システムは、設計対象回路内の構成要素の接続先を順々に辿ってリセット信号又はセット信号の入力端子を設けたフリップフロップを介さずに連続して接続するリセット信号又はセット信号の入力端子を有さないフリップフロップの段数とリセット期間に相当するクロック段数との関係から、不定値伝播の原因となるリセット信号又はセット信号の入力端子を有さないフリップフロップを検出する不定値発生ＦＦ検出手段を備えるものである。
【発明の効果】
【００１１】
この発明によれば、設計対象回路内の構成要素の接続先を順々に辿ってリセット信号又はセット信号の入力端子を設けたフリップフロップを介さずに連続して接続するリセット信号又はセット信号の入力端子を有さないフリップフロップの段数とリセット期間に相当するクロック段数との関係から、不定値伝播の原因となるリセット信号又はセット信号の入力端子を有さないフリップフロップを検出する不定値発生ＦＦ検出手段を備えるので、設計対象回路に精通した設計者でなくとも不具合箇所を容易に見つけ出すことができるという効果がある。
【発明を実施するための最良の形態】
【００１２】
実施の形態１．
図１は、この発明の実施の形態１による半導体集積回路設計支援システムの構成及び設計支援対象の回路構成を示す図である。対象回路１００は、本実施の形態１による半導体集積回路設計支援システムが設計支援する対象の半導体集積回路を示しており、入力ポート１０１，１０２、出力ポート１０３、フリップフロップ（図中、ＦＦと記載する）１〜９、組み合わせ回路１〜１０（図中、Ｃ１〜Ｃ１０と記載する）を備えている。なお、以降、フリップフロップ１〜９はＦＦ１〜９、組み合わせ回路１〜１０はＣ１〜Ｃ１０と呼ぶ。
【００１３】
入力ポート１０１，１０２は、対象回路１００の外部からの信号入力ポートであり、出力ポート１０３は、この対象回路１００の外部への信号出力ポートである。ＦＦ１〜ＦＦ９のうち、ＦＦ１、ＦＦ５、ＦＦ７はリセット又はセット端子付きフリップフロップであり、それ以外はリセット又はセット端子無しフリップフロップである。また、Ｃ１〜Ｃ１０は、ＦＦやラッチを包含しない組み合わせ回路である。
【００１４】
ここで、リセット又はセット端子無しフリップフロップとは、外部からのリセット信号を入力する入力端子又は外部からのセット信号を入力する入力端子が設けられていないフリップフロップである。また、リセット又はセット端子付きフリップフロップとは、外部からのリセット信号を入力する入力端子又は外部からのセット信号を入力する入力端子が設けられているフリップフロップであり、外部からのリセット信号又はセット信号によりリセット又はセット状態に設定される。以降の説明では、リセット又はセット端子無しフリップフロップをリセット無しＦＦと略称し、リセット又はセット端子付きフリップフロップをリセット付きＦＦと略称する。
【００１５】
Ｃ１は入力ポート１０１に接続され、以下、ＦＦ１、Ｃ２、ＦＦ２、Ｃ３、ＦＦ３、Ｃ４、ＦＦ４、Ｃ５、ＦＦ５、Ｃ６、ＦＦ６、Ｃ７、ＦＦ７、Ｃ８、ＦＦ８、Ｃ９、ＦＦ９、Ｃ１０と順番に接続され、Ｃ１０の出力が出力ポート１０３に接続されている。また、入力ポート１０２は、Ｃ５に接続されている。さらに、ＦＦ７の出力はＣ７の入力側に接続され、ＦＦ７は自己ループの回路を構成している。
【００１６】
本実施の形態１による半導体集積回路設計支援システムを構成する不定値発生ＦＦ検出手段１は、対象回路１００に対して不定値伝播を生じる原因となるリセット無しＦＦを特定する機能を有するもので、リセット期間段数カウント手段２及びリセット無しＦＦ検出手段３を備えている。リセット期間段数カウント手段２は、リセット期間のクロック数まで連続したリセット無しＦＦの段数をカウントする機能を有している。リセット無しＦＦ検出手段３は、対象回路１００において、リセット無しＦＦと入力ポートを検出する機能を有している。
【００１７】
不定値発生ＦＦ検出手段１では、リセット無しＦＦ検出手段３により対象回路１００の構成要素の接続先を順々に辿ってリセット無しＦＦの連続段数を検出し、リセット期間段数カウント手段２が、その段数をリセット期間段数までカウントし、さらにリセット無しＦＦが連続して接続されていた場合、そのリセット無しＦＦを不定値伝播が生じる原因となるリセット無しＦＦとして特定する。
【００１８】
上述した、不定値発生ＦＦ検出手段１、リセット期間段数カウント手段２及びリセット無しＦＦ検出手段３は、本発明に従う半導体集積回路設計支援プログラムをコンピュータに読み込ませてその動作を制御することにより、ＣＰＵやメモリ等のハードウェアと協働した具体的手段として、当該コンピュータ上に実現することができる。また、対象回路１００の構成要素間の接続関係に関する情報は、例えば上記コンピュータに装備された記憶装置に格納され、上記手段に適宜読み出されて利用される。
【００１９】
なお、以下の説明において、本発明の半導体集積回路設計支援システムを具現化するコンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００２０】
次に動作について説明する。
図２は、実施の形態１による半導体集積回路設計支援システムの動作を示すフローチャートである。
先ず、不定値発生ＦＦ検出手段１内のリセット無しＦＦ検出手段３は、全てのリセット無しＦＦ若しくは入力ポートのいずれかを検出する（ステップＳＴ１）。図１の例では、リセット無しＦＦ検出手段３が、ネットリストやハードウェア記述言語などで記述された対象回路１００の構成要素及びその接続関係に関する情報を入力して、リセット無しＦＦであるＦＦ２、ＦＦ３、ＦＦ４、ＦＦ６、ＦＦ８、ＦＦ９、入力ポート１０１、１０２を検出する。
【００２１】
ここで、リセット無しＦＦ検出手段３によりＦＦ２が検出された場合を例に説明する。この場合、リセット無しＦＦ検出手段３は、ＦＦ２出力の接続先を順々に追いかけて、その途中にあるリセット無しＦＦ（ＦＦ３、ＦＦ４が相当）を検出してリセット期間段数カウント手段２に通知する。このとき、リセット期間段数カウント手段２は、リセット無しＦＦ検出手段３がリセット無しＦＦを検出する度にその個数をカウントする。ここまでの処理がステップＳＴ２に相当する。
【００２２】
また、リセット期間段数カウント手段２は、対象回路１００に設定されたリセット期間に相当するクロック数までカウントし、当該リセット期間段数に到達するまでにリセット無しＦＦ検出手段３がリセット付きＦＦ若しくは出力ポートを検出したか否かを判定する（ステップＳＴ３）。このとき、リセット無しＦＦ検出手段３がリセット付きＦＦ若しくは出力ポートを検出した場合、ステップＳＴ６の処理に進んで次のパスの解析を実行する。
【００２３】
ステップＳＴ３において、リセット期間段数内でリセット付きＦＦ若しくは出力ポートが検出されなければ、ステップＳＴ４の処理に移行する。ステップＳＴ４では、リセット期間段数カウント手段２が、リセット期間段数に到達したか否かを判定する。このとき、リセット期間段数に到達していなければ、ステップＳＴ２の処理に戻って、ステップＳＴ２からステップＳＴ４までの処理を繰り返し実行する。また、リセット期間段数に到達していれば、ステップＳＴ５の処理に移行する。
【００２４】
仮に、対象回路１００に与えられるリセット期間が３クロック以上であると仮定すると、リセット期間段数カウント手段２が、ＦＦ２から“３”を数える前に、リセット無しＦＦ検出手段３によってリセット付きＦＦであるＦＦ５が検出される。リセット期間段数カウント手段２は、この時点で当該パスでは不定値伝播が起こらないと判定し、このパスの解析を完了してステップＳＴ６に進む。また、対象回路１００に与えられるリセット期間が３クロック未満であれば、ステップＳＴ４の処理に進む。
【００２５】
例えば、対象回路１００に与えられたリセット期間が２クロックであった場合、リセット期間段数カウント手段２が、“２”を数えた時点でステップＳＴ５に進む。ステップＳＴ５において、リセット期間段数カウント手段２は、リセット無しＦＦ検出手段３によりＦＦ２が検出されてから、段数“２”を数えた箇所のリセット無しＦＦであるＦＦ４を、不定値伝播が発生する原因として特定し、検出結果として出力する。
【００２６】
このようにして、このパスについては不定値伝播の原因となるリセット無しＦＦの検出が完了する。続いて、ステップＳＴ６に進み、対象回路１００における該当する全パスについて、上述と同様にしてステップＳＴ１からステップＳＴ５までの処理を繰り返し実施する。ここまでの動作により、対象回路１００の全てのパスについて不定値伝播の原因となるリセット無しＦＦの検出が行われ、処理が完了する（ステップＳＴ７）。
【００２７】
なお、上述した説明では、非同期のリセット信号の入力端子を持ったＦＦについて述べたが、同期のリセット信号の入力端子を持ったＦＦの場合では、予めリセット期間に１クロック足して実行する必要がある。
【００２８】
また、上述した例では、ステップＳＴ６により全てのリセット無しＦＦについて実施する場合を示したが、一度検索されたリセット無しＦＦについては当該装置を実現するコンピュータの記憶装置に記憶しておき、重複した検査の実施を省略することにより、実行時間の短縮を行う構成にしてもよい。
【００２９】
以上のように、この実施の形態１によれば、リセット無しＦＦを含む対象回路１００に対して、その回路におけるリセット無しＦＦの接続関係に基づき、不定値伝播が生じる原因のリセット無しＦＦを検出する不定値発生ＦＦ検出手段１を備えたので、例えば半導体集積回路のネットリストやハードウェア記述言語で出力する場合でも、設計者の手を煩わすことなく迅速に、不定値伝播が発生する原因となるリセット無しＦＦを検出することができる。
【００３０】
また、この実施の形態１によれば、不定値発生ＦＦ検出手段１が、全てのリセット無しＦＦ、若しくは入力ポートを検出するリセット無しＦＦ検出手段３と、前記リセット無しＦＦ検出手段３で検出された箇所以降の接続先を順々に追いかけ、次のリセット付きＦＦ若しくは対象回路の出力ポートに到達するまでに、決められたリセット期間に相当するクロック数を超える段数に接続されたリセット無しＦＦを、不具合を与える原因と特定するリセット期間段数カウント手段２とを備えるので、容易に、かつ、確実に不定値伝播が発生する原因となるリセット無しＦＦを検出することができる。
【００３１】
さらに、この実施の形態１によれば、不定値発生ＦＦ検出手段１としてコンピュータを機能させるプログラムにより、設計者の手を煩わすことなく迅速に、不定値伝播が発生する原因となるリセット無しＦＦを検出することができる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【００３２】
さらに、この実施の形態１によれば、リセット無しＦＦ検出手段３及びリセット期間段数カウント手段２としてコンピュータを機能させるプログラムにより、容易に、かつ、確実に不定値伝播が発生する原因となるリセット無しＦＦを検出することができる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【００３３】
実施の形態２．
この実施の形態２は、不定値伝播が生じない最低限のリセット期間であるリセット許容期間を検出するものである。
【００３４】
図３は、この発明の実施の形態２による半導体集積回路設計支援システムの構成及び設計支援対象の回路構成を示す図である。対象回路１００は、上記実施の形態１と同一の構成であり、重複説明を省略する。本実施の形態２による半導体集積回路設計支援システムを構成するリセット許容期間検出手段４は、対象回路１００における不定値伝播を生じないリセット期間を検出する機能を有するもので、ＦＦ段数カウント手段５、リセット無しＦＦ検出手段３、及び最長ＦＦ段数記憶手段６を備えている。
【００３５】
ＦＦ段数カウント手段５は、リセット無しＦＦの接続段数をリセット付きＦＦ若しくは出力ポートに到達するまでカウントする機能を有している。リセット無しＦＦ検出手段３は、対象回路１００におけるリセット無しＦＦ及び入力ポートを検出する機能を有している。最長ＦＦ段数記憶手段６は、ＦＦ段数カウント手段５がカウントした値を保持し、最大値（最長の値）に書き換えていく機能を有している。例えば、本実施の形態２による半導体集積回路設計支援システムを具現化するコンピュータに搭載されたメモリやレジスタを用いて最長のＦＦ段数を格納する構成が考えられる。
【００３６】
リセット許容期間検出手段４では、リセット無しＦＦ検出手段３によって対象回路１００の構成要素を接続順に辿って全てのパスのリセット無しＦＦの段数が検出され、ＦＦ段数カウント手段５によって最長ＦＦ段数記憶手段６に記憶された最も連続したリセット無しＦＦの段数である最大値を、不定値伝播が生じない最低限のリセット期間長として検出する。
【００３７】
上述した、リセット無しＦＦ検出手段３、リセット許容期間検出手段４、ＦＦ段数カウント手段５、及び最長ＦＦ段数記憶手段６は、本発明に従う半導体集積回路設計支援プログラムをコンピュータに読み込ませてその動作を制御することにより、ＣＰＵやメモリ等のハードウェアと協働した具体的手段として、当該コンピュータ上に実現することができる。また、対象回路１００の構成要素間の接続関係に関する情報は、例えば上記コンピュータに装備された記憶装置に格納され、上記手段に適宜読み出されて利用される。
【００３８】
なお、以下の説明において、本発明の半導体集積回路設計支援システムを具現化するコンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００３９】
次に動作について説明する。
図４は、実施の形態２による半導体集積回路設計支援システムの動作を示すフローチャートであり、上記実施の形態１と同様の処理には同一のステップ番号を付与している。
先ず、リセット無しＦＦ検出手段３は、上記実施の形態１と同様にして、全てのリセット無しＦＦ、若しくは入力ポートのいずれかを検出する（ステップＳＴ１）。図３の例では、リセット無しＦＦ検出手段３が、ネットリストやハードウェア記述言語などで記述された対象回路１００の構成要素及びその接続関係に関する情報を入力して、リセット無しＦＦであるＦＦ２、ＦＦ３、ＦＦ４、ＦＦ６、ＦＦ８、ＦＦ９、入力ポート１０１、１０２を検出する。
【００４０】
ここで、リセット無しＦＦ検出手段３によりＦＦ２が検出された場合を例に説明する。この場合、リセット無しＦＦ検出手段３は、ＦＦ２出力の接続先を順々に追いかけて、その途中にあるリセット無しＦＦ（ＦＦ３、ＦＦ４が相当）を検出する。このとき、ＦＦ段数カウント手段５は、リセット無しＦＦ検出手段３がリセット無しＦＦを検出する度にその個数をカウントする。ここまでの処理がステップＳＴ２に相当する。
【００４１】
また、ＦＦ段数カウント手段５は、リセット無しＦＦ検出手段３がリセット付きＦＦ若しくは出力ポートを検出したか否かを判定する（ステップＳＴ２１）。このとき、リセット無しＦＦ検出手段３によりリセット付きＦＦ若しくは出力ポートが検出されない場合、ステップＳＴ２の処理に戻り、ＦＦ段数カウント手段５が、リセット無しＦＦ検出手段３により検出されたリセット無しＦＦのカウントを続ける。
【００４２】
一方、リセット無しＦＦ検出手段３によりリセット付きＦＦ若しくは出力ポートが検出されると、ＦＦ段数カウント手段５は、リセット付きＦＦ若しくは出力ポートに到達したときのカウント値を最長ＦＦ段数記憶手段６に記憶する（ステップＳＴ２２）。図３の例では、ＦＦ２が検出された後にリセット付きＦＦとしてＦＦ５が検出され、それまでに、リセット無しＦＦ検出手段３により検出されたＦＦ２、ＦＦ３、ＦＦ４が、ＦＦ段数カウント手段５によってリセット無しＦＦとして順次カウントされてカウント値“３”が最長ＦＦ段数記憶手段６に記憶される。
【００４３】
続いて、ステップＳＴ２３に進み、対象回路１００における該当する全パスについて、上述と同様にしてステップＳＴ１、ステップＳＴ２、ステップＳＴ２１及びステップＳＴ２２までの処理を繰り返し実施する。
【００４４】
なお、２回目のパス以降の実施では、ステップＳＴ２２でカウント値を単に最長ＦＦ段数記憶手段６に記憶するのではなく、最長ＦＦ段数記憶手段６に記憶されている値よりもカウント値が大きい場合のみ最長ＦＦ段数記憶手段６に記憶する（書き換える）。図３の例では、次のパスにあるＦＦ６がリセット無しＦＦとして検出されてから、他のリセット無しＦＦが検出されることなく、リセット付きＦＦであるＦＦ７が検出される。これにより、ＦＦ段数カウント手段５によるカウント値は“１”であり、前パスでのカウント値“３”を超えないので、最長ＦＦ段数記憶手段６には記憶されない。同様にして、この次のパスでは、ＦＦ段数カウント手段５によるカウント値が“２”となるので、このカウント値は最長ＦＦ段数記憶手段６に記憶されない。
【００４５】
全てのパスについて実施完了すると、最長ＦＦ段数記憶手段６に記憶されている最終値は、最大値（最長のパス段数）になっている。このとき、リセット許容期間検出手段４は、最長ＦＦ段数記憶手段６に記憶されている最大値を不定値伝播が生じない最低限のリセット期間長として、本実施の形態２によるシステムを具現化するコンピュータの表示装置に表示する（ステップＳＴ２４）。図３の例では、最長ＦＦ段数記憶手段６には、最大値としてカウント値“３”が記憶されている。これにより、リセット許容期間検出手段４は、対象回路１００において不定値伝播が生じない最低限のリセット期間長が３クロックであるとして表示装置に表示して処理を完了する（ステップＳＴ７）。
【００４６】
なお、上述した説明では、非同期のリセット信号の入力端子を持ったＦＦについて述べたが、同期のリセット信号の入力端子を持ったＦＦの場合では、リセット許容期間検出手段４が、最長ＦＦ段数記憶手段６に記憶された最大値に“１”を足して表示装置に表示する。
【００４７】
以上のように、この実施の形態２によれば、全てのリセット無しＦＦ若しくは入力ポート以降の接続先を順々に辿ってリセット無しＦＦを検出するリセット無しＦＦ検出手段３と、次のリセット付きＦＦ若しくは対象回路の出力ポートに到達するまでのリセット無しＦＦ検出手段３が検出したＦＦ段数をカウントするＦＦ段数カウント手段５と、ＦＦ段数カウント手段５がカウントした最大値を記憶する最長ＦＦ段数記憶手段６と備え、リセット許容期間検出手段４が、最長ＦＦ段数記憶手段６に記憶された最も連続したリセット無しＦＦの段数である最大値を不定値伝播が生じない最低限のリセット期間長として検出するので、不定値伝播が生じない最低限のリセット期間長が、設計者でなくても、かつ、シミュレーションを実行しないでも容易に把握することができ、ＩＰとしてシステムにそのまま組み込めるか否か等を迅速に判断することができる。これにより、設計者が、不定値伝播が生じないようにシステムのリセット期間を延ばすこともできる。
【００４８】
また、この実施の形態２によれば、リセット無しＦＦ検出手段３、リセット許容期間検出手段４、ＦＦ段数カウント手段５、最長ＦＦ段数記憶手段６としてコンピュータを機能させるプログラムにより、容易に、且つ確実に不定値伝播が生じない最低限のリセット期間長が把握できる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【００４９】
実施の形態３．
この実施の形態３は、不定値伝播が生じない最低限のリセット期間であるリセット許容期間を検出すると共に、その期間毎の該当箇所の個数を記憶して設計者に提供するものである。
【００５０】
図５は、この発明の実施の形態３による半導体集積回路設計支援システムの構成及び設計支援対象の回路構成を示す図である。対象回路１００は、上記実施の形態１、２と同一の構成であり、重複説明を省略する。本実施の形態３による半導体集積回路設計支援システムを構成するリセット許容期間検出手段４Ａは、上記実施の形態２と基本的な構成は同様であるが、最長ＦＦ段数記憶手段６とは異なる内容を記憶するＦＦ段数該当個数記憶手段７を備えている点で異なっている。
【００５１】
リセット許容期間検出手段４Ａは、対象回路１００における不定値伝播を生じないリセット期間を検出する機能を有するもので、ＦＦ段数カウント手段５、リセット無しＦＦ検出手段３、及びＦＦ段数該当個数記憶手段７を備えている。ＦＦ段数カウント手段５は、リセット無しＦＦの接続段数をリセット付きＦＦ若しくは出力ポートに到達するまでカウントする機能を有している。リセット無しＦＦ検出手段３は、対象回路１００におけるリセット無しＦＦ及び入力ポートを検出する機能を有している。
【００５２】
ＦＦ段数該当個数記憶手段７は、ＦＦ段数カウント手段５がカウントした値を全て保持すると同時に、その値の該当個数も合わせて記憶する機能を有している。例えば、本実施の形態３による半導体集積回路設計支援システムを具現化するコンピュータに搭載されたメモリやレジスタを用いて、ＦＦ段数カウント手段５がカウントしたリセット無しＦＦの段数及びこのＦＦ段数に該当する箇所の個数を格納する構成が考えられる。
【００５３】
リセット許容期間検出手段４Ａは、リセット無しＦＦ検出手段３及びＦＦ段数カウント手段５により、対象回路１００の構成要素を接続順に辿って全てのパスのリセット無しＦＦの段数を検出して、ＦＦ段数該当個数記憶手段７に記憶されたリセット無しＦＦの段数に応じたリセット許容期間及びこのリセット許容期間（ＦＦ段数）に該当する箇所の個数を検出する。
【００５４】
上述した、リセット無しＦＦ検出手段３、リセット許容期間検出手段４Ａ、ＦＦ段数カウント手段５、及びＦＦ段数該当個数記憶手段７は、本発明に従う半導体集積回路設計支援プログラムをコンピュータに読み込ませてその動作を制御することにより、ＣＰＵやメモリ等のハードウェアと協働した具体的手段として、当該コンピュータ上に実現することができる。また、対象回路１００の構成要素間の接続関係に関する情報は、例えば上記コンピュータに装備された記憶装置に格納され、上記手段に適宜読み出されて利用される。
【００５５】
なお、以下の説明において、本発明の半導体集積回路設計支援システムを具現化するコンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００５６】
次に動作について説明する。
図６は、実施の形態３による半導体集積回路設計支援システムの動作を示すフローチャートであり、上記実施の形態２と同様の処理には同一のステップ番号を付与している。
先ず、リセット無しＦＦ検出手段３は、上記実施の形態１と同様にして、全てのリセット無しＦＦ、若しくは入力ポートのいずれかを検出する（ステップＳＴ１）。図５の例では、リセット無しＦＦ検出手段３が、ネットリストやハードウェア記述言語などで記述された対象回路１００の構成要素及びその接続関係に関する情報を入力して、リセット無しＦＦであるＦＦ２、ＦＦ３、ＦＦ４、ＦＦ６、ＦＦ８、ＦＦ９、入力ポート１０１、１０２を検出する。
【００５７】
ここで、リセット無しＦＦ検出手段３によりＦＦ２が検出された場合を例に説明する。この場合、リセット無しＦＦ検出手段３は、ＦＦ２出力の接続先を順々に追いかけて、その途中にあるリセット無しＦＦ（ＦＦ３、ＦＦ４が相当）を検出する。このとき、ＦＦ段数カウント手段５は、リセット無しＦＦ検出手段３がリセット無しＦＦを検出する度にその個数をカウントする。ここまでの処理がステップＳＴ２に相当する。
【００５８】
また、ＦＦ段数カウント手段５は、リセット無しＦＦ検出手段３がリセット付きＦＦ若しくは出力ポートを検出したか否かを判定する（ステップＳＴ２１）。このとき、リセット無しＦＦ検出手段３によりリセット付きＦＦ若しくは出力ポートが検出されない場合、ステップＳＴ２の処理に戻り、ＦＦ段数カウント手段５が、リセット無しＦＦ検出手段３により検出されたリセット無しＦＦのカウントを続ける。
【００５９】
一方、リセット無しＦＦ検出手段３によりリセット付きＦＦ若しくは出力ポートが検出されると、ＦＦ段数カウント手段５は、リセット付きＦＦ若しくは出力ポートに到達したときのカウント値及び当該カウント値の個数をＦＦ段数該当個数記憶手段７に記憶する（ステップＳＴ３１）。図５の例では、ＦＦ２が検出された後にリセット付きＦＦとしてＦＦ５が検出され、それまでに、リセット無しＦＦ検出手段３により検出されたＦＦ２、ＦＦ３、ＦＦ４が、ＦＦ段数カウント手段５によりリセット無しＦＦとして順次カウントされてカウント値“３”と、そのパス長“３”の累計個数（ここでは初期実行のため“１個目”となる）とがＦＦ段数該当個数記憶手段７に記憶される。
【００６０】
このように、ステップＳＴ３１では、上記実施の形態２と異なり、全パスのカウント値と、各々のカウント値毎に累計した該当箇所数とがＦＦ段数該当個数記憶手段７に記憶される。続いて、ステップＳＴ２３に進み、対象回路１００における該当する全パスについて、上述と同様にしてステップＳＴ１、ステップＳＴ２、ステップＳＴ２１及びステップＳＴ３１までの処理を繰り返し実施する。
【００６１】
全てのパスについて実施完了すると、リセット許容期間検出手段４Ａは、ＦＦ段数該当個数記憶手段７に記憶されている各パスのカウント値を当該パスにおける不定値伝播が生じない最低限のリセット期間長とし、これと共に各々のカウント値毎に累計した該当箇所数を一覧として、本実施の形態２によるシステムを具現化するコンピュータの表示装置に表示する（ステップＳＴ３２）。例えば、図５における対象回路１００の場合、“３クロック：１箇所、２クロック：１箇所、１クロック：２箇所”のように表示される。
【００６２】
これにより、リセット許容期間検出手段４Ａは、対象回路１００内の全パスについて、不定値伝播が生じないリセット期間長とその期間長毎の該当箇所数とを表示して処理を完了する（ステップＳＴ７）。
【００６３】
なお、上述した説明では、非同期のリセット信号の入力端子を持ったＦＦについて述べているが、同期のリセット信号の入力端子を持ったＦＦの場合では、リセット許容期間検出手段４Ａが、ＦＦ段数該当個数記憶手段７に記憶された各カウント値に“１”を足して表示装置に表示する。
【００６４】
以上のように、この実施の形態３によれば、全てのリセット無しＦＦ、若しくは入力ポート以降の接続先を順々に辿ってリセット付きＦＦ若しくは対象回路１００の出力ポートに到達するまでのリセット無しＦＦを検出するリセット無しＦＦ検出手段３と、次のリセット付きＦＦ若しくは対象回路の出力ポートに到達するまでのリセット無しＦＦ検出手段３が検出したＦＦ段数をカウントするＦＦ段数カウント手段５と、ＦＦ段数カウント手段５でカウントされた値及びその値毎の該当箇所数を記憶するＦＦ段数該当個数記憶手段７とを備え、リセット許容期間検出手段４Ａが、ＦＦ段数該当個数記憶手段７に記憶された各パス毎のリセット無しＦＦの段数を不定値伝播が生じない最低限のリセット期間長として検出すると共にその該当箇所数も検出するので、不定値伝播が生じないリセット期間長とその該当箇所数が容易に分かるので、対象回路を改訂するか、システムのリセット期間を延ばすかを判断するときに役立つ。
【００６５】
また、この実施の形態３によれば、リセット無しＦＦ検出手段３、リセット許容期間検出手段４Ａ、ＦＦ段数カウント手段５及びＦＦ段数該当個数記憶手段７としてコンピュータを機能させるためのプログラムにより、不定値伝播が生じないリセット期間長とその該当箇所数が容易に分かる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【００６６】
実施の形態４．
この実施の形態４は、不定値伝播発生の原因となるリセット無しＦＦを検出し、それをリセット付きＦＦに置き換えることで、不定値伝播の生じる箇所を自動的に修正するものである。
【００６７】
図７は、この発明の実施の形態４による半導体集積回路設計支援システムの構成及び設計支援対象の回路構成を示す図である。対象回路１００は、上記実施の形態１と同一の構成であり、重複説明を省略する。本実施の形態４による半導体集積回路設計支援システムを構成する不定値発生ＦＦ置き換え手段８は、対象回路１００における不定値伝播を生じる原因となるリセット無しＦＦを特定し、リセット付きＦＦに置き換える機能を有するもので、リセット期間段数カウント手段２、リセット無しＦＦ検出手段３、及びリセット無しＦＦ置き換え手段９を備えている。
【００６８】
リセット期間段数カウント手段２及びリセット無しＦＦ検出手段３は、上記実施の形態１と同一であり、その説明は省略する。リセット無しＦＦ置き換え手段９は、リセット無しＦＦをリセット付きＦＦに置き換えて、リセット信号の入力を接続する機能を有している。
【００６９】
不定値発生ＦＦ置き換え手段８は、リセット期間段数カウント手段２及びリセット無しＦＦ検出手段３により、対象回路１００の構成要素を接続順に辿ってリセット無しＦＦの段数を検出し、リセット期間段数カウント手段２がその段数をリセット期間段数までカウントし、さらにリセット無しＦＦが連続して接続されていた場合、そのリセット無しＦＦを不定値伝播が生じる原因となるリセット無しＦＦとして検出すると共に、リセット無しＦＦ置き換え手段９を制御して、検出したリセット無しＦＦをリセット付きＦＦに置き換え、リセット信号の入力を接続する。
【００７０】
上述した、リセット期間段数カウント手段２、リセット無しＦＦ検出手段３及び不定値発生ＦＦ置き換え手段８は、本発明に従う半導体集積回路設計支援プログラムをコンピュータに読み込ませてその動作を制御することにより、ＣＰＵやメモリ等のハードウェアと協働した具体的手段として、当該コンピュータ上に実現することができる。また、対象回路１００の構成要素間の接続関係に関する情報は、例えば上記コンピュータに装備された記憶装置に格納され、上記手段に適宜読み出されて利用される。
【００７１】
なお、以下の説明において、本発明の半導体集積回路設計支援システムを具現化するコンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００７２】
次に動作について説明する。
図８は、実施の形態４による半導体集積回路設計支援システムの動作を示すフローチャートである。ここで、上記実施の形態１と同様の処理については、同一のステップ番号を付与しており、ステップＳＴ１からステップＳＴ４までの動作は上記実施の形態１と同一であるため、重複説明を省略する。
【００７３】
ステップＳＴ４において、リセット期間段数カウント手段２が、リセット期間段数に到達したか否かを判定する。このとき、リセット期間段数に到達していれば、ステップＳＴ４１の処理に移行する。
【００７４】
ステップＳＴ４１において、不定値発生ＦＦ置き換え手段８は、不定値伝播を生じる原因となるリセット無しＦＦを検出し、リセット無しＦＦ置き換え手段９を制御して、検出したリセット無しＦＦをリセット付きＦＦに置き換え、リセット信号の入力を接続する。
【００７５】
例えば、リセット期間が２クロックであると、リセット期間段数カウント手段２が、“２”を数えた時点でステップＳＴ４１に進む。ステップＳＴ４１において、不定値発生ＦＦ置き換え手段８は、リセット無しＦＦ検出手段３によりＦＦ２が検出されてから、リセット期間段数カウント手段２が“２”を数えた箇所のリセット無しＦＦであるＦＦ４を、不定値伝播を発生する原因のリセット無しＦＦとして検出する。
【００７６】
この後、不定値発生ＦＦ置き換え手段８は、検出したリセット無しＦＦ４を、リセット無しＦＦ置き換え手段９を制御してリセット付きＦＦに置き換える。例えば、該当回路がネットリストで構成要素の接続関係が記述されている場合、リセット無しＦＦのセルをリセット付きＦＦに置き換え、そのリセット端子にリセット信号の入力を接続する。また、該当回路がハードウェア記述言語で記述されている場合も同様にリセット無しＦＦの記述をリセット付きＦＦの記述に書き換える。
【００７７】
このようにして、１つのパスについての不定値伝播対策が完了すると、不定値発生ＦＦ置き換え手段８は、同様にして対象回路１００内で該当する全てのパスについて、ステップＳＴ１からステップＳＴ４１までを繰り返し実施する（ステップＳＴ６）。ここまでの動作により、対象回路１００の全てのパスにおける、不定値伝播対策が必要なリセット無しＦＦをリセット付きＦＦに置き換えが実行され、処理が完了する（ステップＳＴ７）。
【００７８】
以上のように、この実施の形態４によれば、リセット無しＦＦを含む対象回路１００に対して、その回路におけるリセット無しＦＦの接続関係に基づき、不定値伝播が生じるリセット無しＦＦをリセット付きＦＦに自動で置き換える不定値発生ＦＦ置き換え手段８を備えたので、例えば半導体集積回路のネットリストやハードウェア記述言語で出力する場合でも、設計者の手を煩わすことなく迅速に、不定値伝播が発生しない回路を生成することができる。
【００７９】
また、この実施の形態４によれば、不定値発生ＦＦ置き換え手段８としてコンピュータを機能させるプログラムにより、設計者の手を煩わすことなく迅速に、不定値伝播が発生しない回路を生成することができる半導体集積回路設計支援システムをコンピュータ上に実現することができる。
【図面の簡単な説明】
【００８０】
【図１】この発明の実施の形態１による半導体集積回路設計支援システムの構成及び設計支援対象の回路構成を示す図である。
【図２】実施の形態１による半導体集積回路設計支援システムの動作を示すフローチャートである。
【図３】この発明の実施の形態２による半導体集積回路設計支援システムの構成及び設計支援対象の回路構成を示す図である。
【図４】実施の形態２による半導体集積回路設計支援システムの動作を示すフローチャートである。
【図５】この発明の実施の形態３による半導体集積回路設計支援システムの構成及び設計支援対象の回路構成を示す図である。
【図６】実施の形態３による半導体集積回路設計支援システムの動作を示すフローチャートである。
【図７】この発明の実施の形態４による半導体集積回路設計支援システムの構成及び設計支援対象の回路構成を示す図である。
【図８】実施の形態４による半導体集積回路設計支援システムの動作を示すフローチャートである。
【符号の説明】
【００８１】
１  不定値発生ＦＦ検出手段、２  リセット期間段数カウント手段、３  リセット無しＦＦ検出手段、４，４Ａ  リセット許容期間検出手段、５  ＦＦ段数カウント手段、６  最長ＦＦ段数記憶手段、７  ＦＦ段数該当個数記憶手段、８  不定値発生ＦＦ置き換え手段、９  リセット無しＦＦ置き換え手段、１００  対象回路、１０１，１０２  入力ポート、１０３  出力ポート、Ｃ１〜Ｃ１０  組み合わせ回路、ＦＦ１，ＦＦ５，ＦＦ７  リセット付きＦＦ、ＦＦ２，ＦＦ３，ＦＦ４，ＦＦ６，ＦＦ８，ＦＦ９  リセット無しＦＦ。
【図１】
2006344150.tif 000003
【図２】
2006344150.tif 000004
【図３】
2006344150.tif 000005
【図４】
2006344150.tif 000006
【図５】
2006344150.tif 000007
【図６】
2006344150.tif 000008
【図７】
2006344150.tif 000009
【図８】
2006344150.tif 000010