JP2005293349A - 回路設計支援システム、設計方法及びプログラム - Google Patents

回路設計支援システム、設計方法及びプログラム Download PDF

Info

Publication number
JP2005293349A
JP2005293349A JP2004108988A JP2004108988A JP2005293349A JP 2005293349 A JP2005293349 A JP 2005293349A JP 2004108988 A JP2004108988 A JP 2004108988A JP 2004108988 A JP2004108988 A JP 2004108988A JP 2005293349 A JP2005293349 A JP 2005293349A
Authority
JP
Japan
Prior art keywords
path
active condition
data
transfer
false
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004108988A
Other languages
English (en)
Inventor
Shinya Furusawa
慎也 古澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2004108988A priority Critical patent/JP2005293349A/ja
Priority to DE102005014712A priority patent/DE102005014712A1/de
Priority to US11/094,315 priority patent/US20050223345A1/en
Publication of JP2005293349A publication Critical patent/JP2005293349A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】
フォールスパスの検出精度を向上し、タイミング検証等を効率よく行うことができる回路設計支援システムを提供すること。
【解決手段】
本発明にかかるプログラムは、動作合成により生成された回路情報とデータパスとを取得するステップと、ネットのアクティブ条件を決定するステップと、迂回パスのアクティブ条件を決定するステップと、迂回データパスのアクティブ条件を決定するステップと、パスのそれぞれについてアクティブ条件を決定するステップと、フォールスパスを検出するステップと、を備えるものである。
【選択図】 図1

Description

