(57)【要約】【課題】より設計抽象度の高い動作レベルからチップの最終レイアウトを考慮した最適な回路を短時間に得ること。【解決手段】動作レベル記述と動作合成制約条件とにより動作合成の処理対象範囲の属性条件が付加されたデータフローを生成し、動作合成情報を生成するステップと、クラスタの生成およびフロアプランを行ってフロアプラン情報を生成するステップと、クラスタ内のセルの配置配線を行ってレイアウト情報を生成するステップと、チップレベルの遅延解析を行って遅延情報を生成するステップと、遅延解析において遅延違反が発生した場合に、属性条件および前記遅延情報に基づいて遅延違反に該当するクラスタに対してのみ動作合成情報またはフロアプラン情報の再生成を行うステップとを含む。【選択図】        図１
2004265224.tif 000002
【特許請求の範囲】
【請求項１】
動作レベル記述と動作合成制約条件とにより動作合成の処理対象範囲の属性条件が付加されたデータフローを生成し、該データフローに対してスケジューリング、リソースのアロケーションを行って動作合成情報を生成するステップと、
前記動作合成情報と半導体集積回路情報とに基づいてリソースの面積と遅延値を解析し、該解析結果とクラスタ生成条件とに基づいてクラスタの生成およびフロアプランを行ってフロアプラン情報を生成するステップと、
前記フロアプラン情報に基づいてクラスタ内のセルの配置配線を行ってレイアウト情報を生成するステップと、
前記レイアウト情報に基づいてチップレベルの遅延解析を行い、該遅延解析結果に基づいて前記クラスタ間の遅延配分を行って遅延情報を生成するステップと、
前記遅延解析において遅延違反が発生した場合に、前記属性条件および前記遅延情報に基づいて遅延違反に該当するクラスタに対してのみ動作合成情報またはフロアプラン情報の再生成を行うステップと
を含むことを特徴とする半導体集積回路設計方法。
【請求項２】
前記動作合成情報の再生成を行う際に、前記属性条件および前記遅延情報に基づいて遅延違反に該当するクラスタに対してのみ該クラスタの再生成、分割、併合または複数のクラスタをまとめて上位の階層を生成する階層化を行うことを特徴とする請求項１に記載の半導体集積回路設計方法。
【請求項３】
動作合成手段とフロアプラン情報生成手段とレイアウト情報生成手段と遅延解析手段とを有する設計ツール群と、設計データ管理手段と、設計ツール実行制御手段とを備え、
前記動作合成手段は、動作レベル記述と動作合成制約条件とを読み込んで動作合成の処理対象範囲の属性条件が付加されたデータフローグラフを生成するデータフロー生成手段と、前記データフローグラフを動作合成の時間制約に基づく時間間隔に時分割して記憶素子を挿入するスケジューリングを行うスケジューリング手段と、前記動作レベル記述中の演算子を外部から与えられる半導体集積回路情報に含まれるリソースに割り当て、または動作レベル記述中の重複する演算子を同一のリソースに割り当てるリソースアロケーションを行い、また遅延違反が生じた場合に前記属性条件に基づいて遅延違反が生じたクラスタの再リソースアロケーションを行うリソースアロケーション手段とを有しており、
前記フロアプラン情報生成手段は、前記半導体集積回路情報に基づいて前記リソースを解析して半導体集積回路の面積および遅延値を見積もるリソース解析手段と、前記属性条件と外部から与えられるクラスタ生成条件に記述されたリソース内の許容遅延および許容面積とに基づいてクラスタを生成してクラスタ情報を生成し、また、遅延違反が生じた場合に前記属性条件に基づいて遅延違反が生じたクラスタの再生成、分割、併合、または複数のクラスタをまとめて上位の階層を生成する階層化を行ってクラスタ情報を再生成するクラスタ生成手段と、前記クラスタを前記半導体集積回路情報に基づき配置配線してフロアプラン情報を生成するクラスタ配置配線手段とを有しており、
前記レイアウト情報生成手段は、前記フロアプラン情報に基づいて前記クラスタ内のセルの配置配線を行ってレイアウト情報を生成し、
前記遅延解析手段は、前記フロアプラン情報または前記レイアウト情報に基づいてチップレベルの遅延解析を行い、この遅延解析結果に基づいて各クラスタの遅延配分を行い、
前記設計データ管理手段は、前記設計ツール群に入力され、または設計ツール群で生成された情報を保持および更新し、
設計ツール実行制御手段は、前記設計ツール群および前記設計データ管理手段の実行を制御するとともに前記遅延解析において遅延違反が生じた場合に該遅延違反の情報を前記動作合成手段またはフロアプラン情報生成手段にフィードバックして該遅延違反が生じた部分のみの再設計処理の指示を生成すること
を特徴とする設計支援装置。
【請求項４】
前記遅延解析手段は、前記半導体集積回路情報に含まれるリソースの遅延情報と配線遅延特性、およびクラスタ間の配線長からクラスタ内の遅延およびクラスタ間配線の遅延を計算してチップレベルでの遅延解析を行い、この遅延解析結果を遅延情報として前記クラスタ情報に付加するとともに、この遅延解析結果を前記動作合成制約条件と比較して遅延値に違反がある場合に前記クラスタ情報に遅延オーバー値と違反経路情報とを遅延違反情報として付加することを特徴とする請求項３に記載の設計支援装置。
【請求項５】
前記遅延解析手段は、前記レイアウト情報に基づいて実配線長を用いた遅延計算を行ってチップレベルでの遅延解析を行い、クラスタ内の遅延情報を前記クラスタ情報に付加するとともに、この遅延解析結果を前記動作合成制約条件と比較して遅延値に違反がある場合に前記クラスタ情報に遅延オーバー値と違反経路情報とを遅延違反情報として付加すること
を特徴とする請求項３に記載の設計支援装置。
【請求項６】
前記リソースアロケーション手段は、前記遅延違反情報を読み込み、遅延違反のあるクラスタのみ該クラスタ内に含まれるリソースの共用化の組み合わせを変更する再共用化を行うことを特徴とする請求項４および５に記載の設計支援装置。
【請求項７】
前記リソースアロケーション手段は、前記遅延違反情報を読み込み、遅延違反のあるクラスタ内に含まれるリソースと該クラスタに隣接するクラスタ内に含まれるリソースの共用化の組み合わせを変更する再共用化を行うことを特徴とする請求項４および５に記載の設計支援装置。
【請求項８】
前記クラスタ生成手段は、前記遅延値解析手段での解析結果において前記クラスタ内およびクラスタ間の遅延値に違反がある場合に、前記遅延違反情報を読み込み、遅延値に違反のあるクラスタ内およびクラスタ間の遅延が最小になるようにクラスタ内のリソースの組み合わせを変更してクラスタを分割することを特徴とする請求項４および５に記載の設計支援装置。
【請求項９】
前記クラスタ生成手段は、前記遅延値解析手段での解析結果において前記クラスタ内およびクラスタ間の遅延値に違反がある場合に、前記遅延違反情報を読み込み、遅延値に違反のあるクラスタ内およびクラスタ間の遅延が最小になるようにクラスタを併合することを特徴とする請求項４および５に記載の設計支援装置。
【請求項１０】
前記クラスタ生成手段は、前記遅延値解析手段での解析結果において前記クラスタ内およびクラスタ間の遅延値に違反がある場合に前記遅延違反情報を読み込み、大域的なデータフローグラフの流れに沿った上位階層を生成してクラスタの併合を行うことを特徴とする請求項４および５に記載の設計支援装置。
【請求項１１】
前記スケジューリング手段は、前記遅延値解析手段での解析結果において前記クラスタ内およびクラスタ間の遅延値に違反がある場合に、前記遅延違反情報を読み込み、遅延値に違反のあるクラスタ、前記リソースの再共用化を行ったクラスタ、または前記分割、併合、若しくは階層化を行ったクラスタに対して再スケジューリングを行うことを特徴とする請求項６〜１０のいずれか一つに記載の設計支援装置。
【請求項１２】
前記クラスタ配置配線手段は、前記遅延解析手段での解析の結果クラスタ間の遅延に違反がある場合に、前記遅延違反情報を読み込み、遅延に違反のあるクラスタ間の距離が近接するように再配置することを特徴とする請求項４および５に記載の設計支援装置。
【請求項１３】
前記スケジューリング手段は、１クロック・サイクルの時間制約を満足しない遅延経路が生じた場合、２クロック・サイクル以上のサイクルを要して記憶する素子間のデータの伝播を認めるマルチ・サイクル・パスを生成するようにスケジューリングを行い、且つマルチ・サイクル・パスを制御する回路を生成することを特徴とする請求項３に記載の設計支援装置。
【請求項１４】
前記クラスタ配置配線手段は、半導体集積回路内の配置領域と配線領域とを２次元メッシュまたは３次元メッシュで近似したモデル上にクラスタの配置配線を行うことを特徴とする請求項３に記載の設計支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体集積回路設計およびその設計支援装置に関し、特に、ハードウエア記述言語でアルゴリズムが記述された設計の抽象度の高い動作レベルの記述（Ｂｅｈａｖｉｏｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ）からより短時間で設計が可能な半導体集積回路設計方法および設計支援装置に関するものである。
【０００２】
【従来の技術】
従来、半導体集積回路の設計においては、設計抽象度の高い動作レベル記述から動作合成を行う設計方法が行われている。しかし、設計抽象度の高い動作レベル記述からレイアウトの間には大きなギャップがあり、タイミングを収束させることが難しく、回路設計に多大な時間を要している。
【０００３】
これに対して、設計抽象度の高い動作レベル記述から半導体集積回路の設計を行う技術として、以下のような技術が提案されている。
【０００４】
例えばＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述を入力とするものがあり、各モジュ−ルの配置などのフロアプランを行い、各モジュールに対する面積や遅延値の適切な割り当てを行い、論理合成ツールに対する制約の生成とレイアウトツールに対する制約を生成することにより、論理回路設計において繰り返しの少ないトップダウンの設計を支援し、大規模、高性能なＬＳＩを短期間に設計することを可能にした設計支援装置が提案されている（特許文献１参照）。
【０００５】
また、同様にＲＴＬ記述を入力とするものであり、大規模なゲート回路を一括で論理合成する場合において最適なクラスタリング情報を作成し、さらに、そのクラスタリング情報に基づいて最適に配置配線を行うことにより配線長の短縮およびチップ面積の削減を図る配置配線最適化方法が提案されている（特許文献２参照）。
【０００６】
また、同様にＲＴＬ記述を入力とし、論理合成とレイアウト処理の融合を図り、レイアウト後の面積・遅延の良い回路を合成する技術が提案されている（特許文献３参照）。
【０００７】
また、高位レベル合成におけるデータ管理方法として、コントロール／データフローグラフにパス遅延情報を付加し、フロアプランした結果を評価し、レイアウト情報を考慮に入れた合成を行う方法が提案されている（特許文献４参照）。
【０００８】
【特許文献１】
特開平９−１０６４０７号公報（第３頁−第５頁）
【特許文献２】
特開２００１−１０９７８４号公報（第８頁−第１２頁）
【特許文献３】
特開平５−１１４００６号公報（第３頁−第４頁）
【特許文献４】
特開平４−２５０５７０号公報（第３頁−第５頁）
【０００９】
【発明が解決しようとする課題】
しかしながら、上記の特許文献１〜特許文献３の公報については、いずれもＲＴＬが入力となり、論理合成を使用したゲートレベルでの最適化に関するものであり、より抽象度の高い動作レベルの記述（Ｂｅｈａｖｉｏｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ）からの動作合成は行われていない。
【００１０】
また、後者の１件の公報については、コントロール／フローグラフにパス遅延情報を付加し、フロアプランからのパス遅延情報を反映し、動作合成を行うというものであるが、タイミング違反が発生した場合に部分的に合成することができない。したがって、動作レベル記述全体を合成する必要があり、タイミング違反に該当しない部分まで合成するため、最適な回路を得るまでに時間を要するという問題がある。
【００１１】
したがって、より設計抽象度の高い動作レベルからチップの最終レイアウトを考慮して最適な回路を短期間に得る方法は未だ確立されていないのが現状である。
【００１２】
この発明は上記に鑑みてなされたもので、より設計抽象度の高い動作レベルからチップの最終レイアウトを考慮した最適な回路を短時間に得ることを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成する本発明に係る半導体集積回路設計方法は、動作レベル記述と動作合成制約条件とにより動作合成の処理対象範囲の属性条件が付加されたデータフローを生成し、該データフローに対してスケジューリング、リソースのアロケーションを行って動作合成情報を生成するステップと、動作合成情報と半導体集積回路情報とに基づいてリソースの面積と遅延値を解析し、該解析結果とクラスタ生成条件とに基づいてクラスタの生成およびフロアプランを行ってフロアプラン情報を生成するステップと、フロアプラン情報に基づいてクラスタ内のセルの配置配線を行ってレイアウト情報を生成するステップと、レイアウト情報に基づいてチップレベルの遅延解析を行い、該遅延解析結果に基づいてクラスタ間の遅延配分を行って遅延情報を生成するステップと、遅延解析において遅延違反が発生した場合に、属性条件および遅延情報に基づいて遅延違反に該当するクラスタに対してのみ動作合成情報またはフロアプラン情報の再生成を行うステップとを含むことを特徴とする。
【００１４】
以上のような本発明に係る半導体集積回路設計方法によれば、データフローグラフに動作合成ツールでの処理対象範囲の属性条件を付加する。そして、レイアウト後に遅延違反が生じた場合には、この属性条件を用いて遅延違反が生じた部分のみを対象として再設計を行うため、タイミングの収束が早くなり、レイアウトを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【００１５】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係る半導体集積回路設計方法と設計支援装置に関する好適な実施の形態について説明する。なお、本発明は、以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【００１６】
実施の形態１．
図１は、実施の形態に係る設計支援装置の構成を示す図である。本実施の形態に係る設計支援装置は、動作合成情報を生成する動作合成ツール１０と、フロアプラン情報を生成するフロアプラン情報生成ツール２０と、チップレベルの遅延解析を行うチップレベル遅延解析手段３０と、クラスタ間の遅延配分を行うクラスタ間遅延配分手段４０と、レイアウト情報を生成するレイアウト情報生成ツール５０とを備えた設計ツール群６０と、上記各設計手段において生成した設計データを保持、更新して管理する設計データ管理手段７０と、設計ツール群６０および設計データ管理手段７０を管理し、これらの実行を制御する設計ツール実行制御手段９０とを備えて構成されている。
【００１７】
動作合成ツール１０は、データフロー生成手段１１と、スケジューリング手段１２と、リソースアロケーション手段１３とを備える。
【００１８】
ここで、データフロー生成手段１１は、図１に示すようにループ解析手段１４と、条件分岐解析手段１５とを有する。そして、外部から入力される動作レベル記述８０と動作合成制約条件８１とを読み込み、ループ解析手段１４と条件分岐解析手段１５とにより動作合成ツール１０の後工程の処理であるスケジューリング手段１２やリソースアロケーション手段１３における処理対象範囲となるループ分や条件分岐文の解析を行い、処理対象範囲の属性条件が付加されたデータフローを生成する。
【００１９】
すなわち、このデータフロー生成手段１１では、抽象度の高い動作レベルの記述（Ｃ言語、Ｃ＋＋言語、或いはその拡張言語、或いは、ハードウエア記述言語（Ｈａｒｄｗａｒｅ  Ｄｅｓｉｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）でＲＴＬよりも記述抽象度の高いアルゴリズムの記述）から動作合成の後工程であるスケジューリングおよびリソースアロケーションの処理対象となる範囲を抽出し、さらに抽出した範囲をデータフローグラフに付加する。この属性条件は、後述するようにチップレベル遅延解析手段３０での遅延解析の結果、遅延違反が生じた際の再設計処理を行う場合に、遅延違反が生じたクラスタのみに再設計処理を行う際の境界条件として用いられる。すなわち、この属性条件を利用することにより所望のクラスタに対してのみ、再設計処理を行うことができる。
【００２０】
スケジューリング手段１２は、データフロー生成手段１１で生成したデータフローグラフを動作合成の時間制約に基づく時間間隔に時分割し、記憶素子（フリップ・フロップ）を挿入する。
【００２１】
また、このスケジューリング手段１２は、後述するチップレベル遅延解析手段３０でのレイアウト後の解析結果を反映したスケジューリングを行う。すなわち、後述する設計データ管理手段７０に保持されたクラスタ情報に含まれる遅延オーバー値と遅延違反経路情報とを読み込み、これらと上記の属性条件に基づいて遅延値に違反のあるクラスタ、または後述するリソースアロケーション手段１３でリソースの共用化を行ったクラスタ、或いは後述するフロアプラン情報生成ツール２０で再生成した、若しくは併合、分割、階層化を行った後のクラスタに対してのみ、再スケジューリングを行う。これにより、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なスケジューリングを行うことができ、レイアウトを考慮した動作合成を短時間で行うことが可能である。また、これによりスケジューリングによるレイテンシ、スループットや動作周波数の改善が可能である。
【００２２】
さらに、このスケジューリング手段１２は、１クロック・サイクルの時間制約を満足しない遅延経路がある場合に、２クロック・サイクル以上のサイクルを要して記憶素子（フリップ・フロップ）間のデータ伝播を許容するマルチ・サイクル・パスを生成するようにスケジューリングを行うことができ、且つマルチ・サイクル・パスを制御する回路を生成する。
【００２３】
従来、マルチ・サイクル・パスをスケジューリングできない動作合成ツールでは、データパス中に記憶素子（フリップ・フロップ）が挿入されて面積が増加したり、マルチ・サイクル・パス化した場合よりも多くのクロック・サイクルを必要とすることがある。
【００２４】
しかしながら、本実施の形態におけるスケジューリング手段１２では、マルチ・サイクル・パスを生成するようにスケジューリングを行うことができるため、チップ面積の増加を抑制し、面積の小さい半導体集積回路を設計することができ、また、データパスの高速動作が可能となる。
【００２５】
リソースアロケーション手段１３は、動作記述中の演算子を半導体集積回路情報、例えばＬＳＩ／ＦＰＧＡ情報８２のセルライブラリに含まれるリソースに割り当てる機能と、重複する演算子を同一のリソースに割り当てる機能とを有する。
【００２６】
また、このリソースアロケーション手段１３は、後述するチップレベル遅延解析手段３０でのレイアウト後の解析結果を反映したリソースアロケーションを行う。すなわち、設計データ管理手段７０のクラスタ情報に含まれる遅延オーバー値と違反経路情報とを読み込み、これらと上述した属性条件に基づいて遅延値に違反のあるクラスタのみを対象として、該クラスタ内に含まれるリソースの共用化の組み合わせを変更する再共用化を行うことができる。
【００２７】
これにより、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なリソースの共用化を行うことが可能であり、チップ面積を効果的に減少させた半導体集積回路の回路設計を短時間で行うことが可能となる。
【００２８】
さらに、このリソースアロケーション手段１３は、設計データ管理手段７０のクラスタ情報に含まれる遅延オーバー値と違反経路情報とを読み込み、これらに基づいて遅延値に違反のあるクラスタ内に含まれるリソースと該クラスタに隣接するクラスタ内に含まれるリソースの変更を行う再共用化を行うことができる。これにより、レイアウトを考慮した最適なリソースの共用化が可能であり、チップ面積を効果的に減少させた半導体集積回路の回路設計が可能となる。
【００２９】
フロアプラン情報生成ツール２０は、リソース解析手段２１と、クラスタ生成手段２２と、クラスタ配置配線手段２３とを備える。
【００３０】
ここで、リソース解析手段２１は、リソースアロケーション手段１３で生成した動作合成情報と、半導体集積回路情報、例えばＬＳＩ／ＦＰＧＡ情報８２のセルライブラリに含まれる情報であるリソースの種類と数からリソースの面積を見積もる機能と、遅延値を見積もる機能とを有する。
【００３１】
クラスタ生成手段２２は、リソース解析手段２１での解析結果を基に、動作合成ツール１０の処理対象範囲、すなわち前述のデータフロー生成手段１１で生成した動作合成の処理対象となるループ文や条件分岐文等の境界条件と、外部から入力されるクラスタ生成条件８３に記述されたリソース内の許容遅延値とクラスタ内の許容面積とに基づいてクラスタの生成を行う。
【００３２】
これにより、後述するチップレベル遅延解析手段３０での遅延解析において遅延違反が生じた場合に、クラスタ単位で動作合成情報の再生成、またはフロアプラン情報の再生成を行うことができる。したがって、遅延違反が生じたクラスタのみを対象として再設計を行うことができるため、設計期間の短縮を図ることができる。
【００３３】
また、このクラスタ生成手段２２は、後述するチップレベル遅延解析手段３０での解析結果が動作合成制約条件８１の遅延値を満足していない場合に、クラスタの分割、或いは、クラスタの併合、或いは、クラスタを複数まとめて上位の階層を生成する階層化を行うことができる。
【００３４】
ここで、クラスタの分割は、後述するチップレベル遅延解析手段３０での解析の結果、クラスタ内およびクラスタ間の遅延値に違反がある場合に、設計データ管理手段７０のクラスタ情報に含まれる遅延オーバー値と違反経路情報とを読み込み、遅延値に違反のあるクラスタのみを対象として、クラスタ内およびクラスタ間の遅延が最小になる、または遅延違反を解消する組み合わせを探索し、クラスタ内のリソースの組み合わせを変更してクラスタを分割する。
【００３５】
すなわち、このクラスタの分割では、分割されたそれぞれのクラスタ内の遅延値が最小となる、または遅延違反を解消するリソースの組み合わせを探索して、クラスタ内の演算子やフリップ・フロップなどのリソースの組み合わせを変更することによりクラスタを分割する。したがって、遅延値が最小となるクラスタを生成することができ、また、遅延違反が解消されたクラスタを新たに生成することができる。
【００３６】
これにより、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なクラスタを生成することができ、動作合成制約条件８１の遅延値を満足する半導体集積回路の設計を短時間で行うことができる。
【００３７】
クラスタの併合は、後述するチップレベル遅延解析手段３０での解析の結果、クラスタ内およびクラスタ間の遅延値に違反がある場合に、設計データ管理手段７０のクラスタ情報７６に含まれる遅延オーバー値と違反経路情報とを読み込み、遅延値に違反のあるクラスタのみを対象として、クラスタ内およびクラスタ間の遅延が最小になる、または遅延違反を解消するクラスタの組み合わせを探索し、クラスタを併合する。したがって、遅延値が最小となる、または遅延違反が解消されたクラスタを新たに生成することができる。
【００３８】
これにより、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なクラスタを生成することができ、動作合成制約条件８１の遅延値を満足する半導体集積回路の設計を短時間で行うことができる。
【００３９】
クラスタの階層化では、後述するチップレベル遅延解析手段３０での解析の結果、クラスタ内およびクラスタ間の遅延値に違反がある場合に、複数のクラスタをまとめて上位の階層を生成する。これにより、データフローグラフをより大域的なデータの流れに沿って、すなわちデータフローグラフをより巨視的に捉えることができ、より適切にデータの流れに沿ったクラスタの配置を行うことができるようになる。その結果、クラスタ間の配線長を短くすることができ、クラスタ間の遅延を小さくすることができるため、遅延の小さなクラスタ配置の設計が可能となる。
【００４０】
したがって、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なクラスタを生成することができ、動作合成制約条件８１の遅延値を満足する半導体集積回路の設計を短時間で行うことができる。
【００４１】
クラスタ配置配線手段２３は、クラスタ生成手段２１で生成、分割、併合、または階層化されたクラスタを半導体集積回路情報、例えばＬＳＩ／ＦＰＧＡ情報８２の物理情報に基づき配置し、またクラスタ間のフローを配置配線する。ここでクラスタ間の配線が最短になるようにクラスタの配置と配線を行う。これにより、各クラスタの中心座標間の距離（マンハッタン距離）で見積もる配線よりも実際のレイアウト後の配線長により近い値の配線長を求めることができる。したがって、クラスタ間配線の遅延をより正確に見積もることができ、より精度の高い設計を行うことが可能となる。
【００４２】
また、このクラスタ配置配線手段２３は、後述するチップレベル遅延解析手段３０での解析の結果、クラスタ間の遅延値に違反がある場合に、設計データ管理手段７０のクラスタ情報７６に含まれる遅延オーバー値と違反経路情報とを読み込み、遅延値に違反のあるクラスタ間のみを対象として、違反のあるクラスタ間の距離が小さくなるようにクラスタの再配置を行うことができる。そして、このようなクラスタの再配置を繰り返し実行することにより、クラスタ間の配線が短く、遅延が小さなクラスタの配置を探索することができ、最適なクラスタの配置設計が可能となる。
【００４３】
さらに、このクラスタ配置配線手段２３では、半導体集積回路内の配置領域と配線領域とを２次元メッシュまたは３次元メッシュで近似したモデル上にクラスタの配置配線を行うことができる。この２次元、または３次元メッシュの近似モデルは、ＦＰＧＡなどの実デバイスの配置配線情報よりも情報量が少ないため、配置配線の計算を減らすことができ、処理を高速化することができる。
【００４４】
また、遅延計算の精度は多少低下するが、処理時間の短縮のために２次元、または３次元メッシュの間隔をＦＰＧＡなどの実デバイスから抽出した配線間隔よりも大きく取ることも可能である。
【００４５】
そして、ＦＰＧＡのデバイス内で、クラスタを階層的に配置したモデルもこの３次元メッシュモデルで考えることが可能であり、また、クラスタ間の配線がクラスタの配置領域を通過する経路に関しても考慮することが可能である。
【００４６】
チップレベル遅延解析手段３０は、クラスタ配置配線後、すなわちフロアプラン情報生成ツール２０で生成したフロアプラン情報に対してチップレベルの遅延解析を行う。これにより、設計作業の早い段階においてチップレベルの遅延違反を発見することができ、この遅延情報をフィードバックすることにより、設計作業の早い段階で遅延違反を解消することができ、効率的な設計が可能である。
【００４７】
また、このチップレベル遅延解析手段３０では、後述するレイアウト情報生成後にレイアウト情報を含めてチップレベルの遅延解析を行うことが可能である。そして、この遅延解析結果をフィードバックすることにより、設計抽象度の高い動作レベル記述８０からレイアウト時の遅延を考慮して再度動作合成を行うことができるようになり、効率的に且つ精度の高い設計が可能となる。
【００４８】
ここで、このチップレベル遅延解析手段３０は、リソースの遅延情報からクラスタ内の遅延計算を行い、クラスタ間の配線長とＦＰＧＡの配線遅延特性からクラスタ間配線の遅延の計算を行う。そして、これらに基づいてチップレベルでの静的な遅延解析を行い、後述する設計データ管理手段７０のクラスタ情報に遅延情報を付加する。さらに、遅延解析結果と動作合成制約条件８１の遅延値とを比較し、遅延値に違反がある場合には設計データ管理手段７０のクラスタ情報７６に遅延オーバー値と違反経路情報とを遅延違反情報として付加する。
【００４９】
このようにチップレベル遅延解析手段３０での解析結果を設計データ管理手段７０のクラスタ情報７６に付加することにより、クラスタ配置配線後、すなわちレイアウト前の状態での仮想遅延の情報を動作合成ツール１０およびフロアプラン情報生成ツール２０にフィードバックすることができ、これらの情報を用いることにより前述した各手段においてクラスタ配置配線後の遅延を考慮して再度、回路設計を行うことが可能となる。これにより、フロアプランを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【００５０】
また、このチップレベル遅延解析手段３０は、後述するレイアウト情報生成ツール５０でクラスタ内のリソースの配置配線を行った結果、すなわちレイアウト情報７８を読み込み、実配線長を用いた遅延計算を行う。そして、クラスタ内の遅延情報を設計データ管理手段７０のクラスタ情報７６に付加する。さらに、遅延解析結果を動作合成制約条件８１の遅延値と比較し、遅延値に違反がある場合には設計データ管理手段７０のクラスタ情報に遅延違反の情報、すなわち遅延オーバー値と違反経路情報とを付加する。
【００５１】
このようにレイアウト後のチップレベル遅延解析手段３０での解析結果を設計データ管理手段７０のクラスタ情報７６に付加することにより、レイアウト後の実配線遅延の情報を動作合成ツール１０およびフロアプラン情報生成ツール２０にフィードバックすることができ、これらの情報を用いることにより前述した各手段においてレイアウト時の遅延を考慮して再度回路設計を行うことが可能となる。これにより、レイアウトを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【００５２】
クラスタ間遅延配分手段４０は、チップレベル遅延解析手段３０での解析結果に基づいてクラスタ間の遅延配分を行い、この情報をチップレベル遅延解析手段３０にフィードバックする。そして、チップレベル遅延解析手段３０にフィードバックされた遅延配分情報は、設計データ管理手段７０のクラスタ情報７６に付加され、また、遅延違反がある場合には、チップレベル遅延解析手段３０での解析結果とともに動作合成ツール１０およびフロアプラン情報生成ツール２０にフィードバックされる。
【００５３】
なお、チップレベル遅延解析手段３０とクラスタ間遅延配分手段４０は、１つの手段としてまとめることも可能である。
【００５４】
レイアウト情報生成ツール５０は、フロアプラン情報生成ツール２０で生成されたフロアプラン情報７７に基づいてレイアウト、すなわちクラスタ内のセルの配置配線を行ってレイアウト情報７８を生成する。そして、このレイアウト情報７８は、チップレベル遅延解析手段３０にフィードバックされ、このレイアウト情報７８に基づいて上述したように実配線長を用いた遅延計算を行う。これにより、前述した各手段においてレイアウト時の遅延を考慮して再度回路設計を行うことが可能となる。
【００５５】
設計データ管理手段７０は、上記の各手段において生成された情報、すなわち設計データをデータ構造に基づいて、それぞれ異なる設計データと関連性を保持しつつ、個別に保持、更新して管理する機能を有する。すなわち、データ構造に基づいて各設計手段の入出力となる動作レベル記述８０、およびデータフローグラフ、および、クラスタ情報、および、フロアプラン情報、および、レイアウト情報間のデータベースの関連性を維持する機能を有する。
【００５６】
そして、このような機能を果たすために、データフローグラフ７５を保持、更新して管理する動作レベル記述とデータフローグラフ間データ管理手段７１と、クラスタ情報７６を保持、更新して管理するデータフローグラフとクラスタ情報間データ管理手段７２と、フロアプラン情報７７を保持、更新して管理するクラスタ情報とフロアプラン情報間データ管理手段７３と、レイアウト情報７８を保持、更新して管理するフロアプラン情報とレイアウト情報間データ管理手段７４とを有する。
【００５７】
また、設計データ管理手段７０は、動作合成を行う間において、動作レベル記述８０、データフローグラフ７５、クラスタ情報７６、フロアプラン情報７７、およびレイアウト情報７８のいずれかのデータが変更された場合には、他の情報もこのデータの変更に対応するように変更、更新し、回路設計フローにおいてデータの一貫性を保つ機能を有している。このために、１つのデータ管理手段には、上述した動作合成ツール１０やフロアプラン情報生成ツール２０などの各手段のうち、１つの手段のみがアクセス可能な排他制御機能を有している。これにより、読み取りや書き込みの際のデータが一義的に決定されるため、データの一貫性が保たれる。
【００５８】
そして、設計ツール実行制御手段９０は、上述した設計ツール群６０および設計データ管理手段７０の実行のフローを管理し、後工程からのフィードバックを考慮して設計ツール全体の実行を制御する。
【００５９】
次に、このような設計支援装置を用いた半導体集積回路の設計方法について説明する。
【００６０】
まず、動作合成ツール１０のデータフロー生成手段１１が、外部から入力される動作レベル記述８０と動作合成制約条件８１とを読み込み、ループ解析手段１４と条件分岐解析手段１５とにより動作合成ツール１０の後工程処理であるスケジューリング手段１２やリソースアロケーション手段１３の処理対象範囲となるループ分や条件分岐文の解析を行い、動作合成ツール１０での処理対象範囲の属性条件が付加されたデータフローグラフ７５を生成する。
【００６１】
すなわち、抽象度の高い動作レベルの記述（Ｃ言語、Ｃ＋＋言語、或いはその拡張言語、或いは、ハードウエア記述言語でＲＴＬよりも記述抽象度の高いアルゴリズムの記述）から動作合成の後工程であるスケジューリングの処理対象となる範囲を抽出し、さらに抽出した範囲を付加したデータフローグラフ７５を生成する。
【００６２】
また、このようにして生成されたデータフローグラフ７５は、設計データ管理手段７０における動作レベル記述とデータフローグラフ間データ管理手段７１に保持される。
【００６３】
次に、スケジューリング手段１２において、データフロー生成手段１１で生成したデータフローグラフ７５を動作合成の時間制約に基づく時間間隔に時分割し、記憶素子（フリップ・フロップ）を挿入する。
【００６４】
次に、リソースアロケーション手段１３において、動作記述中の演算子を半導体集積回路情報、例えばＬＳＩ／ＦＰＧＡ情報８２のセルライブラリに含まれるリソースに割り当て、また、重複する演算子を同一のリソースに割り当てる。
【００６５】
次に、フロアプラン情報生成ツール２０のリソース解析手段２１において、リソースアロケーション手段１３で生成した動作合成情報からリソースを解析して半導体集積回路情報、例えばＬＳＩ／ＦＰＧＡ情報８２のセルライブラリに含まれる情報のリソースの種類と数からリソースの面積および遅延値を見積もる。
【００６６】
次に、クラスタ生成手段２２において、リソース解析手段２１での解析結果を基に、動作合成ツール１０の処理対象範囲、すなわち前述のデータフロー生成手段１１で生成した動作合成の処理対象となるループ文や条件分岐文等の境界条件と、外部から入力されるクラスタ生成条件８３に記述されたリソース内の許容遅延値とクラスタ内の許容面積とに基づいてクラスタの生成を行い、クラスタ情報７６を生成する。
【００６７】
また、このようにして生成されたクラスタ情報７６は、設計データ管理手段７０におけるデータフローグラフとクラスタ情報間データ管理手段７２に保持される。
【００６８】
次に、クラスタ配置配線手段２３において、クラスタ生成手段２２で生成したクラスタを半導体集積回路情報、例えばＬＳＩ／ＦＰＧＡ情報８２の物理情報に基づき配置し、またクラスタ間のフローを配置配線し、フロアプラン情報７７を生成する。ここで、クラスタ間の配線が最短になるようにクラスタの配置と配線を行う。これにより、各クラスタの中心座標間の距離（マンハッタン距離）で見積もる配線よりも実際のレイアウト後の配線長により近い値の配線長を求めることができる。したがって、クラスタ間配線の遅延をより正確に見積もることができ、より精度の高い設計を行うことが可能となる。
【００６９】
また、このようにして生成されたフロアプラン情報７７は、設計データ管理手段７０におけるクラスタ情報とフロアプラン情報間データ管理手段７３に保持される。
【００７０】
次に、レイアウト情報生成ツール５０においては、フロアプラン情報生成ツール２０で生成されたフロアプラン情報７７に基づいてレイアウト、すなわちクラスタ内のセルの配置配線を行い、レイアウト情報７８を生成する。ここで生成されたレイアウト情報７８は、設計データ管理手段７０におけるフロアプラン情報とレイアウト情報間データ管理手段７４に保持される。
【００７１】
次に、チップレベル遅延解析手段３０において、クラスタ内のセルの配置配線後、すなわちレイアウト情報生成ツール５０で生成したレイアウト情報７８に対してチップレベルの遅延解析を行う。
【００７２】
ここで、このチップレベル遅延解析手段３０は、クラスタ内に含まれるリソースに関する遅延情報からクラスタ内の遅延計算を行い、クラスタ間の配線長とＬＳＩ／ＦＰＧＡ情報８２に含まれる配線遅延特性からクラスタ間配線の遅延情報の計算を行う。そして、これらに基づいてチップレベルでの静的な遅延解析を行い、設計データ管理手段７０のクラスタ情報７６に遅延情報を付加する。さらに、遅延解析結果と動作合成制約条件８１の遅延値とを比較する。
【００７３】
また、クラスタ間遅延配分手段４０において、チップレベル遅延解析手段３０での解析結果に基づいてクラスタ間の遅延配分を行い、この情報をチップレベル遅延解析手段３０にフィードバックする。
【００７４】
ここで、チップレベル遅延解析手段３０での解析の結果、遅延違反がない場合には設計が後の工程へと進む。
【００７５】
また、チップレベル遅延解析手段３０において、レイアウト情報生成ツール５０で生成したレイアウト情報７８に対してチップレベルの遅延解析を行った結果、遅延違反がある場合には、設計データ管理手段７０のクラスタ情報７６に遅延違反の情報、すなわち遅延オーバー値と違反経路情報とを付加する。また、チップレベル遅延解析手段３０にフィードバックされた遅延配分情報も、同様に設計データ管理手段７０のクラスタ情報７６に付加される。そして、チップレベル遅延解析手段３０での解析結果と遅延配分情報とが動作合成ツール１０およびフロアプラン情報生成ツール２０にフィードバックされる。
【００７６】
例えば、チップレベル遅延解析手段３０での解析結果がスケジューリング手段１２にフィードバックされた場合には、設計データ管理手段７０に保持されているクラスタ情報７６に含まれる遅延オーバー値と違反経路情報とを読み込む。そして、これらの情報とデータフローグラフに付加された属性条件に基づいて、遅延値に違反のあるクラスタに対してのみ、再度スケジューリングを行う。
【００７７】
そして、再度チップレベル遅延解析手段３０でチップレベル遅延解析を行い、更にレイアウト情報生成手段でレイアウト情報７８を生成する。さらにチップレベル遅延解析手段３０でチップレベル遅延解析を行い、遅延違反が認められない場合は設計が後の工程へと進む。なお、上記の工程で再設計されたクラスタ情報７６などの各種の情報は、最新の情報が設計データ管理手段７０の各管理手段に更新、保持される。
【００７８】
以上により、遅延値に違反のあるクラスタに対してのみ再度動作合成することでレイアウトを考慮した半導体集積回路の設計を短時間で行うことができる。
【００７９】
また、チップレベル遅延解析手段３０での解析結果がリソースアロケーション手段１３にフィードバックされた場合には、設計データ管理手段７０に保持されているクラスタ情報７６に含まれる遅延オーバー値と違反経路情報とを読み込む。そして、これらの情報に基づいて、遅延値に違反のあるクラスタに対してのみ、再度リソースの割当てを変更し、または再度リソースの共用化の組み合わせを変更する。
【００８０】
そして、設計データ管理手段７０に保持されたクラスタ情報７６に含まれるクラスタ遅延情報とデータフローグラフに付加された属性条件に基づいて再度スケジューリング手段１２でスケジューリングを行い、チップレベル遅延解析手段３０でチップレベル遅延解析を行う。更にレイアウト情報生成手段５０でレイアウト情報７８を生成した後、チップレベル遅延解析手段３０でチップレベル遅延解析を行い、遅延違反が認められない場合は設計が後の工程へと進む。なお、上記の工程で再設計されたクラスタ情報７６などの各種の情報は、最新の情報が設計データ管理手段７０の各管理手段に更新、保持される。
【００８１】
以上により、遅延値に違反のあるクラスタに対してのみ再度動作合成することでレイアウトを考慮した半導体集積回路の設計を短時間で行うことができる。
【００８２】
また、チップレベル遅延解析手段３０での解析結果がクラスタ生成手段にフィードバックされた場合には、設計データ管理手段７０に保持されているクラスタ情報７６に含まれる遅延オーバー値と違反経路情報とを読み込む。そして、これらの情報とデータフローグラフに付加された属性条件に基づいて、遅延値に違反のあるクラスタに対してのみ、クラスタの再生成、分割、併合、または階層化を行う。
【００８３】
ここで、クラスタの再生成、分割、併合、または階層化は、データフローグラフに付加した属性条件を境界条件として行われる。これにより、遅延値に違反のあるクラスタのみに対してクラスタの再生成、分割、併合、または階層化を的確に行うことが可能である。
【００８４】
そして、再度スケジューリング手段１２で再スケジューリングを行い、クラスタ配置配線手段２３で再度、クラスタの配置配線を行う。そして、チップレベル遅延解析手段３０でチップレベル遅延解析を行い、更にレイアウト情報生成手段５０でレイアウト情報７８を生成し、遅延違反が認められない場合は設計が後の工程へと進む。なお、上記の工程で再設計されたクラスタ情報７６などの各種の情報は、最新の情報が設計データ管理手段７０の各管理手段に更新、保持される。
【００８５】
以上により、遅延値に違反のあるクラスタに対してのみクラスタの再生成、分割、併合、または階層化を行い、レイアウトを考慮した半導体集積回路の設計を短時間で行うことができる。
【００８６】
なお、上記において、設計ツール群６０および設計データ管理手段７０の各手段の実行制御は設計ツール実行制御手段９０により行われる。すなわち、チップレベル遅延解析手段３０での解析結果、遅延違反が発生した場合には、設計ツール実行制御手段９０が上記のようにして解析結果を動作合成ツール１０またはフロアプラン情報生成ツール２０にフィードバックして該遅延違反が生じた部分のみを対象にした再設計処理の行う指示を生成する。そして、設計ツール群６０および設計データ管理手段７０はこの指示に基づいて上記のような再設計を実行する。これにより、前述した各手段においてレイアウト時の遅延を考慮した半導体集積回路の再設計を短時間で行うことが可能となる。
【００８７】
上述したように、本発明によれば、データフローグラフに予め動作合成ツールでの処理対象範囲の属性条件を付加し、チップレベル遅延解析手段３０における遅延解析の結果において遅延違反が生じた場合には、遅延情報を動作合成ツール１０またはフロアプラン情報生成ツール５０にフィードバックする。そして、この遅延情報と属性条件に基づいて遅延違反の生じたクラスタのみを対象として再設計を行うため、タイミングの収束が早くなり、レイアウトを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【００８８】
また、上記においては、レイアウト情報生成後にチップレベルの遅延解析を行った場合について説明したが、本発明においては、さらに、フロアプラン情報生成後にチップレベルの遅延解析を行っても良い。これにより、設計作業の早い段階においてチップレベルの遅延違反を発見することができ、この遅延情報をフィードバックすることにより、設計作業の早い段階で遅延違反を解消することができ、効率的な半導体集積回路の設計が可能となる。
【００８９】
実施の形態２．
つぎに、この発明の実施の形態２について説明する。図２は、本発明に係る設計支援装置における動作合成ツール１０のデータフロー生成手段１１に関する一実施の形態を説明する図である。
【００９０】
図２（ａ）は、動作レベル記述８０として例えばＣ言語のループ文としてｆｏｒ文の２重ループの例を示したものである。ここでは、一例として動作合成ツール１０が２重ループにおける内側のｆｏｒ文をまずスケジューリングし、その後、内側のｆｏｒ文のスケジューリング結果を保持して、外側のｆｏｒ文をスケジューリングするという前提の条件がある場合について考える。
【００９１】
このようなスケジューリング条件がある場合には、まず、図２（ａ）に示す動作レベル記述のうち、処理対象▲１▼に対応する内側のｆｏｒ文に関わる記述、すなわち、下記の記述に対して処理対象▲１▼という属性条件を付加して図２（ｂ）に示すようなデータフローグラフ１００を生成する。
【００９２】
ｆｏｒ（ｊ＝０；ｊ＜８；ｊ＋＋）｛
ｃ［ｉ］［ｊ］＝ａ［ｉ］［ｊ］＊  ｂ［ｉ］［ｊ］；
｝
【００９３】
次に、図２（ａ）に示す動作レベル記述のうち、処理対象▲２▼に対応する外側のｆｏｒ文に関わる記述、すなわち、下記の記述に対して処理対象▲２▼という属性条件を付加して図２（ｂ）に示すようなデータフローグラフ１０１を生成する。
【００９４】
ｆｏｒ（ｉ＝０；ｉ＜８；ｉ＋＋）｛
ｆｏｒ（ｊ＝０；ｊ＜８；ｊ＋＋）｛
ｃ［ｉ］［ｊ］＝ａ［ｉ］［ｊ］＊  ｂ［ｉ］［ｊ］；
｝
｝
【００９５】
このように、動作合成の処理対象毎、すなわち処理単位毎の属性条件をデータフローグラフ生成時に付加することにより、クラスタ生成手段２２においてクラスタを生成、再生成、分割、併合、または階層化する際の境界条件とすることができる。
【００９６】
そして、レイアウト前、またはレイアウト後のチップレベルの遅延解析で違反のあるクラスタが発見された場合、この処理単位毎の属性条件を境界条件とすることにより、該クラスタに対してのみ再度動作合成のスケジューリングを行うことができるようになる。
【００９７】
すなわち、処理単位毎の属性条件を再度動作合成時の境界条件とするため、遅延解析で違反のあるクラスタのみに対して再スケジューリングを行うことができ、効率よく半導体集積回路の回路設計を行うことができる。
【００９８】
実施の形態３．
次に、この発明の実施の形態３について説明する。図３は、本発明に係る設計支援装置におけるフロアプラン情報生成ツール２０のクラスタ生成手段２２におけるクラスタ生成、クラスタ分割、および動作合成ツール１０のスケジューリング手段１２に関わるに関する一実施の形態を説明する図である。
【００９９】
まず、動作合成ツール１０のデータフロー生成手段１１が動作レベル記述８０と動作合成制約条件８１を読み込む。そして、ループ解析手段１４と条件分岐解析手段１５とにより動作合成ツール１０の後工程の処理であるスケジューリング手段１２やリソースアロケーション手段１３の処理対象範囲となるループ分や条件分岐文の解析を行い、図３（ａ）に示すように演算子（乗算）１１０と演算子（加算）１１１とからなり、処理対象範囲の属性条件が付加されたデータフローグラフを生成する。
【０１００】
次に、クラスタ生成手段２２において、動作合成の処理対象範囲を示す属性条件と、外部からフロアプラン情報生成ツール２０に入力されるクラスタ生成条件８３に含まれるクラスタ内の許容遅延値と許容面積とに基づいて、図３（ａ）に示すように２つの演算子（乗算）１１０と１つの演算子（加算）１１１とを含むクラスタＡ１１５を生成する。
【０１０１】
次に、クラスタＡ１１５に対してスケジューリングを実行し、動作合成制約条件８１に記載された１サイクルの時間制約を満足するように、すなわちデータフローグラフが時間制約内に収まるように、図３（ｂ）に示すように記憶素子であるフリップ・フロップ１１０を挿入する。
【０１０２】
そして、クラスタ生成条件８３に含まれる許容面積を満足するように、図３（ｂ）に示すようなクラスタＡ′１１６の範囲を決める。
【０１０３】
ここで、後工程のレイアウト前、或いは、レイアウト後にチップレベル遅延解析手段３０によりチップレベルの遅延解析を行った結果、クラスタＡ′１１６の遅延値に違反がある場合について考える。この場合には、クラスタ生成手段によりクラスタを細かく分割し、さらにクラスタ生成情報生成ツールのクラスタ配置配線手段２３によりクラスタの配置を変更し、クラスタ間の遅延が最小になるようにする。
【０１０４】
クラスタを分割する際には、設計データ管理手段７０に記憶されたクラスタ情報７６に含まれる遅延オーバー値と違反経路情報に基づいてクラスタ内の遅延が最小となるように、または遅延違反を解消できるようにクラスタ内のリソースの組み合わせを探索し、クラスタを分割する。
【０１０５】
例えば、この場合は、図３（ｃ）に示すように３つのリソースを分割して配置するためにクラスタＡ′１１６を３つのクラスタ、すなわちクラスタＢ１１６、クラスタＣ１１７、およびクラスタＤ１１８に分割する。そして、フロアプラン情報生成ツール２０のクラスタ配置配線手段２３により、クラスタ間の遅延が最小になるように、分割した新たな３つのクラスタの配置を変更し、クラスタ間の配線を行う。
【０１０６】
このようにレイアウト前、またはレイアウト後にチップレベル遅延解析手段３０によるチップレベルの遅延解析を行った結果を反映、考慮して遅延違反のあるクラスタのみを対象として該クラスタの分割を行い、クラスタの配置配線を再度行うことにより、クラスタの遅延値が時間制約内に収まるようなクラスタを生成することが可能である。すなわち、レイアウト前、またはレイアウト後の遅延違反情報をフィードバックし、遅延違反のあるクラスタのみを分割して遅延違反を解消することが可能である。
【０１０７】
実施の形態４．
次に、この発明の実施の形態４について説明する。図４は、本発明に係る設計支援装置におけるフロアプラン情報生成ツール２０のクラスタ生成手段２２におけるクラスタの併合、および動作合成ツール１０のスケジューリング手段１２に関わる一実施の形態を説明する図である。
【０１０８】
本実施の形態では、動作合成の１クロック・サイクルの時間制約が５０ｎｓとされている場合について説明する。
【０１０９】
まず、３つのクラスタ、すなわちクラスタＥ１２０、クラスタＦ１２１、およびクラスタＧ１２２に対してレイアウト前、またはレイアウト後に遅延解析を行った結果、図４（ａ）に示すようにクラスタＥ１２０内の遅延が５０ｎｓ、クラスタＦ１２１内の遅延が４０ｎｓ、クラスタＧ１２２内の遅延が４０ｎｓ、クラスタＥ１２０とクラスタＧ１２２間のクラスタ間遅延が１５ｎｓ、クラスタＦクラスタＧ１２２間のクラスタ間遅延が５ｎｓであるとする。
【０１１０】
この場合、クラスタＥ１２０とクラスタＧ１２２間の遅延時間１５ｎｓが原因となり、クラスタＥ１２０とクラスタＧ１２２間の遅延時間が５５ｎｓとなってしまい、１クロック・サイクルの時間制約５０ｎｓを満足することができない。
【０１１１】
そこで、図４（ｂ）に示すようにクラスタＥ１２０とクラスタＧ１２２との２つのクラスタを併合して１つの新たなクラスタ、すなわちクラスタＥＧ１２３を生成する。
【０１１２】
クラスタを併合する際には、設計データ管理手段７０に記憶されたクラスタ情報に含まれる遅延オーバー値と違反経路情報に基づいてクラスタ間、或いはクラスタ内の遅延が最小になるクラスタの組み合わせ、または遅延違反を解消可能な組み合わせを探索し、クラスタを併合する。
【０１１３】
したがって、この場合は、クラスタＥ１２０とクラスタＧ１２２間の遅延時間１５ｎｓが原因となって時間制約を満たすことができないため、クラスタＥ１２０とクラスタＧ１２２間の遅延が最小となるように、クラスタＥ１２０とクラスタＧ１２２との２つのクラスタを併合して図４（ｂ）に示すようにクラスタＥＧ１２３を生成する。
【０１１４】
このようにクラスタＥ１２０とクラスタＧ１２２との２つのクラスタを併合してクラスタＥＧ１２３を生成することにより、クラスタ間１５ｎｓの遅延時間分の改善が図られ、遅延違反を解消することができる。すなわち、クラスタＥ１２０とクラスタＧ１２２との２つのクラスタを併合して新たなクラスタＥＧ１２３を生成することにより、動作合成の時間制約である１クロック・サイクル５０ｎｓを満たすことが可能となる。
【０１１５】
次に、時間制約を満足するクラスタＥＧ１２３に対して、クラスタ内の面積の改善を行う。すなわち、クラスタＥＧ１２３内の面積を削減するように動作合成ツール１０のスケジューリング手段１２により再スケジューリングを行う。具体的には、クラスタＥＧ１２３内の演算子（乗算）と演算子（加算）を複数のクロック・サイクルで実行するように動作合成ツール１０のスケジューリング手段１２により再スケジューリングを行う。そして、ここでは、再スケジューリングすることによりクラスタＥＧ１２３内の記憶素子であるフリップ・フロップ１１０を１組を削減する。
【０１１６】
この結果、クラスタＥＧ１２３内の遅延時間は９０ｎｓとなり、図４（ｃ）に示すように２クロック・サイクルで動作する経路であるマルチ・サイクル・パス１２５を構成することができる。このように、動作合成ツール１０のスケジューリング手段１２により再スケジューリングを行い、マルチ・サイクル・パスを構成することにより、記憶素子であるフリップ・フロップ１１０を１組を削減し、クラスタＥＧ１２３の面積の削減を行うことができる。
【０１１７】
したがって、上述したように、クラスタの併合を行うことにより遅延違反を解消することが可能であり、さらに再スケジューリングを行うことによりクラスタを併合した新たに生成したクラスタの面積を削減することが可能である。
【０１１８】
実施の形態５．
次に、この発明の実施の形態５について説明する。図５は、本発明に係る設計支援装置におけるフロアプラン情報生成ツール２０のクラスタ生成手段２０におけるクラスタの階層化に関わる一実施の形態を説明する図であり、図６はそのフローチャートである。
【０１１９】
本実施の形態では、まずステップ１において、下位階層クラスタ１３３を含む上位階層クラスタ１３０、１３１、１３２を生成し、該上位階層クラスタ１３０、１３１、１３２の面積をフロアプラン情報生成ツール２０のリソース解析手段２３で見積もる。そして、ステップ２において、クラスタ配置配線手段でデータの流れを考慮して配置を行う。
【０１２０】
次に、ステップ３において、フロアプラン情報生成ツール２０のリソース解析手段２１で下位階層クラスタ１３３の面積を見積もる。そして、ステップ４において、上位階層クラスタ１３０、１３１、１３２を配置した領域内においてデータの流れに沿ってクラスタ配置配線手段２３で下位階層クラスタ１３３の配置を行う。
【０１２１】
これにより、データフローグラフを巨視的に捉え、データの流れに沿ってクラスタを配置することができるようになる。その結果、クラスタ間の配線長を短くすることができ、クラスタ間の遅延を小さくすることができるため、遅延の小さなＬＳＩ／ＦＰＧＡの設計が可能となる。
【０１２２】
実施の形態６．
図７と図８は、フロアプラン情報生成ツール２０のクラスタ配置配線手段２３に関する一実施の形態を説明する図であり、ＬＳＩ／ＦＰＧＡ内の配置領域と配線領域とを２次元のメッシュで近似したモデルを示している。
【０１２３】
本実施の形態では、ＬＳＩ／ＦＰＧＡ内の配置領域と配線領域とを２次元のメッシュで近似したモデルを用いたクラスタの配置、およびクラスタ間の配線について説明する。
【０１２４】
図７に示すように、まず、３つのクラスタ、すなわちクラスタＨ１４１、クラスタＩ１４２、およびクラスタＪ１４３を、２次元メッシュモデル上の配置領域１４０に初期配置する。そして、クラスタ間配線１４４が最短になるように、２次元メッシュモデルの配線領域１４５にクラスタ間配線１４４を配し、ピン１４７をピン配置領域１４６に配置する。
【０１２５】
次に、チップレベルの遅延解析を行った結果、クラスタＨ１４１とクラスタＪ１４３間の配線が長くなり、１クロック・サイクルの遅延時間をオーバーした場合について考える。
【０１２６】
この場合は、クラスタＪ１４３の配置を見直し、クラスタＪ１４３を図８に示すようにクラスタＨ１４１の近隣に配置し、クラスタ間配線１４４が最短となるように２次元メッシュモデルの配線領域１４５に配線する。その結果、クラスタＨ１４１とクラスタＪ１４３間の遅延違反を解消することができる。
【０１２７】
このように、２次元メッシュモデル上で遅延違反となったクラスタの配置を見直し、再配置配線を行うことで遅延値の改善が可能である。すなわち、ＬＳＩ／ＦＰＧＡのデバイスの物理情報から抽出した２次元メッシュモデルを用いることによりクラスタ間配線１４４の遅延値を正確に見積もることができるため、クラスタ間配線長の、レイアウト後の実配線長に対する誤差を小さくすることができ、クラスタ間配線１４４の遅延値の見積もり誤差を小さくすることが可能である。
【０１２８】
なお、ここでは、２次元メッシュモデルの場合について説明したが、本発明においては、ＬＳＩ／ＦＰＧＡ内の配置領域と配線領域とを３次元のメッシュで近似したモデルを用いた場合においても、上記と同様にクラスタ間配線の遅延値を正確に見積もることができるため、クラスタ間配線長の、レイアウト後の実配線長に対する誤差を小さくすることができ、クラスタ間配線の遅延の見積もり誤差を小さくすることが可能である。
【０１２９】
【発明の効果】
以上説明したように、この発明によれば、データフローグラフに動作合成ツールでの処理対象範囲の属性条件を付加する。そして、レイアウト後に遅延違反が生じた場合には、この属性条件を用いて遅延違反が生じた部分のみを対象として再設計を行うため、タイミングの収束が早くなり、レイアウトを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【図面の簡単な説明】
【図１】本発明に係る設計支援装置の構成を示す構成図である。
【図２】実施の形態２におけるデータフローグラフの生成方法を説明する図であり、（ａ）は動作レベル記述の一例を示した図であり、（ｂ）は属性条件を持つデータフローグラフを示した図である。
【図３】実施の形態３におけるクラスタの分割を説明する図であり、（ａ）はクラスタの生成を説明する図、（ｂ）はスケジューリングされたクラスタを説明する図、（ｃ）は分割されたクラスタを説明する図である。
【図４】実施の形態４におけるクラスタの併合を説明する図であり、（ａ）は生成されたクラスタの遅延を説明する図、（ｂ）は併合されたクラスタを説明する図、（ｃ）は再スケジューリングされてマルチ・サイクル・パスが生成された状態を説明する図である。
【図５】実施の形態５におけるクラスタの階層化を説明する図であり、上位階層クラスタを生成した状態を説明する図である。
【図６】実施の形態５におけるクラスタの階層化を説明するフローチャートである。
【図７】ＬＳＩ／ＦＰＧＡ内の配置領域と配線領域とを２次元のメッシュで近似したモデルを用いたクラスタの配置、およびクラスタ間の配線について説明する図であり、初期配置を説明する図である。
【図８】ＬＳＩ／ＦＰＧＡ内の配置領域と配線領域とを２次元のメッシュで近似したモデルを用いたクラスタの配置、およびクラスタ間の配線について説明する図であり、クラスタＪを再配置した状態を説明する図である。
【符号の説明】
１０  動作合成ツール、２０  フロアプラン情報生成ツール、３０  チップレベル遅延解析手段、４０  クラスタ間遅延配分手段、５０  レイアウト情報生成ツール、６０  設計ツール群、７０  設計データ管理手段、９０  設計ツール実行制御手段。
【図１】
2004265224.tif 000003
【図２】
2004265224.tif 000004
【図３】
2004265224.tif 000005
【図４】
2004265224.tif 000006
【図５】
2004265224.tif 000007
【図６】
2004265224.tif 000008
【図７】
2004265224.tif 000009
【図８】
2004265224.tif 000010