"ネットリストのレイアウト情報を用いて作成された遅延情報に基づいて、前記ネットリストに含まれるバッファの種類毎に遅延時間を算出し、バッファの種類と遅延時間との対応関係を表すバッファテーブルを生成するバッファテーブル生成部と、前記ネットリストに対して前記遅延情報と所与のタイミング制約情報を用いて行われた静的タイミング解析により得られるタイミング解析情報に基づいて、ホールドエラーの発生位置とエラー量との対応関係を含むホールドエラー解析情報を生成するホールドエラー解析情報生成部と、前記バッファテーブルと前記ホールドエラー解析情報とに基づいて、前記ホールドエラーの各発生位置に挿入するバッファの種類及び数を決定するバッファ挿入方針決定部と、を含む、半導体集積回路の設計支援システム。請求項1において、前記ホールドエラー解析情報生成部は、前記ネットリストに対する複数の前記静的タイミング解析により得られる複数のタイミング解析情報に基づいて前記ホールドエラー解析情報を生成し、当該複数のタイミング解析情報においてホールドエラーの同じ発生位置に対して複数のエラー量が得られた場合は、当該複数のエラー量に基づいて当該ホールドエラーの発生位置のエラー量を決定する、半導体集積回路の設計支援システム。請求項2において、前記ホールドエラー解析情報生成部は、前記複数のタイミング解析情報においてホールドエラーの同じ発生位置に対して複数のエラー量が得られた場合は、当該複数のエラー量のうちの最大のエラー量を選択し、当該ホールドエラーの発生位置のエラー量とする、半導体集積回路の設計支援システム。請求項1乃至3のいずれかにおいて、前記バッファテーブル生成部は、前記遅延情報に基づいて、前記ネットリストに含まれるバッファの種類毎に複数の遅延条件に対する遅延時間を算出し、バッファの種類と前記複数の遅延条件に対する遅延時間との対応関係を表す前記バッファテーブルを生成し、前記ホールドエラー解析情報生成部は、前記複数の遅延条件に対する静的タイミング解析により得られる前記タイミング解析情報に基づいて、前記ホールドエラーの発生位置とエラー量との対応関係毎に、当該ホールドエラーが発生した遅延条件を属性として追加して前記ホールドエラー解析情報を生成し、前記バッファ挿入方針決定部は、前記バッファテーブルと前記ホールドエラー解析情報とに基づいて、前記複数の遅延条件に対するホールドエラーが修正されるように、前記ホールドエラーの各発生位置に挿入するバッファの種類及び数を決定する、半導体集積回路の設計支援システム。請求項1乃至4のいずれかにおいて、前記バッファ挿入方針決定部は、指定されたバッファ挿入条件に応じて、前記挿入するバッファの種類及び数を決定する、半導体集積回路の設計支援システム。請求項1乃至5のいずれかにおいて、バッファ挿入コマンドに応じて、前記ネットリストに対してバッファを挿入した新たなネットリストを生成するネットリスト修正部をさらに含み、前記バッファセル挿入方針決定部は、前記バッファ挿入コマンドとして、前記ホールドエラーの各発生位置に、決定した種類のバッファを決定した数だけ挿入するためのコマンドを生成する、半導体集積回路の設計支援システム。請求項6において、前記バッファ挿入方針決定部は、前記バッファの挿入位置及び挿入するバッファの種類と数を記述したテキスト情報をさらに生成する、半導体集積回路の設計支援システム。請求項1乃至7のいずれかにおいて、前記ホールドエラー解析情報に、前記ホールドエラーの発生位置とエラー量との対応関係と同じフォーマットで、バッファを挿入する位置と挿入するバッファの遅延時間との対応関係を追加するホールドエラー解析情報変更部をさらに含む、半導体集積回路の設計支援システム。ネットリストのレイアウト情報から抽出された寄生パラメーターを用いて作成された遅延情報に基づいて、前記ネットリストに含まれるバッファの種類毎に遅延時間を算出し、バッファの種類と遅延時間との対応関係を表すバッファテーブルを生成するバッファテーブル生成部と、前記ネットリストに対して前記遅延情報と所与のタイミング制約情報を用いて行われた静的タイミング解析により得られるタイミング解析情報に基づいて、ホールドエラーの発生位置とエラー量との対応関係を含むホールドエラー解析情報を生成するホールドエラー解析情報生成部と、前記バッファテーブルと前記ホールドエラー解析情報とに基づいて、前記ホールドエラーの各発生位置に挿入するバッファの種類及び数を決定するバッファ挿入方針決定部としてコンピューターを機能させる、半導体集積回路の設計支援プログラム。しかしながら、サインオフ時の静的タイミング検証では、配置配線後のネットリストとレイアウトに対するRC抽出結果に基づく高精度の遅延情報を用いるのに対して、実用化されている自動配置配線システムでは、遅延情報の精度が相対的に低く、微小なホールドエラーもすべて排除したレイアウトを生成できるとは限らない。配置配線システムに与えるホールドタイムのタイミング制約を厳しく設定することで、ホールドエラーをすべて排除したレイアウトを生成することも可能ではあるが、冗長なバッファが追加されることになる。そのため、例えば、レイアウトサイズの制約が厳しい設計では、ホールドタイムのタイミング制約を厳しく設定して配置配線させることができず、サインオフ時の静的タイミング検証でホールドエラーが発見され、ホールドエラーを修正する必要が生じる場合がある。あるいは、最初から自動配置配線システムではホールドエラーの修正を行わず、サインオフの段階でホールドエラーを修正する場合もある。ホールドエラーの修正は、ホールドエラーが発生した位置にバッファを挿入することで行うのが一般的であるが、挿入するバッファの種類と数は設計者の経験に基づいて決定される場合が多い。この場合、挿入するバッファの種類と数を誤ると、過大又は過小なホールドエラー修正になる恐れがある。修正が過大の場合は冗長なバッファが追加されるためレイアウトサイズが無駄に大きくなり、修正が過小の場合は静的タイミング検証結果にホールドエラーが再度発生することになる。また、簡単な修正の場合は、設計者がネットリストを手修正してバッファを挿入する場合もあり、デザインルールに違反する類のエラーショートやオープンなどはチェッカーで排除できるが、バッファの挿入位置を間違えた場合は、再配置配線後の静的タイミング検証で初めて気付くことになる。また、サインオフ時の静的タイミング検証では、複数の動作モードノーマルモード、SCANモード、JTAGモード、MBISTモード等に対してタイミングエラーの有無を検証するため、これら複数モードの検証結果において、ホールドエラーの発生位置が異なる場合や、ホールドエラーの発生位置が同じでもエラー量が異なる場合がある。また、各モードに対して、温度、電源電圧、プロセス条件等が異なる複数の遅延条件min,typ,max等を設定して静的タイミング検証が行われるため、1つのモードでも、ホールドエラーの発生位置やエラー量が異なる場合もある。そのため、遅延条件毎に複数のモードに対応する複数の検証結果をマージし、最適な遅延条件を選択してホールドエラーの修正に適用する必要があるが、人マニュアルによる判断や作業には限界があった。本発明は、以上のような問題点に鑑みてなされたものであり、本発明のいくつかの態様によれば、ホールドエラーの修正において冗長なバッファの挿入を軽減するとともに設計の後戻りを軽減する半導体集積回路装置の設計支援システム及び設計支援プログラムを提供することができる。1本発明は、ネットリストのレイアウト情報から抽出された寄生パラメーターを用いて作成された遅延情報に基づいて、前記ネットリストに含まれるバッファの種類毎に遅延時間を算出し、バッファの種類と遅延時間との対応関係を表すバッファテーブルを生成するバッファテーブル生成部と、前記ネットリストに対して前記遅延情報と所与のタイミング制約情報を用いて行われた静的タイミング解析により得られるタイミング解析情報に基づいて、ホールドエラーの発生位置とエラー量との対応関係を含むホールドエラー解析情報を生成するホールドエラー解析情報生成部と、前記バッファテーブルと前記ホールドエラー解析情報とに基づいて、前記ホールドエラーの各発生位置に挿入するバッファの種類及び数を決定するバッファ挿入方針決定部と、を含む、半導体集積回路の設計支援システムである。本発明では、ネットリストのレイアウト情報から抽出された寄生パラメーター寄生抵抗値や寄生容量値等を用いて作成された遅延情報に基づいて、当該ネットリストに含まれる各バッファの遅延時間を計算し、バッファテーブルを生成する。つまり、バッファテーブルに含まれる各バッファの遅延時間は、ライブラリーに用意された一般的な遅延時間ではなく、レイアウト領域のサイズや形状に応じて決まる実際のレイアウト情報に特化した精度の高い遅延時間である。本発明によれば、この精度の高い遅延時間に基づいてホールドエラー修正のために挿入するバッファの種類と数を適切に決定することができるので、冗長なバッファの挿入を軽減するとともに設計の後戻りを軽減することができる。2この設計支援システムにおいて、前記ホールドエラー解析情報生成部は、前記ネットリストに対する複数の前記静的タイミング解析により得られる複数のタイミング解析情報に基づいて前記ホールドエラー解析情報を生成し、当該複数のタイミング解析情報においてホールドエラーの同じ発生位置に対して複数のエラー量が得られた場合は、当該複数のエラー量に基づいて当該ホールドエラーの発生位置のエラー量を決定するようにしてもよい。このようにすれば、複数の静的タイミング解析の結果、同じ位置に異なるエラー量のホールドエラーが重複して発生した場合でも、ホールドエラーの発生位置毎に適切なエラー量を決定することができる。3この設計支援システムにおいて、前記ホールドエラー解析情報生成部は、前記複数のタイミング解析情報においてホールドエラーの同じ発生位置に対して複数のエラー量が得られた場合は、当該複数のエラー量のうちの最大のエラー量を選択し、当該ホールドエラーの発生位置のエラー量とするようにしてもよい。このようにすれば、複数の静的タイミング解析の結果、同じ位置に異なるエラー量のホールドエラーが重複して発生した場合でも、すべてのホールドエラーを解消させることができる。4この設計支援システムにおいて、前記バッファテーブル生成部は、前記遅延情報に基づいて、前記ネットリストに含まれるバッファの種類毎に複数の遅延条件に対する遅延時間を算出し、バッファの種類と前記複数の遅延条件に対する遅延時間との対応関係を表す前記バッファテーブルを生成し、前記ホールドエラー解析情報生成部は、前記複数の遅延条件に対する静的タイミング解析により得られる前記タイミング解析情報に基づいて、前記ホールドエラーの発生位置とエラー量との対応関係毎に、当該ホールドエラーが発生した遅延条件を属性として追加して前記ホールドエラー解析情報を生成し、前記バッファ挿入方針決定部は、前記バッファテーブルと前記ホールドエラー解析情報とに基づいて、前記複数の遅延条件に対するホールドエラーが修正されるように、前記ホールドエラーの各発生位置に挿入するバッファの種類及び数を決定するようにしてもよい。このようにすれば、複数の遅延条件に対するホールドエラーを同時に解消することができる適切なバッファの種類と数を決定することができる。5この設計支援システムにおいて、前記バッファ挿入方針決定部は、指定されたバッファ挿入条件に応じて、前記挿入するバッファの種類及び数を決定するようにしてもよい。このようにすれば、バッファ挿入条件の指定を変更することで、挿入されるバッファの種類や数を目的に応じて変更することができる。6この設計支援システムは、バッファ挿入コマンドに応じて、前記ネットリストに対してバッファを挿入した新たなネットリストを生成するネットリスト修正部をさらに含み、前記バッファセル挿入方針決定部は、前記バッファ挿入コマンドとして、前記ホールドエラーの各発生位置に、決定した種類のバッファを決定した数だけ挿入するためのコマンドを生成するようにしてもよい。このようにすれば、冗長なバッファを挿入することなくホールドエラーが修正された適切なネットリストを得ることができる。7この設計支援システムにおいて、前記バッファ挿入方針決定部は、前記バッファの挿入位置及び挿入するバッファの種類と数を記述したテキスト情報をさらに生成するようにしてもよい。このようにすれば、ユーザーは、このテキスト情報を見ることで、バッファ挿入コマンドを直接見てもわかりにくいバッファの挿入位置と挿入するバッファの種類数の対応関係を容易に認識することができる。8この設計支援システムは、前記ホールドエラー解析情報に、前記ホールドエラーの発生位置とエラー量との対応関係と同じフォーマットで、バッファを挿入する位置と挿入するバッファの遅延時間との対応関係を追加するホールドエラー解析情報変更部をさらに含むようにしてもよい。このようにすれば、ユーザーがバッファを挿入したい任意の位置に、擬似的にホールドエラーが発生しているものとして、適切なバッファを挿入させることができる。9本発明は、ネットリストのレイアウト情報から抽出された寄生パラメーターを用いて作成された遅延情報に基づいて、前記ネットリストに含まれるバッファの種類毎に遅延時間を算出し、バッファの種類と遅延時間との対応関係を表すバッファテーブルを生成するバッファテーブル生成部と、前記ネットリストに対して前記遅延情報と所与のタイミング制約情報を用いて行われた静的タイミング解析により得られるタイミング解析情報に基づいて、ホールドエラーの発生位置とエラー量との対応関係を含むホールドエラー解析情報を生成するホールドエラー解析情報生成部と、前記バッファテーブルと前記ホールドエラー解析情報とに基づいて、前記ホールドエラーの各発生位置に挿入するバッファの種類及び数を決定するバッファ挿入方針決定部としてコンピューターを機能させる、半導体集積回路の設計支援プログラムである。以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。1.設計支援システムの構成図1は、本実施形態の半導体集積回路装置の設計支援システムの構成例を示す図である。本実施形態の半導体集積回路装置の設計支援システム1は、当該構成要素各部の一部を省略した構成としてもよい。操作部30は、ユーザーの操作等をデータとして入力するためのものであり、その機能は、例えばキーボードやマウス等のハードウェアにより実現できる。記憶部40は、処理部10や通信部70などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。記憶部40は、ライブラリー情報記憶部42を含む。ライブラリー情報記憶部42は、設計データにより得られたライブラリー情報論理回路情報、レイアウト情報、接続情報等が記憶されている。情報記憶媒体50コンピューターにより読み取り可能な媒体は、プログラムやデータなどを格納するものであり、その機能は、光ディスクCD、DVD等、光磁気ディスクMO、磁気ディスク、ハードディスク、磁気テープ、或いはメモリーROMなどのハードウェアにより実現できる。また情報記憶媒体50には、本実施形態の各手段としてコンピューターを機能させるプログラムや補助データ付加データが記憶される。処理部10は、この情報記憶媒体50に格納されるプログラム設計支援プログラムや情報記憶媒体50から読み出されたデータなどに基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体50には、本実施形態の各手段としてコンピューターを機能させるためのプログラム各手段の処理をコンピューターに実行させるためのプログラムが記憶される。表示部60は、本実施形態により生成された画像を出力するものであり、その機能は、CRTディスプレイ、LCD液晶ディスプレイ、OELD有機ELディスプレイ、PDPプラズマディスプレイパネル、タッチパネル型ディスプレイなどのハードウェアにより実現できる。通信部70は、外部例えばサーバ装置や他の端末機との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。処理部10プロセッサは、操作部30からの操作データやプログラムなどに基づいて、各種処理などを行う。この処理部10は記憶部40をワーク領域として各種処理を行う。処理部10の機能は各種プロセッサCPU、DSP等、ASICゲートアレイ等などのハードウェアや、アプリケーションプログラム、OS例えば汎用OS等により実現できる。処理部10は、配置配線部12、RC抽出部14、遅延計算部16、ホールドエラー修正部18を含む。ただし、処理部10は、当該構成要素各部の一部を省略した構成としてもよい。配置配線部12は、セルのライブラリー情報とタイミング制約情報に基づいて、設計対象ブロックのネットリストに含まれるセルの配置処理とネットの配線処理を行い、配置配線後のレイアウト情報とネットリストを生成する。RC抽出部14は、配置配線部12が生成したレイアウト情報に基づいて、配置配線部12が生成したネットリストに含まれる各ネットの寄生抵抗や寄生容量を抽出する処理を行い、RC情報寄生抵抗と寄生容量の情報を生成する。遅延計算部16は、RC抽出部14が生成したRC情報に基づいて、配置配線部12が生成したネットリストに含まれる各セルのセル遅延や各ネットの配線遅延を算出する処理を行い、遅延情報を生成する。ホールドエラー修正部18は、配置配線部12が生成したネットリストに対してホールドエラーの有無を解析し、ホールドエラーがある場合は、遅延計算部16が生成した遅延情報に基づいてホールドエラーを修正したネットリストを生成する。ホールドエラー修正部18は、静的タイミング解析部19、バッファテーブル生成部20、ホールドエラー解析情報生成部22、バッファ挿入方針決定部24、ネットリスト修正部26、ホールドエラー解析情報変更部28を含む。ただし、ホールドエラー修正部18は、当該構成要素各部の一部を省略した構成としてもよい。静的タイミング解析部19は、遅延計算部16が生成した遅延情報とタイミング制約情報に基づいて、配置配線部12が生成したネットリストに対して静的タイミング解析STA:StaticTimingAnalysisを行い、タイミング解析情報を生成する処理を行う。バッファテーブル生成部20は、遅延計算部16が生成した遅延情報に基づいて、配置配線部12が生成したネットリストに含まれるバッファの種類毎に遅延時間を算出し、バッファの種類と遅延時間との対応関係を表すバッファテーブルを生成する処理を行う。ホールドエラー解析情報生成部22は、配置配線部12が生成したネットリストに対して、静的タイミング解析部19が生成したタイミング解析情報に基づいて、ホールドエラーの発生位置とエラー量との対応関係を含むホールドエラー解析情報を生成する処理を行う。ホールドエラー解析情報生成部22は、配置配線部12が生成したネットリストに対する複数の静的タイミング解析により得られる複数のタイミング解析情報に基づいてホールドエラー解析情報を生成し、当該複数のタイミング解析情報においてホールドエラーの同じ発生位置に対して複数のエラー量が得られた場合は、当該複数のエラー量に基づいて当該ホールドエラーの発生位置のエラー量を決定するようにしてもよい。この場合、当該複数のエラー量のうちの最大のエラー量を選択し、当該ホールドエラーの発生位置のエラー量としてもよい。バッファ挿入方針決定部24は、バッファテーブル生成部20が生成したバッファテーブルとホールドエラー解析情報生成部22が生成したホールドエラー解析情報とに基づいて、ホールドエラーの各発生位置に挿入するバッファの種類及び数を決定する処理を行う。バッファ挿入方針決定部24は、指定されたバッファ挿入条件に応じて、挿入するバッファの種類及び数を決定するようにしてもよい。また、バッファテーブル生成部20は、遅延計算部16が生成した遅延情報に基づいて、配置配線部12が生成したネットリストに含まれるバッファの種類毎に複数の遅延条件に対する遅延時間を算出し、バッファの種類と当該複数の遅延条件に対する遅延時間との対応関係を表すバッファテーブルを生成するようにしてもよい。この場合、ホールドエラー解析情報生成部22は、当該複数の遅延条件に対する静的タイミング解析により得られるタイミング解析情報に基づいて、ホールドエラーの発生位置とエラー量との対応関係毎に、当該ホールドエラーが発生した遅延条件を属性として追加してホールドエラー解析情報を生成するようにしてもよい。そして、バッファ挿入方針決定部24は、バッファテーブル生成部20が生成したバッファテーブルとホールドエラー解析情報生成部22が生成したホールドエラー解析情報とに基づいて、当該複数の遅延条件に対するホールドエラーが修正されるように、ホールドエラーの各発生位置に挿入するバッファの種類及び数を決定するようにしてもよい。ネットリスト修正部26は、バッファ挿入コマンドに応じて、配置配線部12が生成したネットリストに対してバッファを挿入した新たなネットリストを生成する。バッファセル挿入方針決定部24は、このバッファ挿入コマンドとして、ホールドエラーの各発生位置に、決定した種類のバッファを決定した数だけ挿入するためのコマンドを生成する処理を行う。この場合、バッファ挿入方針決定部24は、バッファの挿入位置及び挿入するバッファの種類と数を記述したテキスト情報をさらに生成するようにしてもよい。ホールドエラー解析情報変更部28は、ホールドエラー解析情報生成部22が生成したホールドエラー解析情報に、ホールドエラーの発生位置とエラー量との対応関係と同じフォーマットで、バッファを挿入する位置と挿入するバッファの遅延時間との対応関係を追加する処理を行う。なお、本実施形態の各手段としてコンピューターを機能させるためのプログラム設計支援プログラムは、ホスト装置サーバーが有する情報記憶媒体からネットワーク及び通信部70を介して情報記憶媒体50記憶部40に配信してもよい。このようなホスト装置サーバーの情報記憶媒体の使用も本発明の範囲内に含めることができる。2.設計支援システムの処理図2は、本実施形態の設計支援システム1の処理について説明するための図である。ただし、本実施形態の設計支援システム1は、以下に説明する処理の一部を省略してもよい。図2に示すように、本実施形態の設計支援システム1は、まず、処理部10が情報記憶媒体50に記憶された配置配線プログラムを実行することで配置配線部12として機能し、タイミング制約情報112と設計対象ブロックのネットリスト114を用いて配置配線処理120を行う。タイミング制約情報112は、遅延条件温度、電源電圧、プロセス条件等の定義情報、動作クロックの定義情報、クロックツリーのルートの定義情報等を含み、ネットリスト114は、セルの定義情報やセル間を接続するネットの定義情報等を含む。具体的には、配置配線処理120では、タイミング制約情報112に含まれるクロックツリーのルートの定義情報に基づいてクロックツリーの自動配置配線を優先的に行った後、ネットリスト112に含まれる各セルを自動配置し、ネットリスト112で定義されたセル間の接続関係を満たすようにセル間のネットの自動配線を行う。セル配置やネット配線は、タイミング制約情報112に基づいてタイミングドリブンで行い、セットアップエラーがなくなるまで、セル配置やネット配線の変更を繰り返し行う。この配置配線処理120により、レイアウト情報配置配線情報122とネットリスト124が生成される。レイアウト情報配置配線情報122は、例えばDEFDesignExchangeFormatで記述されたファイルDEFファイルであり、ネットリスト114や124は、例えばVerilog言語で記述されたファイルVerilogファイルである。なお、本実施形態では、配置配線処理120においてホールドエラーの修正は行われないが、配置配線処理120でホールドエラーの修正を行ってもよい。次に、処理部10が情報記憶媒体50に記憶されたRC抽出プログラムを実行することでRC抽出部14として機能し、レイアウト情報122を用いてRC抽出処理140を行う。具体的には、RC抽出処理140では、レイアウト情報122を用いて、ネットリスト124に含まれる各ネットの寄生抵抗と寄生容量を抽出する。このRC抽出処理140により、RC情報142が生成される。RC情報142は、例えばDSPFDetailedStandardParasiticFormatやSPEFStandardParasiticExchangeFormatで記述されたファイルである。次に、処理部10が情報記憶媒体50に記憶された遅延計算プログラムを実行することで遅延計算部16として機能し、RC情報142を用いて遅延計算処理160を行う。具体的には、遅延計算処理160では、RC情報142を用いて、ネットリスト124に含まれる各セルの遅延時間セル遅延や各ネットの遅延時間配線遅延を計算する。この遅延計算処理160により、遅延情報162セル遅延と配線遅延の情報が生成される。遅延情報162は、複数の遅延条件温度、電源電圧、プロセス条件等例えばmin条件最小遅延条件とmax条件最大遅延条件でのセル遅延や配線遅延の情報を含むようにしてもよい。遅延情報162は、例えばSDFStandardDelayFormatで記述されたファイルSDFファイルである。次に、処理部10が情報記憶媒体50に記憶されたホールドエラー修正プログラムを実行することでホールドエラー修正部18として機能し、ネットリスト124、遅延情報162、n個のタイミング制約情報170-1~170-nを用いてホールドエラー修正処理180を行う。各々のタイミング制約情報170-kk=1~nは、それぞれ、例えば動作モードkに対するタイミング制約の定義情報遅延条件の定義情報、動作クロックの定義情報等を含む。例えば、タイミング制約情報170-kk=1~nは、動作モードkに対するタイミング制約を記述したファイルであってもよい。各々のタイミング制約情報170-kk=1~nは、複数の遅延条件min条件、max条件等の定義情報を含んでいてもよい。ホールドエラー修正処理180では、ネットリスト124に対してタイミング制約情報170-1~170-nを適用してタイミング解析を行い、ホールドエラーの発生位置に対して遅延情報162で遅延時間が定義されたいずれかの種類のバッファを挿入することでホールドエラーを修正する。このホールドエラー修正処理180により、ホールドエラーが修正されたネットリスト182が生成される。ネットリスト182は、例えばVerilog言語で記述されたファイルである。本実施形態の設計支援システム1は、特に、ホールドエラー修正処理180に特徴を有する。図3は、ホールドエラー修正処理180の詳細について説明するための図である。ただし、本実施形態の設計支援システム1は、以下に説明する処理の一部を省略してもよい。図3に示すように、ホールドエラー修正処理180では、まず、処理部10が静的タイミング解析部19として機能し、ネットリスト124、タイミング制約情報170-1~170-n、遅延情報162を用いて静的タイミング解析STA処理190を行う。具体的には、静的タイミング解析STA処理190では、ネットリスト124に対してタイミング制約情報170-kk=1~nと遅延情報162を適用して静的タイミング解析を行い、解析結果であるタイミング解析情報192-kk=1~nを生成する。静的タイミング解析STA処理190では、各々のタイミング制約情報170-kを用いて、動作モードkに対する静的タイミング解析を行う。各々のタイミング制約情報170-kが複数の遅延条件min条件、max条件等の定義情報を含む場合、静的タイミング解析STA処理190では、各動作モードkについて複数の遅延条件での静的タイミング解析が行われる。タイミング解析情報192-kk=1~nは、動作モードkに対する静的タイミング解析の結果情報であり、セットアップエラーやホールドエラー等のタイミング違反の有無やその発生位置の情報を含む。例えば、各々のタイミング解析情報192-kは、動作モードkに対する解析結果を記述したレポートファイルである。タイミング制約情報170-kが複数の遅延条件の定義情報を含む場合には、タイミング解析情報192-kは、動作モードkに対する複数の遅延条件での解析結果を記述した1つのレポートファイルでもよいし、各々の遅延条件での解析結果のみをそれぞれ記述した複数のレポートファイルに分割されていてもよい。次に、処理部10がバッファテーブル生成部20として機能し、遅延情報162を用いてバッファテーブル生成処理200を行う。具体的には、バッファテーブル生成処理200では、遅延情報162で遅延情報が定義されたすべてのバッファのセル遅延を抽出してバッファの種類毎にセル遅延を算出し、バッファの種類とセル遅延の対応関係を定義したバッファテーブル202を生成する。例えば、バッファテーブル202は、バッファの種類とセル遅延の対応関係を記述したファイルである。遅延情報162が複数の遅延条件での遅延情報を含む場合、バッファテーブル生成処理200では、各々のバッファに対応づけて複数の遅延条件の各々でのセル遅延を定義したバッファテーブル202を生成する。次に、処理部10がホールドエラー解析情報生成部22として機能し、タイミング解析情報192-1~192-nを用いてホールドエラー解析情報生成処理220を行う。具体的には、ホールドエラー解析情報生成処理220では、タイミング解析情報192-1~192-nに含まれるホールドエラーの情報を抽出し、ホールドエラーの発生位置毎に最大のエラー量を選択し、すべてのホールドエラーの発生位置とその最大エラー量との対応関係を含むホールドエラー解析情報222を生成する。例えば、ホールドエラー解析情報222は、ホールドエラーの発生位置とその最大エラー量との対応関係を記述したマージファイルである。タイミング解析情報192-kk=1~nが複数の遅延条件min条件、max条件等に対する解析結果を含む場合、ホールドエラー解析情報生成処理220では、各々の遅延条件に対するホールドエラーの発生位置とその最大エラー量との対応関係を含むホールドエラー解析情報222を生成する。また、処理部10がホールドエラー解析情報変更部28として機能し、ホールドエラー解析情報変更処理280を行ってもよい。具体的には、ホールドエラー解析情報変更処理280では、バッファを挿入する位置と遅延時間の対応関係の指定に応じて、ホールドエラーの発生位置とその最大エラー量との対応関係の記述と同じフォーマットで、バッファ挿入位置と遅延時間の対応関係の記述を作成してホールドエラー解析情報222に追加する。このようにすれば、バッファを挿入したい任意の位置に、擬似的にホールドエラーが発生しているものとして、後述のバッファ挿入方針決定処理240において、適切なバッファを挿入させることができる。次に、処理部10がバッファ挿入方針決定部24として機能し、ホールドエラー解析情報222を用いてバッファ挿入方針決定処理240を行う。具体的には、バッファ挿入方針決定処理240では、ホールドエラー解析情報222に含まれるホールドエラーの発生位置毎に、指定されたバッファ挿入条件に従って、バッファテーブル202で定義されたバッファの中から挿入するバッファの種類と数を決定する。バッファ挿入方針決定処理240では、1種類のバッファを1又は複数個挿入するように決定してもよいし、複数種類のバッファをそれぞれ1又は複数個ずつ挿入するように決定してもよい。また、バッファ挿入条件としては、ホールドエラーの発生位置毎に挿入するバッファの遅延時間の総和を最小にする、ホールドエラーの発生位置毎に挿入するバッファの数を最小にする、ホールドエラーの発生位置毎に挿入するバッファの総面積を最小にする、などの条件が考えられる。ユーザーがこれら複数のバッファ挿入条件から1つのバッファ挿入条件を指定し、指定されたバッファ挿入条件に応じて、挿入するバッファの種類と数を決定するようにしてもよい。このようにすれば、ユーザーがバッファ挿入条件の指定を変更することで、挿入されるバッファの種類や数を目的に応じて変更することができる。そして、バッファ挿入方針決定処理240では、ホールドエラーの発生位置毎に決定したバッファを決定した数だけ挿入するためのバッファ挿入コマンド242を生成する。例えば、バッファ挿入コマンド242は、ホールドエラーの発生位置毎に挿入するバッファの種類と数を指定するコマンドファイルである。また、バッファ挿入方針決定処理240では、ユーザーが理解しやすいように、挿入するバッファの種類や数、挿入位置等をテキスト形式で表したバッファ挿入テキスト情報244を生成するようにしてもよい。例えば、バッファ挿入テキスト情報244は、挿入するバッファの種類や数、挿入位置等を記述したテキストファイルである。ユーザーは、バッファ挿入テキスト情報244により、最適なバッファの挿入が行われるか否かを容易に確認することができ、挿入するバッファの種類や数、挿入位置等を変更するために、バッファ挿入コマンド242を修正することもできる。次に、処理部10がネットリスト修正部26として機能し、ネットリスト124とバッファ挿入コマンド242を用いてネットリスト修正処理260を行う。具体的には、ネットリスト修正処理260では、バッファ挿入コマンド242に従ってネットリスト124にバッファを挿入し、新たなネットリスト182を生成する。すなわち、ネットリスト124に対して、ホールドエラーの発生位置毎に、バッファ挿入コマンド242で指定されたバッファが指定された数だけ挿入されたネットリスト182が生成される。このネットリスト修正処理260は、広く使用されている様々な論理合成エンジンを用いて実現することができる。前述のバッファ挿入方針決定処理240では、この論理合成エンジンが解釈できるコマンドフォーマットで記述されたバッファ挿入コマンド242が生成される。そして、図2に示すように、本実施形態の設計支援システム1は、再び、配置配線部12として機能し、ホールドエラーが修正されたネットリスト182を用いて配置配線処理120を行う。この配置配線処理120では、タイミング制約112に基づいたタイミングドリブンは行わずに配置配線のみ行い、最終のレイアウト情報を生成する。サインオフ検証では、この最終のレイアウト情報とネットリスト182を用いて静的タイミング解析STAが行われる。なお、図3のホールドエラー修正処理180はすべて自動化されているが、一部の処理を人手で行うようにしてもよい。図4は、バッファテーブル生成処理200の一例を示すフローチャート図である。まず、遅延情報162例えばSDFファイルを読み込みS10、新たなバッファインスタンスの遅延値を抽出するS12。S12のバッファインスタンスを有するバッファの種類が既登録のバッファ後述のS18で登録されたバッファであればS14のY、当該バッファに対して、遅延条件毎に遅延値の平均を計算し、各遅延条件での遅延値を更新するS16。一方、S12のバッファインスタンスを有するバッファの種類が既登録のバッファでなければS14のN、当該バッファと各遅延条件での遅延値を対応づけて登録するS18。そして、遅延情報162においてS12~S18が未処理のバッファインスタンスがなくなるまでS20のNになるまで、S12~S18の処理を繰り返し行う。最後に、S18で登録された又はS16で更新されたバッファと各遅延条件での遅延値を対応付けて記述し、バッファテーブル202を生成するS22。図5は、ホールドエラー解析情報生成処理220の一例を示すフローチャート図である。まず、iを1に初期化しS100、タイミング解析情報192-i動作モードiに対するレポートファイルを読み込むS102。次に、jを1に初期化しS104、j番目の遅延条件遅延条件jmin条件やmax条件等に対して、タイミング解析情報192-iにおいて未処理のホールドエラーがあればS106、新たなホールドエラーを抽出するS108。S108のホールドエラーが既登録後述のS116で登録されたホールドエラーであればS110のY、S108のホールドエラーのエラー量が既登録のエラー量よりも大きい場合S112のYのみ、遅延条件jに対応づけて、当該ホールドエラー発生位置のエラー量をS108のホールドエラーのエラー量に更新するS114。一方、S108のホールドエラーが既登録でなければS110のN、遅延条件jに対応づけて、当該ホールドエラー発生位置とエラー量を登録するS116。そして、タイミング解析情報192-iにおいてS108~S116が未処理のホールドエラーがなくなるまでS106のNになるまで、S108~S116の処理を繰り返し行う。また、タイミング解析情報192-iにおいて未処理の遅延条件がなくなるまでS118のNになるまで、jを1だけ増やして次の遅延条件jに対してS106~S116の処理を繰り返し行う。タイミング解析情報192-iにおいて未処理の遅延条件がなくなればS118のN、i=nタイミング解析情報192-1~192-nに対する処理がすべて終了でなければS122のN、iを1だけ増やして次のタイミング解析情報192-iに対してS106~S120の処理を繰り返し行う。そして、すべてのタイミング解析情報192-1~192-nに対する処理が終了するとS122のY、S116で登録された又はS114で更新されたホールドエラー発生位置とエラー量を遅延条件と対応付けて記述し、ホールドエラー解析情報222マージファイルを生成するS126。図6は、バッファ挿入方針決定処理240の一例を示すフローチャート図である。まず、ホールドエラー解析情報222マージファイルを読み込みS200、jを1に初期化しS202、ホールドエラー解析情報222において、遅延条件jに対してS206~S212が未処理のホールドエラーがあればS204のY、未処理の新たなホールドエラーを抽出するS206。S206のホールドエラーを修正するためのバッファが既登録後述のS212で登録されているの場合S208のY、既登録のバッファで当該ホールドエラーが解消するか否か判定する。ホールドエラーが解消しない場合S210のN、バッファテーブル202を参照し、遅延条件jでの遅延時間の総和がホールドエラー量以上の最小値となるバッファの種類と数を決定し、当該ホールドエラーに対応づけて更新するS212。一方、S206のホールドエラーを修正するためのバッファが未登録の場合S208のNは、バッファテーブル202を参照し、遅延条件jでの遅延時間の総和がホールドエラー量以上の最小値となるバッファの種類と数を決定し、当該ホールドエラーに対応づけて登録するS212。そして、ホールドエラー解析情報222においてS206~S212が未処理のホールドエラーがなくなるまでS204のNになるまで、S206~S212の処理を繰り返し行う。また、ホールドエラー解析情報222において未処理の遅延条件がなくなるまでS214のNになるまで、jを1だけ増やして次の遅延条件jに対してS204~S212の処理を繰り返し行う。ホールドエラー解析情報222において未処理の遅延条件がなくなればS214のN、ホールドエラーの発生位置毎にS212で登録更新されたバッファを挿入するコマンドを記述し、バッファ挿入コマンド242コマンドファイルとバッファ挿テキスト情報244テキストファイルを生成するS218。次に、本実施形態のホールドエラー修正処理の適用例について、図7~図14を用いて説明する。図7は、本実施形態のホールドエラー修正処理が適用されるネットリスト124の一例に対応する回路図である。図7では、ネットリスト124に含まれる一部の回路のみ表記されている。図7に示すように、ネットリスト124では、TOPレベルインスタンス名:TOPのブロックが、インスタンス名X1のバッファセル4BFX4、インスタンス名X2のDフリップフロップセルDFF、インスタンス名I1のブロックを含んでいる。そして、インスタンス名I1のブロックは、インスタンス名がそれぞれX1、X2、X3の3つのDフリップフロップセルDFF、インスタンス名がそれぞれX4,X5の2つのバッファセル1BFX1、インスタンス名がそれぞれX6,X7の2つのバッファセル2BFX2、インスタンス名がX8のバッファセル4BFX4を含んでいる。図8は、図7の回路図に対応するネットリスト124に対する遅延情報162SDFファイルの一部を示す図である。図8では、図7の一部のバッファセルのセル遅延に関する記述のみ示されている。例えば、インスタンス名がTOP/X1のバッファセル4BFX4は、立ち上がり遅延時間バッファセル4の入力信号がローレベルからハイレベルに変化してから出力信号がローレベルからハイレベルに変化するまでの遅延時間がmin条件では0.305ns、typ条件では0.550ns、max条件では1.010nsであり、立ち下がり遅延時間バッファセル4の入力信号がハイレベルからローレベルに変化してから出力信号がハイレベルからローレベルに変化するまでの遅延時間がmin条件では0.250ns、typ条件では0.430ns、max条件では0.840nsである。また、例えば、インスタンス名がTOP/I1/X4のバッファセル1BFX1は、立ち上がり遅延時間がmin条件では0.100ns、typ条件では0.200ns、max条件では0.400nsであり、立ち下がり遅延時間がmin条件では0.080ns、typ条件では0.150ns、max条件では0.300nsである。本実施形態のホールドエラー修正処理180では、まず、図8の遅延情報162を用いて図4のフローチャートによるバッファテーブル生成処理200を行い、バッファテーブル202を生成する。具体的には、ネットリスト124には、図7に示されるインスタンス名がTOP/I1/X4とTOP/I1/X5の2つのバッファセル1BFX1や図示されていないその他のバッファセル1BFX1が含まれており、これらすべてのバッファセル1BFX1の遅延時間をもとにバッファセル1BFX1の平均遅延時間を算出する。例えば、すべてのバッファセル1BFX1の立ち上がり遅延時間と立ち下り遅延時間の各々に対して、min条件での遅延時間とmax条件での遅延時間をそれぞれ昇順又は降順に並べ、上下それぞれ10の範囲は対象外として80の範囲の遅延時間の平均値を算出する。そして、算出したmin条件での立ち上がり遅延時間の平均値と立ち下り遅延時間の平均値のうちの大きい方がバッファセル1BFX1のmin条件での平均遅延時間として選択され、バッファテーブル202に記述される。同様に、算出したmax件での立ち上がり遅延時間の平均値と立ち下り遅延時間の平均値のうちの大きい方がバッファセル1BFX1のmax条件での平均遅延時間として選択され、バッファテーブル202に記述される。バッファセル2BFX2やバッファセル4BFX4等のその他のすべてのバッファセルについて、同様に平均遅延時間が算出されてバッファテーブル202に記述される。図9は、バッファテーブル生成処理200により得られるバッファテーブル202の一部を示す図である。図9の例では、バッファセル1BFX1は、min条件での平均遅延時間が100psであり、max条件での平均遅延時間が400psである。また、バッファセル2BFX2は、min条件での平均遅延時間が220psであり、max条件での平均遅延時間が900psである。また、バッファセル4BFX4は、min条件での平均遅延時間が300psであり、max条件での平均遅延時間が1000psである。また、本実施形態のホールドエラー修正処理180では、図7の回路図に対応するネットリスト124に対して、動作モード1でのタイミング制約を定義したタイミング制約情報170-1と図8の遅延情報162を用いて静的タイミング解析処理190を行い、タイミング解析情報192-1を生成する。同様に、図7の回路図に対応するネットリスト124に対して、動作モード2でのタイミング制約を定義したタイミング制約情報170-2と図8の遅延情報162を用いて静的タイミング解析処理190を行い、タイミング解析情報192-2を生成する。図10A及び図10Bは、動作モード1に対する静的タイミング解析処理190により得られるタイミング解析情報192-1の一部を示す図である。図10Aはmin条件に対するタイミング解析情報192-1に対応するレポートファイルの一部を示し、図10Bはmax条件に対するタイミング解析情報192-1に対応するレポートファイルの一部を示している。図10Aのレポートファイルでは、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力とインスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の位置にホールドエラーが発生し、エラー量がそれぞれ200psと190psであることを示している。なお、インスタンス名がTOP/I1/X1のDフリップフロップセルDFFのD入力の位置にはホールドエラーが発生していない。また、図10Bのレポートファイルでは、インスタンス名がTOP/I1/X1のDフリップフロップセルDFFのD入力、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力、インスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の位置にホールドエラーが発生し、エラー量がそれぞれ100ps、330ps、310psであることを示している。一方、図11A及び図11Bは、動作モード2に対する静的タイミング解析処理190により得られるタイミング解析情報192-2の一部を示す図である。図11Aはmin条件に対するタイミング解析情報192-2に対応するレポートファイルの一部を示し、図11Bはmax条件に対するタイミング解析情報192-2に対応するレポートファイルの一部を示している。図11Aのレポートファイルでは、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力とインスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の位置にホールドエラーが発生し、エラー量がそれぞれ210psと180psであることを示している。なお、インスタンス名がTOP/I1/X1のDフリップフロップセルDFFのD入力の位置にはホールドエラーが発生していない。また、図11Bのレポートファイルでは、インスタンス名がTOP/I1/X1のDフリップフロップセルDFFのD入力、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力、インスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の位置にホールドエラーが発生し、エラー量がそれぞれ150ps、400ps、270psであることを示している。次に、本実施形態のホールドエラー修正処理180では、図10A及び図10Bのタイミング解析情報192-1と図11A及び図11Bのタイミング解析情報192-2に対して、図5のフローチャートによるホールドエラー解析情報生成処理220を行い、ホールドエラー解析情報222を生成する。具体的には、min条件に対するタイミング解析情報192-1図10Aと192-2図11Aを比較し、ホールドエラーの発生位置毎に最大のエラー量を選択し、ホールドエラー解析情報222マージファイルに記述する。同様に、max条件に対するタイミング解析情報192-1図10Bと192-2図11Bを比較し、ホールドエラーの発生位置毎に最大のエラー量を選択し、ホールドエラー解析情報222マージファイルに記述する。図12は、ホールドエラー解析情報生成処理220により得られるホールドエラー解析情報222マージファイルの一部を示す図である。図12の例では、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力の位置に発生するホールドエラーのmin条件での最大エラー量は210psであり、インスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の位置に発生するホールドエラーのmin条件での最大エラー量は190psであることが記述されている。また、インスタンス名がTOP/I1/X1のDフリップフロップセルDFFのD入力の位置に発生するホールドエラーのmax条件での最大エラー量は150psであり、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力の位置に発生するホールドエラーのmax条件での最大エラー量は400psであり、インスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の位置に発生するホールドエラーのmax条件での最大エラー量は310psであることが記述されている。なお、本実施形態のホールドエラー修正処理180では、ホールドエラー解析情報変更処理280により、図12のホールドエラー解析情報222を変更してもよい。具体的には、ユーザーがバッファセルを挿入する位置と遅延時間を指定すると、ホールドエラー解析情報変更処理280により、指定された位置に指定された遅延時間に相当するエラー量のホールドエラーが擬似的に発生したものとする記述がホールドエラー解析情報222に追加される。図13は、図12のホールドエラー解析情報222に対して、インスタンス名がTOP/X2のDフリップフロップセルDFFのD入力の位置と遅延時間100psを指定してホールドエラー解析情報変更処理280を行うことで変更されたホールドエラー解析情報222マージファイルの一部を示す図である。図13の例では、図12のホールドエラー解析情報222に対して、インスタンス名がTOP/X2のDフリップフロップセルDFFのD入力の位置に100psのホールドエラーが擬似的に発生したものとする記述が追加されている。次に、本実施形態のホールドエラー修正処理180では、図13のホールドエラー解析情報222と図9のバッファテーブル202を用いて、図6のフローチャートによるバッファ挿入方針決定処理240を行い、バッファ挿入コマンド242を生成する。具体的には、まず、図13のホールドエラー解析情報222に記述されるmin条件でのホールドエラーの発生位置毎に、図9のバッファテーブル202に記述されたバッファセルの中から、min条件での遅延時間の総和がエラー量以上の最小値となる1又は複数のバッファセルを選択する。次に、図13のホールドエラー解析情報222に記述されるmax条件でのホールドエラーの発生位置毎に、min条件でホールドエラーが発生していない場合は、図9のバッファテーブル202に記述されたバッファセルの中から、バッファセルのmax条件での遅延時間の総和がエラー量以上の最小値となる1又は複数のバッファセルを選択する。一方、min条件でもホールドエラーが発生している場合は、min条件でのホールドエラーの修正用に既にバッファセルが選択されているので、この選択されたバッファセルでmax条件でのホールドエラーも解消するか否か判定する。そして、解消しない場合に限り、図9のバッファテーブル202に記述されたバッファセルの中から、バッファセルのmax条件での遅延時間の総和がエラー量以上の最小値となる1又は複数のバッファセルを選択する。このようにして最後に選択した1又は複数のバッファセルを各ホールドエラーの発生位置に挿入するバッファとして、バッファ挿入コマンド242を生成する。図13のホールドエラー解析情報222では、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力の位置に発生したホールドエラーのmin条件での最大エラー量は210psである。従って、図9のバッファテーブル202より、バッファセル2BFX2を1つ選択するのが、min条件での遅延時間の総和がエラー量以上の最小値220psとなる最適な選択である。そして、図9のバッファテーブル202より、バッファセル2BFX2のmax条件での遅延時間は900psなので、1つのバッファセル2BFX2を選択することでmax条件でのホールドエラー最大エラー量が400psも解消する。従って、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力の前に1つのバッファセル2BFX2を挿入するコマンドがバッファ挿入コマンド242コマンドファイルに記述される。また、インスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の位置に発生したホールドエラーのmin条件での最大エラー量は190psである。従って、図9のバッファテーブル202より、バッファセル1BFX1を2つ選択するのが、min条件での遅延時間の総和がエラー量以上の最小値200psとなる最適な選択である。そして、図9のバッファテーブル202より、バッファセル1BFX1のmax条件での遅延時間は400psなので、2つのバッファセル1BFX1を選択することでmax条件でのホールドエラー最大エラー量が310psも解消する。従って、インスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の前に2つのバッファセル1BFX1を挿入するコマンドがバッファ挿入コマンド242コマンドファイルに記述される。一方、インスタンス名がTOP/I1/X1のDフリップフロップセルDFFのD入力の位置にはmax条件でのみホールドエラーが発生している。従って、図9のバッファテーブル202より、バッファセル1BFX1を1つ選択するのが、max条件での遅延時間の総和がエラー量以上の最小値400psとなる最適な選択であり、インスタンス名がTOP/I1/X1のDフリップフロップセルDFFのD入力の前に1つのバッファセル1BFX1を挿入するコマンドがバッファ挿入コマンド242コマンドファイルに記述される。また、インスタンス名がTOP/X2のDフリップフロップセルDFFのD入力の位置にはmin条件でのホールドエラーユーザーの指定により追加された擬似的なホールドエラーが発生している。従って、図9のバッファテーブル202より、バッファセル1BFX1を1つ選択するのが、min条件での遅延時間の総和がエラー量以上の最小値100psとなる最適な選択であり、インスタンス名がTOP/X2のDフリップフロップセルDFFのD入力の前に1つのバッファセル1BFX1を挿入するコマンドがバッファ挿入コマンド242コマンドファイルに記述される。ただし、バッファ挿入コマンド242コマンドファイルはネットリスト修正処理260で用いられる論理合成エンジンに対応するフォーマットで記述されており、ユーザーにとってバッファセルの挿入位置と個数がわかりにくい場合もある。そこで、本実施形態のバッファ挿入方針決定処理240では、バッファセルの挿入位置と個数を記述したバッファ挿入テキスト情報244テキストファイルがさらに生成される。図14は、図13のホールドエラー解析情報222と図9のバッファテーブル202を用いたバッファ挿入方針決定処理240により生成されたバッファ挿入テキスト情報244テキストファイルの一部を示す図である。図14の例では、インスタンス名がTOP/I1/X1のDフリップフロップセルDFFのD入力の前にバッファセル1BFX1が1個挿入され、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力の前にバッファセル2BFX2が1個挿入され、インスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の前にバッファセル1BFX1が2個挿入され、インスタンス名がTOP/X2のDフリップフロップセルDFFのD入力の前にバッファセル1BFX1が1個挿入されることが明確に示されている。ユーザーは、このバッファ挿入テキスト情報244テキストファイルを確認し、必要に応じて、挿入するバッファの種類や数を修正することも可能である。この場合、修正対象となるのは、バッファ挿入コマンド242コマンドファイルである。最後に、本実施形態のホールドエラー修正処理180では、図7の回路図に対応するネットリスト124に対して、バッファ挿入コマンド242コマンドファイルを用いてネットリスト修正処理260を行い、ホールドエラーが修正されたネットリスト182を生成する。図15は、ネットリスト修正処理260により、図7の回路図に対応するネットリスト124に対してホールドエラーが修正されたネットリスト182に対応する回路図である。図15では、ネットリスト182に含まれる一部の回路のみ表記されている。図15の例では、図7の回路図に対して、インスタンス名がTOP/I1/X1のDフリップフロップセルDFFのD入力の前にバッファセル1BFX1が1個挿入され、インスタンス名がTOP/I1/X2のDフリップフロップセルDFFのD入力の前にバッファセル2BFX2が1個挿入され、インスタンス名がTOP/I1/X3のDフリップフロップセルDFFのD入力の前にバッファセル1BFX1が2個挿入され、インスタンス名がTOP/X2のDフリップフロップセルDFFのD入力の前にバッファセル1BFX1が1個挿入されている。このようなホールドエラー修正処理180により、最適なホールドエラー修正が行われたネットリスト182を得ることができる。以上に説明した本実施形態の設計支援システムによれば、図4のフローチャートに従って生成されるバッファテーブル202に含まれる各バッファの遅延時間は、ライブラリーに用意された一般的な遅延時間ではなく、レイアウト領域のサイズや形状に応じて決まる実際のレイアウト情報に特化した精度の高い遅延時間である。このバッファテーブル202を用いることで、図5や図6のフローチャートに従い、ホールドエラー修正のために挿入するバッファの種類と数を適切に決定することができるので、冗長なバッファの挿入を軽減することができるとともに設計の後戻りを軽減することができる。また、本実施形態の設計支援システムによれば、タイミング解析情報192-1~192-nからホールドエラー解析情報222を作成する作業、挿入するバッファの種類や数を決定する作業、バッファを挿入したネットリスト182を作成する作業をすべてシステム化することで、これらの作業における人為的ミスを防止することができ、設計工数を短縮することができる。また、本実施形態の設計支援システムによれば、複数の動作モードに対応する複数の静的タイミング解析の結果、同じ位置に異なるエラー量のホールドエラーが重複して発生した場合、図5に示したフローチャートに従い、最大のエラー量が選択されたホールドエラー解析情報222が生成され、図6のフローチャートに従い、このホールドエラー解析情報222を用いて挿入するバッファの種類と数を決定するので、すべての動作モードでのホールドエラーを解消させることができる。また、本実施形態の設計支援システムによれば、複数の遅延条件に対して同じ位置にホールドエラーが発生した場合、図6のフローチャートに従い、必要に応じて挿入するバッファの種類と数が更新されるので、すべての遅延条件に対するホールドエラーを解消させることができる。なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、本実施形態では、ホールドエラー修正処理180のネットリスト修正処理260によりホールドエラーが修正されたネットリスト182を生成し、このネットリスト182を用いて配置配線処理120を行うことで最終的なレイアウト情報を生成しているが、ネットリスト修正処理260を、ホールドエラー修正前のレイアウト情報124DEFファイルを修正することで配置配線処理120を介さずに最終的なレイアウト情報を直接的に生成する処理レイアウト情報修正処理に置き換えてもよい。また、例えば、本実施形態では、ホールドエラーの発生位置毎にホールドエラー量以上の最小の遅延時間となるバッファの種類と数を決定する例を挙げたが、マージンを見てホールドエラー量Δ所定のオフセット量以上の最小の遅延時間となるバッファの種類と数を決定するようにしてもよい。本発明は、実施の形態で説明した構成と実質的に同一の構成例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。"