本発明は、回路設計支援システム、設計方法及びプログラムに関し、特に、動作合成を用いて回路設計を行う回路設計支援システム、設計方法及びプログラムに関する。
LSI等の半導体回路は、システム設計、機能設計、論理設計、レイアウト設計等の一連の設計工程を経た後、製造工程により製造される。このような一連の設計工程では、大規模集積回路の設計に対応するため、各種の設計支援システムやプログラムが用いられている。
各設計工程の設計レベルでは、その構成内容を明確化するために最適な記述方法を用いて設計が行われている。例えば、機能設計においては、ハードウェアの構造を含まない動作のみを記述した動作記述や、組合せ回路やレジスタ等からなるデータパスや制御回路を記述したRTL(Register Transfer Level)回路等が用いられ、論理設計においては、ゲートの接続関係を記述したネットリスト等が用いられる。
従来、設計者が「Verilog−HDL(Verilog Hardware Description Language)」や「VHDL(VHSIC Hardware Description Language)」等でRTL回路を記述し、これを論理合成によりネットリストに変換する手法が用いられている。近年、さらなる設計効率向上を図るため、設計者がC言語やSystemC等で動作記述を記述し、これを動作合成(高位合成ともいう)によりRTL回路に変換する手法が注目されている。
論理合成では、ネットリスト生成ツールやSTA(静的タイミング解析:Static Timing Analysis)ツール等により、回路がクロックに同期して正常に動作するか否かタイミング検証が行われる。このタイミング検証は、データパスに基づいて行われる。ここで、データパスは、演算器やレジスタ、マルチプレクサ等のインスタンスと、インスタンス間を接続するネットから構成されている。タイミング検証は、複数のネット(転送路ともいう)からなるパス(信号経路)毎に行われ、クロック周期を超えて動作するパスを遅延違反として検出する。このような遅延違反となるパスをクリティカルパスという。
この時、状態遷移のある回路等において、全ての状態に渡って同時にはアクティブにならないネットを含むパスが存在することがある。このようなパスをフォールスパスといい、いずれかの状態で同時にアクティブになりうるネットを含むパスをトゥルーパスという。尚、アクティブにならないネットとは、活性化しない、つまり、データが転送されないネットをいう。
論理合成された回路では、トゥルーパスの遅延制約さえ満足していれば、フォールスパスの遅延がいくら大きくなっても回路は正常に動作する。しかし、ネットリスト生成ツールやSTAツール、配置配線ツール等は、どのパスがトゥルーパスであり、どのパスがフォールスパスであるかを判断することができないため、フォールスパスについてもタイミング検証、最適化等を行ってしまう。その結果、論理合成処理時間や回路面積の増大、不要なクリティカルパスを含む遅延レポートの生成等が生じてしまう。
このため、ネットリスト生成ツール等にどのパスがフォールスパスであるか設定し、フォールスパスについては、論理合成やタイミング検証を行わないのが一般的である。ネットリスト生成ツール等にフォールスパスを設定するために、動作合成後の回路情報からフォールスパスを抽出する方法が知られている(例えば、特許文献1、2参照)。
図16に、従来のフォールスパスを抽出する回路設計支援システムを示す。この回路設計支援システム1100は、動作記述を動作合成し、当該動作合成された回路情報に基づいて、フォールスパスを抽出するシステムである。図に示されるように、回路設計支援システム1100は、動作記述格納手段1101、動作合成手段1102、動作合成回路情報格納手段1103、フォールスパス抽出手段1120、フォールスパス情報格納手段1104を備えており、さらに、フォールスパス抽出手段1120は、アクティブ条件設定手段1121、アクティブ条件付き回路情報格納手段1122、フォールスパス探索手段1125、アクティブパス情報格納手段1126、転送路情報格納手段1127を備えている。
動作合成手段1102は、動作記述格納手段1101に格納された動作記述を動作合成し、RTL回路を生成する。このとき動作合成手段1102は、動作合成の過程で生成されるデータフローグラフ、リソース割り当て情報、RTL回路を構成するデータパス及び制御回路を動作合成回路情報格納手段1103に格納する。
アクティブ条件設定手段1121は、動作合成回路情報格納手段1103に格納されたデータフローグラフ、リソース割り当て情報、データパス及び制御回路に基づき、データパスを構成するネットのそれぞれがアクティブになる条件を抽出し、当該ネットにアクティブ条件を関連付けて、アクティブ条件付き回路情報格納手段1122に格納する。
フォールスパス探索手段1125は、アクティブ条件付き回路情報格納手段1122に格納された、ネットに関連付けられたアクティブ条件に基づき、パスに含まれるネットのアクティブ条件の論理積をとり、当該パスがフォールスパスかどうか判定し、フォールスパスと判定されたパスをフォールスパス情報格納手段1104に格納する。また、フォールスパス探索手段1125は、フォールスパスを探索する過程で、探索対象となるアクティブパスをアクティブパス情報格納手段1126に格納し、探索先となるネットを転送路情報格納手段1127に格納する。
フォールスパス情報格納手段1104の情報に基づいて、ネットリスト生成ツール等にフォールスパスが設定される。一般に、ネットリスト生成ツールやSTAツール、配置配線ツール等にフォールスパスを設定する場合、RTL回路のインスタンスを指定してフォールスパスを特定するため、フォールスパス情報格納手段1104には、フォールスパスに含まれるインスタンスのみが格納されている。
インスタンスによってパスを指定した場合、指定したインスタンスから構成されるパスが複数存在することがある。このため、フォールスパスを指定した場合でも、その指定にトゥルーパスが含まれてしまうことがありうる。
図17は、フォールスパスの指定にトゥルーパスが含まれる例を示している。図において、R1からR4はインスタンス、C1からC4はアクティブ条件であり、パスa及びパスbはR1からR2までのパスである。パスaのアクティブ条件はC1×C2=0(×は論理積)であるから、パスaはフォールスパスとなる。また、パスbのアクティブ条件はC1×C3×C4≠0であるから、パスbはトゥルーパスとなる。この場合に、フォールスパスであるパスaをインスタンスで指定すると、R1−R2−R3となるが、この指定では、R1−R2−R4−R3からなるトゥルーパスのパスbが含まれてしまうことになる。
論理合成ツールやSTAツール、配置配線ツール等では、指定されたインスタンスから構成されるパスをフォールスパスとして、タイミング検証、最適化等を行わない。したがって、上記のようにフォールスパスの指定にトゥルーパスが含まれる場合、当該トゥルーパスについてもタイミング検証、最適化等が行われないという問題がある。
尚、動作合成において、フォールスパスが遅延違反しないように演算器を割り当てる方法が知られている(例えば、特許文献3参照)。
特開2001−209670号公報 特開2002−342403号公報 特開2003−76728号公報
このように、従来の回路設計支援システムでは、フォールスパスをインスタンス指定した場合、トゥルーパスについてタイミング検証、最適化等が行われない場合があるという問題点があった。
本発明は、このような問題点を解決するためになされたもので、フォールスパスの検出精度を向上するとともに、タイミング検証、ネットリストの最適化を効率よく行うことができる回路設計支援システムを提供することを目的とする。
本発明にかかるプログラムは、複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する処理をコンピュータに実行させるプログラムであって、前記処理は、動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得するステップと、前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定するステップと、前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定するステップと、前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定するステップと、前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定するステップと、前記パスのアクティブ条件に基づき、フォールスパスを検出するステップと、を備えるものである。これにより、フォールスパスの検出精度を向上することができる。
上述のプログラムにおいて、前記回路情報は、データフローグラフと素子割り当て情報とを有し、前記転送路のアクティブ条件を決定するステップは、前記データパスと前記素子割り当て情報により対応付けられた、データフローグラフの状態により、当該転送路のアクティブ条件を決定してもよい。これにより、効率よくフォールスパスを検出することができる。
上述のプログラムにおいて、前記迂回パスのアクティブ条件を決定するステップは、前記複数の転送路のそれぞれについて、当該転送路の入力側の素子と出力側の素子を含むパスを前記データパスから検索し、当該転送路の迂回パスを決定するステップと、前記迂回パスに含まれる転送路のアクティブ条件に基づいて、前記迂回パスのアクティブ条件を決定するステップと、を備えていてもよい。これにより、効果的にフォールスパスの検出精度を向上することができる。
上述のプログラムにおいて、前記迂回パスのアクティブ条件は、当該迂回パスに含まれる複数の転送路のアクティブ条件のそれぞれの論理積であり、前記迂回データパスのアクティブ条件は、当該迂回データパスに含まれる転送路のアクティブ条件と、当該迂回データパスに含まれる迂回パスのアクティブ条件との論理和であり、前記パスのアクティブ条件は、当該パスに含まれる複数の転送路のアクティブ条件と、当該パスに含まれる複数の迂回データパスのアクティブ条件とのそれぞれの論理積であり、前記フォールスパスを検出するステップは、前記パスのアクティブ条件の論理演算が0の場合に、当該パスをフォールスパスと決定してもよい。これにより、フォールスパスの検出精度をさらに向上することができる。
上述のプログラムにおいて、前記検出したフォールスパスを、当該フォールスパスに含まれる複数のインスタンスにより出力するステップをさらに備えていてもよい。これにより、フォールスパスの検出結果を論理合成ツール等で利用することができる。
本発明にかかるプログラムは、複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する処理をコンピュータに実行させるプログラムであって、前記処理は、動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得するステップと、前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定するステップと、前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定するステップと、前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去するステップと、を備えるものである。これにより、フォールスパスを精度よく検出し、さらに、遅延レポートの精度を向上することができる。
本発明にかかる設計方法は、複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する設計方法であって、動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得するステップと、前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定するステップと、前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定するステップと、前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定するステップと、前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定するステップと、前記パスのアクティブ条件に基づき、フォールスパスを検出するステップと、を備えるものである。これにより、フォールスパスの検出精度を向上することができる。
本発明にかかる設計方法は、複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する設計方法であって、動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得するステップと、前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定するステップと、前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定するステップと、前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去するステップと、を備えるものである。これにより、フォールスパスを精度よく検出し、さらに、遅延レポートの精度を向上することができる。
本発明にかかる回路設計支援システムは、複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する回路設計支援システムであって、動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得する手段と、前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定する手段と、前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定する手段と、前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定する手段と、前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定する手段と、前記パスのアクティブ条件に基づき、フォールスパスを検出する手段と、を備えるものである。これにより、フォールスパスの検出精度を向上することができる。
本発明にかかる回路設計支援システムは、複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する回路設計支援システムであって、動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得する手段と、前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定する手段と、前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定する手段と、前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去する手段と、を備えるものである。これにより、フォールスパスを精度よく検出し、さらに、遅延レポートの精度を向上することができる。
本発明によれば、フォールスパスの検出精度を向上するとともに、論理合成やタイミング検証、ネットリストの最適化を効率よく行うことができる回路設計支援システムを提供することができる。
以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。尚、各図において同一の符号を付されたものは同様の要素を示しており、適宜、説明を省略する。
発明の実施の形態1.
まず、図1のブロック図を用いて、本発明の実施の形態1にかかる回路設計支援システムの構成について説明する。この回路設計支援システム1は、動作記述を動作合成し、当該動作合成された回路情報に基づいて、フォールスパスを精度よく抽出する処理を実行するシステムである。回路設計支援システム1は、パーソナルコンピュータやサーバコンピュータ等のコンピュータにより構成され、図中の各ブロックは、ハードウェアもしくはハードウェア上で実行されるソフトウェアによって構成される。尚、回路設計支援システム1は、単一のコンピュータでなくとも、複数のコンピュータによって構成することも可能である。
回路設計支援システム1は、図に示されるように、動作記述格納手段101、動作合成手段102、動作合成回路情報格納手段103、フォールスパス抽出手段120及びフォールスパス情報格納手段104を備えている。さらに、フォールスパス抽出手段120は、アクティブ条件設定手段121、アクティブ条件付き回路情報格納手段122、迂回パス条件設定手段123、迂回パス条件付き回路情報格納手段124、フォールスパス探索手段125、アクティブパス情報格納手段126、転送路情報格納手段127を備えている。
回路設計支援システム1は、この他、図示しない、キーボードやマウス等の入力手段や、CRTやLCD等表示手段を備えており、ユーザから情報を入力したり、各処理の結果をユーザへ表示することができる。例えば、動作記述格納手段101を設けずに、ユーザから入力手段を介して入力してもよいし、フォールスパス情報格納手段104を設けずに、ユーザへ表示手段を介して表示してもよい。
動作合成手段102、アクティブ条件設定手段121、迂回パス条件設定手段123及びフォールスパス探索手段125は、例えば、CPU等が記憶装置に格納されたアプリケーションプログラムに従って処理を実行し、他のハードウェア構成と協働することによって構成することができる。また、動作記述格納手段101、動作合成回路情報格納手段103、アクティブ条件付き回路情報格納手段122、迂回パス条件付き回路情報格納手段124、アクティブパス情報格納手段126、フォールスパス情報格納手段104は、ハードディスク等の内部記憶手段や光ディスク等の外部記憶手段により構成することができる。
動作記述格納手段101には、動作記述が格納されている。動作記述は、後述するようにC言語等により記述され、例えば、設計者等のユーザにより入力手段を介して入力され、動作記述格納手段101にあらかじめ格納されている。
動作合成回路情報格納手段103には、後述するデータフローグラフ、RTL回路を構成するデータパスと制御回路(FSM)の情報、リソース割り当て情報等が格納されている。これらの情報は、動作合成手段102によって生成され、格納されている。データフローグラフは、動作記述の変数と演算について、演算の実行順序を表したグラフである。データパスは、データフローグラフに基づいて、演算器やレジスタ等を割り当てた回路である。制御回路は、データフローグラフに基づいて、データパスのデータの流れや演算を制御する制御回路である。リソース割り当て情報は、データフローグラフの要素とデータパスの要素を対応付けるデータである。
動作合成手段102は、動作記述格納手段101に格納された動作記述を入力し、これを動作合成することにより、RTL回路を生成する。例えば、動作合成手段102は、入力された動作記述に基づいてデータフローグラフを生成し、当該データフローグラフをスケジューリング、アロケーション等することによりデータパスを生成するとともに制御回路、リソース割り当て情報等を生成する。動作合成手段102は、生成したデータフローグラフ、データパス、制御回路の情報、リソース割り当て情報を動作合成回路情報格納手段103に格納する。
アクティブ条件付き回路情報格納手段122には、後述するアクティブ条件付き回路情報が格納されている。アクティブ条件付き回路情報は、データパスに含まれるパスを構成するネットと、それぞれのネットのアクティブ条件が関連付けられたデータであり、アクティブ条件設定手段121により、生成され、格納されている。
アクティブ条件設定手段121は、動作合成回路情報格納手段103に格納されたデータフローグラフ、データパス、制御回路、リソース割り当て情報に基づき、データパスに含まれるパスを構成するネットのそれぞれについて、アクティブになる条件を抽出し、当該ネットにアクティブ条件を関連付けて、アクティブ条件付き回路情報を生成し、アクティブ条件付き回路情報格納手段122に格納する。
例えば、アクティブ条件設定手段121は、動作合成回路情報格納手段103に格納されたデータフローグラフ、データパス、制御回路、リソース割り当て情報を読み出す。当該データパス中のネットのそれぞれについて、リソース割り当て情報から、当該ネットに対応するデータフローを特定する。当該データフローの状態や分岐等に基づいて、当該ネットにデータが流れる条件を求め条件を表す論理式を決定する。当該論理式を各ネットに対応付けて、アクティブ条件付き回路情報を生成し、アクティブ条件付き回路情報格納手段122に格納する。
迂回パス条件付き回路情報格納手段124には、後述する迂回パス条件付き回路情報が格納されている。迂回パス条件付き回路情報は、データパスに含まれるネットに対応付けられたアクティブ条件に、さらに、当該ネットの迂回パスのアクティブ条件を加えたデータであり、迂回パス条件設定手段123により、生成され、格納されている。
迂回パス条件設定手段123は、アクティブ条件付き回路情報格納手段122に格納されたアクティブ条件付き回路情報に基づき、アクティブ条件が付けられた各ネットの前後のインスタンス間を結ぶ全てのパスを探索し、それらのパスのアクティブ条件を、当該ネットのアクティブ条件に追加し、迂回パス条件付き回路情報を生成し、迂回パス条件付き回路情報格納手段124に格納する。迂回パス条件設定手段123の処理の詳細については、後述する。
アクティブパス情報格納手段126は、フォールスパス探索手段125が探索対象として処理するアクティブパスに関する情報であるアクティブパス情報を格納する。転送路情報格納手段127には、フォールスパス探索手段125が探索先として処理するネットに関する情報である転送路情報を格納する。
フォールスパス情報格納手段104には、フォールスパス情報が格納されている。フォールスパス情報は、各ネットから構成されるフォールスパスについて、インスタンス指定のパスが含まれており、フォールスパス探索手段125により、生成され、格納されている。このフォールスパス情報により、ネット生成ツールや静的タイミング解析ツール、配置配線ツールに対してフォールスパスを指定することができる。
フォールスパス探索手段125は、迂回パス条件付き回路情報格納手段に格納された迂回パス条件付き回路情報からフォールスパスを探索し、探索したフォールスパスをフォールスパス情報格納手段104へ出力する。
例えば、フォールスパス探索手段125は、迂回パス条件付き回路情報格納手段124の迂回パス条件付き回路情報に基づいてデータパス中の全てのネットについて処理を行う。まず、迂回パス条件付き回路情報からデータパスに含まれる全てのネットのデータを読み出す。次いで、ネットの入力側のインスタンスが、入力端子または、記憶素子となるまで探索し、全てのネットと当該ネットのアクティブ条件を特定する。次いで、探索したネットに他のネットを連結しパスを構築する。次いで、構築したパスに含まれる各ネットのアクティブ条件の論理積をとり、当該パスがトゥルーパスかフォールスパスか判定する。論理積が0であれば、フォールスパスと判定し、論理積が0以外であれば、トゥルーパスと判定する。当該パスがフォールスパスの場合、フォールスパス情報格納手段104へ当該パスのインスタンスを格納する。当該パスがトゥルーパスであれば、さらに他のネットを連結してパスを構築し、トゥルーパスかフォールスパスか判定する。
また、フォールスパス探索手段125は、迂回パス条件付き回路情報格納手段124から読み出した全てのネットのデータを、アクティブパス情報格納手段126に格納し、ネットを一つずつ取り出しながら、当該ネットを含むパスの探索を行う。さらに、フォールスパス探索手段125は、アクティブパス情報格納手段126から取り出したネットの入力側のインスタンスに接続されている全てのネットを、転送路情報格納手段127に格納し、ネットを一つずつ取り出しながら、パスを構築し、フォールスパスの判定を行う。
尚、この例では、任意のネットの入力側に他のネットを連結しながらフォールスパスを探索したが、これに限らず、反対の方向に探索、すなわち、任意のネットの出力側に他のネットを連結しながらフォールスパスを探索してもよい。
次に、図2乃至図13を用いて、図1で示した各情報格納手段に格納されるデータの例について説明する。
図2は、動作記述格納手段101に格納される動作記述の例を示している。動作記述は、回路の動作を表しており、例えば、C言語等により記述されているが、SystemC、SpecC、ANSI−C、それらの派生言語、System Verilog等により記述されていてもよい。図の例において、第1行目から順に実行される動作が記述されており、R1からR9はデータ(変数)を示している。図に示されるように、この動作記述では、第1行目において、R4とR7を乗算した結果をR6とし、第2行目において、R1よりR2が大きいか否か判定し、当該判定が真であれば、第3行目において、R4とR5を乗算した結果をR3とし、当該判定が偽であれば、第5行目において、R8とR5を乗算しさらにR9を加算した結果をR6とするように記述されている。以下の図3乃至図13は、図2の動作記述に基づいて、各手段の処理が行なわれ格納されたデータの例である。
図3は、図2の動作記述から生成されたデータフローグラフの例を示している。データフローグラフは、節点と枝によって構成され、枝はデータを表し、節点は演算を表しており、節点の上側に連結された枝が演算の入力枝であり、節点の下側に連結された枝が演算の出力枝である。
図の例において、R1からR9は図2と同じデータを示し、31から35は図2の各演算を示している。C1は、R1とR2の演算32の結果(ここでは比較演算の結果)のデータである。データフローグラフは、動作合成におけるスケジューリングにより、各節点の演算がクロックサイクルに割り当てられている。この例では、状態ST1と状態ST2がそれぞれ1サイクルで実行するようにスケジューリングされている。
図に示されるように、このデータフローグラフでは、演算31には、R4とR7が入力され、当該演算結果がR6に出力される。すなわち、図2の第1行目に対応しており、状態ST1に割り当てられている。また、演算32には、R1とR2が入力され、演算結果がC1に出力される。すなわち、図2の第2行目に対応しており、状態ST2に割り当てられている。同様に、図2の第3行目以降も状態ST2に割り当てられている。
図4は、図3のデータフローグラフから生成された制御回路の例を示している。制御回路は、ステートマシンにより記述され、同じデータフローグラフから生成されるデータパスの状態遷移を表している。この例では、状態ST1において、図3の状態ST1の演算、すなわち図2の第1行目の演算を実行し、状態ST2において、図3の状態ST2の演算、すなわち図2の第2行目以降の演算を実行するように、データパスを制御する。
図5は、図3のデータフローグラフから生成されたデータパスの例を示している。データパスは、動作合成において、スケジューリングの後、アロケーションにより、演算器やレジスタが割り当てられ、さらに、演算器やレジスタを共有するためにマルチプレクサやバスが割り当てられて生成される。データパスは、データフローグラフの枝や節点に対応した回路のパスを表している。
この例では、R1からR9はレジスタであり、F1からF3は演算器、51から53は、マルチプレクサである。F1は図3の演算32、F2は図3の演算33及び34、F3は図3の演算35に対応している。
図4で示した制御回路によって、マルチプレクサ51から53の切り替えが制御され、データパスの回路が動作する。例えば、状態ST1においては、マルチプレクサ51がR4からの入力を選択し、マルチプレクサ52がR7からの入力を選択し、マルチプレクサ53が演算器F2からの入力を選択するように切り替え、R4とR7にデータを入力すると、R6に演算結果が出力される。
図6は、図5のデータパスにアクティブ条件を関連付けたアクティブ条件付き回路情報の例を示している。図3のデータフローグラフと図4の制御回路の情報に基づいて、図5のデータパスの各ネットにアクティブ条件が付けてられている。
図において、61、62、63はネットを示している。例えば、ネット61aには、「ST2」が条件付けられており、状態ST2の場合にこのネットがアクティブになることを表している。ネット62cには、「ST2×!C1」が条件付けられている。ここで、「×」は論理積、「!C1」はC1の否定を表しており、状態ST2で、かつ、図3の演算結果C1が偽の場合に、このネットがアクティブになることを表している。ネット62bには、「ST1+ST2×C1」が条件付けられている。ここで、「+」は論理和を示しており、状態ST1の場合、または、状態ST2でかつ演算結果C1が真の場合に、このネットがアクティブになることを表している。
図7は、図6におけるレジスタR1とレジスタR6の間のパスの例を示している。図中のパスaにおける、各ネットのアクティブ条件は、ネット61aが「ST2」、ネット62aが「ST2」、ネット63bが「ST1」であり、これらの論理積がパスaのアクティブ条件となる。状態ST2と状態ST1は、別のクロックサイクルであり、同時に動作しないため、ST1とST2の論理積は0である。したがって、パスaのアクティブ条件は、ST2×ST2×ST1=0となり、パスaはフォールスパスであると判断することができる。
また、パスbにおける、各ネットのアクティブ条件は、ネット61aが「ST2」、ネット62aが「ST2」、ネット63cが「ST2×!C1」、ネット63eが「ST2×!C1」である。状態ST2において比較演算C1が動作するため、ST2とC1の論理積は0ではない。したがって、パスbのアクティブ条件は、ST2×ST2×ST2×!C1×ST2×!C1=ST2×!C1となり、パスbはトゥルーパスであると判断することができる。このように、アクティブ条件付き回路情報では、当該ネットに迂回するパスが存在する場合でも、当該ネットのみのアクティブ条件が付けられている。
図8は、図7のアクティブ条件付き回路情報が格納される場合の具体的なデータの例である。アクティブ条件付き回路情報には、ネットと、当該ネットの入力側/出力側インスタンス、当該ネットのアクティブ条件が含まれている。例えば、ネット61aには、入力側インスタンスにR1、出力側インスタンスにF1、アクティブ条件にST2が対応付けられ、格納されている。この例では、ネットを基にして、その他のデータを対応付けているが、これに限らず、インスタンスを基にしてもよい。
図9は、図6のアクティブ条件付き回路情報に迂回パスのアクティブ条件を付けた、迂回パス条件付き回路情報の例を示している。迂回パスのアクティブ条件は、迂回パス条件設定手段123により、ネットのアクティブ条件に加えられる。この例では、太線で示したネット63bに、迂回パスであるネット63c及び63eのアクティブ条件「ST2×!C1」を加えた「ST1+ST2×!C1」が条件付けられている。このように、ネットのアクティブ条件と迂回パスのアクティブ条件との論理和が、当該ネットのアクティブ条件となる。
図10は、図9におけるレジスタR1とレジスタR6の間のパスの例を示している。図7と比べて、ネット63bのアクティブ条件に迂回パスのアクティブ条件が加えられて「ST1+ST2×!C1」となり、パスaのアクティブ条件は、ST2×ST2×(ST1+ST2×!C1)=ST2×!C1となる。従って、図7と異なり、パスaは、トゥルーパスであると判断することができる。
図11は、図10の迂回パス付き回路情報が格納される場合の具体的なデータの例である。迂回パス条件付き回路情報には、ネットと、当該ネットの入力側/出力側インスタンス、当該ネットの迂回パス付きアクティブ条件が含まれている。図8と比べて、アクティブ条件に迂回パスのアクティブ条件が加えられているが、それ以外は図8と同じである。
次に、図12のフローチャートを用いて、本発明の実施の形態1にかかる迂回パス条件設定処理について説明する。この処理は、迂回パス条件設定手段123における処理であり、例えば、CPU等において所定のアプリケーションプログラムにより実行される。
まず、回路中のネットを全て処理したかどうか判定する(S101)。アクティブ条件付き回路情報格納手段122に格納されたアクティブ条件付き回路情報中のネットの全てについて、S102以降の処理を行ったかどうか判定する。例えば、図8のデータの例では、ネット61aからネット63eの全てのネットの処理が終了したかどうか判定する。
S101において、全てのネットの処理が終了したと判定した場合、迂回パス条件設定処理を終了する。
S101において、処理していないネットが残っていると判定した場合、回路中のネットを1つ取り出す(S102)。アクティブ条件付き回路情報格納手段122に格納されたアクティブ条件付き回路情報中のネットの1つについて、データを読み出し、当該ネットについて、S103以降の処理を行う。すでにS103以降の処理を行ったネットがある場合には、まだ、当該処理を行っていないネットのデータを読み出す。アクティブ条件付き回路情報からネットを読み出す順序は、任意の順序でよい。
例えば、図8のデータの例では、ネット63bが未処理の場合、ネット63bのデータを読み出し、ネット63bの処理が終了している場合、次のネット63cのデータを読み出す。ここでは、ネット63bのデータを読み出した例について、以下の処理を説明する。
次いで、対象ネットの出力側インスタンスについて、そのインスタンスの入力側に接続されている全てのネットを探索パスリストに登録する(S103)。S102で読み出したネットのデータから、当該ネットの出力側に接続されているインスタンスを参照する。そして、アクティブ条件付き回路情報から、当該インスタンスの入力側に接続されている全てのネットを取得する。その後、取得した全てのネットを探索パスリストに登録する。
尚、この例では、インスタンスの入力側にネットを連結しながら迂回パスを探索するが、これに限らず、反対の方向に探索、すなわち、対象ネットの入力側のインスタンスについて、その出力側にネットを連結しながら迂回パスを探索してもよい。
例えば、S102で読み出したネット63bのデータより、出力側のインスタンスはR6である。このR6の入力側に接続されているネットは、図8のアクティブ条件付き回路情報の例では、63bと63eである。ネット63bは、当該処理中のネットであるので、対象外とし、ここでは、ネット63eのみからなるパスであるパス63eを探索パスリストに登録する。探索パスリストにおいては、1つのネットのみであってもパスとする。このときの、探索パスリストのデータの例を図13(a)に示す。図に示されるように、探索パスリストは、当該処理で探索する探索パスと、当該探索パスの入力側/出力側インスタンスと、当該探索パスのアクティブ条件を含んでいる。このように、探索パスリストには、1つ以上のネットが登録され、この探索パスについて、S104以降の処理を行う。
次いで、探索パスリストが空かどうか判定する(S104)。S103で登録された探索パスリスト中のパスの全てについて、S105以降の処理を行ったかどうかを、探索パスリストに登録されているパスの有無により判定する。例えば、図13(a)のデータの例では、パス63eが登録されているので、S105以降の処理を行う。
S104において、探索パスリストが空であると判断した場合、再度、S101を実行し、次のネットの処理を行う。また、このとき、処理が終了したネットのデータを、迂回パス付き回路情報格納手段124に格納してもよい。
S104において、探索パスリストが空ではないと判断された場合、探索パスリスト中の任意のパスを取り出す(S105)。S103で登録した探索パスリスト中の探索パスの1つについて、データを読み出し、当該探索パスについて、S106以降の処理を行う。このとき、読み出したパスのデータを探索パスリストから削除する。例えば、図13(a)のデータの例では、パス63eのデータを読み出し、パス63eのデータを探索パスリストから削除する。ここでは、パス63eのデータを読み出した例について、以下の処理を説明する。
次いで、対象パスがアクティブかどうか判定する(S106)。S105で読み出した探索パスのデータから、当該探索パスのアクティブ条件を参照し、当該探索パスがトゥルーパスかあるいはフォールスパスかどうか判定する。例えば、S105で読み出したパス63eのデータより、アクティブ条件は「ST2×!C1」である。したがって、パス63eのパスは、トゥルーパスであると判定される。
S106において、対象パスがフォールスパスと判断された場合、再度、S104を実行し、探索パスリストに登録されているパスについて処理を行う。
S106において、対象パスがトゥルーパスと判断された場合、さらに、対象パスの先頭インスタンスが対象ネットの入力側インスタンスと同一かどうか判定する(S107)。S105で読み出した探索パスのデータから、当該探索パスの入力側(先頭)に接続されているインスタンスを参照する。そして、当該探索パスの入力側インスタンスと、S102で読み出したネットの入力側のインスタンスを比較し、同一かどうか判定する。
例えば、S105で読み出したパス63eのデータより、入力側のインスタンスはF3である。また、S102で読み出したネット63bの入力側インスタンスはF2である。したがって、探索パスのネット63eの入力側インスタンスと、探索パスの処理中であるネット63eの入力側インスタンスは同一ではないと判定される。
S107において、対象パスの先頭インスタンスが対象ネットの入力側インスタンスと同一ではないと判定された場合、当該パスを迂回パスではないとして、対象パスとその入力側に接続されている各ネットとで構成されるパスを探索パスリストに登録する(S109)。その後、再度、S104を実行し、次のパスについて処理を行う。
すなわち、S105で読み出した探索パスのデータから、当該探索パスの入力側に接続されているインスタンスを参照する。そして、アクティブ条件付き回路情報から、当該インスタンスの入力側に接続されている全てのネットを取得する。その後、当該探索パスと取得した全てのネットにより構成されるパスを新たに生成し、当該新たなパスを探索パスリストに登録する。
例えば、S105で読み出したパス63eのデータより、入力側のインスタンスはF3である。このF3の入力側に接続されているネットは、図8のアクティブ条件付き回路情報の例では、ネット63cとネット63dである。したがって、ネット63cとネット63eから構成されるパスであるパス63c−63eと、ネット63dとネット63eから構成されるパスであるパス63d−63eを探索パスリストに登録する。このときの探索パスリストのデータの例を図13(b)に示す。その後、登録したパス63c−63e、パス63d−63eについて、S104から処理が行われる。
S107において、対象パスの先頭インスタンスが対象ネットの入力側インスタンスと同一と判定された場合、当該パスが迂回パスであるとして、対象パスのアクティブ条件を対象ネットのアクティブ条件に追加する(S108)。
すなわち、S105で読み出した探索パスのデータから、当該探索パスのアクティブ条件を参照する。そして、当該アクティブ条件をS102で読み出したネットのアクティブ条件に論理和で、追加する。
例えば、図13(b)のパス63c−63eのデータを処理する場合、当該データの入力側インスタンスは、F2であるから、S102で読み出したネット63bの入力側インスタンスと同一である。したがって、パス63c−63eのアクティブ条件「ST2×!C1」を、ネット63bのアクティブ条件「ST1」に論理和で加える。すなわち、ネット63bのアクティブ条件は、図11に示すように、「ST1+ST2×!C1」となる。
このようにして、アクティブ条件が付けられたデータパスのネットについて、当該ネットの迂回パスのアクティブ条件をさらに加えることができる。
このような構成により、動作合成されたデータパスの中からフォールスパスを抽出し、インスタンス指定のフォールスパスを出力することができる。特に、それぞれのネットに迂回パスが存在する場合には、迂回パスのアクティブ条件も当該ネットのアクティブ条件に加えることにより、フォールスパスをインスタンス指定しても、トゥルーパスを含むことはなくなる。すなわち、インスタンス指定で対象となるすべてのパスがフォールスパスであることを保証できるため、フォールスパスを正確に指定することが可能となる。したがって、ネットリスト生成ツールや配置配線ツール、静的タイミング解析ツールに対してフォールスパスを正確に指定することができ、不要なタイミング検証、最適化等を行うことがなくなり、設計作業の効率を向上することができる。
発明の実施の形態2.
次に、図14を用いて、本発明の実施の形態2にかかる回路設計支援システムの構成について説明する。この回路設計支援システム1は、図1と同様のシステムであり、図1と同様の方法で抽出したフォールスパスに基づいて、ネットリストの生成や静的タイミング解析を行い、さらに、静的タイミング解析の結果得られる遅延レポートから不要なフォールスパスを除去する処理を実行するシステムである。
図に示されるように、回路設計支援システム1は、回路設計支援手段100、入力手段110、表示手段111を備えている。回路設計支援手段100は、図1の構成に加えて、ネットリスト生成手段105、ネットリスト情報格納手段106、静的タイミング解析手段107、クリティカルパス情報格納手段108、フォールスパス除去手段109、RTL回路情報格納手段110、合成情報格納手段111を備えている。
本実施形態の動作合成手段102は、図1のフォールスパス抽出手段120を含んでいる。RTL回路情報格納手段110には、図1の動作合成回路情報格納手段103に含まれるRTL回路が格納されている。合成情報格納手段111には、図1の動作合成回路情報格納手段103と同様の回路情報が格納されている。
ネットリスト生成手段105は、動作合成回路情報格納手段103に格納されたRTL回路を論理合成することにより、静的タイミング解析可能なネットリストを生成し、ネットリスト情報格納手段106に格納する。このとき、ネットリスト生成手段105は、フォールスパス情報格納手段104に格納されたインスタンス指定のフォールスパスに対応する回路の最適化を実施しなくてもよい。これにより、論理合成処理にかかる時間を短縮することができる。
尚、ネットリスト生成手段105は、表示手段111等に出力してもよいし、その他の装置に、ネットリストを出力してもよい。
静的タイミング解析手段107は、ネットリスト情報格納手段106に格納されたネットリストから静的なタイミング特性を解析してタイミング検証を行い、遅延制約を満たしていないパスであるクリティカルパス(遅延パスともいう)を抽出し、複数のクリティカルパスを含む遅延レポートをクリティカルパス情報格納手段108に格納する。このとき、静的タイミング解析手段107は、フォールスパス情報格納手段104に格納されたインスタンス指定のフォールスパスについては、タイミング検証を行わなくてもよい。また、フォールスパスについては、遅延違反した場合でも、クリティカルパスとして出力しなくてもよい。
フォールスパス除去手段109は、クリティカルパス情報格納手段108に格納されているクリティカルパスを解析し、当該クリティカルパスに含まれるフォールスパスを除去し、フォールスパスを除去したクリティカルパスを表示手段111に出力する。
フォールスパス除去手段109は、クリティカルパス情報格納手段108に格納されている全てのクリティカルパスについて処理を行う。まず、クリティカルパス情報格納手段108に格納されているクリティカルパスを読み出す。次いで、当該クリティカルパスがフォールスパスかどうか判定する。例えば、当該クリティカルパスを構成する各ネットのアクティブ条件を合成情報格納手段111から取得し、各ネットのアクティブ条件の論理積により、フォールスパスかどうか判定する。当該クリティカルパスがフォールスパスの場合、当該クリティカルパスをクリティカルパス情報格納手段108から削除する。フォールスパスに該当する全てのクリティカルパスをクリティカルパス情報格納手段108から削除した後、当該クリティカルパス情報格納手段108を表示手段111に出力する。尚、クリティカルパス情報格納手段108のデータを直接削除せずに、表示手段111にのみフォールスパスを削除したデータを出力してもよい。
尚、ここでは、動作合成回路情報格納手段103と同様の回路情報を含む合成情報格納手段111の情報に基づいて、クリティカルパスからフォールスパスを除去しているが、その他の情報に基づいてフォールスパスを除去してもよい。例えば、図1で示した、アクティブ条件付き回路情報格納手段122や迂回パス条件付き回路情報格納手段124の情報に基づいて同様に、クリティカルパスからフォールスパスを除去してもよい。
このような構成により、フォールスパス情報格納手段104に全てのフォールスパスが含まれない場合であっても、動作合成手段やフォールスパス抽出手段が出力する情報に基づいて、フォールスパスに対応するクリティカルパスを検出し、当該クリティカルパスを遅延レポートから除去することができる。すなわち、フォールスパスを含まない遅延レポートを生成することができ、遅延レポートの精度を向上することができる。
その他の発明の実施の形態.
上述した回路設計支援システム1を実現するためのハードウェア構成の例を図15に示す。回路設計支援システム1は、典型的なコンピュータ・システムが利用可能であり、中央処理装置(CPU)201とメモリ204とを含んでいる。
CPU201とメモリ204とは、バスを介して補助記憶装置としてのハードディスク装置213に接続される。フレキシブルディスク装置220、ハードディスク装置213・230、CD−ROMドライブ226・229、MOドライブ228等の記憶媒体駆動装置は、フレキシブルディスク・コントローラ219、IDEコントローラ225、SCSIコントローラ227等の各種コントローラを介してバスに接続される。フレキシブルディスク装置220等の記憶媒体駆動装置には、フレキシブルディスク等の可搬型記憶媒体が挿入される。
記憶媒体にはオペレーティングシステムと共同してCPU201等に命令を与え、回路設計支援システム1の機能を実施するためのコンピュータ・プログラムを記憶することができる。コンピュータ・プログラムは、メモリ204にロードされることによって実行される。コンピュータ・プログラムは圧縮し、又、複数に分割して記憶媒体に記憶することができる。ハードウェア構成は、典型的には、ユーザ・インターフェース・ハードウェアを備える。
ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティングデバイス(マウス207、ジョイスティック等)やキーボード206、あるいは、視覚データをユーザに提示するための液晶ディスプレイなどの表示装置211やCRTディスプレイ212がある。
また、パラレルポート216を介してプリンタを接続するも可能である。このコンピュータ・システムは、シリアルポート215を介してモデムを接続することが可能であり、シリアルポート215およびモデムまたはトークンリングや通信アダプタ218等を介してネットワークに接続し、他のコンピュータ・システムと通信を行っている。尚、上記構成は必要に応じて省略することができる。
本発明にかかる回路設計支援システムの構成例を示すブロック図である。 本発明にかかる回路設計支援システムで用いる動作記述のデータの例を示す図である。 本発明にかかる回路設計支援システムで用いるデータフローグラフのデータの例を示す図である。 本発明にかかる回路設計支援システムで用いる制御回路のデータの例を示す図である。 本発明にかかる回路設計支援システムで用いるデータパスのデータの例を示す図である。 本発明にかかる回路設計支援システムで用いるアクティブ条件付き回路情報のデータ例を示す図である。 本発明にかかる回路設計支援システムで用いるアクティブ条件付き回路情報のデータの例を示す図である。 本発明にかかる回路設計支援システムで用いるアクティブ条件付き回路情報のデータの例を示す図である。 本発明にかかる回路設計支援システムで用いる迂回パス条件付き回路情報のデータの例を示す図である。 本発明にかかる回路設計支援システムで用いる迂回パス条件付き回路情報のデータの例を示す図である。 本発明にかかる回路設計支援システムで用いる迂回パス条件付き回路情報のデータの例を示す図である。 本発明にかかる迂回パス条件設定処理を示すフローチャートである。 本発明にかかる迂回パス条件設定処理で用いる探索パスリストのデータの例を示す図である。 本発明にかかる回路設計支援システムの構成例を示すブロック図である。 本発明にかかる回路設計支援システムのハードウェア構成図である。 従来の回路設計支援システムの構成例を示すブロック図である。 従来の回路設計支援システムのデータパスの例を示す図である。
符号の説明
1 回路設計支援システム
101 動作記述格納手段
102 動作合成手段
103 動作合成回路情報格納手段
104 フォールスパス情報格納手段
120 フォールスパス抽出手段
121 アクティブ条件設定手段
122 アクティブ条件付き回路情報格納手段
123 迂回パス条件設定手段
124 迂回パス条件付き回路情報格納手段
125 フォールスパス探索手段
126 アクティブ情報格納手段

