(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行される設計検証方法であって、
複数のブロックで構成される回路の検証に係る端子情報に基づいて、記憶部に格納されたネットリストを参照することによって、該ブロック間の接続関係に従って経路を探索し、
前記探索された経路外のブロックの動作を異なる抽象度で記述した複数の動作記述データから第１の動作記述データを選択し、
前記ネットリスト内に記述される前記経路外のブロックの動作を記述した第２の動作記述データを前記第１の動作記述データで置き換えることで、前記経路外のブロックの動作の抽象度を変更し、
検証目的別に対応する複数の動作記述データから前記検証の検証目的に対応する第３の動作記述データを選択し、
前記ネットリスト内に記述される、前記探索された経路内のブロックの動作を記述した第４の動作記述データを前記第３の動作記述データで変更する
ことを特徴とする設計検証方法。
【請求項２】
前記記憶部に格納される、前記ブロックに関して、異なる検証精度に応じた抽象度で前記動作を記述した前記複数の動作記述データが格納されている動作記述データベースを用いて、前記ネットリスト内の前記経路外のブロックの前記動作を、該抽象度を上げた動作記述で変更することを特徴とする請求項１記載の設計検証方法。
【請求項３】
前記動作記述データベースは、同一ブロックに関して、前記検証目的別に対応する動作を記述した複数の動作記述データを更に格納し、、
前記コンピュータは、更に、前記動作記述データベースを用いて、前記ネットリスト内に記述される、前記探索された経路内のブロックの動作を、前記検証の検証目的に対応する動作記述データで変更する
ことを特徴とする請求項２記載の設計検証方法。
【請求項４】
複数のブロックで構成される回路の検証に係る端子情報に基づいて、記憶部に格納されたネットリストを参照することによって、該ブロック間の接続関係に従って経路を探索し、
異なる抽象度で前記探索された経路外のブロックの動作を異なる抽象度で記述した複数の動作記述データから第１の動作記述データを選択し、
前記ネットリスト内に記述される前記経路外のブロックの動作を記述した第２の動作記述データを前記第１の動作記述データで置き換えることで、前記経路外のブロックの動作の抽象度を変更し、
検証目的別に対応する複数の動作記述データから前記検証の検証目的に対応する第３の動作記述データを選択し、
前記ネットリスト内に記述される、前記探索された経路内のブロックの動作を記述した第４の動作記述データを前記第３の動作記述データで変更する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路を検証する技術に関する。
【背景技術】
【０００２】
従来より、設計した回路をシミュレーションすることによって、大規模回路の機能及び特性を検証している。シミュレーションにより検証することは、回路設計の段階で早期に不具合を抽出し、設計を見直すためには有効な手段であるが、その処理時間が課題となっていた。そのため、設計者は、このシミュレーションの時間増大の要因となる計算ポイントやノード数を削減するために、検証内容とその検証内容に関連するブロックなど自身の設計及び検証経験に基づいて、回路を構成する各ブロックに対するモデルの抽象度をマニュアルで変更してきた。
【０００３】
このような状況において、回路ブロックのモデルの抽象度を変更する技術として、最上位の検証レベルのシミュレーション結果をもとに、検証対象の一部分だけを任意の検証レベルに詳細化すること、入力データの中の回路構成素子の中で機能記述に置換できるものを機能記述データベースから選択して置換すること、回路データベースに基づいて、半導体集積回路内の回路を解析して回路の抽象度のレベル切り替え時点を決定し、決定した時点に基づいて全回路シミュレーション又は必要でない部分をブラックボックス扱いとして必要な部分のみのシミュレーションを行うようにしたこと等が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３４８０７６号公報
【特許文献２】特開２００４−１５８０３４号公報
【特許文献３】特開２００５−３７９９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
シミュレーションでは、検証内容に従って回路の動作を検証するが、その検証内容によって回路内を信号が伝播する経路（以下、単に「経路」という。）が異なっている。また、近年の回路の大規模化に伴って経路が複雑になっているのも事実である。
【０００６】
上述した従来技術では、詳細化又は抽象度を変更する検証対象が予め決められているか、又は、シミュレーション可否の予測結果に基づいて等価な回路に変更して素子数を予め削減しておくことによって、シミュレーションによる処理負荷を軽減している。
【０００７】
そのため、検証内容に従ってシミュレーションを実行した際の回路内の経路において、本来は抽象度の低いモデルで検証すべきブロックが抽象度の高いモデルで検証されてしまう、抽象度の高いモデルで検証すべきブロックを抽象度の低いモデルで検証してしまうと言った問題があった。
【課題を解決するための手段】
【０００８】
開示の技術は、コンピュータによって実行される設計検証方法であって、複数のブロックで構成される回路の検証に係る端子情報に基づいて、記憶部に格納されたネットリストを参照することによって、該ブロック間の接続関係に従って経路を探索し、前記探索された経路外のブロックの動作を異なる抽象度で記述した複数の動作記述データから第１の動作記述データを選択し、前記ネットリスト内に記述される前記経路外のブロックの動作を記述した第２の動作記述データを前記第１の動作記述データで置き換えることで、前記経路外のブロックの動作の抽象度を変更し、検証目的別に対応する複数の動作記述データから前記検証の検証目的に対応する第３の動作記述データを選択し、前記ネットリスト内に記述される、前記探索された経路内のブロックの動作を記述した第４の動作記述データを前記第３の動作記述データで変更することを特徴とする設計検証方法として構成される。
【０００９】
また、上記課題を解決するための手段として、コンピュータに上記設計検証方法における手順を実行させるプログラム、そのプログラムを記録した記録媒体、及び設計検証装置とすることもできる。
【発明の効果】
【００１０】
開示の技術では、回路の検証において、検証仕様に従った経路探索の結果を用いて、経路外のブロックの動作を、抽象度を上げたモデルに変更することにより、高速かつ適切なシミュレーションを実現することができる。
【図面の簡単な説明】
【００１１】
【図１】設計検証装置のハードウェア構成を示す図である。
【図２】設計検証装置の機能構成例を示す図である。
【図３】設計検証装置で行われる全体処理の概要を説明するためのフローチャート図である。
【図４】図３のステップＳ１０の経路探索処理を説明するためのフローチャート図である。
【図５】対象回路の構成例を示す図である。
【図６】実施例１に係る入力データ例を示す図である。
【図７】実施例１における抽象度選択処理を説明するためのフローチャート図（その１）である。
【図８】実施例１における抽象度選択処理を説明するためのフローチャート図（その２）である。
【図９】実施例１において変更されたブロックの抽象度を表現した構成図である。
【図１０】実施例２に係る入力データ例を示す図である。
【図１１】実施例２における抽象度選択処理を説明するためのフローチャート図（その１）である。
【図１２】実施例２における抽象度選択処理を説明するためのフローチャート図（その２）である。
【図１３】実施例２において変更されたブロックの抽象度を表現した構成図である。
【図１４】実施例３に係る入力データ例を示す図である。
【図１５】実施例３における抽象度選択処理を説明するためのフローチャート図である。
【図１６】実施例３において変更されたブロックの抽象度を表現した構成図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面に基づいて説明する。本実施の形態に係る設計検証装置は、検証仕様に従ったシミュレーションにおいて回路動作に係る信号が伝播する経路を、シミュレーション実行前に探索し、回路を構成する複数のブロックに関して、探索された経路内のブロック（以下、経路内ブロックと言う）と経路外のブロック（以下、経路外ブロックと言う）のいずれか、又は、経路内外のブロックの夫々に対応させて、ブロックのモデルを選択することにより、より高速なシミュレーションを実現すると共に、回路の検証を適切に行なうものである。
【００１３】
本実施の形態に係る設計検証装置は、例えば、図１に示すようなハードウェア構成を有する。図１は、設計検証装置のハードウェア構成を示す図である。図１において、設計検証装置１００は、コンピュータによって制御される装置であって、ＣＰＵ（Central Processing Unit）１１と、メモリユニット１２と、表示ユニット１３と、出力ユニット１４と、入力ユニット１５と、通信ユニット１６と、記憶装置１７と、ドライバ１８とを有し、システムバスＢに接続される。
【００１４】
ＣＰＵ１１は、メモリユニット１２に格納されたプログラムに従って設計検証装置１００を制御する。メモリユニット１２には、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read-Only Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、メモリユニット１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００１５】
表示ユニット１３は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。出力ユニット１４は、プリンタ等を有し、利用者からの指示に応じて各種情報を出力するために用いられる。入力ユニット１５は、マウス、キーボード等を有し、利用者が設計検証装置１００が処理を行なうための必要な各種情報を入力するために用いられる。
【００１６】
通信ユニット１６は、例えばインターネット、ＬＡＮ（Local Area Network）等に接続し、外部装置との間の通信制御をするための装置である。記憶装置１７には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。
【００１７】
設計検証装置１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）等の記憶媒体１９によって設計検証装置１００に提供される。即ち、プログラムが保存された記憶媒体１９がドライバ１８にセットされると、ドライバ１８が記憶媒体１９からプログラムを読み出し、その読み出されたプログラムがシステムバスＢを介して記憶装置１７にインストールされる。そして、プログラムが起動されると、記憶装置１７にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００１８】
また、設計検証装置１００によって行われる処理を実現するプログラムが、通信ユニット１６を介して外部装置から提供されてもよい。
【００１９】
図２は、設計検証装置の機能構成例を示す図である。図２に示す設計検証装置１００は、主に、抽象度選択部１１０と、シミュレーション部１２０と、記憶部４０とを有する。
【００２０】
抽象度選択部１１０と、シミュレーション部１２０とは、ＣＰＵ１１が対応するプログラムを実行することによって行われる処理によって実現される。
【００２１】
記憶部４０は、少なくともメモリユニット１２又は記憶装置１７で構成される。記憶部４０は、メモリユニット１２と記憶装置１７とを有するようにしても良く、更に、コンピュータ読取可能な記憶媒体、設計検証装置１００に着脱可能な可搬型記録媒体、通信ユニット１６を介してアクセス可能な外部記憶装置を含んでもよい。
【００２２】
記憶部４０には、設計検証装置１００によって行われる処理に係る、検証仕様データ４１、ネットリスト４２、経路内探索ツリー４４、経路内ブロックリスト４５、経路外ブロックリスト４６、モデル一覧４７、モデル選択ルール４８、モデルデータベース４９、変更後ネットリスト４２−２、検証結果５０などが格納される。
【００２３】
検証仕様データ４１は、設計された回路を検証する検証内容を示すデータである。検証仕様データ４１には、入力端子、出力端子、検証項目、検証精度などが定義されている。入力端子と出力端子は、入力端子を識別する入力端子識別情報と出力端子を識別する出力端子識別情報によって夫々指定される。入力端子識別情報と出力端子識別情報とが端子情報に相当する。検証仕様データ４１は、検証目的毎に作成されるため、記憶部４０に複数存在してもよい。
【００２４】
シミュレーション部１２０によって、検証仕様データ４１に従ってシミュレーションが行われ、設計された回路が、検証仕様データ４１で指定される入力端子から出力端子までの経路における検証項目に対して、検証精度のレベルで検証される。
【００２５】
ネットリスト４２は、回路を構成する複数のブロック間の接続関係を記述した接続情報と、ブロックのモデルの記述とを含むデータである。
【００２６】
経路内探索ツリー４４は、検証仕様データ４１に基づいて抽象度選択部１１０によって行われる経路探索処理において生成されるデータである。経路内探索ツリー４４は、検証仕様データ４１とネットリスト４２とを参照して探索された経路内の接続関係を表したデータである。
【００２７】
経路内ブロックリスト４５は、経路内探索ツリー４４に含まれるブロックの一覧を示すデータであり、ブロックの識別情報（ブロック識別情報）で示される。
【００２８】
経路外ブロックリスト４６は、経路内ブロックリスト４５とネットリスト４２とを参照することによって、経路内ブロックリスト４５に含まれない経路外のブロックの一覧を示すデータであり、ブロックの識別情報（ブロック識別情報）で示される。
【００２９】
モデル一覧４７は、抽象度の異なるモデルを、抽象度毎のモデル識別情報の一覧で示したデータである。
【００３０】
モデル選択ルール４８は、経路内ブロック又は／及び経路外ブロックに対する抽象度を指定し、モデルを選択する際のルールを示したデータである。
【００３１】
モデルデータベース４９は、回路を構成する各ブロックの抽象度に対応するモデルの実体（抽象度に対応するモデルの動作をハードウェア記述言語などによって記述した動作記述データ）を格納し管理するためのデータベースである。モデルデータベース４９では、ブロック毎に検証精度に対応させて抽象度の異なる複数のモデルが管理される。ブロック毎に用意されたモデルの端子情報は同一であってもよい。
【００３２】
抽象度の異なる複数のモデルには、詳細モデルと、簡易モデルとが含まれる。抽象度の低い詳細モデルとは、例えば、Ｖｅｒｉｌｏｇ−Ａによって、時変、非線形、過渡状態など、アナログを含めて表現したモデルである。抽象度の高い簡易モデルとは、Ｖｅｒｉｌｏｇ−Ｄ又は端子情報のみのセルなどによって、時不変、線形状態を表現したモデルである。抽象度の異なる複数のモデルは、種々の検証仕様に対応して予め作成される動作記述データである。
【００３３】
変更後ネットリスト４２−２は、抽象度選択部１１０によって、検証仕様データ４１で指定される検証項目と検証精度とに対応するモデルを用いてネットリスト４２が変更された後のネットリストである。
【００３４】
検証結果５０は、シミュレーション部１２０が変更後ネットリスト４２−２を用いて、回路の動作をシミュレーションした結果を示すデータである。
【００３５】
抽象度選択部１１０は、記憶部４０に格納されている、設計された回路を検証する検証内容を示す検証仕様データ４１で指定される入力端子から出力端子までの経路を探索し、経路内ブロック又は／及び経路外ブロックの抽象度を選択する処理部であり、更に、経路探索処理部１１２と、ブロック分類処理部１１３と、モデル選択処理部１１４とを有する。
【００３６】
経路探索処理部１１２は、ネットリスト４２を参照して、検証仕様データ４１で指定される入力端子から出力端子までの経路を探索して、経路内探索ツリー４４を生成する処理部である。生成された経路内探索ツリー４４は、記憶部４０に格納される。検証仕様データ４１で指定される入力端子から出力端子までの経路が探索されることによって、検証内容に関わるブロックの選別を行うことが可能となる。
【００３７】
経路探索処理部１１２によって行われる経路探索処理は、例えば、入力端子からすべての経路を探索し、その際、一度通ったブロックからの探索は終了させる。このようにして得られた探索結果から出力端子を指定することで入出力間の経路を確定すること可能となる。
【００３８】
ブロック分類処理部１１３は、経路内探索ツリー４４、更にネットリスト４２を参照することによって、回路を構成する複数のブロックを、検証仕様データ４１に基づく経路内のブロックと経路外のブロックとに分類する処理部である。
【００３９】
ブロック分類処理部１１３は、経路内探索ツリー４４を参照することによって、経路内ブロックの識別情報を一覧にした経路内ブロックリスト４５を生成する処理部である。生成された経路内ブロックリスト４５は、記憶部４０に格納される。
【００４０】
また、ブロック分類処理部１１３は、経路内ブロックリスト４５とネットリスト４２とを用いて、経路外ブロックリスト４６を生成する処理部である。生成された経路外ブロックリスト４６は、記憶部４０に格納される。
【００４１】
モデル選択処理部１１４は、経路内ブロック又は／及び経路外ブロックの抽象度を選択する処理部である。モデル選択処理部１１４は、経路内ブロック又は／及び経路外ブロックに対して、モデル選択ルール４８に従った抽象度に対応するモデルで、ネットリスト４２内の該当するモデルを変更して変更後ネットリスト４２−２を生成する。生成された変更後ネットリスト４２−２は、記憶部４０に格納される。
【００４２】
モデル選択処理部１１４は、経路外ブロックに対しては、動作を記述したモデルを抽象度の高い簡易モデル（又は、ブロックの削除）によって変更する。経路内ブロックに対しては、動作を記述したモデルを抽象度の低い詳細モデルによって変更する。
【００４３】
変更例として、検証項目に、時間不変、又は、過渡状態を見ない場合は簡易モデルへの変更が可能である。また、線形動作（入力に対して出力が一様である場合）は簡易モデルへの変更が可能である。
【００４４】
シミュレーション部１２０は、記憶部４０に格納されている変更後ネットリスト４２−２を用いて、回路の動作を検証する。シミュレーションによる検証結果５０が生成され、記憶部４０に格納される。抽象度選択部１１０がネットリスト４２を変更しなかった場合、つまり、変更後ネットリスト４２−２が生成されなかった場合、シミュレーション部１２０は、ネットリスト４２を用いてシミュレーションを実行する。
【００４５】
図３は、設計検証装置で行われる全体処理の概要を説明するためのフローチャート図である。図３において、ステップＳ１０からＳ３０が、抽象度選択部１１０によって行われる抽象度選択処理Ｐ１０ａである。経路探索処理部１１２は、記憶部４０に格納されている検証仕様データ４１とネットリスト４２とを用いて経路探索処理を行う（ステップＳ１０）。
【００４６】
検証仕様データ４１は、検証する目的に対応した検証内容毎に予め作成されるため、検証内容が複数の場合、夫々に対応させた検証仕様データ４１が複数存在することになる。このような場合、ユーザ（例えば、回路設計者）によって指定された検証仕様データ４１を用いて、経路探索処理が行われる。
【００４７】
ステップＳ１０の経路探索処理によって、経路内探索ツリー４４が生成され、記憶部４０に格納される。
【００４８】
次に、ブロック分類処理部１１３は、記憶部４０に格納されている経路内探索ツリー４４とネットリスト４２とを用いて、回路を構成するブロックを経路内ブロックと経路外ブロックとに分類するブロック分類処理を行う（ステップＳ２０）。
【００４９】
ステップＳ２０において、ブロック分類処理部１１３は、経路内探索ツリー４４からブロック識別情報を抽出して、経路内ブロックの一覧を示す経路内ブロックリスト４５を生成し、記憶部４０に格納する。また、ブロック分類処理部１１３は、経路内ブロックリスト４５とネットリスト４２とを用いて、経路内ブロックリスト４５に含まれていないブロックの識別情報を抽出して、経路外ブロックの一覧を示す経路外ブロックリスト４６を生成し、記憶部４０に格納する。
【００５０】
モデル選択処理部１１４は、経路内ブロック又は／及び経路外ブロックに対して、モデル一覧４７から検証仕様データ４１とモデル選択ルール４８とに対応する抽象度に応じたモデル識別情報を取得し、そのモデル識別情報で特定される動作記述データをモデルデータベース４９から取得して、ネットリスト４２を変更する（ステップＳ３０）。ネットリスト４２を変更した変更後ネットリスト４２−２が記憶部４０に格納される。
【００５１】
そして、シミュレーション部１２０によって、変更後ネットリスト４２−２を用いてシミュレーションが実行される（ステップＳ３０）。シミュレーションによる検証結果５０が記憶部４０に格納される。
【００５２】
変更後ネットリスト４２−２を用いたシミュレーションは、抽象度を変更していないネットリスト４２を用いた場合よりも高速に回路の動作検証を行なうことができる。また、検証仕様データ４１に対応する抽象度のモデルでシミュレーションが行われることにより、回路の動作が適切に検証された検証結果５０を得ることができる。
【００５３】
次に、抽象度選択処理Ｐ１０ａにおける上述したステップＳ１０の経路探索処理について、図４で説明する。図４は、図３のステップＳ１０の経路探索処理を説明するためのフローチャート図である。図４において、経路探索処理部１１２は、検証仕様データ４１で指定される入力端子を探索起点に設定する（ステップＳ１１）。
【００５４】
経路探索処理部１１２は、ネットリスト４２を参照して、探索起点からの接続情報が、出力端子に接続されることを示しているか否かを判断する（ステップＳ１２）。出力端子に接続されることを示している場合、経路探索処理部１１２は、接続先の出力端子を経路内探索ツリー４４に追加して（ステップＳ１２−２）、ステップＳ１３へと進む。経路内探索ツリー４４には、接続元の入力端子との接続関係において、入力端子の入力端子識別情報に対して、接続先に出力端子の出力端子識別情報が追加される。
【００５５】
一方、ステップＳ１２において、出力端子に接続されることを示していない場合、探索起点からの接続情報が、ブロックに接続されていることを示しているか否かを判断する（ステップＳ１３）。接続情報において、接続先にブロックが示されていない場合、経路探索処理部１１２は、ステップＳ１５へと進む。
【００５６】
一方、ステップＳ１３において、ブロックに接続されていることを示している場合、経路探索処理部１１２は、更に、ブロック（ブロック識別情報）が経路内探索ツリー４４に存在するか否かを判断する（ステップＳ１４）。存在する場合、経路探索処理部１１２は、経路内探索ツリー４４に既に追加されているブロックに結線を付与して（ステップＳ１４−２）、ステップＳ１５へと進む。経路内探索ツリー４４において、既に追加されているブロック識別情報に対応させて探索起点との接続関係を示す接続情報が追加される。
【００５７】
ステップＳ１４において、ブロック（ブロック識別情報）が経路内探索ツリー４４に存在しない場合、経路探索処理部１１２は、接続先のブロック（ブロック識別情報）を経路内探索ツリー４４に追加して（ステップＳ１４−４）、ステップＳ１５へと進む。
【００５８】
経路探索処理部１１２は、経路内探索ツリー４４において出力を探索していないブロックがあるか否かを判断する（ステップＳ１５）。即ち、経路内探索ツリー４４内に、接続情報が存在しないブロック識別情報が存在するか否かが判断される。
【００５９】
ステップＳ１５において、ブロックがあると判断した場合、経路探索処理部１１２は、ブロックの出力を探索起点に設定する（ステップＳ１５−２）。経路探索処理部１１２は、ネットリスト４２を参照することによって、出力を探索していないブロックから信号が出力される出力端子（つまり、出力端子識別情報）を取得し、その出力端子識別情報を探索起点に設定して（ステップＳ１５−２）、ステップＳ１２へ戻り、上述した同様の処理を繰り返す。
【００６０】
一方、ブロックがないと判断した場合、経路探索処理部１１２は、検証仕様データ４１で指定される出力端子が経路内探索ツリー４４に存在するか否かを判断する（ステップＳ１６）。存在する場合、経路探索処理部１１２は、探索成功をこの処理結果とし、経路探索処理を終了する。一方、存在しない場合、経路探索処理部１１２は、探索失敗をこの処理結果とし、経路探索処理を終了する。
【００６１】
抽象度選択処理において、探索成功で経路探索処理が終了した場合、ブロック分類処理部１１３に処理が継続される。一方、探索失敗で経路探索処理が終了した場合、抽象度選択処理は終了し、例えば、経路探索が失敗したことが表示ユニット１３に表示されることにより、設計者による回路設計の見直しが行われる。
【００６２】
以下、上述したような経路探索処理によって得られた経路内探索ツリー４４を用いて行われる抽象度選択処理の実施例について、図５に例示されるような対象回路を用いて詳述する。
【００６３】
図５は、対象回路の構成例を示す図である。図５に例示される回路５は、入力端子ＩＰ、ＩＭ、Ａ、Ｂ、及びＩＮと、出力端子ＯＵＴ１及びＯＵＴ２とを有する。ＩＰ、ＩＭ、Ａ、Ｂ、及びＩＮは、以下に説明される実施例にて入力端子識別情報として参照される。同様に、出力端子ＯＵＴ１、及びＯＵＴ２は、以下に説明される実施例にて出力端子識別情報として参照される。
【００６４】
また、回路５は、ブロック「blockA」、ブロック「blockB」、ブロック「blockC」、ブロック「blockD」、ブロック「blockE」で構成される。「」内はブロック識別情報である。回路５における接続関係は、ネットリスト４２に含まれる接続情報によって記述される。
【００６５】
以下、実施例毎に、抽象度選択部１１０での処理で使用される入力データと、処理フローとを例示する。
【００６６】
［実施例１］
実施例１は、経路外ブロックの抽象度を最大レベルのモデルに変更する場合である。図６は、実施例１に係る入力データ例を示す図である。図６に例示されるように、ネットリスト４２と、検証仕様データ４１と、モデル選択ルール４８ａと、モデル一覧４７と、モデルデータベース４９とが、入力データとして設計検証装置１００の抽象度選択部１１０に入力される。
【００６７】
図６において、検証仕様データ４１は、入力端子、出力端子、検証項目、検証精度などの項目を有する。この例では、入力端子ＩＰ、ＩＭ、Ａ、及びＢが指定され、出力端子ＯＵＴ１が指定されている。従って、入力端子ＩＰ、ＩＭ、Ａ、及びＢの各々から出力端子ＯＵＴ１までの経路が検証対象となる。また、検証項目は出力レベルの検証を目的としていることを示し、検証精度は低レベルで検証することを示している。
【００６８】
ネットリスト４２は、接続情報部４３ａと、モデル記述部４３ｂとを含む。接続情報部４３ａでは、回路５を構成するブロック毎に接続関係を示す接続情報が定義されている。モデル記述部４３ｂでは、ブロック毎の入出力を定義し、ブロックの動作をハードウェア記述言語などで表現した記述部である。
【００６９】
図６に示す接続情報部４３ａにおいて、接続情報Ｉ０は、ブロック「blockA」に関して入力及び出力を定義している。ブロック「blockA」の入力及び出力がＩＰ、ＩＭ、ｏａであることが指定されている。モジュール記述部４３ｂにおける、ブロック「blockA」のモデル記述「Model blockA」より、入出力を定義した記述（in1 in2 out）に対応させることによって、入力端子ＩＰ及びＩＭがブロック「blockA」の入力であり、ｏａがブロック「blockA」の出力となる。モジュール記述部４３ｂでは、ブロック「blockA」に関して更に、動作が「aaaaaa」部分にハードウェア記述言語などで記述される。以下、入出力を定義した記述部分を含まない「aaaaaa」部分を動作記述部と言う。他のブロックについても同様である。
【００７０】
図６に例示されるモデル選択ルール４８ａは、経路探索処理の結果を用いて分類されたブロックに対して、経路外ブロックに対して、抽象度が最大レベルのモデルを使用することを、モデルを選択する際のルールとして規定している。
【００７１】
モデル一覧４７は、モデルデータベース４９とモデル識別情報で関連付けされており、モデルデータベース４９で管理されている（モデルデータベース４９に存在する）動作記述データに関して、モデル毎に検証目的又は検証精度を示したデータである。
【００７２】
この例では、モデル識別情報は、英字大文字でブロックを特定し、数字で同一ブロックに対する複数のモデルを識別する形式で示される。この形式に限定されるものではない。例えば、ブロック「blockA」に対して、モデルＡ１、Ａ２、・・・などの複数のモデルが対応付けられている。モデルＡ１は「出力レベル用モデル」、モデルＡ２は「接続確認用モデル」などの検証目的に対応した動作記述データが、モデルデータベース４９に存在することが示されている。
【００７３】
他の例では、ブロック「blockD」に対して、モデルＤ１、Ｄ２、・・・などの複数のモデルが対応付けられている。モデルＤ１は「詳細モデル」、モデルＤ２は「簡易モデル」などの検証精度に対応した動作記述データが、モデルデータベース４９に存在することが示されている。検証精度を示す「詳細モデル」は、最も抽象度が高いモデルであることを示し、「簡易モデル」は、最も抽象度が低いモデルであることを示す。
【００７４】
図６に例示されるモデルデータベース４９では、モデルＡ１には「a1a1a1」、モデルＡ２には「a2a2a2」、・・・、モデルＤ１には「d1d1d1」、モデルＡ２には「d2d2d2」、・・・などのように、モデル識別情報に対応させて、検証目的又は検証精度に対応する動作内容を表現したハードウェア記述言語などによる動作記述データが管理される。
【００７５】
図７及び図８は、実施例１における抽象度選択処理を説明するためのフローチャート図である。図７において、経路探索処理部１１２は、ネットリスト４２を参照して、検証仕様データ４１で指定される入力端子から出力端子間の経路を探索する（ステップＳ６１）。この経路探索によって、各入力端子ＩＰ、ＩＭ、Ａ、及びＢから出力端子ＯＵＴ１までの経路が探索され、経路内探索ツリー４４が生成される。実施例１では、ブロック「blockA」、ブロック「blockB」、及びブロック「blockC」が探索され、経路内探索ツリー４４には、少なくとも、探索された各ブロックを識別するブロック識別情報と、ブロックの接続情報とを示す接続情報Ｉ０、Ｉ１、及びＩ２が格納される。ここでは、ネットリスト４２のデータ例に対応させて接続情報Ｉ０、Ｉ１、及びＩ２で例示するが、このデータ形式に限定されるものではない。
【００７６】
経路探索が終了すると、ブロック分類処理部１１３は、記憶部４０に格納されている経路内探索ツリー４４からブロック識別情報を抽出して、検証仕様データ４１に基づく経路内の全ブロックをリスト化する（ステップＳ６２）。検証仕様データ４１に基づく経路内の全ブロックがリスト化された経路内ブロックリスト４５が生成され記憶部４０に格納される。実施例１における経路内ブロックリスト４５では、ブロック識別情報「blockA」、「blockB」、及び「blockC」が記録される。
【００７７】
更に、ブロック分類処理部１１３は、ネットリスト４２から経路内ブロックリスト４５に含まれていないブロック識別情報を抽出して、経路外の全ブロックをリスト化する（ステップＳ６３）。検証仕様データ４１に基づく経路外の全ブロックがリスト化された経路外ブロックリスト４６が生成され記憶部４０に格納される。実施例１における経路外ブロックリスト４６では、ブロック識別情報「blockD」及び「blockE」が記録される。
【００７８】
図８において、ブロック分類処理部１１３による検証仕様データ４１に基づく経路内外のブロックの分類が終了すると、モデル選択処理部１１４は、モデル一覧４７に経路外ブロックのモデルが存在するか否かを判断する（ステップＳ６４）。
【００７９】
実施例１の入力データ例では、ブロック識別情報内においてブロックに一意に与えられる英字大文字を含むモデル識別情報がモデル一覧４７に存在するか否かで判断すればよい。経路外ブロックリスト４６にリストされるブロック「blockD」の英字大文字「Ｄ」を含むモデル識別情報「Ｄ１」及び「Ｄ２」が、モデル一覧４７に存在する。また、経路外ブロックリスト４６にリストされるブロック「blockE」の英字大文字「Ｅ」を含むモデル識別情報「Ｅ１」及び「Ｅ２」が、モデル一覧４７に存在する。この場合、経路外ブロックのモデルが存在すると判断し、モデル選択処理部１１４は、ステップＳ６５へと進む。
【００８０】
一方、ステップＳ６４にて、経路外ブロックのモデルが存在しないと判断した場合、「抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部１２０は、ブロックの動作記述部が変更されていないネットリスト４２を用いてシミュレーションを行う。
【００８１】
この実施例１のように経路外ブロックのモデルが存在すると判断した場合、モデル選択処理部１１４は、更に、モデル選択ルール４８ａに適合するモデルが存在するか否かを判断する（ステップＳ６５）。
【００８２】
実施例１におけるモデル選択ルール４８ａの場合、モデル選択処理部１１４は、ステップＳ６４で存在を確認したモデル（モデル識別情報「Ｄ１」、「Ｄ２」、「Ｅ１」、及び「Ｅ２」）に対して、ブロック毎に抽象度が最大となるモデルが存在するか否かを、モデル一覧４７を参照して判断する。この例では、ブロック「blockD」に対してモデル「Ｄ２」、また、ブロック「blockE」に対してモデル「Ｅ２」が、モデル選択ルール４８ａに適合すると判断されて選択される。
【００８３】
一方、ステップＳ６５にて、適合するモデルが存在しないと判断した場合、「抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部１２０は、ブロックの動作記述部が変更されていないネットリスト４２を用いてシミュレーションを行う。
【００８４】
この実施例１のように適合するモデルを選択できた場合、モデル選択処理部１１４は、ネットリスト４２の該当ブロックのモデル記述内の動作記述部を、選択した動作記述データで変更する（ステップＳ６６）。
【００８５】
実施例１では、ブロック「blockD」及び「blockE」に対してモデル「Ｄ２」及び「Ｅ２」が選択されている。従って、モデル選択処理部１１４は、ネットリスト４２のモデル記述部４３ｂにおいて、ブロック「blockD」のモデル記述２ｄ内の動作記述部２１ｄ及びブロック「blockE」のモデル記述２ｅ内の動作記述部２１ｅを、モデルデータベース４９で管理されるモデル「Ｄ２」の動作記述データ２２ｄ及びモデル「Ｅ２」の動作記述データ２２ｅで夫々変更して変更後ネットリスト４２ａ−２を生成し、記憶部４０に格納する。動作記述部２１ｄは「dddddd」から「d2d2d2」へと変更され、動作記述部２１ｅは「eeeeee」から「e2e2e2」へと変更される。
【００８６】
モデル選択処理部１１４によってネットリスト４２が変更されたため、「抽象度変更有り」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部１２０は、ブロックの動作記述部が変更された変更後ネットリスト４２ａ−２を用いてシミュレーションを行う。
【００８７】
図７及び図８に示す実施例１における抽象度選択処理を実行することによって、図５に示す回路５は、変更後ネットリスト４２ａ−２に基づいて図９のように表現される。図９は、実施例１において変更されたブロックの抽象度を表現した構成図である。図９において、実施例１における抽象度選択処理で、抽象度の最大レベルとなる動作記述データで変更されたブロック「blockD」及び「blockE」は点線で示される。また、抽象度が変更されなかったブロック「blockA」、「blockB」、及び「blockC」は実線で示される。
【００８８】
上述したように、実施例１では、検証仕様データ４１に基づいて経路外と判断されたブロックの動作記述部の抽象度を最大レベルに変更することによって、シミュレーションが実行された際には、回路５の動作の検証内容に直接影響のないブロックの動作を簡易化させることができ、検証処理を高速に行うことができる。また、経路内と判断されたブロックのモデルを簡易化してしまうことがないため、検証内容のターゲットとなる設計箇所に関して、適切な検証結果を得ることができる。
【００８９】
［実施例２］
実施例２は、経路外ブロックを抽象度が最大レベルのモデルに変更すると共に、経路内ブロックを検証項目に応じたモデルに変更する場合である。図１０は、実施例２に係る入力データ例を示す図である。図１０に例示されるように、ネットリスト４２と、検証仕様データ４１と、モデル選択ルール４８ｂと、モデル一覧４７と、モデルデータベース４９とが、入力データとして設計検証装置１００の抽象度選択部１１０に入力される。
【００９０】
図１０において、検証仕様データ４１、ネットリスト４２、モデル一覧４７、モデルデータベース４９のデータ例は図９に示すデータ例と同様であるので、その説明を省略する。
【００９１】
実施例２におけるモデル選択ルール４８ｂは、経路外ブロックと経路内ブロックのモデルを規定したルールである。図１０に例示されるモデル選択ルール４８ｂによって、「経路外ブロックは、抽象度が最大レベルのモデルを使用する」及び「経路内ブロックは、検証項目に応じたモデルを使用する」ことを規定している。
【００９２】
このような入力データに対して、図１１及び図１２で説明される実施例２における抽象度選択処理を実行することによって、ネットリスト４２のモデル記述部４３ｂにおいて、モデル記述２ａ内の動作記述部２１ａ、モデル記述２ｄ内の動作記述部２１ｄ、及び、モデル記述２ｅ内の動作記述部２１ｅが、モデルデータベース４９の動作記述データ２２ａ、動作記述データ２２ｄ、及び、動作記述データ２２ｅに変更される。
【００９３】
図１１及び図１２は、実施例２における抽象度選択処理を説明するためのフローチャート図である。図１１において、ステップＳ７１の経路探索処理部１１２による経路探索処理は、実施例１における図７に示す、ステップＳ６１の経路探索処理に相当し、ステップＳ７２及びＳ７３のブロック分類処理部１１３によるブロック分類処理はステップＳ６２及びＳ６３のブロック分類処理に相当する。
【００９４】
ブロック分類処理部１１３による検証仕様データ４１に基づく経路内外のブロックの分類が終了すると、モデル選択処理部１１４は、モデル一覧４７に経路外ブロックのモデルが存在するか否かを判断する（ステップＳ７４）。判断方法は、実施例１における図８のステップＳ６４と同様であるので、説明を省略する。
【００９５】
ステップＳ７４にて、経路外ブロックのモデルが存在しないと判断した場合、「抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部１２０は、ブロックの動作記述部が変更されていないネットリスト４２を用いてシミュレーションを行う。
【００９６】
一方、経路外ブロックのモデルが存在すると判断した場合、図１２において、モデル選択処理部１１４は、更に、モデル選択ルール４８ｂに適合するモデルが存在するか否かを判断する（ステップＳ７５）。適合するモデルが存在しないと判断した場合、モデル選択処理部１１４は、ステップＳ７７へと進む。
【００９７】
実施例２におけるモデル選択ルール４８ｂの場合、モデル選択処理部１１４は、ステップＳ７４で存在を確認したモデル（モデル識別情報「Ｄ１」、「Ｄ２」、「Ｅ１」、及び「Ｅ２」）に対して、ブロック毎に抽象度が最大となるモデルが存在するか否かを、モデル一覧４７を参照して判断する。この例では、ブロック「blockD」に対してモデル「Ｄ２」、また、ブロック「blockE」に対してモデル「Ｅ２」が、モデル選択ルール４８ｂに適合すると判断されて選択される。そして、モデル選択処理部１１４は、ネットリスト４２の該当ブロックのモデル記述内の動作記述部を、選択した動作記述データで変更する（ステップＳ７６）。
【００９８】
実施例２では、モデル選択処理部１１４は、ネットリスト４２のモデル記述部４３ｂにおいて、ブロック「blockD」のモデル記述２ｄ内の動作記述部２１ｄ及びブロック「blockE」のモデル記述２ｅ内の動作記述部２１ｅを、モデルデータベース４９で管理されるモデル「Ｄ２」の動作記述データ２２ｄ及びモデル「Ｅ２」の動作記述データ２２ｅで夫々変更して変更後ネットリスト４２ａ−２を生成し、記憶部４０に格納する。動作記述部２１ｄは「dddddd」から「d2d2d2」へと変更され、動作記述部２１ｅは「eeeeee」から「e2e2e2」へと変更される。
【００９９】
次に、モデル選択処理部１１４は、モデル一覧４７に経路内ブロックのモデルが存在するか否かを判断する（ステップＳ７７）。経路内ブロックリスト４５にリストされるブロック「blockA」の英字大文字「Ａ」を含むモデル識別情報「Ａ１」及び「Ａ２」がモデル一覧４７に存在するため、モデル選択処理部１１４は、経路内ブロックのモデルが存在すると判断して、図１２のステップＳ７８へと進む。
【０１００】
一方、ステップＳ７７にて、経路外ブロックのモデルが存在しないと判断した場合、「経路内の抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部１２０は、変更後ネットリスト４２ｂ−２、又は、変更後ネットリスト４２ｂ−２が記憶部４０に存在しない場合は、ブロックの動作記述部が変更されていないネットリスト４２を用いてシミュレーションを行う。
【０１０１】
一方、ステップＳ７７にて、経路内ブロックのモデルが存在しないと判断した場合、「経路内の抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部１２０は、変更後ネットリスト４２ｂ−２、又は、変更後ネットリスト４２ｂ−２が記憶部４０に存在しない場合は、ブロックの動作記述部が変更されていないネットリスト４２を用いてシミュレーションを行う。
【０１０２】
実施例２におけるモデル選択ルール４８ｂの場合、モデル選択処理部１１４は、ステップＳ７４で存在を確認したモデル（モデル識別情報「Ａ１」及び「Ａ２」）に対して、ブロック毎に検証項目に応じたモデルが存在するか否かを、モデル一覧４７を参照して判断する。検証仕様データ４１で指定される検証項目「出力レベル」に基づいて、検証項目「出力レベル」に応じたモデルが存在するか否かが判断される。この例では、ブロック「blockA」に対してモデル「Ａ１」が、モデル選択ルール４８ｂに適合すると判断されて選択される。
【０１０３】
一方、ステップＳ７８にて、適合するモデルが存在しないと判断した場合、「経路内の抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部１２０は、変更後ネットリスト４２ｂ−２、又は、変更後ネットリスト４２ｂ−２が記憶部４０に存在しない場合は、ブロックの動作記述部が変更されていないネットリスト４２を用いてシミュレーションを行う。
【０１０４】
この実施例２のように適合するモデルを選択できた場合、モデル選択処理部１１４は、ネットリスト４２の該当ブロックのモデル記述内の動作記述部を、選択した動作記述データで変更する（ステップＳ７９）。
【０１０５】
実施例２では、経路外ブロックにおいて、ブロック「blockD」及び「blockE」に対してモデル「Ｄ２」及び「Ｅ２」が選択され、経路内ブロックにおいて、ブロック「blockA」に対してモデル「Ａ１」が選択されている。従って、モデル選択処理部１１４は、ネットリスト４２のモデル記述部４３ｂにおいて、ブロック「blockA」のモデル記述２ａ内の動作記述部２１ａ、ブロック「blockD」のモデル記述２ｄ内の動作記述部２１ｄ、及びブロック「blockE」のモデル記述２ｅ内の動作記述部２１ｅを、モデルデータベース４９で管理されるモデル「Ｄ２」の動作記述データ２２ｄ及びモデル「Ｅ２」の動作記述データ２２ｅで夫々変更して変更後ネットリスト４２ａ−２を生成し、記憶部４０に格納する。動作記述部２１ａは「aaaaaa」から「a1a1a1」へと変更され、動作記述部２１ｄは「dddddd」から「d2d2d2」へと変更され、動作記述部２１ｅは「eeeeee」から「e2e2e2」へと変更される。
【０１０６】
モデル選択処理部１１４によってネットリスト４２が変更されたため、「抽象度変更有り」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部１２０は、ブロックの動作記述部が変更された変更後ネットリスト４２ｂ−２を用いてシミュレーションを行う。
【０１０７】
図１１及び図１２に示す実施例２における抽象度選択処理を実行することによって、図５に示す回路５は、変更後ネットリスト４２ｂ−２に基づいて図１３のように表現される。図１３は、実施例２において変更されたブロックの抽象度を表現した構成図である。図１３において、実施例２における抽象度選択処理で、経路外ブロックにおいて、抽象度の最大レベルとなる動作記述データで変更されたブロック「blockD」及び「blockE」は点線で示される。また、経路内ブロックにおいて、検証項目「出力レベル」に対応する動作記述データで変更されたブロック「blockA」は点線で示される。一方、抽象度が変更されなかったブロック「blockB」、及び「blockC」は実線で示される。
【０１０８】
上述したように、実施例２では、検証仕様データ４１に基づいて経路外と判断されたブロックの動作記述部の抽象度を最大レベルに変更することによって、シミュレーションが実行された際には、回路５の動作の検証内容に直接影響のないブロックの動作を簡易化させることができ、検証処理を高速に行うことができる。また、経路内と判断されたブロックに対して、検証項目に応じたモデルに変更することができるため、検証内容のターゲットとなる設計箇所に関して、検証項目に対する適切な検証結果を得ることができる。
【０１０９】
［実施例３］
実施例３は、経路外ブロックを削除する場合である。図１４は、実施例３に係る入力データ例を示す図である。図１４に例示されるように、ネットリスト４２と、検証仕様データ４１と、モデル選択ルール４８ｃと、モデル一覧４７と、モデルデータベース４９とが、入力データとして設計検証装置１００の抽象度選択部１１０に入力される。
【０１１０】
図１４において、検証仕様データ４１、ネットリスト４２、モデル一覧４７、モデルデータベース４９のデータ例は図９に示すデータ例と同様であるので、その説明を省略する。
【０１１１】
実施例３におけるモデル選択ルール４８ｃは、経路外ブロックと経路内ブロックのモデルを規定したルールである。図１４に例示されるモデル選択ルール４８ｃによって、「経路外ブロックは、ネットリストから削除する」ことを規定している。
【０１１２】
このような入力データに対して、図１５で説明される実施例３における抽象度選択処理を実行することによって、ネットリスト４２のモデル記述部４３ｂにおいて、モデル記述２ｄ及びモデル記述２ｅが削除される。
【０１１３】
図１５は、実施例３における抽象度選択処理を説明するためのフローチャート図である。図１５において、ステップＳ８１の経路探索処理部１１２による経路探索処理は、実施例１における図７に示す、ステップＳ６１の経路探索処理に相当し、ステップＳ８２及びＳ８３のブロック分類処理部１１３によるブロック分類処理はステップＳ６２及びＳ６３のブロック分類処理に相当する。
【０１１４】
ブロック分類処理部１１３による検証仕様データ４１に基づく経路内外のブロックの分類が終了すると、モデル選択処理部１１４は、モデル選択ルール４８ｃに従って、ネットリスト４２内の経路外ブロックのモジュール記述と接続情報とを削除し、経路内ブロックの記述のみに変更する（ステップＳ８４）。
【０１１５】
ステップＳ８４において、モデル選択処理部１１４は、モデル選択ルール４８に従って経路外ブロックをネットリスト４２から削除するために、ステップＳ８３で生成された経路外ブロックリスト４６を参照することによりブロック識別情報「blockD」及び「blockE」を取得し、ネットリスト４２から、ブロック識別情報「blockD」で特定される接続情報５３及びモデル記述２ｄと、ブロック識別情報「blockE」で特定される接続情報５４及びモデル記述２ｅとを削除した変更後ネットリスト４２ｃ−２を生成する。生成された変更後ネットリスト４２ｃ−２は記憶部４０に格納される。
【０１１６】
図１５に示す実施例３における抽象度選択処理を実行することによって、図５に示す回路５は、変更後ネットリスト４２ｃ−２に基づいて図１６のように表現される。図１６は、実施例３において変更されたブロックの抽象度を表現した構成図である。図１６において、実施例３における抽象度選択処理で、経路外ブロックと判断されたブロック「blockD」及び「blockE」が、接続情報と共に削除された状態で示めされる。
【０１１７】
上述したように、実施例３では、検証仕様データ４１に基づいて経路外と判断されたブロックのモデル記述及び接続情報を削除することによって、シミュレーションが実行された際には、回路５の動作の検証内容に直接影響のない領域を動作させないため、検証処理を高速に行うことができる。また、経路内と判断されたブロックのモデルを簡易化してしまうことがないため、検証内容のターゲットとなる設計箇所に関して、適切な検証結果を得ることができる。
【０１１８】
本実施の形態によれば、検証仕様データ４１に従って回路内の経路探索をすることで、大規模回路であっても、経路外又は／及び経路内のブロックの抽象度の変更を漏れなく適切に行うことができる。
【０１１９】
また、モデル選択ルール４８に従ってブロックのモデルの選択を行うため、ブロックの機能や特性の精度を向上させることができる。更に検証仕様データ４１に参照することによって、検証項目に対応したモデルが選択されるため、特定の機能や特性に係る検証を精度よく効率的に行なうことができる。
【０１２０】
また、検証仕様データ４１に従った経路探索に基づいて、少なくとも経路外ブロックのモデルの抽象度を高くすることによって、シミュレーション時間を短縮することができる。
【０１２１】
更に、検証漏れを無くし、シミュレーション時間を短縮できるため、設計工数を削減することができる。
【０１２２】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０１２３】
以上の実施例１から３を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
コンピュータによって実行される設計検証方法であって、
複数のブロックで構成される回路の検証に係る端子情報に基づいて、記憶部に格納されたネットリストを参照することによって、該ブロック間の接続関係に従って経路を探索し、
前記ネットリスト内に記述される、前記探索された経路外のブロックの動作の抽象度を変更する
ことを特徴とする設計検証方法。
（付記２）
前記記憶部に格納される、前記ブロックに関して、異なる検証精度に応じた抽象度で前記動作を記述したモデルが格納されているモデルデータベースを用いて、前記ネットリスト内の前記経路外のブロックの前記動作を、該抽象度を上げたモデルで変更することを特徴とする付記１記載の設計検証方法。
（付記３）
前記モデルデータベースは、同一ブロックに関して、検証目的別に対応する動作を記述した複数のモデルを更に格納し、
前記コンピュータは、更に、前記モデルデータベースを用いて、前記ネットリスト内に記述される、前記探索された経路内のブロックの動作を、前記検証の検証目的に対応する動作を記述したモデルで変更する
ことを特徴とする付記２記載の設計検証方法。
（付記４）
前記ネットリストから前記経路外のブロックの記述と接続情報とを削除することによって、該経路外のブロックの動作の抽象度を上げるように変更することを特徴とする付記１記載の設計検証方法。
（付記５）
前記コンピュータは、更に、前記探索された経路と、前記ネットリストとを参照することによって、前記複数のブロックを経路内又は経路外に分類する
ことを特徴とする付記１乃至４のいずれか一項に記載の設計検証方法。
（付記６）
前記探索された経路内のブロックをリストした経路内ブロックリストを作成して前記記憶部に格納し、
前記ネットリストを参照することによって、前記経路内ブロックリストに含まれていないブロックをリストした経路外ブロックリストを作成して前記記憶部に格納し、
前記記憶部に格納された前記経路外ブロックリストを参照することによって、前記ネットリスト内に記述される、前記探索された経路外のブロックの動作の抽象度を変更する
ことを特徴とする付記５記載の設計検証方法。
（付記７）
複数のブロックで構成される回路の検証に係る端子情報に基づいて、記憶部に格納されたネットリストを参照することによって、該ブロック間の接続関係に従って経路を探索し、
前記ネットリスト内に記述される、前記探索された経路外のブロックの動作の抽象度を変更する、
処理をコンピュータに実行させるプログラム。
（付記８）
回路を構成する複数のブロック間の接続関係と動作とを記述したネットリストを格納した記憶部と、
前記回路の検証に係る端子情報に基づいて、前記記憶部から前記ネットリストを参照することによって、前記複数のブロック間の前記接続関係に従って経路を探索し、
前記ネットリスト内に記述される、前記探索された経路外のブロックの前記動作の抽象度を変更する
ことを特徴とする設計検証装置。
【符号の説明】
【０１２４】
１１          ＣＰＵ
１２          メモリユニット
１３          表示ユニット
１４          出力ユニット
１５          入力ユニット
１６          通信ユニット
１７          記憶装置
１８          ドライバ
１９          記憶媒体
４０          記憶部
４１          検証仕様データ
４２          ネットリスト
４２−２、４２ａ−２    変更後ネットリスト
４２ｂ−２、４２ｃ−２  変更後ネットリスト
４４          経路内探索ツリー
４５          経路内ブロックリスト
４６          経路外ブロックリスト
４７          モデル一覧
４８          モデル選択ルール
４９          モデルデータベース
５０          検証結果
１００        設計検証装置
１１０        抽象度選択部
１１２        経路探索処理部
１１３        ブロック分類処理部
１１４        モデル選択処理部
【図１】
0005718166.tif 000002
【図２】
0005718166.tif 000003
【図３】
0005718166.tif 000004
【図４】
0005718166.tif 000005
【図５】
0005718166.tif 000006
【図６】
0005718166.tif 000007
【図７】
0005718166.tif 000008
【図８】
0005718166.tif 000009
【図９】
0005718166.tif 000010
【図１０】
0005718166.tif 000011
【図１１】
0005718166.tif 000012
【図１２】
0005718166.tif 000013
【図１３】
0005718166.tif 000014
【図１４】
0005718166.tif 000015
【図１５】
0005718166.tif 000016
【図１６】
0005718166.tif 000017