(57)【特許請求の範囲】
【請求項１】
設計回路から生成される第１のネットリストに基づき前記設計回路における信号の遅延時間の予測計算をコンピュータに実行させる設計方法であって、
前記コンピュータによって、
記憶部から前記第１のネットリストを読み出し、
前記第１のネットリストに基づいて、前記設計回路の複数の機能ブロックをレイアウト配置し、
前記第１のネットリストに前記機能ブロック間を接続するブロック間配線の経路が定義される第１の経路情報を追加して第２のネットリストを生成し、
前記機能ブロックの端子に前記機能ブロック内部から接続されるブロック内配線の経路が定義される第２の経路情報を第２のネットリストに追加して第３のネットリストを生成し、
前記第３のネットリストに含まれる前記第１の経路情報及び前記第２の経路情報から前記機能ブロック間配線と前記機能ブロック内配線とを連続させたインスタンス間配線を生成し、前記インスタンス間配線の配線抵抗及び配線容量を抽出し、前記インスタンス間配線の配線抵抗及び配線容量をモデル化した第４のネットリストを生成し、
前記第４のネットリストの情報から遅延時間を予測する設計方法。
【請求項２】
前記第４のネットリストは、前記ブロック間配線の配線抵抗及び配線容量と、前記ブロック内配線の配線抵抗及び配線容量と、から算出される合成抵抗及び合成容量を前記インスタンス間配線の配線抵抗及び配線容量として有する請求項１に記載の設計方法。
【請求項３】
前記第２のネットリストは、前記第１の経路情報を第１の回路として有していることを特徴とする請求項１又は２に記載の設計方法。
【請求項４】
前記第２のネットリストへの前記第２の経路情報の追加は、前記機能ブロック毎のマクロ内ネットリストを用意し、前記第２のネットリストに記述される前記機能ブロックの端子に対応する前記マクロ内ネットリストの情報を追加することを特徴とする請求項１乃至３のいずれか１項に記載の設計方法。
【請求項５】
前記マクロ内ネットリストは、前記第２のネットリストに記述されている前記機能ブロックに対応しており、前記機能ブロックの端子に対応した端子に接続される前記ブロック内配線のネットリストが記述されていることを特徴とする請求項４に記載の設計方法。
【請求項６】
前記マクロ内ネットリストは、前記機能ブロックの端子から最初に接続される前記機能ブロックの内部素子までの配線を経路化した第２の回路を有していることを特徴とする請求項４又は５に記載の設計方法。
【請求項７】
前記第３のネットリストは、前記第１の経路情報に対応した第１の回路と前記機能ブロックの端子との間に前記第２の経路情報に対応した第２の回路が挿入された第３の回路を有していることを特徴とする請求項１又は２に記載の設計方法。
【請求項８】
設計回路における信号の遅延時間の予測計算をコンピュータに実行させるためのプログラムであって、
第１のネットリストに基づいて、前記設計回路の機能ブロックをレイアウト配置し、
前記機能ブロック間を接続するブロック間配線の経路が定義される第１の経路情報を前記第１のネットリストに追加して第２のネットリストを生成し、
前記機能ブロックの端子に前記機能ブロック内部から接続されるブロック内配線が定義される第２の経路情報を前記第２のネットリストに追加して第３のネットリストを生成し、
前記第３のネットリストに含まれる前記第１の経路情報及び前記第２の経路情報から前記機能ブロック間配線と前記機能ブロック内配線とを連続させたインスタンス間配線を生成し、
前記インスタンス間配線の配線抵抗及び配線容量を抽出し、
前記インスタンス間配線の配線抵抗及び配線容量をモデル化した第４のネットリストを生成し、
前記第４のネットリストの情報から前記遅延時間の予測計算をコンピュータに実行させるプログラム。
【請求項９】
設計回路における信号の遅延時間の計算に用いるネットリストの生成をコンピュータに実行させるためのネットリスト加工プログラムであって、
前記設計回路から生成される第１のネットリストに基づいてされたレイアウト配置から生成された前記設計回路の機能ブロック及び前記機能ブロック間を接続するブロック間配線の経路が定義される第１経路情報が記述された第２のネットリストが入力され、前記機能ブロックの端子名を記憶する第１の記憶部と、
前記機能ブロックの端子に前記機能ブロックの内部から接続されるブロック内配線の経路が定義される第２の経路情報が記述されたマクロ内ネットリストの端子名を記憶する第２の記憶部と、
前記第１の記憶部によって記憶された端子名と前記第２の記憶部によって記憶された端子名を比較する比較部と、
前記比較部によって端子名が一致した前記第２のネットリストの端子に対して、前記マクロ内ネットリストの一致した端子名に対応する端子に接続される第２の経路情報を追加して第３のネットリストを生成する追加部と、
前記第３のネットリストに含まれる前記第１の経路情報及び前記第２の経路情報から前記機能ブロック間配線と前記機能ブロック内配線とを連続させたインスタンス間配線を生成し、前記インスタンス間配線の配線抵抗及び配線容量を抽出し、前記インスタンス間配線の配線抵抗及び配線容量をモデル化した第４のネットリストを生成する遅延モデル生成部と、
を有するネットリスト加工プログラム。
【請求項１０】
前記マクロ内ネットリストは、回路設計段階で用意されるファイルであることを特徴とする請求項９に記載のネットリスト加工プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマクロ内端子配線を考慮したネットリストによって信号の遅延時間を予測する設計方法及びプログラムに関し、特にマクロ内端子配線の容量成分及び抵抗成分を考慮したネットリストによって信号の遅延時間を予測する設計方法及びプログラムに関する。
【背景技術】
【０００２】
近年、半導体集積回路（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の規模が大きくなってきており、ＬＳＩに組み込まれ、所定の機能を実現するマクロの機能も複雑化してきている。また、集積回路の構造は微細化されてきており、内部配線の線幅も微細化が進んでいる。また、マクロそのものの規模が増大し、サイズが大きくなることで、マクロ内の初段及び最終段からマクロの外部端子までの配線長が長くなる傾向にある。このことから、内部配線の容量及び抵抗成分が信号の遅延に及ぼす影響が大きくなってきている。
【０００３】
従来の設計方法について特許文献１に開示されている。特許文献１に開示される設計方法のフローチャートを図１３に示す。図１３に示すフローチャートについて詳細な説明をする。
【０００４】
まず、予め設計したそれぞれのマクロを結線する回路設計工程（ステップ１３０１）を行う。次に、回路設計工程にて設計が完了した回路から、回路の接続情報を有するネットリストａを生成する（ステップ１３０２）。続いて、生成されたネットリストａに基づいて自動レイアウトツール等を用いて、自動レイアウト工程にてレイアウトを行う（ステップ１３０３）。続いて、完成したレイアウトからマクロに接続される配線の配線抵抗、配線容量、マクロの入力端子容量の情報を含むネットリストＡを生成する（ステップ１３０４）。生成されたネットリストＡを用いて遅延シミュレーションを行う（ステップ１３０５）。遅延シミュレーションの結果、その遅延量が仕様の範囲内であれば設計を終了する。遅延量が仕様の範囲外であれば、自動レイアウト工程（ステップ１３０３）又は回路設計工程（ステップ１３０１）に戻り、再度設計を行う。
【０００５】
ここで、ネットリストＡにおいて用いられるマクロ及びマクロに接続される配線の配線抵抗、配線容量、マクロの入力容量の回路図を図１４に示す。マクロ１４０１に接続される抵抗成分及び容量成分について図１４を参照して説明する。
【０００６】
図１４において、マクロ１４０１の入力端子ＩＮ１には、ＮＥＴ１を介してＩＮＳＴ１が接続されている。ＩＮＳＴ１は、例えば入力端子ＩＮ１に接続される他のマクロ、入力バッファ、ＬＳＩのパッドなどである。また、ＮＥＴ１はマクロ１４０１とＩＮＳＴ１との間の配線の配線抵抗と配線容量をモデル化した回路である。さらに、入力端子ＩＮ１のマクロ内部側には、入力端子容量をモデル化したものが接続されている。入力端子容量は、例えば、入力バッファのゲート容量と入力端子ＩＮ１からマクロ内で最初に接続される素子までの配線容量の和である。マクロの入力端子、例えば、入力端子ＩＮ２も同様に抵抗成分と容量成分がモデル化されている。
【０００７】
出力端子ＯＵＴ１はマクロ１４０１内部に何も接続されていない。出力端子ＯＵＴ１には、ＮＥＴ３を介してＩＮＳＴ３が接続されている。ＩＮＳＴ３は、例えば、出力端子ＯＵＴ１に接続される他のマクロ、出力バッファ、ＬＳＩのパッドなどである。また、ＮＥＴ３はマクロ１４０１とＩＮＳＴ３との間の配線の配線抵抗と配線容量をモデル化した回路である。
【０００８】
マクロ１４０１とこれに接続される配線とを上記回路によってモデル化することで、マクロ周辺の配線で発生する信号遅延を含めた全体の信号遅延を遅延シミュレーションで検証する。
【０００９】
しかしながら、特許文献１の設計方法によれば、マクロ内の配線遅延成分は入力端子容量のみを考慮していたために、実際に作成されるＬＳＩの遅延時間と遅延シミュレーションの計算値との間の誤差が大きく、実際のＬＳＩが動作しない問題がある。この場合、回路設計を再度行わなければならず、設計期間が増大する問題がある。また、この不具合を防ぐためには、マクロの入力端子及び出力端子から最初に接続される素子までの配線をできるだけ短くする制約をレイアウト時に行う必要があり、設計時間が増大する問題があった。
【００１０】
この特許文献１に開示された設計方法で発生する問題を解決する方法の一つとして、特許文献２に開示された設計方法がある。特許文献２では、マクロ内の配線の遅延成分として、マクロ内のインスタンスの入力端とマクロの端子との間の配線抵抗及び配線容量と、マクロ内のインスタンスの出力端とマクロの端子との間の配線抵抗及び配線容量と、を考慮して実際の遅延シミュレーションを行う。これにより、特許文献２では、実際に作成されるＬＳＩの遅延時間と遅延シミュレーションとの誤差を解消する。
【特許文献１】特開平１１−２５９５５５号
【特許文献２】特開２００６−３０１８３７号
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献２に開示される設計方法においても、以下のような問題が発生する。第１の問題は、マクロ内の端子配線部分の配線抵抗及び配線容量だけモデル化した配線モデルを生成し、該当配線部分をこの配線モデルに置き換えて情報化するために、実際のＬＳＩ上の配線データとシミュレーションモデルとの間で誤差が生じる。具体的には、ＬＳＩの実際の配線データでは、マクロ内配線は、マクロ間の配線部分と同一配線層で延長するように接続されているにも関わらず、遅延シミュレーションの入力ネットリスト上では、２つに分断された配線モデルとして扱われる。そのため、実際の配線データとシミュレーションモデルとの間に、誤差が発生してしまう問題が発生する。
【００１２】
また、第２の問題は、マクロ内の端子配線を予め配線抵抗と配線容量のモデルで情報化しておく必要があるため、対象プロセスの配線成分に与える影響度が変化した場合、あるいは、配線モデルの抽出精度が向上した場合には、対象マクロの情報を作成した時点の配線モデルを最新の配線モデルに置き換える必要がある。この置き換えを行わない場合、遅延シミュレーションと実際のＬＳＩとの誤差が大きくなる問題がある。つまり、配線モデルの更新をしなければ、遅延シミュレーション精度を維持できなくなるといった問題である。また、この問題を回避する目的で、再度情報を作る場合、工数の増加を引き起こすだけでなく、対象マクロの再利用性を損なう問題がある。
【課題を解決するための手段】
【００１３】
本発明にかかる設計方法の一態様は、設計回路から生成される第１のネットリストから自動レイアウトを行う設計方法であって、前記第１のネットリストに基づいて、前記設計回路の複数の機能ブロックをレイアウト配置し、前記第１のネットリストに前記機能ブロック間を接続するブロック間配線の経路が定義される第１の間経路情報を追加して第２のネットリストを生成し、前記機能ブロックの端子に前記機能ブロック内部から接続されるブロック内配線の経路が定義される第２の経路情報を第２のネットリストに追加して第３のネットリストを生成し、前記第３のネットリストに含まれる前記第１の経路情報及び前記第２の経路情報から前記機能ブロック間配線と前記機能ブロック内配線とを連続させたインスタンス間配線を生成し、前記インスタンス間配線の配線抵抗及び配線容量をモデル化した第４のネットリストを生成し、前記第４のネットリストの情報から遅延時間を予測するものである。
【００１４】
また、本発明にかかるプログラムの一態様は、設計回路における信号の遅延時間の予測計算をコンピュータに実行させるためのプログラムであって、第１のネットリストに基づいて、前記設計回路の機能ブロックをレイアウト配置し、前記機能ブロック間を接続するブロック間配線の経路が定義される第１の経路情報を前記第１のネットリストに追加して第２のネットリストを生成し、前記機能ブロックの端子に前記機能ブロック内部から接続されるブロック内配線が定義される第２の経路情報を前記第２のネットリストに追加して第３のネットリストを生成し、前記第３のネットリストに含まれる前記第１の経路情報及び前記第２の経路情報から前記機能ブロック間配線と前記機能ブロック内配線とを連続させたインスタンス間配線を生成し、前記インスタンス間配線の配線抵抗及び配線容量をモデル化した第４のネットリストを生成し、前記第４のネットリストの情報から前記遅延時間の予測計算をコンピュータに実行させる。
【００１５】
また、本発明かかるネットリスト加工プログラムの一態様は、設計回路における信号の遅延時間の計算に用いるネットリストの生成をコンピュータに実行させるためのネットリスト加工プログラムであって、設計回路から生成される第１のネットリストに基づいてされたレイアウト配置から生成された前記設計回路の機能ブロック及び前記機能ブロック間を接続するブロック間配線の経路が定義される第１経路情報が記述された第２のネットリストが入力され、前記機能ブロックの端子名を記憶する第１の記憶部と、前記機能ブロックの端子に前記機能ブロックの内部から接続されるブロック内配線の経路が定義される第２の経路情報が記述されたマクロ内ネットリストの端子名を記憶する第２の記憶部と、前記第１の記憶部によって記憶された端子名と前記第２の記憶部によって記憶された端子名を比較する比較部と、前記比較部によって端子名が一致した前記第２のネットリストの端子に対して、前記マクロ内ネットリストの一致した端子名に対応する端子に接続される第２の経路情報を追加する追加部と、を有する。
【００１６】
本発明によれば、設計回路の機能ブロック間の配線抵抗及び配線容量に、機能ブロックの端子に機能ブロック内部から接続される配線の配線情報を加えて第３のネットリストを生成する。そして、第３のネットリストの配線情報から配線抵抗及び配線容量をモデル化した第４のネットリストを生成する。このように生成された第４のネットリストに基づき配線のモデル化を行うことで、機能ブロック間の配線と機能ブロック内の配線とを一体としてモデル化できる。これにより、信号の遅延時間の予測精度の向上が可能になり、設計段階で実際のＬＳＩの動作の予測精度が向上することで設計段階でのＬＳＩの完成度の向上が可能である。このことから、実際のＬＳＩの再設計を削減し、設計時間の削減が可能である。
【発明の効果】
【００１７】
本発明によれば、マクロ内の配線データとマクロ間の配線データとを一体として配線抵抗及び配線容量をモデル化して遅延計算するために、実際のＬＳＩの遅延時間と遅延シミュレーションの遅延時間との誤差を小さくし、設計における後戻り工程を削減することが可能である。
【発明を実施するための最良の形態】
【００１８】
実施の形態１
以下、本発明の実施の形態について図面を参照して説明する。実施の形態１にかかる設計方法のフローチャートを図１に示す。実施の形態１にかかる設計方法を図１を参照して説明する。
【００１９】
まず、複数の機能ブロック（例えば、マクロ、入出力バッファ、入出力パッドなど）を有するＬＳＩ全体の設計を回路設計工程（ステップ１０１）で行う。続いて、回路設計工程で設計された回路の第１のネットリスト（例えば、ネットリストａ）を作成する（ステップ１０２）。そして、作成されたネットリストａに基づいて、ＬＳＩの自動配置配線を行う自動レイアウト工程にてＬＳＩ全体のレイアウト図形を作成する（ステップ１０３）。
【００２０】
続いて、自動レイアウト工程にて作成されたレイアウト図形から機能ブロック間を接続するブロック間配線の経路が定義される第１の経路情報を含む第２のネットリスト（例えば、ネットリストＡ０）を作成する（ステップ１０４）。その後、予め準備されたマクロ内ネットリスト［１］〜［ｎ］の情報をネットリストＡ０に付加する（ステップ１０５）。この情報の付加は、ネットリスト加工プログラムによるネットリスト加工工程にて行う（ステップ１０６）。
【００２１】
ここで、マクロ内ネットリストファイルは、機能ブロックの端子に機能ブロック内部から接続されるブロック内配線の経路が定義される第２の経路情報を有している。ネットリスト加工プログラムは、ネットリストＡ０が持っている機能ブロックを含む第１の経路情報に対し、対象機能ブロックのマクロ内ネットリストの第２の経路情報を付加することで第３のネットリストであるネットリストＡ１を生成する（ステップ１０７）。
【００２２】
続いて、ネットリストＡ１を用いて、自動レイアウト装置が有している機能の一つである簡易遅延シミュレータにて信号遅延時間を計算する簡易シミュレーションを行う（ステップ１０８）。この簡易遅延シミュレーションでは、例えば配線の簡易的な遅延モデル（精度は低い）を適用して、遅延シミュレーションを行う。この簡易遅延シミュレーションにおいてＬＳＩの仕様を満たしていない場合（ＮＧの枝）は、再度自動レイアウト工程（ステップ１０３）又は回路設計工程（ステップ１０１）に戻る。一方、簡易遅延シミュレーションにおいてＬＳＩの仕様を満たしている場合（ＯＫの枝）は、ステップ１０９の遅延モデル生成工程に進む。なお、ステップ１０８の簡易シミュレーションは、省略することも可能である。
【００２３】
遅延モデル生成工程では、ステップ１０７において作成されたネットリストＡ１から機能ブロック間を接続しているブロック間配線及びブロック内配線を連続させたインスタンス間配線を生成し、このインスタンス間配線の配線抵抗及び配線容量を抽出する。そして、抽出された配線抵抗及び配線容量と機能ブロックの入力端子容量の情報を含む遅延モデルを生成し、その遅延モデルを含む第４のネットリスト（例えば、ネットリストＡ２）を生成する（ステップ１１０）。続いて、ネットリストＡ２を用いて遅延シミュレータにて信号遅延時間を計算する遅延シミュレーションを行う（ステップ１１１）。なお、ステップ１１１の遅延シミュレーションにて計算された遅延時間が仕様の範囲内であれば設計を終了し（ＯＫの枝）、仕様の範囲外であった場合は、再度自動レイアウト工程（ステップ１０３）又は回路設計工程（ステップ１０１）に戻り、遅延時間が仕様の範囲内に収まるまでこのフローを繰り返す。
【００２４】
本実施の形態にかかる設計方法では、以上のようなフローに従い設計を行う。以下では、各工程における動作を詳細に説明する。なお、以下の説明では、機能ブロックを示すレイアウトデータをマクロと称す。
【００２５】
まず、ステップ１０３の自動レイアウト工程で生成されるレイアウトに基づき生成されるネットリストＡ０について説明する。ネットリストＡ０に記述されるマクロの一例を図２に示す。図２に示すように、ネットリストＡ０では、マクロ２０１、インスタンスＩＮＳＴ１〜ＩＮＳＴ４、第１の回路（例えば、ブロック間配線Ｒ−ＮＥＴ１〜Ｒ−ＮＥＴ４）を有する。ブロック間配線Ｒ−ＮＥＴ１は、マクロ２０１のマクロ入力端子ＩＮ１と他のマクロのインスタンスＩＮＳＴ１とを接続する。ブロック間配線Ｒ−ＮＥＴ２は、マクロ２０１のマクロ入力端子ＩＮ２と他のマクロのインスタンスＩＮＳＴ２とを接続する。ブロック間配線Ｒ−ＮＥＴ３は、マクロ２０１のマクロ出力端子ＯＵＴ１と他のマクロのインスタンスＩＮＳＴ３とを接続する。ブロック間配線Ｒ−ＮＥＴ４は、マクロ２０１のマクロ出力端子ＯＵＴ２と他のマクロのインスタンスＩＮＳＴ４とを接続する。ネットリストＡ０では、ブロック間配線Ｒ−ＮＥＴ１〜Ｒ−ＮＥＴ４がネットリストａに加えられる。
【００２６】
なお、本実施の形態における設計方法では、ネットリストＡ０において遅延モデルは生成しないが、参考として図２に示すレイアウト図形に対応した遅延モデルの概略図を図３に示す。図３に示すように、図２に示すレイアウト図形では、ブロック間配線Ｒ−ＮＥＴ１〜Ｒ−ＮＥＴ４に対応した遅延モデルとして、ブロック間配線の配線抵抗及び配線容量をモデル化した遅延モデルＧ−ＮＥＴ１〜Ｇ−ＮＥＴ４を有する。また、マクロ２０１では、入力端子属性を有するマクロ入力端子ＩＮ１、ＩＮ２に入力端子容量が付加される。入力端子容量は、例えば、マクロ入力端子ＩＮ１からマクロ入力端子ＩＮ１に接続される初段のマクロ内素子までの配線容量と、初段のマクロ内素子のゲート容量との和である。
【００２７】
続いて、マクロ内ネットリストについて説明する。本実施の形態において用いられる機能ブロック４０１の内部回路の概略図の一例を図４に示す。図４に示すように、機能ブロック４０１は、回路素子としてインスタンスＩＮＳＴａ〜ＩＮＳＴｄを有する。インスタンスＩＮＳＴａ、ＩＮＳＴｂは、例えば入力バッファである。また、インスタンスＩＮＳＴｃ、ＩＮＳＴｄは、例えば出力バッファである。そして、インスタンスＩＮＳＴａとインスタンスＩＮＳＴｃはセル内配線Ｃ−ＮＥＴａで接続される。また、インスタンスＩＮＳＴｂとインスタンスＩＮＳＴｄはセル内配線Ｃ−ＮＥＴｂで接続される。
【００２８】
機能ブロック４０１は、これらインスタンスとセル内配線が予めライブラリとして登録されたものでもよく、また、ステップ１０３の自動レイアウト工程で生成されるものでもよい。しかし、機能ブロック４０１に対して自動レイアウトの簡略化をするために、機能ブロック４０１には、ブロックの外周を囲む領域にブロックの境界を設定する。そして、この境界に沿って機能ブロック４０１の端子が設定される。なお、図４では、ブロックの境界に沿って配置されるブロック端子と、インスタンスの入力端子又は出力端子とを区別するために、インスタンスの入力端子にＩ−ＩＮ１、Ｉ−ＩＮ２の符号を付し、インスタンスの出力端子にＩ−ＯＵＴ１、Ｉ−ＯＵＴ２の符号を付した。
【００２９】
この図４の機能ブロックのレイアウトに対応して設けられるブロック内配線の概略図を図５に示す。図５に示すように、機能ブロック４０１は、ブロック内配線Ａ−ＮＥＴａ〜Ａ−ＮＥＴｄを有する。ブロック内配線Ａ−ＮＥＴａは、マクロ入力端子ＩＮ１とインスタンスの入力端子Ｉ−ＩＮ１とを接続する。ブロック内配線Ａ−ＮＥＴｂは、マクロ入力端子ＩＮ２とインスタンスの入力端子Ｉ−ＩＮ２とを接続する。ブロック内配線Ａ−ＮＥＴｃは、マクロ出力端子ＯＵＴ１とインスタンスの出力端子Ｉ−ＯＵＴ１とを接続する。ブロック内配線Ａ−ＮＥＴｄは、マクロ出力端子ＯＵＴ２とインスタンスの出力端子Ｉ−ＯＵＴ２とを接続する。
【００３０】
実際のレイアウト図形では、機能ブロックの図形は、図４に示す機能ブロック４０１の内部回路と、図５に示す機能ブロック４０１のブロック内配線とを有する。そこで、実際のレイアウト図形における機能ブロック４０１のレイアウト図形を図６に示す。
【００３１】
そして、本実施の形態では、マクロ内ネットリストとして、インスタンスＩＮＳＴａ〜ＩＮＳＴｄ、第２の回路（ブロック内配線Ａ−ＮＥＴａ、Ａ−ＮＥＴｄ）、マクロ入力端子ＩＮ１、ＩＮ２、マクロ出力端子ＯＵＴ１、ＯＵＴ２を有する。本実施の形態では、第２の回路のうちブロック内配線Ａ−ＮＥＴｂ、Ａ−ＮＥＴｃは、配線抵抗及び配線容量が無視できる程度に短い配線とし、マクロ内ネットリストからブロック内配線Ａ−ＮＥＴｂ、Ａ−ＮＥＴｃに関する情報を省略する。このマクロ内ネットリストに含まれる情報から得られるマクロ７０１の概略図を図７に示す。また、本実施の形態における設計方法では、ブロック内配線のみの遅延モデルは生成しないが、参考として、マクロ７０１に含まれるブロック内配線の遅延モデルを図８に示す。図８に示すように、マクロ７０１では、マクロ内ネットリストに含まれるブロック内配線の配線抵抗及び配線容量をモデル化し遅延モデルＩ−ＮＥＴａ〜Ｉ−ＮＥＴｂを有する。
【００３２】
このマクロ内ネットリストは、予め機能ブロックの形状が確定している場合はライブラリとして登録することで特に演算等により生成する必要はない。一方、機能ブロックの形状がステップ１０３における自動レイアウト工程により生成される場合、演算等によりマクロ内ネットリストを生成する必要がある。そこで、マクロ内ネットリストの生成手順を以下で説明する。
【００３３】
マクロ内ネットリストの生成手順を示すフローチャートを図９に示す。なお、図９に示す手順は、コンピュータ等の演算器においてプログラムを実行することで実現されるものとする。
【００３４】
図９に示すように、ステップ１０３の自動レイアウト工程において生成されたＬＳＩのレイアウト図形の情報ファイルを読み出す（ステップ９０１）。そして、読み出した図形の情報ファイルからネット（配線）の情報を抽出し、各ネットに情報を付加する（ステップ９０２）。ステップ９０２における情報の付加においては、予め設定されているマクロの端子情報を読み出す（ステップ９０３）。このマクロの端子情報には、ネットが接続される端子毎の論理属性が記述される。論理属性とは、例えば、端子が入力端子と出力端子のいずれに該当するかを示す情報や、その端子を介して入出力される信号の周波数情報等が含まれる。
【００３５】
続いて、ネット情報が付加された端子の端子配線図形を抽出する（ステップ９０４）。このステップ９０４の処理では、機能ブロックのマクロ入力端子とマクロ出力端子の一覧情報（例えば、抜き出し端子情報一覧）を読み出し（ステップ９０５）、この抜き出し端子情報一覧に記述される端子間の等電位追跡により探索する。そして、抜き出し端子情報一覧に含まれる端子の位置等を特定する図形情報を抽出する。ステップ９０４において抽出された情報に基づき、マクロ内図形情報が作成される（ステップ９０６）。このマクロ内図形情報は、例えばマクロ内のインスタンス及び配線の図形と、それらの接続情報を含む。このマクロ内図形情報を視覚化した概略図の一例が図６に示す機能ブロックの概略図である。
【００３６】
続いて、マクロ内ネットリストを作成する場合、マクロ内ネットリストに含まれるブロック内配線、マクロ入力端子及びマクロ出力端子のネット名を付加する（ステップ９０９）。図６の例では、ブロック内配線Ａ−ＮＥＴａ、Ａ−ＮＥＴｄ、マクロ入力端子ＩＮ１、ＩＮ２、マクロ出力端子ＯＵＴ１、ＯＵＴ２にネット名が付加される。続いて、自動レイアウト用ネットリストの作成処理を行い（ステップ９１０）、マクロ内ネットリストが作成される（ステップ９１１）。
【００３７】
また、マクロ内ネットリストとは別にマクロ図形ライブラリを生成することもできる。マクロ図形ライブラリは、例えば２種類が考えられ、一のマクロ図形ライブラリはブロック内配線を含む端子配線経路を有する詳細なマクロ図形ライブラリ（ステップ９０８で生成されるライブラリ）である。他のマクロ図形ライブラリは、マクロ内の配線図形を省略し、マクロ入力端子及びマクロ出力端子の情報をそれぞれマクロ内のインスタンスの入力端子及び出力端子の位置に移動させたマクロ図形ライブラリ（ステップ９１５で生成されるライブラリ）である。
【００３８】
一のマクロ図形ライブラリを生成する場合、ステップ９０６において生成されたマクロ内図形情報に基づき自動レイアウト用図形ライブラリの作成を行う（ステップ９０７）。そして、ステップ９０７の処理により一のマクロ図形ライブラリを生成する（ステップ９０８）。一のマクロ図形ライブラリは、例えば、図６に示す機能ブロックの情報を含む。
【００３９】
他のマクロ図形ライブラリを生成する場合、まず、ステップ９０６において生成されたマクロ内図形情報からインスタンス及び配線に関する図形情報を削除する（ステップ９１２）。続いて、マクロ入力端子ＩＮ１、ＩＮ２をそれぞれ入力端子Ｉ−ＩＮ１、Ｉ−ＩＮ２の位置に移動させ、マクロ出力端子ＯＵＴ１、ＯＵＴ２をそれぞれ出力端子Ｉ−ＯＵＴ１、Ｉ−ＯＵＴ２の位置に移動させた端子情報を作成する（ステップ９１３）。そして、ステップ９１３間での処理で生成された情報に基づき自動レイアウト用図形ライブラリの作成を行う（ステップ９１４）。このステップ９１４の処理により他のマクロ図形ライブラリを生成する（ステップ９１５）。この他のマクロ図形ライブラリは、例えば、図４に示すマクロ４０１に相当する情報を含む。
【００４０】
本実施の形態では、ステップ９１１において作成されたマクロ内ネットリストとリストＡ０を用いて新たにネットリストＡ１を作成する。ネットリストＡ１の作成処理は。図１のステップ１０６のネットリスト加工工程にて行われる。以下、このネットリスト加工工程について詳細に説明する。
【００４１】
ネットリスト加工工程ではネットリスト加工プログラムによりネットリストＡ０とマクロ内ネットリストを足し合わせた新しいネットリストＡ１を生成する。ネットリスト加工プログラムがネットリストＡ１を生成するフローチャートを図１０に示す。なお、図１０に示す例では、ネットリストＡ０がｎ個のマクロを有している。また、ネットリストＡ０内のマクロ数に応じてマクロ内ネットリストもｎ個が用意されているものとする。さらに、ｎ個のマクロはそれぞれｎ個の端子を有しているものとする。
【００４２】
ネットリスト加工プログラムは、まず、ネットリストＡ０からネットリストＡ０内のＭ番目のマクロＭを読み込む（ステップ５０１）。例えば、Ｍは初期値が１である場合、１番目のマクロであるマクロ１を読み込む。読み込んだマクロＭをメモリに格納する（ステップ１００２）。
【００４３】
次に、マクロＭのＮ番目の端子名を読み込む（ステップ１００３）。例えば、Ｎの初期値が１である場合、マクロ１の１番目の端子の端子名を読み込む。読み込んだ端子名をメモリＭＡＣ［Ｍ］［Ｎ］のＭＡＣ［１］［１］に格納する（ステップ１００４）。
【００４４】
また、マクロＭに対応したマクロ内ネットリストを読み込む（ステップ１００５）。例えば、マクロ１に対応したマクロ内ネットリスト［１］を読み込む。読み込んだマクロ内ネットリスト［１］をメモリに格納する（ステップ１００６）。続いて、マクロ内ネットリスト［１］内のＬ番目の端子名を読み込む（ステップ１００７）。例えば、Ｌの初期値が１である場合、１番目の端子名を読み込む。読み込んだ端子名をメモリＢＮ［Ｍ］［Ｌ］のＢＮ［１］［１］に格納する（ステップ１００８）。
【００４５】
ステップ１００４でＭＡＣ［Ｍ］［Ｎ］に記憶したマクロＭの端子名とステップ１００８でＢＮ［Ｍ］［Ｌ］に記憶したマクロ内ネットリスト［Ｍ］の端子名を比較する（ステップ１００９）。比較の結果、記憶した端子名が一致していた場合、ネットリストＡ０のマクロＭのＮ番目の端子とその端子に接続されるブロック間配線Ｒ−ＮＥＴとの間にマクロ内ネットリスト［Ｍ］のＬ番目の端子に接続されるブロック内配線Ａ−ＮＥＴを挿入する（ステップ１０１０）。
【００４６】
ステップ１００９で比較した結果、端子名が不一致の場合は、マクロ内ネットリスト［Ｍ］の端子番号Ｌを１つ増やし、これを端子番号Ｌが端子数ｎとなるまで繰り返す（ステップ１０１１）。例えば、マクロ内ネットリスト［１］の１番目の端子名ＢＮ［１］［１］と端子名ＭＡＣ［１］［１］が不一致であった場合、ステップ１００７に戻り２番目の端子名ＢＮ［１］［２］を読み込む。この処理は端子名が一致するか、又は、端子番号Ｌが端子数ｎと同じになるまで繰り返す。マクロ内ネットリスト［Ｍ］の１番目の端子からｎ番目の端子までを検索し、端子名が一致しなかった場合は、次のステップに進む。
【００４７】
ステップ１０１０、又は、ステップ１０１１が完了した場合、マクロＭの端子番号Ｎを１つ増加させる。これを端子番号ＮとマクロＭの端子数ｎとが同じになるまで繰り返す（ステップ１０１２）。例えば、マクロ１の１番目の端子のステップ１０１０、又は、ステップ１０１１の処理が完了した場合、マクロ１の２番目の端子名をステップ１００３に戻り読み込む。その後再びステップ１００７からステップ１０１１の処理を繰り返す。ステップ１００７からステップ１０１１までの処理が完了した場合、再びステップ１００３に戻りマクロＭの次の端子名を読み込む。この処理をマクロＭのすべての端子の読み込みが完了するまで繰り返す。マクロＭの端子番号Ｎが端子数ｎと同じになった場合、次のステップに進む。
【００４８】
ステップ１０１２が完了した場合、ネットリストＡ０の次のマクロ番号Ｍを１つ増加させる。これをマクロ番号Ｍとマクロ数ｎとが同じになるまで繰り返す（ステップ１０１３）。例えば、１番目のマクロであるマクロ１に対してステップ１００１からステップ１０１２の処理が完了した場合、ステップ１００１に戻り、２番目のマクロであるマクロ２を読み込む。続いて、ステップ１００２からステップ１０１２の処理を行う。これをすべてのマクロについて行い、マクロ番号Ｍとマクロ数ｎが同じになった場合、処理を終了する。
【００４９】
ステップ１００１からステップ１０１３によって、すべてのマクロのすべての端子にＡ−ＮＥＴの情報を付加することで、新しいネットリストＡ１が生成される。このネットリストＡ１に記述されるマクロ及びマクロに接続される配線のレイアウト図形の概略図を図１１に示す。図１１に示すように、ネットリストＡ１のレイアウト図形は、ネットリストＡ０に記述されるブロック間配線Ｒ−ＮＥＴと、マクロ内ネットリストに記述されるブロック内配線Ａ−ＮＥＴと、が連続して形成される第３の回路（例えばインスタンス間配線）を有する。本実施の形態におけるステップ１０９の遅延モデル生成工程においては、このネットリストＡ１内のインスタンス間配線を用いて遅延モデルを生成する。なお、インスタンス間配線とは、ブロック間配線Ｒ−ＮＥＴとブロック内配線を連続して形成される配線を指す。
【００５０】
ここで、ステップ１０９の遅延モデル生成工程において生成される遅延モデルの概略図を図１２に示す。図１２に示すように、本実施の形態では遅延モデルＧ−ＮＥＴ１ａ、Ｇ−ＮＥＴ２、Ｇ−ＮＥＴ３、Ｇ−ＮＥＴ４ａを有する。これらの遅延モデルは、マクロ２０１の各端子と、その端子に対応したインスタンスと、の間に設けられる。
【００５１】
具体的には、マクロ入力端子ＩＮ１とインスタンスＩＮＳＴ１との間には遅延モデルＧ−ＮＥＴ１ａが接続される。マクロ入力端子ＩＮ２とインスタンスＩＮＳＴ２との間には遅延モデルＧ−ＮＥＴ２が接続される。マクロ出力端子ＯＵＴ１とインスタンスＩＮＳＴ３との間には遅延モデルＧ−ＮＥＴ３が接続される。マクロ出力端子ＯＵＴ２とインスタンスＩＮＳＴ４との間には遅延モデルＧ−ＮＥＴ４ａが接続される。
【００５２】
このとき、本実施の形態では、マクロ入力端子ＩＮ２とマクロ出力端子ＯＵＴ１については、マクロ内ネットリストに記述されたブロック内配線がない。そのため、マクロ入力端子ＩＮ２とマクロ出力端子ＯＵＴ１については、図３に示す遅延モデルと同じものになる。一方、マクロ入力端子ＩＮ１とマクロ出力端子ＯＵＴ２については、マクロ内ネットリストに記述されたブロック内配線がある。そのため、遅延モデルＧ−ＮＥＴ１ａ、Ｇ−ＮＥＴ４ａは、ブロック内配線Ａ−ＮＥＴの配線抵抗とブロック間配線Ｒ−ＮＥＴの配線抵抗との合成抵抗と、ブロック内配線Ａ−ＮＥＴの配線容量とブロック間配線Ｒ−ＮＥＴの配線容量との合成容量と、を有する。つまり、本実施の形態では、ブロック間配線Ｒ−ＮＥＴとブロック内配線Ａ−ＮＥＴを一つの連続した配線としてインスタンス間配線を生成し、このインスタンス間配線についての遅延モデル（例えば、遅延モデルＧ−ＮＥＴ１ａ、Ｇ−ＮＥＴ４ａ）を生成する。そして、このようにして作成された遅延モデルを有するネットリストＡ２を用いて遅延シミュレーションを行う。
【００５３】
上記説明より、実施の形態にかかる設計方法によれば、設計回路の機能ブロック間を接続するブロック間配線Ｒ−ＮＥＴの配線抵抗及び配線容量に加え、機能ブロック内のブロック内配線Ａ−ＮＥＴの配線抵抗及び配線容量を、設計回路のブロック間配線Ｒ−ＮＥＴの配線抵抗及び配線容量の延長分として、一つにまとめて考慮する。これによって、遅延モデルが実際のレイアウト図形に沿って忠実に再現できる。そのため、実際のレイアウト図形に沿った忠実な遅延モデルによって、機能ブロックの端子から機能ブロックの内部素子までの配線で生じる信号の遅延時間を精度よく予測することが可能である。つまり、実際のレイアウト図形パターンと同様な処理を実現することで、信号の遅延時間の予測精度の向上が可能になる。また、高精度な遅延シミュレーションにより、設計段階で実際のＬＳＩの動作の予測精度が向上し、設計段階でのＬＳＩの完成度の向上が可能である。このことから、実際のＬＳＩの再設計を削減し、設計時間の削減が可能である。
【００５４】
また、本実施の形態にかかる設計手法によれば、機能ブロックの端子に機能ブロック内部から接続される配線の情報を配線抵抗及び配線容量のモデル情報にする前の配線経路情報の状態で利用する。これによって、機能ブロック内に機能ブロックの外部端子から機能ブロック内部に接続される長い配線を持つレイアウト図形の機能ブロック間配線をモデル化する際に実際のレイアウト図形と遅延モデルとの誤差を極小化することができる。これによっても遅延シミュレーションの精度向上が可能である。
【００５５】
また、本実施の形態の設計手法では、遅延モデルを機能ブロックのマクロモデルとして予め設定することなく、ブロック内配線Ａ−ＮＥＴをその後の工程で他の配線と接続した配線に対して遅延モデルを作成する。このように遅延モデルをその都度作成することで、遅延モデルの作成方法の変更や遅延モデルに含まれる素子モデルの精度向上による効果をその都度反映することができる。これにより、機能ブロックのブロック内配線Ａ−ＮＥＴのモデル化条件をＬＳＩ全体シミュレーション時の機能ブロック間配線と均一化させることができる。また、機能ブロック設計時とチップ設計時が異なる時点に行われる場合であっても、機能ブロック間と機能ブロック内の配線に対して配線モデル化精度を均一化させることが可能である。
【００５６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、図１０のマクロ内ネットリストの作成方法は、レイアウトツールあるいは回路設計ツールの仕様に応じて適宜変更することが可能である。また、配線長が１０ｕｍ以上で遅延の影響が顕著になることが予め判明している場合などは、マクロ内ネットリストの作成段階において、例えば、ブロック内配線の長さが１０ｕｍ以上の配線のみを対象としてマクロ内ネットリストを作成することも可能である。つまりマクロ内ネットリストに含める経路情報は、遅延計算の精度や、製品の仕様に応じて適宜決めることが可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明にかかる設計方法のフローチャートを示す図である。
【図２】本発明にかかるネットリストＡ０に記述されるマクロのレイアウト図形の概略図の一例である。
【図３】図２に示すレイアウト図形に対する遅延モデル一例を示す図である。
【図４】本発明にかかる機能ブロックのレイアウト図形の概略図の一例である。
【図５】本発明にかかる機能ブロックのブロック内配線の概略図の一例である。
【図６】本発明にかかる機能ブロックのレイアウト図形の概略図の一例である。
【図７】本発明にかかる機能ブロックをマクロモデル化した場合のマクロの概略図の一例である。
【図８】図７に示すレイアウト図形に対する遅延モデル一例を示す図である。
【図９】本発明にかかるマクロ内ネットリストの作成方法のフローチャートを示す図である。
【図１０】本発明にかかるネットリスト加工プログラムの動作手順のフローチャートを示す図である。
【図１１】本発明にかかるネットリストＡ１に記述されるマクロのレイアウト図形の概略図の一例である。
【図１２】本発明にかかるネットリストＡ２に記述されるマクロの遅延モデルの概略図の一例である。
【図１３】従来の設計方法のフローチャートを示す図である。
【図１４】従来の設計方法において作成される遅延モデルの概略図を示す図である。
【符号の説明】
【００５８】
２０１、７０１    マクロ
４０１    機能ブロック
Ｃ−ＮＥＴ    セル内配線
Ｇ−ＮＥＴ１〜Ｇ−ＮＥＴ４、    遅延モデル
Ｇ−ＮＥＴ１ａ、Ｇ−ＮＥＴ４ａ    遅延モデル
Ｉ−ＮＥＴａ、Ｉ〜ＮＥＴｄ    遅延モデル
Ｉ−ＯＵＴ１、Ｉ−ＯＵＴ２    出力端子
Ｉ−ＩＮ１、Ｉ−ＩＮ２    入力端子
ＯＵＴ１、ＯＵＴ２    マクロ出力端子
ＩＮ１、ＩＮ２    マクロ入力端子
ＩＮＳＴ１〜ＩＮＳＴ４    インスタンス
ＩＮＳＴａ〜ＩＮＳＴｄ    インスタンス
Ｒ−ＮＥＴａ〜Ｒ−ＮＥＴｄ    ブロック間配線
Ａ−ＮＥＴａ〜Ａ−ＮＥＴｄ    ブロック内配線
【図１】
0005059657.tif 000002
【図２】
0005059657.tif 000003
【図３】
0005059657.tif 000004
【図４】
0005059657.tif 000005
【図５】
0005059657.tif 000006
【図６】
0005059657.tif 000007
【図７】
0005059657.tif 000008
【図８】
0005059657.tif 000009
【図９】
0005059657.tif 000010
【図１０】
0005059657.tif 000011
【図１１】
0005059657.tif 000012
【図１２】
0005059657.tif 000013
【図１３】
0005059657.tif 000014
【図１４】
0005059657.tif 000015