Claims (10)

  1. 複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する処理をコンピュータに実行させるプログラムであって、前記処理は、
    動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得するステップと、
    前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定するステップと、
    前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定するステップと、
    前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定するステップと、
    前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定するステップと、
    前記パスのアクティブ条件に基づき、フォールスパスを検出するステップと、
    を備えるプログラム。
  2. 前記回路情報は、データフローグラフと素子割り当て情報とを有し、
    前記転送路のアクティブ条件を決定するステップは、前記データパスと前記素子割り当て情報により対応付けられた、データフローグラフの状態により、当該転送路のアクティブ条件を決定する、
    請求項1に記載のプログラム。
  3. 前記迂回パスのアクティブ条件を決定するステップは、
    前記複数の転送路のそれぞれについて、当該転送路の入力側の素子と出力側の素子を含むパスを前記データパスから検索し、当該転送路の迂回パスを決定するステップと、
    前記迂回パスに含まれる転送路のアクティブ条件に基づいて、前記迂回パスのアクティブ条件を決定するステップと、
    を備える、請求項1又は2に記載のプログラム。
  4. 前記迂回パスのアクティブ条件は、当該迂回パスに含まれる複数の転送路のアクティブ条件のそれぞれの論理積であり、
    前記迂回データパスのアクティブ条件は、当該迂回データパスに含まれる転送路のアクティブ条件と、当該迂回データパスに含まれる迂回パスのアクティブ条件との論理和であり、
    前記パスのアクティブ条件は、当該パスに含まれる複数の転送路のアクティブ条件と、当該パスに含まれる複数の迂回データパスのアクティブ条件とのそれぞれの論理積であり、
    前記フォールスパスを検出するステップは、前記パスのアクティブ条件の論理演算が0の場合に、当該パスをフォールスパスと決定する、
    請求項1乃至3のいずれかに記載のプログラム。
  5. 前記検出したフォールスパスを、当該フォールスパスに含まれる複数のインスタンスにより出力するステップをさらに備える、
    請求項1乃至4のいずれかに記載のプログラム。
  6. 複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する処理をコンピュータに実行させるプログラムであって、前記処理は、
    動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得するステップと、
    前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定するステップと、
    前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定するステップと、
    前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去するステップと、
    を備えるプログラム。
  7. 複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する設計方法であって、
    動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得するステップと、
    前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定するステップと、
    前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定するステップと、
    前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定するステップと、
    前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定するステップと、
    前記パスのアクティブ条件に基づき、フォールスパスを検出するステップと、
    を備える設計方法。
  8. 複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する設計方法であって、
    動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得するステップと、
    前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定するステップと、
    前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定するステップと、
    前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去するステップと、
    を備える設計方法。
  9. 複数の転送路を含むパスを複数有するデータパスの中から、フォールスパスを検出する回路設計支援システムであって、
    動作合成により生成された回路情報と、前記回路情報に対応するデータパスとを取得する手段と、
    前記回路情報に基づき、前記データパスに含まれる複数の転送路のそれぞれについて、当該転送路にデータが転送される条件であるアクティブ条件を決定する手段と、
    前記転送路のアクティブ条件に基づき、前記複数の転送路のそれぞれについて、当該転送路を迂回してデータを転送する迂回パスのアクティブ条件を決定する手段と、
    前記転送路のアクティブ条件と前記迂回パスのアクティブ条件とに基づき、前記転送路と当該転送路の迂回パスから構成される迂回データパスのアクティブ条件を決定する手段と、
    前記転送路のアクティブ条件と前記迂回データパスのアクティブ条件に基づき、前記データパスに含まれる複数のパスのそれぞれについて、アクティブ条件を決定する手段と、
    前記パスのアクティブ条件に基づき、フォールスパスを検出する手段と、
    を備える回路設計支援システム。
  10. 複数のクリティカルパスを含む遅延情報の中から、フォールスパスを除去する回路設計支援システムであって、
    動作合成により生成された回路情報と、前記回路情報からタイミング検証により生成された遅延情報とを取得する手段と、
    前記回路情報に基づき、前記遅延情報に含まれる複数のクリティカルパスのそれぞれについて、当該クリティカルパスにデータが転送される条件であるアクティブ条件を決定する手段と、
    前記アクティブ条件に基づいて、前記クリティカルパスがフォールスパスかどうか判定する手段と、
    前記クリティカルパスがフォールスパスの場合、前記遅延情報から当該クリティカルパスを除去する手段と、
    を備える回路設計支援システム。
