(57)【要約】【課題】ＣＴＳが実施されていないネットリストでのＳＴＡにおける解析の精度を向上させる。【解決手段】コンピュータによる半導体回路の静的タイミング解析方法であって、前記コンピュータが、前記半導体回路の回路設計情報から論理セルの相互接続関係に置き換える論理合成により得られた出力情報の物理的な配置配線を行う前に、前記出力情報と、前記論理合成で使用される入力情報とを参照し、前記半導体回路内のドライバセルの出力に接続される負荷の合計である負荷容量を算出し、前記負荷の合計負荷容量が所定値以下となるまで、前記ドライバセルの後段に複数のドライバセルを接続してツリーを構成し、前記ツリーの段数と、前記入力情報と基づき、信号が前記ツリーを通過するのに掛かる伝搬遅延時間を算出する。【選択図】図６
2016134083.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによる半導体回路の静的タイミング解析方法であって、
前記コンピュータが、
前記半導体回路の回路設計情報から論理セルの相互接続関係に置き換える論理合成により得られた出力情報の物理的な配置配線を行う前に、前記出力情報と、前記論理合成で使用される入力情報とを参照し、前記半導体回路内のドライバセルの出力に接続される負荷の合計である負荷容量を算出し、
前記負荷の合計負荷容量が所定値以下となるまで、前記ドライバセルの後段に複数のドライバセルを接続してツリーを構成し、
前記ツリーの段数と、前記入力情報と基づき、信号が前記ツリーを通過するのに掛かる伝搬遅延時間を算出する静的タイミング解析方法。
【請求項２】
前記所定値は、
前記ドライバセルの最大許容負荷容量であるか、又は予め設定された許容負荷量である請求項１記載の静的タイミング解析方法。
【請求項３】
前記複数のドライバセルの数は、任意に設定される請求項１又は２記載の静的タイミング解析方法。
【請求項４】
前記半導体回路におけるタイミングの制約条件を示すタイミング制約情報を参照し、
前記タイミング制約情報に基づく所定の負荷を除外した負荷容量を、前記ドライバセルの出力に接続される負荷の合計とする請求項１乃至３の何れか一項に記載の静的タイミング解析方法。
【請求項５】
前記信号はクロック信号であり、前記ドライバセルは前記クロック信号を伝搬させる請求項１乃至４の何れか一項に記載の静的タイミング解析方法。
【請求項６】
前記信号はクロック信号以外の信号であり、前記ドライバセルは前記クロック信号以外の信号を伝搬させる請求項１乃至４の何れか一項に記載の静的タイミング解析方法。
【請求項７】
請求項１乃至６の何れか一項に記載の静的タイミング解析方法を実行する静的タイミング解析装置。
【請求項８】
請求項７記載の静的タイミング解析装置を有し、
前記静的タイミング解析装置による静的タイミング解析を行った後に、前記出力情報の物理的な配置配線を行う自動配置配線装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路チップ内の静的タイミング解析方法、静的タイミング解析装置及び自動配置配線装置に関する。
【背景技術】
【０００２】
従来から、ＬＳＩ（Large Scale Integrated Circuit）の設計において、設計回路をVerilog-HDL等のハードウェア記述言語によりレジスタ転送レベルで記述し、このネットリストを自動配置配線することが知られている。
【０００３】
ネットリストにおいては、複数のフリップフロップと論理ゲートと呼ばれる組み合わせ回路の相互接続として電子回路が表現され、複数のフリップフロップが同一のクロックによって駆動されることにより所望の回路動作を実現する。従来では、自動配置配線の工程において、クロック分配回路を生成するＣＴＳ（clock tree synthesis）を行って、複数のフリップフロップに同一のクロックを供給する。
【０００４】
ところで、回路上のタイミングを検証する手法の１つとして、静的タイミング解析（Static Timing Analysis：STA）と呼ばれる方法がある。通常、ＳＴＡは、自動配置配線後のネットリスト及びレイアウト上の配線から抽出した寄生成分を考慮して遅延情報に基づくタイミング制約が設定され、自動配置配線の結果の検証として実施される。
【０００５】
また、ＳＴＡは、自動配置配線前にタイミング制約の内容を検証する目的で、自動配置配線前にも実施される。タイミング制約は、自動配置配線時の最適化仕様としても使用されるためである。
【０００６】
自動配置配線前に実施されるＳＴＡでは、自動配置配線の工程で実施されるＣＴＳが実施されていないため、出力数の大きいドライバの出力遅延は、仮想配線容量等から計算される。
【０００７】
出力遅延を仮想配線容量のみで計算した場合、通常はライブラリ中のテーブルで想定されている負荷容量を大きく超えた容量が接続されていることになる。したがって、従来のＳＴＡでは、このドライバの出力遅延を理想的に"０"として扱ったり、仮に最少の負荷容量で出力遅延を計算したり、経験上予め見積もられた数値をライブラリ値として定義した特別なセルに置き換える等して解析を実施している。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来では、自動配置配線前のＳＴＡにおいて、遅延を理想的に"０"としたり、最少遅延としたりしているため、自動配置配線前のＳＴＡの結果と、実際にＣＴＳを実施した後のＳＴＡの結果との差異が大きく、タイミング制約の最適化としてはふさわしくない。
【０００９】
また大規模な回路になれば、クロック以外の部分についても、所謂HighFanoutNetが無数に発生するため、これらを全てセルに置き換えるという作業に大きな工数が発生してしまう。
【００１０】
開示の技術では、ＣＴＳが実施されていないネットリストでのＳＴＡにおける解析の精度を向上させることを目的としている。
【課題を解決するための手段】
【００１１】
開示の技術は、コンピュータによる半導体回路の静的タイミング解析方法であって、前記コンピュータが、前記半導体回路の回路設計情報から論理セルの相互接続関係に置き換える論理合成により得られた出力情報の物理的な配置配線を行う前に、前記出力情報と、前記論理合成で使用される入力情報とを参照し、前記半導体回路内のドライバセルの出力に接続される負荷の合計である負荷容量を算出し、前記負荷の合計負荷容量が所定値以下となるまで、前記ドライバセルの後段に複数のドライバセルを接続してツリーを構成し、前記ツリーの段数と、前記入力情報と基づき、信号が前記ツリーを通過するのに掛かる伝搬遅延時間を算出する。
【発明の効果】
【００１２】
開示の技術によれば、ＣＴＳが実施されていないネットリストでのＳＴＡにおける解析の精度を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】第一の実施形態の静的タイミング解析装置を含むシステムを説明する図である。
【図２】第一の実施形態の静的タイミング解析装置のハードウェア構成の一例を示す図である。
【図３】ＳＴＡ部の機能構成を説明する図である。
【図４】静的タイミング解析装置を含むシステムの動作を説明するフローチャートである。
【図５】第一の実施形態のＳＴＡ部の処理を説明するフローチャートである。
【図６】第一の実施形態の遅延予測の処理を説明する第一のフローチャートである。
【図７】クロックツリーの段数の追加を説明する図である。
【図８】セルライブラリの遅延テーブルの一例を示す図である。
【図９】第一の実施形態の遅延予測の処理を説明する第二のフローチャートである。
【図１０】第一の実施形態の遅延予測の処理を説明する第三のフローチャートである。
【図１１】第二の実施形態の遅延予測の処理を説明する第一のフローチャートである。
【図１２】第二の実施形態の遅延予測の処理を説明する第二のフローチャートである。
【図１３】ツリーの段数の追加を説明する図である。
【図１４】変形例の自動配置配線装置を示す図である。
【発明を実施するための形態】
【００１４】
以下の実施形態では、配置配線が行われていないネットリストでの静的タイミング解析（Static Timing Analysis）において、配置配線で実施されるであろうＣＴＳ（Clock Tree Synthesis）の結果生じるクロックツリー遅延を予め見積もって解析を行うことで、ＳＴＡにおけるタイミング解析の精度を向上させる。
【００１５】
（第一の実施形態）
以下に図面を参照して第一の実施形態について説明する。図１は、第一の実施形態の静的タイミング解析装置を含むシステムを説明する図である。
【００１６】
本実施形態のシステム１は、サーバ１０と、論理合成装置２０と、静的タイミング解析装置３０と、自動配置配線装置４０と、を有する。
【００１７】
サーバ１０は、セルライブラリデータベース１１０、タイミング制約データベース１２０、ＲＴＬ（Register Transfer Level）データベース１３０、ネットリストデータベース１４０、レイアウトデータベース１５０を有する。
【００１８】
論理合成装置２０は、論理合成部２１０、ネットリスト出力部２２０を有する。静的タイミング解析装置３０は、ＳＴＡ部２３０を有する。自動配置配線装置４０は、自動配置配線部２４０、レイアウト出力部２５０を有する。
【００１９】
本実施形態の各装置は、サーバ１０の有する各データベースを参照し、各装置の有する各部の処理を実行する。
【００２０】
以下に、サーバ１０の有する各データベースについて説明する。
【００２１】
セルライブラリデータベース１１０には、スタンダードセルやマクロセルを含むレイアウトデータ、端子位置、サイズ、論理情報等を含むライブラリ情報が格納されている。このライブラリ情報は、ライン幅、スペース幅、ライン間隔等の、各レイヤやレイヤ間で満たすべき論理的、物理的規則に関する情報も含む。
【００２２】
タイミング制約データベース１２０には、回路を設計通りに動作させるために素子間に要求される遅延時間の制約条件を示すタイミング制約情報が格納されている。
【００２３】
ＲＴＬデータベース１３０には、設計回路をVerilog-HDL等のハードウェア記述言語によりレジスタ転送レベルで記述した記述データが格納されている。
【００２４】
ネットリストデータベース１４０には、レジスタ転送レベルで記述された回路を論理合成したネットリストが格納されている。ネットリストは、電子回路における端子間の接続情報を示すデータである。ネットリストデータベース１４０に格納されるネットリストは、後述するネットリスト出力部２２０により出力される。
【００２５】
レイアウトデータベース１５０には、後述する自動配置配線部２４０により自動配置配線され、レイアウト出力部２５０により出力されたレイアウトデータが格納される。レイアウトデータとは、回路の物理配置と配線の情報である。
【００２６】
次に、本実施形態の各装置の有する各部の機能について説明する。
【００２７】
本実施形態の論理合成装置２０において、論理合成部２１０は、セルライブラリデータベース１１０、タイミング制約データベース１２０、ＲＴＬデータベース１３０を参照し、回路設計情報から論理セルの相互接続関係に置き換える論理合成を行う。すなわち、本実施形態では、セルライブラリデータベース１１０に格納されたライブラリ情報、タイミング制約データベース１２０に格納されたタイミング制約情報、ＲＴＬデータベース１３０に格納された記述データを入力情報として、論理合成を行う。
【００２８】
ネットリスト出力部２２０は、論理合成の結果をセルライブラリに登録されたセルの接続関係のみが記述されたネットリストに変換して出力し、ネットリストデータベース１４０に格納する。このネットリストは、タイミング制約データベース１２０に格納されたタイミング制約情報に沿うようにセルが組み合わされている。すなわち、本実施形態では、ネットリスト出力部２２０から出力されるネットリストが、論理合成の結果として出力される出力情報である。
【００２９】
本実施形態の静的タイミング解析装置３０において、ＳＴＡ部２３０は、自動配置配線時のタイミング制約の最適化を行うための静的タイミング解析を行う。すなわち、本実施形態のＳＴＡ部２３０は、自動配置配線部２４０による自動配置配線の工程の前に静的タイミング解析を実行する。
【００３０】
より具体的には、ＳＴＡ部２３０は、セルライブラリデータベース１１０と、タイミング制約データベース１２０と、ネットリストデータベース１４０とを参照し、これらの各データベースに格納された情報のみで、ＣＴＳ（Clock Tree Synthesis）遅延を予測する。本実施形態のＳＴＡ部２３０の詳細は後述する。
【００３１】
本実施形態の自動配置配線装置４０において、自動配置配線部２４０は、ネットリストデータベース１４０を参照し、自動配置配線を行う。レイアウト出力部２５０は、自動配置配線の結果のレイアウトデータを出力し、レイアウトデータベース１５０へ格納する。
【００３２】
以下に、本実施形態の特徴である静的タイミング解析装置３０について、さらに説明する。本実施形態の静的タイミング解析装置３０は、配置配線が行われていないネットリストでの静的タイミング解析を行う。言い換えれば、本実施形態の静的タイミング解析装置３０は、仮想配線容量での静的タイミング解析を行う。
【００３３】
図２は、第一の実施形態の静的タイミング解析装置のハードウェア構成の一例を示す図である。
【００３４】
本実施形態の静的タイミング解析装置３０は、それぞれバスＢで相互に接続されている入力装置１１、出力装置１２、ドライブ装置１３、補助記憶装置１４、メモリ装置１５、演算処理装置１６及びインターフェース装置１７を含む。
【００３５】
入力装置１１はキーボードやマウス等を含み、各種信号を入力するために用いられる。出力装置１２はディスプレイ装置等を含み、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置１７は、モデム、ＬＡＮカード等を含み、ネットワークに接続する為に用いられる。
【００３６】
静的タイミング解プログラムは、静的タイミング解析装置３０を制御する各種プログラムの少なくとも一部である。静的タイミング解析プログラムは例えば記録媒体１８の配布やネットワークからのダウンロードなどによって提供される。静的タイミング解析プログラムを記録した記録媒体１８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３７】
また、静的タイミング解析装置３０は、静的タイミング解析プログラムを記録した記録媒体１８がドライブ装置１３にセットされると、静的タイミング解析プログラムを記録媒体１８からドライブ装置１３を介して補助記憶装置１４にインストールする。ネットワークからダウンロードされた静的タイミング解析プログラムは、インターフェース装置１７を介して補助記憶装置１４にインストールされる。
【００３８】
補助記憶装置１４は、インストールされた静的タイミング解析プログラムを格納すると共に、必要なファイル、データ等を格納する。メモリ装置１５は、コンピュータの起動時に補助記憶装置１４から静的タイミング解析プログラムを読み出して格納する。そして、演算処理装置１６はメモリ装置１５に格納された静的タイミング解析プログラムに従って、後述するような各種処理を実現している。
【００３９】
尚、本実施形態の論理合成装置２０と自動配置配線装置４０は、一般的なコンピュータであり、そのハードウェア構成は、図２に示す静的タイミング解析装置３０と同様であるから説明を省略する。
【００４０】
次に、図３を参照してＳＴＡ部２３０について説明する。図３は、ＳＴＡ部の機能構成を説明する図である。
【００４１】
本実施形態のＳＴＡ部２３０は、回路構造解析部２３１、タイミング制約取得部２３２、ＣＴＳ遅延予測部２３３、タイミングパス解析部２３４、レポート出力部２３５を有する。
【００４２】
回路構造解析部２３１は、セルライブラリデータベース１１０からセルライブラリを読み込み、ネットリストデータベース１４０からネットリストを読み込み、回路構造を解析する。
【００４３】
タイミング制約取得部２３２は、タイミング制約データベース１２０から、タイミング制約情報を取得する。
【００４４】
ＣＴＳ遅延予測部２３３は、回路構造とタイミング制約に基づき、ＣＴＳ遅延を予測する。すなわち、ＣＴＳ遅延予測部２３３は、クロックを分配するクロック分配回路の生成における遅延時間を予測する。ＣＴＳ遅延予測部２３３の詳細は後述する。
【００４５】
タイミングパス解析部２３４は、タイミング制約と、ＣＴＳ遅延予測部２３３による遅延予測の結果に応じて、タイミングパスを解析する。
【００４６】
レポート出力部２３５は、タイミングパスの解析結果をレポートとして出力する。出力されたレポートは、例えばメモリ装置１５等に一時的に保持されても良い。
【００４７】
以下に、ＣＴＳ遅延予測部２３３について説明する。本実施形態のＣＴＳ遅延予測部２３３は、ドライバ抽出部２３６、ファンアウト数解析部２３７、負荷容量算出部２３８、ドライバ追加部２３９を有する。
【００４８】
ドライバ抽出部２３６は、回路構造解析部２３１による解析結果から、回路においてクロック信号を伝達するドライバを抽出する。ファンアウト数解析部２３７は、クロック信号のドライバにおけるファンアウト（Fanout）を求める。
【００４９】
負荷容量算出部２３８は、ドライバの出力に接続される全ての負荷容量を算出し、算出した負荷容量の値が、セルライブラリデータベース１１０に格納されているドライバセルの最大許容量を超えるか否かを判定する。ここで、負荷容量値算出部２３８は、負荷容量値に代わり、ファンアウト数に基づき、最大ファンアウト数を超えるか否かの判定に置き換えても良い。尚、ファンアウトとは、ドライバの出力に接続されるセルであり、接続されるセルの大きさによって、１より大きい値を持ち得る。最大ファンアウト数は、ドライバの出力に接続できる最大のファンアウト数である。
【００５０】
ドライバ追加部２３９は、負荷容量の値が最大許容量を超えるとき、クロック分配回路におけるドライバの段数を後段に一段追加する。このとき、ドライバ追加部２３９は、１つのドライバの後段に複数のドライバを追加する。
【００５１】
本実施形態では、このように、ドライバの段数を一段増やすことで、ファンアウト数を減らし、ドライバセル１つにつき接続される負荷容量の値を減少させることができる。
【００５２】
次に、本実施形態の静的タイミング解析装置３０を含むシステム１の動作について説明する。図４は、静的タイミング解析装置を含むシステムの動作を説明するフローチャートである。
【００５３】
本実施形態のシステム１において、論理合成装置２０は、論理合成の実行指示を受け付けると、論理合成部２１０により、セルライブラリデータベース１１０と、タイミング制約データベース１２０と、ＲＴＬデータベース１３０を参照し、論理合成を行う（ステップＳ４１）。続いて論理合成装置２０は、ネットリスト出力部２２０により、論理合成の結果をネットリストとして出力し、ネットリストデータベース１４０へ格納する（ステップＳ４２）。
【００５４】
次に、静的タイミング解析装置３０は、ＳＴＡの実行指示を受け付けると、ＳＴＡ部２３０により、セルライブラリデータベース１１０と、タイミング制約データベース１２０を参照し、静的タイミング解析を行う（ステップＳ４３）。続いて自動配置配線装置４０は、自動配置配線の実行指示を受け付けると、自動配置配線部２４０により、自動配置配線を行い（ステップＳ４４）、レイアウト出力部２５０によりその結果を出力してレイアウトデータベース１５０に格納する（ステップＳ４５）。
【００５５】
次に、図５を参照して、本実施形態の静的タイミング解析装置３０におけるＳＴＡ部２３０の処理について説明する。図５は、第一の実施形態のＳＴＡ部の処理を説明するフローチャートである。
【００５６】
本実施形態のＳＴＡ部２３０は、回路構造解析部２３１により、ネットリストデータベース１４０に格納されたネットリストと、セルライブラリデータベース１１０に格納されたセルに関する情報を読み込む（ステップＳ５０１）。尚、ここで読み込まれるセルに関する情報は、ネットリストにおいて接続関係が定義されたセルに関する情報である。続いて回路構造解析部２３１は、ネットリストにより示される回路構造を解析する（ステップＳ５０２）。
【００５７】
続いてＳＴＡ部２３０は、タイミング制約取得部２３２により、タイミング制約データベース１２０からタイミング制約情報を読み込む（ステップＳ５０３）。続いてＳＴＡ部２３０は、ＣＴＳ遅延予測部２３３は、クロックの遅延予測を行う（ステップＳ５０４）。
【００５８】
続いてＳＴＡ部２３０は、タイミングパス解析部２３４により、遅延予測の結果に基づくタイミングパスの解析を行い（ステップＳ５０５）、その結果をタイミングレポート５１として出力する（ステップＳ５０６）。
【００５９】
次に、図６を参照してＣＴＳ遅延予測部２３３による遅延予測の処理を説明する。図６は、第一の実施形態の遅延予測の処理を説明する第一のフローチャートである。
【００６０】
本実施形態のＣＴＳ遅延予測部２３３は、ドライバ抽出部２３６により、回路解析結果からドライバを抽出する（ステップＳ６０１）。続いてＣＴＳ遅延予測部２３３は、ファンアウト数解析部２３７により、ドライバの最大ファンアウト数を解析する（ステップＳ６０２）。
【００６１】
次に、ＣＴＳ遅延予測部２３３は、負荷容量算出部２３８により、最大ファンアウト数に基づきドライバの出力に接続される全ての負荷容量を算出する（ステップＳ６０３）。
【００６２】
続いて負荷容量算出部２３８は、算出した負荷容量の値がセルライブラリデータベース１１０に格納されているドライバセルの最大許容量（max_capacitance）を超えるか否かを判定する（ステップＳ６０４）。
【００６３】
ステップＳ６０４において、最大許容量を超える場合、ドライバ追加部２３９は、クロックを分配するためのクロックツリーの段数を一段追加する（ステップＳ６０５）。ここでは、ドライバ追加部２３９は、１つのドライバの後段に接続されるドライバの数Ｎを２とした。尚、１つのドライバセルの後段に接続するドライバの数Ｎを任意の数であり、例えば静的タイミング解析装置３０の利用者により設定される値とした。
【００６４】
そして、負荷容量算出部２３８は、ステップＳ６０３で算出した負荷容量の値を、接続したドライバの個数Ｎで除算し（ステップＳ６０６）、ステップＳ６０３へ戻る。
【００６５】
ステップＳ６０４において、算出した負荷容量の値が最大許容量内である場合、ＣＴＳ遅延予測部２３３はクロックツリーの段数分の遅延時間をこのクロックの遅延予測値として算出し（ステップＳ６０７）、処理を終了する。より具体的には、ＣＴＳ遅延予測部２３３は、セルライブラリデータベース１１０とネットリストデータベース１４０を参照し、クロックの伝搬における遅延時間を算出する。
【００６６】
ここで、図７を参照し、クロックツリーの段数の追加について説明する。図７は、クロックツリーの段数の追加を説明する図である。図７（Ａ）は、クロックツリーの段数が追加される前の状態を示しており、図７（Ｂ）は、クロックツリーの段数が追加された状態を示している。
【００６７】
図７（Ａ）では、ドライバ７２の後段に８つのフリップフロップ７３が接続されている。すなわち、ドライバ７２の最大ファンアウト数は８である。この場合に、ドライバ７２に接続された負荷容量の値が、セルライブラリデータベース１１０に格納されたドライバ７２の最大許容量よりも大きい場合、ドライバ７２の後段に、複数のドライバを追加する。
【００６８】
すなわち、ドライバ７２の後段に２つのドライバ８１、８２が接続される。この場合、ドライバ８１、８２のそれぞれに接続されるフリップフロップ７３の数は４つずつとなる。ドライバ８１、８２のファンアウト数は４となる。
【００６９】
したがって、１つのドライバの後段に２つのドライバが接続された場合、ドライバセル１つにつき接続される負荷容量の値が２分割され、１／２となる。
【００７０】
この状態において、負荷容量算出部２３８は、再度ドライバセル１つにつき接続される負荷容量の値を算出し、その結果がセルライブラリデータベース１１０に格納された最大許容量より大きいか否かを判定する。
【００７１】
最大許容量より大きい場合、ドライバ追加部２３９は、ドライバ８１、８２のそれぞれの後段に、ドライバ８３〜８６を追加し、上述したように再度負荷容量を算出して最大許容量との比較を行う。そして、算出した負荷容量の値が最大許容量より小さくなると、ドライバ７２からフリップフロップ７３までの伝搬遅延時間の計算を行う。より具体的には、ＣＴＳ遅延予測部２３３は、ドライバ７２に入力されたクロックがドライバ８３〜８６を出力するまでにかかる時間（伝搬遅延時間）を算出する。
【００７２】
以上のように、本実施形態では、ドライバセル１つにつき接続される負荷容量の値が、セルライブラリデータベース１１０に格納された最大許容量より大きい場合、ドライバセルの後段に複数のドライバを追加し、１つのドライバの負荷容量を削減する。尚、本実施形態では、後段に追加するドライバの数を２つとしたが、これに限定されない。後段に追加するドライバの数は、２以上であれば良く、３つであっても良い。
【００７３】
本実施形態では、後段に接続されるドライバの数Ｎを任意に設定できるようにすることで、負荷の分散の割合を調整することができ、自動配置配線部２４０による自動配置配線において実施されるＣＴＳ遅延予測に近づけることができる。
【００７４】
図８は、セルライブラリの遅延テーブルの一例を示す図である。図８に示す遅延テーブル１８１は、例えばセルライブラリデータベース１１０内に格納されており、ある入力ピンから出力ピンへの遅延時間を示している。
【００７５】
遅延テーブル１８１において、index_1はセルの入力トランジション値を意味しており、index_2はセルの出力負荷容量を意味している。index_2の最後の値(0.0479102)は、このセルの出力最大負荷容量となる。
【００７６】
このセルに、出力最大負荷容量を超える負荷が接続されている場合、このセルの出力の遅延値は、外挿により求められることになりその信頼性が著しく低下するのが一般的である。
【００７７】
これに対し、本実施形態では、セルに接続される負荷が出力最大負荷容量より小さくなるようにするため、タイミング解析の精度を向上させることができる。
【００７８】
尚、本実施形態では、ドライバセル１つにつき接続される負荷容量の値と、最大許容量とを比較するものとして接続したが、これに限定されない。本実施形態では、ドライバセル１つにつき接続される負荷容量と、予め設定された所定の許容量とを比較しても良い。この場合の処理を、図９を参照して説明する。
【００７９】
図９は、第一の実施形態の遅延予測の処理を説明する第二のフローチャートである。
【００８０】
図９のステップＳ９０１からステップＳ９０３までの処理は、図６のステップＳ６０１からステップＳ６０３までの処理と同様であるから、説明を省略する。
【００８１】
ステップＳ９０３に続いて、負荷容量算出部２３８は、算出した負荷容量の値が、指定の許容量（capacitance）以下に収まっているか否かを判定する（ステップＳ９０４）。
【００８２】
ステップＳ９０４において、所定の許容量に収まっていない場合、ドライバ追加部２３９は、クロックツリーの段数を一段追加する（ステップＳ９０５）。ここでは、ドライバ追加部２３９は、１つのドライバの後段にＮ個のドライバを接続させるものとした。
【００８３】
続いて負荷容量算出部２３８は、ステップＳ９０３で算出した負荷容量の値を追加したドライバの数Ｎで除算し（ステップＳ９０６）、ステップＳ９０４へ戻る。
【００８４】
ステップＳ９０７の処理は、図６のステップＳ６０７の処理と同様であるから、説明を省略する。
【００８５】
また、本実施形態では、タイミング制約取得部２３２により取得したタイミング制約情報を考慮して遅延予測値を算出しても良い。タイミング制約情報には、通常はクロックの指定や例外パスの指定等が含まれている。そこで、本実施形態のＣＴＳ遅延予測部２３３は、例外パスとして指定された負荷を遅延予測の対象から除外する。この場合の処理を、図１０を参照して説明する。
【００８６】
図１０は、第一の実施形態の遅延予測の処理を説明する第三のフローチャートである。本実施形態のＣＴＳ遅延予測部２３３は、ドライバ抽出部２３６によりドライバを抽出する（ステップＳ１００１）。続いて、ファンアウト数解析部２３７は、タイミング制約情報からもクロック信号の速度や例外パスの指定を取得し（ステップＳ１００２）、取得した例外パスを除外して、１つのドライバセルのファンアウト数を解析する（ステップＳ１００３）。
【００８７】
図１０のステップＳ１００４からステップＳ１００８までの処理は、図６のステップＳ６０３からステップＳ６０７までの処理と同様であるから、説明を省略する。
【００８８】
以上のように、本実施形態では、ＣＴＳ遅延予測部２３３による遅延予測の処理の段階で、例外パスの負荷を除外することができるため、ＳＴＡにおけるタイミング解析の精度を向上させることができる。
【００８９】
尚、本実施形態では、後段に接続されるドライバの数Ｎを静的タイミング解析装置３０の利用者により設定されるものとしたが、これに限定されない。本実施形態のドライバ数Ｎは、例えばレポート出力部２３５により出力されるレポートに基づき、自動的に変更されても良い。具体的には、例えば、本実施形態の静的タイミング解析装置３０は、予め設定されたドライバ数Ｎとして、ＣＴＳ遅延予測を行った結果のレポートを解析し、解析結果に応じて、ドライバ数Ｎを変更し、再度ＣＴＳ遅延予測を行っても良い。
【００９０】
（第二の実施形態）
以下に、図面を参照して第二の実施形態について説明する。第二の実施形態は、クロック以外の信号について遅延予測を行う点が、第一の実施形態と相違する。よって、以下の第二の実施形態の説明では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
【００９１】
通常、セルライブラリデータベース１１０には、クロック以外の信号についてもひとつのセルが駆動できる許容負荷容量が規定されている。
【００９２】
本実施形態では、セルが、許容負荷容量を超える負荷を駆動する場合には、このセルの出力もＣＳＴ遅延と同様にバッファリングを行い、負荷を軽減させる。
【００９３】
図１１は、第二の実施形態の遅延予測の処理を説明する第一のフローチャートである。
【００９４】
本実施形態において、ドライバ抽出部２３６は、クロック以外の信号のドライバを抽出する（ステップＳ１１０１）。図１１のステップＳ１１０２、ステップＳ１１０３の処理は、図６のステップＳ６０２、ステップＳ６０３の処理と同様であるから説明を省略する。
【００９５】
続いて負荷容量算出部２３８は、ステップＳ１１０３で算出した負荷容量が、ステップＳ１１０１で抽出したドライバセルの、セルライブラリデータベース１１０に格納された最大許容量以下に収まっている否かを判定する（ステップＳ１１０４）。
【００９６】
ステップＳ１１０４において、最大許容量以下に収まっていない場合、ドライバ追加部２３９は、ステップＳ１１０１で抽出したドライバの後段に、複数（Ｎ個）のドライバを接続する（ステップＳ１１０５）。
【００９７】
ステップＳ１１０６とステップＳ１１０７の処理は、図６のステップＳ６０６とステップＳ６０７と同様であるから、説明を省略する。
【００９８】
本実施形態では、図１１の処理により、負荷を分散する際の遅延時間が等しくなる。
【００９９】
また、本実施形態では、例えばタイミング制約情報にクリティカルパスが含まれる場合、
はこのクリティカルパスを除外しても良い。以下に、図１２を参照し、クリティカルパスを除外する場合の処理を説明する。  
図１２は、第二の実施形態の遅延予測の処理を説明する第二のフローチャートである。
【０１００】
本実施形態のドライバ抽出部２３６は、クロック以外の信号のドライバを抽出する（ステップＳ１２０１）。続いて、ファンアウト数解析部２３７は、クリティカルパスの指定を取得する（ステップＳ１２０２）。
【０１０１】
ステップＳ１２０３とステップＳ１２０４の処理は、図１１のステップＳ１１０２とステップＳ１１０３の処理と同様であるから説明を省略する。
【０１０２】
続いて、負荷容量算出部２３８は、ステップＳ１２０４で算出した負荷容量が、予め設定された所定の許容量以内に収まっているか否かを判定する（ステップＳ１２０５）。ステップＳ１２０６からステップＳ１２０８までの処理は、図１１のステップＳ１１０５からステップＳ１１０７までの処理と同様であるから、説明を省略する。
【０１０３】
本実施形態では、以上の処理により、負荷を分散させる際にクリティカルパスを除外してツリーを構成し、遅延時間を求めることができる。
【０１０４】
図１３は、ツリーの段数の追加を説明する図である。図１３（Ａ）は、ツリーの段数が追加される前の状態を示しており、図１３（Ｂ）は、ツリーの段数が追加された状態を示している。
【０１０５】
本実施形態では、ドライバ１３１の後段に８つのフリップフロップ１３２が接続されている。すなわち、ドライバ１３１の最大ファンアウト数は８である。
【０１０６】
この場合に、ドライバ１３１に接続された負荷容量の値が、セルライブラリデータベース１１０に格納されたドライバ１３１の最大許容量よりも大きい場合、ドライバ１３１の後段に、複数のドライバを追加する。
【０１０７】
すなわち、ドライバ１３の後段に２つのドライバ１３３、１３４が接続される。この場合、ドライバ１３３、３４のそれぞれに接続されるフリップフロップ１３２の数は４つずつとなる。ドライバ１３３、１３４のファンアウト数は４となる。
【０１０８】
ここで、ドライバ１３３に接続される２つのフリップフロップに対しては、クリティカルパスが指定されている。したがって、本実施形態のドライバ追加部２３９は、これらを除外し、ドライバ１３３の後段にドライバ１３５のみを接続させる。また、ドライバ１３４に関しても、後段にドライバ１３６のみを接続させる。
【０１０９】
以上のように、本実施形態では、予め指定されたクリティカルパスを考慮することで、ＳＴＡにおけるタイミング解析の精度をさらに向上させることができる。
【０１１０】
（変形例）
上述の各実施形態では、システム１は、論理合成装置２０、静的タイミング解析装置３０、自動配置配線装置４０を有するものとしたが、これに限定されない。例えば論理合成装置２０、静的タイミング解析装置３０、自動配置配線装置４０が１つの自動配置配線装置を構成していても良い。
【０１１１】
図１４は、変形例の自動配置配線装置を示す図である。変形例では、サーバ１０の有する各データベースと、論理合成装置２０、静的タイミング解析装置３０、自動配置配線装置４０とが１つの自動配置配線装置２を構成する例を示している。
【０１１２】
尚、図１４の例では、各データベースも各装置と同一の装置に含まれるものとしたが、これに限定されない。
【０１１３】
論理合成装置２０、静的タイミング解析装置３０及び自動配置配線装置４０は、１つの装置を形成し、サーバ１０に格納された各データベースを参照しても良い。
【０１１４】
また、図１４に示す各部のそれぞれが１つの装置を構成しても良い。
【０１１５】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１１６】
１０  サーバ
２０  論理合成装置
３０  静的タイミング解析装置
４０  自動配置配線装置
１１０  セルライブラリデータベース
１２０  タイミング制約データベース
１３０  ＲＴＬデータベース
１４０  ネットリストデータベース
１５０  レイテアウトデータベース
２００  自動配置配線プログラム
２３０  ＳＴＡ部
２３１  回路構造解析部
２３３  ＣＴＳ遅延予測部
２３６  ドライバ抽出部
２３７  ファンアウト数解析部
２３８  負荷容量算出部
２３９  ドライバ追加部
２４０  自動配置配線部
【先行技術文献】
【特許文献】
【０１１７】
【特許文献１】特開２００７−２４９４９２号公報
【特許文献２】特開２００６−２６８１６５号公報
【特許文献３】特開２０１２−０６３８８６号公報
【図１】
2016134083.tif 000003
【図２】
2016134083.tif 000004
【図３】
2016134083.tif 000005
【図４】
2016134083.tif 000006
【図５】
2016134083.tif 000007
【図６】
2016134083.tif 000008
【図７】
2016134083.tif 000009
【図８】
2016134083.tif 000010
【図９】
2016134083.tif 000011
【図１０】
2016134083.tif 000012
【図１１】
2016134083.tif 000013
【図１２】
2016134083.tif 000014
【図１３】
2016134083.tif 000015
【図１４】
2016134083.tif 000016