"ハードマクロの特性値を抽出するためのキャラクタライズ装置であって、前記ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、前記ハードマクロ内の測定点における遅延時間を算出して特性値を抽出する特性値抽出手段と、前記特性値抽出手段によって抽出された特性値を用いて前記ハードマクロの動的検証を行なうことにより、前記特性値が適切か否かを検証する動的検証手段とを含む、キャラクタライズ装置。前記特性値抽出手段は、前記ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、前記ハードマクロ内のデータ保持回路までの複数の経路における遅延時間を測定し、該複数の経路における遅延時間の最大値および最小値から前記データ保持回路のセットアップ時間およびホールド時間を算出して前記特性値とする、請求項1記載のキャラクタライズ装置。前記特性値抽出手段は、前記ハードマクロに入力するデータおよびクロックに対して複数のスルーを与えて静的な経路探索を行なうことにより、複数のセットアップ時間およびホールド時間を算出し、データスルーおよびクロックスルーの組合せに対応するセットアップ時間およびホールド時間をテーブルとして保持し、前記動的検証手段は、前記特性値抽出手段によって保持されるテーブルを参照して、前記ハードマクロの動的検証を行なう、請求項2記載のキャラクタライズ装置。前記動的検証手段は、前記ハードマクロに入力するクロックに対して、前記ハードマクロに入力するデータを前記特性値抽出手段によって算出されたセットアップ時間またはホールド時間だけずらしてシミュレーションを行ない、出力が期待値となるか否かによって前記特性値が適切か否かを検証する、請求項2または3記載のキャラクタライズ装置。前記動的検証手段は、前記シミュレーションによって前記ハードマクロの内部でグリッチが発生するか否かによって前記特性値が適切か否かを検証する、請求項4記載のキャラクタライズ装置。前記動的検証手段は、前記シミュレーションによって前記ハードマクロの内部で発生するパルス幅が所定値以上であるか否かによって前記特性値が適切か否かを検証する、請求項4記載のキャラクタライズ装置。前記動的検証手段は、テンプレートに設定された値に応じて作成されたシミュレーション入力ファイルに基づいて、前記ハードマクロの動的検証を行なう、請求項1~6のいずれかに記載のキャラクタライズ装置。前記動的検証手段は、テンプレートに設定された値に応じて四則演算の判定式を生成し、該判定式に応じて前記特性値が適切か否かを検証する、請求項1~6のいずれかに記載のキャラクタライズ装置。前記動的検証手段は、前記ハードマクロの入力に接続されるドライバの出力に容量を付加することにより前記スルーを与える、請求項1~8のいずれかに記載のキャラクタライズ装置。コンピュータにハードマクロの特性値を抽出させるためのコンピュータプログラムであって、前記コンピュータに、前記ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なわせることにより、前記ハードマクロ内の測定点における遅延時間を算出して特性値を抽出させるステップと、前記コンピュータに、前記抽出された特性値を用いて前記ハードマクロの動的検証を行なわせることにより、前記特性値が適切か否かを検証させるステップとを含む、コンピュータプログラム。ハードマクロのキャラクタライズ手法において用いられる遅延差抽出方法は、後述のように大きく静的な遅延差抽出と動的な遅延差抽出とに分けることができる。静的な遅延差抽出は、高速に遅延計算を行なうことができるが、信頼性が低いといった問題点がある。それに対して、動的な遅延差抽出は、信頼性が高いが、遅延計算に長時間を要するといった問題点がある。半導体集積回路の高集積化が進んでおり、より高速にハードマクロの特性抽出が行なえるキャラクタライズ手法に対する要望が高まっているが、上述の特許文献1~5に開示された発明を用いたとしても、このような高速なキャラクタライズ手法を実現することができない。本発明は、上記問題点を解決するためになされたものであり、その目的は、高速に信頼性の高いハードマクロの特性値を抽出することが可能なキャラクタライズ装置およびそのコンピュータプログラムを提供することである。本発明の一実施例によれば、ハードマクロの特性値を抽出するためのキャラクタライズ装置が提供される。特性値抽出部は、ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、ハードマクロ内の測定点における遅延時間を算出して特性値を抽出する。動的検証部は、特性値抽出部によって抽出された特性値を用いてハードマクロの動的検証を行なうことにより、特性値が適切か否かを検証する。本発明の一実施例によれば、動的検証部が、特性値抽出部によって抽出された特性値を用いてハードマクロの動的検証を行なうことにより、特性値が適切か否かを検証するので、動的検証に要する時間を短くすることができる。したがって、高速に信頼性の高いハードマクロの特性値を抽出することが可能となる。一般に、キャラクタライズ手法において用いられる遅延差抽出方法は、大きく静的な遅延差抽出と動的な遅延差抽出とに分類される。静的な遅延差抽出とは、シミュレーションを実行しないで遅延値を得るものであり、たとえば接続情報ネットリストに基づく経路探索を挙げることができる。この静的な遅延差抽出は、シミュレーションを実行しないため高速に行なうことができるが、信頼性が低いといった特徴を有している。一方、動的な遅延差抽出とは、シミュレーションを実行して遅延値を得るものである。この動的な遅延差抽出は、シミュレーションを実行するため長時間を要するが、信頼性が高いといった特徴を有している。ここで、シミュレーションとは、ゲートレベルインバータ、NANDゲート、フリップフロップなどのセル単位またはより詳細なトランジスタレベルで遅延計算を行なうものである。ゲートレベルのシミュレーションにおいては、半導体チップの設計で使用する各セルに対して、ある入力に対してどの程度遅延して出力するかを示す遅延情報が予め与えられており、この各セルの遅延情報を用いて、その設計された回路の遅延値などの計算が行なわれる。トランジスタレベルのシミュレーションにおいては、そのトランジスタの動作に関するパラメータ、たとえばゲート電圧、ドレイン電圧に対してトランジスタにどの程度の電流が生じるかの計算式が予め与えられており、そのパラメータを用いて遅延値などの計算が行なわれる。したがって、トランジスタレベルのシミュレーションは、ゲートレベルのシミュレーションと比較して正確な遅延計算が行なえるが、処理量が大きくなる。以下、静的経路探索、動的検証などの用語が用いられるが、基本的には上記のようにシミュレーションを実行するか否かによって、静的であるか、または動的であるかが分類される。図1は、本発明の実施の形態におけるキャラクタライズ装置の構成例を示すブロック図である。キャラクタライズ装置は、一般的なコンピュータによって実現され、コンピュータ本体1、ディスプレイ装置2、FDFlexibleDisk4が装着されるFDドライブ3、キーボード5、マウス6、CD-ROMCompactDiscReadOnlyMemory8が装着されるCD-ROM装置7、およびネットワーク通信装置9を含む。ハードマクロのキャラクタライズのためのプログラムは、FD4またはCD-ROM8等の記録媒体によって供給される。プログラムがコンピュータ本体1によって実行されることにより、ハードマクロのキャラクタライズが行なわれる。また、プログラムは他のコンピュータより通信回線を経由し、コンピュータ本体1に供給されてもよい。また、コンピュータ本体1は、CPU10、ROMReadOnlyMemory11、RAMRandomAccessMemory12およびハードディスク13を含む。CPU10は、ディスプレイ装置2、FDドライブ3、キーボード5、マウス6、CD-ROM装置7、ネットワーク通信装置9、ROM11、RAM12またはハードディスク13との間でデータを入出力しながら処理を行なう。FD4またはCD-ROM8に記録されたプログラムは、CPU10によりFDドライブ3またはCD-ROM装置7を介してハードディスク13に格納される。CPU10は、ハードディスク13から適宜プログラムをRAM12にロードして実行することによって、ハードマクロのキャラクタライズが行なわれる。図2は、本発明の実施の形態におけるキャラクタライズ装置の機能的構成を示すブロック図である。本実施の形態におけるキャラクタライズ装置は、図1に示すコンピュータが上記プログラムを実行することによって実現され、ベクタテンプレート格納ファイル31と、特性値抽出部32と、ライブラリ生成部33と、動的検証部34と、ライブラリ格納ファイル35と、検証結果格納ファイル36とを含む。特性値抽出部32は、ベクタテンプレート格納ファイル31に格納されるベクタテンプレートを用いてシミュレーション入力ファイルを生成して静的経路探索を行ない、セットアップ時間、ホールド時間、遅延時間などのハードマクロの特性値を抽出する。なお、ベクタテンプレートとは、値を設定することにより、信号波形に所望のスルーを付加したり、所望のセットアップ時間およびホールド時間だけずらした信号波形を生成したりするためのテンプレートである。ライブラリ生成部33は、特性値抽出部32によって抽出された特性値からセットアップ時間およびホールド時間のテーブルを作成し、ライブラリとしてライブラリ格納ファイル35に格納する。動的検証部34は、ライブラリ格納ファイル35に格納されたライブラリを参照してセットアップ時間およびホールド時間を抽出し、動的検証を行なって検証結果を検証結果格納ファイル36に格納する。図3は、本発明の実施の形態におけるキャラクタライズ装置による特性抽出の対象となるハードマクロを含んだ回路の一例を示す図である。この回路は、バッファ21~23と、フリップフロップ24と、AND回路25~29と、ハードマクロH/M30とを含む。一般に、半導体製品のサインオフ検証で使用される静的タイミング検証StaticTimingAnalysisの検証単位は、LatchtoLatch間であることが多い。図3に示すように、フリップフロップ24の出力がAND回路25~29を経てハードマクロ30に入力される回路構成においては、ハードマクロ30が終点になることが多い。そのため、ハードマクロ30のタイミング制約を高速、高精度に抽出してライブラリからマージンを削除することが重要になる。図4は、本発明の実施の形態におけるキャラクタライズ装置を用いた経路探索の処理手順を説明するためのフローチャートである。なお、以下の説明においては、ハードマクロ30がSRAMの場合について説明する。まず、人手によりモード指定、フォルスパス指定などを行ない、経路探索設定を行なうS11。ここで、モード設定とは、SRAMの動作モードの設定を意味しており、リードモードおよびライトモードがある。また、フォルスパス指定とは、経路探索を行なわないパスの指定を意味している。次に、特性値抽出部32は、静的な経路探索を行なって特性抽出を行なう。そして、ライブラリ生成部33は、特性値抽出部32によって抽出された特性値からライブラリを作成してライブラリ格納ファイル35に格納するS12。この静的な経路探索は、静的なトランジスタレベルのパス検索であり、その詳細は後述する。ここで抽出される特性として、セットアップ時間、ホールド時間、遅延時間などが挙げられる。次に、動的検証部34は、ライブラリ生成部33によって生成されたライブラリを用いて動的自動検証を行ない、その検証結果にエラーがあるか否かNGがあるか否かを判定するS14。エラーがなければS14,No、処理を終了する。また、エラーがあればS14,Yes、人手により経路確認を行ないS15、経路探索設定の見直しを検討するS16。たとえば、経路探索結果から、エラーとなったゲーテッド、スルーラッチ、特殊なトポロジなどの誤探索し易い部分を抽出し、それらの部分の状態を動的自動検証のエラー判定に追加したり、フォルスパスに指定したりする。このように、実際の動作状況確認によって、的確な設定修正が行なえるようになる。そして、ステップS11以降の処理をエラーがなくなるまで繰り返す。なお、経路確認と動的検証結果から的確な修正情報が得られるため、繰り返し回数は少なくなり、ほとんど1回で済むようになる。図5は、図4に示す特性抽出処理S12の詳細を説明するためのフローチャートである。まず、ユーザが生成したいテーブルサイズn×nのインデックス入力スルーを指定するS21。ここで、データスルーをSc1~Scn、クロックスルーをSr1~Srnとする。次に、特性値抽出部32は、変数iに0を設定しS22、変数iをインクリメントするS23。そして、所望のスルーSci,Sriを得るための容量を決定するS24。遅延値は、入力信号波形の傾きスルーによっても変わってくる。正確な遅延値を得るためには、データおよびクロックの信号波形に様々なスルーを付加し、それをハードマクロ30に入力する必要がある。様々なスルーを得るために必要な容量値が予め決められており、その容量値を変えることによって所望のスルーを信号波形に与える。ベクタテンプレート格納ファイル31に格納されるテンプレートは、容量値を与えることによって信号波形に所望のスルーが与えられるように作成されている。特性値抽出部32は、所望のスルーSci,Sriが得られる容量値をテンプレートに設定することにより、シミュレーション入力ファイルを生成するS25。次に、特性値抽出部32は、生成したシミュレーション入力ファイルを用いてシミュレーションを実行してデータ遅延Tciおよびクロック遅延Triを測定し、測定結果を測定結果格納ファイル37に格納するS26。図6は、ハードマクロ30におけるデータ遅延Tciおよびクロック遅延Triを説明するための図である。図6に示すハードマクロ30においては、データDATAおよびクロックCLKが、組合せ回路41を経てフリップフロップ/ラッチ42やゲート43に入力されている。ステップS26においては、ユーザによって指定された観測点のデータ遅延Tciおよびクロック遅延Triが測定される。なお、外部端子であるデータDATAおよびクロックCLKから観測点までに複数の経路がある場合には、それぞれの経路についてデータ遅延Tciおよびクロック遅延Triが測定される。次に、特性値抽出部32は、変数iがnと等しいか否かを判定するS27。変数iがnよりも小さければS27,No、等しくなるまでステップS23~S26の処理を繰り返す。また、変数iがnと等しければS27,Yes、特性値抽出部32は、変数iに0を代入しS28、変数iをインクリメントするS29。そして、変数jに0を代入しS30、変数jをインクリメントするS31。次に、特性値抽出部32は、測定結果格納ファイル37から測定結果Tci,Trjを読み出し、特性値であるセットアップ時間およびホールド時間を算出して計算結果格納ファイル38に格納するS32。ここで、セットアップ時間setupおよびホールド時間holdの算出方法について簡単に説明する。データDATAから観測点までに複数の経路がある場合、それらの経路の遅延の最大値をMaxTciとし、最小値をMinTciとする。同様に、クロックCLKから観測点までに複数の経路がある場合、それらの経路の遅延の最大値をMaxTriとし、最小値をMinTriとする。そして、遅延のばらつきを考慮した補正係数をocvとすると、セットアップ時間setupおよびホールド時間holdは次式によって算出される。setupi,j=MaxTci×1ocv-MinTri×1-ocv1holdi,j=MaxTri×1ocv-MinTci×1-ocv2次に、特性値抽出部32は、変数jがnと等しいか否かを判定するS33。変数jがnと等しくなければS33,No、ステップS31~S32の処理を繰り返す。また、変数jがnと等しければS33,Yes、特性値抽出部32は、変数iがnと等しいか否かを判定するS34。変数iがnと等しくなければS34,No、ステップS29~S33の処理を繰り返す。また、変数iがnと等しければS34,Yes、ライブラリ生成部33は、データスルーおよびクロックスルーとセットアップ時間との対応を示すセットアップテーブルと、データスルーおよびクロックスルーとホールド時間との対応を示すホールドテーブルとを生成し、ライブラリとしてライブラリ格納ファイル35に格納しS35、処理を終了する。図7は、図4に示す動的自動検証処理S13の詳細を説明するためのフローチャートである。まず、ユーザが検証したいテーブルのインデックス入力スルーを指定するS41。ここで、検証したいテーブルのデータスルーをSc1~Scm、クロックスルーをSr1~Srmとする。次に、動的検証部34は、変数iに0を設定しS42、変数iをインクリメントするS43。そして、ライブラリ格納ファイル35を参照して、検証したい特性値であるセットアップ時間setupci,riおよびホールド時間holdci,riを抽出するS44。次に、動的検証部34は、ベクタテンプレート格納ファイル31を参照して、特性値であるセットアップ時間setupci,riおよびホールド時間holdci,riだけずらした信号波形ベクタを生成するS45。図8は、ステップS45に示すベクタの生成を説明するための図である。動的検証部34は、ライブラリ格納ファイル35に格納されるセットアップテーブルを参照して、データスルーSciおよびクロックスルーSriに対応するセットアップ時間を抽出する。図8aは、セットアップテーブルの一例を示しており、データスルーScislew_cおよびクロックスルーSrislew_rに対応するセットアップ時間setupが抽出されるところを示している。そして、動的検証部34は、図8bに示すように、セットアップ時間の検証を行なう場合には、クロックCLKの波形に対して、データDATAをセットアップ時間だけ前にずらした波形を生成し、これをベクタとする。また、ホールド時間の検証を行なう場合には、クロックCLKの波形に対して、データDATAをホールド時間だけ後ろにずらした波形を生成し、これをベクタとする。次に、動的検証部34は、図8bに示すように、所望のスルーSci,Sriを得るようにデータDATAおよびクロックCLKに付加すべき容量を決定するS46。図9は、データDATAおよびクロックCLKに所望のスルーを付加するための方法を説明するための図である。図9に示すように、ハードマクロ30の入力にドライバ51および52が接続されている場合には、外部からデータDATAおよびクロックCLKの傾きを制御することができない。そのため、ドライバ51および52の出力に容量C1およびC2を付加し、容量C1およびC2の値を変えることによってデータおよびクロックに所望の傾きを得るようにしている。動的検証部34は、ベクタテンプレート格納ファイル31を参照し、ハードマクロ30に入力されるデータおよびクロックが図8bに示すような遅延値および傾きを持った波形となるように、シミュレーション入力ファイルを生成するS47。次に、動的検証部34は、シミュレーション入力ファイルを用いてハードマクロ30のシミュレーションを実行して、出力信号の遅延時間やグリッチスパイクなどの測定結果を測定結果格納ファイル39に格納するS48。そして、動的検証部34は、測定結果格納ファイル39を参照して、測定結果の検証を行ない、検証結果を検証結果格納ファイル36に格納するS49。たとえば、セットアップ時間の検証を行なう場合には、クロックの立ち上がりでデータが正しく保持されているか否か、スパイクが発生していないか否か、パルス幅が十分であるか否かなどが判定される。図10は、セットアップ時間の検証を行なう場合の検証結果の一例を示す図である。データに対してクロックをセットアップ時間だけずらしてハードマクロ30に入力し、シミュレーションを行なった結果、ハードマクロ30の内部で所望の変化があった場合は検証結果がOKと判定される。また、ハードマクロ30の内部で所望の変化がなかった場合は検証結果がNGと判定される。同様に、外部端子で所望の変化があったか否かも判定される。また、ハードマクロ30の内部でスパイクが発生しなかった場合は検証結果がOKと判定される。また、ハードマクロ30の内部でスパイクが発生した場合は検証結果がNGと判定される。また、ハードマクロ30の内部におけるパルス幅が十分な場合は検証結果がOKと判定される。また、ハードマクロ30の内部におけるパルス幅が不十分な場合は検証結果がNGと判定される。また、ホールド時間の検証を行なう場合には、クロックの立ち上がりに対して前のデータが正しく保持されているか否か、スパイクが発生していないか否か、パルス幅が十分であるか否かなどが判定される。最後に、動的検証部34は、変数iがmと等しいか否かを判定するS50。変数iがmと等しくなければS50,No、ステップS43に戻って、以降の処理を繰り返す。また、変数iがmと等しければS50,Yes、処理を終了する。図11は、ベクタテンプレート格納ファイル31に格納されるベクタテンプレートの一例を示す図である。図11aにおいて、ベクタは各入力信号のパターンを記述する部分であり、クロックCLK、チップイネーブルCEN、ライトイネーブルWENおよびアドレスA[ADDR]の入力パターンが定義されている。なお、ADDRはアドレス幅を示しており、テンプレート展開するときに使用される。図12は、図11aに示すWEN信号の波形を示す図である。図11aに示すテンプレートのNは周期内で0から1に変化することを示し、Pは周期内で1から0に変化することを示している。したがって、たとえば図11aに示すテンプレートのWEN信号は、図12に示すような波形となる。測定指定は、ネットリストの中の測定点における遅延やグリッチを測定するための記述である。yod[BIT]は、出力端子を測定点として遅延時間を測定するための記述であり、クロックCLKをトリガとし、出力端子Q[BIT]の遅延時間を測定するものである。なお、BITは、データ幅を示しており、テンプレート展開するときに使用される。yrd[ADDR]は、中間ノードを測定点として遅延時間を測定するための記述であり、クロックCLKをトリガとし、中間ノードX0.X1.T[ADDR]の遅延時間を測定するものである。yg0[ADDR]は、中間ノードのグリッチを測定するための記述であり、中間ノードX0.X1.D[ADDR]のグリッチを測定するものである。なお、測定指定の右端に記述される数字は周期を示すものであるが、本発明と直接関連するものではないため、その詳細な説明は行なわない。計算指定は、測定結果に対して四則演算を行なうことにより検証OK/NG判定を行なう記述であり、CHECKSUBMULdelay0,1.1,yod[BIT],LEは、出力端子Q[BIT]の遅延時間であるyod[BIT]が、delay0×1.1以下であることを判定するための記述である。CHECKSUBMULdelay1,1.1,yrd[ADDR],LEは、中間ノードの遅延時間であるyrd[ADDR]が、delay1×1.1以下であることを判定するための記述である。CHECKSUB0.2,yg0,GEは、中間ノードのグリッチの幅が0.2以上であることを判定するための記述である。このように、四則演算によって測定点における種々の検証を行なうことができる。図11bは、テンプレート展開の一例を示す図である。ハードマクロがSRAMの場合には、SRAMのビット幅やワード数を柔軟に変更できることが必要とされる。そのため、図11aに示すテンプレートのBITおよびADDRに、ビット幅およびワード数に相当する値を設定してテンプレート展開を行なうことにより、そのビット幅およびワード数に対応したシミュレーション入力ファイル群を自動的に生成できるようになる。このシミュレーション入力ファイル群を用いて検証が行なわれる。以上説明したように、本実施の形態におけるキャラクタライズ装置によれば、特性値抽出部32が静的経路探索によってハードマクロの特性値を抽出し、動的検証部34が抽出された特性値に対して動的検証を行なって、抽出した特性値が適切であるか否かを判定するようにしたので、高速に信頼性の高いハードマクロの特性値を抽出することが可能となった。また、特性値の検証においてエラーが発生した場合には、人手により経路確認を行なうことにより設定の見直しができるため、誤探索し易い部分により発生したエラーか否かをを容易に判定でき、経路探索の再設定を容易に行うことが可能となった。また、テンプレートを展開することによってシミュレーション入力ファイル群を生成するようにしたので、任意のビット幅およびワード数を有するSRAMの検証に対応することが可能となった。また、測定結果が適切であるか否かの複雑な検証を、簡単な四則演算の判定式を用いて行なうようにしたので、ユーザは判定式を容易に作成することができ特性値の検証を容易に行なうことが可能となった。また、動的検証部34は、ハードマクロ30内部のグリッチやパルス幅に応じて特性値が適切であるか否かも判定できるようにしたので、より高精度に特性値の検証を行なうことが可能となった。また、ハードマクロ30の入力に接続されるドライバの出力に任意の容量を付加できるようにしたので、ハードマクロ30に入力される信号波形に任意の傾きを与えることができ、より高精度な動的検証を行なうことが可能となった。今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"