JP2004108988A 2004-04-01 2004-04-01 回路設計支援システム、設計方法及びプログラム Withdrawn JP2005293349A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004108988A JP2005293349A (ja) 2004-04-01 2004-04-01 回路設計支援システム、設計方法及びプログラム
DE102005014712A DE102005014712A1 (de) 2004-04-01 2005-03-31 Schaltungsentwicklungs-Hilfssystem, Schaltungsentwicklungsverfahren und Programmprodukt für eine Schaltungsentwicklung
US11/094,315 US20050223345A1 (en) 2004-04-01 2005-03-31 Circuit design assistant system, circuit design method, and program product for circuit design

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004108988A JP2005293349A (ja) 2004-04-01 2004-04-01 回路設計支援システム、設計方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2005293349A true JP2005293349A (ja) 2005-10-20

Family

ID=35055821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004108988A Withdrawn JP2005293349A (ja) 2004-04-01 2004-04-01 回路設計支援システム、設計方法及びプログラム

Country Status (3)

Country Link
US (1) US20050223345A1 (ja)
JP (1) JP2005293349A (ja)
DE (1) DE102005014712A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233840A (ja) * 2006-03-02 2007-09-13 Fujitsu Ltd フォールスパス記述情報生成プログラム、該プログラムを記録した記録媒体、フォールスパス記述情報生成装置およびフォールスパス記述情報生成方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007017179A (ja) * 2005-07-05 2007-01-25 Matsushita Electric Ind Co Ltd 半導体集積回路の検証方法および検査方法
TW200725415A (en) * 2005-12-30 2007-07-01 Tatung Co Ltd Method for automatically translating high level programming language into hardware description language
US7657855B1 (en) * 2007-05-25 2010-02-02 Xilinx, Inc. Efficient timing graph update for dynamic netlist changes
JP5541011B2 (ja) * 2010-09-01 2014-07-09 富士通株式会社 最適化ネットリスト作成プログラム、最適化ネットリスト作成装置および最適化ネットリスト作成方法
US10331826B2 (en) 2017-04-20 2019-06-25 Texas Instruments Incorporated False path timing exception handler circuit

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69533567T2 (de) * 1994-08-09 2005-11-24 Sun Microsystems, Inc., Mountain View Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen
US5638290A (en) * 1995-04-06 1997-06-10 Vlsi Technology, Inc. Method for eliminating a false critical path in a logic circuit
JP4549571B2 (ja) * 2001-05-16 2010-09-22 ルネサスエレクトロニクス株式会社 フォールスパス検出装置、フォールスパス検出方法およびそのプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233840A (ja) * 2006-03-02 2007-09-13 Fujitsu Ltd フォールスパス記述情報生成プログラム、該プログラムを記録した記録媒体、フォールスパス記述情報生成装置およびフォールスパス記述情報生成方法

