(57)【要約】【課題】  配線長を高精度に見積もることで、論理回路中のネットの容量を高い精度で解析する。【解決手段】  レイアウトデータ（５１）を保持する第１記憶装置（４４）と、前記レイアウトデータ（５１）に基づいて、ネットの容量を予測するためのライブラリ（５２）を作成して第２記憶装置（４４）に格納する演算処理装置（４５）とでライブラリ作成装置を構成する。ここで、前記演算処理装置（４５）は、前記ネットの入力段（２）、（ＦＦ３）から前記ネットの出力段（３）、（ＦＦ４，ＦＦ５）へ信号が伝わる信号経路を構成する組み合わせ回路であるロジックコーン（４）、（５）に基づいて、前記ロジックコーン（４）、（５）の規模を算出する。そして、前記ネットの容量と前記ロジックコーン（４）、（５）の規模と前記ネットのファンアウト（Ｆ／Ｏ）とを関連付けたテーブル（５６）を生成して前記ライブラリ（５２）に格納しておく。【選択図】        図１
2007004563.tif 000002
【特許請求の範囲】
【請求項１】
レイアウトデータを保持する第１記憶装置と、
前記レイアウトデータを読み出し、読み出された前記レイアウトデータに基づいて、ネットの容量を予測するためのライブラリを作成して第２記憶装置に格納する演算処理装置と、
予測対象の半導体回路の設計データと前記ライブラリに格納されるテーブルとに基づいて、前記半導体回路のネットの容量を予測する配線容量予測装置と
を具備し、
前記演算処理装置は、
前記ネットの入力段から前記ネットの出力段へ信号が伝わる信号経路を構成する組み合わせ回路であるロジックコーンに基づいて、前記ロジックコーンの規模を算出し、
前記ネットの容量と前記ロジックコーンの規模と前記ネットのファンアウトとを関連付けたテーブルを生成して前記ライブラリに格納し、
前記配線容量予測装置は、
前記設計データに基づいて、
容量の予測対象である対象ネットのロジックコーンの規模を算出し、前記対象ネットのロジックコーンの規模と、前記テーブルとを参照して前記対象ネットの容量を求める
配線容量予測システム。
【請求項２】
請求項１に記載の配線容量予測システムにおいて、
前記演算処理部は、
前記入力段を構成する入力段素子の一つを、前記信号を出力する始点として特定し、
前記始点から出力される出力信号を受け、前記出力段に含まれる出力段素子へ前記出力信号が伝わる信号経路を構成する組み合わせ回路を順方向ロジックコーンとし、
前記順方向ロジックコーンを前記対象ネットのロジックコーンとする
配線容量予測システム。
【請求項３】
請求項２に記載の配線容量予測システムにおいて、
前記入力段素子と前記出力段素子とはフリップフロップ回路を含み
前記演算処理部は、
前記入力段素子に含まれる前記フリップフロップ回路の一つを前記始点に対応する入力段フリップフロップ回路として特定し、
前記入力段フリップフロップ回路の次段に備えられるフリップフロップ回路を前記出力段として特定する
配線容量予測システム。
【請求項４】
請求項１に記載の配線容量予測システムにおいて、
前記演算処理部は、
前記出力段を構成する出力段素子の一つを、前記信号を受ける終点として特定し、
前記終点に供給される供給信号を送信し前記入力段に含まれる入力段素子から、前記終点までの前記供給信号が伝わる信号経路を構成する組み合わせ回路を逆方向ロジックコーンとし、
前記逆方向ロジックコーンを前記対象ネットのロジックコーンとする
配線容量予測システム。
【請求項５】
請求項４に記載の配線容量予測システムにおいて、
前記入力段素子と前記出力段素子とはフリップフロップ回路を含み
前記演算処理部は、
前記出力段素子に含まれる前記フリップフロップ回路の一つを前記終点に対応する出力段フリップフロップ回路として特定し、
前記出力段フリップフロップ回路の前段に備えられるフリップフロップ回路を前記入力段として特定する
配線容量予測システム。
【請求項６】
請求項１から５の何れか１項に記載の配線容量予測システムにおいて、
前記演算処理部は、
前記ロジックコーン規模と前記ロジックコーン内のファンアウトの両方に対応して、前記ロジックコーンを含むネットの容量を格納するテーブルを構成する
配線容量予測システム。
【請求項７】
請求項１から６の何れか１項に記載の配線容量予測システムにおいて、
前記演算処理部は、
前記ロジックコーンを構成する論理ゲートを抽出し、前記論理ゲートの面積または前記論理ゲートの数に基づいて前記ロジックコーン規模を決定する
配線容量予測システム。
【請求項８】
レイアウトデータを保持する第１記憶装置と、
前記レイアウトデータを読み出し、読み出された前記レイアウトデータに基づいて、ネットの容量を予測するためのライブラリを作成して第２記憶装置に格納する演算処理装置と
を具備し、
前記演算処理装置は、
前記ネットの入力段から前記ネットの出力段へ信号が伝わる信号経路を構成する組み合わせ回路であるロジックコーンに基づいて、前記ロジックコーンの規模を算出し、
前記ネットの容量と前記ロジックコーンの規模と前記ネットのファンアウトとを関連付けたテーブルを生成して前記ライブラリに格納する
ライブラリ作成装置。
【請求項９】
請求項８に記載のライブラリ作成装置において、
前記演算処理部は、
前記入力段を構成する入力段素子の一つを、前記信号を出力する始点として特定し、
前記始点から出力される出力信号を受け、前記出力段に含まれる出力段素子へ前記出力信号が伝わる信号経路を構成する組み合わせ回路を順方向ロジックコーンとし、
前記順方向ロジックコーンを前記ネットのロジックコーンとする
ライブラリ作成装置。
【請求項１０】
請求項９に記載のライブラリ作成装置において、
前記入力段素子と前記出力段素子とはフリップフロップ回路を含み
前記演算処理部は、
前記入力段素子に含まれる前記フリップフロップ回路の一つを前記始点に対応する入力段フリップフロップ回路として特定し、
前記入力段フリップフロップ回路の次段に備えられるフリップフロップ回路を前記出力段として特定する
ライブラリ作成装置。
【請求項１１】
請求項８から１０の何れか１項に記載のライブラリ作成装置において、
前記演算処理部は、
前記ロジックコーン規模と前記ロジックコーン内のファンアウトの両方に対応して、前記ロジックコーンを含むネットの容量を格納するテーブルを構成する
ライブラリ作成装置。
【請求項１２】
請求項８から１１の何れか１項に記載のライブラリ作成装置において、
前記演算処理部は、
前記ロジックコーンを構成する論理ゲートを抽出し、前記論理ゲートの面積または前記論理ゲートの数に基づいて前記ロジックコーン規模を決定する
ライブラリ作成装置。
【請求項１３】
レイアウトデータを保持する第１記憶装置と、前記レイアウトデータに基づいて、ネットの容量を予測するためのライブラリを作成して第２記憶装置に格納する演算処理装置とを具備するコンピュータに実行させるためのプログラムであって、
（ａ）レイアウトデータを読み出すステップと、
（ｂ）読み出された前記レイアウトデータに基づいて、ネットリストを生成するステップと、
（ｃ）前記ネットリストに基づいて、ネットの入力段から前記ネットの出力段へ信号が伝わる信号経路を構成する組み合わせ回路であるロジックコーンを決定するステップと、
（ｄ）前記ロジックコーンの規模を算出し、前記ネットの容量と前記ロジックコーンの規模と前記ネットのファンアウトとを関連付けたテーブルを生成してライブラリを作成するステップ
を具備する方法をコンピュータに実行させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムにおいて、
前記（ｃ）ステップは、
前記入力段を構成する入力段素子の一つを、前記信号を出力する始点として特定するステップと、
前記始点から出力される出力信号を受け、前記出力段に含まれる出力段素子へ前記出力信号が伝わる信号経路を構成する組み合わせ回路を順方向ロジックコーンとするステップとを含み、
前記（ｄ）ステップは、
前記順方向ロジックコーンを前記ネットのロジックコーンとして前記テーブルを生成するステップ
を具備する方法をコンピュータに実行させるためのプログラム。
【請求項１５】
請求項１４に記載のプログラムにおいて、
前記入力段素子と前記出力段素子とはフリップフロップ回路を含み
前記（ｃ）ステップは、
前記入力段素子に含まれる前記フリップフロップ回路の一つを前記始点に対応する入力段フリップフロップ回路として特定するステップと、
前記入力段フリップフロップ回路の次段に備えられるフリップフロップ回路を前記出力段として特定するステップ
を具備する方法をコンピュータに実行させるためのプログラム。
【請求項１６】
請求項１３から１５の何れか１項に記載のプログラムにおいて、
前記（ｄ）ステップは、
前記ロジックコーン規模と前記ロジックコーン内のファンアウトの両方に対応して、前記ロジックコーンを含むネットの容量を格納するテーブルを構成するステップ
を具備する方法をコンピュータに実行させるためのプログラム。
【請求項１７】
請求項１３から１６の何れか１項に記載のプログラムにおいて、
前記（ｄ）ステップは、
前記ロジックコーンを構成する論理ゲートを抽出し、前記論理ゲートの面積または前記論理ゲートの数に基づいて前記ロジックコーン規模を決定するステップ
を具備する方法をコンピュータに実行させるためのプログラム。
【請求項１８】
コンピュータによってライブラリを作成するライブラリ作成方法であって、
（ａ）レイアウトデータを読み出すステップと、
（ｂ）読み出された前記レイアウトデータに基づいて、ネットリストを生成するステップと、
（ｃ）前記ネットリストに基づいて、ネットの入力段から前記ネットの出力段へ信号が伝わる信号経路を構成する組み合わせ回路であるロジックコーンを決定するステップと、
（ｄ）前記ロジックコーンの規模を算出し、前記ネットの容量と前記ロジックコーンの規模と前記ネットのファンアウトとを関連付けたテーブルを生成してライブラリを作成するステップ
を具備する
ライブラリ作成方法。
【請求項１９】
請求項１８に記載のライブラリ作成方法において、
前記（ｃ）ステップは、
前記入力段を構成する入力段素子の一つを、前記信号を出力する始点として特定するステップと、
前記始点から出力される出力信号を受け、前記出力段に含まれる出力段素子へ前記出力信号が伝わる信号経路を構成する組み合わせ回路を順方向ロジックコーンとするステップとを含み、
前記（ｄ）ステップは、
前記順方向ロジックコーンを前記ネットのロジックコーンとして前記テーブルを生成するステップ
を具備する
ライブラリ作成方法。
【請求項２０】
請求項１９に記載のライブラリ作成方法において、
前記入力段素子と前記出力段素子とはフリップフロップ回路を含み
前記（ｃ）ステップは、
前記入力段素子に含まれる前記フリップフロップ回路の一つを前記始点に対応する入力段フリップフロップ回路として特定するステップと、
前記入力段フリップフロップ回路の次段に備えられるフリップフロップ回路を前記出力段として特定するステップ
を具備する
ライブラリ作成方法。
【請求項２１】
請求項１８から２０の何れか１項に記載のライブラリ作成方法において、
前記（ｄ）ステップは、
前記ロジックコーン規模と前記ロジックコーン内のファンアウトの両方に対応して、前記ロジックコーンを含むネットの容量を格納するテーブルを構成するステップ
を具備する
ライブラリ作成方法。
【請求項２２】
請求項１８から２１の何れか１項に記載のライブラリ作成方法において、
前記（ｄ）ステップは、
前記ロジックコーンを構成する論理ゲートを抽出し、前記論理ゲートの面積または前記論理ゲートの数に基づいて前記ロジックコーン規模を決定するステップ
を具備する
ライブラリ作成方法。
【請求項２３】
半導体回路の設計データを読み出す読み出し部と、
予め作成されたライブラリに格納されるテーブルとに基づいて、前記半導体回路のネットの容量を予測する容量予測部と
を具備し、
前記テーブルは、
容量の予測対象である対象ネットのロジックコーンに基づいて、前記ロジックコーンを含むネットの容量を求めることができるように構成され、
前記容量予測部は、
前記設計データに基づいて、容量の予測対象である対象ネットのロジックコーンの規模を算出し、前記対象ネットのロジックコーンの規模と前記テーブルとを参照して前記対象ネットの容量を求める
配線容量予測装置。
【請求項２４】
請求項２３に記載の配線容量予測装置において、
前記容量予測部は、
前記入力段を構成するフリップフロップ回路の一つを、前記信号を出力する始点として特定し、
前記始点から出力される出力信号を受け、前記出力段に含まれるフリップフロップ回路へ前記出力信号が伝わる信号経路を構成する組み合わせ回路を順方向ロジックコーンとし、
前記順方向ロジックコーンを前記ネットのロジックコーンとする
配線容量予測装置。
【請求項２５】
請求項２４に記載の配線容量予測装置において、
前記容量予測部は、
前記ロジックコーンを構成する論理ゲートを抽出し、前記論理ゲートの面積または前記論理ゲートの数に基づいて前記ロジックコーン規模を決定する
配線容量予測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体回路の設計に関し、特にレイアウトが実行された回路の配線容量を予測するときに用いられるライブラリを作成する技術に関する。
【背景技術】
【０００２】
近年の半導体設計において、半導体の微細化、ＬＳＩの大規模化・高速化が進んでいる。従来（０.５μｍプロセス以前）では、回路の性能を決定していたのはゲート固有の素子遅延、いわゆるゲート遅延であった。しかしながら、０．３５μｍプロセス以降では、配線遅延が回路の性能に大きな影響を与えるようになってきている。そのため、論理設計とレイアウト設計とを別々に考える従来型の手法では、論理設計段階の遅延予測とレイアウト後に得られた実際の遅延との間でずれが発生する場合があった。
【０００３】
論理設計段階における回路の遅延を予測する方法として、論理合成用ライブラリに格納された仮配線負荷モデルを用いる遅延予測方法が知られている。仮配線負荷モデルは、回路の遅延を予測するときに、論理合成を実行する論理合成ツールによって読み出されていた。論理合成によって生成される回路の性能は、その仮配線負荷モデルの精度に影響される。仮配線負荷モデルを作成する際には、過去のレイアウト結果から抽出された統計的な配線負荷の分布を標準偏差などで近似し、これをファンアウト数ごとにライブラリ化していた。従来の論理合成技術では、論理合成ツールは、論理合成の初期段階で回路面積を求め、論理合成用ライブラリの中から面積的に条件の合う仮配線負荷モデル（テーブル）を検索し、ネット（レイアウトが実行された回路）のファンアウト数をもとに配線負荷を求めていた。
【０００４】
しかし、実際の半導体集積回路上では、同一の配置領域に同一のファンアウト数のネットが複数存在する場合がある。このとき、ネットのファンアウト数が同じであったとしても、各々のネットに含まれるマクロセルの配置により、ネットの配線長はそれぞれ異なった長さになる。実際の配線長と、論理設計段階における仮想配線長とで、その差が大きい一部のネットについては、仮想配線長見積りの見積り精度が低下してしまう。上記のような問題点を解消するために、見積り対象のネットの接続情報も考慮して仮想配線長見積りを実行する技術が知られている（例えば、特許文献１参照。）。
【０００５】
特許文献１（特開平９−１３４３８０号公報）に記載の技術は、見積り対象のネットのファンアウト数に関する情報を読み出すファンアウト数読出し手段と、見積り対象のネットに接続される対象マクロセルのピン数に関する情報を読み出す対象マクロセルのピン数読出し・判定手段と、対象マクロセルのうち、いずれかのマクロセルに接続されるネット数に関する情報を読み出す対象マクロセルのネット数読出し・判定手段とを有する仮想配線長見積り装置を構成している。
【０００６】
特許文献１に記載の仮想配線長見積り装置によれば、第１、第２の対象マクロセルが隣接配置困難であるか否かを判定し、第１、第２の対象マクロセルが隣接配置困難である場合と、第１、第２の対象マクロセルが隣接配置容易である場合とで算出方式を変更して仮想配線長を算出している。したがって、隣接配置容易なマクロセル間のネットの仮想配線長と実配線長との差異、および、隣接配置困難なマクロセル間のネットの仮想配線長と実配線長との差異が低減するような仮想配線長の見積りを実行している。
【０００７】
【特許文献１】特開平９−１３４３８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の技術は、各ネットの前後の接続関係を考慮することなく仮想配線長見積りを実行している。各ネットの前後が多くのセルに接続されている場合は、そのネットの配線長は長くなり、配線容量が増加する傾向がある。また逆に、各ネットの前後に接続されるセルが少ない場合は、ネットの配線長は短くなり配線容量が減少する傾向がある。
【０００９】
配線抵抗および配線容量の双方に起因する配線遅延を考慮する場合、セル配置時にセルが広がって配置されるか、密集して配置されるかを考慮した配線長に基づいてネットの容量を解析する必要がある。換言すると、各ネットの前後の接続関係を考慮して論理回路中のネットの容量を解析する技術が求められている。
【課題を解決するための手段】
【００１０】
以下に、［発明を実施するための最良の形態］で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１１】
上記課題を解決するために、レイアウトデータ（５１）を保持する第１記憶装置（４４）と、前記レイアウトデータ（５１）を読み出し、読み出された前記レイアウトデータ（５１）に基づいて、ネットの容量を予測するためのライブラリ（５２）を作成して第２記憶装置（４４）に格納する演算処理装置（４５）と、予測対象の半導体回路の設計データと前記ライブラリ（５２）に格納されるテーブル（５６）とに基づいて、前記半導体回路のネットの容量を予測する配線容量予測装置（６１）とを具備する配線容量予測システムを構成する。ここで、前記演算処理装置（４５）は、前記ネットの入力段（２）、（ＦＦ３）から前記ネットの出力段（３）、（ＦＦ４，ＦＦ５）へ信号が伝わる信号経路を構成する組み合わせ回路であるロジックコーン（４）、（５）に基づいて、前記ロジックコーン（４）、（５）の規模を算出する。そして、前記ネットの容量と前記ロジックコーン（４）、（５）の規模と前記ネットのファンアウト（Ｆ／Ｏ）とを関連付けたテーブル（５６）を生成して前記ライブラリ（５２）に格納しておく。
前記配線容量予測装置（６１）は、前記設計データに基づいて、容量の予測対象である対象ネットのロジックコーンの規模を算出する。そして、前記対象ネットのロジックコーンの規模と、前記テーブル（５６）とを参照して前記対象ネットの容量を求める。
演算処理装置は、ロジックコーン（レイアウトデータに基づく各配線の前後の接続関係）を考慮して容量解析用のテーブルを生成している。また、実際に容量を解析する場合には、設計データに基づいて解析対象の回路のロジックコーンを導き出した後、そのときのファンアウトとともに容量解析を行なっている。したがって、論理ゲートがどのように配置されるか（密集しているのか広がっているのか）を、レイアウトを実行するまえに予測して配線容量を求めることができる。
【発明の効果】
【００１２】
本発明によると、配線長を高精度に見積もることで、論理回路中のネットの容量を高い精度で解析することが可能になる。
【発明を実施するための最良の形態】
【００１３】
以下に、図面を参照して、本発明の配線容量予測システムについて説明を行なう。図１（ａ）は、本実施の形態の容量予測方式の概要を示すブロック図である。また、図１（ｂ）は、参考のための示す従来の容量予測方式の概要である。図１（ａ）を参照すると、本発明の容量予測方式は、容量予測のためのライブラリを作成するライブラリ作成工程と、そのライブラリに格納されるテーブルを参照して、ネット（レイアウトが実行された回路）の容量（配線容量）を解析する容量予測工程とに分けられる。
【００１４】
本実施の形態において、ライブラリ作成工程では、既存のレイアウトデータに基づいて回路をロジックコーンという単位として特定するロジックコーン解析と、レイアウトデータに基づいてネットの容量を抽出する容量抽出とが行なわれる。ここで、ロジックコーンに関する詳細な説明は後述する。また、容量抽出では、レイアウトデータに基づいてネットリストを生成し、そのネットリストに基づいて論理合成の段階における配線容量を算出する。
【００１５】
その後、レイアウトデータに基づくネットのファンアウト数を算出し、ロジックコーン規模を考慮してネットの容量を解析するためのテーブル（以下、容量テーブルと呼ぶ。）を生成し、ライブラリを構成する。
【００１６】
本実施の形態において、ネットの容量を予測する場合、論理設計データに基づいて、予測対象の回路がどのようなロジックコーンを備えているかを解析する。その後、ライブラリから容量テーブルを読み出し、ロジックコーン規模を考慮してネットの容量を見積もっている。
【００１７】
ここで、比較のために、従来の容量の解析方法に関して説明する。図１（ｂ）を参照すると、従来はネットの容量を解析するために、回路規模とネットのファンアウト数を用いてネットの容量を解析するテーブル（ワイヤー・ロード・モデル）を生成していた。ネットの容量を解析するときには、予測対象の回路規模とネットのファンアウト数を用いてネットの容量を見積もっていた。
【００１８】
本実施の形態において、容量値を解析するために用いる容量テーブルは、ロジックコーンの規模からネットの容量を解析することができるように構成されている。したがって、実際にセルを配置したときの密集度合いに対応する配線長からネットの容量を導き出したことになり、従来行なわれていた方法よりも、より実配線に近い論理回路に基づいた容量の解析を行なうことができる。
【００１９】
以下に、図面を参照して、本実施の形態に述べるロジックコーンの構成について説明を行なう。図２（ａ）は、順方向ロジックコーンの構成を示し、図２（ｂ）は逆方向ロジックコーンの構成を示している。図２の容量予測対象回路１は、容量の解析対象である論理回路の一例を示す回路図である。図２に示されているように、容量予測対象回路１は、複数のフリップフロップ（ＦＦ１〜ＦＦ５）と、複数の論理ゲート（第１論理ゲートＧ１〜第４論理ゲートＧ４）とを備えて構成されている。また、容量予測対象回路１は、入力ピンＩＮ１を備えている。容量予測対象回路１の入力段２は、第１フリップフロップ回路ＦＦ１と、第２フリップフロップ回路ＦＦ２と、第３フリップフロップ回路ＦＦ３と入力ピンＩＮ１とを含んで構成されている。また、容量予測対象回路１の出力段３は、第４フリップフロップ回路ＦＦ４と第５フリップフロップ回路ＦＦ５とを含んで構成されている。
【００２０】
本実施の形態において、順方向ロジックコーン４を特定する場合、入力段２に含まれる所定のフリップフロップ、または、マクロの出力ピンを一つ決定する。例えば、第３フリップフロップ回路ＦＦ３に対応する順方向ロジックコーン４を特定しようとする場合を例にする。このときに、第３フリップフロップ回路ＦＦ３から出力される信号は、第３論理ゲートＧ３を介してノードＮ１に供給され、さらにノードＮ１を介して第２論理ゲートＧ２と第４論理ゲートＧ４とに供給されている。第２論理ゲートＧ２から出力される信号は第４フリップフロップ回路ＦＦ４に供給され、第４論理ゲートＧ４から出力される信号は、第５フリップフロップ回路ＦＦ５に供給されている。したがって、第３フリップフロップ回路ＦＦ３に対応して、第３論理ゲートＧ３、第２論理ゲートＧ２および第４論理ゲートＧ４で構成される組み合わせ回路が、順方向ロジックコーン４として特定される。
【００２１】
同様に、本実施の形態において、逆方向ロジックコーン５を特定する場合、出力段３に含まれる所定のフリップフロップ、または、マクロの入力ピンを一つ決定する。例えば、第４フリップフロップ回路ＦＦ４に対応する逆方向ロジックコーン５を特定しようとする場合を例にする。このとき、第４フリップフロップ回路ＦＦ４に信号を供給する信号経路を、その信号が伝わる方向と逆方向に回路を辿っていく。図２（ｂ）を参照すると、第４フリップフロップ回路ＦＦ４には、第２論理ゲートＧ２を介して第３論理ゲートＧ３と第１論理ゲートＧ１との各々から信号が供給されている。また、その第１論理ゲートＧ１には、第１フリップフロップ回路ＦＦ１と第２フリップフロップ回路ＦＦ２から出力される信号が供給されている。したがって、第４フリップフロップ回路ＦＦ４に対応して、第１論理ゲートＧ１、第３論理ゲートＧ３および第２論理ゲートＧ２で構成される組み合わせ回路が、逆方向ロジックコーン５として特定される。
【００２２】
複数のロジックコーンが存在する場合に、それらの規模（組み合わせ回路を構成する論理ゲートの数または面積）が同一であることは稀である。以下に説明する本実施の形態において、ロジックコーンの規模（以下、ロジックコーン規模と呼ぶ）が、組み合わせ回路を構成する論理ゲートの数である場合を例示している説明を行なう。図３は、異なるロジックコーン規模の回路の回路構成を例示する回路図である。図３（ａ）はロジックコーン規模が”１”である場合の回路構成を示している。同様に、図３（ｂ）は、ロジックコーン規模が”２”である場合の回路構成を例示し、図３（ｃ）は、ロジックコーン規模が”３”である場合の回路構成を例示している。ここで、図３（ａ）〜図３（ｃ）のＦ／Ｏ＝ｎ（ｎは任意の自然数）は、各回路のファンアウト数を示している。
【００２３】
上述したように、複数のロジックコーンが存在する場合に、ロジックコーン規模が同一であることは稀である。特に、出力段からのファンアウト数（または入力段へのファンイン）が同一のロジックコーンであっても、そのロジックコーン規模が異なる場合がある。図４は、出力段からのファンアウト数が同一でロジックコーン規模が異なる二つの順方向ロジックコーンの構成を例示する回路図である。図４（ａ）に示されるロジックコーン６は、論理ゲートＧ１１から論理ゲートＧ１４を有する順方向ロジックコーンの構成を示している。図４（ｂ）に示されるロジックコーン７は、論理ゲートＧ２１から論理ゲートＧ２６で構成される順方向ロジックコーンの構成を示している。
【００２４】
図４（ａ）および図４（ｂ）に示されているように、ロジックコーン６およびロジックコーン７の入力段を構成するフリップフロップ１１のファンアウト数は同一である。しかしながら、ロジックコーン６のロジックコーン規模とロジックコーン７のロジックコーン規模とを比較すると、ロジックコーン７のロジックコーン規模の方がロジックコーン６のロジックコーン規模よりも大きいことになる。
【００２５】
ロジックコーン規模が小さい場合には、そのロジックコーンを構成する論理ゲートを配置するときに、各論理ゲート同士が互いに干渉することが少ない。従って、それらの論理ゲートは密集して配置される。一方、ロジックコーン規模が比較的大きい場合には、そのロジックコーンを構成する複数の論理ゲートが互いに干渉してしまう。そのため、それらの論理ゲートは広がって配置される。論理ゲートが密集して配置される場合、そのときのネットの配線長は短くなる。また、論理ゲートが広がって配置される場合、そのときのネットの配線長は長くなる。
【００２６】
論理回路の仮想配線長とネットの容量とは比例する。本実施の形態の配線容量予測システムは、ロジックコーンの構成を考慮しているため、論理回路中の配線長を高精度で解析することができる。その結果、従来行なわれていたネットの容量を解析する方法よりも高精度で、ネットの容量を解析することが可能になる。
【００２７】
以下に、図面を参照して本実施の形態の配線容量予測システムの構成について説明を行なう。図５は、配線容量予測システムの構成を例示するブロック図である。図５を参照すると、配線容量予測システムはライブラリ作成ユニット４０と、配線容量予測ユニット６０と、半導体設計支援装置６４とを含んで構成され、それらはＬＡＮ６５を介して互いに接続されている。
【００２８】
ライブラリ作成ユニット４０は、配線容量の予測に用いられるライブラリを作成／保持するシステムである。図５に示されているように、本実施の形態のライブラリ作成ユニット４０は、ライブラリ作成装置４１と入力装置４２と出力装置４３とで構成されている。
【００２９】
ライブラリ作成装置４１は、入力された情報をコンピュータで加工して、その結果を出力する情報処理装置である。以下の実施の形態において、ライブラリ作成装置４１が少なくとも一つのＣＰＵを備えるコンピュータで構成されている場合を例示して説明を行なう。
【００３０】
入力装置４２は、キーボードやマウスに代表されるマンマシンインターフェースである。図５に示されているように、入力装置４２は、ライブラリ作成装置４１に接続されている。ユーザは、入力装置４２を介してライブラリ作成装置４１にデータや命令を入力する。ライブラリ作成装置４１は、そのデータや命令に基づいてネットの容量を解析するためのライブラリを生成する。
【００３１】
出力装置４３は、ＣＲＴや液晶表示装置に代表されるマンマシンインターフェースである。図５に示されているように、出力装置４３は、ライブラリ作成装置４１に接続されている。ライブラリ作成装置４１は、その装置内部で行なった情報処理の結果を出力装置４３に出力する。ユーザは、出力装置４３を介して出力される情報に対応して、ライブラリの生成に関連する作業を行なう。なお、ライブラリ作成装置４１の詳細については後述する。
【００３２】
配線容量予測ユニット６０は、ライブラリ作成ユニット４０が作成したライブラリに基づいて、ネットの容量を解析する装置である。図５に示されているように、配線容量予測ユニット６０は、配線容量予測装置６１と予測装置側入力装置６２と予測装置側出力装置６３とを含んで構成されている。配線容量予測装置６１は、半導体設計支援装置６４から供給される論理設計データに基づいてネットの容量を解析する情報処理装置である。なお配線容量予測装置６１の動作に関する詳細は、後述する。予測装置側入力装置６２は、入力装置４２と同様のマンマシンインターフェースである。また、予測装置側出力装置６３は出力装置４３と同様のマンマシンインターフェースである。
【００３３】
半導体設計支援装置６４は、半導体設計に関連する各種ツールや設計データを保持する情報処理装置である。本実施の形態において、半導体設計支援装置６４は、製造対象となる半導体回路の設計データを保持している。半導体設計支援装置６４は、配線容量予測ユニット６０からの要求に応答して、その設計データを論理合成し、論理設計データを生成する。配線容量予測装置６１は、その論理設計データに基づいて、ネットの容量の解析を実行する。
【００３４】
以下に、図面を参照して本実施の形態の配線容量予測システムにおけるライブラリ作成装置４１の構成について説明を行なう。図６は、本実施の形態のライブラリ作成ユニット４０の構成を例示するブロック図である。図６に示されているように、ライブラリ作成装置４１は、記憶装置４４と、ＣＰＵ４５と、メモリ４６と、ＮＩＣ４７とを含んで構成され、それらはバス４８を介して互いに接続されている。
【００３５】
記憶装置４４は、ライブラリ作成に掛かるデータやプログラムを格納するための装置である。本実施の形態において、記憶装置４４は、不揮発性の記憶装置であり、かつ、大容量の記憶装置であることが好ましい。したがって、以下の実施の形態において、記憶装置４４がＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）で構成されている場合を例示して説明を行なう。
【００３６】
ＣＰＵ４５は、ライブラリ作成装置４１に備えられている各種装置の制御やデータの処理などを実行する演算処理装置である。ＣＰＵ４５は、入力装置４２から入力された命令やバス４８を介して受け取ったデータなどを解釈して演算し、その演算結果を所定の装置（例えば出力装置４３）に出力する。
【００３７】
メモリ４６は、ソフトウェアを実行する場合に用いられる記憶媒体である。メモリ４６は、ＣＰＵ４５からの命令に対応して、データの読み出しや書き込みが実行される。本実施の形態におけるメモリ４６は、高速なデータの読み出し／書き込みが可能な装置であることが好ましい。したがって、以下の実施の形態において、メモリ４６が半導体メモリ（例えば、ＤＤＲ−ＳＤＲＡＭ）である場合を例示して説明を行なう。
【００３８】
ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）４７は、ライブラリ作成ユニット４０を備えるシステムを含んで構成されるネットワーク（図示されず）に接続可能な通信インターフェースである。ＮＩＣ４７は、ライブラリ作成装置４１を上述のネットワーク（例えば、ＬＡＮ）に接続するためのコネクタを備え、そのネットワークを介して供給されるデータや命令を受信している。また、ライブラリ作成装置４１は、所定のデータをＮＩＣ４７を介してネットワーク上の所定の装置に出力している。
【００３９】
また、図６に示されているように、記憶装置４４は、レイアウトデータ５１と、ライブラリ５２と、ロジックコーン解析プログラム５３と、容量抽出プログラム５４と、容量テーブル作成プログラム５５とを含んで構成されている。
【００４０】
レイアウトデータ５１は、論理設計によって得られる接続情報と、回路設計によって準備された論理セルライブラリに基づいて、論理ゲートの配置・配線が実行されたデータである。レイアウトデータ５１は、容量テーブル５６を生成するときに使用される。ライブラリ作成装置４１は、その容量テーブル５６を複数備えてライブラリ５２を構成している。ライブラリ５２は、様々な論理設計データに対応して、容量テーブル５６を提供することができるように構成されることが好ましい。そのため、本実施の形態のレイアウトデータ５１は、様々な論理設計データに対応することができるような複数のレイアウトデータで構成されることが好ましい。
【００４１】
ライブラリ５２は、容量テーブル５６を備えるファイルである。図６に示されているように、ライブラリ５２は、容量テーブル５６を備えて構成されている。容量テーブル５６は、論理設計データに基づくネットの容量の解析が行なわれる場合に、その解析装置（図示されず）によって読み出される。容量テーブル５６は、ネットの容量を解析する場合に用いられるデータであり、回路のロジックコーンとネットのファンアウト数に対応してネットの容量を求めることが可能なように構成されている。
【００４２】
ロジックコーン解析プログラム５３は、レイアウトデータ５１に基づいて、ネットのロジックコーンを解析するためのコンピュータプログラムである。また容量抽出プログラム５４は、レイアウトデータ５１に基づいて、ネットのファンアウト数およびネットの容量を算出するコンピュータプログラムである。容量テーブル作成プログラム５５は、ロジックコーン解析プログラム５３と容量抽出プログラム５４との実行結果に基づいて容量テーブル５６を生成し、その容量テーブル５６に対応してライブラリ５２を生成するコンピュータプログラムである。
【００４３】
以下に、図面を参照して本実施の形態の動作について説明を行なう。図７は、本実施の形態のライブラリ作成動作を例示するフローチャートである。図７に示されている動作は、ＣＰＵ４５が、容量テーブル作成プログラム５５を実行すると開始する。なお、以下の説明において、作成される容量テーブルは順方向ロジックコーンに対応するテーブルである場合を例示する。
【００４４】
ステップＳ１０１において、ライブラリ作成装置４１は、記憶装置４４のレイアウトデータ５１を読み出す。ステップＳ１０２において、ライブラリ作成装置４１は、読み出したレイアウトデータ５１に基づいて、配置されているフリップフロップ（または、マクロの入出力ピン）を認識し、各々の接続状態を把握する。
【００４５】
ステップＳ１０３において、容量テーブル作成プログラム５５は、ロジックコーン解析プログラム５３の実行をＣＰＵ４５に要求し、ＣＰＵ４５は、その要求に応答してロジックコーン解析プログラム５３を実行する。ロジックコーン解析プログラム５３は、所定のフリップフロップを一つ決定し、入力段として特定する。ロジックコーン解析プログラム５３は、そのフリップフロップから出力される信号が伝達される信号経路を辿り、その信号を受ける後段のフリップフロップまでの信号経路を確定する。ロジックコーン解析プログラム５３は、入力段からの信号を受ける全てのフリップフロップを確定して、その出力段を含むロジックコーンの構成を決定する。
【００４６】
ステップＳ１０４において、ロジックコーン解析プログラム５３は、決定したロジックコーンの構成に基づいて、ロジックコーン規模を算出する。このとき、ロジックコーン解析プログラム５３は、ステップＳ１０３で決定したロジックコーンを構成する論理ゲートの数（セル数）、または論理ゲートの面積（セル面積）に基づいて、ロジックコーン規模を算出する。このとき、セル数またはセル面積のどちらに基づいてロジックコーン規模を算出するかが予め設定されている場合には、ロジックコーン解析プログラム５３は、その設定に基づいてロジックコーン規模を算出する。
【００４７】
ステップＳ１０５において、容量テーブル作成プログラム５５は、容量抽出プログラム５４の実行をＣＰＵ４５に要求し、ＣＰＵ４５は、その要求に応答して容量抽出プログラム５４を実行する。容量抽出プログラム５４は、ステップＳ１０３で構成が決まったロジックコーンが含んでいるネットに対して、ステップＳ１０１で読み出されたレイアウトデータ５１に基づいてネット容量とファンアウト数を抽出する。図５（ａ）（ｂ）に示されるロジックコーンの場合で具体的に説明する。レイアウトデータ５１が、図５（ａ）（ｂ）に対して図９のようなデータを有しているとする。この場合、容量抽出プログラム５４の実行結果は図１０のようになる。
【００４８】
ステップＳ１０６において、容量テーブル作成プログラム５５は、ステップＳ１０５で容量抽出プログラム５４が抽出した結果に対して、ロジックコーン規模とファンアウト数に対応するネットの容量が択一的に導き出せるように容量テーブル５６を生成してライブラリ５２に格納する。容量テーブル作成プログラム５５は、入力段として機能する複数のフリップフロップに対応するロジックコーンに基づく容量テーブル５６を生成し、その複数の容量テーブル５６をライブラリ５６に格納する。このように作成したテーブルを順方向ロジックコーン規模およびネットのファンアウト数から、ネットの配線容量の予測値を与えるライブラリを構成して処理を終了する。ロジックコーン規模とファンアウト数が同一のネットが複数存在する場合、各ネットの配線容量の平均値を算出して、その平均値を用いた容量テーブル５６を生成する。容量テーブルは、具体的には図１１のようになる。
【００４９】
なお、本実施の形態において、ロジックコーン規模とファンアウト数が同一のネットが複数存在する場合において、平均値を求め、その平均値を用いて容量テーブル５６を生成する動作を例示したが、これは、本発明における容量テーブル５６の構成を限定するものではない。平均値を用いる方法以外にも、例えば、最大値を用いる方法や、配線容量が大きいネットの上位１０％を除外して、それ以外のネットの配線容量の最大値を用いる方法で容量テーブル５６を生成しても良い。
【００５０】
以下に、図面を参照して、本実施の形態における。ネットの容量を解析する（配線容量を予測する）動作について説明を行なう。図８は、配線容量を予測する動作を示すフローチャートである。図８に示されている動作は、配線容量予測装置６１に搭載される配線容量予測用プログラム（図示されず）を起動することで開始する。ステップＳ２０１において、配線容量予測装置６１は、半導体設計支援装置６４に備えられた記憶装置から、論理設計データを読み出す。配線容量予測装置６１は、読み出した論理設計データに基づいて、タイミング予測の対象となる回路の構成を確定する。
【００５１】
ステップＳ２０２において、配線容量予測装置６１は、読み出した論理設計データに基づいて、配置されているフリップフロップ（または、マクロの入出力ピン）を認識し、各々の接続状態を把握する。
【００５２】
ステップＳ２０３において、配線容量予測装置６１は、所定のフリップフロップを一つ決定し、入力段として特定する。配線容量予測装置６１は、そのフリップフロップから出力される信号が伝達される信号経路を辿り、その信号を受ける後段のフリップフロップまでの信号経路を確定する。配線容量予測装置６１は、入力段からの信号を受ける全てのフリップフロップを確定して、その出力段を含むロジックコーンの構成を決定する。
【００５３】
ステップＳ２０４において、配線容量予測装置６１は、決定したロジックコーンの構成に基づいて、ロジックコーン規模を算出する。このとき、配線容量予測装置６１は、予め設定される設定値に対応して、ステップＳ２０３で決定したロジックコーンの論理ゲートの数（セル数）、または論理ゲートの面積（セル面積）に基づいて、ロジックコーン規模を算出する。このとき、セル数またはセル面積のどちらに基づいてロジックコーン規模を算出するかが予め設定されている場合には、ロジックコーン解析プログラム５３は、その設定に基づいてロジックコーン規模を算出する。また、配線容量予測装置６１は、ロジックコーンの構成とロジックコーンの規模とに対応して、そのロジックコーンに含まれる各ネットのファンアウトを決定する。
【００５４】
ステップＳ２０５において、配線容量予測装置６１は、ライブラリ作成装置４１のライブラリ５２から、容量テーブル５６を読み出す。ステップＳ２０６において、配線容量予測装置６１は、ステップＳ２０５で読み出した容量テーブル５６を参照し、ステップＳ２０４で求めたロジックコーン規模およびネットのファンアウトに基づいてネットの容量を解析する。配線容量予測装置６１が実行した解析結果は、所定の出力装置（例えば予測装置側出力装置６３）や記憶媒体に出力される。
【００５５】
このように、論理回路設計時の配線長見積もりにロジックコーンを使用することで、レイアウト前の配線長を高精度で見積もることが可能になる。上述したように、論理回路の配線長とネットの容量は比例する。本発明の容量テーブルによる容量解析は、配線長を高精度に見積もることで、論理回路中のネットの容量を高い精度で解析することができる。
【図面の簡単な説明】
【００５６】
【図１】図１は、本発明の概要を示すブロック図である。
【図２】図２は、ロジックコーンの構成を例示する回路図である。
【図３】図３は、ロジックコーン規模とファンアウト数の概念を例示する回路図である。
【図４】図４は、ロジックコーン規模の概念を例示する回路図である。
【図５】図５は、配線容量予測システムの全体構成を例示するブロック図である。
【図６】図６は、ライブラリ作成装置の構成を示すブロック図である。
【図７】図７は、ライブラリ作成動作を示すフローチャートである。
【図８】図８は、配線容量を予測する動作を示すフローチャートである。
【図９】図９は、レイアウトデータの構成を例示するテーブルである。
【図１０】図１０は、容量抽出プログラムの実行結果を例示するテーブルである。
【図１１】図１１は、容量テーブルの構成を例示するテーブルである。
【符号の説明】
【００５７】
１…容量予測対象回路
２…入力段
３…出力段
４…順方向ロジックコーン
５…逆方向ロジックコーン
ＦＦ１〜ＦＦ５…フリップフロップ
ＩＮ１…入力ピン
Ｇ１〜Ｇ４…論理ゲート
６…ロジックコーン
７…ロジックコーン
Ｇ１１〜Ｇ１４…論理ゲート
Ｇ２１〜Ｇ２６…論理ゲート
１１〜１７…フリップフロップ
２１〜２６…フリップフロップ
３１〜３６…論理ゲート
４０…ライブラリ作成ユニット
４１…ライブラリ作成装置
４２…入力装置
４３…出力装置
４４…記憶装置
４５…ＣＰＵ
４６…メモリ
４７…ＮＩＣ
４８…バス
５１…レイアウトデータ
５２…ライブラリ
５３…ロジックコーン解析プログラム
５４…容量抽出プログラム
５５…容量テーブル作成プログラム
５６…容量テーブル
６０…配線容量予測ユニット
６１…配線容量予測装置
６２…予測装置側入力装置
６３…予測装置側出力装置
６４…半導体設計支援装置
６５…ＬＡＮ
【図１】
2007004563.tif 000003
【図２】
2007004563.tif 000004
【図３】
2007004563.tif 000005
【図４】
2007004563.tif 000006
【図５】
2007004563.tif 000007
【図６】
2007004563.tif 000008
【図７】
2007004563.tif 000009
【図８】
2007004563.tif 000010
【図９】
2007004563.tif 000011
【図１０】
2007004563.tif 000012
【図１１】
2007004563.tif 000013