(57)【要約】【課題】高速に信頼性の高いハードマクロの特性値を抽出することが可能なキャラクタライズ装置を提供すること。【解決手段】特性値抽出部３２は、ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、ハードマクロ内の測定点における遅延時間を算出して特性値を抽出する。動的検証部３４は、特性値抽出部３２によって抽出された特性値を用いてハードマクロの動的検証を行なうことにより、特性値が適切か否かを検証する。したがって、動的検証に要する時間を短くすることができ、高速に信頼性の高いハードマクロの特性値を抽出することが可能となる。【選択図】図２
2012230605.tif 000002
【特許請求の範囲】
【請求項１】
ハードマクロの特性値を抽出するためのキャラクタライズ装置であって、
前記ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、前記ハードマクロ内の測定点における遅延時間を算出して特性値を抽出する特性値抽出手段と、
前記特性値抽出手段によって抽出された特性値を用いて前記ハードマクロの動的検証を行なうことにより、前記特性値が適切か否かを検証する動的検証手段とを含む、キャラクタライズ装置。
【請求項２】
前記特性値抽出手段は、前記ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、前記ハードマクロ内のデータ保持回路までの複数の経路における遅延時間を測定し、該複数の経路における遅延時間の最大値および最小値から前記データ保持回路のセットアップ時間およびホールド時間を算出して前記特性値とする、請求項１記載のキャラクタライズ装置。
【請求項３】
前記特性値抽出手段は、前記ハードマクロに入力するデータおよびクロックに対して複数のスルーを与えて静的な経路探索を行なうことにより、複数のセットアップ時間およびホールド時間を算出し、データスルーおよびクロックスルーの組合せに対応するセットアップ時間およびホールド時間をテーブルとして保持し、
前記動的検証手段は、前記特性値抽出手段によって保持されるテーブルを参照して、前記ハードマクロの動的検証を行なう、請求項２記載のキャラクタライズ装置。
【請求項４】
前記動的検証手段は、前記ハードマクロに入力するクロックに対して、前記ハードマクロに入力するデータを前記特性値抽出手段によって算出されたセットアップ時間またはホールド時間だけずらしてシミュレーションを行ない、出力が期待値となるか否かによって前記特性値が適切か否かを検証する、請求項２または３記載のキャラクタライズ装置。
【請求項５】
前記動的検証手段は、前記シミュレーションによって前記ハードマクロの内部でグリッチが発生するか否かによって前記特性値が適切か否かを検証する、請求項４記載のキャラクタライズ装置。
【請求項６】
前記動的検証手段は、前記シミュレーションによって前記ハードマクロの内部で発生するパルス幅が所定値以上であるか否かによって前記特性値が適切か否かを検証する、請求項４記載のキャラクタライズ装置。
【請求項７】
前記動的検証手段は、テンプレートに設定された値に応じて作成されたシミュレーション入力ファイルに基づいて、前記ハードマクロの動的検証を行なう、請求項１〜６のいずれかに記載のキャラクタライズ装置。
【請求項８】
前記動的検証手段は、テンプレートに設定された値に応じて四則演算の判定式を生成し、該判定式に応じて前記特性値が適切か否かを検証する、請求項１〜６のいずれかに記載のキャラクタライズ装置。
【請求項９】
前記動的検証手段は、前記ハードマクロの入力に接続されるドライバの出力に容量を付加することにより前記スルーを与える、請求項１〜８のいずれかに記載のキャラクタライズ装置。
【請求項１０】
コンピュータにハードマクロの特性値を抽出させるためのコンピュータ・プログラムであって、
前記コンピュータに、前記ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なわせることにより、前記ハードマクロ内の測定点における遅延時間を算出して特性値を抽出させるステップと、
前記コンピュータに、前記抽出された特性値を用いて前記ハードマクロの動的検証を行なわせることにより、前記特性値が適切か否かを検証させるステップとを含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の検証を行なう技術に関し、特に、ＳＲＡＭ（Static Random Access Memory）などのハードマクロの特性抽出を行なうキャラクタライズ装置およびそのコンピュータ・プログラムに関する。
【背景技術】
【０００２】
近年、半導体集積回路の高機能化、多機能化が進んでおり、ＣＰＵ（Central Processing Unit）、周辺Ｉ／Ｏ、ＳＲＡＭ等のハードマクロが１つの半導体チップに搭載されることが多くなってきている。このような半導体装置において、ＳＲＡＭなどのハードマクロのキャラクタライズ（特性抽出）を高速に行なう手法が必要になってくる。これに関連する技術として、下記の特許文献１〜４に開示された発明がある。
【０００３】
特許文献１は、安価なＣＰＵコストで、且つ高精度のタイミング検証を行うタイミング検証方法を提供することを目的とする。データ信号およびクロック信号の各入力時刻および各入力波形なまりを調べ、データ信号およびクロック信号の各入力波形なまりを各関数の変数にそれぞれ入力しデータ信号遅延時間およびクロック信号遅延時間をそれぞれ計算する。そして、データ信号およびクロック信号の各入力時刻とデータ信号遅延時間およびクロック信号遅延時間とから論理回路内のデータ保持素子の内部ノードにおけるデータ信号とクロック信号との到着時刻差を計算する。また、タイミング制約値と到着時刻差を比較し、データ信号およびクロック信号の入力時刻のタイミング制約違反を検出する。
【０００４】
特許文献２は、パラメタライズドメモリの特性値を短時間で高精度に抽出するためのパラメタライズドメモリの回路縮退方法及び論理セルライブラリ生成方法を提供することを目的とする。パラメタライズドメモリのレイアウトデータからリーフセルのネットリストを生成する際に、リーフセルのトランジスタの寄生抵抗及び寄生容量を抽出し、リーフセルを縮退した等価回路に置き換える。上記リーフセルを組み合わせてメモリ全体の等価回路を作成する際に、特性計算に影響のない部分を除去するとともに、特性計算に影響する部分で簡単化できる部分を縮退する。そして、入力ベクトルや解析条件を含む回路シュミレーション実行ネットリストを生成し、回路シュミレーションを実行し、その実行結果に基づいて特性計算を行い論理セルライブラリを自動生成する。
【０００５】
特許文献３は、半導体集積回路装置に内蔵されたメモリーなど機能マクロの入力端子の入力セットアップ・ホールドタイミング値を精度良く測定することを目的とする。セレクタ回路とＦＦ回路とを設け、機能マクロが正常に動作する状態にして外部クロック信号と外部入力信号のタイミングを固定し、セレクタ回路で機能マクロのクロック端子２の信号を選択させ、ＦＦ回路に測定用クロック信号を位相をずらしながら与えてＦＦ回路の出力が変移するタイミングを検出する。そして、その時点での測定用クロック信号のタイミングＴｂを観測し、セレクタ回路で機能マクロの入力端子の信号を選択させ、ＦＦ回路に測定用クロック信号を位相をずらしながら与えてＦＦ回路の出力が変移するタイミングを検出し、その時点での測定用クロック信号のタイミングＴａを観測し、タイミングＴａとＴｂとの時間差を算出する。
【０００６】
特許文献４は、多数の入出力経路を有する回路のタイミングライブラリ作成における回路シミュレーションの回数を低減し、タイミングライブラリ作成に要する時間を低減することを目的とする。タイミングライブラリ作成装置が４ビットレジスタ回路のタイミングライブラリを作成する場合、一部の１ビットレジスタについてのみ、タイミングライブラリに含まれるすべての動作条件でシミュレーションが行われ、その結果得られた遅延値やタイミング制約値が、他の１ビットレジスタの遅延値やタイミング制約値でもあるとして、タイミングライブラリが作成される。シミュレーションが行われる一部の１ビットレジスタは、まず、４つの１ビットレジスタについて、タイミングライブラリに含まれる複数の動作条件のうちの一部の動作条件でシミュレーションが行われ、それにより求められた遅延値やタイミング制約値が最大であるものが選択される。
【０００７】
特許文献５は、静的タイミング検証部が、第１種ブロックについて、第１種ブロック接続情報、クロック情報、およびデータ入力タイミング情報を参照しつつ、従来周知の手法で静的タイミング検証を実行する。テストパターン生成部は、静的タイミング検証結果とクロック情報とにもとづいて、第２種ブロックに対する動的タイミング検証を行うための入力テストパターンを生成する。そして、動的タイミング検証部は、第２種ブロックについて、入力テストパターンにもとづいて、動的タイミング検証を行う。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０９−１７９８８８号公報
【特許文献２】特開平１０−２２２５４５号公報
【特許文献３】特開２００３−２１８２１６号公報
【特許文献４】特開２００６−３５０５４８号公報
【特許文献５】特開平０９−２１２５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ハードマクロのキャラクタライズ手法において用いられる遅延差抽出方法は、後述のように大きく静的な遅延差抽出と動的な遅延差抽出とに分けることができる。静的な遅延差抽出は、高速に遅延計算を行なうことができるが、信頼性が低いといった問題点がある。それに対して、動的な遅延差抽出は、信頼性が高いが、遅延計算に長時間を要するといった問題点がある。
【００１０】
半導体集積回路の高集積化が進んでおり、より高速にハードマクロの特性抽出が行なえるキャラクタライズ手法に対する要望が高まっているが、上述の特許文献１〜５に開示された発明を用いたとしても、このような高速なキャラクタライズ手法を実現することができない。
【００１１】
本発明は、上記問題点を解決するためになされたものであり、その目的は、高速に信頼性の高いハードマクロの特性値を抽出することが可能なキャラクタライズ装置およびそのコンピュータ・プログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明の一実施例によれば、ハードマクロの特性値を抽出するためのキャラクタライズ装置が提供される。特性値抽出部は、ハードマクロに入力する信号波形にスルーを与えて静的な経路探索を行なうことにより、ハードマクロ内の測定点における遅延時間を算出して特性値を抽出する。動的検証部は、特性値抽出部によって抽出された特性値を用いてハードマクロの動的検証を行なうことにより、特性値が適切か否かを検証する。
【発明の効果】
【００１３】
本発明の一実施例によれば、動的検証部が、特性値抽出部によって抽出された特性値を用いてハードマクロの動的検証を行なうことにより、特性値が適切か否かを検証するので、動的検証に要する時間を短くすることができる。したがって、高速に信頼性の高いハードマクロの特性値を抽出することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態におけるキャラクタライズ装置の構成例を示すブロック図である。
【図２】本発明の実施の形態におけるキャラクタライズ装置の機能的構成を示すブロック図である。
【図３】本発明の実施の形態におけるキャラクタライズ装置による特性抽出の対象となるハードマクロを含んだ回路の一例を示す図である。
【図４】本発明の実施の形態におけるキャラクタライズ装置を用いた経路探索の処理手順を説明するためのフローチャートである。
【図５】図４に示す特性抽出処理（Ｓ１２）の詳細を説明するためのフローチャートである。
【図６】ハードマクロ３０におけるデータ遅延（Ｔｃｉ）およびクロック遅延（Ｔｒｉ）を説明するための図である。
【図７】図４に示す動的自動検証処理（Ｓ１３）の詳細を説明するためのフローチャートである。
【図８】ステップＳ４５に示すベクタの生成を説明するための図である。
【図９】データ（ＤＡＴＡ）およびクロック（ＣＬＫ）に所望のスルーを付加するための方法を説明するための図である。
【図１０】セットアップ時間の検証を行なう場合の検証結果の一例を示す図である。
【図１１】ベクタテンプレート格納ファイル３１に格納されるベクタテンプレートの一例を示す図である。
【図１２】図１１（ａ）に示すＷＥＮ信号の波形を示す図である。
【発明を実施するための形態】
【００１５】
一般に、キャラクタライズ手法において用いられる遅延差抽出方法は、大きく「静的な遅延差抽出」と「動的な遅延差抽出」とに分類される。
【００１６】
静的な遅延差抽出とは、シミュレーションを実行しないで遅延値を得るものであり、たとえば接続情報（ネットリスト）に基づく経路探索を挙げることができる。この静的な遅延差抽出は、シミュレーションを実行しないため高速に行なうことができるが、信頼性が低いといった特徴を有している。
【００１７】
一方、動的な遅延差抽出とは、シミュレーションを実行して遅延値を得るものである。この動的な遅延差抽出は、シミュレーションを実行するため長時間を要するが、信頼性が高いといった特徴を有している。
【００１８】
ここで、シミュレーションとは、ゲートレベル（インバータ、ＮＡＮＤゲート、フリップフロップなどのセル単位）またはより詳細なトランジスタレベルで遅延計算を行なうものである。
【００１９】
ゲートレベルのシミュレーションにおいては、半導体チップの設計で使用する各セルに対して、ある入力に対してどの程度遅延して出力するかを示す遅延情報が予め与えられており、この各セルの遅延情報を用いて、その設計された回路の遅延値などの計算が行なわれる。
【００２０】
トランジスタレベルのシミュレーションにおいては、そのトランジスタの動作に関するパラメータ、たとえばゲート電圧、ドレイン電圧に対してトランジスタにどの程度の電流が生じるかの計算式が予め与えられており、そのパラメータを用いて遅延値などの計算が行なわれる。したがって、トランジスタレベルのシミュレーションは、ゲートレベルのシミュレーションと比較して正確な遅延計算が行なえるが、処理量が大きくなる。
【００２１】
以下、静的経路探索、動的検証などの用語が用いられるが、基本的には上記のようにシミュレーションを実行するか否かによって、静的であるか、または動的であるかが分類される。
【００２２】
図１は、本発明の実施の形態におけるキャラクタライズ装置の構成例を示すブロック図である。キャラクタライズ装置は、一般的なコンピュータによって実現され、コンピュータ本体１、ディスプレイ装置２、ＦＤ（Flexible Disk）４が装着されるＦＤドライブ３、キーボード５、マウス６、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）８が装着されるＣＤ−ＲＯＭ装置７、およびネットワーク通信装置９を含む。ハードマクロのキャラクタライズのためのプログラムは、ＦＤ４またはＣＤ−ＲＯＭ８等の記録媒体によって供給される。プログラムがコンピュータ本体１によって実行されることにより、ハードマクロのキャラクタライズが行なわれる。また、プログラムは他のコンピュータより通信回線を経由し、コンピュータ本体１に供給されてもよい。
【００２３】
また、コンピュータ本体１は、ＣＰＵ１０、ＲＯＭ（Read Only Memory）１１、ＲＡＭ（Random Access Memory）１２およびハードディスク１３を含む。ＣＰＵ１０は、ディスプレイ装置２、ＦＤドライブ３、キーボード５、マウス６、ＣＤ−ＲＯＭ装置７、ネットワーク通信装置９、ＲＯＭ１１、ＲＡＭ１２またはハードディスク１３との間でデータを入出力しながら処理を行なう。ＦＤ４またはＣＤ−ＲＯＭ８に記録されたプログラムは、ＣＰＵ１０によりＦＤドライブ３またはＣＤ−ＲＯＭ装置７を介してハードディスク１３に格納される。ＣＰＵ１０は、ハードディスク１３から適宜プログラムをＲＡＭ１２にロードして実行することによって、ハードマクロのキャラクタライズが行なわれる。
【００２４】
図２は、本発明の実施の形態におけるキャラクタライズ装置の機能的構成を示すブロック図である。本実施の形態におけるキャラクタライズ装置は、図１に示すコンピュータが上記プログラムを実行することによって実現され、ベクタテンプレート格納ファイル３１と、特性値抽出部３２と、ライブラリ生成部３３と、動的検証部３４と、ライブラリ格納ファイル３５と、検証結果格納ファイル３６とを含む。
【００２５】
特性値抽出部３２は、ベクタテンプレート格納ファイル３１に格納されるベクタテンプレートを用いてシミュレーション入力ファイルを生成して静的経路探索を行ない、セットアップ時間、ホールド時間、遅延時間などのハードマクロの特性値を抽出する。なお、ベクタテンプレートとは、値を設定することにより、信号波形に所望のスルーを付加したり、所望のセットアップ時間およびホールド時間だけずらした信号波形を生成したりするためのテンプレートである。
【００２６】
ライブラリ生成部３３は、特性値抽出部３２によって抽出された特性値からセットアップ時間およびホールド時間のテーブルを作成し、ライブラリとしてライブラリ格納ファイル３５に格納する。
【００２７】
動的検証部３４は、ライブラリ格納ファイル３５に格納されたライブラリを参照してセットアップ時間およびホールド時間を抽出し、動的検証を行なって検証結果を検証結果格納ファイル３６に格納する。
【００２８】
図３は、本発明の実施の形態におけるキャラクタライズ装置による特性抽出の対象となるハードマクロを含んだ回路の一例を示す図である。この回路は、バッファ２１〜２３と、フリップフロップ２４と、ＡＮＤ回路２５〜２９と、ハードマクロ（Ｈ／Ｍ）３０とを含む。
【００２９】
一般に、半導体製品のサインオフ検証で使用される静的タイミング検証（Static Timing Analysis）の検証単位は、Ｌａｔｃｈ  ｔｏ  Ｌａｔｃｈ間であることが多い。図３に示すように、フリップフロップ２４の出力がＡＮＤ回路２５〜２９を経てハードマクロ３０に入力される回路構成においては、ハードマクロ３０が終点になることが多い。そのため、ハードマクロ３０のタイミング制約を高速、高精度に抽出してライブラリからマージンを削除することが重要になる。
【００３０】
図４は、本発明の実施の形態におけるキャラクタライズ装置を用いた経路探索の処理手順を説明するためのフローチャートである。なお、以下の説明においては、ハードマクロ３０がＳＲＡＭの場合について説明する。
【００３１】
まず、人手によりモード指定、フォルスパス指定などを行ない、経路探索設定を行なう（Ｓ１１）。ここで、モード設定とは、ＳＲＡＭの動作モードの設定を意味しており、リードモードおよびライトモードがある。また、フォルスパス指定とは、経路探索を行なわないパスの指定を意味している。
【００３２】
次に、特性値抽出部３２は、静的な経路探索を行なって特性抽出を行なう。そして、ライブラリ生成部３３は、特性値抽出部３２によって抽出された特性値からライブラリを作成してライブラリ格納ファイル３５に格納する（Ｓ１２）。この静的な経路探索は、静的なトランジスタレベルのパス検索であり、その詳細は後述する。ここで抽出される特性として、セットアップ時間、ホールド時間、遅延時間などが挙げられる。
【００３３】
次に、動的検証部３４は、ライブラリ生成部３３によって生成されたライブラリを用いて動的自動検証を行ない、その検証結果にエラーがあるか否か（ＮＧがあるか否か）を判定する（Ｓ１４）。エラーがなければ（Ｓ１４，Ｎｏ）、処理を終了する。
【００３４】
また、エラーがあれば（Ｓ１４，Ｙｅｓ）、人手により経路確認を行ない（Ｓ１５）、経路探索設定の見直しを検討する（Ｓ１６）。たとえば、経路探索結果から、エラーとなったゲーテッド、スルーラッチ、特殊なトポロジなどの誤探索し易い部分を抽出し、それらの部分の状態を動的自動検証のエラー判定に追加したり、フォルスパスに指定したりする。このように、実際の動作状況確認によって、的確な設定修正が行なえるようになる。
【００３５】
そして、ステップＳ１１以降の処理をエラーがなくなるまで繰り返す。なお、経路確認と動的検証結果から的確な修正情報が得られるため、繰り返し回数は少なくなり、ほとんど１回で済むようになる。
【００３６】
図５は、図４に示す特性抽出処理（Ｓ１２）の詳細を説明するためのフローチャートである。まず、ユーザが生成したいテーブルサイズ（ｎ×ｎ）のインデックス（入力スルー）を指定する（Ｓ２１）。ここで、データスルーをＳｃ１〜Ｓｃｎ、クロックスルーをＳｒ１〜Ｓｒｎとする。
【００３７】
次に、特性値抽出部３２は、変数ｉに“０”を設定し（Ｓ２２）、変数ｉをインクリメントする（Ｓ２３）。そして、所望のスルー（Ｓｃｉ，Ｓｒｉ）を得るための容量を決定する（Ｓ２４）。
【００３８】
遅延値は、入力信号波形の傾き（スルー）によっても変わってくる。正確な遅延値を得るためには、データおよびクロックの信号波形に様々なスルーを付加し、それをハードマクロ３０に入力する必要がある。様々なスルーを得るために必要な容量値が予め決められており、その容量値を変えることによって所望のスルーを信号波形に与える。
【００３９】
ベクタテンプレート格納ファイル３１に格納されるテンプレートは、容量値を与えることによって信号波形に所望のスルーが与えられるように作成されている。特性値抽出部３２は、所望のスルー（Ｓｃｉ，Ｓｒｉ）が得られる容量値をテンプレートに設定することにより、シミュレーション入力ファイルを生成する（Ｓ２５）。
【００４０】
次に、特性値抽出部３２は、生成したシミュレーション入力ファイルを用いてシミュレーションを実行してデータ遅延（Ｔｃｉ）およびクロック遅延（Ｔｒｉ）を測定し、測定結果を測定結果格納ファイル３７に格納する（Ｓ２６）。
【００４１】
図６は、ハードマクロ３０におけるデータ遅延（Ｔｃｉ）およびクロック遅延（Ｔｒｉ）を説明するための図である。図６に示すハードマクロ３０においては、データ（ＤＡＴＡ）およびクロック（ＣＬＫ）が、組合せ回路４１を経てフリップフロップ／ラッチ４２やゲート４３に入力されている。ステップＳ２６においては、ユーザによって指定された観測点のデータ遅延（Ｔｃｉ）およびクロック遅延（Ｔｒｉ）が測定される。
【００４２】
なお、外部端子であるデータ（ＤＡＴＡ）およびクロック（ＣＬＫ）から観測点までに複数の経路がある場合には、それぞれの経路についてデータ遅延（Ｔｃｉ）およびクロック遅延（Ｔｒｉ）が測定される。
【００４３】
次に、特性値抽出部３２は、変数ｉがｎと等しいか否かを判定する（Ｓ２７）。変数ｉがｎよりも小さければ（Ｓ２７，Ｎｏ）、等しくなるまでステップＳ２３〜Ｓ２６の処理を繰り返す。
【００４４】
また、変数ｉがｎと等しければ（Ｓ２７，Ｙｅｓ）、特性値抽出部３２は、変数ｉに“０”を代入し（Ｓ２８）、変数ｉをインクリメントする（Ｓ２９）。そして、変数ｊに“０”を代入し（Ｓ３０）、変数ｊをインクリメントする（Ｓ３１）。
【００４５】
次に、特性値抽出部３２は、測定結果格納ファイル３７から測定結果（Ｔｃｉ，Ｔｒｊ）を読み出し、特性値であるセットアップ時間およびホールド時間を算出して計算結果格納ファイル３８に格納する（Ｓ３２）。ここで、セットアップ時間（ｓｅｔｕｐ）およびホールド時間（ｈｏｌｄ）の算出方法について簡単に説明する。
【００４６】
データ（ＤＡＴＡ）から観測点までに複数の経路がある場合、それらの経路の遅延の最大値をＭａｘ（Ｔｃｉ）とし、最小値をＭｉｎ（Ｔｃｉ）とする。同様に、クロック（ＣＬＫ）から観測点までに複数の経路がある場合、それらの経路の遅延の最大値をＭａｘ（Ｔｒｉ）とし、最小値をＭｉｎ（Ｔｒｉ）とする。そして、遅延のばらつきを考慮した補正係数をｏｃｖとすると、セットアップ時間（ｓｅｔｕｐ）およびホールド時間（ｈｏｌｄ）は次式によって算出される。
【００４７】
ｓｅｔｕｐ（ｉ，ｊ）＝Ｍａｘ（Ｔｃｉ）×（１＋ｏｃｖ）−Ｍｉｎ（Ｔｒｉ）×（１−ｏｃｖ）    ・・・（１）
ｈｏｌｄ（ｉ，ｊ）＝Ｍａｘ（Ｔｒｉ）×（１＋ｏｃｖ）−Ｍｉｎ（Ｔｃｉ）×（１−ｏｃｖ）    ・・・（２）
次に、特性値抽出部３２は、変数ｊがｎと等しいか否かを判定する（Ｓ３３）。変数ｊがｎと等しくなければ（Ｓ３３，Ｎｏ）、ステップＳ３１〜Ｓ３２の処理を繰り返す。また、変数ｊがｎと等しければ（Ｓ３３，Ｙｅｓ）、特性値抽出部３２は、変数ｉがｎと等しいか否かを判定する（Ｓ３４）。変数ｉがｎと等しくなければ（Ｓ３４，Ｎｏ）、ステップＳ２９〜Ｓ３３の処理を繰り返す。
【００４８】
また、変数ｉがｎと等しければ（Ｓ３４，Ｙｅｓ）、ライブラリ生成部３３は、データスルーおよびクロックスルーとセットアップ時間との対応を示すセットアップテーブルと、データスルーおよびクロックスルーとホールド時間との対応を示すホールドテーブルとを生成し、ライブラリとしてライブラリ格納ファイル３５に格納し（Ｓ３５）、処理を終了する。
【００４９】
図７は、図４に示す動的自動検証処理（Ｓ１３）の詳細を説明するためのフローチャートである。まず、ユーザが検証したいテーブルのインデックス（入力スルー）を指定する（Ｓ４１）。ここで、検証したいテーブルのデータスルーをＳｃ１〜Ｓｃｍ、クロックスルーをＳｒ１〜Ｓｒｍとする。
【００５０】
次に、動的検証部３４は、変数ｉに“０”を設定し（Ｓ４２）、変数ｉをインクリメントする（Ｓ４３）。そして、ライブラリ格納ファイル３５を参照して、検証したい特性値であるセットアップ時間ｓｅｔｕｐ（ｃｉ，ｒｉ）およびホールド時間ｈｏｌｄ（ｃｉ，ｒｉ）を抽出する（Ｓ４４）。
【００５１】
次に、動的検証部３４は、ベクタテンプレート格納ファイル３１を参照して、特性値であるセットアップ時間ｓｅｔｕｐ（ｃｉ，ｒｉ）およびホールド時間ｈｏｌｄ（ｃｉ，ｒｉ）だけずらした信号波形（ベクタ）を生成する（Ｓ４５）。
【００５２】
図８は、ステップＳ４５に示すベクタの生成を説明するための図である。動的検証部３４は、ライブラリ格納ファイル３５に格納されるセットアップテーブルを参照して、データスルーＳｃｉおよびクロックスルーＳｒｉに対応するセットアップ時間を抽出する。
【００５３】
図８（ａ）は、セットアップテーブルの一例を示しており、データスルーＳｃｉ（ｓｌｅｗ＿ｃ）およびクロックスルーＳｒｉ（ｓｌｅｗ＿ｒ）に対応するセットアップ時間（ｓｅｔｕｐ）が抽出されるところを示している。
【００５４】
そして、動的検証部３４は、図８（ｂ）に示すように、セットアップ時間の検証を行なう場合には、クロック（ＣＬＫ）の波形に対して、データ（ＤＡＴＡ）をセットアップ時間だけ前にずらした波形を生成し、これをベクタとする。また、ホールド時間の検証を行なう場合には、クロック（ＣＬＫ）の波形に対して、データ（ＤＡＴＡ）をホールド時間だけ後ろにずらした波形を生成し、これをベクタとする。
【００５５】
次に、動的検証部３４は、図８（ｂ）に示すように、所望のスルー（Ｓｃｉ，Ｓｒｉ）を得るようにデータ（ＤＡＴＡ）およびクロック（ＣＬＫ）に付加すべき容量を決定する（Ｓ４６）。
【００５６】
図９は、データ（ＤＡＴＡ）およびクロック（ＣＬＫ）に所望のスルーを付加するための方法を説明するための図である。図９に示すように、ハードマクロ３０の入力にドライバ５１および５２が接続されている場合には、外部からデータ（ＤＡＴＡ）およびクロック（ＣＬＫ）の傾きを制御することができない。そのため、ドライバ５１および５２の出力に容量Ｃ１およびＣ２を付加し、容量Ｃ１およびＣ２の値を変えることによってデータおよびクロックに所望の傾きを得るようにしている。
【００５７】
動的検証部３４は、ベクタテンプレート格納ファイル３１を参照し、ハードマクロ３０に入力されるデータおよびクロックが図８（ｂ）に示すような遅延値および傾きを持った波形となるように、シミュレーション入力ファイルを生成する（Ｓ４７）。
【００５８】
次に、動的検証部３４は、シミュレーション入力ファイルを用いてハードマクロ３０のシミュレーションを実行して、出力信号の遅延時間やグリッチ（スパイク）などの測定結果を測定結果格納ファイル３９に格納する（Ｓ４８）。
【００５９】
そして、動的検証部３４は、測定結果格納ファイル３９を参照して、測定結果の検証を行ない、検証結果を検証結果格納ファイル３６に格納する（Ｓ４９）。たとえば、セットアップ時間の検証を行なう場合には、クロックの立ち上がりでデータが正しく保持されているか否か、スパイクが発生していないか否か、パルス幅が十分であるか否かなどが判定される。
【００６０】
図１０は、セットアップ時間の検証を行なう場合の検証結果の一例を示す図である。データに対してクロックをセットアップ時間だけずらしてハードマクロ３０に入力し、シミュレーションを行なった結果、ハードマクロ３０の内部で所望の変化があった場合は検証結果が“ＯＫ”と判定される。また、ハードマクロ３０の内部で所望の変化がなかった場合は検証結果が“ＮＧ”と判定される。同様に、外部端子で所望の変化があったか否かも判定される。
【００６１】
また、ハードマクロ３０の内部でスパイクが発生しなかった場合は検証結果が“ＯＫ”と判定される。また、ハードマクロ３０の内部でスパイクが発生した場合は検証結果が“ＮＧ”と判定される。
【００６２】
また、ハードマクロ３０の内部におけるパルス幅が十分な場合は検証結果が“ＯＫ”と判定される。また、ハードマクロ３０の内部におけるパルス幅が不十分な場合は検証結果が“ＮＧ”と判定される。
【００６３】
また、ホールド時間の検証を行なう場合には、クロックの立ち上がりに対して前のデータが正しく保持されているか否か、スパイクが発生していないか否か、パルス幅が十分であるか否かなどが判定される。
【００６４】
最後に、動的検証部３４は、変数ｉがｍと等しいか否かを判定する（Ｓ５０）。変数ｉがｍと等しくなければ（Ｓ５０，Ｎｏ）、ステップＳ４３に戻って、以降の処理を繰り返す。また、変数ｉがｍと等しければ（Ｓ５０，Ｙｅｓ）、処理を終了する。
【００６５】
図１１は、ベクタテンプレート格納ファイル３１に格納されるベクタテンプレートの一例を示す図である。図１１（ａ）において、ベクタは各入力信号のパターンを記述する部分であり、クロック（ＣＬＫ）、チップイネーブル（ＣＥＮ）、ライトイネーブル（ＷＥＮ）およびアドレス（Ａ［＠ＡＤＤＲ］）の入力パターンが定義されている。なお、＠ＡＤＤＲはアドレス幅を示しており、テンプレート展開するときに使用される。
【００６６】
図１２は、図１１（ａ）に示すＷＥＮ信号の波形を示す図である。図１１（ａ）に示すテンプレートの“Ｎ”は周期内で“０”から“１”に変化することを示し、“Ｐ”は周期内で“１”から“０”に変化することを示している。したがって、たとえば図１１（ａ）に示すテンプレートのＷＥＮ信号は、図１２に示すような波形となる。
【００６７】
測定指定は、ネットリストの中の測定点における遅延やグリッチを測定するための記述である。ｙｏｄ［＠ＢＩＴ］は、出力端子を測定点として遅延時間を測定するための記述であり、クロック（ＣＬＫ）をトリガとし、出力端子Ｑ［＠ＢＩＴ］の遅延時間を測定するものである。なお、＠ＢＩＴは、データ幅を示しており、テンプレート展開するときに使用される。
【００６８】
ｙｒｄ［＠ＡＤＤＲ］は、中間ノードを測定点として遅延時間を測定するための記述であり、クロック（ＣＬＫ）をトリガとし、中間ノードＸ０．Ｘ１．Ｔ［＠ＡＤＤＲ］の遅延時間を測定するものである。
【００６９】
ｙｇ０［＠ＡＤＤＲ］は、中間ノードのグリッチを測定するための記述であり、中間ノードＸ０．Ｘ１．Ｄ［＠ＡＤＤＲ］のグリッチを測定するものである。なお、測定指定の右端に記述される数字は周期を示すものであるが、本発明と直接関連するものではないため、その詳細な説明は行なわない。
【００７０】
計算指定は、測定結果に対して四則演算を行なうことにより検証（ＯＫ／ＮＧ判定）を行なう記述であり、ＣＨＥＣＫ（ＳＵＢ（ＭＵＬ（ｄｅｌａｙ０，１．１），ｙｏｄ［＠ＢＩＴ］），ＬＥ）は、出力端子Ｑ［＠ＢＩＴ］の遅延時間であるｙｏｄ［＠ＢＩＴ］が、ｄｅｌａｙ０×１．１以下であることを判定するための記述である。
【００７１】
ＣＨＥＣＫ（ＳＵＢ（ＭＵＬ（ｄｅｌａｙ１，１．１），ｙｒｄ［＠ＡＤＤＲ］），ＬＥ）は、中間ノードの遅延時間であるｙｒｄ［＠ＡＤＤＲ］が、ｄｅｌａｙ１×１．１以下であることを判定するための記述である。
【００７２】
ＣＨＥＣＫ（ＳＵＢ（０．２，ｙｇ０），ＧＥ）は、中間ノードのグリッチの幅が０．２以上であることを判定するための記述である。このように、四則演算によって測定点における種々の検証を行なうことができる。
【００７３】
図１１（ｂ）は、テンプレート展開の一例を示す図である。ハードマクロがＳＲＡＭの場合には、ＳＲＡＭのビット幅やワード数を柔軟に変更できることが必要とされる。そのため、図１１（ａ）に示すテンプレートの＠ＢＩＴおよび＠ＡＤＤＲに、ビット幅およびワード数に相当する値を設定してテンプレート展開を行なうことにより、そのビット幅およびワード数に対応したシミュレーション入力ファイル群を自動的に生成できるようになる。このシミュレーション入力ファイル群を用いて検証が行なわれる。
【００７４】
以上説明したように、本実施の形態におけるキャラクタライズ装置によれば、特性値抽出部３２が静的経路探索によってハードマクロの特性値を抽出し、動的検証部３４が抽出された特性値に対して動的検証を行なって、抽出した特性値が適切であるか否かを判定するようにしたので、高速に信頼性の高いハードマクロの特性値を抽出することが可能となった。
【００７５】
また、特性値の検証においてエラーが発生した場合には、人手により経路確認を行なうことにより設定の見直しができるため、誤探索し易い部分により発生したエラーか否かをを容易に判定でき、経路探索の再設定を容易に行うことが可能となった。
【００７６】
また、テンプレートを展開することによってシミュレーション入力ファイル群を生成するようにしたので、任意のビット幅およびワード数を有するＳＲＡＭの検証に対応することが可能となった。
【００７７】
また、測定結果が適切であるか否かの複雑な検証を、簡単な四則演算の判定式を用いて行なうようにしたので、ユーザは判定式を容易に作成することができ特性値の検証を容易に行なうことが可能となった。
【００７８】
また、動的検証部３４は、ハードマクロ３０内部のグリッチやパルス幅に応じて特性値が適切であるか否かも判定できるようにしたので、より高精度に特性値の検証を行なうことが可能となった。
【００７９】
また、ハードマクロ３０の入力に接続されるドライバの出力に任意の容量を付加できるようにしたので、ハードマクロ３０に入力される信号波形に任意の傾きを与えることができ、より高精度な動的検証を行なうことが可能となった。
【００８０】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８１】
１  コンピュータ本体、２  ディスプレイ装置、３  ＦＤドライブ、４  ＦＤ、５  キーボード、６  マウス、７  ＣＤ−ＲＯＭ装置、８  ＣＤ−ＲＯＭ、９  ネットワーク通信装置、１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１３  ハードディスク、２１〜２３  バッファ、２４  フリップフロップ、２５〜２９  ＡＮＤ回路、３０  ハードマクロ、３１  ベクタテンプレート格納ファイル、３２  特性値抽出部、３３  ライブラリ生成部、３４  動的検証部、３５  ライブラリ格納ファイル、３６  検証結果格納ファイル、３７  測定結果格納ファイル、３８  計算結果格納ファイル、３９  測定結果格納ファイル。
【図１】
2012230605.tif 000003
【図２】
2012230605.tif 000004
【図３】
2012230605.tif 000005
【図４】
2012230605.tif 000006
【図５】
2012230605.tif 000007
【図６】
2012230605.tif 000008
【図７】
2012230605.tif 000009
【図８】
2012230605.tif 000010
【図９】
2012230605.tif 000011
【図１０】
2012230605.tif 000012
【図１１】
2012230605.tif 000013
【図１２】
2012230605.tif 000014