(57)【特許請求の範囲】
【請求項１】
コンピュータを、
複数の単純セルの機能を集約した複合セルを保持するセルライブラリの中から、任意の複合セルを抽出する抽出手段、
前記抽出手段によって抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の前記単純セルに入力スルーと出力負荷とを与えることにより得られる遅延値を用いて、前記論理回路の遅延値を算出する算出手段、
前記算出手段によって算出された論理回路の遅延値が、前記複合セルに前記入力スルーと前記出力負荷とを与えることにより得られる前記複合セルの遅延値以上となるか否かを判定する判定手段、
前記判定手段によって判定された判定結果を出力する出力手段、
として機能させることを特徴とするセルライブラリ検証プログラム。
【請求項２】
前記算出手段は、
予め設定された範囲内の入力スルーと予め設定された範囲内の出力負荷との組み合わせごとに前記単純セルの遅延値を有する遅延テーブルを参照することにより、前記組み合わせごとに前記論理回路の遅延値を算出し、
前記判定手段は、
前記組み合わせごとに前記論理回路の遅延値が前記複合セルの遅延値以上となるか否かを判定することを特徴とする請求項１に記載のセルライブラリ検証プログラム。
【請求項３】
前記コンピュータを、
前記判定手段によって前記論理回路の遅延値が前記複合セルの遅延値未満と判定された場合、前記複合セルのトランジスタの寸法を変更する変更手段として機能させ、
前記判定手段は、
前記論理回路の遅延値が、前記変更手段によって前記トランジスタの寸法が変更された変更後の複合セルの遅延値以上となるか否かを判定することを特徴とする請求項１または２に記載のセルライブラリ検証プログラム。
【請求項４】
前記コンピュータを、
前記判定手段によって前記論理回路の遅延値が前記複合セルの遅延値未満と判定された場合、前記複合セルのトランジスタの寸法を変更する変更手段として機能させ、
前記判定手段は、
前記論理回路の遅延値が、前記変更手段によって前記トランジスタの寸法が変更された変更後の複合セルの遅延値以上となるか否かを判定し、
前記算出手段は、
前記判定手段によって判定された結果、前記複数の組み合わせのうち、前記論理回路の遅延値が前記複合セルの遅延値以上となる組み合わせが占める割合を算出し、
前記判定手段は、
前記算出手段によって算出された割合が予め設定された閾値以上であるか否かを判定することを特徴とする請求項２に記載のセルライブラリ検証プログラム。
【請求項５】
請求項１〜４のいずれか一つに記載のセルライブラリ検証プログラムを記録したコンピュータに読み取り可能な記録媒体。
【請求項６】
複数の単純セルの機能を集約した複合セルを保持するセルライブラリの中から、任意の複合セルを抽出する抽出手段と、
前記抽出手段によって抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の前記単純セルに入力スルーと出力負荷とを与えることにより得られる遅延値を用いて、前記論理回路の遅延値を算出する算出手段と、
前記算出手段によって算出された論理回路の遅延値が、前記複合セルに前記入力スルーと前記出力負荷とを与えることにより得られる前記複合セルの遅延値以上となるか否かを判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とするセルライブラリ検証装置。
【請求項７】
コンピュータが、
複数の単純セルの機能を集約した複合セルを保持するセルライブラリの中から、任意の複合セルを抽出する抽出工程と、
前記抽出工程によって抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の前記単純セルに入力スルーと出力負荷とを与えることにより得られる遅延値を用いて、前記論理回路の遅延値を算出する算出工程と、
前記算出工程によって算出された論理回路の遅延値が、前記複合セルに前記入力スルーと前記出力負荷とを与えることにより得られる前記複合セルの遅延値以上となるか否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を実行することを特徴とするセルライブラリ検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、セルライブラリの記憶内容を検証するセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法に関する。
【背景技術】
【０００２】
一般に、設計対象回路の回路合成には、セルライブラリが利用される。このため、セルライブラリ自体の良し悪しが合成後の回路の品質に大きく影響を与えることとなる。そこで、合成回路の品質を保証するために、セルライブラリの記憶内容を最適化する技術が開示されている（例えば、下記非特許文献１または２参照。）。
【０００３】
具体的には、例えば、ＡＯＩセルやＯＡＩセルなどの複合セルをライブラリに保持することにより、合成回路の面積を削減することができる。さらに、すべてのセルに対して、出力極性逆のセルを保持するとともに、複数サイズのセルを保持することにより、合成回路の品質を向上させることができる。
【０００４】
【非特許文献１】Ｋｅｎ  Ｓｃｏｔｔ  ａｎｄ  Ｋｕｒｔ  Ｋｅｕｔｚｅｒ  “Ｉｍｐｒｏｖｉｎｇ  Ｃｅｌｌ  Ｌｉｂｒａｒｉｅｓ  ｆｏｒ  Ｓｙｎｔｈｅｓｉｓ”  ＩＥＥＥ  ＣＩＣＣ  １９９４  ｐ．１２８−１３５
【非特許文献２】Ｋ．Ｋｅｕｔｚｅｒ，Ｋ．Ｋｏｌｗｉｃｚ，Ｍ．Ｌｅｇａ  “Ｉｍｐａｃｔ  ｏｆ  Ｌｉｂｒａｒｙ  Ｓｉｚｅ  ｏｎ  ｔｈｅ  Ｑｕａｌｉｔｙ  ｏｆ  Ａｕｔｏｍａｔｅｄ  Ｓｙｎｔｈｅｓｉｓ”  ＩＥＥＥ  ＩＣＣＡＤ  １９８７  ｐ．１２０−１２３
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術は、回路合成をおこなう合成ツール側の観点で、あるベンチマーク回路に対する結果から得られる経験則をもとに記憶内容を最適化したものであることが多い。このため、実際に回路合成をおこなった結果、セルライブラリに含めた複合セルが適切に利用されず、合成回路の面積が予想よりも大きくなるなどの不具合が発生する場合があるという問題があった。
【０００６】
この発明は、上述した従来技術による問題点を解消するため、セルライブラリを適切に最適化して複合セルの利用率を向上させることにより、合成回路の品質を保証することができるセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、複数の単純セルの機能を集約した複合セルを保持するセルライブラリの中から、任意の複合セルを抽出し、抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の遅延値を算出し、算出された論理回路の遅延値が前記複合セルの遅延値以上となるか否かを判定し、判定された判定結果を出力することを要件とする。
【０００８】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、前記単純セルに入力スルーと出力負荷とを与えることにより得られる遅延値を用いて前記論理回路の遅延値を算出し、前記論理回路の遅延値が、前記複合セルに前記入力スルーと前記出力負荷とを与えることにより得られる遅延値以上となるか否かを判定することとしてもよい。
【０００９】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、予め設定された範囲内の入力スルーと予め設定された範囲内の出力負荷との組み合わせごとに前記単純セルの遅延値を有する遅延テーブルを参照することにより、前記組み合わせごとに前記論理回路の遅延値を算出し、前記組み合わせごとに前記論理回路の遅延値が前記複合セルの遅延値以上となるか否かを判定することとしてもよい。
【００１０】
これらのセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法によれば、遅延最適な回路合成をおこなう際の複合セルの利用率を考慮して、セルライブラリの最適化の要否を判定することができる。
【００１１】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、前記論理回路の遅延値が前記複合セルの遅延値未満と判定された場合、前記複合セルのトランジスタの寸法を変更し、前記論理回路の遅延値が、前記トランジスタの寸法が変更された変更後の複合セルの遅延値以上となるか否かを判定することとしてもよい。
【００１２】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、前記論理回路の遅延値が前記複合セルの遅延値未満と判定された場合、前記論理回路を構成する単純セルのトランジスタの寸法を変更し、前記トランジスタの寸法が変更された変更後の論理回路の遅延値が、前記複合セルの遅延値以上となるか否かを判定することとしてもよい。
【００１３】
これらのセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法によれば、遅延最適な回路合成をおこなう際の複合セルの利用率を向上させることができる。
【００１４】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、前記複数の組み合わせのうち、前記論理回路の遅延値が前記複合セルの遅延値以上となる組み合わせが占める割合を算出し、算出された割合が予め設定された閾値以上であるか否かを判定することとしてもよい。
【００１５】
このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法によれば、遅延最適な回路合成をおこなう際に複合セルが利用される割合に応じて、セルライブラリの最適化の要否を判定することができる。
【００１６】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、前記複合セルおよび前記論理回路の遅延値に基づいて、予め設定された範囲の入力スルーを示す第１の軸と、予め設定された範囲の出力負荷を示す第２の軸と、からなる座標平面上に、前記入力スルーと前記出力負荷との組み合わせに対応付けて、前記論理回路の遅延値が前記複合セルの遅延値以上となる分布領域を表わすグラフを作成し、作成されたグラフ上の全領域のうち前記分布領域が占める割合を算出することとしてもよい。
【００１７】
このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法によれば、予め設定された入力スルーと出力負荷との全範囲に対する、複合セルが利用される入力スルーと出力負荷との範囲が占める割合に応じて、セルライブラリの最適化の要否を判定することができる。
【００１８】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、前記グラフ上の全領域のうち前記分布領域が占める割合が閾値未満であると判定された場合、前記複合セルを構成するトランジスタの寸法を変更することとしてもよい。
【００１９】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、前記グラフ上の全領域のうち前記分布領域が占める割合が閾値未満であると判定された場合、前記論理回路を構成する単純セルのトランジスタの寸法を変更することとしてもよい。
【００２０】
これらのセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法によれば、遅延最適な回路合成をおこなう際の複合セルの利用率を向上させることができる。
【００２１】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、予め設定された範囲の入力スルーと予め設定された範囲の出力負荷との組み合わせの使用頻度を表わす使用頻度分布に基づいて、前記複数の組み合わせのうち、前記論理回路の遅延値が前記複合セルの遅延値以上となる組み合わせが占める割合を算出することとしてもよい。
【００２２】
また、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法は、前記使用頻度分布に基づいて、作成されたグラフ上の全領域のうち、前記論理回路の遅延値が前記複合セルの遅延値以上となる分布領域が占める割合を算出することとしてもよい。
【００２３】
これらのセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法によれば、入力スルーおよび出力負荷の実際の使用頻度に応じて、セルライブラリの最適化の要否を判定することができる。
【発明の効果】
【００２４】
このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法によれば、セルライブラリを適切に最適化して複合セルの利用率を向上させることにより、合成回路の品質を保証することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照して、このセルライブラリ検証プログラム、該プログラムを記録した記録媒体、セルライブラリ検証装置、およびセルライブラリ検証方法の好適な実施の形態を詳細に説明する。
【００２６】
（本実施の形態の概要）
まず、本実施の形態の概要について説明する。図１は、本実施の形態の概要を示す説明図である。本実施の形態では、セルライブラリの開発側において、ベンチマーク回路に依存することなくセルライブラリ（例えば、図２に示すセルライブラリ２００）の記憶内容の良し悪しを判定し、その判定結果に応じて記憶内容の最適化をおこなう。
【００２７】
一般に、回路合成をおこなった際の合成後の回路が単純セルのみで構成された場合、複合セルを利用して構成された回路に比べて面積が大きくなってしまう。回路の面積が増大すると、消費電力の増大化を招くなどの問題がある。このため、遅延最適な回路合成をおこなう場合に、セルライブラリに保持されている複合セルを利用させたい。
【００２８】
そこで、セルライブラリに保持されている複合セルの遅延値が、その複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の遅延値よりも大きい場合に、例えば、複合セルのトランジスタの寸法を変更することにより、複合セルの遅延値を論理回路の遅延値以下にする最適化をおこなう。
【００２９】
これにより、遅延最適な回路合成をおこなう場合の複合セルの利用率を向上させることができる。この結果、合成回路の面積が予想よりも大きくなってしまうなどの不具合の発生を低減させ、合成回路の品質を保証する。
【００３０】
（セルライブラリの記憶内容）
つぎに、セルライブラリの記憶内容について説明する。図２は、セルライブラリの記憶内容を示す説明図である。図２において、セルライブラリ２００は、セルごとに、セルデータ２００−１〜２００−ｎを保持している。セルデータ２００−１〜２００−ｎは、セルごとに、セル名、セルタイプ、遅延情報、およびトランジスタ情報を有している。
【００３１】
セル名は、セルの名称である。セルタイプは、セルの性能特性を表わす情報であり、例えば、ＡＮＤゲート、ＮＯＴゲート、ＡＯＩゲートなどのセルの機能を表わしている。遅延情報は、各セルの遅延に関する情報であり、例えば、後述する遅延テーブルや出力スルーテーブルが含まれている。トランジスタ情報は、各セル内のトランジスタの寸法（例えば、ゲート幅）を表わす情報である。
【００３２】
ここで、セルＣｉを例に挙げると、セルタイプはＡＯＩ−１であり、セルＣｉに関する遅延情報Ｄｉおよびトランジスタ情報Ｔｉを有している。セルタイプに付されている数字は、セルＣｉの駆動能力の駆動レベルを表わしている。この駆動レベルが大きいほど、駆動能力が高いことを表わしている。
【００３３】
（セルライブラリ検証装置のハードウェア構成）
つぎに、セルライブラリ検証装置のハードウェア構成について説明する。図３は、本実施の形態にかかるセルライブラリ検証装置のハードウェア構成を示すブロック図である。
【００３４】
図３において、セルライブラリ検証装置３００は、ＣＰＵ３０１と、ＲＯＭ３０２と、ＲＡＭ３０３と、ＨＤＤ（ハードディスクドライブ）３０４と、ＨＤ（ハードディスク）３０５と、ＦＤＤ（フレキシブルディスクドライブ）３０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）３０７と、ディスプレイ３０８と、Ｉ／Ｆ（インターフェース）３０９と、キーボード３１０と、マウス３１１と、スキャナ３１２と、プリンタ３１３とを備えている。また、各構成部は、バス３２０によってそれぞれ接続されている。
【００３５】
ここで、ＣＰＵ３０１は、セルライブラリ検証装置３００の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記録している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。ＨＤＤ３０４は、ＣＰＵ３０１の制御にしたがってＨＤ３０５に対するデータのリード／ライトを制御する。ＨＤ３０５は、ＨＤＤ３０４の制御で書き込まれたデータを記憶する。
【００３６】
ＦＤＤ３０６は、ＣＰＵ３０１の制御にしたがってＦＤ３０７に対するデータのリード／ライトを制御する。ＦＤ３０７は、ＦＤＤ３０６の制御で書き込まれたデータを記憶したり、ＦＤ３０７に記憶されたデータをセルライブラリ検証装置３００に読み取らせたりする。
【００３７】
また、着脱可能な記録媒体として、ＦＤ３０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリカードなどであってもよい。ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０８には、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３８】
Ｉ／Ｆ３０９は、通信回線を通じてインターネットなどのネットワーク３１４に接続され、このネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３９】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４０】
スキャナ３１２は、画像を光学的に読み取り、装置内に画像データを読み込む。なお、スキャナ３１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ３１３は、画像データや文書データを印刷する。プリンタ３１３には、たとえば、レーザプリンタやインクジェットプリンタなどを採用することができる。
【００４１】
（セルライブラリ検証装置の機能的構成）
つぎに、セルライブラリ検証装置３００の機能的構成について説明する。図４は、セルライブラリ検証装置の機能的構成を示すブロック図である。図４において、セルライブラリ検証装置３００は、セルライブラリ２００と、抽出部４０１と、算出部４０２と、判定部４０３と、変更部４０４と、作成部４０５と、出力部４０６と、を備えている。
【００４２】
これら各機能４０１〜４０６は、セルライブラリ検証装置３００の記憶部に記憶された当該機能４０１〜４０６に関するプログラムをＣＰＵに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。また、各機能４０１〜４０６からの出力データは上記記憶部に保持される。また、図４中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶部から読み込んで、当該機能に関するプログラムをＣＰＵに実行させるものとする。
【００４３】
まず、抽出部４０１は、複数の単純セルの機能を集約した複合セルを保持するセルライブラリ２００の中から、任意の複合セルを抽出する機能を有する。単純セルとは、例えば、ＡＮＤゲートやＮＯＴゲートなどの論理ゲート（基本ゲート）である。また、複合セルとは、例えば、ＡＯゲートやＡＯＩゲートなど複数の論理ゲートを組み合わせた論理（機能）を実現するセルである。この複合セルは、２段以上の論理ゲートを構成することなく、１段でその機能を実現する。
【００４４】
具体的には、例えば、抽出部４０１は、セルライブラリ２００の中から、複合セルに関するセルデータ２００−ｉを抽出する。このセルデータ２００−ｉから特定されるセルＣｉは、複数のＡＮＤゲートを入力とするＯＲゲートの出力にインバータ（ＮＯＴゲート）を接続した複合セルである。
【００４５】
また、例えば、抽出された複合セルと同じ機能でかつ駆動能力の異なる他の複合セルが存在する場合には、他の複合セルもあわせて抽出することとしてもよい。具体的には、例えば、セルＣｉと同じ機能でかつ駆動能力の異なる他の複合セル（ここでは、セルＣｊ，ＣｋおよびＣｍとする）が存在するとする。
【００４６】
この場合、抽出部４０１は、セルＣｉとともにセルＣｊ，ＣｋおよびＣｍをあわせて抽出することとなる。セルＣｊは、セルタイプがＡＯＩ−２であり、セルＣｊに関する遅延情報Ｄｊおよびトランジスタ情報Ｔｊを有している。また、セルＣｋは、セルタイプがＡＯＩ−３であり、セルＣｋに関する遅延情報Ｄｋおよびトランジスタ情報Ｔｋを有している。
【００４７】
さらに、セルＣｍは、セルタイプがＡＯＩ−４であり、セルＣｍに関する遅延情報Ｄｍおよびトランジスタ情報Ｔｍを有している。なお、同じ機能でかつ駆動能力の異なるセル群は、予めグループ化されてセルライブラリ２００に保持されていてもよく、また、それぞれ関連付けて保持されていてもよい。
【００４８】
算出部４０２は、抽出部４０１によって抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の遅延値を算出する機能を有する。複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路とは、抽出された複合セルの機能と同じ機能を実現し、２段以上の論理ゲートからなる回路である。
【００４９】
具体的には、例えば、まず、抽出部４０１によって抽出された複合セルの機能を実現するネットリストを生成する。このあと、生成されたネットリストに基づいて、複合セルの機能と等価な論理回路を構成する単純セルの構成パターンを特定する。そして、特定された構成パターンの論理回路の遅延値を算出する。
【００５０】
なお、上記ネットリストは、不図示の外部装置から取得することとしてもよく、また、ユーザの操作入力、不図示のデータベースやライブラリ（例えば、セルライブラリ２００）からの抽出によって取得することとしてもよい。また、単純セルの構成パターンは、各複合セルと関連付けてセルライブラリ２００に予め保持されていてもよい。
【００５１】
ここで、論理回路の具体例について説明する。図５は、論理回路の具体例を示す説明図である。図５において、論理回路５１０，５２０は、セルＣｉの機能を実現するネットリスト５００から特定される構成パターンの論理回路である。具体的には、論理回路５１０は、セルＣ１（ＡＮＤ−１）とセルＣ１（ＡＮＤ−１）とセルＣ２（ＮＯＲ−１）との組み合わせからなる回路である。
【００５２】
また、論理回路５２０は、セルＣ３（ＮＡＮＤ−１）とセルＣ３（ＮＡＮＤ−１）とセルＣ１（ＡＮＤ−１）との組み合わせからなる回路である。このように、単純セル（Ｃ１，Ｃ２，Ｃ３）を組み合わせることにより、２段以上の論理ゲートから構成される論理回路５１０，５２０によって複合セルＣｉと同じ機能を実現することができる。
【００５３】
なお、図５中Ａ１，Ａ２，Ｂ１，Ｂ２は、入力ピンを表わしている。算出部４０２によって論理回路５１０，５２０の遅延値を算出する場合、これら入力ピンＡ１，Ａ２，Ｂ１，Ｂ２ごとに遅延値を算出することとなる。具体的には、入力ピンＡ１から入力される信号の遅延値、入力ピンＡ２から入力される信号の遅延値、入力ピンＢ１から入力される信号の遅延値、および入力ピンＢ２から入力される信号の遅延値をそれぞれ算出する。
【００５４】
また、算出部４０２は、単純セルに入力スルーと出力負荷とを与えることにより得られる遅延値を用いて、論理回路の遅延値を算出することとしてもよい。ここで、入力スルーとは、クロックの立ち上がりの傾き具合を表わす入力側の制約条件である。また、出力負荷とは、ドライブの能力を表わす出力側の制約条件である。
【００５５】
具体的には、例えば、算出部４０２は、論理回路５１０を構成するセルＣ１、セルＣ１およびセルＣ２に入力スルーと出力負荷とを与えることにより得られる遅延値を用いて、論理回路５１０の遅延値を算出する。
【００５６】
判定部４０３は、算出部４０２によって算出された論理回路の遅延値が複合セルの遅延値以上となるか否かを判定する機能を有する。具体的には、例えば、入力スルーと出力負荷とを与えて得られた論理回路の遅延値が、複合セルに同一の入力スルーと出力負荷とを与えることにより得られる遅延値以上となるか否かを判定することとしてもよい。
【００５７】
ここで、算出部４０２および判定部４０３による具体的な処理内容について説明する。まず、算出部４０２は、例えば、予め設定された範囲内の入力スルーと予め設定された範囲内の出力負荷との組み合わせごとに単純セルの遅延値を有する遅延テーブルを参照することにより、その組み合わせごとに論理回路の遅延値を算出する。
【００５８】
入力スルーと出力負荷との組み合わせは、例えば、図３に示したキーボード３１０やマウス３１１などをユーザが操作することで、任意に設定可能である。例えば、入力スルー（２，４，６，８）および出力負荷（１，３，５，７）が設定された場合、入力スルーと出力負荷との組み合わせは、それぞれの数字列のいずれかの数字の組み合わせとなる。
【００５９】
ここで、セルＣｉの機能と等価でかつ単純セルからなる論理回路５１０を例に挙げて、算出部４０２による算出処理の具体例について説明する。なお、論理回路５１０の遅延値は、入力ピンＡ１，Ａ２，Ｂ１，Ｂ２（図５参照）ごとに算出されることとなるが、ここではピンＡ１を例に挙げて説明する。
【００６０】
入力ピンＡ１から入力される信号の遅延値を算出する場合、入力された信号が辿る経路上に存在するセル（ここでは、セルＣ１，セルＣ２）ごとの遅延値を求め、それら遅延値を累積する。まず、セルＣ１の遅延値を求める。具体的には、例えば、抽出部４０１によって、セルライブラリ２００の中からセルデータ２００−１を抽出することにより、セルＣ１の遅延値を表わす遅延テーブル６００（図６参照）を取得する。
【００６１】
図６は、遅延テーブルの具体例を示す説明図（その１）である。図６において、遅延テーブル６００には、入力スルー（図中Ｓ）と出力負荷（図中Ｌ）との組み合わせごとに、セルＣ１の遅延値が示されている。例えば、セルＣ１に入力スルー「２」と出力負荷「１」とを与えた場合、遅延テーブル６００を参照することにより、セルＣ１の遅延値は「０．９」と求めることができる。
【００６２】
つぎに、セルＣ２の遅延値を求める。まず、セルＣ１に入力スルー「２」と出力負荷「１」とを与えた場合のセルＣ１の出力スルーを求める。図７は、出力スルーテーブルの具体例を示す説明図である。図７において、出力スルーテーブル７００には、入力スルーと出力負荷との組み合わせごとに、セルＣ１の出力スルーが示されている。この出力スルーテーブル７００は、例えば、セルデータ２００−１（遅延情報Ｄ１）に含まれている。
【００６３】
ここで、セルＣ１に入力スルー「２」と出力負荷「１」とを与えた場合、出力スルーテーブル７００を参照することにより、セルＣ１の出力スルーは「３」と求めることができる。このあと、抽出部４０１によって、セルライブラリ２００の中からセルデータ２００−２を抽出することにより、セルＣ２の遅延値を表わす遅延テーブル８００（図８参照）を取得する。
【００６４】
図８は、遅延テーブルの具体例を示す説明図（その２）である。図８において、遅延テーブル８００には、入力スルーと出力負荷との組み合わせごとに、セルＣ２の遅延値が示されている。ここで、セルＣ２に入力スルー「３」と出力負荷「１」とを与えた場合、遅延テーブル８００を参照することにより、セルＣ２の遅延値は「０．８５」と求めることができる。
【００６５】
ただし、セルＣ２に入力スルー「３」と出力負荷「１」とを与えた場合の遅延値は、遅延テーブル８００に示されていないため、例えば、入力スルー「２」と出力負荷「１」とを与えた場合の遅延値「０．７」、および入力スルー「４」と出力負荷「１」とを与えた場合の遅延値「１．０」から線形的「（０．７＋１．０）／２＝０．８５」に求めることとなる。
【００６６】
最後に、セルＣ１の遅延値とセルＣ２の遅延値とを累積することにより、入力ピンＡ１に入力される信号の遅延値は「０．９＋０．８５＝１．７５」と求めることができる。このように、入力スルーと出力負荷との組み合わせごとに、入力ピンＡ１に入力される信号の遅延値を算出することにより、論理回路５１０の遅延値を表わす遅延テーブル９００（図９参照）を作成する。
【００６７】
図９は、遅延テーブルの具体例を示す説明図（その３）である。図９において、遅延テーブル９００には、入力スルーと出力負荷との組み合わせごとに、入力ピンＡ１に入力される信号に関する論理回路５１０の遅延値が示されている。なお、入力ピンＡ２，Ｂ１，Ｂ２についても、この遅延テーブル９００に相当する遅延テーブルをそれぞれ作成することとなる。
【００６８】
判定部４０３は、例えば、入力スルーと出力負荷との組み合わせごとに論理回路の遅延値が複合セルの遅延値以上となるか否かを判定する。具体的には、例えば、予め設定された範囲内の入力スルーと予め設定された範囲内の出力負荷との組み合わせごとに複合セルの遅延値を有する遅延テーブルを参照することにより、論理回路の遅延値が複合セルの遅延値以上となるか否かを判定する。
【００６９】
図１０は、遅延テーブルの具体例を示す説明図（その４）である。図１０において、遅延テーブル１０００には、入力スルーと出力負荷との組み合わせごとに、入力ピンＡ１に入力される信号に関するセルＣｉの遅延値が示されている。
【００７０】
判定部４０３は、遅延テーブル９００（図９参照）と遅延テーブル１０００（図１０参照）とを参照することにより、入力スルーと出力負荷との組み合わせごとに、論理回路５１０の遅延値が複合セルＣｉの遅延値以上となるか否かを判定する。
【００７１】
ここで、組み合わせ（Ｓ，Ｌ）＝（２，１）を例に挙げると、論理回路５１０の遅延値は「１．７５」であり、複合セルＣｉの遅延値は「１．３」である。このため、判定部４０３は、論理回路５１０の遅延値が複合セルＣｉの遅延値以上となると判定する。判定部４０３は、これらの処理を、例えば、各論理回路５１０，５２０について、入力ピンＡ１，Ａ２，Ｂ１，Ｂ２ごとに実行する。
【００７２】
また、算出部４０２は、判定部４０３によって判定された結果、複数の組み合わせのうち、論理回路の遅延値が複合セルの遅延値以上となる組み合わせが占める割合を算出する機能を有する。例えば、図５に示したネットリスト５００に基づいて、遅延最適な回路の合成をおこなう場合、論理回路５１０，５２０および複合セルＣｉのうち、遅延値が最小となるものを利用する。
【００７３】
このため、上記割合が大きいほど、複合セルＣｉが利用される割合が大きくなる。つまり、上記割合は、遅延最適な回路の合成をおこなう場合の複合セルの利用率に相当する。複合セルＣｉの利用率を算出する場合、まず、遅延テーブル９００と遅延テーブル１０００とを参照することにより、複数の組み合わせ（ここでは、１６［個］）のうち、論理回路５１０の遅延値が複合セルＣｉの遅延値以上となる組み合わせ数を算出する。
【００７４】
ここでは、論理回路５１０の遅延値が複合セルＣｉの遅延値以上となる組み合わせは１６［個］のため、上記割合は『１６／１６×１００＝１００［％］』となる。さらに、判定部４０３は、算出部４０２によって算出された割合（利用率）が予め設定された閾値以上であるか否かを判定する機能を有する。
【００７５】
この閾値は、例えば、図３に示したキーボード３１０やマウス３１１などをユーザが操作することで、任意に設定可能である。ここで、閾値が９５［％］に設定されているとする。この場合、判定部４０３は、算出部４０２によって算出された割合（利用率）が１００［％］のため、予め設定された閾値以上であると判定することとなる。
【００７６】
変更部４０４は、判定部４０３によって論理回路の遅延値が複合セルの遅延値未満と判定された場合、複合セルのトランジスタの寸法を変更する機能を有する。具体的には、例えば、変更部４０４は、算出部４０２によって算出された割合が閾値未満であると判定された場合、複合セルを構成するトランジスタの寸法を変更することとしてもよい。
【００７７】
すなわち、セルライブラリ２００を用いた回路の合成をおこなう場合の複合セルの利用率を向上させるため、複合セルのトランジスタの寸法（ゲート幅）を変更することにより、複合セルの遅延値が論理回路の遅延値よりも小さくなるような最適化をおこなう。変更部４０４による変更処理の詳細な説明は後述する。
【００７８】
また、判定部４０３は、論理回路の遅延値が、変更部４０４によってトランジスタの寸法が変更された変更後の複合セルの遅延値以上となるか否かを判定することとしてもよい。すなわち、トランジスタの寸法が変更されるごとに、判定部４０３による判定処理を実行することにより、論理回路の遅延値が変更後の複合セルの遅延値以上となるまで、変更部４０４および判定部４０３による処理を繰り返し実行する。
【００７９】
また、変更部４０４は、論理回路の遅延値が複合セルの遅延値未満と判定された場合、論理回路を構成する単純セルのトランジスタの寸法を変更することとしてもよい。具体的には、例えば、変更部４０４は、算出部４０２によって算出された割合が閾値未満であると判定された場合、論理回路を構成する単純セルのトランジスタの寸法を変更することとしてもよい。
【００８０】
すなわち、複合セルの利用率を向上させるため、論理回路を構成する単純セルのトランジスタの寸法を変更することにより、論理回路の遅延値を複合セルの遅延値よりも大きくする。具体的には、例えば、論理回路の遅延値が変更後の複合セルの遅延値以上となる複合セルのトランジスタの寸法が探索されなかった場合などに、単純セルのトランジスタの寸法を変更することとしてもよい。
【００８１】
また、判定部４０３は、変更部４０４によってトランジスタの寸法が変更された変更後の論理回路の遅延値が、複合セルの遅延値以上となるか否かを判定することとしてもよい。すなわち、トランジスタの寸法が変更されるごとに、判定部４０３による判定処理を実行することにより、変更後の論理回路の遅延値が複合セルの遅延値以上となるまで、変更部４０４および判定部４０３による処理を繰り返し実行する。
【００８２】
なお、複合セル（または、単純セル）を構成するトランジスタの寸法が変更された場合、その変更内容に応じてセルライブラリ２００に保持されているセルデータ２００−１〜２００−ｎを更新する。具体的には、例えば、変更後の複合セル（または、単純セル）のトランジスタの寸法をトランジスタ情報Ｔ１〜Ｔｎに反映させるとともに、変更後の複合セル（または、単純セル）の遅延値を表わす遅延テーブルを新たに作成し遅延情報Ｄ１〜Ｄｎに反映する。
【００８３】
作成部４０５は、複合セルおよび論理回路の遅延値に基づいて、予め設定された範囲の入力スルーを示す第１の軸と、予め設定された範囲の出力負荷を示す第２の軸と、からなる座標平面上に、入力スルーと出力負荷との組み合わせに対応付けて、論理回路の遅延値が複合セルの遅延値以上となる分布領域を表わすグラフを作成する機能を有する。
【００８４】
このグラフは、予め設定された入力スルーおよび出力負荷の範囲内において、遅延最適な回路の合成をおこなう場合に、複合セルが利用される分布を表わしている。つまり、グラフ上に全領域（設定された範囲内）に対する、論理回路の遅延値が複合セルの遅延値以上となる分布領域の占める割合が、遅延最適な回路の合成をおこなう場合の複合セルの利用率となる。
【００８５】
ここで、作成部４０５による作成処理の具体例を、セルライブラリ２００の中からセルＣｉが抽出された場合を例に挙げて説明する。まず、セルＣｉの遅延値を表わす遅延テーブル１０００を参照して、入力スルーと出力負荷との組み合わせごとの遅延値を３次元座標上にプロットすることにより、セルＣｉの遅延分布を表わす遅延曲面を作成する。このとき、プロットされた各点の間は平面によって補完する。
【００８６】
図１１は、遅延曲面の具体例を示す説明図である。図１１において、遅延曲面１１００は、セルＣｉの遅延分布を表わしている。具体的には、遅延テーブル１０００（図１０参照）に基づいて、予め設定された範囲（２≦入力スルー≦８）の入力スルーを示す第１の軸と、予め設定された範囲（１≦出力負荷≦７）の出力負荷を示す第２の軸と、入力スルーおよび出力負荷の組み合わせに応じた遅延値を示す第３の軸と、からなる３次元座標上に遅延曲面１１００が示されている。
【００８７】
また、セルＣｉと同じ機能でかつ駆動能力の異なるセルＣｊ，ＣｋおよびＣｍについても、各セルＣｊ，Ｃｋ，Ｃｍの遅延値を表わす遅延テーブル（遅延情報Ｄｊ，Ｄｋ，Ｄｍに含まれている）を参照して、入力スルーと出力負荷との組み合わせごとの遅延値を３次元座標上にプロットすることにより、各セルＣｊ，Ｃｋ，Ｃｍの遅延分布を表わす遅延曲面（不図示）をそれぞれ作成する。
【００８８】
なお、セルＣｊ，Ｃｋ，Ｃｍごとの遅延分布を表わす遅延曲面を作成する際に、出力負荷に応じた駆動能力のセルＣｊ，Ｃｋ，Ｃｍの遅延値のみをプロットすることにより、複合セル（セルＣｉ，Ｃｊ，Ｃｋ，Ｃｍ）の遅延分布を表わす遅延曲面を作成することとしてもよい。つまり、セルＣｉ，Ｃｊ，Ｃｋ，Ｃｍごとに遅延値を全てプロットするのではなく、与える出力負荷に応じた最適なセルＣｉ，Ｃｊ，Ｃｋ，Ｃｍの遅延値のみをプロットする。
【００８９】
さらに、算出部４０２によって算出されたセルＣｉの機能と等価でかつ単純セルの組み合わせからなる論理回路５１０，５２０の遅延値（例えば、遅延テーブル９００）を参照して、入力スルーと出力負荷との組み合わせごとの遅延値を３次元座標上にプロットすることにより、論理回路５１０，５２０の遅延分布を表わす遅延曲面（不図示）をそれぞれ作成する。
【００９０】
このあと、作成された全ての遅延曲面（ここでは、セルＣｉ，Ｃｊ，Ｃｋ，Ｃｍおよび論理回路５１０，５２０に関する６個の遅延曲面）を重ね合わせることにより、論理回路５１０，５２０の遅延値がセルＣｉの遅延値以上となる分布領域を表わすグラフを作成する。
【００９１】
このグラフは、予め設定された入力スルーおよび出力負荷の範囲内において、遅延最適な回路の合成をおこなう場合に、複合セル（セルＣｉ，Ｃｊ，Ｃｋ，Ｃｍ）が利用される利用分布を表わしている。また、このグラフは、図５に示した入力ピンＡ１，Ａ２，Ｂ１，Ｂ２ごとにそれぞれ作成されることとなる。
【００９２】
図１２は、複合セルの利用分布を示す説明図である。図１２において、入力ピンＡ１，Ａ２，Ｂ１，Ｂ２ごとに、予め設定された範囲（２≦入力スルー≦８）の入力スルーを示す第１の軸と、予め設定された範囲（１≦出力負荷≦７）の出力負荷を示す第２の軸と、からなる座標平面上に、セルＣｉの利用分布を示すグラフＧ１〜Ｇ４が示されている。
【００９３】
各グラフＧ１〜Ｇ４には、遅延最適な回路合成をおこなう場合に利用されるセルＣｉ，Ｃｊ，Ｃｋ，Ｃｍの分布領域が示されている（図１３中、Ｃｉ，Ｃｊ，Ｃｋ，Ｃｍと表記）。また、図１２中のハッチ領域は、単純セルの組み合わせからなる論理回路（例えば、論理回路５１０，５２０）が利用される分布領域を表わしている。
【００９４】
算出部４０２は、作成部４０５によって作成された各グラフＧ１〜Ｇ４上の全領域のうち、論理回路５１０，５２０の遅延値がセルＣｉ，Ｃｊ，Ｃｋ，Ｃｍの遅延値以上となる分布領域（ハッチ領域を除く残余の分布領域）が占める割合を算出する。この割合は、遅延最適な回路合成をおこなう場合の複合セル（セルＣｉ，Ｃｊ，Ｃｋ，Ｃｍ）の利用率に相当する。
【００９５】
ここでは、グラフＧ１における複合セルの利用率は１００［％］である。また、グラフＧ２における複合セルの利用率は９０［％］である。また、グラフＧ３における複合セルの利用率は８５［％］である。また、グラフＧ４における複合セルの利用率は１００［％］である。
【００９６】
また、判定部４０３は、算出部４０２によって算出された割合（利用率）が予め設定された閾値以上であるか否かを判定する。ここで、閾値が９５［％］に設定されているとする。この場合、グラフＧ１を例に挙げると、利用率は１００［％］のため、予め設定された閾値以上であると判定する。また、グラフＧ２を例に挙げると、利用率は９０［％］のため、予め設定された閾値未満であると判定する。
【００９７】
ここで、変更部４０４は、判定部４０３によって複合セルの利用率が閾値未満であると判定された場合、複合セルを構成するトランジスタの寸法を変更する。これは、セルＣｉ，Ｃｊ，Ｃｋ，Ｃｍの利用率が低いと、単純セルの組み合わせからなる論理回路５１０，５２０の利用率が高くなる。
【００９８】
そこで、複合セルの利用率が予め設定された閾値未満であると判定された場合に、複合セルを構成するトランジスタの寸法を変更することにより、複合セルの遅延値が小さくなるような最適化をおこなう。具体的には、例えば、まず、抽出部４０１によって変更対象となる複合セルのセルデータ２００−ｉを抽出する。
【００９９】
そして、セルデータ２００−ｉに含まれるトランジスタ情報Ｔｉに基づいて、複合セル（セルＣｉ，Ｃｊ，Ｃｋ，Ｃｍ）の遅延値を小さくするトランジスタの寸法を探索する。より詳細に説明すると、例えば、トランジスタ情報Ｔｉに定義されているトランジスタの最大寸法、最小寸法および刻み寸法を用いて、変更するトランジスタの寸法を探索する。
【０１００】
図１３は、ＡＯＩセルのトランジスタ構造を示す説明図である。図１３において、ＡＯＩセル１３００は、トランジスタＴｒ１〜Ｔｒ８から構成されている。トランジスタＴｒ１〜Ｔｒ８の寸法を変更する場合、トランジスタ情報に定義されている最大寸法、最小寸法および刻み寸法を用いて、その探索範囲内の任意の寸法に変更することとなる。
【０１０１】
つまり、例えば、セルＣｉ，Ｃｊ，ＣｋおよびＣｍのトランジスタＴｒ１〜Ｔｒ８の寸法を変更する場合には、トランジスタ情報Ｔｉ，Ｔｊ，ＴｋおよびＴｍに定義されている最大寸法Ｗmax、最小寸法Ｗminおよび刻み寸法ΔＷを用いて、その探索範囲内（Ｗmin≦Ｔｒ（Ｔｒ１〜Ｔｒ８）≦Ｗmax）の任意の寸法に変更することとなる。
【０１０２】
より詳細に説明すると、トランジスタＴｒ１〜Ｔｒ８の寸法の組み合わせを、上記範囲内の任意の寸法の組み合わせに変更する。このあと、その変更内容に応じてセルライブラリ２００に保持されているセルデータ２００−ｉ，２００−ｊ，２００−ｋ，２００−ｍを更新する。
【０１０３】
具体的には、例えば、変更後のトランジスタＴｒ１〜Ｔｒ８の寸法をトランジスタ情報Ｔｉ，Ｔｊ，ＴｋおよびＴｍに反映させるとともに、変更後のセルＣｉ，Ｃｊ，ＣｋおよびＣｍの遅延値を表わす遅延テーブルを新たに作成し遅延情報Ｄ１〜Ｄｎに反映する。さらに、算出部４０２は、変更部４０４によってトランジスタの寸法が変更された場合、変更後のセルＣｉ，Ｃｊ，ＣｋおよびＣｍの利用率を算出する。そして、判定部４０３は、算出部４０２によって算出された利用率が閾値以上であるか否かを再判定する。
【０１０４】
また、判定部４０３は、算出部４０２によって算出された入力ピンごとの割合（利用率）の平均値が予め設定された閾値以上であるか否かを判定することとしてもよい。具体的には、例えば、入力ピンＡ１，Ａ２，Ｂ１，Ｂ２ごとの複合セル（セルＣｉ，Ｃｊ，Ｃｋ，Ｃｍ）の利用率の平均値が閾値以上であるか否かを判定する。
【０１０５】
上述した例では、入力ピンＡ１，Ａ２，Ｂ１，Ｂ２ごとの複合セル（セルＣｉ，Ｃｊ，Ｃｋ，Ｃｍ）の利用率の平均値は、『（１００＋９０＋８５＋１００）／４＝９３．７５［％］』となる。この場合、判定部４０３は、利用率の平均値は９３．７５［％］のため、予め設定された閾値未満であると判定する。
【０１０６】
そして、変更部４０４は、判定部４０３によって複合セルの利用率の平均値が閾値未満であると判定された場合、複合セルを構成するトランジスタの寸法を変更することとしてもよい。これにより、入力ピンＡ１，Ａ２，Ｂ１，Ｂ２ごとの利用率を相対的に判断して、セルライブラリ２００の記憶内容を最適化することができる。
【０１０７】
また、算出部４０２は、入力スルーと出力負荷との組み合わせの使用頻度を表わす使用頻度分布に基づいて、複数の組み合わせのうち、論理回路の遅延値が複合セルの遅延値以上となる組み合わせが占める割合を算出することとしてもよい。使用頻度分布とは、例えば、頻繁に使用される入力スルーと出力負荷との組み合わせを特定するための電子データである。
【０１０８】
これにより、入力スルーおよび出力負荷の実際の使用頻度に応じて、セルライブラリ２００の最適化の要否を判定することができる。つまり、使用頻度が高い入力スルーと出力負荷との組み合わせのときに複合セルが利用されればよいため、使用頻度が低い入力スルーと出力負荷との組み合わせが影響して複合セルの利用率が低下する場合には、トランジスタの寸法を変更しない。
【０１０９】
この結果、使用される可能性が低い入力スルーと出力負荷との組み合わせのために、トランジスタの寸法を変更する無駄な処理を減らすことができる。なお、使用頻度布は、不図示の外部装置から取得することとしてもよく、また、ユーザの操作入力、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。
【０１１０】
また、算出部４０２は、この使用頻度分布に基づいて、作成部４０５によって作成されたグラフ上の全領域のうち、論理回路の遅延値が複合セルの遅延値以上となる分布領域が占める割合を算出することとしてもよい。ここで、使用頻度分布の具体例について説明する。
【０１１１】
図１４は、使用頻度分布の具体例を示す説明図である。図１４において、使用頻度分布１４００は、予め設定された範囲（２≦入力スルー≦８）の入力スルーを示す第１の軸と、予め設定された範囲（１≦出力負荷≦７）の出力負荷を示す第２の軸と、からなる座標平面上に、使用頻度に対応付けた重み付け分布領域を表わすグラフである。
【０１１２】
具体的には、使用頻度分布１４００は、領域１４１０内の入力スルーと出力負荷との組み合わせの使用頻度が、領域１４２０内の入力スルーと出力負荷との組み合わせの使用頻度に比べて５倍高いことを表わしている。この場合、算出部４０２は、使用頻度分布１４００が表わす重み付けを考慮して、グラフＧ１〜Ｇ４上の全領域のうち、論理回路の遅延値が複合セルの遅延値以上となる分布領域が占める割合を算出することとしてもよい。
【０１１３】
具体的には、例えば、領域１４１０，１４２０の座標位置を特定し、論理回路５１０，５２０の遅延値が複合セルの遅延値以上となるグラフＧ１〜Ｇ４上の分布領域のうち、領域１４１０と重なる分布領域に重み付けする（ここでは、重なる分布領域を５倍の大きさの分布領域とする）ことにより、上記割合を算出することとしてもよい。
【０１１４】
出力部４０６は、判定部４０３によって判定された判定結果を出力する機能を有する。具体的には、例えば、論理回路の遅延値が複合セルの遅延値未満となる複合セルを特定するための判定結果を出力することとしてもよい。なお、出力部４０６による出力形式は、ディスプレイ３０８での画面表示、プリンタ３１３での印刷出力、メモリへのデータ出力（保存）、外部のコンピュータ装置への送信のいずれであってもよい。
【０１１５】
また、出力部４０６によって上記判定結果が出力された結果、変更する複合セル（または、単純セル）のトランジスタの寸法を、ユーザが任意に設定することとしてもよい。具体的には、例えば、ディスプレイ３０８に表示される判定結果をユーザが参照し、図３に示したキーボード３１０やマウス３１１などをユーザが操作することで、変更する複合セル（または、単純セル）のトランジスタの寸法を任意に設定する。
【０１１６】
また、出力部４０６は、変更部４０４によって変更された変更後の複合セルのトランジスタの寸法をセルライブラリ２００に出力することとしてもよい。さらに、出力部４０６は、変更部４０４によって変更された変更後の単純セルのトランジスタの寸法をセルライブラリ２００に出力することとしてもよい。
【０１１７】
（セルライブラリ検証装置のセルライブラリ検証処理手順）
つぎに、本実施の形態にかかるセルライブラリ検証装置３００のセルライブラリ検証処理手順について説明する。図１５は、セルライブラリ検証処理手順の一例を示すフローチャートである。
【０１１８】
図１５のフローチャートにおいて、まず、抽出部４０１により、複数の単純セルの機能を集約した複合セルを保持するセルライブラリ２００の中から、任意の複合セルを抽出したか否かを判断する（ステップＳ１５０１）。
【０１１９】
ここで、任意の複合セルを抽出するのを待って（ステップＳ１５０１：Ｎｏ）、抽出された場合（ステップＳ１５０１：Ｙｅｓ）、算出部４０２により、ステップＳ１５０１において抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の遅延値を算出する遅延値算出処理を実行する（ステップＳ１５０２）。
【０１２０】
このあと、判定部４０３により、ステップＳ１５０２において入力スルーと出力負荷との組み合わせごとに算出された論理回路の遅延値が複合セルの遅延値以上となるか否かを判定する（ステップＳ１５０３）。そして、算出部４０２により、複数の組み合わせのうち、論理回路の遅延値が複合セルの遅延値以上となる組み合わせが占める割合を算出する（ステップＳ１５０４）。
【０１２１】
このあと、判定部４０３により、ステップＳ１５０４において算出された割合が予め設定された閾値以上であるか否かを判定する（ステップＳ１５０５）。ここで、閾値未満と判定された場合（ステップＳ１５０５：Ｎｏ）、変更部４０４により、複合セルのトランジスタの寸法を変更する（ステップＳ１５０６）。
【０１２２】
そして、出力部４０６により、ステップＳ１５０６における変更内容をセルライブラリ２００に出力して（ステップＳ１５０７）、ステップＳ１５０２に戻る。また、ステップＳ１５０５において、閾値以上と判定された場合（ステップＳ１５０５：Ｙｅｓ）、抽出部４０１によって抽出されていない未抽出のセルの存否を判断する（ステップＳ１５０８）。
【０１２３】
ここで、未抽出のセルが存在する場合（ステップＳ１５０８：Ｙｅｓ）、ステップＳ１５０１に戻り、一連の処理を繰り返し実行する。一方、未抽出のセルが存在しない場合は（ステップＳ１５０８：Ｎｏ）、本フローチャートによる一連の処理を終了する。
【０１２４】
これによれば、遅延最適な回路合成をおこなう際の複合セルの利用率を考慮して、セルライブラリの最適化の要否を判定することができる。また、最適化が必要であると判定された場合、複合セルのトランジスタの寸法を変更して遅延値を小さくすることにより、遅延最適な回路合成をおこなう際の複合セルの利用率を向上させることができる。
【０１２５】
つぎに、セルライブラリ検証処理手順の他の一例について説明する。図１６は、セルライブラリ検証処理手順の他の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、抽出部４０１により、複数の単純セルの機能を集約した複合セルを保持するセルライブラリ２００の中から、任意の複合セルを抽出したか否かを判断する（ステップＳ１６０１）。
【０１２６】
ここで、任意の複合セルを抽出するのを待って（ステップＳ１６０１：Ｎｏ）、抽出された場合（ステップＳ１６０１：Ｙｅｓ）、算出部４０２により、ステップＳ１６０１において抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の遅延値を算出する遅延値算出処理を実行する（ステップＳ１６０２）。
【０１２７】
このあと、作成部４０５により、複合セルおよび論理回路の遅延値に基づいて、予め設定された範囲の入力スルーを示す第１の軸と、予め設定された範囲の出力負荷を示す第２の軸と、からなる座標平面上に、入力スルーと出力負荷との組み合わせに対応付けて、論理回路の遅延値が複合セルの遅延値以上となる分布領域を表わすグラフを作成する（ステップＳ１６０３）。
【０１２８】
そして、算出部４０２により、ステップＳ１６０３において作成されたグラフ上の全領域のうち分布領域が占める割合（以下、「利用率」という）を算出する（ステップＳ１６０４）。このあと、判定部４０３により、ステップＳ１６０４において算出された利用率が閾値以上であるか否かを判定する（ステップＳ１６０５）。
【０１２９】
ここで、閾値未満と判定された場合（ステップＳ１６０５：Ｎｏ）、変更部４０４により、複合セルのトランジスタの寸法を変更する（ステップＳ１６０６）。そして、出力部４０６により、ステップＳ１６０６における変更内容をセルライブラリ２００に出力して（ステップＳ１６０７）、ステップＳ１６０２に戻る。
【０１３０】
また、ステップＳ１６０５において、閾値以上と判定された場合（ステップＳ１６０５：Ｙｅｓ）、抽出部４０１によって抽出されていない未抽出のセルの存否を判断する（ステップＳ１６０８）。ここで、未抽出のセルが存在する場合（ステップＳ１６０８：Ｙｅｓ）、ステップＳ１６０１に戻る。一方、未抽出のセルが存在しない場合（ステップＳ１６０８：Ｎｏ）、本フローチャートによる一連の処理を終了する。
【０１３１】
これによれば、予め設定された入力スルーと出力負荷との全範囲に対する、複合セルが利用される入力スルーと出力負荷との範囲が占める割合に応じて、セルライブラリの最適化の要否を判定することができる。
【０１３２】
つぎに、図１５に示したステップＳ１５０２および図１６に示したステップＳ１６０２における遅延値算出処理の具体的な処理手順について説明する。図１７は、遅延値算出処理の処理手順の一例を示すフローチャートである。
【０１３３】
図１７のフローチャートにおいて、まず、図１５に示したステップＳ１５０１（図１６に示したステップＳ１６０１）において抽出された複合セルの機能を実現するネットリストを生成する（ステップＳ１７０１）。このあと、ステップＳ１７０１において生成されたネットリストに基づいて、複合セルの機能と等価な論理回路を構成する単純セルの構成パターンを特定する（ステップＳ１７０２）。
【０１３４】
そして、ステップＳ１７０２において特定された構成パターンの論理回路を構成する単純セルの遅延値を表わす遅延テーブルを取得する（ステップＳ１７０３）。このあと、ステップＳ１７０３において取得された遅延テーブルを参照することにより、論理回路の遅延値を算出して（ステップＳ１７０４）、図１５に示したステップＳ１５０３（図１６に示したステップＳ１６０３）に移行する。
【０１３５】
以上説明したように、本実施の形態によれば、遅延最適な回路合成をおこなう際の複合セルの利用率を考慮して、セルライブラリの最適化の要否を判定することができる。また、最適化が必要であると判定された場合、複合セルのトランジスタの寸法を変更して遅延値を小さくすることにより、複合セルの利用率を向上させることができる。
【０１３６】
また、最適化が必要であると判定された場合、論理回路を構成する単純セルのトランジスタの寸法を変更して遅延値を大きくすることにより、複合セルの利用率を向上させることができる。さらに、入力スルーおよび出力負荷の実際の使用頻度に応じて、セルライブラリ２００の最適化の要否を判定することができる。これにより、実際のニーズに合わせてセルライブラリ２００の記憶内容を最適化することができる。
【０１３７】
このように、セルライブラリを適切に最適化して複合セルの利用率を向上させることにより、合成回路の品質を保証することができる。
【０１３８】
なお、本実施の形態で説明したセルライブラリ検証方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１３９】
また、本実施の形態で説明したセルライブラリ検証装置３００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述したセルライブラリ検証装置３００の機能４０１〜４０６をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、セルライブラリ検証装置３００を製造することができる。
【０１４０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１４１】
（付記１）コンピュータを、
複数の単純セルの機能を集約した複合セルを保持するセルライブラリの中から、任意の複合セルを抽出する抽出手段、
前記抽出手段によって抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の遅延値を算出する算出手段、
前記算出手段によって算出された論理回路の遅延値が前記複合セルの遅延値以上となるか否かを判定する判定手段、
前記判定手段によって判定された判定結果を出力する出力手段、
として機能させることを特徴とするセルライブラリ検証プログラム。
【０１４２】
（付記２）前記算出手段は、
前記単純セルに入力スルーと出力負荷とを与えることにより得られる遅延値を用いて前記論理回路の遅延値を算出し、
前記判定手段は、
前記論理回路の遅延値が、前記複合セルに前記入力スルーと前記出力負荷とを与えることにより得られる遅延値以上となるか否かを判定することを特徴とする付記１に記載のセルライブラリ検証プログラム。
【０１４３】
（付記３）前記算出手段は、
予め設定された範囲内の入力スルーと予め設定された範囲内の出力負荷との組み合わせごとに前記単純セルの遅延値を有する遅延テーブルを参照することにより、前記組み合わせごとに前記論理回路の遅延値を算出し、
前記判定手段は、
前記組み合わせごとに前記論理回路の遅延値が前記複合セルの遅延値以上となるか否かを判定することを特徴とする付記１または２に記載のセルライブラリ検証プログラム。
【０１４４】
（付記４）前記コンピュータを、
前記判定手段によって前記論理回路の遅延値が前記複合セルの遅延値未満と判定された場合、前記複合セルのトランジスタの寸法を変更する変更手段として機能させ、
前記判定手段は、
前記論理回路の遅延値が、前記変更手段によって前記トランジスタの寸法が変更された変更後の複合セルの遅延値以上となるか否かを判定することを特徴とする付記１〜３のいずれか一つに記載のセルライブラリ検証プログラム。
【０１４５】
（付記５）前記変更手段は、
前記判定手段によって前記論理回路の遅延値が前記複合セルの遅延値未満と判定された場合、前記論理回路を構成する単純セルのトランジスタの寸法を変更し、
前記判定手段は、
前記変更手段によって前記トランジスタの寸法が変更された変更後の論理回路の遅延値が、前記複合セルの遅延値以上となるか否かを判定することを特徴とする付記４に記載のセルライブラリ検証プログラム。
【０１４６】
（付記６）前記算出手段は、
前記判定手段によって判定された結果、前記複数の組み合わせのうち、前記論理回路の遅延値が前記複合セルの遅延値以上となる組み合わせが占める割合を算出し、
前記判定手段は、
前記算出手段によって算出された割合が予め設定された閾値以上であるか否かを判定することを特徴とする付記４または５に記載のセルライブラリ検証プログラム。
【０１４７】
（付記７）前記コンピュータを、
前記複合セルおよび前記論理回路の遅延値に基づいて、予め設定された範囲の入力スルーを示す第１の軸と、予め設定された範囲の出力負荷を示す第２の軸と、からなる座標平面上に、前記入力スルーと前記出力負荷との組み合わせに対応付けて、前記論理回路の遅延値が前記複合セルの遅延値以上となる分布領域を表わすグラフを作成する作成手段として機能させ、
前記算出手段は、
前記作成手段によって作成されたグラフ上の全領域のうち前記分布領域が占める割合を算出することを特徴とする付記６に記載のセルライブラリ検証プログラム。
【０１４８】
（付記８）前記変更手段は、
前記算出手段によって算出された割合が閾値未満であると判定された場合、前記複合セルを構成するトランジスタの寸法を変更することを特徴とする付記４〜７のいずれか一つに記載のセルライブラリ検証プログラム。
【０１４９】
（付記９）前記変更手段は、
前記算出手段によって算出された割合が閾値未満であると判定された場合、前記論理回路を構成する単純セルのトランジスタの寸法を変更することを特徴とする付記４〜８のいずれか一つに記載のセルライブラリ検証プログラム。
【０１５０】
（付記１０）前記算出手段は、
予め設定された範囲の入力スルーと予め設定された範囲の出力負荷との組み合わせの使用頻度を表わす使用頻度分布に基づいて、前記複数の組み合わせのうち、前記論理回路の遅延値が前記複合セルの遅延値以上となる組み合わせが占める割合を算出することを特徴とする付記６〜９のいずれか一つに記載のセルライブラリ検証プログラム。
【０１５１】
（付記１１）前記算出手段は、
前記使用頻度分布に基づいて、前記作成手段によって作成されたグラフ上の全領域のうち、前記論理回路の遅延値が前記複合セルの遅延値以上となる分布領域が占める割合を算出することを特徴とする付記１０に記載のセルライブラリ検証プログラム。
【０１５２】
（付記１２）付記１〜１１のいずれか一つに記載のセルライブラリ検証プログラムを記録したコンピュータに読み取り可能な記録媒体。
【０１５３】
（付記１３）複数の単純セルの機能を集約した複合セルを保持するセルライブラリの中から、任意の複合セルを抽出する抽出手段と、
前記抽出手段によって抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の遅延値を算出する算出手段と、
前記算出手段によって算出された論理回路の遅延値が前記複合セルの遅延値以上となるか否かを判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とするセルライブラリ検証装置。
【０１５４】
（付記１４）複数の単純セルの機能を集約した複合セルを保持するセルライブラリの中から、任意の複合セルを抽出する抽出工程と、
前記抽出工程によって抽出された複合セルの機能と等価でかつ単純セルの組み合わせからなる論理回路の遅延値を算出する算出工程と、
前記算出工程によって算出された論理回路の遅延値が前記複合セルの遅延値以上となるか否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とするセルライブラリ検証方法。
【図面の簡単な説明】
【０１５５】
【図１】本実施の形態の概要を示す説明図である。
【図２】セルライブラリの記憶内容を示す説明図である。
【図３】本実施の形態にかかるセルライブラリ検証装置のハードウェア構成を示すブロック図である。
【図４】セルライブラリ検証装置の機能的構成を示すブロック図である。
【図５】論理回路の具体例を示す説明図である。
【図６】遅延テーブルの具体例を示す説明図（その１）である。
【図７】出力スルーテーブルの具体例を示す説明図である。
【図８】遅延テーブルの具体例を示す説明図（その２）である。
【図９】遅延テーブルの具体例を示す説明図（その３）である。
【図１０】遅延テーブルの具体例を示す説明図（その４）である。
【図１１】遅延曲面の具体例を示す説明図である。
【図１２】複合セルの利用分布を示す説明図である。
【図１３】ＡＯＩセルのトランジスタ構造を示す説明図である。
【図１４】使用頻度分布の具体例を示す説明図である。
【図１５】セルライブラリ検証処理手順の一例を示すフローチャートである。
【図１６】セルライブラリ検証処理手順の他の一例を示すフローチャートである。
【図１７】遅延値算出処理の処理手順の一例を示すフローチャートである。
【符号の説明】
【０１５６】
２００  セルライブラリ
２００−１〜２００−ｎ  セルデータ
３００  セルライブラリ検証装置
４０１  抽出部
４０２  算出部
４０３  判定部
４０４  変更部
４０５  作成部
４０６  出力部
５００  ネットリスト
５１０，５２０  論理回路
６００，８００，９００，１０００  遅延テーブル
７００  出力スルーテーブル
１３００  ＡＯＩセル
１４００  使用頻度分布
１４１０，１４２０  領域
【図１】
0005050865.tif 000002
【図２】
0005050865.tif 000003
【図３】
0005050865.tif 000004
【図４】
0005050865.tif 000005
【図５】
0005050865.tif 000006
【図６】
0005050865.tif 000007
【図７】
0005050865.tif 000008
【図８】
0005050865.tif 000009
【図９】
0005050865.tif 000010
【図１０】
0005050865.tif 000011
【図１１】
0005050865.tif 000012
【図１２】
0005050865.tif 000013
【図１３】
0005050865.tif 000014
【図１４】
0005050865.tif 000015
【図１５】
0005050865.tif 000016
【図１６】
0005050865.tif 000017
【図１７】
0005050865.tif 000018