(57)【要約】【課題】  レイアウト前に行われる回路ブロック間の仮想配線長の見積り精度を向上させる。【解決手段】  仮想配線長が見積られる配線が含まれる全てのブロックから、配線が接続されるセルが含まれるブロックを選択し（ステップＳ１１）、ワイヤーロードモデルを選択する（ステップＳ１２）。選択されたワイヤーロードモデルとファンアウトからブロック単位で仮想配線長を求め（ステップＳ１３）、それらの仮想配線長を合計して仮想配線長を求める（ステップＳ１４）。【選択図】  図２
2005202610.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路設計のブロックレイアウト前の段階で仮想配線長を見積る仮想配線長見積り装置であって、
ゲートレベルのセルとその配線接続情報およびブロックの階層構造を含む回路情報データと、該ゲートレベルのセル面積、配線長計算モデル選択基準および配線長計算モデルを含む仮想配線用ライブラリとを用いて、該仮想配線長が見積られる配線が接続されるセルが含まれるブロックに対して、該仮想配線長を見積る制御手段を備えた仮想配線長見積り装置。
【請求項２】
前記制御手段は、
該仮想配線長が見積られる配線が含まれる全てのブロックから、該配線が接続されるセルが含まれるブロックを選択するブロック選択手段と、
選択されたブロックに対して、配線長計算モデルを用いてブロック単位の仮想配線長を求めるブロック単位仮想配線長計算手段と、
ブロック単位の仮想配線長を合計して仮想配線長を見積る仮想配線長合計手段とを有する請求項１に記載の仮想配線長見積り装置。
【請求項３】
半導体集積回路設計のブロックレイアウト前の段階で仮想配線長を見積る仮想配線長見積り装置であって、
該仮想配線長が見積られる配線が含まれる全てのブロックから、該配線が接続されるセルが含まれるブロックを選択するブロック選択手段と、
選択されたブロックに対して、配線長計算モデルを用いてブロック単位の仮想配線長を求めるブロック単位仮想配線長計算手段と、
ブロック単位の仮想配線長を合計して仮想配線長を見積る仮想配線長合計手段とを有する仮想配線長見積り装置。
【請求項４】
前記ブロック選択手段は、前記セルが含まれるブロックに一方フラグを設定すると共に、該セルが含まれないブロックに他方フラグを設定したブロックの階層構造を表す木構造のグラフを用いて、最下位階層のブロックから最上位階層のブロックまでの全ブロックにそれぞれ該一方フラグがあるかどうかを検出し、該一方フラグがあるブロックを選択する請求項２または３に記載の仮想配線長見積り装置。
【請求項５】
前記ブロック選択手段は、前記グラフから選択されたブロックに対応するノードが全て含まれるように連なった最小木を求め、選択されたブロック間に挟まれた、選択されていないブロックが該最小木に連なって含まれている場合には、その選択されていないブロックをも含めて選択する請求項４に記載の仮想配線長見積り装置。
【請求項６】
前記ブロック単位仮想配線長計算手段は、前記選択されたブロックの面積に応じて前記配線長計算モデルを選択する請求項２または３に記載の仮想配線長見積り装置。
【請求項７】
前記ブロック単位仮想配線長計算手段は、前記選択した配線長計算モデルを用いて、仮想配線長が見積られる配線に接続されるセルの端子数から該仮想配線長を求める請求項６に記載の仮想配線長見積り装置。
【請求項８】
半導体集積回路設計のブロックレイアウト前の段階で仮想配線長を見積る仮想配線長見積り方法であって、
仮想配線長が見積られる配線が含まれる全てのブロックから、該配線が接続されるセルが含まれるブロックを選択するブロック選択ステップと、
選択されたブロックに対して、配線長計算モデルを用いてブロック単位の仮想配線長を求めるブロック単位仮想配線長計算ステップと、
ブロック単位の仮想配線長を合計して仮想配線長を見積るステップとを有する仮想配線長見積り方法。
【請求項９】
前記ブロック選択ステップは、前記セルが含まれるブロックに一方フラグを設定すると共に、該セルが含まれないブロックに他方フラグを設定したブロックの階層構造を表す木構造のグラフを用いて、最下位階層のブロックから最上位階層のブロックまでの全ブロックにそれぞれ該一方フラグがあるかどうかを検出し、該一方フラグがあるブロックを選択する請求項８に記載の仮想配線長見積り方法。
【請求項１０】
前記ブロック選択ステップは、前記グラフから選択されたブロックに対応するノードが全て含まれるように連なった最小木を求め、選択されたブロック間に挟まれた、選択されていないブロックが該最小木に連なって含まれている場合には、その選択されていないブロックをも含めて選択する請求項９に記載の仮想配線長見積り方法。
【請求項１１】
請求項８〜１０のいずれかに記載の仮想配線長見積り方法の各処理手順をコンピュータに実行させるための仮想配線長見積り用制御プログラム。
【請求項１２】
請求項１１に記載の仮想配線長見積り用制御プログラムが記録されたコンピュータ読み取り可能な可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計においてレイアウト設計前のゲートレベルシミュレーションにおいて行われる仮想配線長見積り方法、これをコンピュータに実行させるための仮想配線用見積り用制御プログラム、これを記録したコンピュータ読み出し可能な可読記憶媒体およびこれらを用いた仮想配線長見積り装置に関する。
【背景技術】
【０００２】
従来より、半導体集積回路の微細化および大規模化に伴って、信号遅延などのタイミングや消費電力に対して、配線容量や配線抵抗などに直接関係する配線長さの誤差による影響が大きくなってきている。このため、半導体集積回路の設計においては、予め配線長の見積りが行われる。
【０００３】
図１３は、従来の半導体集積回路の設計工程を説明するためのフロー図である。
【０００４】
図１３に示すように、ステップＳ１〜Ｓ５の各設計工程を経て最終的にその半導体集積回路の設計データが製造プロセスに受け渡されるが、ここでは、この半導体集積回路の設計工程と配線長の見積りとの関係について説明する。
【０００５】
仕様の決定では、半導体集積回路が搭載される機器の設計に応じて半導体集積回路の仕様が定義される。ここで定義される仕様は、回路の動作を規定する機能仕様と回路の入出力信号のタイミングを規定するタイミング制約とを含む。この仕様を元に半導体集積回路の設計が開始される。
【０００６】
まず、ステップＳ１では、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）設計が行われる。ＲＴＬ設計では、仕様の決定で定義された機能仕様を元に、半導体集積回路の機能がハードウェア記述言語などを用いて記述される。
【０００７】
次に、ステップＳ２では、ステップＳ１で記述された半導体集積回路（ＲＴＬ）がシミュレーションされる。このＲＴＬシミュレーションは配線遅延を利用しないシミュレーションである。ステップＳ２で半導体集積回路の機能が仕様を満たしていれば、次のステップＳ３の処理に進む。
【０００８】
ステップＳ３では、論理合成が行われる。この論理合成工程では、機能的な動作が記述されたハードウェア記述言語などの半導体集積回路の設計データが、ネットリストと言われるゲートレベルのセル（ＮＡＮＤ、ＮＯＲ、フリップフロップなどの最小単位のゲート回路）の接続情報に変換される。このとき、仕様の決定で定義されたタイミング制約を満足するように、タイミング制約を設定する必要がある。
【０００９】
ステップＳ４では、ゲートレベルシミュレーションが行われる。このゲートレベルシミュレーションでは、ステップＳ３で論理合成されたゲートレベルのセルの接続情報であるネットリストのタイミングが仕様を満足するか否かが検証される。ステップＳ４でタイミング違反が検出されれば、論理合成に用いられるタイミング制約の設定またはＲＴＬ設計が修正され、ステップＳ１〜Ｓ３の各処理が繰り返される。上記ステップＳ４では、信号遅延や消費電力などを見積るために、回路の接続情報から、例えば仮想配線長が見積られる配線（仮想配線長の見積り対象配線）に接続されるゲートレベルのセルの入力端子数（ファンアウト）とゲートレベルのセル面積（またはブロック面積）の情報を元に、レイアウト前に配線長が見積られる。このとき、見積られた配線長を仮想配線長と言う。ゲートレベルシミュレーションでは、この仮想配線長による配線遅延を用いてシミュレーションが行われる。
【００１０】
ステップＳ５では、レイアウトが行われる。このレイアウト工程では、ネットリストを元に、ゲートレベルのセルがチップ上に配置配線される。このステップＳ５で配線のレイアウト形状が決定されるので、実際に作製される半導体集積回路の配線長を見積もることができる。通常、この段階で得られる配線長を実配線長と言う。
【００１１】
ステップＳ６では、バックアノテーション付きシミュレーションが行われる。このバックアノテーション付きシミュレーションとは、実配線長による配線遅延を利用するシミュレーションである。即ち、上記実配線長から求められる信号遅延情報をシミュレーション手段に与えて、ゲートレベルシミュレーションを行うことをバックアノテーション付のゲートレベルシミュレーションと言う。ここでは、レイアウト形状から配線容量と配線抵抗とが抽出されて配線遅延が見積られるため、精度が高い遅延情報が得られる。しかしながら、このバックアノテーション付のシミュレーションでタイミング違反が発生すると、ステップＳ３まで後戻りして、ネットリストや論理合成で用いられるタイミング制約に修正を加えてステップＳ３〜Ｓ６の各処理が繰り返されることになり、半導体集積回路の設計期間全体に大きな影響を与える。よって、ステップＳ３〜Ｓ６のループ処理期間を短縮化することができるように、仮想配線長を精度良く見積ることが重要である。
【００１２】
このように、論理合成時の仮想配線長とレイアウト時の実配線長との見積り（実配線長は信号遅延に比例する）の違いにより設計期間が増大するという問題は、タイミング収束（タイミング・コンバージェンス）問題と言われ、半導体集積回路の設計者に周知されている問題である。また、消費電力の見積りにおいても、配線の負荷容量の充放電による消費電力を設計早期に正確に見積もるために、仮想配線長の見積りを正確に行う必要がある。
【００１３】
仮想配線長は、配線のファンアウトと、配線が含まれるブロック面積とによって決定される。
【００１４】
配線のファンアウトは、図１４の配線１０１に示すように、ゲートレベルのセルの出力端子から他の入力端子への接続数で表している。図１４の例では、配線に接続される入力端子数が三つであるので、ファンアウトは「３」と導かれる。
【００１５】
また、ブロックとは、半導体集積回路の設計者が決定する回路の階層を一つの単位とした回路部分を示している。ブロック面積（またはセル面積）は、仮想配線長が見積られる配線が含まれるブロック内のゲートレベルのセルの面積を合計して見積ったものである。
【００１６】
例えば下記表１に示すように、ブロック面積を選択基準として、下記表２に示すようなファンアウトと仮想配線長との関係を表したワイヤーロードモデル（配線長計算モデル）が選択される。この選択されたワイヤーロードモデルから、ファンアウトをパラメータとしたテーブルが参照されて仮想配線長が見積られる。ここで、ファンアウトを引数として仮想配線長を決定するために用いられるテーブルがワイヤーロードモデル（テーブル）と言われている。
【００１７】
【表１】
2005202610.tif 000003
【００１８】
【表２】
2005202610.tif 000004
【００１９】
上記表１では、ワイヤーロードモデルを選択するための基準となるブロック面積の例が示されている。この表１の例では、面積０以上１０未満でＭｏｄｅｌ１０が選択され、面積１０以上２０未満でＭｏｄｅｌ２０が選択され、面積２０以上でＭｏｄｅｌＩｎｆが選択される。また、上記表２では、Ｍｏｄｅｌ１０、Ｍｏｄｅｌ２０およびＭｏｄｅｌＩｎｆの三つのワイヤーロードモデルについて、ファンアウトと仮想配線長との関係が示されている。
【００２０】
例えば図１４の配線例において、ブロック面積のブロック内にファンアウト「３」の配線が含まれている場合、上記表１を参照して、１０≦面積＜２０であれば、ワイヤーロードモデルＭｏｄｅｌ２０が選択される。上記表２のＭｏｌｄｅｌ２０においてファンアウト「３」を参照すると、仮想配線長は「４．０」と求められる。
【００２１】
上記表１に示すワイヤーロードモデルの選択基準や、上記表２に示すワイヤーロードモデルは、過去のレイアウトで得られた実配線長の分布から作成される。一般に、ワイヤーロードモデルとしては、全回路にまたがる最上位階層のブロック配線用のモデルと、中間階層のブロック間配線用のモデルと、ブロック内配線用のモデルが利用される。最上位階層のブロックの配線長の値は、半導体集積回路の全体に広がる配線であるため、中間階層のブロック間の配線長およびブロック内の配線長の値に比べて、非常に大きくなる傾向がある。また、中間階層のブロック間の配線長の値に比べて、ブロック内の配線長の値は小さい傾向にあるが、最上位階層のブロックおよび中間階層のブロックの間に比べて配線長の差は少ない。これらの傾向は、ワイヤーロードモデルにも反映される。ここで、半導体集積回路のブロックの階層構造とブロックの面積を考慮して、設計者が最上位階層のブロック配線用およびブロック内配線用の二つのワイヤーロードモデルを仮想配線長の見積りに利用することや、四つ以上のワイヤーロードモデルを利用することを決定する場合もある。
【００２２】
次に、仮想配線長の見積り方法に関する四つの従来技術について説明する。
【００２３】
例えば特許文献１，２には、仮想配線長の見積り精度を向上させるために、ブロック面積（またはセル面積）とファンアウトの他に、該当ブロックに含まれるネット数や基本セルのブロックに占めるセル使用率も加えて仮想配線長を見積もる方法が開示されている。
【００２４】
特許文献３には、ブロック間の仮想配線長の見積り精度を向上させるために、互いに近傍に配置されると予測される二つのブロック間の配線に対する配線長に関して、予め設定された配線長を仮想配線長とする方法が開示されている。このようなブロックとしては、例えばＩ／Ｏバッファとその近傍に配置されるバウンダリスキャンレジスタとが挙げられる。
【００２５】
特許文献４には、ブロック間の仮想配線長の見積り精度を向上させるために、ブロックとその端子（ピン）を仮配置して配線長を見積る方法が開示されている。
【００２６】
さらに、非特許文献１には、レイアウト前に、ブロックの仮配置を行わないで、ブロック間の仮想配線長を見積るためのワイヤーロードモデルを選択する方法として、以下の（１）、（２）および（３）のような３通りの方法が開示されている。
【００２７】
（１）ＴＯＰモードによるワイヤーロードモデルの選択方法：
見積り対象である回路中の最上位ブロックの面積を基にワイヤーロードモデルが選択され、ファンアウトとワイヤーロードモデルの値から仮想配線長が見積られる。
【００２８】
（２）ＥＮＣＬＯＳＥＤモードによるワイヤーロードモデルの選択方法：
見積り対象である配線を含むブロックの中で最上位のブロックの面積を基にワイヤーロードモデルが選択され、ファンアウトとワイヤーロードモデルの値から仮想線長が見積られる。
【００２９】
（３）ＳＥＧＭＥＮＴモードによるワイヤーロードモデルの選択方法：
見積り対象である配線を含む全てのブロックに対してそれぞれの面積を基にワイヤーロードモデルをそれぞれ適用して仮想配線長が計算され、計算されたブロック単位の仮想配線長の合計が仮想配線長として見積られる。
【００３０】
次に、仮想配線長見積り方法について、図１５を用いて説明する。
【００３１】
図１５は、従来の仮想配線長見積り方法の各処理を説明するためのフローチャートである。
【００３２】
図１５に示すように、まず、ステップＳ２１では、仮想配線長が見積られる配線（仮想配線長の見積り対象配線）が含まれるブロックが選択される。ここで選択されるブロックは一つであっても複数であってもよい。
【００３３】
次に、ステップＳ２２では、選択されたブロックのゲートレベルのブロック面積（またはセル面積）からワイヤーロードモデルが選択される。
【００３４】
ステップＳ２３では、ワイヤーロードモデルが定義されたテーブルと仮想配線長が見積られる配線のファンアウトとから仮想配線長が見積られる。
【００３５】
ステップＳ２４では、全てのブロックに対して、仮想配線長を計算したかどうかを判定する。ステップＳ２４で全てのブロックに対して仮想配線長を計算した場合（「はい」）には、次のステップＳ２５の処理に移行し、また、ステップＳ２４で全てのブロックに対して仮想配線長を計算していない場合（「いいえ」）には、全てのブロックに対して仮想配線長を計算し終わるまでステップＳ２１〜Ｓ２３の各処理を繰り返す。
【００３６】
全てのブロックに対して仮想配線長を計算した場合に、最後に、ステップＳ２５で、選択された全てのブロックに対する仮想配線長の合計が求められ、仮想配線長の見積り処理が終了する。
【００３７】
次に、図１５に示す仮想配線長の見積り計算フローについて、上記（１）ＴＯＰモード、（２）ＥＮＣＬＯＳＥＤモードおよび（３）ＳＥＧＭＥＮＴＥＤモードの三つのワイヤーロード選択方法によって、図１６に示すような配線の仮想配線長を見積る場合について説明する。図１６に示す配線例では、見積り対象の配線が含まれるブロックＡ〜Ｅが示されている。最上位階層はブロックＡであり、配線のファンアウトは「３」である。
【００３８】
まず、（１）ＴＯＰモードによるワイヤーロードモデルの選択方法を用いた場合について説明する。
【００３９】
ステップＳ２１では、仮想配線長が見積られる配線が含まれるブロックが選択される。ＴＯＰモードでは、仮想配線長の見積り対象回路の中で最上位階層のブロックＡが選択される。
【００４０】
次に、ステップＳ２２では、選択されたブロックのゲートレベルのブロック面積（またはセル面積）からワイヤーロードモデルが選択される。各ブロックＡ〜Ｅの面積は下記表３の中央列に示されている通りであり、上記表１に示すワイヤーロードモデル選択基準によって、下記表３の右列に示すようにワイヤーロードモデルが選択され得る。ブロックＡの面積は「２５」であるため、ＭｏｄｅｌＩｎｆが選択される。
【００４１】
【表３】
2005202610.tif 000005
【００４２】
ステップＳ２３では、ワイヤーロードモデルが定義されたテーブルと仮想配線長が見積られる配線のファンアウトとから仮想配線長が見積られる。仮配線長が見積られる配線のファンアウト「３」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌＩｎｆとから、仮想配線長は「３０」と求められる。
【００４３】
最後に、ステップＳ２５では、選択された全てのブロックに対する仮想配線長の合計が求められ、仮想配線長の見積り処理が終了する。ここでは選択されたブロックは「Ａ」のみなので、仮想配線長は「３０」と見積られる。
【００４４】
次に、（２）ＥＮＣＬＯＳＥＤモードによるワイヤーロードモデルの選択方法を用いた場合について説明する。
【００４５】
ステップＳ２１では、仮想配線長が見積られる配線が含まれるブロックが選択される。ＥＮＣＬＯＳＥＤモードでは、仮想配線長が見積られる配線が含まれるブロックＡ〜Ｅの中で最上位階層のブロックＡが選択される。
【００４６】
ステップＳ２２では、選択されたブロックのゲートレベルのブロック面積（またはセル面積）からワイヤーロードモデルが選択される。各ブロックＡ〜Ｅの面積は下記表３の中央列に示されている通りであり、上記表１に示すワイヤーロードモデル選択基準によって、下記表３の右列に示すようにワイヤーロードモデルが選択され得る。ブロックＡの面積は「２５」であるため、ＭｏｄｅｌＩｎｆが選択される。
【００４７】
ステップＳ２３では、ワイヤーロードモデルが定義されたテーブルと仮想配線長が見積られる配線のファンアウトとから仮想配線長が見積られる。仮配線長が見積られる配線のファンアウト「３」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌＩｎｆとから、仮想配線長は「３０」と求められる。
【００４８】
最後に、ステップＳ２５では、選択された全てのブロックに対する仮想配線長の合計が求められて、仮想配線長の見積り処理が終了する。ここでは、選択されたブロックは「Ａ」のみなので、仮想配線長はＴＯＰモードの場合と同様に「３０」と見積られる。
【００４９】
次に、（３）ＳＥＧＭＥＮＴＥＤモードによるワイヤーロードモデルの選択方法を用いた場合について説明する。
【００５０】
ステップＳ２１では、仮想配線長が見積れる配線が含まれるブロックが選択される。ＳＥＧＭＥＮＴＥＤモードモードでは、仮想配線長が見積られる配線が含まれる全てのブロックＡ〜Ｅが選択される。
【００５１】
ステップＳ２２では、選択されたブロックのゲートレベルのブロック面積（またはセル面積）からワイヤーロードモデルが選択される。各ブロックＡ〜Ｅの面積は下記表３の中央列に示されている通りであり、上記表１に示すワイヤーロードモデル選択基準によって、下記表３の右列に示すようにワイヤーロードモデルが選択される。ブロックＡの面積は「２５」であるため、ＭｏｄｅｌＩｎｆが選択される。また、ブロックＢの面積は「１３」であるため、Ｍｏｄｅｌ２０が選択される。また、ブロックＣおよびブロックＤの面積は「３」であるため、Ｍｏｄｅｌ１０が選択される。また、ブロックＥの面積は「２」であるため、Ｍｏｄｅｌ１０が選択される。
【００５２】
ステップＳ２３では、ワイヤーロードモデルが定義されたテーブルと仮想配線長が見積られる配線のファンアウトとから仮想配線長が見積られる。ここでは、ブロックに含まれる配線のファンアウトが計算される。ブロックに含まれる配線のファンアウトは、ブロック内において仮想配線長が見積られる配線から接続される外部ブロックへの出力端子の数と、ブロックに含まれる仮想配線長が見積られる配線に接続されるゲートレベルのセルの入力端子の数とを合計した数値によって求められる。例えば、ブロックＢのファンアウトは、ブロックＢから他のブロックへの出力端子数が「１」、ブロックＢに含まれるゲートレベルのセルの入力端子数が「１」であるので、合計「２」と求められる。同様に、ブロックＣのファンアウトは「２」、その他のブロックＡ、ブロックＤおよびブロックＥのファンアウトは各「１」とそれぞれ求められる。したがって、ブロックＡでは、仮配線長が見積られる配線のファンアウト「１」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌＩｎｆとから、仮想配線長は「１０」と求められる。また、ブロックＢでは、仮配線長が見積られる配線のファンアウト「２」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌ２０とから、仮想配線長は「３．０」と求められる。また、ブロックＣでは、仮配線長が見積られる配線のファンアウト「２」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌ１０とから、仮想配線長は「１．５」と求められる。また、ブロックＤおよびブロックＥでは、仮想配線長が見積られる配線のファンアウト「１」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌ１０とから、仮想配線長は各「１．０」と求められる。
【００５３】
最後に、ステップＳ２５では、選択された全てのブロックに対する仮想配線長の合計が求められ、仮想配線長の見積り処理が終了される。選択されたブロックＡ〜ブロックＥの仮想配線長の合計値＝１０＋３＋１．５＋１．０＋１．０＝１６．５であるので、仮想配線長は「１６．５」と見積られる。
【特許文献１】特開平９−１０１９７９号公報
【特許文献２】特開平９−８１６２１号公報
【特許文献３】特開２０００−３３１０４５号公報
【特許文献４】特開２０００−１１０２６号公報
【非特許文献１】Ｓｙｎｏｐｓｙｓ社 Ｌｉｂｒａｒｙ Ｃｏｍｐｉｌｅｒリファレンスマニュアル Ｖｏｌ２．６−１０
【発明の開示】
【発明が解決しようとする課題】
【００５４】
上記従来の半導体集積回路の設計では、レイアウトを実行しないと、ブロック間に配線される配線長の見積り精度を充分に改善できないという問題があった。
【００５５】
例えば上記（１）ＴＯＰモードによるワイヤーロードモデルの選択方法を用いると、ブロック間に配線がある場合、常に、配線が実際に含まれる階層のブロックよりも面積が大きい最上位ブロックの面積を基に仮想配線長を計算するワイヤーロードモデルが選択されるため、仮想配線長が大きく見積られ過ぎるという傾向がある。例えば図１７に示すような配線の場合には、実際に配線が含まれる階層のブロックａではなく、それよりも面積が大きい最上位ブロックｂが選択されている。
【００５６】
上記（２）ＥＮＣＬＯＳＥＤモードによるワイヤーロードモデルの選択方法でも、図１８に示すような配線の場合には、実際に配線が含まれる階層のブロックｃではなく、それよりも面積が大きい上位ブロックｄが選択される。
【００５７】
（３）ＳＥＧＭＥＮＴＥＤモードによるワイヤーロードモデルの選択方法でも、図１８に示すような配線の場合には、実際に配線が含まれる階層のブロックｃに加えて、それよりも面積が大きい上位ブロックｄも選択される。しかしながら、レイアウトにおいてはＲＴＬで定義されたブロック階層に従って配置や配線が行われないため、図１８と図１９とは等価なものとなる。よって、下位ブロックｃの仮想配線長を見積もる方が、よりレイアウト段階で得られる実配線長に近い配線長が得られる。上位階層のブロックｄはブロックの面積が大きくなるため、下位階層のブロックｃの仮想配線長よりも仮想配線長が大きく見積られる傾向にある。
【００５８】
また、上記特許文献１，２では、セル面積（またはブロック面積）とファンアウトの他にネット数やセル使用率も加えて仮想配線長が見積られるため、ブロック面積とファンアウトから仮想配線長を見積もる方法に比べて処理が大幅に複雑になるという問題がある。
【００５９】
上記特許文献３では、例えばＩ／Ｏバッファやバウンダリスキャンレジスタなどのような特定のブロック間の配線に対してしか仮想配線長の精度を向上させることができないという問題がある。
【００６０】
上記特許文献４では、ブロックの仮配置はブロック間のつながりを考慮して行われると記述されているが、その実現方法については全く言及されていない。
【００６１】
本発明は、上記従来の問題を解決するもので、半導体集積回路の設計において、レイアウト実行前に、ブロックを仮配置することなく、より精度良く仮想配線長を見積ることができる仮想配線長見積り方法、これをコンピュータに実行させるための仮想配線用見積り用制御プログラム、これを記録したコンピュータ読み出し可能な可読記憶媒体およびこれらを用いた仮想配線長見積り装置を提供することを目的とする。
【課題を解決するための手段】
【００６２】
本発明の仮想配線長見積り装置は、半導体集積回路設計のブロックレイアウト前の段階で仮想配線長を見積る仮想配線長見積り装置であって、ゲートレベルのセルとその配線接続情報およびブロックの階層構造を含む回路情報データと、該ゲートレベルのセル面積、配線長計算モデル選択基準および配線長計算モデルを含む仮想配線用ライブラリとを用いて、該仮想配線長が見積られる配線が接続されるセルが含まれるブロックに対して、該仮想配線長を見積る制御手段を備え、そのことにより上記目的が達成される。
【００６３】
また、好ましくは、本発明の仮想配線長見積り装置における制御手段は、該仮想配線長が見積られる配線が含まれる全てのブロックから、該配線が接続されるセルが含まれるブロックを選択するブロック選択手段と、この選択されたブロックに対して、配線長計算モデルを用いてブロック単位の仮想配線長を求めるブロック単位仮想配線長計算手段と、このブロック単位の仮想配線長を合計して仮想配線長を見積る仮想配線長合計手段とを有する。
【００６４】
本発明の仮想配線長見積り装置は、半導体集積回路設計のブロックレイアウト前の段階で仮想配線長を見積る仮想配線長見積り装置であって、該仮想配線長が見積られる配線が含まれる全てのブロックから、該配線が接続されるセルが含まれるブロックを選択するブロック選択手段と、この選択されたブロックに対して、配線長計算モデルを用いてブロック単位の仮想配線長を求めるブロック単位仮想配線長計算手段と、ブロック単位の仮想配線長を合計して仮想配線長を見積る仮想配線長合計手段とを有し、そのことにより上記目的が達成される。
【００６５】
また、好ましくは、本発明の仮想配線長見積り装置におけるブロック選択手段は、前記セルが含まれるブロックに一方フラグを設定すると共に、該セルが含まれないブロックに他方フラグを設定したブロックの階層構造を表す木構造のグラフを用いて、最下位階層のブロックから最上位階層のブロックまでの全ブロックにそれぞれ該一方フラグがあるかどうかを検出し、該一方フラグがあるブロックを選択する。
【００６６】
さらに、好ましくは、本発明の仮想配線長見積り装置におけるブロック選択手段は、前記グラフから選択されたブロックに対応するノードが全て含まれるように連なった最小木を求め、選択されたブロック間に挟まれた、選択されていないブロックが該最小木に連なって含まれている場合には、その選択されていないブロックをも含めて選択する。
【００６７】
さらに、好ましくは、本発明の仮想配線長見積り装置におけるブロック単位仮想配線長計算手段は、前記選択されたブロックの面積に応じて前記配線長計算モデルを選択する。
【００６８】
さらに、好ましくは、本発明の仮想配線長見積り装置におけるブロック単位仮想配線長計算手段は、前記選択した配線長計算モデルを用いて、仮想配線長が見積られる配線に接続されるセルの端子数から該仮想配線長を求める。
【００６９】
本発明の仮想配線長の見積り方法は、半導体集積回路設計のブロックレイアウト前の段階で仮想配線長を見積る仮想配線長見積り方法であって、仮想配線長が見積られる配線が含まれる全てのブロックから、該配線が接続されるセルが含まれるブロックを選択するブロック選択ステップと、この選択されたブロックに対して、配線長計算モデルを用いてブロック単位の仮想配線長を求めるブロック単位仮想配線長計算ステップと、このブロック単位の仮想配線長を合計して仮想配線長を見積るステップとを有し、そのことにより上記目的が達成される。
【００７０】
また、好ましくは、本発明の仮想配線長の見積り方法におけるブロック選択ステップは、前記セルが含まれるブロックに一方フラグを設定すると共に、該セルが含まれないブロックに他方フラグを設定したブロックの階層構造を表す木構造のグラフを用いて、最下位階層のブロックから最上位階層のブロックまでの全ブロックにそれぞれ該一方フラグがあるかどうかを検出し、該一方フラグがあるブロックを選択する。
【００７１】
さらに、好ましくは、本発明の仮想配線長見積り方法におけるブロック選択ステップは、前記グラフから選択されたブロックに対応するノードが全て含まれるように連なった最小木を求め、選択されたブロック間に挟まれた、選択されていないブロックが該最小木に連なって含まれている場合には、その選択されていないブロックをも含めて選択する。
【００７２】
本発明の仮想配線長見積り用制御プログラムは、請求項８〜１０のいずれかに記載の上記仮想配線長見積り方法の各処理手順をコンピュータに実行させるための制御プログラムであって、そのことにより上記目的が達成される。
【００７３】
本発明の可読記憶媒体は、請求項１１に記載の上記仮想配線長見積り用制御プログラムが記録されたコンピュータ読み取り可能な記憶媒体であって、そのことにより上記目的が達成される。
【００７４】
上記構成により、以下に、本発明の作用について説明する。
【００７５】
本発明の仮想配線長見積り装置およびそれを用いた仮想配線長見積り方法にあっては、ブロック間を接続する配線において、配線に接続される入力元のゲートレベルのセル（セルの出力端子）と出力先のゲートレベルのセル（セルの入力端子）が含まれる各ブロックが選択される。選択されたブロックの仮想配線長が各ブロックに対応するワイヤーロードモデルから求められて、それらの合計がその配線の仮想配線長として見積られる。仮想配線長の見積り対象配線が含まれるブロックであっても、配線が接続されるセルが含まれないブロックは選択されないため、ブロック間に配線がある場合に、仮想配線長が大きく見積られ過ぎることを防いで仮想配線長の見積り精度を向上させることができる。
【００７６】
また、ブロックの階層構造を表すグラフを利用して、グラフの最小木を求めることにより、配線が通過するブロックも仮想配線長の見積りに利用することができる。
【００７７】
さらに、仮想配線長見積り用制御プログラムにしたがって、回路情報データ（ゲート、トランジスタなどの基本構成要素であるゲートレベルのセルと、それらの配線接続情報およびブロックの階層構造）と、仮想配線用ライブラリ（ゲートレベルのセル面積、ワイヤーロード選択基準、ワイヤーロードモデルなど）とを用いて、仮想配線長が見積られる。
【発明の効果】
【００７８】
本発明によれば、従来の仮想配線長見積り方法に比べて、レイアウトを実施することなく、実配線に近い仮想配線長を得ることができる。これにより、論理合成とレイアウトとの間の繰り返し作業を抑制できて、半導体集積回路の設計期間を大幅に短縮することができる。
【発明を実施するための最良の形態】
【００７９】
以下に、本発明の仮想配線長見積り方法、これをコンピュータに実行させるための仮想配線長見積り用制御プログラム、これを記録した可読記憶媒体およびこれらを用いた仮想配線長見積り装置の各実施形態について、図面を参照しながら説明する。
【００８０】
図１は、本実施形態の仮想配線長見積り装置の要部構成を示すブロック図である。
【００８１】
図１に示すように、仮想配線長見積り装置１０は、手操作入力装置１１、演算装置（演算手段）１２および表示装置１３と、可読記録媒体としての外部記憶装置１５とが間に入出力バスを介して主記憶装置１４にそれぞれ接続されて構成されている。
【００８２】
手操作入力装置１１は、キーボードやマウスなどからなり、回路情報データおよび仮想配線長の見積り実行のための制御指示などが入力される。
【００８３】
演算装置１２では、制御手段としてのＣＰＵ（中央演算処理装置）で構成されており、主記憶装置１４に記憶されている仮想配線長見積り用制御プログラムおよび各種データに従って仮想配線長の計算を実行する。即ち、演算装置１２は、仮想配線長が見積られる配線が含まれる全てのブロックから、その見積用の配線が接続されるセルが含まれるブロックを選択するブロック選択手段１２ａと、ブロック選択手段１２ａｄｅ選択したブロックに対して、配線長計算モデルを用いてブロック単位の仮想配線長を計算するブロック単位仮想配線長計算手段１２ｂと、ブロック単位仮想配線長計算手段１２ｂで計算したブロック単位の全仮想配線長を合計して仮想配線長を見積る仮想配線長合計手段１２ｃとを有しており、半導体集積回路設計の回路ブロックのレイアウト前に仮想配線長を見積る。
【００８４】
表示装置１３は、ＣＲＴやＬＥＤなどのディスプレイ（表示画面）を有しており、仮想配線長見積り用制御プログラムの実行経過データおよび実行結果データが表示画面上に表示される。
【００８５】
主記憶装置１４は、外部記憶装置１５からの各種データが必要に応じて記録されると共にそのデータの読み出し、手操作入力装置１１からのデータの書き込みなどが行われるワークメモリとして働く。
【００８６】
外部記憶装置１５は、コンピュータ読み取り可能な可読記録媒体として、ハードディスク装置、磁気テープ、磁気記録媒体（ＦＤ）、光ディスク（ＣＤ；コンパクトディスク）などからなり、ゲート、トランジスタなどの基本構成要素であるゲートレベルのセルと、それらの配線接続情報およびブロックの階層構造などを含む回路情報データ１５ａと、ゲートレベルのセル面積（またはブロック面積）、ワイヤーロード選択基準およびワイヤーロードモデルなどを含む仮想配線用ライブラリ１５ｂと、仮想配線長見積り用制御プログラム１５ｃとが記憶されている。
【００８７】
上記構成の仮想配線長見積り装置１０によって実行される仮想配線長見積り方法の各処理について、図２を用いて説明する。
【００８８】
図２は、図１の仮想配線長見積り装置１０によって実行される仮想配線長見積り方法の各処理を説明するためのフローチャートである。
【００８９】
仮想配線長見積り装置１０では、手操作入力装置１１による指令によって、外部記憶装置１５に記憶されている仮想配線長見積り用制御プログラム１５ｃが起動され、入力データとなる回路情報データ１５ａと仮想配線用ライブラリ１５ｂとが指定される。仮想配線長見積り用制御プログラム１５ｃが起動されると、回路情報データ１５ａ、仮想配線用ライブラリ１５ｂおよび仮想配線長見積り用制御プログラム１５ｃが主記憶装置１４に読み込まれ、演算装置１２によって仮想配線長の計算処理が自動的に行われる。
【００９０】
図２に示すように、まず、ステップＳ１１では、回路情報データ１５ａと仮想配線用ライブラリ１５ｂとに基づいて、演算装置１２によって仮想配線長が見積られる配線（仮想配線長の見積り対象配線）が含まれるブロックを選択する。このとき、仮想配線長が見積られる配線が含まれる全てのブロックから、その配線が接続されるセルが含まれるブロックだけを選択する。
【００９１】
次に、ステップＳ１２では、ステップＳ１１で選択したブロックに含まれるゲートレベルのセル面積（またはブロック面積）を選択基準としてワイヤーロードモデルが仮想配線用ライブラリ１５ｂの中から選択される。
【００９２】
ステップＳ１３では、ワイヤーロードモデルが定義されたテーブルと、そのブロックに含まれる配線のファンアウトとから仮想配線長が計算される。
【００９３】
ステップＳ１４で、全てのブロックに対して仮想配線長を計算したかどうかを判定する。ステップＳ１４で全てのブロックに対して仮想配線長を計算していない場合（いいえ）には、全てのブロックに対して仮想配線長を計算するまでステップＳ１１〜Ｓ１３の各処理を繰り返し、また、ステップＳ１４で全てのブロックに対して仮想配線長を計算した場合（はい）には、次のステップＳ１５の処理に移行する。
【００９４】
ステップＳ１５では、選択された全てのブロックに対する仮想配線長の合計が求められ、仮想配線長の見積り処理が終了して、表示装置１３の表示画面上に見積り結果が表示される。
【００９５】
図２に示す仮想配線長見積り計算処理の各ステップＳ１１〜Ｓ１５について、図３に示すような配線の仮想配線長を見積る場合について説明する。図３に示す配線例は、従来技術で説明した図１６の配線例と同様に、見積り対象の配線が含まれるブロックＡ〜Ｅが示されている。最上位階層はブロックＡであり、配線のファンアウトは「３」である。
【００９６】
本実施形態の仮想配線長の見積り方法において、ステップＳ１１のブロックの選択方法は、図１５に示す従来の仮想配線長見積り方法におけるステップＳ２１のブロックの選択方法と異なっている。
【００９７】
以下に、本実施形態の仮想配線長見積り方法におけるステップＳ１１のブロック選択処理について、図３〜図６を用いて説明する。
【００９８】
図４〜図６は、図３に示す配線例において、仮想配線長が見積られる配線を含むブロックＡ〜Ｅ内の階層構造を表すグラフである。
【００９９】
この階層構造は、非巡回グラフ、即ち木構造（ツリー構造）によって表現することができる。本実施形態において、仮想配線長の見積りに用いられる木構造は、図７に示すようなＣ＋＋言語プログラムによって自動的に記述され、図１に示す本実施形態の仮想配線長見積り装置１０によって仮想配線長の見積り計算が実行される。
【０１００】
図７に示す計算プログラム例において、Ｃｌａｓｓ  Ｎｏｄｅは、グラフ中の一つのノードの定義を表す。図４〜図６のノード間に記述される矢印は、現在の階層のブロックを表すノードから一つ上の階層のブロックを表すノードへの階層関係を表す。各ノードには、仮想配線長が見積られる配線を含むか否かを判定するためのフラグ（図４〜図６においてＷａ〜Ｗｅと表記された変数）が割り当てられる。フラグの値が「１」となる場合、ノードに相当するブロックが当該配線を含むことを意味する。また、フラグの値が「０」の場合、ノードに相当するブロックが当該配線を含まないことを意味する。
【０１０１】
図７に示す計算プログラム例において、ｎｅｘｔＮｏｄｅは、Ｎｏｄｅのメソッド定義を表し、現在のノードから一つ上の階層のブロックを表すノードの探索に用いられる。また、ｓｅｔＮｏｄｅは、各ＮｏｄｅにおいてＣ＋＋プログラムによって実行したい関数を宣言するメソッド定義を表し、指定されたノードのフラグの値を「１」または「０」にセットする。ｇｅｔＷは、指定されたノードからフラグの値を読み出すメソッド定義を表している。
【０１０２】
以下、説明の簡便性のため、プログラム表記ではなく、図４〜図６のグラフを用いて説明を行う。
【０１０３】
図４は、ブロックに含まれるゲートレベルのセルの入出力端子が、仮想配線長が見積られる配線に接続されているブロックに対応するノードに対して、フラグを「０」の初期状態に設定する様子を表している。図４では、Ｗａ、Ｗｂ、Ｗｃ、ＷｄおよびＷｅが各々ブロックＡ〜Ｅの各フラグをそれぞれ表している。
【０１０４】
図４に示す配線例では、ブロックＢ、ブロックＣおよびブロックＥに当該配線に接続されるゲートレベルのセルが存在するので、図４の黒く塗り潰したノードで示すように、ブロックＢ、ブロックＣおよびブロックＥの各フラグＷｂ、ＷｃおよびＷｄがそれぞれ「１」にそれぞれ設定される。残りのブロックＡおよびブロックＤには、当該配線に接続されるゲートレベルのセルが存在しないため、対応するフラグＷａおよびＷｂがそれぞれ「０」に設定される（または「０」のままである）。
【０１０５】
図５に示すように、ブロック選択の結果、ノードＢからノードＥに向かう配線が存在するが、ゲートレベルのセルがブロックＤに存在しないため、ブロックＤのフラグＷｄ＝０となっている。さらに、配線が通過するブロックを仮想配線長の見積りに利用できるようにするため、図６に示すように、図５で選択されたブロックに対応するノードが全て含まれる最小木が求められる。この最小木を求めるためには、各ノードについて、矢印に沿って最上位階層のノード（図６ではノードＡが最上位階層）までの経路上にフラグ「１」のノードがあるか否かが探索される。フラグ「１」のノードが経路上にあれば、探索開始元のノードのフラグが「１」に設定される。経路上にフラグ「１」のノードがない場合には、そのまま何もしない。
【０１０６】
次に、本実施形態の仮想配線長見積り方法におけるステップＳ１２のワイヤーロードモデル選択処理、およびステップＳ１３のワイヤーロードモデルを用いた仮想配線長の計算処理について説明する。なお、本実施形態では、ワイヤーロードモデルの選択基準については上記表１を、ワイヤーロードモデルについては上記表２を利用するものとする。表１に示すワイヤーロードモデルの選択基準や表２に示すワイヤーロードモデルは、過去のレイアウトにおける実配線長の分布から作成される。通常、面積が小さいブロックほど配線長が短い傾向があり、ワイヤーロードモデル中の仮想配線長の値も同じ傾向となる。
【０１０７】
図２のステップＳ１２のワイヤーロードモデルの選択処理は、従来の仮想配線長の見積り方法における図１５のステップＳ２２の処理に相当する。
【０１０８】
各ブロックのセル面積（またはブロック面積）は、上記表３の中央列に示す通りであるとする。各ブロックのセル面積から、ワイヤーロードモデルの選択基準である表１を用いることによって、表３の右列に示す各ブロックの適用ワイヤーロードが求められる。
【０１０９】
図２のステップＳ１３のワイヤーロードモデルとファンアウトとを用いた仮想配線長の計算処理は、従来の仮想配線長見積り方法における図１５のステップＳ２３の処理に相当する。
【０１１０】
ここでは、ブロックに含まれる配線のファンアウトが計算される。ブロックに含まれる配線のファンアウトは、ブロック内において仮想配線長が見積られる配線から接続される外部ブロックへの出力端子の数と、ブロックに含まれる仮想配線長が見積られる配線に接続されるゲートレベルのセルの入力端子の数とを合計した数値によって求められる。例えば、図３に示す配線例では、各ブロックＡ〜Ｅのファンアウトはそれぞれ、「１」、「２」、「２」、「１」および「１」と求められる。これらのファンアウトを各ブロックで選択されたワイヤーロードモデルに適用することによって、各ブロックの仮想配線長を表す変数Ｌａ〜Ｌｅは以下のように求められる。ブロックＡでは、仮配線長が見積られる配線のファンアウト「１」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌＩｎｆとから、仮想配線長は「１０」と求められる。また、ブロックＢでは、仮配線長が見積られる配線のファンアウト「２」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌ２０とから、仮想配線長は「３．０」と求められる。また、ブロックＣでは、仮配線長が見積られる配線のファンアウト「２」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌ１０とから、仮想配線長は「１．５」と求められる。また、ブロックＤおよびブロックＥでは、仮配線長が見積られる配線のファンアウト「１」と、上記表２に示すワイヤーロードモデルＭｏｄｅｌ１０とから、仮想配線長は「１．０」と求められる。
【０１１１】
次に、本実施形態の仮想配線長の見積り方法におけるステップＳ１５の仮想配線長の値の合計処理について説明する。図２のステップＳ１５の仮想配線長の値の合計処理は、従来の仮想配線長の見積り方法における図１５のステップＳ２５の処理に相当する。
【０１１２】
ここでは、ステップＳ１１で選択されたブロックのみ仮想配線長として計上されるため、各ブロックに対応するフラグＷａ〜Ｗｅ（「１」の場合は選択、「０」の場合は非選択）と、上記ステップＳ１３で求められた仮想配線長Ｌａ〜Ｌｅとを乗算したものを加算した数値が、当該配線の仮想配線長の合計値となる。したがって、図６の配線例では、仮想配線長の合計値は、
Ｌ＝（Ｗａ×Ｌａ＋Ｗｂ×Ｌｂ＋Ｗｃ×Ｌｃ＋Ｗｄ×Ｌｄ＋Ｗｅ×Ｌｅ）
＝（０×１０＋１×３＋１×１．５＋１×１．０＋１×１．０）＝６．５
であるので、仮想配線長は「６．５」と見積られる。
【０１１３】
図８および図９は、図３の配線例に相当するレイアウト例を示す図である。
【０１１４】
図８の２１は図６に示すゲートレベルのセルを配置した様子を表し、図８の２２は最短の仮想配線長が見積られる配線を表している。また、図９の２３は最長の仮想配線長が見積られる配線を表している。１グリッドが配線長「１」に相当すると仮定すると、配線長が最も短くなるように配置された図８の２２で示す配線に使用されるグリッド数（＝配線長）は「３」であり、配線長が最も長くなるように配置された図９の２３で示す配線に使用されるグリッド数は「６」である。したがって、実配線長は「３〜６」の間にあることが分かる。
【０１１５】
図８および図９では、配線領域を確保するため、レイアウトで用いられるグリッド上に、ゲート面積「２」のＡＮＤゲートおよびゲート面積「１」のバッファがゲートレベルのセルとして配置されているものとする。また、ブロックＢ内部のセルは、３×３のグリッド内にセル占有率１００％で配置されているものとする。その理由は、レイアウト工程では、配線の結びつきが強いブロック内部のセルは近くに配置される傾向があり、配線さえ可能であればセルを１００％の占有率で配置することが可能であるからである。
【０１１６】
上記条件の下で、配線長が最短となるセルの配置と配線長が最長となるセルの配置とを求める。配線は、上記セルの配置決定後、配線長が最も短くなるように、グリッドを用いて最小直線スタイナ木を構成することで実施されるものとする。
【０１１７】
このスタイナ木とは、端子の集合が与えられており、端子以外に新たに分岐点となるノード（スタイナ点）を付け加えてもよいという条件の下で、端子および分岐点の全てを繋げた木のことである。スタイナ木のうち、枝の長さの総和が最小であるものを最小スタイナ木と言う。また、垂直枝および水平枝のみからなるスタイナ木を直線スタイナ木と言う。半導体集積回路の設計では、水平方向および垂直方向に配線が行われ、かつ、配線長の最短化が望まれるので、配線設計は最小直線スタイナ木を発見するという問題と等価になる（山口大学工学部研究報告第５１巻第１号  ５．ＬＳＩレイアウトにおけるポリゴン配線の通常配線変換  ２．（３）参照）。
【０１１８】
上記配線例では、３×３のグリッドの例を示したが、問題を拡張して、任意のｎ個×ｎ個のグリッドに配置される四つのセルの配置について、最小直線スタイナ木を最小化させる配置と最大化させる配置とを求めることもできる。
【０１１９】
最小直線スタイナ木を最小化させるためには、セル同士をグリッド一つ分の距離で配置すればよい。したがって、図１０の２４に示す配線のように、最短の実配線長は、グリッドの大きさに関わらず配線長「３」となる。
【０１２０】
また、最小直線スタイナ木を最大化させるためには、セル同士の距離が最も遠くなるよう配置すればよい。セル同士の距離が遠くなるように四つのセルを配置するためには、グリッド矩形の４隅（頂点）に各セルを配置すればよい。したがって、図１１の２５に示す配線のように、最長の配線長は３（ｎ−１）によって求められる。これ以外の配置では、配線長を最長化することができない。
【０１２１】
図１２に、グリッド矩形の４隅以外にセルを配置した場合の例を示している。図１２の２６の位置にセルを配置した場合には配線長が最長になるが、２７のようにグリッド矩形の４隅以外の位置にセルを配置すると、２６の位置に配置した場合の配線長よりも短い点線で示すようなスタイナ木が作成され、配線長を最長化することができない。
【０１２２】
図１０および図１１の例からも、図８と図９で示した実配線長の最小値および最大値は、それぞれ「３」および「６」であることが分かる。
【０１２３】
従来の仮想配線長の見積り方法によれば、図３の配線例に対して、ブロックＡの階層も計算に含まれるため、仮想配線長はＴＯＰモードおよびＥＮＣＬＯＳＥＤモードで「１６．５」および「３０」となり、実配線長に比べて大きくなる。
【０１２４】
これに対して、本実施形態の仮想配線長見積り方法によれば、仮想配線長は「６．５」と見積られ、実配線長「３〜６」に近い値が得られる。
【０１２５】
このように、従来の仮想配線長の見積り方法では、上位階層であるブロックＡに配線が存在するため、面積が大きなブロックで用いられるワイヤーロードモデルが参照されて、仮想配線長が大きく見積られるが、本実施形態の仮想配線長見積り方法では、ブロックＢ以下の階層のブロックが用いられるため、配線長を過度に大きく見積もることなく、精度良く仮想配線長を見積ることができる。
【０１２６】
以上により、本実施形態によれば、図２に示すように、ステップＳ１１で仮想配線長が見積られる配線が含まれる全てのブロックから、配線が接続されるセルが含まれるブロックを選択し、ステップＳ１２でワイヤーロードモデルを選択する。さらに、ステップＳ１３で、選択されたワイヤーロードモデルとファンアウトからブロック単位で仮想配線長を求め、ステップＳ１５で、それらの仮想配線長を合計して仮想配線長を求める。これによって、レイアウト前に行われる回路ブロック間の仮想配線長の見積り精度を向上させることができる。
【０１２７】
なお、本実施形態では、可読記録媒体として、ハードディスク装置、磁気テープ、磁気記録媒体（ＦＤ）、光ディスク（ＣＤ）などの外部記憶装置１５を挙げて説明したが、これに限らず、この制御プログラムを通信先よりインターネットなどの無線や有線を介して入手して装置内部のＲＡＭである主記憶装置１４に格納して用いることもできる。
【０１２８】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【産業上の利用可能性】
【０１２９】
本発明は、半導体集積回路の設計においてレイアウト設計前のゲートレベルシミュレーションにおいて行われる仮想配線長見積り方法、これをコンピュータに実行させるための仮想配線用見積り用制御プログラム、これを記録したコンピュータ読み出し可能な可読記憶媒体およびこれらを用いた仮想配線長見積り装置の分野において、従来の仮想配線長見積り方法に比べて、レイアウトを実施することなく、また、ブロックの仮配置などを行うこともなく、実配線に近い仮想配線長を見積ることができる。これにより、論理合成とレイアウトとの間での繰り返し作業を抑えて、半導体集積回路の設計期間を大幅に短縮化することが可能になる。本発明は、Ｉ／Ｏバッファやバウンダリスキャンレジスタなどの特定のブロックに限られることなく、広く半導体集積回路の回路設計に利用することができるため、非常に有効である。
【図面の簡単な説明】
【０１３０】
【図１】本実施形態の仮想配線長見積り装置の要部構成を示すブロック図である。
【図２】図１の仮想配線長見積り装置を用いた仮想配線長見積り方法における各処理を説明するためのフローチャートである。
【図３】配線例を示す図である。
【図４】図３の配線例におけるブロックに対応するグラフである。
【図５】図４のグラフにおけるブロックのフラグ設定について説明するための図である。
【図６】図４のグラフにおける最小木の生成とブロックのフラグ追加について説明するための図である。
【図７】本実施形態の仮想配線長見積り用制御プログラムの一例を示す図である。
【図８】配線長が最短となるレイアウト例を示す図である。
【図９】配線長が最長となるレイアウト例を示す図である。
【図１０】配線長が最短となるｎ×ｎレイアウト例を示す図である。
【図１１】配線長が最長となるｎ×ｎレイアウト例を示す図である。
【図１２】配線長が最長とならないｎ×ｎレイアウト例を示す図である。
【図１３】従来の半導体集積回路の設計工程を説明するためのフロー図である。
【図１４】ブロック内の配線例を示す図である。
【図１５】従来の仮想配線長見積り方法における各処理を説明するためのフローチャートである。
【図１６】配線例を示す図である。
【図１７】従来の仮想配線長見積り方法（ＴＯＰモード）における不具合例を説明するための図である。
【図１８】従来の仮想配線長見積り方法（ＥＮＣＬＯＳＥＤモード、ＳＥＧＭＥＮＴモード）における不具合例を説明するための図である。
【図１９】従来の仮想配線長見積り方法（ＥＮＣＬＯＳＥＤモード、ＳＥＧＭＥＮＴモード）における不具合例を説明するための図である。
【符号の説明】
【０１３１】
１０  仮想配線長見積り装置
１１  手操作入力装置
１２  演算装置（制御手段）
１２ａ  ブロック選択手段
１２ｂ  ブロック単位仮想配線長計算手段
１２ｃ  仮想配線長合計手段
１３  表示装置
１４  主記憶装置
１５  外部記憶装置
１５ａ  回路情報データ
１５ｂ  仮想配線用ライブラリ
１５ｃ  仮想配線長見積り用制御プログラム
２１  ゲートレベルのセル
２２  仮想配線長見積り対象の配線（配線長最短）
２３  仮想配線長見積り対象の配線（配線長最長）
２４  ｎ×ｎレイアウト例（配線長最短）
２５  ｎ×ｎレイアウト例（配線長最長）
２６  配線長最長のセル配置
２７  配線長が最長でないセル配置
【図１】
2005202610.tif 000006
【図２】
2005202610.tif 000007
【図３】
2005202610.tif 000008
【図４】
2005202610.tif 000009
【図５】
2005202610.tif 000010
【図６】
2005202610.tif 000011
【図７】
2005202610.tif 000012
【図８】
2005202610.tif 000013
【図９】
2005202610.tif 000014
【図１０】
2005202610.tif 000015
【図１１】
2005202610.tif 000016
【図１２】
2005202610.tif 000017
【図１３】
2005202610.tif 000018
【図１４】
2005202610.tif 000019
【図１５】
2005202610.tif 000020
【図１６】
2005202610.tif 000021
【図１７】
2005202610.tif 000022
【図１８】
2005202610.tif 000023
【図１９】
2005202610.tif 000024