Also Published As

Publication number Publication date
DE102005014712A1 (de) 2005-11-10
US20050223345A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
US8686753B1 (en) Partial reconfiguration and in-system debugging
JP2010079737A (ja) タイミング解析支援装置
US6851102B2 (en) Method and program for supporting register-transfer-level design of semiconductor integrated circuit
US20080059923A1 (en) Lsi power consumption calculation method and calculation program
JP3662149B2 (ja) リピータ・セルの配置方法、その配置装置、および記録媒体
JP5063511B2 (ja) クロック駆動の論理回路においてタイミング・クロージャを達成するために制御ロジックのマルチソース・ネットワークを効率的に利用する方法およびシステム
US7464361B2 (en) System and method for asynchronous logic synthesis from high-level synchronous descriptions
JP2005293349A (ja) 回路設計支援システム、設計方法及びプログラム
US9965581B1 (en) Fanout optimization to facilitate timing improvement in circuit designs
JP2005242812A (ja) 回路設計支援システム、回路設計支援方法及びプログラム
US6532584B1 (en) Circuit synthesis method
JP2012174226A (ja) 半導体集積回路のレイアウト設計方法
US7962877B2 (en) Port assignment in hierarchical designs by abstracting macro logic
JP6091140B2 (ja) 情報処理装置及び情報処理方法及びプログラム
US10726182B1 (en) Operator aware finite state machine for circuit design simulation
US8024681B2 (en) Hierarchical HDL processing method and non-transitory computer-readable storage medium
JP2007004563A (ja) ライブラリ作成装置、ライブラリ作成プログラムおよびライブラリ作成方法
CN1656486A (zh) 集成电路设计方法
JP4901702B2 (ja) 回路設計方法
US20240202423A1 (en) Runtime efficient multi-stage router flow for circuit designs
JP5849973B2 (ja) データ処理装置、データ処理システム、データ処理方法、及びデータ処理プログラム
JP4448048B2 (ja) 構造解析プログラム
Corre et al. HLS-based Fast Design Space Exploration of ad hoc hardware accelerators: a key tool for MPSoC Synthesis on FPGA
JP2010146359A (ja) 動作合成システム、動作合成方法、及び動作合成用プログラム
JP2000113019A (ja) 回路設計方法および設計支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070110

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070507