JP3811133B2 - 半導体集積回路設計方法および設計支援装置 - Google Patents
半導体集積回路設計方法および設計支援装置 Download PDFInfo
- Publication number
- JP3811133B2 JP3811133B2 JP2003056117A JP2003056117A JP3811133B2 JP 3811133 B2 JP3811133 B2 JP 3811133B2 JP 2003056117 A JP2003056117 A JP 2003056117A JP 2003056117 A JP2003056117 A JP 2003056117A JP 3811133 B2 JP3811133 B2 JP 3811133B2
- Authority
- JP
- Japan
- Prior art keywords
- delay
- cluster
- information
- violation
- clusters
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
この発明は、半導体集積回路設計およびその設計支援装置に関し、特に、ハードウエア記述言語でアルゴリズムが記述された設計の抽象度の高い動作レベルの記述(Behavioral Description)からより短時間で設計が可能な半導体集積回路設計方法および設計支援装置に関するものである。
【0002】
【従来の技術】
従来、半導体集積回路の設計においては、設計抽象度の高い動作レベル記述から動作合成を行う設計方法が行われている。しかし、設計抽象度の高い動作レベル記述からレイアウトの間には大きなギャップがあり、タイミングを収束させることが難しく、回路設計に多大な時間を要している。
【0003】
これに対して、設計抽象度の高い動作レベル記述から半導体集積回路の設計を行う技術として、以下のような技術が提案されている。
【0004】
例えばRTL(Register Transfer Level)記述を入力とするものがあり、各モジュ−ルの配置などのフロアプランを行い、各モジュールに対する面積や遅延値の適切な割り当てを行い、論理合成ツールに対する制約の生成とレイアウトツールに対する制約を生成することにより、論理回路設計において繰り返しの少ないトップダウンの設計を支援し、大規模、高性能なLSIを短期間に設計することを可能にした設計支援装置が提案されている(特許文献1参照)。
【0005】
また、同様にRTL記述を入力とするものであり、大規模なゲート回路を一括で論理合成する場合において最適なクラスタリング情報を作成し、さらに、そのクラスタリング情報に基づいて最適に配置配線を行うことにより配線長の短縮およびチップ面積の削減を図る配置配線最適化方法が提案されている(特許文献2参照)。
【0006】
また、同様にRTL記述を入力とし、論理合成とレイアウト処理の融合を図り、レイアウト後の面積・遅延の良い回路を合成する技術が提案されている(特許文献3参照)。
【0007】
また、高位レベル合成におけるデータ管理方法として、コントロール/データフローグラフにパス遅延情報を付加し、フロアプランした結果を評価し、レイアウト情報を考慮に入れた合成を行う方法が提案されている(特許文献4参照)。
【0008】
【特許文献1】
特開平9−106407号公報(第3頁−第5頁)
【特許文献2】
特開2001−109784号公報(第8頁−第12頁)
【特許文献3】
特開平5−114006号公報(第3頁−第4頁)
【特許文献4】
特開平4−250570号公報(第3頁−第5頁)
【0009】
【発明が解決しようとする課題】
しかしながら、上記の特許文献1〜特許文献3の公報については、いずれもRTLが入力となり、論理合成を使用したゲートレベルでの最適化に関するものであり、より抽象度の高い動作レベルの記述(Behavioral Description)からの動作合成は行われていない。
【0010】
また、後者の1件の公報については、コントロール/フローグラフにパス遅延情報を付加し、フロアプランからのパス遅延情報を反映し、動作合成を行うというものであるが、タイミング違反が発生した場合に部分的に合成することができない。したがって、動作レベル記述全体を合成する必要があり、タイミング違反に該当しない部分まで合成するため、最適な回路を得るまでに時間を要するという問題がある。
【0011】
したがって、より設計抽象度の高い動作レベルからチップの最終レイアウトを考慮して最適な回路を短期間に得る方法は未だ確立されていないのが現状である。
【0012】
この発明は上記に鑑みてなされたもので、より設計抽象度の高い動作レベルからチップの最終レイアウトを考慮した最適な回路を短時間に得ることを目的とする。
【0013】
【課題を解決するための手段】
上記目的を達成する本発明に係る半導体集積回路設計方法は、設計支援装置を用いて半導体集積回路の設計を行う半導体集積回路設計方法であって、設計支援装置が、動作レベル記述と動作合成制約条件とにより、再設計処理を行う際の処理対象範囲の境界条件を示す属性条件が付加されたデータフローグラフを生成し、該データフローグラフに対してスケジューリング、リソースのアロケーションを行って動作合成情報を生成するステップと、動作合成情報と半導体集積回路情報とに基づいてリソースの面積と遅延値を解析し、該解析結果と、クラスタ生成条件に記述されたリソース内の許容遅延値とクラスタ内の許容面積と、に基づいてクラスタの生成を行い、該クラスタを半導体集積回路情報に基づいてフロアプランを行ってフロアプラン情報を生成するステップと、フロアプラン情報に基づいてクラスタ内のセルの配置配線を行ってレイアウト情報を生成するステップと、レイアウト情報に基づいてチップレベルの遅延解析を行い、該遅延解析結果に基づいてクラスタ間の遅延配分を行って遅延情報を生成するステップと、遅延解析において遅延違反が発生した場合に、属性条件を処理対象範囲の境界条件として用いて遅延情報に基づいて遅延違反に該当するクラスタのみを処理対象範囲として動作合成情報またはフロアプラン情報の再生成を行うステップと、を実行することを特徴とする。
【0014】
以上のような本発明に係る半導体集積回路設計方法によれば、データフローグラフに処理対象範囲を示す属性条件を付加する。そして、レイアウト後に遅延違反が生じた場合には、この属性条件を用いて遅延違反が生じた部分のみを対象として再設計を行うため、タイミングの収束が早くなり、レイアウトを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【0015】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係る半導体集積回路設計方法と設計支援装置に関する好適な実施の形態について説明する。なお、本発明は、以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【0016】
実施の形態1.
図1は、実施の形態に係る設計支援装置の構成を示す図である。本実施の形態に係る設計支援装置は、動作合成情報を生成する動作合成ツール10と、フロアプラン情報を生成するフロアプラン情報生成ツール20と、チップレベルの遅延解析を行うチップレベル遅延解析手段30と、クラスタ間の遅延配分を行うクラスタ間遅延配分手段40と、レイアウト情報を生成するレイアウト情報生成ツール50とを備えた設計ツール群60と、上記各設計手段において生成した設計データを保持、更新して管理する設計データ管理手段70と、設計ツール群60および設計データ管理手段70を管理し、これらの実行を制御する設計ツール実行制御手段90とを備えて構成されている。
【0017】
動作合成ツール10は、データフロー生成手段11と、スケジューリング手段12と、リソースアロケーション手段13とを備える。
【0018】
ここで、データフロー生成手段11は、図1に示すようにループ解析手段14と、条件分岐解析手段15とを有する。そして、外部から入力される動作レベル記述80と動作合成制約条件81とを読み込み、ループ解析手段14と条件分岐解析手段15とにより動作合成ツール10の後工程の処理であるスケジューリング手段12やリソースアロケーション手段13における処理対象範囲となるループ分や条件分岐文の解析を行い、処理対象範囲を示す属性条件が付加されたデータフローを生成する。
【0019】
すなわち、このデータフロー生成手段11では、抽象度の高い動作レベルの記述(C言語、C++言語、或いはその拡張言語、或いは、ハードウエア記述言語(Hardware Desicription Language)でRTLよりも記述抽象度の高いアルゴリズムの記述)から動作合成の後工程であるスケジューリングおよびリソースアロケーションの処理対象となる範囲を抽出し、さらに抽出した範囲をデータフローグラフに付加する。この属性条件は、後述するようにチップレベル遅延解析手段30での遅延解析の結果、遅延違反が生じた際の再設計処理を行う場合に、遅延違反が生じたクラスタのみに再設計処理を行う際の境界条件として用いられる。すなわち、この属性条件を利用することにより所望のクラスタに対してのみ、再設計処理を行うことができる。
【0020】
スケジューリング手段12は、データフロー生成手段11で生成したデータフローグラフを動作合成の時間制約に基づく時間間隔に時分割し、記憶素子(フリップ・フロップ)を挿入する。
【0021】
また、このスケジューリング手段12は、後述するチップレベル遅延解析手段30でのレイアウト後の解析結果を反映したスケジューリングを行う。すなわち、後述する設計データ管理手段70に保持されたクラスタ情報に含まれる遅延オーバー値と遅延違反経路情報とを読み込み、これらと上記の属性条件に基づいて遅延値に違反のあるクラスタ、または後述するリソースアロケーション手段13でリソースの共用化を行ったクラスタ、或いは後述するフロアプラン情報生成ツール20で再生成した、若しくは併合、分割、階層化を行った後のクラスタに対してのみ、再スケジューリングを行う。これにより、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なスケジューリングを行うことができ、レイアウトを考慮した動作合成を短時間で行うことが可能である。また、これによりスケジューリングによるレイテンシ、スループットや動作周波数の改善が可能である。
【0022】
さらに、このスケジューリング手段12は、1クロック・サイクルの時間制約を満足しない遅延経路がある場合に、2クロック・サイクル以上のサイクルを要して記憶素子(フリップ・フロップ)間のデータ伝播を許容するマルチ・サイクル・パスを生成するようにスケジューリングを行うことができ、且つマルチ・サイクル・パスを制御する回路を生成する。
【0023】
従来、マルチ・サイクル・パスをスケジューリングできない動作合成ツールでは、データパス中に記憶素子(フリップ・フロップ)が挿入されて面積が増加したり、マルチ・サイクル・パス化した場合よりも多くのクロック・サイクルを必要とすることがある。
【0024】
しかしながら、本実施の形態におけるスケジューリング手段12では、マルチ・サイクル・パスを生成するようにスケジューリングを行うことができるため、チップ面積の増加を抑制し、面積の小さい半導体集積回路を設計することができ、また、データパスの高速動作が可能となる。
【0025】
リソースアロケーション手段13は、動作記述中の演算子を半導体集積回路情報、例えばLSI/FPGA情報82のセルライブラリに含まれるリソースに割り当てる機能と、重複する演算子を同一のリソースに割り当てる機能とを有する。
【0026】
また、このリソースアロケーション手段13は、後述するチップレベル遅延解析手段30でのレイアウト後の解析結果を反映したリソースアロケーションを行う。すなわち、設計データ管理手段70のクラスタ情報に含まれる遅延オーバー値と違反経路情報とを読み込み、これらと上述した属性条件に基づいて遅延値に違反のあるクラスタのみを対象として、該クラスタ内に含まれるリソースの共用化の組み合わせを変更する再共用化を行うことができる。
【0027】
これにより、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なリソースの共用化を行うことが可能であり、チップ面積を効果的に減少させた半導体集積回路の回路設計を短時間で行うことが可能となる。
【0028】
さらに、このリソースアロケーション手段13は、設計データ管理手段70のクラスタ情報に含まれる遅延オーバー値と違反経路情報とを読み込み、これらに基づいて遅延値に違反のあるクラスタ内に含まれるリソースと該クラスタに隣接するクラスタ内に含まれるリソースの変更を行う再共用化を行うことができる。これにより、レイアウトを考慮した最適なリソースの共用化が可能であり、チップ面積を効果的に減少させた半導体集積回路の回路設計が可能となる。
【0029】
フロアプラン情報生成ツール20は、リソース解析手段21と、クラスタ生成手段22と、クラスタ配置配線手段23とを備える。
【0030】
ここで、リソース解析手段21は、リソースアロケーション手段13で生成した動作合成情報と、半導体集積回路情報、例えばLSI/FPGA情報82のセルライブラリに含まれる情報であるリソースの種類と数からリソースの面積を見積もる機能と、遅延値を見積もる機能とを有する。
【0031】
クラスタ生成手段22は、リソース解析手段21での解析結果を基に、処理対象範囲、すなわち前述のデータフロー生成手段11で生成した動作合成の処理対象となるループ文や条件分岐文等の境界条件と、外部から入力されるクラスタ生成条件83に記述されたリソース内の許容遅延値とクラスタ内の許容面積とに基づいてクラスタの生成を行う。
【0032】
これにより、後述するチップレベル遅延解析手段30での遅延解析において遅延違反が生じた場合に、クラスタ単位で動作合成情報の再生成、またはフロアプラン情報の再生成を行うことができる。したがって、遅延違反が生じたクラスタのみを対象として再設計を行うことができるため、設計期間の短縮を図ることができる。
【0033】
また、このクラスタ生成手段22は、後述するチップレベル遅延解析手段30での解析結果が動作合成制約条件81の遅延値を満足していない場合に、クラスタの分割、或いは、クラスタの併合、或いは、クラスタを複数まとめて上位の階層を生成する階層化を行うことができる。
【0034】
ここで、クラスタの分割は、後述するチップレベル遅延解析手段30での解析の結果、クラスタ内およびクラスタ間の遅延値に違反がある場合に、設計データ管理手段70のクラスタ情報に含まれる遅延オーバー値と違反経路情報とを読み込み、遅延値に違反のあるクラスタのみを対象として、クラスタ内およびクラスタ間の遅延が最小になる、または遅延違反を解消する組み合わせを探索し、クラスタ内のリソースの組み合わせを変更してクラスタを分割する。
【0035】
すなわち、このクラスタの分割では、分割されたそれぞれのクラスタ内の遅延値が最小となる、または遅延違反を解消するリソースの組み合わせを探索して、クラスタ内の演算子やフリップ・フロップなどのリソースの組み合わせを変更することによりクラスタを分割する。したがって、遅延値が最小となるクラスタを生成することができ、また、遅延違反が解消されたクラスタを新たに生成することができる。
【0036】
これにより、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なクラスタを生成することができ、動作合成制約条件81の遅延値を満足する半導体集積回路の設計を短時間で行うことができる。
【0037】
クラスタの併合は、後述するチップレベル遅延解析手段30での解析の結果、クラスタ内およびクラスタ間の遅延値に違反がある場合に、設計データ管理手段70のクラスタ情報76に含まれる遅延オーバー値と違反経路情報とを読み込み、遅延値に違反のあるクラスタのみを対象として、クラスタ内およびクラスタ間の遅延が最小になる、または遅延違反を解消するクラスタの組み合わせを探索し、クラスタを併合する。したがって、遅延値が最小となる、または遅延違反が解消されたクラスタを新たに生成することができる。
【0038】
これにより、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なクラスタを生成することができ、動作合成制約条件81の遅延値を満足する半導体集積回路の設計を短時間で行うことができる。
【0039】
クラスタの階層化では、後述するチップレベル遅延解析手段30での解析の結果、クラスタ内およびクラスタ間の遅延値に違反がある場合に、複数のクラスタをまとめて上位の階層を生成する。これにより、データフローグラフをより大域的なデータの流れに沿って、すなわちデータフローグラフをより巨視的に捉えることができ、より適切にデータの流れに沿ったクラスタの配置を行うことができるようになる。その結果、クラスタ間の配線長を短くすることができ、クラスタ間の遅延を小さくすることができるため、遅延の小さなクラスタ配置の設計が可能となる。
【0040】
したがって、遅延違反が生じたクラスタに対してのみレイアウトを考慮した最適なクラスタを生成することができ、動作合成制約条件81の遅延値を満足する半導体集積回路の設計を短時間で行うことができる。
【0041】
クラスタ配置配線手段23は、クラスタ生成手段21で生成、分割、併合、または階層化されたクラスタを半導体集積回路情報、例えばLSI/FPGA情報82の物理情報に基づき配置し、またクラスタ間のフローを配置配線する。ここでクラスタ間の配線が最短になるようにクラスタの配置と配線を行う。これにより、各クラスタの中心座標間の距離(マンハッタン距離)で見積もる配線よりも実際のレイアウト後の配線長により近い値の配線長を求めることができる。したがって、クラスタ間配線の遅延をより正確に見積もることができ、より精度の高い設計を行うことが可能となる。
【0042】
また、このクラスタ配置配線手段23は、後述するチップレベル遅延解析手段30での解析の結果、クラスタ間の遅延値に違反がある場合に、設計データ管理手段70のクラスタ情報76に含まれる遅延オーバー値と違反経路情報とを読み込み、遅延値に違反のあるクラスタ間のみを対象として、違反のあるクラスタ間の距離が小さくなるようにクラスタの再配置を行うことができる。そして、このようなクラスタの再配置を繰り返し実行することにより、クラスタ間の配線が短く、遅延が小さなクラスタの配置を探索することができ、最適なクラスタの配置設計が可能となる。
【0043】
さらに、このクラスタ配置配線手段23では、半導体集積回路内の配置領域と配線領域とを2次元メッシュまたは3次元メッシュで近似したモデル上にクラスタの配置配線を行うことができる。この2次元、または3次元メッシュの近似モデルは、FPGAなどの実デバイスの配置配線情報よりも情報量が少ないため、配置配線の計算を減らすことができ、処理を高速化することができる。
【0044】
また、遅延計算の精度は多少低下するが、処理時間の短縮のために2次元、または3次元メッシュの間隔をFPGAなどの実デバイスから抽出した配線間隔よりも大きく取ることも可能である。
【0045】
そして、FPGAのデバイス内で、クラスタを階層的に配置したモデルもこの3次元メッシュモデルで考えることが可能であり、また、クラスタ間の配線がクラスタの配置領域を通過する経路に関しても考慮することが可能である。
【0046】
チップレベル遅延解析手段30は、クラスタ配置配線後、すなわちフロアプラン情報生成ツール20で生成したフロアプラン情報に対してチップレベルの遅延解析を行う。これにより、設計作業の早い段階においてチップレベルの遅延違反を発見することができ、この遅延情報をフィードバックすることにより、設計作業の早い段階で遅延違反を解消することができ、効率的な設計が可能である。
【0047】
また、このチップレベル遅延解析手段30では、後述するレイアウト情報生成後にレイアウト情報を含めてチップレベルの遅延解析を行うことが可能である。そして、この遅延解析結果をフィードバックすることにより、設計抽象度の高い動作レベル記述80からレイアウト時の遅延を考慮して再度動作合成を行うことができるようになり、効率的に且つ精度の高い設計が可能となる。
【0048】
ここで、このチップレベル遅延解析手段30は、リソースの遅延情報からクラスタ内の遅延計算を行い、クラスタ間の配線長とFPGAの配線遅延特性からクラスタ間配線の遅延の計算を行う。そして、これらに基づいてチップレベルでの静的な遅延解析を行い、後述する設計データ管理手段70のクラスタ情報に遅延情報を付加する。さらに、遅延解析結果と動作合成制約条件81の遅延値とを比較し、遅延値に違反がある場合には設計データ管理手段70のクラスタ情報76に遅延オーバー値と違反経路情報とを遅延違反情報として付加する。
【0049】
このようにチップレベル遅延解析手段30での解析結果を設計データ管理手段70のクラスタ情報76に付加することにより、クラスタ配置配線後、すなわちレイアウト前の状態での仮想遅延の情報を動作合成ツール10およびフロアプラン情報生成ツール20にフィードバックすることができ、これらの情報を用いることにより前述した各手段においてクラスタ配置配線後の遅延を考慮して再度、回路設計を行うことが可能となる。これにより、フロアプランを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【0050】
また、このチップレベル遅延解析手段30は、後述するレイアウト情報生成ツール50でクラスタ内のリソースの配置配線を行った結果、すなわちレイアウト情報78を読み込み、実配線長を用いた遅延計算を行う。そして、クラスタ内の遅延情報を設計データ管理手段70のクラスタ情報76に付加する。さらに、遅延解析結果を動作合成制約条件81の遅延値と比較し、遅延値に違反がある場合には設計データ管理手段70のクラスタ情報に遅延違反の情報、すなわち遅延オーバー値と違反経路情報とを付加する。
【0051】
このようにレイアウト後のチップレベル遅延解析手段30での解析結果を設計データ管理手段70のクラスタ情報76に付加することにより、レイアウト後の実配線遅延の情報を動作合成ツール10およびフロアプラン情報生成ツール20にフィードバックすることができ、これらの情報を用いることにより前述した各手段においてレイアウト時の遅延を考慮して再度回路設計を行うことが可能となる。これにより、レイアウトを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【0052】
クラスタ間遅延配分手段40は、チップレベル遅延解析手段30での解析結果に基づいてクラスタ間の遅延配分を行い、この情報をチップレベル遅延解析手段30にフィードバックする。そして、チップレベル遅延解析手段30にフィードバックされた遅延配分情報は、設計データ管理手段70のクラスタ情報76に付加され、また、遅延違反がある場合には、チップレベル遅延解析手段30での解析結果とともに動作合成ツール10およびフロアプラン情報生成ツール20にフィードバックされる。
【0053】
なお、チップレベル遅延解析手段30とクラスタ間遅延配分手段40は、1つの手段としてまとめることも可能である。
【0054】
レイアウト情報生成ツール50は、フロアプラン情報生成ツール20で生成されたフロアプラン情報77に基づいてレイアウト、すなわちクラスタ内のセルの配置配線を行ってレイアウト情報78を生成する。そして、このレイアウト情報78は、チップレベル遅延解析手段30にフィードバックされ、このレイアウト情報78に基づいて上述したように実配線長を用いた遅延計算を行う。これにより、前述した各手段においてレイアウト時の遅延を考慮して再度回路設計を行うことが可能となる。
【0055】
設計データ管理手段70は、上記の各手段において生成された情報、すなわち設計データをデータ構造に基づいて、それぞれ異なる設計データと関連性を保持しつつ、個別に保持、更新して管理する機能を有する。すなわち、データ構造に基づいて各設計手段の入出力となる動作レベル記述80、およびデータフローグラフ、および、クラスタ情報、および、フロアプラン情報、および、レイアウト情報間のデータベースの関連性を維持する機能を有する。
【0056】
そして、このような機能を果たすために、データフローグラフ75を保持、更新して管理する動作レベル記述とデータフローグラフ間データ管理手段71と、クラスタ情報76を保持、更新して管理するデータフローグラフとクラスタ情報間データ管理手段72と、フロアプラン情報77を保持、更新して管理するクラスタ情報とフロアプラン情報間データ管理手段73と、レイアウト情報78を保持、更新して管理するフロアプラン情報とレイアウト情報間データ管理手段74とを有する。
【0057】
また、設計データ管理手段70は、動作合成を行う間において、動作レベル記述80、データフローグラフ75、クラスタ情報76、フロアプラン情報77、およびレイアウト情報78のいずれかのデータが変更された場合には、他の情報もこのデータの変更に対応するように変更、更新し、回路設計フローにおいてデータの一貫性を保つ機能を有している。このために、1つのデータ管理手段には、上述した動作合成ツール10やフロアプラン情報生成ツール20などの各手段のうち、1つの手段のみがアクセス可能な排他制御機能を有している。これにより、読み取りや書き込みの際のデータが一義的に決定されるため、データの一貫性が保たれる。
【0058】
そして、設計ツール実行制御手段90は、上述した設計ツール群60および設計データ管理手段70の実行のフローを管理し、後工程からのフィードバックを考慮して設計ツール全体の実行を制御する。
【0059】
次に、このような設計支援装置を用いた半導体集積回路の設計方法について説明する。
【0060】
まず、動作合成ツール10のデータフロー生成手段11が、外部から入力される動作レベル記述80と動作合成制約条件81とを読み込み、ループ解析手段14と条件分岐解析手段15とにより動作合成ツール10の後工程処理であるスケジューリング手段12やリソースアロケーション手段13の処理対象範囲となるループ分や条件分岐文の解析を行い、処理対象範囲を示す属性条件が付加されたデータフローグラフ75を生成する。
【0061】
すなわち、抽象度の高い動作レベルの記述(C言語、C++言語、或いはその拡張言語、或いは、ハードウエア記述言語でRTLよりも記述抽象度の高いアルゴリズムの記述)から動作合成の後工程であるスケジューリングの処理対象となる範囲を抽出し、さらに抽出した範囲を付加したデータフローグラフ75を生成する。
【0062】
また、このようにして生成されたデータフローグラフ75は、設計データ管理手段70における動作レベル記述とデータフローグラフ間データ管理手段71に保持される。
【0063】
次に、スケジューリング手段12において、データフロー生成手段11で生成したデータフローグラフ75を動作合成の時間制約に基づく時間間隔に時分割し、記憶素子(フリップ・フロップ)を挿入する。
【0064】
次に、リソースアロケーション手段13において、動作記述中の演算子を半導体集積回路情報、例えばLSI/FPGA情報82のセルライブラリに含まれるリソースに割り当て、また、重複する演算子を同一のリソースに割り当てる。
【0065】
次に、フロアプラン情報生成ツール20のリソース解析手段21において、リソースアロケーション手段13で生成した動作合成情報からリソースを解析して半導体集積回路情報、例えばLSI/FPGA情報82のセルライブラリに含まれる情報のリソースの種類と数からリソースの面積および遅延値を見積もる。
【0066】
次に、クラスタ生成手段22において、リソース解析手段21での解析結果を基に、処理対象範囲、すなわち前述のデータフロー生成手段11で生成した動作合成の処理対象となるループ文や条件分岐文等の境界条件と、外部から入力されるクラスタ生成条件83に記述されたリソース内の許容遅延値とクラスタ内の許容面積とに基づいてクラスタの生成を行い、クラスタ情報76を生成する。
【0067】
また、このようにして生成されたクラスタ情報76は、設計データ管理手段70におけるデータフローグラフとクラスタ情報間データ管理手段72に保持される。
【0068】
次に、クラスタ配置配線手段23において、クラスタ生成手段22で生成したクラスタを半導体集積回路情報、例えばLSI/FPGA情報82の物理情報に基づき配置し、またクラスタ間のフローを配置配線し、フロアプラン情報77を生成する。ここで、クラスタ間の配線が最短になるようにクラスタの配置と配線を行う。これにより、各クラスタの中心座標間の距離(マンハッタン距離)で見積もる配線よりも実際のレイアウト後の配線長により近い値の配線長を求めることができる。したがって、クラスタ間配線の遅延をより正確に見積もることができ、より精度の高い設計を行うことが可能となる。
【0069】
また、このようにして生成されたフロアプラン情報77は、設計データ管理手段70におけるクラスタ情報とフロアプラン情報間データ管理手段73に保持される。
【0070】
次に、レイアウト情報生成ツール50においては、フロアプラン情報生成ツール20で生成されたフロアプラン情報77に基づいてレイアウト、すなわちクラスタ内のセルの配置配線を行い、レイアウト情報78を生成する。ここで生成されたレイアウト情報78は、設計データ管理手段70におけるフロアプラン情報とレイアウト情報間データ管理手段74に保持される。
【0071】
次に、チップレベル遅延解析手段30において、クラスタ内のセルの配置配線後、すなわちレイアウト情報生成ツール50で生成したレイアウト情報78に対してチップレベルの遅延解析を行う。
【0072】
ここで、このチップレベル遅延解析手段30は、クラスタ内に含まれるリソースに関する遅延情報からクラスタ内の遅延計算を行い、クラスタ間の配線長とLSI/FPGA情報82に含まれる配線遅延特性からクラスタ間配線の遅延情報の計算を行う。そして、これらに基づいてチップレベルでの静的な遅延解析を行い、設計データ管理手段70のクラスタ情報76に遅延情報を付加する。さらに、遅延解析結果と動作合成制約条件81の遅延値とを比較する。
【0073】
また、クラスタ間遅延配分手段40において、チップレベル遅延解析手段30での解析結果に基づいてクラスタ間の遅延配分を行い、この情報をチップレベル遅延解析手段30にフィードバックする。
【0074】
ここで、チップレベル遅延解析手段30での解析の結果、遅延違反がない場合には設計が後の工程へと進む。
【0075】
また、チップレベル遅延解析手段30において、レイアウト情報生成ツール50で生成したレイアウト情報78に対してチップレベルの遅延解析を行った結果、遅延違反がある場合には、設計データ管理手段70のクラスタ情報76に遅延違反の情報、すなわち遅延オーバー値と違反経路情報とを付加する。また、チップレベル遅延解析手段30にフィードバックされた遅延配分情報も、同様に設計データ管理手段70のクラスタ情報76に付加される。そして、チップレベル遅延解析手段30での解析結果と遅延配分情報とが動作合成ツール10およびフロアプラン情報生成ツール20にフィードバックされる。
【0076】
例えば、チップレベル遅延解析手段30での解析結果がスケジューリング手段12にフィードバックされた場合には、設計データ管理手段70に保持されているクラスタ情報76に含まれる遅延オーバー値と違反経路情報とを読み込む。そして、これらの情報とデータフローグラフに付加された属性条件に基づいて、遅延値に違反のあるクラスタに対してのみ、再度スケジューリングを行う。
【0077】
そして、再度チップレベル遅延解析手段30でチップレベル遅延解析を行い、更にレイアウト情報生成手段でレイアウト情報78を生成する。さらにチップレベル遅延解析手段30でチップレベル遅延解析を行い、遅延違反が認められない場合は設計が後の工程へと進む。なお、上記の工程で再設計されたクラスタ情報76などの各種の情報は、最新の情報が設計データ管理手段70の各管理手段に更新、保持される。
【0078】
以上により、遅延値に違反のあるクラスタに対してのみ再度動作合成することでレイアウトを考慮した半導体集積回路の設計を短時間で行うことができる。
【0079】
また、チップレベル遅延解析手段30での解析結果がリソースアロケーション手段13にフィードバックされた場合には、設計データ管理手段70に保持されているクラスタ情報76に含まれる遅延オーバー値と違反経路情報とを読み込む。そして、これらの情報に基づいて、遅延値に違反のあるクラスタに対してのみ、再度リソースの割当てを変更し、または再度リソースの共用化の組み合わせを変更する。
【0080】
そして、設計データ管理手段70に保持されたクラスタ情報76に含まれるクラスタ遅延情報とデータフローグラフに付加された属性条件に基づいて再度スケジューリング手段12でスケジューリングを行い、チップレベル遅延解析手段30でチップレベル遅延解析を行う。更にレイアウト情報生成手段50でレイアウト情報78を生成した後、チップレベル遅延解析手段30でチップレベル遅延解析を行い、遅延違反が認められない場合は設計が後の工程へと進む。なお、上記の工程で再設計されたクラスタ情報76などの各種の情報は、最新の情報が設計データ管理手段70の各管理手段に更新、保持される。
【0081】
以上により、遅延値に違反のあるクラスタに対してのみ再度動作合成することでレイアウトを考慮した半導体集積回路の設計を短時間で行うことができる。
【0082】
また、チップレベル遅延解析手段30での解析結果がクラスタ生成手段にフィードバックされた場合には、設計データ管理手段70に保持されているクラスタ情報76に含まれる遅延オーバー値と違反経路情報とを読み込む。そして、これらの情報とデータフローグラフに付加された属性条件に基づいて、遅延値に違反のあるクラスタに対してのみ、クラスタの再生成、分割、併合、または階層化を行う。
【0083】
ここで、クラスタの再生成、分割、併合、または階層化は、データフローグラフに付加した属性条件を境界条件として行われる。これにより、遅延値に違反のあるクラスタのみに対してクラスタの再生成、分割、併合、または階層化を的確に行うことが可能である。
【0084】
そして、再度スケジューリング手段12で再スケジューリングを行い、クラスタ配置配線手段23で再度、クラスタの配置配線を行う。そして、チップレベル遅延解析手段30でチップレベル遅延解析を行い、更にレイアウト情報生成手段50でレイアウト情報78を生成し、遅延違反が認められない場合は設計が後の工程へと進む。なお、上記の工程で再設計されたクラスタ情報76などの各種の情報は、最新の情報が設計データ管理手段70の各管理手段に更新、保持される。
【0085】
以上により、遅延値に違反のあるクラスタに対してのみクラスタの再生成、分割、併合、または階層化を行い、レイアウトを考慮した半導体集積回路の設計を短時間で行うことができる。
【0086】
なお、上記において、設計ツール群60および設計データ管理手段70の各手段の実行制御は設計ツール実行制御手段90により行われる。すなわち、チップレベル遅延解析手段30での解析結果、遅延違反が発生した場合には、設計ツール実行制御手段90が上記のようにして解析結果を動作合成ツール10またはフロアプラン情報生成ツール20にフィードバックして該遅延違反が生じた部分のみを対象にした再設計処理の行う指示を生成する。そして、設計ツール群60および設計データ管理手段70はこの指示に基づいて上記のような再設計を実行する。これにより、前述した各手段においてレイアウト時の遅延を考慮した半導体集積回路の再設計を短時間で行うことが可能となる。
【0087】
上述したように、本発明によれば、データフローグラフに予め処理対象範囲を示す属性条件を付加し、チップレベル遅延解析手段30における遅延解析の結果において遅延違反が生じた場合には、遅延情報を動作合成ツール10またはフロアプラン情報生成ツール50にフィードバックする。そして、この属性条件を再設計処理を行う際の境界条件として用いて遅延情報に基づいて遅延違反の生じたクラスタのみを対象として再設計を行うため、タイミングの収束が早くなり、レイアウトを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【0088】
また、上記においては、レイアウト情報生成後にチップレベルの遅延解析を行った場合について説明したが、本発明においては、さらに、フロアプラン情報生成後にチップレベルの遅延解析を行っても良い。これにより、設計作業の早い段階においてチップレベルの遅延違反を発見することができ、この遅延情報をフィードバックすることにより、設計作業の早い段階で遅延違反を解消することができ、効率的な半導体集積回路の設計が可能となる。
【0089】
実施の形態2.
つぎに、この発明の実施の形態2について説明する。図2は、本発明に係る設計支援装置における動作合成ツール10のデータフロー生成手段11に関する一実施の形態を説明する図である。
【0090】
図2(a)は、動作レベル記述80として例えばC言語のループ文としてfor文の2重ループの例を示したものである。ここでは、一例として動作合成ツール10が2重ループにおける内側のfor文をまずスケジューリングし、その後、内側のfor文のスケジューリング結果を保持して、外側のfor文をスケジューリングするという前提の条件がある場合について考える。
【0091】
このようなスケジューリング条件がある場合には、まず、図2(a)に示す動作レベル記述のうち、処理対象▲1▼に対応する内側のfor文に関わる記述、すなわち、下記の記述に対して処理対象▲1▼という属性条件を付加して図2(b)に示すようなデータフローグラフ100を生成する。
【0092】
【0093】
次に、図2(a)に示す動作レベル記述のうち、処理対象▲2▼に対応する外側のfor文に関わる記述、すなわち、下記の記述に対して処理対象▲2▼という属性条件を付加して図2(b)に示すようなデータフローグラフ101を生成する。
【0094】
【0095】
このように、動作合成の処理対象毎、すなわち処理単位毎の属性条件をデータフローグラフ生成時に付加することにより、クラスタ生成手段22においてクラスタを生成、再生成、分割、併合、または階層化する際の境界条件とすることができる。
【0096】
そして、レイアウト前、またはレイアウト後のチップレベルの遅延解析で違反のあるクラスタが発見された場合、この処理単位毎の属性条件を境界条件とすることにより、該クラスタに対してのみ再度動作合成のスケジューリングを行うことができるようになる。
【0097】
すなわち、処理単位毎の属性条件を再度動作合成時の境界条件とするため、遅延解析で違反のあるクラスタのみに対して再スケジューリングを行うことができ、効率よく半導体集積回路の回路設計を行うことができる。
【0098】
実施の形態3.
次に、この発明の実施の形態3について説明する。図3は、本発明に係る設計支援装置におけるフロアプラン情報生成ツール20のクラスタ生成手段22におけるクラスタ生成、クラスタ分割、および動作合成ツール10のスケジューリング手段12に関わるに関する一実施の形態を説明する図である。
【0099】
まず、動作合成ツール10のデータフロー生成手段11が動作レベル記述80と動作合成制約条件81を読み込む。そして、ループ解析手段14と条件分岐解析手段15とにより動作合成ツール10の後工程の処理であるスケジューリング手段12やリソースアロケーション手段13の処理対象範囲となるループ分や条件分岐文の解析を行い、図3(a)に示すように演算子(乗算)110と演算子(加算)111とからなり、処理対象範囲を示す属性条件が付加されたデータフローグラフを生成する。
【0100】
次に、クラスタ生成手段22において、処理対象範囲を示す属性条件と、外部からフロアプラン情報生成ツール20に入力されるクラスタ生成条件83に含まれるクラスタ内の許容遅延値と許容面積とに基づいて、図3(a)に示すように2つの演算子(乗算)110と1つの演算子(加算)111とを含むクラスタA115を生成する。
【0101】
次に、クラスタA115に対してスケジューリングを実行し、動作合成制約条件81に記載された1サイクルの時間制約を満足するように、すなわちデータフローグラフが時間制約内に収まるように、図3(b)に示すように記憶素子であるフリップ・フロップ110を挿入する。
【0102】
そして、クラスタ生成条件83に含まれる許容面積を満足するように、図3(b)に示すようなクラスタA′116の範囲を決める。
【0103】
ここで、後工程のレイアウト前、或いは、レイアウト後にチップレベル遅延解析手段30によりチップレベルの遅延解析を行った結果、クラスタA′116の遅延値に違反がある場合について考える。この場合には、クラスタ生成手段によりクラスタを細かく分割し、さらにクラスタ生成情報生成ツールのクラスタ配置配線手段23によりクラスタの配置を変更し、クラスタ間の遅延が最小になるようにする。
【0104】
クラスタを分割する際には、設計データ管理手段70に記憶されたクラスタ情報76に含まれる遅延オーバー値と違反経路情報に基づいてクラスタ内の遅延が最小となるように、または遅延違反を解消できるようにクラスタ内のリソースの組み合わせを探索し、クラスタを分割する。
【0105】
例えば、この場合は、図3(c)に示すように3つのリソースを分割して配置するためにクラスタA′116を3つのクラスタ、すなわちクラスタB116、クラスタC117、およびクラスタD118に分割する。そして、フロアプラン情報生成ツール20のクラスタ配置配線手段23により、クラスタ間の遅延が最小になるように、分割した新たな3つのクラスタの配置を変更し、クラスタ間の配線を行う。
【0106】
このようにレイアウト前、またはレイアウト後にチップレベル遅延解析手段30によるチップレベルの遅延解析を行った結果を反映、考慮して遅延違反のあるクラスタのみを対象として該クラスタの分割を行い、クラスタの配置配線を再度行うことにより、クラスタの遅延値が時間制約内に収まるようなクラスタを生成することが可能である。すなわち、レイアウト前、またはレイアウト後の遅延違反情報をフィードバックし、遅延違反のあるクラスタのみを分割して遅延違反を解消することが可能である。
【0107】
実施の形態4.
次に、この発明の実施の形態4について説明する。図4は、本発明に係る設計支援装置におけるフロアプラン情報生成ツール20のクラスタ生成手段22におけるクラスタの併合、および動作合成ツール10のスケジューリング手段12に関わる一実施の形態を説明する図である。
【0108】
本実施の形態では、動作合成の1クロック・サイクルの時間制約が50nsとされている場合について説明する。
【0109】
まず、3つのクラスタ、すなわちクラスタE120、クラスタF121、およびクラスタG122に対してレイアウト前、またはレイアウト後に遅延解析を行った結果、図4(a)に示すようにクラスタE120内の遅延が50ns、クラスタF121内の遅延が40ns、クラスタG122内の遅延が40ns、クラスタE120とクラスタG122間のクラスタ間遅延が15ns、クラスタFクラスタG122間のクラスタ間遅延が5nsであるとする。
【0110】
この場合、クラスタE120とクラスタG122間の遅延時間15nsが原因となり、クラスタE120とクラスタG122間の遅延時間が55nsとなってしまい、1クロック・サイクルの時間制約50nsを満足することができない。
【0111】
そこで、図4(b)に示すようにクラスタE120とクラスタG122との2つのクラスタを併合して1つの新たなクラスタ、すなわちクラスタEG123を生成する。
【0112】
クラスタを併合する際には、設計データ管理手段70に記憶されたクラスタ情報に含まれる遅延オーバー値と違反経路情報に基づいてクラスタ間、或いはクラスタ内の遅延が最小になるクラスタの組み合わせ、または遅延違反を解消可能な組み合わせを探索し、クラスタを併合する。
【0113】
したがって、この場合は、クラスタE120とクラスタG122間の遅延時間15nsが原因となって時間制約を満たすことができないため、クラスタE120とクラスタG122間の遅延が最小となるように、クラスタE120とクラスタG122との2つのクラスタを併合して図4(b)に示すようにクラスタEG123を生成する。
【0114】
このようにクラスタE120とクラスタG122との2つのクラスタを併合してクラスタEG123を生成することにより、クラスタ間15nsの遅延時間分の改善が図られ、遅延違反を解消することができる。すなわち、クラスタE120とクラスタG122との2つのクラスタを併合して新たなクラスタEG123を生成することにより、動作合成の時間制約である1クロック・サイクル50nsを満たすことが可能となる。
【0115】
次に、時間制約を満足するクラスタEG123に対して、クラスタ内の面積の改善を行う。すなわち、クラスタEG123内の面積を削減するように動作合成ツール10のスケジューリング手段12により再スケジューリングを行う。具体的には、クラスタEG123内の演算子(乗算)と演算子(加算)を複数のクロック・サイクルで実行するように動作合成ツール10のスケジューリング手段12により再スケジューリングを行う。そして、ここでは、再スケジューリングすることによりクラスタEG123内の記憶素子であるフリップ・フロップ110を1組を削減する。
【0116】
この結果、クラスタEG123内の遅延時間は90nsとなり、図4(c)に示すように2クロック・サイクルで動作する経路であるマルチ・サイクル・パス125を構成することができる。このように、動作合成ツール10のスケジューリング手段12により再スケジューリングを行い、マルチ・サイクル・パスを構成することにより、記憶素子であるフリップ・フロップ110を1組を削減し、クラスタEG123の面積の削減を行うことができる。
【0117】
したがって、上述したように、クラスタの併合を行うことにより遅延違反を解消することが可能であり、さらに再スケジューリングを行うことによりクラスタを併合した新たに生成したクラスタの面積を削減することが可能である。
【0118】
実施の形態5.
次に、この発明の実施の形態5について説明する。図5は、本発明に係る設計支援装置におけるフロアプラン情報生成ツール20のクラスタ生成手段20におけるクラスタの階層化に関わる一実施の形態を説明する図であり、図6はそのフローチャートである。
【0119】
本実施の形態では、まずステップ1において、下位階層クラスタ133を含む上位階層クラスタ130、131、132を生成し、該上位階層クラスタ130、131、132の面積をフロアプラン情報生成ツール20のリソース解析手段23で見積もる。そして、ステップ2において、クラスタ配置配線手段でデータの流れを考慮して配置を行う。
【0120】
次に、ステップ3において、フロアプラン情報生成ツール20のリソース解析手段21で下位階層クラスタ133の面積を見積もる。そして、ステップ4において、上位階層クラスタ130、131、132を配置した領域内においてデータの流れに沿ってクラスタ配置配線手段23で下位階層クラスタ133の配置を行う。
【0121】
これにより、データフローグラフを巨視的に捉え、データの流れに沿ってクラスタを配置することができるようになる。その結果、クラスタ間の配線長を短くすることができ、クラスタ間の遅延を小さくすることができるため、遅延の小さなLSI/FPGAの設計が可能となる。
【0122】
実施の形態6.
図7と図8は、フロアプラン情報生成ツール20のクラスタ配置配線手段23に関する一実施の形態を説明する図であり、LSI/FPGA内の配置領域と配線領域とを2次元のメッシュで近似したモデルを示している。
【0123】
本実施の形態では、LSI/FPGA内の配置領域と配線領域とを2次元のメッシュで近似したモデルを用いたクラスタの配置、およびクラスタ間の配線について説明する。
【0124】
図7に示すように、まず、3つのクラスタ、すなわちクラスタH141、クラスタI142、およびクラスタJ143を、2次元メッシュモデル上の配置領域140に初期配置する。そして、クラスタ間配線144が最短になるように、2次元メッシュモデルの配線領域145にクラスタ間配線144を配し、ピン147をピン配置領域146に配置する。
【0125】
次に、チップレベルの遅延解析を行った結果、クラスタH141とクラスタJ143間の配線が長くなり、1クロック・サイクルの遅延時間をオーバーした場合について考える。
【0126】
この場合は、クラスタJ143の配置を見直し、クラスタJ143を図8に示すようにクラスタH141の近隣に配置し、クラスタ間配線144が最短となるように2次元メッシュモデルの配線領域145に配線する。その結果、クラスタH141とクラスタJ143間の遅延違反を解消することができる。
【0127】
このように、2次元メッシュモデル上で遅延違反となったクラスタの配置を見直し、再配置配線を行うことで遅延値の改善が可能である。すなわち、LSI/FPGAのデバイスの物理情報から抽出した2次元メッシュモデルを用いることによりクラスタ間配線144の遅延値を正確に見積もることができるため、クラスタ間配線長の、レイアウト後の実配線長に対する誤差を小さくすることができ、クラスタ間配線144の遅延値の見積もり誤差を小さくすることが可能である。
【0128】
なお、ここでは、2次元メッシュモデルの場合について説明したが、本発明においては、LSI/FPGA内の配置領域と配線領域とを3次元のメッシュで近似したモデルを用いた場合においても、上記と同様にクラスタ間配線の遅延値を正確に見積もることができるため、クラスタ間配線長の、レイアウト後の実配線長に対する誤差を小さくすることができ、クラスタ間配線の遅延の見積もり誤差を小さくすることが可能である。
【0129】
【発明の効果】
以上説明したように、この発明によれば、データフローグラフに処理対象範囲を示す属性条件を付加する。そして、レイアウト後に遅延違反が生じた場合には、この属性条件を再設計処理を行う際の境界条件として用いて遅延違反が生じた部分のみを対象として再設計を行うため、タイミングの収束が早くなり、レイアウトを考慮した最適な半導体集積回路の設計を短時間で行うことができる。
【図面の簡単な説明】
【図1】 本発明に係る設計支援装置の構成を示す構成図である。
【図2】 実施の形態2におけるデータフローグラフの生成方法を説明する図であり、(a)は動作レベル記述の一例を示した図であり、(b)は属性条件を持つデータフローグラフを示した図である。
【図3】 実施の形態3におけるクラスタの分割を説明する図であり、(a)はクラスタの生成を説明する図、(b)はスケジューリングされたクラスタを説明する図、(c)は分割されたクラスタを説明する図である。
【図4】 実施の形態4におけるクラスタの併合を説明する図であり、(a)は生成されたクラスタの遅延を説明する図、(b)は併合されたクラスタを説明する図、(c)は再スケジューリングされてマルチ・サイクル・パスが生成された状態を説明する図である。
【図5】 実施の形態5におけるクラスタの階層化を説明する図であり、上位階層クラスタを生成した状態を説明する図である。
【図6】 実施の形態5におけるクラスタの階層化を説明するフローチャートである。
【図7】 LSI/FPGA内の配置領域と配線領域とを2次元のメッシュで近似したモデルを用いたクラスタの配置、およびクラスタ間の配線について説明する図であり、初期配置を説明する図である。
【図8】 LSI/FPGA内の配置領域と配線領域とを2次元のメッシュで近似したモデルを用いたクラスタの配置、およびクラスタ間の配線について説明する図であり、クラスタJを再配置した状態を説明する図である。
【符号の説明】
10 動作合成ツール、20 フロアプラン情報生成ツール、30 チップレベル遅延解析手段、40 クラスタ間遅延配分手段、50 レイアウト情報生成ツール、60 設計ツール群、70 設計データ管理手段、90 設計ツール実行制御手段。
Claims (14)
- 設計支援装置を用いて半導体集積回路の設計を行う半導体集積回路設計方法であって、
前記設計支援装置が、
動作レベル記述と動作合成制約条件とにより、再設計処理を行う際の処理対象範囲の境界条件を示す属性条件が付加されたデータフローグラフを生成し、該データフローグラフに対してスケジューリング、リソースのアロケーションを行って動作合成情報を生成するステップと、
前記動作合成情報と半導体集積回路情報とに基づいてリソースの面積と遅延値を解析し、該解析結果と、クラスタ生成条件に記述されたリソース内の許容遅延値とクラスタ内の許容面積と、に基づいてクラスタの生成を行い、該クラスタを前記半導体集積回路情報に基づいてフロアプランを行ってフロアプラン情報を生成するステップと、
前記フロアプラン情報に基づいてクラスタ内のセルの配置配線を行ってレイアウト情報を生成するステップと、
前記レイアウト情報に基づいてチップレベルの遅延解析を行い、該遅延解析結果に基づいて前記クラスタ間の遅延配分を行って遅延情報を生成するステップと、
前記遅延解析において遅延違反が発生した場合に、前記属性条件を処理対象範囲の境界条件として用いて前記遅延情報に基づいて遅延違反に該当するクラスタのみを処理対象範囲として動作合成情報またはフロアプラン情報の再生成を行うステップと、
を実行することを特徴とする半導体集積回路設計方法。 - 前記フロアプラン情報の再生成を行う際に、前記属性条件を処理対象範囲の境界条件として用いて前記遅延情報に基づいて遅延違反に該当するクラスタのみを処理対象範囲として該クラスタの再生成、分割、併合または複数のクラスタをまとめて上位の階層を生成する階層化を行うことを特徴とする請求項1に記載の半導体集積回路設計方法。
- 動作合成手段とフロアプラン情報生成手段とレイアウト情報生成手段と遅延解析手段とを有する設計ツール群と、設計データ管理手段と、設計ツール実行制御手段とを備え、
前記動作合成手段は、動作レベル記述と動作合成制約条件とを読み込んで処理対象範囲を示す属性条件が付加されたデータフローグラフを生成するデータフロー生成手段と、前記データフローグラフを動作合成の時間制約に基づく時間間隔に時分割して記憶素子を挿入するスケジューリングを行い、また遅延違反が生じた場合に前記属性条件を処理対象範囲の境界条件として用いて遅延違反が生じたクラスタのみの再スケジューリングを行うスケジューリング手段と、前記動作レベル記述中の演算子を外部から与えられる半導体集積回路情報に含まれるリソースに割り当て、または動作レベル記述中の重複する演算子を同一のリソースに割り当てるリソースアロケーションを行い、また遅延違反が生じた場合に前記属性条件を処理対象範囲の境界条件として用いて遅延違反が生じたクラスタのみの再リソースアロケーションを行うリソースアロケーション手段とを有しており、
前記フロアプラン情報生成手段は、前記半導体集積回路情報に基づいて前記リソースを解析して半導体集積回路の面積および遅延値を見積もるリソース解析手段と、前記属性条件と外部から与えられるクラスタ生成条件に記述されたリソース内の許容遅延および許容面積とに基づいてクラスタを生成してクラスタ情報を生成し、また、遅延違反が生じた場合に前記属性条件を処理対象範囲の境界条件として用いて遅延違反が生じたクラスタのみの再生成、分割、併合、または複数のクラスタをまとめて上位の階層を生成する階層化を行ってクラスタ情報を再生成するクラスタ生成手段と、前記クラスタを前記半導体集積回路情報に基づき配置配線してフロアプラン情報を生成するクラスタ配置配線手段とを有しており、
前記レイアウト情報生成手段は、前記フロアプラン情報に基づいて前記クラスタ内のセルの配置配線を行ってレイアウト情報を生成し、
前記遅延解析手段は、前記フロアプラン情報または前記レイアウト情報に基づいてチップレベルの遅延解析を行い、この遅延解析結果に基づいて各クラスタの遅延配分を行い、
前記設計データ管理手段は、前記設計ツール群に入力され、または設計ツール群で生成された情報を保持および更新し、
設計ツール実行制御手段は、前記設計ツール群および前記設計データ管理手段の実行を制御するとともに前記遅延解析において遅延違反が生じた場合に該遅延違反の情報を前記動作合成手段またはフロアプラン情報生成手段にフィードバックして該遅延違反が生じた部分のみの再設計処理の指示を生成すること
を特徴とする設計支援装置。 - 前記遅延解析手段は、前記半導体集積回路情報に含まれるリソースの遅延情報と配線遅延特性、およびクラスタ間の配線長からクラスタ内の遅延およびクラスタ間配線の遅延を計算してチップレベルでの遅延解析を行い、この遅延解析結果を遅延情報として前記クラスタ情報に付加するとともに、この遅延解析結果を前記動作合成制約条件と比較して遅延値に違反がある場合に前記クラスタ情報に遅延オーバー値と違反経路情報とを遅延違反情報として付加することを特徴とする請求項3に記載の設計支援装置。
- 前記遅延解析手段は、前記レイアウト情報に基づいて実配線長を用いた遅延計算を行ってチップレベルでの遅延解析を行い、クラスタ内の遅延情報を前記クラスタ情報に付加するとともに、この遅延解析結果を前記動作合成制約条件と比較して遅延値に違反がある場合に前記クラスタ情報に遅延オーバー値と違反経路情報とを遅延違反情報として付加すること
を特徴とする請求項3に記載の設計支援装置。 - 前記リソースアロケーション手段は、前記遅延違反情報を読み込み、遅延違反のあるクラスタのみ該クラスタ内に含まれるリソースの共用化の組み合わせを変更する再共用化を行うことを特徴とする請求項4および5に記載の設計支援装置。
- 前記リソースアロケーション手段は、前記遅延違反情報を読み込み、遅延違反のあるクラスタ内に含まれるリソースと該クラスタに隣接するクラスタ内に含まれるリソースの共用化の組み合わせを変更する再共用化を行うことを特徴とする請求項4および5に記載の設計支援装置。
- 前記クラスタ生成手段は、前記遅延値解析手段での解析結果において前記クラスタ内およびクラスタ間の遅延値に違反がある場合に、前記遅延違反情報を読み込み、遅延値に違反のあるクラスタ内およびクラスタ間の遅延が最小になるようにクラスタ内のリソースの組み合わせを変更してクラスタを分割することを特徴とする請求項4および5に記載の設計支援装置。
- 前記クラスタ生成手段は、前記遅延値解析手段での解析結果において前記クラスタ内およびクラスタ間の遅延値に違反がある場合に、前記遅延違反情報を読み込み、遅延値に違反のあるクラスタ内およびクラスタ間の遅延が最小になるようにクラスタを併合することを特徴とする請求項4および5に記載の設計支援装置。
- 前記クラスタ生成手段は、前記遅延値解析手段での解析結果において前記クラスタ内およびクラスタ間の遅延値に違反がある場合に前記遅延違反情報を読み込み、大域的なデータフローグラフの流れに沿った上位階層を生成してクラスタの併合を行うことを特徴とする請求項4および5に記載の設計支援装置。
- 前記スケジューリング手段は、前記遅延値解析手段での解析結果において前記クラスタ内およびクラスタ間の遅延値に違反がある場合に、前記遅延違反情報を読み込み、遅延値に違反のあるクラスタ、前記リソースの再共用化を行ったクラスタ、または前記分割、併合、若しくは階層化を行ったクラスタに対して再スケジューリングを行うことを特徴とする請求項6〜10のいずれか一つに記載の設計支援装置。
- 前記クラスタ配置配線手段は、前記遅延解析手段での解析の結果クラスタ間の遅延に違反がある場合に、前記遅延違反情報を読み込み、遅延に違反のあるクラスタ間の距離が近接するように再配置することを特徴とする請求項4および5に記載の設計支援装置。
- 前記スケジューリング手段は、1クロック・サイクルの時間制約を満足しない遅延経路が生じた場合、2クロック・サイクル以上のサイクルを要して記憶する素子間のデータの伝播を認めるマルチ・サイクル・パスを生成するようにスケジューリングを行い、且つマルチ・サイクル・パスを制御する回路を生成することを特徴とする請求項3に記載の設計支援装置。
- 前記クラスタ配置配線手段は、半導体集積回路内の配置領域と配線領域とを2次元メッシュまたは3次元メッシュで近似したモデル上にクラスタの配置配線を行うことを特徴とする請求項3に記載の設計支援装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003056117A JP3811133B2 (ja) | 2003-03-03 | 2003-03-03 | 半導体集積回路設計方法および設計支援装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003056117A JP3811133B2 (ja) | 2003-03-03 | 2003-03-03 | 半導体集積回路設計方法および設計支援装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004265224A JP2004265224A (ja) | 2004-09-24 |
JP3811133B2 true JP3811133B2 (ja) | 2006-08-16 |
Family
ID=33119933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003056117A Expired - Fee Related JP3811133B2 (ja) | 2003-03-03 | 2003-03-03 | 半導体集積回路設計方法および設計支援装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3811133B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819608B2 (en) * | 2007-07-23 | 2014-08-26 | Synopsys, Inc. | Architectural physical synthesis |
WO2011155622A1 (ja) * | 2010-06-09 | 2011-12-15 | 日本電気株式会社 | 回路合成装置、方法、及び、プログラム |
US8977996B2 (en) | 2010-10-28 | 2015-03-10 | Nec Corporation | Method, design apparatus, and program product for incremental design space exploration |
JP5910108B2 (ja) | 2012-01-25 | 2016-04-27 | 株式会社ソシオネクスト | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 |
JP2016014950A (ja) * | 2014-07-01 | 2016-01-28 | 三菱電機株式会社 | 回路設計支援装置及び回路設計支援方法及びプログラム |
CN117744546B (zh) * | 2024-02-21 | 2024-05-28 | 深圳市山海半导体科技有限公司 | 数字电路评估方法、系统、设备及存储介质 |
-
2003
- 2003-03-03 JP JP2003056117A patent/JP3811133B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004265224A (ja) | 2004-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7669160B2 (en) | Methods and systems for placement | |
Eles et al. | System synthesis with VHDL | |
CN104573169B (zh) | 以自动流水线操作能力设计集成电路的方法和工具 | |
Papa et al. | Physical synthesis with clock-network optimization for large systems on chips | |
JP2002123563A (ja) | コンパイル方法および合成装置ならびに記録媒体 | |
Srinivasan et al. | Fine-grained and coarse-grained behavioral partitioning with effective utilization of memory and design space exploration for multi-FPGA architectures | |
Lavagno et al. | Design of embedded systems | |
Chen et al. | Simultaneous timing driven clustering and placement for FPGAs | |
Hutton et al. | FPGA synthesis and physical design | |
US9047434B2 (en) | Clustering for processing of circuit design data | |
Wang et al. | A robust FPGA router with concurrent intra-CLB rerouting | |
US10339241B1 (en) | Methods for incremental circuit design legalization during physical synthesis | |
JP3811133B2 (ja) | 半導体集積回路設計方法および設計支援装置 | |
WO2007147084A2 (en) | Generalized clock tree synthesis | |
Gajski et al. | 100-hour design cycle: A test case | |
WO2007146966A2 (en) | Methods and systems for placement | |
Pan et al. | Timing-driven placement | |
Tarafdar et al. | A data-centric approach to high-level synthesis | |
Thepayasuwan et al. | Layout conscious approach and bus architecture synthesis for hardware/software codesign of systems on chip optimized for speed | |
Nagasamy et al. | Specification, planning, and synthesis in a VHDL design environment | |
Lee et al. | High-level synthesis with distributed controller for fast timing closure | |
US8024681B2 (en) | Hierarchical HDL processing method and non-transitory computer-readable storage medium | |
US10936772B1 (en) | Methods for incremental circuit physical synthesis | |
Baker | Multiple objective optimisation of data and control paths in a behavioural silicon compiler | |
Mao et al. | Library-based placement and routing in fpgas with support of partial reconfiguration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060424 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060523 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060525 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |