(57)【要約】【課題】  フォールスパスの検出精度を向上し、タイミング検証等を効率よく行うことができる回路設計支援システムを提供すること。【解決手段】  本発明にかかるプログラムは、動作合成により生成された回路情報とデータパスとを取得するステップと、ネットのアクティブ条件を決定するステップと、迂回パスのアクティブ条件を決定するステップと、迂回データパスのアクティブ条件を決定するステップと、パスのそれぞれについてアクティブ条件を決定するステップと、フォールスパスを検出するステップと、を備えるものである。【選択図】  図１
2005293349.tif 000002
【特許請求の範囲】
【請求項１】
複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する処理をコンピュータに実行させるプログラムであって、前記処理は、
動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得するステップと、
前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定するステップと、
前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定するステップと、
前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定するステップと、
前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定するステップと、
前記パスのアクティブ条件に基づき、フォールスパスを検出するステップと、
を備えるプログラム。
【請求項２】
前記回路情報は、データフローグラフと素子割り当て情報とを有し、
前記転送路のアクティブ条件を決定するステップは、前記データパスと前記素子割り当て情報により対応付けられた、データフローグラフの状態により、当該転送路のアクティブ条件を決定する、
請求項１に記載のプログラム。
【請求項３】
前記迂回パスのアクティブ条件を決定するステップは、
前記複数の転送路のそれぞれについて、当該転送路の入力側の素子と出力側の素子を含むパスを前記データパスから検索し、当該転送路の迂回パスを決定するステップと、
前記迂回パスに含まれる転送路のアクティブ条件に基づいて、前記迂回パスのアクティブ条件を決定するステップと、
を備える、請求項１又は２に記載のプログラム。
【請求項４】
前記迂回パスのアクティブ条件は、当該迂回パスに含まれる複数の転送路のアクティブ条件のそれぞれの論理積であり、
前記迂回データパスのアクティブ条件は、当該迂回データパスに含まれる転送路のアクティブ条件と、当該迂回データパスに含まれる迂回パスのアクティブ条件との論理和であり、
前記パスのアクティブ条件は、当該パスに含まれる複数の転送路のアクティブ条件と、当該パスに含まれる複数の迂回データパスのアクティブ条件とのそれぞれの論理積であり、
前記フォールスパスを検出するステップは、前記パスのアクティブ条件の論理演算が０の場合に、当該パスをフォールスパスと決定する、
請求項１乃至３のいずれかに記載のプログラム。
【請求項５】
前記検出したフォールスパスを、当該フォールスパスに含まれる複数のインスタンスにより出力するステップをさらに備える、
請求項１乃至４のいずれかに記載のプログラム。
【請求項６】
複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する処理をコンピュータに実行させるプログラムであって、前記処理は、
動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得するステップと、
前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定するステップと、
前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定するステップと、
前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去するステップと、
を備えるプログラム。
【請求項７】
複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する設計方法であって、
動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得するステップと、
前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定するステップと、
前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定するステップと、
前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定するステップと、
前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定するステップと、
前記パスのアクティブ条件に基づき、フォールスパスを検出するステップと、
を備える設計方法。
【請求項８】
複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する設計方法であって、
動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得するステップと、
前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定するステップと、
前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定するステップと、
前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去するステップと、
を備える設計方法。
【請求項９】
複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する回路設計支援システムであって、
動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得する手段と、
前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定する手段と、
前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定する手段と、
前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定する手段と、
前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定する手段と、
前記パスのアクティブ条件に基づき、フォールスパスを検出する手段と、
を備える回路設計支援システム。
【請求項１０】
複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する回路設計支援システムであって、
動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得する手段と、
前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定する手段と、
前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定する手段と、
前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去する手段と、
を備える回路設計支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計支援システム、設計方法及びプログラムに関し、特に、動作合成を用いて回路設計を行う回路設計支援システム、設計方法及びプログラムに関する。
【背景技術】
【０００２】
ＬＳＩ等の半導体回路は、システム設計、機能設計、論理設計、レイアウト設計等の一連の設計工程を経た後、製造工程により製造される。このような一連の設計工程では、大規模集積回路の設計に対応するため、各種の設計支援システムやプログラムが用いられている。
【０００３】
各設計工程の設計レベルでは、その構成内容を明確化するために最適な記述方法を用いて設計が行われている。例えば、機能設計においては、ハードウェアの構造を含まない動作のみを記述した動作記述や、組合せ回路やレジスタ等からなるデータパスや制御回路を記述したＲＴＬ（Ｒｅｇｉｓｔｅｒ Ｔｒａｎｓｆｅｒ Ｌｅｖｅｌ）回路等が用いられ、論理設計においては、ゲートの接続関係を記述したネットリスト等が用いられる。
【０００４】
従来、設計者が「Ｖｅｒｉｌｏｇ−ＨＤＬ（Verilog Hardware Description Language）」や「ＶＨＤＬ（VHSIC Hardware Description Language）」等でＲＴＬ回路を記述し、これを論理合成によりネットリストに変換する手法が用いられている。近年、さらなる設計効率向上を図るため、設計者がＣ言語やＳｙｓｔｅｍＣ等で動作記述を記述し、これを動作合成（高位合成ともいう）によりＲＴＬ回路に変換する手法が注目されている。
【０００５】
論理合成では、ネットリスト生成ツールやＳＴＡ（静的タイミング解析：Static Timing Analysis）ツール等により、回路がクロックに同期して正常に動作するか否かタイミング検証が行われる。このタイミング検証は、データパスに基づいて行われる。ここで、データパスは、演算器やレジスタ、マルチプレクサ等のインスタンスと、インスタンス間を接続するネットから構成されている。タイミング検証は、複数のネット（転送路ともいう）からなるパス（信号経路）毎に行われ、クロック周期を超えて動作するパスを遅延違反として検出する。このような遅延違反となるパスをクリティカルパスという。
【０００６】
この時、状態遷移のある回路等において、全ての状態に渡って同時にはアクティブにならないネットを含むパスが存在することがある。このようなパスをフォールスパスといい、いずれかの状態で同時にアクティブになりうるネットを含むパスをトゥルーパスという。尚、アクティブにならないネットとは、活性化しない、つまり、データが転送されないネットをいう。
【０００７】
論理合成された回路では、トゥルーパスの遅延制約さえ満足していれば、フォールスパスの遅延がいくら大きくなっても回路は正常に動作する。しかし、ネットリスト生成ツールやＳＴＡツール、配置配線ツール等は、どのパスがトゥルーパスであり、どのパスがフォールスパスであるかを判断することができないため、フォールスパスについてもタイミング検証、最適化等を行ってしまう。その結果、論理合成処理時間や回路面積の増大、不要なクリティカルパスを含む遅延レポートの生成等が生じてしまう。
【０００８】
このため、ネットリスト生成ツール等にどのパスがフォールスパスであるか設定し、フォールスパスについては、論理合成やタイミング検証を行わないのが一般的である。ネットリスト生成ツール等にフォールスパスを設定するために、動作合成後の回路情報からフォールスパスを抽出する方法が知られている（例えば、特許文献１、２参照）。
【０００９】
図１６に、従来のフォールスパスを抽出する回路設計支援システムを示す。この回路設計支援システム１１００は、動作記述を動作合成し、当該動作合成された回路情報に基づいて、フォールスパスを抽出するシステムである。図に示されるように、回路設計支援システム１１００は、動作記述格納手段１１０１、動作合成手段１１０２、動作合成回路情報格納手段１１０３、フォールスパス抽出手段１１２０、フォールスパス情報格納手段１１０４を備えており、さらに、フォールスパス抽出手段１１２０は、アクティブ条件設定手段１１２１、アクティブ条件付き回路情報格納手段１１２２、フォールスパス探索手段１１２５、アクティブパス情報格納手段１１２６、転送路情報格納手段１１２７を備えている。
【００１０】
動作合成手段１１０２は、動作記述格納手段１１０１に格納された動作記述を動作合成し、ＲＴＬ回路を生成する。このとき動作合成手段１１０２は、動作合成の過程で生成されるデータフローグラフ、リソース割り当て情報、ＲＴＬ回路を構成するデータパス及び制御回路を動作合成回路情報格納手段１１０３に格納する。
【００１１】
アクティブ条件設定手段１１２１は、動作合成回路情報格納手段１１０３に格納されたデータフローグラフ、リソース割り当て情報、データパス及び制御回路に基づき、データパスを構成するネットのそれぞれがアクティブになる条件を抽出し、当該ネットにアクティブ条件を関連付けて、アクティブ条件付き回路情報格納手段１１２２に格納する。
【００１２】
フォールスパス探索手段１１２５は、アクティブ条件付き回路情報格納手段１１２２に格納された、ネットに関連付けられたアクティブ条件に基づき、パスに含まれるネットのアクティブ条件の論理積をとり、当該パスがフォールスパスかどうか判定し、フォールスパスと判定されたパスをフォールスパス情報格納手段１１０４に格納する。また、フォールスパス探索手段１１２５は、フォールスパスを探索する過程で、探索対象となるアクティブパスをアクティブパス情報格納手段１１２６に格納し、探索先となるネットを転送路情報格納手段１１２７に格納する。
【００１３】
フォールスパス情報格納手段１１０４の情報に基づいて、ネットリスト生成ツール等にフォールスパスが設定される。一般に、ネットリスト生成ツールやＳＴＡツール、配置配線ツール等にフォールスパスを設定する場合、ＲＴＬ回路のインスタンスを指定してフォールスパスを特定するため、フォールスパス情報格納手段１１０４には、フォールスパスに含まれるインスタンスのみが格納されている。
【００１４】
インスタンスによってパスを指定した場合、指定したインスタンスから構成されるパスが複数存在することがある。このため、フォールスパスを指定した場合でも、その指定にトゥルーパスが含まれてしまうことがありうる。
【００１５】
図１７は、フォールスパスの指定にトゥルーパスが含まれる例を示している。図において、Ｒ１からＲ４はインスタンス、Ｃ１からＣ４はアクティブ条件であり、パスａ及びパスｂはＲ１からＲ２までのパスである。パスａのアクティブ条件はＣ１×Ｃ２＝０（×は論理積）であるから、パスａはフォールスパスとなる。また、パスｂのアクティブ条件はＣ１×Ｃ３×Ｃ４≠０であるから、パスｂはトゥルーパスとなる。この場合に、フォールスパスであるパスａをインスタンスで指定すると、Ｒ１−Ｒ２−Ｒ３となるが、この指定では、Ｒ１−Ｒ２−Ｒ４−Ｒ３からなるトゥルーパスのパスｂが含まれてしまうことになる。
【００１６】
論理合成ツールやＳＴＡツール、配置配線ツール等では、指定されたインスタンスから構成されるパスをフォールスパスとして、タイミング検証、最適化等を行わない。したがって、上記のようにフォールスパスの指定にトゥルーパスが含まれる場合、当該トゥルーパスについてもタイミング検証、最適化等が行われないという問題がある。
【００１７】
尚、動作合成において、フォールスパスが遅延違反しないように演算器を割り当てる方法が知られている（例えば、特許文献３参照）。
【特許文献１】特開２００１−２０９６７０号公報
【特許文献２】特開２００２−３４２４０３号公報
【特許文献３】特開２００３−７６７２８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
このように、従来の回路設計支援システムでは、フォールスパスをインスタンス指定した場合、トゥルーパスについてタイミング検証、最適化等が行われない場合があるという問題点があった。
【００１９】
本発明は、このような問題点を解決するためになされたもので、フォールスパスの検出精度を向上するとともに、タイミング検証、ネットリストの最適化を効率よく行うことができる回路設計支援システムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明にかかるプログラムは、複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する処理をコンピュータに実行させるプログラムであって、前記処理は、動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得するステップと、前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定するステップと、前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定するステップと、前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定するステップと、前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定するステップと、前記パスのアクティブ条件に基づき、フォールスパスを検出するステップと、を備えるものである。これにより、フォールスパスの検出精度を向上することができる。
【００２１】
上述のプログラムにおいて、前記回路情報は、データフローグラフと素子割り当て情報とを有し、前記転送路のアクティブ条件を決定するステップは、前記データパスと前記素子割り当て情報により対応付けられた、データフローグラフの状態により、当該転送路のアクティブ条件を決定してもよい。これにより、効率よくフォールスパスを検出することができる。
【００２２】
上述のプログラムにおいて、前記迂回パスのアクティブ条件を決定するステップは、前記複数の転送路のそれぞれについて、当該転送路の入力側の素子と出力側の素子を含むパスを前記データパスから検索し、当該転送路の迂回パスを決定するステップと、前記迂回パスに含まれる転送路のアクティブ条件に基づいて、前記迂回パスのアクティブ条件を決定するステップと、を備えていてもよい。これにより、効果的にフォールスパスの検出精度を向上することができる。
【００２３】
上述のプログラムにおいて、前記迂回パスのアクティブ条件は、当該迂回パスに含まれる複数の転送路のアクティブ条件のそれぞれの論理積であり、前記迂回データパスのアクティブ条件は、当該迂回データパスに含まれる転送路のアクティブ条件と、当該迂回データパスに含まれる迂回パスのアクティブ条件との論理和であり、前記パスのアクティブ条件は、当該パスに含まれる複数の転送路のアクティブ条件と、当該パスに含まれる複数の迂回データパスのアクティブ条件とのそれぞれの論理積であり、前記フォールスパスを検出するステップは、前記パスのアクティブ条件の論理演算が０の場合に、当該パスをフォールスパスと決定してもよい。これにより、フォールスパスの検出精度をさらに向上することができる。
【００２４】
上述のプログラムにおいて、前記検出したフォールスパスを、当該フォールスパスに含まれる複数のインスタンスにより出力するステップをさらに備えていてもよい。これにより、フォールスパスの検出結果を論理合成ツール等で利用することができる。
【００２５】
本発明にかかるプログラムは、複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する処理をコンピュータに実行させるプログラムであって、前記処理は、動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得するステップと、前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定するステップと、前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定するステップと、前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去するステップと、を備えるものである。これにより、フォールスパスを精度よく検出し、さらに、遅延レポートの精度を向上することができる。
【００２６】
本発明にかかる設計方法は、複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する設計方法であって、動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得するステップと、前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定するステップと、前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定するステップと、前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定するステップと、前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定するステップと、前記パスのアクティブ条件に基づき、フォールスパスを検出するステップと、を備えるものである。これにより、フォールスパスの検出精度を向上することができる。
【００２７】
本発明にかかる設計方法は、複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する設計方法であって、動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得するステップと、前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定するステップと、前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定するステップと、前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去するステップと、を備えるものである。これにより、フォールスパスを精度よく検出し、さらに、遅延レポートの精度を向上することができる。
【００２８】
本発明にかかる回路設計支援システムは、複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する回路設計支援システムであって、動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得する手段と、前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定する手段と、前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定する手段と、前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定する手段と、前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定する手段と、前記パスのアクティブ条件に基づき、フォールスパスを検出する手段と、を備えるものである。これにより、フォールスパスの検出精度を向上することができる。
【００２９】
本発明にかかる回路設計支援システムは、複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する回路設計支援システムであって、動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得する手段と、前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定する手段と、前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定する手段と、前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去する手段と、を備えるものである。これにより、フォールスパスを精度よく検出し、さらに、遅延レポートの精度を向上することができる。
【発明の効果】
【００３０】
本発明によれば、フォールスパスの検出精度を向上するとともに、論理合成やタイミング検証、ネットリストの最適化を効率よく行うことができる回路設計支援システムを提供することができる。
【発明を実施するための最良の形態】
【００３１】
以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。尚、各図において同一の符号を付されたものは同様の要素を示しており、適宜、説明を省略する。
【００３２】
発明の実施の形態１．
まず、図１のブロック図を用いて、本発明の実施の形態１にかかる回路設計支援システムの構成について説明する。この回路設計支援システム１は、動作記述を動作合成し、当該動作合成された回路情報に基づいて、フォールスパスを精度よく抽出する処理を実行するシステムである。回路設計支援システム１は、パーソナルコンピュータやサーバコンピュータ等のコンピュータにより構成され、図中の各ブロックは、ハードウェアもしくはハードウェア上で実行されるソフトウェアによって構成される。尚、回路設計支援システム１は、単一のコンピュータでなくとも、複数のコンピュータによって構成することも可能である。
【００３３】
回路設計支援システム１は、図に示されるように、動作記述格納手段１０１、動作合成手段１０２、動作合成回路情報格納手段１０３、フォールスパス抽出手段１２０及びフォールスパス情報格納手段１０４を備えている。さらに、フォールスパス抽出手段１２０は、アクティブ条件設定手段１２１、アクティブ条件付き回路情報格納手段１２２、迂回パス条件設定手段１２３、迂回パス条件付き回路情報格納手段１２４、フォールスパス探索手段１２５、アクティブパス情報格納手段１２６、転送路情報格納手段１２７を備えている。
【００３４】
回路設計支援システム１は、この他、図示しない、キーボードやマウス等の入力手段や、ＣＲＴやＬＣＤ等表示手段を備えており、ユーザから情報を入力したり、各処理の結果をユーザへ表示することができる。例えば、動作記述格納手段１０１を設けずに、ユーザから入力手段を介して入力してもよいし、フォールスパス情報格納手段１０４を設けずに、ユーザへ表示手段を介して表示してもよい。
【００３５】
動作合成手段１０２、アクティブ条件設定手段１２１、迂回パス条件設定手段１２３及びフォールスパス探索手段１２５は、例えば、ＣＰＵ等が記憶装置に格納されたアプリケーションプログラムに従って処理を実行し、他のハードウェア構成と協働することによって構成することができる。また、動作記述格納手段１０１、動作合成回路情報格納手段１０３、アクティブ条件付き回路情報格納手段１２２、迂回パス条件付き回路情報格納手段１２４、アクティブパス情報格納手段１２６、フォールスパス情報格納手段１０４は、ハードディスク等の内部記憶手段や光ディスク等の外部記憶手段により構成することができる。
【００３６】
動作記述格納手段１０１には、動作記述が格納されている。動作記述は、後述するようにＣ言語等により記述され、例えば、設計者等のユーザにより入力手段を介して入力され、動作記述格納手段１０１にあらかじめ格納されている。
【００３７】
動作合成回路情報格納手段１０３には、後述するデータフローグラフ、ＲＴＬ回路を構成するデータパスと制御回路（ＦＳＭ）の情報、リソース割り当て情報等が格納されている。これらの情報は、動作合成手段１０２によって生成され、格納されている。データフローグラフは、動作記述の変数と演算について、演算の実行順序を表したグラフである。データパスは、データフローグラフに基づいて、演算器やレジスタ等を割り当てた回路である。制御回路は、データフローグラフに基づいて、データパスのデータの流れや演算を制御する制御回路である。リソース割り当て情報は、データフローグラフの要素とデータパスの要素を対応付けるデータである。
【００３８】
動作合成手段１０２は、動作記述格納手段１０１に格納された動作記述を入力し、これを動作合成することにより、ＲＴＬ回路を生成する。例えば、動作合成手段１０２は、入力された動作記述に基づいてデータフローグラフを生成し、当該データフローグラフをスケジューリング、アロケーション等することによりデータパスを生成するとともに制御回路、リソース割り当て情報等を生成する。動作合成手段１０２は、生成したデータフローグラフ、データパス、制御回路の情報、リソース割り当て情報を動作合成回路情報格納手段１０３に格納する。
【００３９】
アクティブ条件付き回路情報格納手段１２２には、後述するアクティブ条件付き回路情報が格納されている。アクティブ条件付き回路情報は、データパスに含まれるパスを構成するネットと、それぞれのネットのアクティブ条件が関連付けられたデータであり、アクティブ条件設定手段１２１により、生成され、格納されている。
【００４０】
アクティブ条件設定手段１２１は、動作合成回路情報格納手段１０３に格納されたデータフローグラフ、データパス、制御回路、リソース割り当て情報に基づき、データパスに含まれるパスを構成するネットのそれぞれについて、アクティブになる条件を抽出し、当該ネットにアクティブ条件を関連付けて、アクティブ条件付き回路情報を生成し、アクティブ条件付き回路情報格納手段１２２に格納する。
【００４１】
例えば、アクティブ条件設定手段１２１は、動作合成回路情報格納手段１０３に格納されたデータフローグラフ、データパス、制御回路、リソース割り当て情報を読み出す。当該データパス中のネットのそれぞれについて、リソース割り当て情報から、当該ネットに対応するデータフローを特定する。当該データフローの状態や分岐等に基づいて、当該ネットにデータが流れる条件を求め条件を表す論理式を決定する。当該論理式を各ネットに対応付けて、アクティブ条件付き回路情報を生成し、アクティブ条件付き回路情報格納手段１２２に格納する。
【００４２】
迂回パス条件付き回路情報格納手段１２４には、後述する迂回パス条件付き回路情報が格納されている。迂回パス条件付き回路情報は、データパスに含まれるネットに対応付けられたアクティブ条件に、さらに、当該ネットの迂回パスのアクティブ条件を加えたデータであり、迂回パス条件設定手段１２３により、生成され、格納されている。
【００４３】
迂回パス条件設定手段１２３は、アクティブ条件付き回路情報格納手段１２２に格納されたアクティブ条件付き回路情報に基づき、アクティブ条件が付けられた各ネットの前後のインスタンス間を結ぶ全てのパスを探索し、それらのパスのアクティブ条件を、当該ネットのアクティブ条件に追加し、迂回パス条件付き回路情報を生成し、迂回パス条件付き回路情報格納手段１２４に格納する。迂回パス条件設定手段１２３の処理の詳細については、後述する。
【００４４】
アクティブパス情報格納手段１２６は、フォールスパス探索手段１２５が探索対象として処理するアクティブパスに関する情報であるアクティブパス情報を格納する。転送路情報格納手段１２７には、フォールスパス探索手段１２５が探索先として処理するネットに関する情報である転送路情報を格納する。
【００４５】
フォールスパス情報格納手段１０４には、フォールスパス情報が格納されている。フォールスパス情報は、各ネットから構成されるフォールスパスについて、インスタンス指定のパスが含まれており、フォールスパス探索手段１２５により、生成され、格納されている。このフォールスパス情報により、ネット生成ツールや静的タイミング解析ツール、配置配線ツールに対してフォールスパスを指定することができる。
【００４６】
フォールスパス探索手段１２５は、迂回パス条件付き回路情報格納手段に格納された迂回パス条件付き回路情報からフォールスパスを探索し、探索したフォールスパスをフォールスパス情報格納手段１０４へ出力する。
【００４７】
例えば、フォールスパス探索手段１２５は、迂回パス条件付き回路情報格納手段１２４の迂回パス条件付き回路情報に基づいてデータパス中の全てのネットについて処理を行う。まず、迂回パス条件付き回路情報からデータパスに含まれる全てのネットのデータを読み出す。次いで、ネットの入力側のインスタンスが、入力端子または、記憶素子となるまで探索し、全てのネットと当該ネットのアクティブ条件を特定する。次いで、探索したネットに他のネットを連結しパスを構築する。次いで、構築したパスに含まれる各ネットのアクティブ条件の論理積をとり、当該パスがトゥルーパスかフォールスパスか判定する。論理積が０であれば、フォールスパスと判定し、論理積が０以外であれば、トゥルーパスと判定する。当該パスがフォールスパスの場合、フォールスパス情報格納手段１０４へ当該パスのインスタンスを格納する。当該パスがトゥルーパスであれば、さらに他のネットを連結してパスを構築し、トゥルーパスかフォールスパスか判定する。
【００４８】
また、フォールスパス探索手段１２５は、迂回パス条件付き回路情報格納手段１２４から読み出した全てのネットのデータを、アクティブパス情報格納手段１２６に格納し、ネットを一つずつ取り出しながら、当該ネットを含むパスの探索を行う。さらに、フォールスパス探索手段１２５は、アクティブパス情報格納手段１２６から取り出したネットの入力側のインスタンスに接続されている全てのネットを、転送路情報格納手段１２７に格納し、ネットを一つずつ取り出しながら、パスを構築し、フォールスパスの判定を行う。
【００４９】
尚、この例では、任意のネットの入力側に他のネットを連結しながらフォールスパスを探索したが、これに限らず、反対の方向に探索、すなわち、任意のネットの出力側に他のネットを連結しながらフォールスパスを探索してもよい。
【００５０】
次に、図２乃至図１３を用いて、図１で示した各情報格納手段に格納されるデータの例について説明する。
【００５１】
図２は、動作記述格納手段１０１に格納される動作記述の例を示している。動作記述は、回路の動作を表しており、例えば、Ｃ言語等により記述されているが、ＳｙｓｔｅｍＣ、ＳｐｅｃＣ、ＡＮＳＩ−Ｃ、それらの派生言語、Ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ等により記述されていてもよい。図の例において、第１行目から順に実行される動作が記述されており、Ｒ１からＲ９はデータ（変数）を示している。図に示されるように、この動作記述では、第１行目において、Ｒ４とＲ７を乗算した結果をＲ６とし、第２行目において、Ｒ１よりＲ２が大きいか否か判定し、当該判定が真であれば、第３行目において、Ｒ４とＲ５を乗算した結果をＲ３とし、当該判定が偽であれば、第５行目において、Ｒ８とＲ５を乗算しさらにＲ９を加算した結果をＲ６とするように記述されている。以下の図３乃至図１３は、図２の動作記述に基づいて、各手段の処理が行なわれ格納されたデータの例である。
【００５２】
図３は、図２の動作記述から生成されたデータフローグラフの例を示している。データフローグラフは、節点と枝によって構成され、枝はデータを表し、節点は演算を表しており、節点の上側に連結された枝が演算の入力枝であり、節点の下側に連結された枝が演算の出力枝である。
【００５３】
図の例において、Ｒ１からＲ９は図２と同じデータを示し、３１から３５は図２の各演算を示している。Ｃ１は、Ｒ１とＲ２の演算３２の結果（ここでは比較演算の結果）のデータである。データフローグラフは、動作合成におけるスケジューリングにより、各節点の演算がクロックサイクルに割り当てられている。この例では、状態ＳＴ１と状態ＳＴ２がそれぞれ１サイクルで実行するようにスケジューリングされている。
【００５４】
図に示されるように、このデータフローグラフでは、演算３１には、Ｒ４とＲ７が入力され、当該演算結果がＲ６に出力される。すなわち、図２の第１行目に対応しており、状態ＳＴ１に割り当てられている。また、演算３２には、Ｒ１とＲ２が入力され、演算結果がＣ１に出力される。すなわち、図２の第２行目に対応しており、状態ＳＴ２に割り当てられている。同様に、図２の第３行目以降も状態ＳＴ２に割り当てられている。
【００５５】
図４は、図３のデータフローグラフから生成された制御回路の例を示している。制御回路は、ステートマシンにより記述され、同じデータフローグラフから生成されるデータパスの状態遷移を表している。この例では、状態ＳＴ１において、図３の状態ＳＴ１の演算、すなわち図２の第１行目の演算を実行し、状態ＳＴ２において、図３の状態ＳＴ２の演算、すなわち図２の第２行目以降の演算を実行するように、データパスを制御する。
【００５６】
図５は、図３のデータフローグラフから生成されたデータパスの例を示している。データパスは、動作合成において、スケジューリングの後、アロケーションにより、演算器やレジスタが割り当てられ、さらに、演算器やレジスタを共有するためにマルチプレクサやバスが割り当てられて生成される。データパスは、データフローグラフの枝や節点に対応した回路のパスを表している。
【００５７】
この例では、Ｒ１からＲ９はレジスタであり、Ｆ１からＦ３は演算器、５１から５３は、マルチプレクサである。Ｆ１は図３の演算３２、Ｆ２は図３の演算３３及び３４、Ｆ３は図３の演算３５に対応している。
【００５８】
図４で示した制御回路によって、マルチプレクサ５１から５３の切り替えが制御され、データパスの回路が動作する。例えば、状態ＳＴ１においては、マルチプレクサ５１がＲ４からの入力を選択し、マルチプレクサ５２がＲ７からの入力を選択し、マルチプレクサ５３が演算器Ｆ２からの入力を選択するように切り替え、Ｒ４とＲ７にデータを入力すると、Ｒ６に演算結果が出力される。
【００５９】
図６は、図５のデータパスにアクティブ条件を関連付けたアクティブ条件付き回路情報の例を示している。図３のデータフローグラフと図４の制御回路の情報に基づいて、図５のデータパスの各ネットにアクティブ条件が付けてられている。
【００６０】
図において、６１、６２、６３はネットを示している。例えば、ネット６１ａには、「ＳＴ２」が条件付けられており、状態ＳＴ２の場合にこのネットがアクティブになることを表している。ネット６２ｃには、「ＳＴ２×！Ｃ１」が条件付けられている。ここで、「×」は論理積、「！Ｃ１」はＣ１の否定を表しており、状態ＳＴ２で、かつ、図３の演算結果Ｃ１が偽の場合に、このネットがアクティブになることを表している。ネット６２ｂには、「ＳＴ１＋ＳＴ２×Ｃ１」が条件付けられている。ここで、「＋」は論理和を示しており、状態ＳＴ１の場合、または、状態ＳＴ２でかつ演算結果Ｃ１が真の場合に、このネットがアクティブになることを表している。
【００６１】
図７は、図６におけるレジスタＲ１とレジスタＲ６の間のパスの例を示している。図中のパスａにおける、各ネットのアクティブ条件は、ネット６１ａが「ＳＴ２」、ネット６２ａが「ＳＴ２」、ネット６３ｂが「ＳＴ１」であり、これらの論理積がパスａのアクティブ条件となる。状態ＳＴ２と状態ＳＴ１は、別のクロックサイクルであり、同時に動作しないため、ＳＴ１とＳＴ２の論理積は０である。したがって、パスａのアクティブ条件は、ＳＴ２×ＳＴ２×ＳＴ１＝０となり、パスａはフォールスパスであると判断することができる。
【００６２】
また、パスｂにおける、各ネットのアクティブ条件は、ネット６１ａが「ＳＴ２」、ネット６２ａが「ＳＴ２」、ネット６３ｃが「ＳＴ２×！Ｃ１」、ネット６３ｅが「ＳＴ２×！Ｃ１」である。状態ＳＴ２において比較演算Ｃ１が動作するため、ＳＴ２とＣ１の論理積は０ではない。したがって、パスｂのアクティブ条件は、ＳＴ２×ＳＴ２×ＳＴ２×！Ｃ１×ＳＴ２×！Ｃ１＝ＳＴ２×！Ｃ１となり、パスｂはトゥルーパスであると判断することができる。このように、アクティブ条件付き回路情報では、当該ネットに迂回するパスが存在する場合でも、当該ネットのみのアクティブ条件が付けられている。
【００６３】
図８は、図７のアクティブ条件付き回路情報が格納される場合の具体的なデータの例である。アクティブ条件付き回路情報には、ネットと、当該ネットの入力側／出力側インスタンス、当該ネットのアクティブ条件が含まれている。例えば、ネット６１ａには、入力側インスタンスにＲ１、出力側インスタンスにＦ１、アクティブ条件にＳＴ２が対応付けられ、格納されている。この例では、ネットを基にして、その他のデータを対応付けているが、これに限らず、インスタンスを基にしてもよい。
【００６４】
図９は、図６のアクティブ条件付き回路情報に迂回パスのアクティブ条件を付けた、迂回パス条件付き回路情報の例を示している。迂回パスのアクティブ条件は、迂回パス条件設定手段１２３により、ネットのアクティブ条件に加えられる。この例では、太線で示したネット６３ｂに、迂回パスであるネット６３ｃ及び６３ｅのアクティブ条件「ＳＴ２×！Ｃ１」を加えた「ＳＴ１＋ＳＴ２×！Ｃ１」が条件付けられている。このように、ネットのアクティブ条件と迂回パスのアクティブ条件との論理和が、当該ネットのアクティブ条件となる。
【００６５】
図１０は、図９におけるレジスタＲ１とレジスタＲ６の間のパスの例を示している。図７と比べて、ネット６３ｂのアクティブ条件に迂回パスのアクティブ条件が加えられて「ＳＴ１＋ＳＴ２×！Ｃ１」となり、パスａのアクティブ条件は、ＳＴ２×ＳＴ２×（ＳＴ１＋ＳＴ２×！Ｃ１）＝ＳＴ２×！Ｃ１となる。従って、図７と異なり、パスａは、トゥルーパスであると判断することができる。
【００６６】
図１１は、図１０の迂回パス付き回路情報が格納される場合の具体的なデータの例である。迂回パス条件付き回路情報には、ネットと、当該ネットの入力側／出力側インスタンス、当該ネットの迂回パス付きアクティブ条件が含まれている。図８と比べて、アクティブ条件に迂回パスのアクティブ条件が加えられているが、それ以外は図８と同じである。
【００６７】
次に、図１２のフローチャートを用いて、本発明の実施の形態１にかかる迂回パス条件設定処理について説明する。この処理は、迂回パス条件設定手段１２３における処理であり、例えば、ＣＰＵ等において所定のアプリケーションプログラムにより実行される。
【００６８】
まず、回路中のネットを全て処理したかどうか判定する（Ｓ１０１）。アクティブ条件付き回路情報格納手段１２２に格納されたアクティブ条件付き回路情報中のネットの全てについて、Ｓ１０２以降の処理を行ったかどうか判定する。例えば、図８のデータの例では、ネット６１ａからネット６３ｅの全てのネットの処理が終了したかどうか判定する。
【００６９】
Ｓ１０１において、全てのネットの処理が終了したと判定した場合、迂回パス条件設定処理を終了する。
【００７０】
Ｓ１０１において、処理していないネットが残っていると判定した場合、回路中のネットを１つ取り出す（Ｓ１０２）。アクティブ条件付き回路情報格納手段１２２に格納されたアクティブ条件付き回路情報中のネットの１つについて、データを読み出し、当該ネットについて、Ｓ１０３以降の処理を行う。すでにＳ１０３以降の処理を行ったネットがある場合には、まだ、当該処理を行っていないネットのデータを読み出す。アクティブ条件付き回路情報からネットを読み出す順序は、任意の順序でよい。
【００７１】
例えば、図８のデータの例では、ネット６３ｂが未処理の場合、ネット６３ｂのデータを読み出し、ネット６３ｂの処理が終了している場合、次のネット６３ｃのデータを読み出す。ここでは、ネット６３ｂのデータを読み出した例について、以下の処理を説明する。
【００７２】
次いで、対象ネットの出力側インスタンスについて、そのインスタンスの入力側に接続されている全てのネットを探索パスリストに登録する（Ｓ１０３）。Ｓ１０２で読み出したネットのデータから、当該ネットの出力側に接続されているインスタンスを参照する。そして、アクティブ条件付き回路情報から、当該インスタンスの入力側に接続されている全てのネットを取得する。その後、取得した全てのネットを探索パスリストに登録する。
【００７３】
尚、この例では、インスタンスの入力側にネットを連結しながら迂回パスを探索するが、これに限らず、反対の方向に探索、すなわち、対象ネットの入力側のインスタンスについて、その出力側にネットを連結しながら迂回パスを探索してもよい。
【００７４】
例えば、Ｓ１０２で読み出したネット６３ｂのデータより、出力側のインスタンスはＲ６である。このＲ６の入力側に接続されているネットは、図８のアクティブ条件付き回路情報の例では、６３ｂと６３ｅである。ネット６３ｂは、当該処理中のネットであるので、対象外とし、ここでは、ネット６３ｅのみからなるパスであるパス６３ｅを探索パスリストに登録する。探索パスリストにおいては、１つのネットのみであってもパスとする。このときの、探索パスリストのデータの例を図１３（ａ）に示す。図に示されるように、探索パスリストは、当該処理で探索する探索パスと、当該探索パスの入力側／出力側インスタンスと、当該探索パスのアクティブ条件を含んでいる。このように、探索パスリストには、１つ以上のネットが登録され、この探索パスについて、Ｓ１０４以降の処理を行う。
【００７５】
次いで、探索パスリストが空かどうか判定する（Ｓ１０４）。Ｓ１０３で登録された探索パスリスト中のパスの全てについて、Ｓ１０５以降の処理を行ったかどうかを、探索パスリストに登録されているパスの有無により判定する。例えば、図１３（ａ）のデータの例では、パス６３ｅが登録されているので、Ｓ１０５以降の処理を行う。
【００７６】
Ｓ１０４において、探索パスリストが空であると判断した場合、再度、Ｓ１０１を実行し、次のネットの処理を行う。また、このとき、処理が終了したネットのデータを、迂回パス付き回路情報格納手段１２４に格納してもよい。
【００７７】
Ｓ１０４において、探索パスリストが空ではないと判断された場合、探索パスリスト中の任意のパスを取り出す（Ｓ１０５）。Ｓ１０３で登録した探索パスリスト中の探索パスの１つについて、データを読み出し、当該探索パスについて、Ｓ１０６以降の処理を行う。このとき、読み出したパスのデータを探索パスリストから削除する。例えば、図１３（ａ）のデータの例では、パス６３ｅのデータを読み出し、パス６３ｅのデータを探索パスリストから削除する。ここでは、パス６３ｅのデータを読み出した例について、以下の処理を説明する。
【００７８】
次いで、対象パスがアクティブかどうか判定する（Ｓ１０６）。Ｓ１０５で読み出した探索パスのデータから、当該探索パスのアクティブ条件を参照し、当該探索パスがトゥルーパスかあるいはフォールスパスかどうか判定する。例えば、Ｓ１０５で読み出したパス６３ｅのデータより、アクティブ条件は「ＳＴ２×！Ｃ１」である。したがって、パス６３ｅのパスは、トゥルーパスであると判定される。
【００７９】
Ｓ１０６において、対象パスがフォールスパスと判断された場合、再度、Ｓ１０４を実行し、探索パスリストに登録されているパスについて処理を行う。
【００８０】
Ｓ１０６において、対象パスがトゥルーパスと判断された場合、さらに、対象パスの先頭インスタンスが対象ネットの入力側インスタンスと同一かどうか判定する（Ｓ１０７）。Ｓ１０５で読み出した探索パスのデータから、当該探索パスの入力側（先頭）に接続されているインスタンスを参照する。そして、当該探索パスの入力側インスタンスと、Ｓ１０２で読み出したネットの入力側のインスタンスを比較し、同一かどうか判定する。
【００８１】
例えば、Ｓ１０５で読み出したパス６３ｅのデータより、入力側のインスタンスはＦ３である。また、Ｓ１０２で読み出したネット６３ｂの入力側インスタンスはＦ２である。したがって、探索パスのネット６３ｅの入力側インスタンスと、探索パスの処理中であるネット６３ｅの入力側インスタンスは同一ではないと判定される。
【００８２】
Ｓ１０７において、対象パスの先頭インスタンスが対象ネットの入力側インスタンスと同一ではないと判定された場合、当該パスを迂回パスではないとして、対象パスとその入力側に接続されている各ネットとで構成されるパスを探索パスリストに登録する（Ｓ１０９）。その後、再度、Ｓ１０４を実行し、次のパスについて処理を行う。
【００８３】
すなわち、Ｓ１０５で読み出した探索パスのデータから、当該探索パスの入力側に接続されているインスタンスを参照する。そして、アクティブ条件付き回路情報から、当該インスタンスの入力側に接続されている全てのネットを取得する。その後、当該探索パスと取得した全てのネットにより構成されるパスを新たに生成し、当該新たなパスを探索パスリストに登録する。
【００８４】
例えば、Ｓ１０５で読み出したパス６３ｅのデータより、入力側のインスタンスはＦ３である。このＦ３の入力側に接続されているネットは、図８のアクティブ条件付き回路情報の例では、ネット６３ｃとネット６３ｄである。したがって、ネット６３ｃとネット６３ｅから構成されるパスであるパス６３ｃ−６３ｅと、ネット６３ｄとネット６３ｅから構成されるパスであるパス６３ｄ−６３ｅを探索パスリストに登録する。このときの探索パスリストのデータの例を図１３（ｂ）に示す。その後、登録したパス６３ｃ−６３ｅ、パス６３ｄ−６３ｅについて、Ｓ１０４から処理が行われる。
【００８５】
Ｓ１０７において、対象パスの先頭インスタンスが対象ネットの入力側インスタンスと同一と判定された場合、当該パスが迂回パスであるとして、対象パスのアクティブ条件を対象ネットのアクティブ条件に追加する（Ｓ１０８）。
【００８６】
すなわち、Ｓ１０５で読み出した探索パスのデータから、当該探索パスのアクティブ条件を参照する。そして、当該アクティブ条件をＳ１０２で読み出したネットのアクティブ条件に論理和で、追加する。
【００８７】
例えば、図１３（ｂ）のパス６３ｃ−６３ｅのデータを処理する場合、当該データの入力側インスタンスは、Ｆ２であるから、Ｓ１０２で読み出したネット６３ｂの入力側インスタンスと同一である。したがって、パス６３ｃ−６３ｅのアクティブ条件「ＳＴ２×！Ｃ１」を、ネット６３ｂのアクティブ条件「ＳＴ１」に論理和で加える。すなわち、ネット６３ｂのアクティブ条件は、図１１に示すように、「ＳＴ１＋ＳＴ２×！Ｃ１」となる。
【００８８】
このようにして、アクティブ条件が付けられたデータパスのネットについて、当該ネットの迂回パスのアクティブ条件をさらに加えることができる。
【００８９】
このような構成により、動作合成されたデータパスの中からフォールスパスを抽出し、インスタンス指定のフォールスパスを出力することができる。特に、それぞれのネットに迂回パスが存在する場合には、迂回パスのアクティブ条件も当該ネットのアクティブ条件に加えることにより、フォールスパスをインスタンス指定しても、トゥルーパスを含むことはなくなる。すなわち、インスタンス指定で対象となるすべてのパスがフォールスパスであることを保証できるため、フォールスパスを正確に指定することが可能となる。したがって、ネットリスト生成ツールや配置配線ツール、静的タイミング解析ツールに対してフォールスパスを正確に指定することができ、不要なタイミング検証、最適化等を行うことがなくなり、設計作業の効率を向上することができる。
【００９０】
発明の実施の形態２．
次に、図１４を用いて、本発明の実施の形態２にかかる回路設計支援システムの構成について説明する。この回路設計支援システム１は、図１と同様のシステムであり、図１と同様の方法で抽出したフォールスパスに基づいて、ネットリストの生成や静的タイミング解析を行い、さらに、静的タイミング解析の結果得られる遅延レポートから不要なフォールスパスを除去する処理を実行するシステムである。
【００９１】
図に示されるように、回路設計支援システム１は、回路設計支援手段１００、入力手段１１０、表示手段１１１を備えている。回路設計支援手段１００は、図１の構成に加えて、ネットリスト生成手段１０５、ネットリスト情報格納手段１０６、静的タイミング解析手段１０７、クリティカルパス情報格納手段１０８、フォールスパス除去手段１０９、ＲＴＬ回路情報格納手段１１０、合成情報格納手段１１１を備えている。
【００９２】
本実施形態の動作合成手段１０２は、図１のフォールスパス抽出手段１２０を含んでいる。ＲＴＬ回路情報格納手段１１０には、図１の動作合成回路情報格納手段１０３に含まれるＲＴＬ回路が格納されている。合成情報格納手段１１１には、図１の動作合成回路情報格納手段１０３と同様の回路情報が格納されている。
【００９３】
ネットリスト生成手段１０５は、動作合成回路情報格納手段１０３に格納されたＲＴＬ回路を論理合成することにより、静的タイミング解析可能なネットリストを生成し、ネットリスト情報格納手段１０６に格納する。このとき、ネットリスト生成手段１０５は、フォールスパス情報格納手段１０４に格納されたインスタンス指定のフォールスパスに対応する回路の最適化を実施しなくてもよい。これにより、論理合成処理にかかる時間を短縮することができる。
【００９４】
尚、ネットリスト生成手段１０５は、表示手段１１１等に出力してもよいし、その他の装置に、ネットリストを出力してもよい。
【００９５】
静的タイミング解析手段１０７は、ネットリスト情報格納手段１０６に格納されたネットリストから静的なタイミング特性を解析してタイミング検証を行い、遅延制約を満たしていないパスであるクリティカルパス（遅延パスともいう）を抽出し、複数のクリティカルパスを含む遅延レポートをクリティカルパス情報格納手段１０８に格納する。このとき、静的タイミング解析手段１０７は、フォールスパス情報格納手段１０４に格納されたインスタンス指定のフォールスパスについては、タイミング検証を行わなくてもよい。また、フォールスパスについては、遅延違反した場合でも、クリティカルパスとして出力しなくてもよい。
【００９６】
フォールスパス除去手段１０９は、クリティカルパス情報格納手段１０８に格納されているクリティカルパスを解析し、当該クリティカルパスに含まれるフォールスパスを除去し、フォールスパスを除去したクリティカルパスを表示手段１１１に出力する。
【００９７】
フォールスパス除去手段１０９は、クリティカルパス情報格納手段１０８に格納されている全てのクリティカルパスについて処理を行う。まず、クリティカルパス情報格納手段１０８に格納されているクリティカルパスを読み出す。次いで、当該クリティカルパスがフォールスパスかどうか判定する。例えば、当該クリティカルパスを構成する各ネットのアクティブ条件を合成情報格納手段１１１から取得し、各ネットのアクティブ条件の論理積により、フォールスパスかどうか判定する。当該クリティカルパスがフォールスパスの場合、当該クリティカルパスをクリティカルパス情報格納手段１０８から削除する。フォールスパスに該当する全てのクリティカルパスをクリティカルパス情報格納手段１０８から削除した後、当該クリティカルパス情報格納手段１０８を表示手段１１１に出力する。尚、クリティカルパス情報格納手段１０８のデータを直接削除せずに、表示手段１１１にのみフォールスパスを削除したデータを出力してもよい。
【００９８】
尚、ここでは、動作合成回路情報格納手段１０３と同様の回路情報を含む合成情報格納手段１１１の情報に基づいて、クリティカルパスからフォールスパスを除去しているが、その他の情報に基づいてフォールスパスを除去してもよい。例えば、図１で示した、アクティブ条件付き回路情報格納手段１２２や迂回パス条件付き回路情報格納手段１２４の情報に基づいて同様に、クリティカルパスからフォールスパスを除去してもよい。
【００９９】
このような構成により、フォールスパス情報格納手段１０４に全てのフォールスパスが含まれない場合であっても、動作合成手段やフォールスパス抽出手段が出力する情報に基づいて、フォールスパスに対応するクリティカルパスを検出し、当該クリティカルパスを遅延レポートから除去することができる。すなわち、フォールスパスを含まない遅延レポートを生成することができ、遅延レポートの精度を向上することができる。
【０１００】
その他の発明の実施の形態．
上述した回路設計支援システム１を実現するためのハードウェア構成の例を図１５に示す。回路設計支援システム１は、典型的なコンピュータ・システムが利用可能であり、中央処理装置（ＣＰＵ）２０１とメモリ２０４とを含んでいる。
【０１０１】
ＣＰＵ２０１とメモリ２０４とは、バスを介して補助記憶装置としてのハードディスク装置２１３に接続される。フレキシブルディスク装置２２０、ハードディスク装置２１３・２３０、ＣＤ−ＲＯＭドライブ２２６・２２９、ＭＯドライブ２２８等の記憶媒体駆動装置は、フレキシブルディスク・コントローラ２１９、ＩＤＥコントローラ２２５、ＳＣＳＩコントローラ２２７等の各種コントローラを介してバスに接続される。フレキシブルディスク装置２２０等の記憶媒体駆動装置には、フレキシブルディスク等の可搬型記憶媒体が挿入される。
【０１０２】
記憶媒体にはオペレーティングシステムと共同してＣＰＵ２０１等に命令を与え、回路設計支援システム１の機能を実施するためのコンピュータ・プログラムを記憶することができる。コンピュータ・プログラムは、メモリ２０４にロードされることによって実行される。コンピュータ・プログラムは圧縮し、又、複数に分割して記憶媒体に記憶することができる。ハードウェア構成は、典型的には、ユーザ・インターフェース・ハードウェアを備える。
【０１０３】
ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティングデバイス（マウス２０７、ジョイスティック等）やキーボード２０６、あるいは、視覚データをユーザに提示するための液晶ディスプレイなどの表示装置２１１やＣＲＴディスプレイ２１２がある。
【０１０４】
また、パラレルポート２１６を介してプリンタを接続するも可能である。このコンピュータ・システムは、シリアルポート２１５を介してモデムを接続することが可能であり、シリアルポート２１５およびモデムまたはトークンリングや通信アダプタ２１８等を介してネットワークに接続し、他のコンピュータ・システムと通信を行っている。尚、上記構成は必要に応じて省略することができる。
【図面の簡単な説明】
【０１０５】
【図１】本発明にかかる回路設計支援システムの構成例を示すブロック図である。
【図２】本発明にかかる回路設計支援システムで用いる動作記述のデータの例を示す図である。
【図３】本発明にかかる回路設計支援システムで用いるデータフローグラフのデータの例を示す図である。
【図４】本発明にかかる回路設計支援システムで用いる制御回路のデータの例を示す図である。
【図５】本発明にかかる回路設計支援システムで用いるデータパスのデータの例を示す図である。
【図６】本発明にかかる回路設計支援システムで用いるアクティブ条件付き回路情報のデータ例を示す図である。
【図７】本発明にかかる回路設計支援システムで用いるアクティブ条件付き回路情報のデータの例を示す図である。
【図８】本発明にかかる回路設計支援システムで用いるアクティブ条件付き回路情報のデータの例を示す図である。
【図９】本発明にかかる回路設計支援システムで用いる迂回パス条件付き回路情報のデータの例を示す図である。
【図１０】本発明にかかる回路設計支援システムで用いる迂回パス条件付き回路情報のデータの例を示す図である。
【図１１】本発明にかかる回路設計支援システムで用いる迂回パス条件付き回路情報のデータの例を示す図である。
【図１２】本発明にかかる迂回パス条件設定処理を示すフローチャートである。
【図１３】本発明にかかる迂回パス条件設定処理で用いる探索パスリストのデータの例を示す図である。
【図１４】本発明にかかる回路設計支援システムの構成例を示すブロック図である。
【図１５】本発明にかかる回路設計支援システムのハードウェア構成図である。
【図１６】従来の回路設計支援システムの構成例を示すブロック図である。
【図１７】従来の回路設計支援システムのデータパスの例を示す図である。
【符号の説明】
【０１０６】
１  回路設計支援システム
１０１  動作記述格納手段
１０２  動作合成手段
１０３  動作合成回路情報格納手段
１０４  フォールスパス情報格納手段
１２０  フォールスパス抽出手段
１２１  アクティブ条件設定手段
１２２  アクティブ条件付き回路情報格納手段
１２３  迂回パス条件設定手段
１２４  迂回パス条件付き回路情報格納手段
１２５  フォールスパス探索手段
１２６  アクティブ情報格納手段
【図１】
2005293349.tif 000003
【図２】
2005293349.tif 000004
【図３】
2005293349.tif 000005
【図４】
2005293349.tif 000006
【図５】
2005293349.tif 000007
【図６】
2005293349.tif 000008
【図７】
2005293349.tif 000009
【図８】
2005293349.tif 000010
【図９】
2005293349.tif 000011
【図１０】
2005293349.tif 000012
【図１１】
2005293349.tif 000013
【図１２】
2005293349.tif 000014
【図１３】
2005293349.tif 000015
【図１４】
2005293349.tif 000016
【図１５】
2005293349.tif 000017
【図１６】
2005293349.tif 000018
【図１７】
2005293349.tif 000019