(58)【調査した分野】(Int.Cl.,DB名)
前記記憶部に格納される、前記ブロックに関して、異なる検証精度に応じた抽象度で前記動作を記述した前記複数の動作記述データが格納されている動作記述データベースを用いて、前記ネットリスト内の前記経路外のブロックの前記動作を、該抽象度を上げた動作記述で変更することを特徴とする請求項1記載の設計検証方法。
複数のブロックで構成される回路の検証に係る端子情報に基づいて、記憶部に格納されたネットリストを参照することによって、該ブロック間の接続関係に従って経路を探索し、
異なる抽象度で前記探索された経路外のブロックの動作を異なる抽象度で記述した複数の動作記述データから第1の動作記述データを選択し、
前記ネットリスト内に記述される前記経路外のブロックの動作を記述した第2の動作記述データを前記第1の動作記述データで置き換えることで、前記経路外のブロックの動作の抽象度を変更し、
検証目的別に対応する複数の動作記述データから前記検証の検証目的に対応する第3の動作記述データを選択し、
前記ネットリスト内に記述される、前記探索された経路内のブロックの動作を記述した第4の動作記述データを前記第3の動作記述データで変更する
処理をコンピュータに実行させるプログラム。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態を図面に基づいて説明する。本実施の形態に係る設計検証装置は、検証仕様に従ったシミュレーションにおいて回路動作に係る信号が伝播する経路を、シミュレーション実行前に探索し、回路を構成する複数のブロックに関して、探索された経路内のブロック(以下、経路内ブロックと言う)と経路外のブロック(以下、経路外ブロックと言う)のいずれか、又は、経路内外のブロックの夫々に対応させて、ブロックのモデルを選択することにより、より高速なシミュレーションを実現すると共に、回路の検証を適切に行なうものである。
【0013】
本実施の形態に係る設計検証装置は、例えば、
図1に示すようなハードウェア構成を有する。
図1は、設計検証装置のハードウェア構成を示す図である。
図1において、設計検証装置100は、コンピュータによって制御される装置であって、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、出力ユニット14と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライバ18とを有し、システムバスBに接続される。
【0014】
CPU11は、メモリユニット12に格納されたプログラムに従って設計検証装置100を制御する。メモリユニット12には、RAM(Random Access Memory)及びROM(Read-Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
【0015】
表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、利用者からの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、利用者が設計検証装置100が処理を行なうための必要な各種情報を入力するために用いられる。
【0016】
通信ユニット16は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。記憶装置17には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。
【0017】
設計検証装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によって設計検証装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライバ18にセットされると、ドライバ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたプログラムに従ってCPU11がその処理を開始する。尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【0018】
また、設計検証装置100によって行われる処理を実現するプログラムが、通信ユニット16を介して外部装置から提供されてもよい。
【0019】
図2は、設計検証装置の機能構成例を示す図である。
図2に示す設計検証装置100は、主に、抽象度選択部110と、シミュレーション部120と、記憶部40とを有する。
【0020】
抽象度選択部110と、シミュレーション部120とは、CPU11が対応するプログラムを実行することによって行われる処理によって実現される。
【0021】
記憶部40は、少なくともメモリユニット12又は記憶装置17で構成される。記憶部40は、メモリユニット12と記憶装置17とを有するようにしても良く、更に、コンピュータ読取可能な記憶媒体、設計検証装置100に着脱可能な可搬型記録媒体、通信ユニット16を介してアクセス可能な外部記憶装置を含んでもよい。
【0022】
記憶部40には、設計検証装置100によって行われる処理に係る、検証仕様データ41、ネットリスト42、経路内探索ツリー44、経路内ブロックリスト45、経路外ブロックリスト46、モデル一覧47、モデル選択ルール48、モデルデータベース49、変更後ネットリスト42−2、検証結果50などが格納される。
【0023】
検証仕様データ41は、設計された回路を検証する検証内容を示すデータである。検証仕様データ41には、入力端子、出力端子、検証項目、検証精度などが定義されている。入力端子と出力端子は、入力端子を識別する入力端子識別情報と出力端子を識別する出力端子識別情報によって夫々指定される。入力端子識別情報と出力端子識別情報とが端子情報に相当する。検証仕様データ41は、検証目的毎に作成されるため、記憶部40に複数存在してもよい。
【0024】
シミュレーション部120によって、検証仕様データ41に従ってシミュレーションが行われ、設計された回路が、検証仕様データ41で指定される入力端子から出力端子までの経路における検証項目に対して、検証精度のレベルで検証される。
【0025】
ネットリスト42は、回路を構成する複数のブロック間の接続関係を記述した接続情報と、ブロックのモデルの記述とを含むデータである。
【0026】
経路内探索ツリー44は、検証仕様データ41に基づいて抽象度選択部110によって行われる経路探索処理において生成されるデータである。経路内探索ツリー44は、検証仕様データ41とネットリスト42とを参照して探索された経路内の接続関係を表したデータである。
【0027】
経路内ブロックリスト45は、経路内探索ツリー44に含まれるブロックの一覧を示すデータであり、ブロックの識別情報(ブロック識別情報)で示される。
【0028】
経路外ブロックリスト46は、経路内ブロックリスト45とネットリスト42とを参照することによって、経路内ブロックリスト45に含まれない経路外のブロックの一覧を示すデータであり、ブロックの識別情報(ブロック識別情報)で示される。
【0029】
モデル一覧47は、抽象度の異なるモデルを、抽象度毎のモデル識別情報の一覧で示したデータである。
【0030】
モデル選択ルール48は、経路内ブロック又は/及び経路外ブロックに対する抽象度を指定し、モデルを選択する際のルールを示したデータである。
【0031】
モデルデータベース49は、回路を構成する各ブロックの抽象度に対応するモデルの実体(抽象度に対応するモデルの動作をハードウェア記述言語などによって記述した動作記述データ)を格納し管理するためのデータベースである。モデルデータベース49では、ブロック毎に検証精度に対応させて抽象度の異なる複数のモデルが管理される。ブロック毎に用意されたモデルの端子情報は同一であってもよい。
【0032】
抽象度の異なる複数のモデルには、詳細モデルと、簡易モデルとが含まれる。抽象度の低い詳細モデルとは、例えば、Verilog−Aによって、時変、非線形、過渡状態など、アナログを含めて表現したモデルである。抽象度の高い簡易モデルとは、Verilog−D又は端子情報のみのセルなどによって、時不変、線形状態を表現したモデルである。抽象度の異なる複数のモデルは、種々の検証仕様に対応して予め作成される動作記述データである。
【0033】
変更後ネットリスト42−2は、抽象度選択部110によって、検証仕様データ41で指定される検証項目と検証精度とに対応するモデルを用いてネットリスト42が変更された後のネットリストである。
【0034】
検証結果50は、シミュレーション部120が変更後ネットリスト42−2を用いて、回路の動作をシミュレーションした結果を示すデータである。
【0035】
抽象度選択部110は、記憶部40に格納されている、設計された回路を検証する検証内容を示す検証仕様データ41で指定される入力端子から出力端子までの経路を探索し、経路内ブロック又は/及び経路外ブロックの抽象度を選択する処理部であり、更に、経路探索処理部112と、ブロック分類処理部113と、モデル選択処理部114とを有する。
【0036】
経路探索処理部112は、ネットリスト42を参照して、検証仕様データ41で指定される入力端子から出力端子までの経路を探索して、経路内探索ツリー44を生成する処理部である。生成された経路内探索ツリー44は、記憶部40に格納される。検証仕様データ41で指定される入力端子から出力端子までの経路が探索されることによって、検証内容に関わるブロックの選別を行うことが可能となる。
【0037】
経路探索処理部112によって行われる経路探索処理は、例えば、入力端子からすべての経路を探索し、その際、一度通ったブロックからの探索は終了させる。このようにして得られた探索結果から出力端子を指定することで入出力間の経路を確定すること可能となる。
【0038】
ブロック分類処理部113は、経路内探索ツリー44、更にネットリスト42を参照することによって、回路を構成する複数のブロックを、検証仕様データ41に基づく経路内のブロックと経路外のブロックとに分類する処理部である。
【0039】
ブロック分類処理部113は、経路内探索ツリー44を参照することによって、経路内ブロックの識別情報を一覧にした経路内ブロックリスト45を生成する処理部である。生成された経路内ブロックリスト45は、記憶部40に格納される。
【0040】
また、ブロック分類処理部113は、経路内ブロックリスト45とネットリスト42とを用いて、経路外ブロックリスト46を生成する処理部である。生成された経路外ブロックリスト46は、記憶部40に格納される。
【0041】
モデル選択処理部114は、経路内ブロック又は/及び経路外ブロックの抽象度を選択する処理部である。モデル選択処理部114は、経路内ブロック又は/及び経路外ブロックに対して、モデル選択ルール48に従った抽象度に対応するモデルで、ネットリスト42内の該当するモデルを変更して変更後ネットリスト42−2を生成する。生成された変更後ネットリスト42−2は、記憶部40に格納される。
【0042】
モデル選択処理部114は、経路外ブロックに対しては、動作を記述したモデルを抽象度の高い簡易モデル(又は、ブロックの削除)によって変更する。経路内ブロックに対しては、動作を記述したモデルを抽象度の低い詳細モデルによって変更する。
【0043】
変更例として、検証項目に、時間不変、又は、過渡状態を見ない場合は簡易モデルへの変更が可能である。また、線形動作(入力に対して出力が一様である場合)は簡易モデルへの変更が可能である。
【0044】
シミュレーション部120は、記憶部40に格納されている変更後ネットリスト42−2を用いて、回路の動作を検証する。シミュレーションによる検証結果50が生成され、記憶部40に格納される。抽象度選択部110がネットリスト42を変更しなかった場合、つまり、変更後ネットリスト42−2が生成されなかった場合、シミュレーション部120は、ネットリスト42を用いてシミュレーションを実行する。
【0045】
図3は、設計検証装置で行われる全体処理の概要を説明するためのフローチャート図である。
図3において、ステップS10からS30が、抽象度選択部110によって行われる抽象度選択処理P10aである。経路探索処理部112は、記憶部40に格納されている検証仕様データ41とネットリスト42とを用いて経路探索処理を行う(ステップS10)。
【0046】
検証仕様データ41は、検証する目的に対応した検証内容毎に予め作成されるため、検証内容が複数の場合、夫々に対応させた検証仕様データ41が複数存在することになる。このような場合、ユーザ(例えば、回路設計者)によって指定された検証仕様データ41を用いて、経路探索処理が行われる。
【0047】
ステップS10の経路探索処理によって、経路内探索ツリー44が生成され、記憶部40に格納される。
【0048】
次に、ブロック分類処理部113は、記憶部40に格納されている経路内探索ツリー44とネットリスト42とを用いて、回路を構成するブロックを経路内ブロックと経路外ブロックとに分類するブロック分類処理を行う(ステップS20)。
【0049】
ステップS20において、ブロック分類処理部113は、経路内探索ツリー44からブロック識別情報を抽出して、経路内ブロックの一覧を示す経路内ブロックリスト45を生成し、記憶部40に格納する。また、ブロック分類処理部113は、経路内ブロックリスト45とネットリスト42とを用いて、経路内ブロックリスト45に含まれていないブロックの識別情報を抽出して、経路外ブロックの一覧を示す経路外ブロックリスト46を生成し、記憶部40に格納する。
【0050】
モデル選択処理部114は、経路内ブロック又は/及び経路外ブロックに対して、モデル一覧47から検証仕様データ41とモデル選択ルール48とに対応する抽象度に応じたモデル識別情報を取得し、そのモデル識別情報で特定される動作記述データをモデルデータベース49から取得して、ネットリスト42を変更する(ステップS30)。ネットリスト42を変更した変更後ネットリスト42−2が記憶部40に格納される。
【0051】
そして、シミュレーション部120によって、変更後ネットリスト42−2を用いてシミュレーションが実行される(ステップS30)。シミュレーションによる検証結果50が記憶部40に格納される。
【0052】
変更後ネットリスト42−2を用いたシミュレーションは、抽象度を変更していないネットリスト42を用いた場合よりも高速に回路の動作検証を行なうことができる。また、検証仕様データ41に対応する抽象度のモデルでシミュレーションが行われることにより、回路の動作が適切に検証された検証結果50を得ることができる。
【0053】
次に、抽象度選択処理P10aにおける上述したステップS10の経路探索処理について、
図4で説明する。
図4は、
図3のステップS10の経路探索処理を説明するためのフローチャート図である。
図4において、経路探索処理部112は、検証仕様データ41で指定される入力端子を探索起点に設定する(ステップS11)。
【0054】
経路探索処理部112は、ネットリスト42を参照して、探索起点からの接続情報が、出力端子に接続されることを示しているか否かを判断する(ステップS12)。出力端子に接続されることを示している場合、経路探索処理部112は、接続先の出力端子を経路内探索ツリー44に追加して(ステップS12−2)、ステップS13へと進む。経路内探索ツリー44には、接続元の入力端子との接続関係において、入力端子の入力端子識別情報に対して、接続先に出力端子の出力端子識別情報が追加される。
【0055】
一方、ステップS12において、出力端子に接続されることを示していない場合、探索起点からの接続情報が、ブロックに接続されていることを示しているか否かを判断する(ステップS13)。接続情報において、接続先にブロックが示されていない場合、経路探索処理部112は、ステップS15へと進む。
【0056】
一方、ステップS13において、ブロックに接続されていることを示している場合、経路探索処理部112は、更に、ブロック(ブロック識別情報)が経路内探索ツリー44に存在するか否かを判断する(ステップS14)。存在する場合、経路探索処理部112は、経路内探索ツリー44に既に追加されているブロックに結線を付与して(ステップS14−2)、ステップS15へと進む。経路内探索ツリー44において、既に追加されているブロック識別情報に対応させて探索起点との接続関係を示す接続情報が追加される。
【0057】
ステップS14において、ブロック(ブロック識別情報)が経路内探索ツリー44に存在しない場合、経路探索処理部112は、接続先のブロック(ブロック識別情報)を経路内探索ツリー44に追加して(ステップS14−4)、ステップS15へと進む。
【0058】
経路探索処理部112は、経路内探索ツリー44において出力を探索していないブロックがあるか否かを判断する(ステップS15)。即ち、経路内探索ツリー44内に、接続情報が存在しないブロック識別情報が存在するか否かが判断される。
【0059】
ステップS15において、ブロックがあると判断した場合、経路探索処理部112は、ブロックの出力を探索起点に設定する(ステップS15−2)。経路探索処理部112は、ネットリスト42を参照することによって、出力を探索していないブロックから信号が出力される出力端子(つまり、出力端子識別情報)を取得し、その出力端子識別情報を探索起点に設定して(ステップS15−2)、ステップS12へ戻り、上述した同様の処理を繰り返す。
【0060】
一方、ブロックがないと判断した場合、経路探索処理部112は、検証仕様データ41で指定される出力端子が経路内探索ツリー44に存在するか否かを判断する(ステップS16)。存在する場合、経路探索処理部112は、探索成功をこの処理結果とし、経路探索処理を終了する。一方、存在しない場合、経路探索処理部112は、探索失敗をこの処理結果とし、経路探索処理を終了する。
【0061】
抽象度選択処理において、探索成功で経路探索処理が終了した場合、ブロック分類処理部113に処理が継続される。一方、探索失敗で経路探索処理が終了した場合、抽象度選択処理は終了し、例えば、経路探索が失敗したことが表示ユニット13に表示されることにより、設計者による回路設計の見直しが行われる。
【0062】
以下、上述したような経路探索処理によって得られた経路内探索ツリー44を用いて行われる抽象度選択処理の実施例について、
図5に例示されるような対象回路を用いて詳述する。
【0063】
図5は、対象回路の構成例を示す図である。
図5に例示される回路5は、入力端子IP、IM、A、B、及びINと、出力端子OUT1及びOUT2とを有する。IP、IM、A、B、及びINは、以下に説明される実施例にて入力端子識別情報として参照される。同様に、出力端子OUT1、及びOUT2は、以下に説明される実施例にて出力端子識別情報として参照される。
【0064】
また、回路5は、ブロック「blockA」、ブロック「blockB」、ブロック「blockC」、ブロック「blockD」、ブロック「blockE」で構成される。「」内はブロック識別情報である。回路5における接続関係は、ネットリスト42に含まれる接続情報によって記述される。
【0065】
以下、実施例毎に、抽象度選択部110での処理で使用される入力データと、処理フローとを例示する。
【0066】
[実施例1]
実施例1は、経路外ブロックの抽象度を最大レベルのモデルに変更する場合である。
図6は、実施例1に係る入力データ例を示す図である。
図6に例示されるように、ネットリスト42と、検証仕様データ41と、モデル選択ルール48aと、モデル一覧47と、モデルデータベース49とが、入力データとして設計検証装置100の抽象度選択部110に入力される。
【0067】
図6において、検証仕様データ41は、入力端子、出力端子、検証項目、検証精度などの項目を有する。この例では、入力端子IP、IM、A、及びBが指定され、出力端子OUT1が指定されている。従って、入力端子IP、IM、A、及びBの各々から出力端子OUT1までの経路が検証対象となる。また、検証項目は出力レベルの検証を目的としていることを示し、検証精度は低レベルで検証することを示している。
【0068】
ネットリスト42は、接続情報部43aと、モデル記述部43bとを含む。接続情報部43aでは、回路5を構成するブロック毎に接続関係を示す接続情報が定義されている。モデル記述部43bでは、ブロック毎の入出力を定義し、ブロックの動作をハードウェア記述言語などで表現した記述部である。
【0069】
図6に示す接続情報部43aにおいて、接続情報I0は、ブロック「blockA」に関して入力及び出力を定義している。ブロック「blockA」の入力及び出力がIP、IM、oaであることが指定されている。モジュール記述部43bにおける、ブロック「blockA」のモデル記述「Model blockA」より、入出力を定義した記述(in1 in2 out)に対応させることによって、入力端子IP及びIMがブロック「blockA」の入力であり、oaがブロック「blockA」の出力となる。モジュール記述部43bでは、ブロック「blockA」に関して更に、動作が「aaaaaa」部分にハードウェア記述言語などで記述される。以下、入出力を定義した記述部分を含まない「aaaaaa」部分を動作記述部と言う。他のブロックについても同様である。
【0070】
図6に例示されるモデル選択ルール48aは、経路探索処理の結果を用いて分類されたブロックに対して、経路外ブロックに対して、抽象度が最大レベルのモデルを使用することを、モデルを選択する際のルールとして規定している。
【0071】
モデル一覧47は、モデルデータベース49とモデル識別情報で関連付けされており、モデルデータベース49で管理されている(モデルデータベース49に存在する)動作記述データに関して、モデル毎に検証目的又は検証精度を示したデータである。
【0072】
この例では、モデル識別情報は、英字大文字でブロックを特定し、数字で同一ブロックに対する複数のモデルを識別する形式で示される。この形式に限定されるものではない。例えば、ブロック「blockA」に対して、モデルA1、A2、・・・などの複数のモデルが対応付けられている。モデルA1は「出力レベル用モデル」、モデルA2は「接続確認用モデル」などの検証目的に対応した動作記述データが、モデルデータベース49に存在することが示されている。
【0073】
他の例では、ブロック「blockD」に対して、モデルD1、D2、・・・などの複数のモデルが対応付けられている。モデルD1は「詳細モデル」、モデルD2は「簡易モデル」などの検証精度に対応した動作記述データが、モデルデータベース49に存在することが示されている。検証精度を示す「詳細モデル」は、最も抽象度が高いモデルであることを示し、「簡易モデル」は、最も抽象度が低いモデルであることを示す。
【0074】
図6に例示されるモデルデータベース49では、モデルA1には「a1a1a1」、モデルA2には「a2a2a2」、・・・、モデルD1には「d1d1d1」、モデルA2には「d2d2d2」、・・・などのように、モデル識別情報に対応させて、検証目的又は検証精度に対応する動作内容を表現したハードウェア記述言語などによる動作記述データが管理される。
【0075】
図7及び
図8は、実施例1における抽象度選択処理を説明するためのフローチャート図である。
図7において、経路探索処理部112は、ネットリスト42を参照して、検証仕様データ41で指定される入力端子から出力端子間の経路を探索する(ステップS61)。この経路探索によって、各入力端子IP、IM、A、及びBから出力端子OUT1までの経路が探索され、経路内探索ツリー44が生成される。実施例1では、ブロック「blockA」、ブロック「blockB」、及びブロック「blockC」が探索され、経路内探索ツリー44には、少なくとも、探索された各ブロックを識別するブロック識別情報と、ブロックの接続情報とを示す接続情報I0、I1、及びI2が格納される。ここでは、ネットリスト42のデータ例に対応させて接続情報I0、I1、及びI2で例示するが、このデータ形式に限定されるものではない。
【0076】
経路探索が終了すると、ブロック分類処理部113は、記憶部40に格納されている経路内探索ツリー44からブロック識別情報を抽出して、検証仕様データ41に基づく経路内の全ブロックをリスト化する(ステップS62)。検証仕様データ41に基づく経路内の全ブロックがリスト化された経路内ブロックリスト45が生成され記憶部40に格納される。実施例1における経路内ブロックリスト45では、ブロック識別情報「blockA」、「blockB」、及び「blockC」が記録される。
【0077】
更に、ブロック分類処理部113は、ネットリスト42から経路内ブロックリスト45に含まれていないブロック識別情報を抽出して、経路外の全ブロックをリスト化する(ステップS63)。検証仕様データ41に基づく経路外の全ブロックがリスト化された経路外ブロックリスト46が生成され記憶部40に格納される。実施例1における経路外ブロックリスト46では、ブロック識別情報「blockD」及び「blockE」が記録される。
【0078】
図8において、ブロック分類処理部113による検証仕様データ41に基づく経路内外のブロックの分類が終了すると、モデル選択処理部114は、モデル一覧47に経路外ブロックのモデルが存在するか否かを判断する(ステップS64)。
【0079】
実施例1の入力データ例では、ブロック識別情報内においてブロックに一意に与えられる英字大文字を含むモデル識別情報がモデル一覧47に存在するか否かで判断すればよい。経路外ブロックリスト46にリストされるブロック「blockD」の英字大文字「D」を含むモデル識別情報「D1」及び「D2」が、モデル一覧47に存在する。また、経路外ブロックリスト46にリストされるブロック「blockE」の英字大文字「E」を含むモデル識別情報「E1」及び「E2」が、モデル一覧47に存在する。この場合、経路外ブロックのモデルが存在すると判断し、モデル選択処理部114は、ステップS65へと進む。
【0080】
一方、ステップS64にて、経路外ブロックのモデルが存在しないと判断した場合、「抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部120は、ブロックの動作記述部が変更されていないネットリスト42を用いてシミュレーションを行う。
【0081】
この実施例1のように経路外ブロックのモデルが存在すると判断した場合、モデル選択処理部114は、更に、モデル選択ルール48aに適合するモデルが存在するか否かを判断する(ステップS65)。
【0082】
実施例1におけるモデル選択ルール48aの場合、モデル選択処理部114は、ステップS64で存在を確認したモデル(モデル識別情報「D1」、「D2」、「E1」、及び「E2」)に対して、ブロック毎に抽象度が最大となるモデルが存在するか否かを、モデル一覧47を参照して判断する。この例では、ブロック「blockD」に対してモデル「D2」、また、ブロック「blockE」に対してモデル「E2」が、モデル選択ルール48aに適合すると判断されて選択される。
【0083】
一方、ステップS65にて、適合するモデルが存在しないと判断した場合、「抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部120は、ブロックの動作記述部が変更されていないネットリスト42を用いてシミュレーションを行う。
【0084】
この実施例1のように適合するモデルを選択できた場合、モデル選択処理部114は、ネットリスト42の該当ブロックのモデル記述内の動作記述部を、選択した動作記述データで変更する(ステップS66)。
【0085】
実施例1では、ブロック「blockD」及び「blockE」に対してモデル「D2」及び「E2」が選択されている。従って、モデル選択処理部114は、ネットリスト42のモデル記述部43bにおいて、ブロック「blockD」のモデル記述2d内の動作記述部21d及びブロック「blockE」のモデル記述2e内の動作記述部21eを、モデルデータベース49で管理されるモデル「D2」の動作記述データ22d及びモデル「E2」の動作記述データ22eで夫々変更して変更後ネットリスト42a−2を生成し、記憶部40に格納する。動作記述部21dは「dddddd」から「d2d2d2」へと変更され、動作記述部21eは「eeeeee」から「e2e2e2」へと変更される。
【0086】
モデル選択処理部114によってネットリスト42が変更されたため、「抽象度変更有り」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部120は、ブロックの動作記述部が変更された変更後ネットリスト42a−2を用いてシミュレーションを行う。
【0087】
図7及び
図8に示す実施例1における抽象度選択処理を実行することによって、
図5に示す回路5は、変更後ネットリスト42a−2に基づいて
図9のように表現される。
図9は、実施例1において変更されたブロックの抽象度を表現した構成図である。
図9において、実施例1における抽象度選択処理で、抽象度の最大レベルとなる動作記述データで変更されたブロック「blockD」及び「blockE」は点線で示される。また、抽象度が変更されなかったブロック「blockA」、「blockB」、及び「blockC」は実線で示される。
【0088】
上述したように、実施例1では、検証仕様データ41に基づいて経路外と判断されたブロックの動作記述部の抽象度を最大レベルに変更することによって、シミュレーションが実行された際には、回路5の動作の検証内容に直接影響のないブロックの動作を簡易化させることができ、検証処理を高速に行うことができる。また、経路内と判断されたブロックのモデルを簡易化してしまうことがないため、検証内容のターゲットとなる設計箇所に関して、適切な検証結果を得ることができる。
【0089】
[実施例2]
実施例2は、経路外ブロックを抽象度が最大レベルのモデルに変更すると共に、経路内ブロックを検証項目に応じたモデルに変更する場合である。
図10は、実施例2に係る入力データ例を示す図である。
図10に例示されるように、ネットリスト42と、検証仕様データ41と、モデル選択ルール48bと、モデル一覧47と、モデルデータベース49とが、入力データとして設計検証装置100の抽象度選択部110に入力される。
【0090】
図10において、検証仕様データ41、ネットリスト42、モデル一覧47、モデルデータベース49のデータ例は
図9に示すデータ例と同様であるので、その説明を省略する。
【0091】
実施例2におけるモデル選択ルール48bは、経路外ブロックと経路内ブロックのモデルを規定したルールである。
図10に例示されるモデル選択ルール48bによって、「経路外ブロックは、抽象度が最大レベルのモデルを使用する」及び「経路内ブロックは、検証項目に応じたモデルを使用する」ことを規定している。
【0092】
このような入力データに対して、
図11及び
図12で説明される実施例2における抽象度選択処理を実行することによって、ネットリスト42のモデル記述部43bにおいて、モデル記述2a内の動作記述部21a、モデル記述2d内の動作記述部21d、及び、モデル記述2e内の動作記述部21eが、モデルデータベース49の動作記述データ22a、動作記述データ22d、及び、動作記述データ22eに変更される。
【0093】
図11及び
図12は、実施例2における抽象度選択処理を説明するためのフローチャート図である。
図11において、ステップS71の経路探索処理部112による経路探索処理は、実施例1における
図7に示す、ステップS61の経路探索処理に相当し、ステップS72及びS73のブロック分類処理部113によるブロック分類処理はステップS62及びS63のブロック分類処理に相当する。
【0094】
ブロック分類処理部113による検証仕様データ41に基づく経路内外のブロックの分類が終了すると、モデル選択処理部114は、モデル一覧47に経路外ブロックのモデルが存在するか否かを判断する(ステップS74)。判断方法は、実施例1における
図8のステップS64と同様であるので、説明を省略する。
【0095】
ステップS74にて、経路外ブロックのモデルが存在しないと判断した場合、「抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部120は、ブロックの動作記述部が変更されていないネットリスト42を用いてシミュレーションを行う。
【0096】
一方、経路外ブロックのモデルが存在すると判断した場合、
図12において、モデル選択処理部114は、更に、モデル選択ルール48bに適合するモデルが存在するか否かを判断する(ステップS75)。適合するモデルが存在しないと判断した場合、モデル選択処理部114は、ステップS77へと進む。
【0097】
実施例2におけるモデル選択ルール48bの場合、モデル選択処理部114は、ステップS74で存在を確認したモデル(モデル識別情報「D1」、「D2」、「E1」、及び「E2」)に対して、ブロック毎に抽象度が最大となるモデルが存在するか否かを、モデル一覧47を参照して判断する。この例では、ブロック「blockD」に対してモデル「D2」、また、ブロック「blockE」に対してモデル「E2」が、モデル選択ルール48bに適合すると判断されて選択される。そして、モデル選択処理部114は、ネットリスト42の該当ブロックのモデル記述内の動作記述部を、選択した動作記述データで変更する(ステップS76)。
【0098】
実施例2では、モデル選択処理部114は、ネットリスト42のモデル記述部43bにおいて、ブロック「blockD」のモデル記述2d内の動作記述部21d及びブロック「blockE」のモデル記述2e内の動作記述部21eを、モデルデータベース49で管理されるモデル「D2」の動作記述データ22d及びモデル「E2」の動作記述データ22eで夫々変更して変更後ネットリスト42a−2を生成し、記憶部40に格納する。動作記述部21dは「dddddd」から「d2d2d2」へと変更され、動作記述部21eは「eeeeee」から「e2e2e2」へと変更される。
【0099】
次に、モデル選択処理部114は、モデル一覧47に経路内ブロックのモデルが存在するか否かを判断する(ステップS77)。経路内ブロックリスト45にリストされるブロック「blockA」の英字大文字「A」を含むモデル識別情報「A1」及び「A2」がモデル一覧47に存在するため、モデル選択処理部114は、経路内ブロックのモデルが存在すると判断して、
図12のステップS7
8へと進む。
【0100】
一方、ステップS77にて、経路外ブロックのモデルが存在しないと判断した場合、「経路内の抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部120は、変更後ネットリスト42b−2、又は、変更後ネットリスト42b−2が記憶部40に存在しない場合は、ブロックの動作記述部が変更されていないネットリスト42を用いてシミュレーションを行う。
【0101】
一方、ステップS77にて、経路
内ブロックのモデルが存在しないと判断した場合、「経路内の抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部120は、変更後ネットリスト42b−2、又は、変更後ネットリスト42b−2が記憶部40に存在しない場合は、ブロックの動作記述部が変更されていないネットリスト42を用いてシミュレーションを行う。
【0102】
実施例2におけるモデル選択ルール48bの場合、モデル選択処理部114は、ステップS74で存在を確認したモデル(モデル識別情報「A1」及び「A2」)に対して、ブロック毎に検証項目に応じたモデルが存在するか否かを、モデル一覧47を参照して判断する。検証仕様データ41で指定される検証項目「出力レベル」に基づいて、検証項目「出力レベル」に応じたモデルが存在するか否かが判断される。この例では、ブロック「blockA」に対してモデル「A1」が、モデル選択ルール48bに適合すると判断されて選択される。
【0103】
一方、ステップS78にて、適合するモデルが存在しないと判断した場合、「経路内の抽象度変更無し」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部120は、変更後ネットリスト42b−2、又は、変更後ネットリスト42b−2が記憶部40に存在しない場合は、ブロックの動作記述部が変更されていないネットリスト42を用いてシミュレーションを行う。
【0104】
この実施例2のように適合するモデルを選択できた場合、モデル選択処理部114は、ネットリスト42の該当ブロックのモデル記述内の動作記述部を、選択した動作記述データで変更する(ステップS79)。
【0105】
実施例2では、経路外ブロックにおいて、ブロック「blockD」及び「blockE」に対してモデル「D2」及び「E2」が選択され、経路内ブロックにおいて、ブロック「blockA」に対してモデル「A1」が選択されている。従って、モデル選択処理部114は、ネットリスト42のモデル記述部43bにおいて、ブロック「blockA」のモデル記述2a内の動作記述部21a、ブロック「blockD」のモデル記述2d内の動作記述部21d、及びブロック「blockE」のモデル記述2e内の動作記述部21eを、モデルデータベース49で管理されるモデル「D2」の動作記述データ22d及びモデル「E2」の動作記述データ22eで夫々変更して変更後ネットリスト42a−2を生成し、記憶部40に格納する。動作記述部21aは「aaaaaa」から「a1a1a1」へと変更され、動作記述部21dは「dddddd」から「d2d2d2」へと変更され、動作記述部21eは「eeeeee」から「e2e2e2」へと変更される。
【0106】
モデル選択処理部114によってネットリスト42が変更されたため、「抽象度変更有り」を抽象度選択処理における結果とし、この処理を終了する。この場合、シミュレーション部120は、ブロックの動作記述部が変更された変更後ネットリスト42b−2を用いてシミュレーションを行う。
【0107】
図11及び
図12に示す実施例2における抽象度選択処理を実行することによって、
図5に示す回路5は、変更後ネットリスト42b−2に基づいて
図13のように表現される。
図13は、実施例2において変更されたブロックの抽象度を表現した構成図である。
図13において、実施例2における抽象度選択処理で、経路外ブロックにおいて、抽象度の最大レベルとなる動作記述データで変更されたブロック「blockD」及び「blockE」は点線で示される。また、経路内ブロックにおいて、検証項目「出力レベル」に対応する動作記述データで変更されたブロック「blockA」は点線で示される。一方、抽象度が変更されなかったブロック「blockB」、及び「blockC」は実線で示される。
【0108】
上述したように、実施例2では、検証仕様データ41に基づいて経路外と判断されたブロックの動作記述部の抽象度を最大レベルに変更することによって、シミュレーションが実行された際には、回路5の動作の検証内容に直接影響のないブロックの動作を簡易化させることができ、検証処理を高速に行うことができる。また、経路内と判断されたブロックに対して、検証項目に応じたモデルに変更することができるため、検証内容のターゲットとなる設計箇所に関して、検証項目に対する適切な検証結果を得ることができる。
【0109】
[実施例3]
実施例3は、経路外ブロックを削除する場合である。
図14は、実施例3に係る入力データ例を示す図である。
図14に例示されるように、ネットリスト42と、検証仕様データ41と、モデル選択ルール48cと、モデル一覧47と、モデルデータベース49とが、入力データとして設計検証装置100の抽象度選択部110に入力される。
【0110】
図14において、検証仕様データ41、ネットリスト42、モデル一覧47、モデルデータベース49のデータ例は
図9に示すデータ例と同様であるので、その説明を省略する。
【0111】
実施例3におけるモデル選択ルール48cは、経路外ブロックと経路内ブロックのモデルを規定したルールである。
図14に例示されるモデル選択ルール48cによって、「経路外ブロックは、ネットリストから削除する」ことを規定している。
【0112】
このような入力データに対して、
図15で説明される実施例3における抽象度選択処理を実行することによって、ネットリスト42のモデル記述部43bにおいて、モデル記述2d及びモデル記述2eが削除される。
【0113】
図15は、実施例3における抽象度選択処理を説明するためのフローチャート図である。
図15において、ステップS81の経路探索処理部112による経路探索処理は、実施例1における
図7に示す、ステップS61の経路探索処理に相当し、ステップS82及びS83のブロック分類処理部113によるブロック分類処理はステップS62及びS63のブロック分類処理に相当する。
【0114】
ブロック分類処理部113による検証仕様データ41に基づく経路内外のブロックの分類が終了すると、モデル選択処理部114は、モデル選択ルール48cに従って、ネットリスト42内の経路外ブロックのモジュール記述と接続情報とを削除し、経路内ブロックの記述のみに変更する(ステップS84)。
【0115】
ステップS84において、モデル選択処理部114は、モデル選択ルール48に従って経路外ブロックをネットリスト42から削除するために、ステップS83で生成された経路外ブロックリスト46を参照することによりブロック識別情報「blockD」及び「blockE」を取得し、ネットリスト42から、ブロック識別情報「blockD」で特定される接続情報53及びモデル記述2dと、ブロック識別情報「blockE」で特定される接続情報54及びモデル記述2eとを削除した変更後ネットリスト42c−2を生成する。生成された変更後ネットリスト42c−2は記憶部40に格納される。
【0116】
図15に示す実施例3における抽象度選択処理を実行することによって、
図5に示す回路5は、変更後ネットリスト42c−2に基づいて
図16のように表現される。
図16は、実施例3において変更されたブロックの抽象度を表現した構成図である。
図16において、実施例3における抽象度選択処理で、経路外ブロックと判断されたブロック「blockD」及び「blockE」が、接続情報と共に削除された状態で示めされる。
【0117】
上述したように、実施例3では、検証仕様データ41に基づいて経路外と判断されたブロックのモデル記述及び接続情報を削除することによって、シミュレーションが実行された際には、回路5の動作の検証内容に直接影響のない領域を動作させないため、検証処理を高速に行うことができる。また、経路内と判断されたブロックのモデルを簡易化してしまうことがないため、検証内容のターゲットとなる設計箇所に関して、適切な検証結果を得ることができる。
【0118】
本実施の形態によれば、検証仕様データ41に従って回路内の経路探索をすることで、大規模回路であっても、経路外又は/及び経路内のブロックの抽象度の変更を漏れなく適切に行うことができる。
【0119】
また、モデル選択ルール48に従ってブロックのモデルの選択を行うため、ブロックの機能や特性の精度を向上させることができる。更に検証仕様データ41に参照することによって、検証項目に対応したモデルが選択されるため、特定の機能や特性に係る検証を精度よく効率的に行なうことができる。
【0120】
また、検証仕様データ41に従った経路探索に基づいて、少なくとも経路外ブロックのモデルの抽象度を高くすることによって、シミュレーション時間を短縮することができる。
【0121】
更に、検証漏れを無くし、シミュレーション時間を短縮できるため、設計工数を削減することができる。
【0122】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【0123】
以上の実施例1から3を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータによって実行される設計検証方法であって、
複数のブロックで構成される回路の検証に係る端子情報に基づいて、記憶部に格納されたネットリストを参照することによって、該ブロック間の接続関係に従って経路を探索し、
前記ネットリスト内に記述される、前記探索された経路外のブロックの動作の抽象度を変更する
ことを特徴とする設計検証方法。
(付記2)
前記記憶部に格納される、前記ブロックに関して、異なる検証精度に応じた抽象度で前記動作を記述したモデルが格納されているモデルデータベースを用いて、前記ネットリスト内の前記経路外のブロックの前記動作を、該抽象度を上げたモデルで変更することを特徴とする付記1記載の設計検証方法。
(付記3)
前記モデルデータベースは、同一ブロックに関して、検証目的別に対応する動作を記述した複数のモデルを更に格納し、
前記コンピュータは、更に、前記モデルデータベースを用いて、前記ネットリスト内に記述される、前記探索された経路内のブロックの動作を、前記検証の検証目的に対応する動作を記述したモデルで変更する
ことを特徴とする付記2記載の設計検証方法。
(付記4)
前記ネットリストから前記経路外のブロックの記述と接続情報とを削除することによって、該経路外のブロックの動作の抽象度を上げるように変更することを特徴とする付記1記載の設計検証方法。
(付記5)
前記コンピュータは、更に、前記探索された経路と、前記ネットリストとを参照することによって、前記複数のブロックを経路内又は経路外に分類する
ことを特徴とする付記1乃至4のいずれか一項に記載の設計検証方法。
(付記6)
前記探索された経路内のブロックをリストした経路内ブロックリストを作成して前記記憶部に格納し、
前記ネットリストを参照することによって、前記経路内ブロックリストに含まれていないブロックをリストした経路外ブロックリストを作成して前記記憶部に格納し、
前記記憶部に格納された前記経路外ブロックリストを参照することによって、前記ネットリスト内に記述される、前記探索された経路外のブロックの動作の抽象度を変更する
ことを特徴とする付記5記載の設計検証方法。
(付記7)
複数のブロックで構成される回路の検証に係る端子情報に基づいて、記憶部に格納されたネットリストを参照することによって、該ブロック間の接続関係に従って経路を探索し、
前記ネットリスト内に記述される、前記探索された経路外のブロックの動作の抽象度を変更する、
処理をコンピュータに実行させるプログラム。
(付記8)
回路を構成する複数のブロック間の接続関係と動作とを記述したネットリストを格納した記憶部と、
前記回路の検証に係る端子情報に基づいて、前記記憶部から前記ネットリストを参照することによって、前記複数のブロック間の前記接続関係に従って経路を探索し、
前記ネットリスト内に記述される、前記探索された経路外のブロックの前記動作の抽象度を変更する
ことを特徴とする設計検証装置。