(57)【要約】【課題】設計作業に要する時間を短くすることができる集積回路設計装置及び集積回路の設計プログラムを提供すること。【解決手段】本発明は、記憶部１、レイアウト部２、演算部３及び表示部４を有する。記憶部１は、ゲートレベルネットリスト１１、タイミング制約１２及び遅延テーブル１３が予め記憶される。遅延テーブル１３は、回路に配置されるセルのファンアウト数及びセルに接続される配線の長さに対応する最小の遅延が格納される。レイアウト部２は、ゲートレベルネットリスト１１及びタイミング制約１２に基づきセルレイアウトを生成し、それぞれのセルのファンアウト数とセルに接続される配線の長さとを算出する。演算部３は、算出したファンアウト数及び配線の長さに対応する遅延を遅延テーブル１３から読み出し、セルレイアウトがセットアップタイムを満たすか否かの検証を行う。表示部４は、検証結果１４を視認可能な状態で表示する。【選択図】図１
2012008629.tif 000002
【特許請求の範囲】
【請求項１】
回路記述と、タイミング制約と、回路に配置されるセルのファンアウト数及び前記セルに接続される配線の長さに対応する最小の遅延が格納されている遅延テーブルと、が予め記憶された記憶部と、
前記回路記述及び前記タイミング制約に基づいてセルレイアウトを生成するとともに、当該セルレイアウトのそれぞれのセルのファンアウト数と、前記それぞれのセルに接続される配線の長さと、を算出するレイアウト部と、
算出した前記ファンアウト数及び前記配線の長さに対応する前記遅延を前記遅延テーブルから読み出し、当該遅延に応じて前記セルレイアウトがセットアップタイムを満たすか否かの検証を行う演算部と、
前記検証の結果を視認可能な状態で表示する表示部と、を備える、
集積回路設計装置。
【請求項２】
前記遅延テーブルは、前記回路に配置されるセルの種類に対応した複数のテーブルにより構成されることを特徴とする、
請求項１に記載の集積回路設計装置。
【請求項３】
前記演算部は、
第１の配線の長さに対応する第１の遅延と、前記第１の配線の長さよりも長い第２の配線の長さに対応する第２の遅延と、を読み込み、
前記第１の遅延及び前記前記第２の遅延を内挿することにより、前記第１の配線の長さよりも長く、前記第２の配線の長さよりも短い、第３の配線の長さに対応する第３の遅延を算出することを特徴とする、
請求項１又は２に記載の集積回路設計装置。
【請求項４】
前記回路記述は、ゲートレベルネットリストであることを特徴とする、
請求項１乃至３のいずれか一項に記載の集積回路設計装置。
【請求項５】
回路記述及びタイミング制約を記憶部から読み出す処理と、
前記回路記述及び前記タイミング制約に基づいてセルレイアウトを生成する処理と、
当該セルレイアウトのそれぞれのセルのファンアウト数と、前記それぞれのセルに接続される配線の長さと、を算出する処理と、
算出した前記ファンアウト数及び前記配線の長さに対応する最小の遅延を、前記記憶部に記憶された遅延テーブルから読み出す処理と、
当該遅延に応じて前記セルレイアウトがセットアップタイムを満たすか否かの検証を行い、前記検証結果を前記記憶部に書き込む処理と、
前記検証結果を視認可能な状態で表示部に表示する処理と、をコンピュータに実行させる、
集積回路の設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路設計装置及び集積回路の設計プログラムに関し、特に効率的な設計が可能な集積回路設計装置に関する。
【背景技術】
【０００２】
半導体集積回路の設計では、回路記述に基づいてレイアウト処理を行い、その後にタイミング検証処理が行われる。このタイミング検証処理では、レイアウト処理後における回路の遅延を算出する（遅延計算）。そして、回路各部における遅延がセットアップタイムを満たすか否かを検証する。レイアウト処理後における回路がセットアップタイムを満たさない場合には、レイアウト段階に戻って、再びレイアウト処理を実行する。あるいは、レイアウト処理よりも上位の論理合成処理又はＲＴＬ記述などの回路記述の作成段階にまで戻って、回路設計を見直す場合も有る。
【０００３】
以下、一般的な半導体集積回路の設計方法について説明する。図５は、一般的な半導体集積回路におけるレイアウト処理及びタイミング検証処理の手順を示すフローチャートである。レイアウト処理においては、初めに、ゲートレベルネットリスト５１に基づいてフロアプランが行われる（ステップＳ５１）。なお、ゲートレベルネットリスト５１は、一般に、設計仕様に基づくＲＴＬ記述が論理合成されることにより作成される。続いて、作成されたフロアプランと設計対象回路に与えるタイミング制約５２と基づいて、セルの初期配置が行われる（ステップＳ５２）。続いて、初期配置後のセルレイアウトに対する最適化が行われる（ステップＳ５３）。ここでいう最適化とは、設計対象回路にセットアップタイムを充足させることを目的として行われる処理である。この最適化では、各セル間の遅延を検討し、必要に応じてバッファ挿入やセルのアップサイジングなどの処理が実行される。
【０００４】
一般に、集積回路の設計においては、セル間の配線の長さに応じて遅延が増大する。図６は、集積回路の設計におけるセル間の配線の長さと遅延との関係を模式的に示すグラフである。図６に示すように、配線の長さが長くなるに従って、遅延の増大が加速される傾向を示す。上述の最適化では、セル配置後の回路レイアウトに対してバッファ挿入などを適宜行うことにより、遅延が小さい領域（例えば、図６の領域Ａ）に遅延を収めている。その後、最適化後の回路レイアウトの配線処理が行われる（ステップＳ５４）。
【０００５】
次に、タイミング検証処理が行われる。タイミング検証処理では、まず、レイアウト後の回路の各パスの遅延を計算する（ステップＳ５５）。続いて、算出した各パスの遅延がセットアップタイムを満たしているか否かを、ＳＴＡ（Static Timing Analysis）により検証し、検証結果５３が得られる（ステップＳ５６）。
【０００６】
また、フロアプランの段階で、各論理ブロック及び各マクロブロックの間の遅延を考慮する設計方法も提案されている（特許文献１）。この方法では、フロアプランでの各ブロック間の配線の長さから遅延を計算する。そして、算出した遅延が設計仕様を満たすか否かを判断することにより、フロアプランの合理性を判断する。これにより、フロアプラン段階でタイミングエラーを検出できるので、効率的な設計を行うことができるとしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３２３６４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、発明者らは、上述の設計手法には以下の問題点が存在することを見出した。上述の設計手法では、初期配置後の最適化が必要である。最適化においては、セル配置後の回路レイアウトの各部分を参照して、バッファ挿入やセルのアップサイジングなどを逐一行わなければならない。そのため、最適化には長時間を要することとなる。
【０００９】
つまり、上述の方法では、タイミング検証を行う前に、長時間の最適化を行わなければならない。そのため、ＳＴＡにおいてタイミングエラーが発見され、最適化よりも前の段階（例えばフロアプラン）から設計作業をやり直す場合に、最適化に要した時間は時間ロスとなる。従って、タイミング検証の前に最適化を行うことは、設計作業時間の延伸に繋がってしまう。
【課題を解決するための手段】
【００１０】
本発明の一態様である集積回路設計装置は、回路記述と、タイミング制約と、回路に配置されるセルのファンアウト数及び前記セルに接続される配線の長さに対応する最小の遅延が格納されている遅延テーブルと、が予め記憶された記憶部と、前記回路記述及び前記タイミング制約に基づいてセルレイアウトを生成するとともに、当該セルレイアウトのそれぞれのセルのファンアウト数と、前記それぞれのセルに接続される配線の長さと、を算出するレイアウト部と、算出した前記ファンアウト数及び前記配線の長さに対応する前記遅延を前記遅延テーブルから読み出し、当該遅延に応じて前記セルレイアウトがセットアップタイムを満たすか否かの検証を行う演算部と、前記検証の結果を視認可能な状態で表示する表示部と、を備えるものである。本発明の一態様である集積回路設計装置では、前記セルレイアウトの遅延を最小化した場合に、前記セルレイアウトがセットアップタイムを満たすか否かを確認することができる。これにより、最適化を行わずにセットアップタイムを満たせない箇所を検出することができるので、高速かつ効率的に回路設計を行うことが可能となる。
【００１１】
本発明の一態様である集積回路の設計プログラムは、回路記述及びタイミング制約を記憶部から読み出す処理と、前記回路記述及び前記タイミング制約に基づいてセルレイアウトを生成する処理と、当該セルレイアウトのそれぞれのセルのファンアウト数と、前記それぞれのセルに接続される配線の長さと、を算出する処理と、算出した前記ファンアウト数及び前記配線の長さに対応する最小の遅延を、前記記憶部に記憶された遅延テーブルから読み出す処理と、当該遅延に応じて前記セルレイアウトがセットアップタイムを満たすか否かの検証を行い、前記検証の結果を前記記憶部に書き込む処理と、前記検証結果を視認可能な状態で表示部に表示する処理と、をコンピュータに実行させるものである。本発明の一態様である集積回路の設計プログラムでは、前記セルレイアウトの遅延を最小化した場合に、前記セルレイアウトがセットアップタイムを満たすか否かを確認することができる。これにより、最適化を行わずにセットアップタイムを満たせない箇所を検出することができるので、高速かつ効率的に回路設計を行うことが可能となる。
【発明の効果】
【００１２】
本発明によれば、設計作業に要する時間を短くすることができる集積回路設計装置及び集積回路の設計プログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかる集積回路設計装置１００の構成を示す構成図である。
【図２】実施の形態１にかかる集積回路設計装置１００の動作を示すフローチャートである。
【図３】実施の形態１にかかるセルレイアウト３００の例を示す構成図である。
【図４】実施の形態１にかかる遅延テーブル１３の例を示す図である。
【図５】一般的な半導体集積回路におけるレイアウト処理及びタイミング検証処理の手順を示すフローチャートである。
【図６】集積回路の設計におけるセル間の配線の長さと遅延との関係を模式的に示すグラフである。
【発明を実施するための形態】
【００１４】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。まず、実施の形態１にかかる集積回路設計装置１００について説明する。図１は、集積回路設計装置１００の構成を示す構成図である。集積回路設計装置１００は、記憶部１、レイアウト部２及び演算部３及び表示部４により構成される。
【００１５】
記憶部１には、ゲートレベルネットリスト１１、タイミング制約１２、遅延テーブル１３及び検証結果１４が記憶されている。ゲートレベルネットリスト１１は、集積回路の記述言語により表現される回路記述である。タイミング制約１２は、回路記述（ゲートレベルネットリスト１１）に応じてセル配置を行う際のタイミング条件が記述されたものである。ゲートレベルネットリスト１１、タイミング制約１２及び遅延テーブル１３は、レイアウト部２や演算部３により、必要に応じて読み出される。
【００１６】
レイアウト部２は、ゲートレベルネットリスト１１及びタイミング制約１２に基づいて、フリップフロップやバッファなどのセルの初期配置を行い、セルレイアウトを生成する。そして、レイアウト部２は、各セルのファンアウト数と、接続されるセル間の配線の長さと、を算出する。
【００１７】
演算部３は、レイアウト部２で算出されたセルのファンアウト数及び配線の長さに基づいて、セル及び配線により生じる遅延を算出する（遅延計算）。そして、例えばＳＴＡにより、遅延計算により算出された遅延がセットアップタイムを満たすか否かを判定し、検証結果１４を記憶部１に書き込む。
【００１８】
表示部４は、記憶部１に記憶されている検証結果１４を読み出して、タイミング検証の結果を視認可能な状態で表示する。
【００１９】
次に、集積回路設計装置１００の動作について説明する。図２は、集積回路設計装置１００の動作を示すフローチャートである。図２に示すように、集積回路設計装置１００では、レイアウト部２が、記憶部１からゲートレベルネットリスト１１及びタイミング制約１２を読み込み、レイアウト処理（ステップＳ１）が行われる。このステップＳ１では、初めに、ゲートレベルネットリスト１１に基づいて、フロアプランを行う（ステップＳ１１）。続いて、フロアプラン結果とタイミング制約１２とに基づいて、セルの初期配置を行い、セルレイアウト３００を生成する。そして、各セルのファンアウト数及びセル間の配線の長さを算出する（ステップＳ１２）。
【００２０】
図３は、セルレイアウト３００の例を示す構成図である。図２におけるセルレイアウト３００は、入力ＩＮと出力ＯＵＴとの間に配置される、フリップフロップＦＦ１〜４及びバッファＢ１〜４により構成される。各フリップフロップ間には、タイミング制約１２に基づいてバッファが挿入される。
【００２１】
フリップフロップＦＦ１の入力は、入力ＩＮと接続される。フリップフロップＦＦ１の出力は、バッファＢ１を介して、フリップフロップＦＦ２の入力と接続される。フリップフロップＦＦ２の出力は、バッファＢ２を介して、フリップフロップＦＦ３の入力と接続される。さらに、フリップフロップＦＦ２の出力は、バッファＢ３を介して、フリップフロップＦＦ４の入力と接続される。フリップフロップＦＦ３の出力は、バッファＢ４を介して、出力ＯＵＴと接続される。フリップフロップＦＦ４の出力は、出力ＯＵＴと接続される。よって、フリップフロップＦＦ２のファンアウト数は２である。一方、フリップフロップＦＦ１、３、４及びバッファＢ１〜４のファンアウト数は１である。
【００２２】
レイアウト部２は、例えば、セルレイアウト３００に基づいて、ファンアウト数と配線の長さを算出する。ここで、図２の領域ｐ１を例として説明する。領域ｐ１は、バッファＢ１と、ドライブピンＤＰから次段のフリップフロップＦＦ２のリーフピンＬＰまでの間の配線Ｗ１と、が含まれる。領域ｐ１の場合では、ファンアウト数は１であり、配線の長さは配線Ｗ１の長さとなる。なお、図２では、記載を簡略化するため、ドライブピンＤＰ及びリーフピンＬＰ以外の他のドライブピン及びリーフピンを省略している。
【００２３】
なお、例えば、上述の領域ｐ１では、セル及び当該セルの出力側配線の組み合わせにより構成されている。しかし、組み合わせはこれに限られるものではなく、例えば、セル及び当該セルの入力側配線の組み合わせにより構成されてもよい。
【００２４】
次いで、演算部３において、タイミング検証処理（ステップＳ２）を行う。演算部３は、各セルのファンアウト数と各セルに接続される配線の長さとに基づいて、遅延テーブル１３から対応する遅延を読み込み、遅延計算を行う（ステップＳ２１）。
【００２５】
ここで、遅延テーブル１３について説明する。遅延テーブル１３は、セルの種類、セルのファンアウト数及びセルに接続される配線の長さに応じた遅延が格納されている。すなわち、遅延テーブル１３に格納される遅延は、セルの種類ごとに、セルのファンアウト数とセルに接続される配線の長さとのマトリックスとして格納される。なお、遅延テーブル１３には、セル及び配線で生じる遅延の最小の値が格納される。図２の領域ｐ１を例とすると、配線Ｗ１に別のバッファを挿入することなどにより、遅延を最小化することができる。換言すれば、遅延テーブル１３には、セルの種類、セルのファンアウト数及びセルに接続される配線の長さに応じて、局所的な最適化を行った場合の遅延が格納されている。
【００２６】
なお、遅延テーブル１３は、回路設計の先だって作成され、記憶部１に格納される。従って、集積回路設計装置１００において、上述の局所的な最適化が行われることはない。
【００２７】
図４は、遅延テーブル１３の例を示す図である。遅延テーブル１３は、セルの種類ごとにテーブルが用意される。遅延テーブル１３には、セル（フリップフロップ又はバッファ）のファンアウト数と、そのセルのドライブピンから次段のセルのリーフピンまでの間の配線の長さと、に応じた遅延が格納される。上述のように、遅延テーブル１３には、セル（フリップフロップ又はバッファ）と、そのセルのドライブピンから次段のセルのリーフピンまでの間の配線と、により生じる遅延の最小値が格納される。
【００２８】
演算部３は、遅延テーブル１３から読み込んだ遅延を、対象となるセル及び配線の遅延として取り扱う。この際、演算部３は、遅延テーブル１３から読み込んだ遅延を対象となるセルの遅延として取り扱い、対象となる配線の遅延を「０」として取り扱うことが可能である。また、演算部３は、遅延テーブル１３から読み込んだ遅延を対象となる配線の遅延として取り扱い、対象となるセルの遅延を「０」として取り扱うことも可能である。
【００２９】
遅延テーブル１３には、想定され得るファンアウト数と配線の長さとの組み合わせの全てに対する遅延を格納してもよい。しかし、組み合わせの数が多くなると、遅延テーブル１３の情報量が大きくなってしまう。そこで、特定のファンアウト数と配線の長さとの組み合わせについて記憶された遅延を内挿することにより、任意のファンアウト数と配線の長さとの組み合わせに対応する遅延を求めることも可能である。例えば、図３において、ファンアウト数１のバッファで配線の長さが１５ｕｍの場合を想定する。この場合、配線の長さは１０ｕｍと２０ｕｍの中間であるので、このパスの遅延は、以下の式（１）で算出できる。
（５ｎｓｅｃ＋１０ｎｓｅｃ）／２  ＝  ７．５ｎｓｅｃ  ・・・（１）
【００３０】
続いて、演算部３は、遅延テーブルから読み込んだ遅延に基づいて、ＳＴＡによるタイミング検証を行う（ステップＳ２２）。そして、タイミング検証の検証結果１４を、記憶部１に書き込む。
【００３１】
次いで、表示部４は、記憶部１から検証結果１４を読み出して、タイミング検証の結果を視認可能な状態で表示する。
【００３２】
よって、本構成及び方法によれば、生成されたセルレイアウトにおける最小の遅延を求めることができる。これにより、集積回路設計装置１００のユーザは、タイミング検証の対象となったセルレイアウトが、セットアップタイムを満たすことができるか否かを知ることができる。これにより、ユーザは、検証結果に応じて、適宜フロアプランやゲートレベルネットリストの段階で適切な設計変更を行うことが可能である。
【００３３】
また、本構成及び方法では、従来のような最適化を行わずに、タイミング検証が可能である。最適化は回路設計において時間的に大きなウェイトを占めるので、設計変更が生じた場合の時間的損失を削減することができる。これにより、設計作業に要する時間を短くすることができる集積回路設計装置を提供することができる。
【００３４】
さらに、本構成及び方法では、最適化を行わないので、タイミング検証結果がフェイルである場合に、その原因が初期配置後のセルレイアウトに有るのか、又は最適化が不適切であるのかを切り分ける必要が無い。すなわち、最適化起因のフェイル判定を排除し、初期配置後のレイアウトないしは更に前段階のフロアプラン、ゲートレベルネットリストの合理性を判断することが可能となる。
【００３５】
その他の実施の形態
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。すなわち、本発明によれば、設計作業に要する時間を短くすることができる集積回路の設計プログラムを提供することができる。
【００３６】
上述のプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００３７】
図４に示す遅延テーブル１３はあくまで例示である。従って、遅延テーブル１３は、セル（フリップフロップ又はバッファ）のファンアウト数と、そのセルのリーフピンから前段のセルのドライブピンまでの間の配線の長さと、に応じた最小の遅延が格納されていてもよい。
【符号の説明】
【００３８】
１  記憶部
２  レイアウト部
３  演算部
４  表示部
１１  ゲートレベルネットリスト
１２  タイミング制約
１３  遅延テーブル
１４  検証結果
５１  ゲートレベルネットリスト
５２  タイミング制約
５３  検証結果
１００  集積回路設計装置
３００  セルレイアウト
Ｂ１〜４  バッファ
ＤＰ  ドライブピン
ＦＦ１〜４  フリップフロップ
ＩＮ  入力
ＬＰ  リーフピン
ＯＵＴ  出力
ｐ１  領域
Ｓ１、Ｓ２、Ｓ１１、Ｓ１２、Ｓ２１、Ｓ２２、Ｓ５１〜５６  ステップ
Ｗ１  配線
【図１】
2012008629.tif 000003
【図２】
2012008629.tif 000004
【図３】
2012008629.tif 000005
【図４】
2012008629.tif 000006
【図５】
2012008629.tif 000007
【図６】
2012008629.tif 000008