(58)【調査した分野】(Int.Cl.,DB名)
前記アサーション生成部は、測定箇所別に用意されたアサーション生成用のテンプレートに、前記特定部が特定した前記複数の測定箇所および前記検出部が検出した信号伝播所要サイクル数を埋め込むことで、前記特定部が特定した前記複数の測定箇所の活性化回数を前記タイミングで測定するアサーションを生成する、
ことを特徴とする請求項1記載の検証装置。
前記比較部は、前記特定部が特定した前記複数の測定箇所のそれぞれに対して、前記複数のグループのうち少なくとも1つのグループの測定結果の平均値が、期待値以上であるかどうかを判定する、
ことを特徴とする請求項4記載の検証装置。
【発明を実施するための形態】
【0010】
以下、実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る検証装置の一例を示す図である。
【0011】
検証装置1は、検証対象2を検証する装置であり、抽出部1aと、特定部1bと、検出部1cと、アサーション生成部1dと、測定部1eと、比較部1fとを有している。
なお、検証対象2は、例えば、LSI(Large Scale Integration)などの集積回路を、レジスタ・トランスファ・レベル(RTL:Resistor Transfer Level)と呼ばれる論理式で表現した回路データである。検証対象2は、複数のクロックドメイン間をまたぐ非同期パスを含んでいる。
【0012】
抽出部1aは、検証対象2から非同期パスの構造タイプを抽出する。例えば、非同期パスの構造タイプとしては、2DFF,1DFF、コンビネーション(Combination)、リコンバージェンス、DMUXがある。特定部1bは、抽出部1aが抽出した非同期パスの構造タイプに基づいて、検証対象2に対する測定箇所を特定する。
【0013】
検出部1cは、特定部1bが特定した測定箇所間の信号伝播所要サイクル数を検証対象2から検出する。アサーション生成部1dは、検出部1cが検出した信号伝播所要サイクル数を用いて、特定部1bが特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。
【0014】
測定部1eは、非同期パス遅延およびクロックジッターを付与した条件下で実行される検証対象2のシミュレーション(非同期シミュレーションとも称す)の実行中、アサーション生成部1dが生成したアサーションを用いて、特定部1bが特定した測定箇所の活性化回数を測定する。比較部1fは、測定部1eによる測定結果を期待値と比較する。
【0015】
次に、検証装置1による検証手順について説明する。
まず、抽出部1aが、検証対象2から、非同期パスの構造タイプを抽出する。
次に、特定部1bが、抽出部1aが抽出した非同期パスの構造タイプに基づいて、検証対象2に対する測定箇所を特定する。
【0016】
次に、検出部1cが、特定部1bが特定した測定箇所間の信号伝播所要サイクル数を検出する。
次に、アサーション生成部1dが、検出部1cが検出した信号伝播所要サイクル数を用いて、特定部1bが特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。
【0017】
そして、検証対象2の非同期シミュレーションが実行されると、測定部1eが、非同期シミュレーションの実行中、アサーション生成部1dが生成したアサーションを用いて、特定部1bが特定した測定箇所の活性化回数を測定する。
【0018】
次に、比較部1fが、測定部1eによる測定結果を期待値と比較する。このようにして、検証対象2の検証が行われる。
このように、検証装置1は、非同期パスの構造タイプに基づいて検証対象2に対する測定箇所を特定し、特定した測定箇所間の信号伝播所要サイクル数を検出し、さらに、検出した信号伝播所要サイクル数を用いて、特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。さらに、検証装置1は、非同期シミュレーションの実行中、生成したアサーションを用いて、特定した測定箇所の活性化回数を測定する。
【0019】
これによれば、非同期回路(非同期パスおよび非同期パスの影響を受ける回路)の活性化回数を選択的に測定することができ、検証時間を短縮することが可能となる。
[第2の実施の形態]
次に、第1の実施の形態の検証装置1をより具体的にした実施の形態を、第2の実施の形態として説明する。
【0020】
図2は、第2の実施の形態に係る検証装置のハードウェアの一例を示す図である。
検証装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
【0021】
RAM102は、検証装置100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
【0022】
バス108に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。
【0023】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、コンピュータ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0024】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0025】
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0026】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0027】
通信インタフェース107は、ネットワーク10に接続されている。通信インタフェース107は、ネットワーク10を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0028】
以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、検証装置100の処理機能を、複数の検証装置によって実現するようにしてもよい。
【0029】
次に、検証装置100の機能について説明する。
図3は、第2の実施の形態に係る検証装置の機能の一例を示す図である。
検証装置100は、検証対象格納部111と、非同期パス抽出部112と、非同期リスト格納部113と、アサーション抽出生成部114と、アサーション生成用リスト格納部114aと、テンプレート格納部114bと、アサーション格納部115とを有している。
【0030】
さらに、検証装置100は、シナリオ調整用シミュレーション実行部116と、固定シナリオ格納部117と、回数基準値格納部118と、非同期シミュレーション実行部119と、回数測定結果格納部120と、判定部121と、判定結果リスト格納部122とを有している。
【0031】
検証対象格納部111には、LSIなどの集積回路を、レジスタ・トランスファ・レベルと呼ばれる論理式で表現した回路データが、検証対象として格納されている。検証対象には、非同期パスが含まれている。ここで、検証対象は、DUT(Design Under Test)とも称される。
【0032】
非同期パス抽出部112は、検証対象格納部111に格納された検証対象から、非同期パスの信号および非同期パスの構造タイプを抽出して、非同期リストに格納する。非同期リスト格納部113は、非同期リストを格納する。
【0033】
アサーション抽出生成部114は、非同期パスの構造タイプに基づいて、検証対象に対する測定箇所を特定する。さらに、アサーション抽出生成部114は、特定した測定箇所間の信号伝播所要サイクル数を検証対象から検出する。
【0034】
そして、アサーション抽出生成部114は、特定した測定箇所および検出した信号伝播所要サイクル数をアサーション生成用リストに格納する。ここで、アサーション生成用リストは、アサーション生成用リスト格納部114aに格納される。
【0035】
さらに、アサーション抽出生成部114は、アサーション生成用リストに格納された測定箇所および信号伝播所要サイクル数を、アサーション生成用のテンプレートに埋め込むことで、特定した測定箇所の活性化回数(信号変化回数)を所定のタイミングで測定するアサーションを生成する。そして、アサーション抽出生成部114は、生成したアサーションを、アサーション格納部115に格納する。
【0036】
なお、アサーションの記述には、例えば、SVA(System Verilog Assertion)、PSL(Property Specification Language)などのアサーション記述言語、または、System Verilog, System C, Verilogなどのテストベンチ記述言語が用いられる。
【0037】
ここで、アサーション生成用のテンプレートは、測定箇所別に用意されている。また、非同期パスの後段がFSM(Finite State Machine)またはカウンタである場合と、そうではない場合とで、それぞれ別に用意されている。アサーション生成用のテンプレートは、テンプレート格納部114bに格納されている。
【0038】
シナリオ調整用シミュレーション実行部116は、非同期リスト、および、調整用シナリオを用いて、非同期パス遅延およびクロックジッターを付与しない条件下で、検証対象のシミュレーションを実行する。そして、シナリオ調整用シミュレーション実行部116は、シミュレーション結果に基づいて、調整用シナリオを調整してより精度の高い検証が可能な固定シナリオを生成し、生成した固定シナリオを固定シナリオ格納部117に格納する。
【0039】
また、シナリオ調整用シミュレーション実行部116は、シミュレーション実行中、アサーション格納部115に格納されたアサーションを用いて、アサーション抽出生成部114が特定した測定箇所の活性化回数を測定する。そして、シナリオ調整用シミュレーション実行部116は、測定結果を回数基準値として回数基準値格納部118に格納する。
【0040】
非同期シミュレーション実行部119は、非同期リスト、および、固定シナリオ格納部117に格納された固定シナリオを用いて、非同期パス遅延およびクロックジッターをランダムに付与した条件下で、検証対象のシミュレーション(非同期シミュレーションとも称す)を所定回数(例えば、1000回)実行する。
【0041】
また、非同期シミュレーション実行部119は、非同期シミュレーション実行中、アサーション格納部115に格納されたアサーションを用いて、アサーション抽出生成部114が特定した測定箇所の活性化回数を測定する。そして、非同期シミュレーション実行部119は、測定結果を回数測定結果として回数測定結果格納部120に格納する。測定結果は、1回の非同期シミュレーションの実行につき、1つ得られるものである。
【0042】
判定部121は、回数測定結果格納部120に格納された回数測定結果と、回数基準値格納部118に格納された回数基準値とを比較する。そして、判定部121は、有意な差がある測定箇所がない場合には、回数測定結果を「OK」と判定し、有意な差がある測定箇所がある場合には、回数測定結果を「ERROR」と判定する。そして、判定部121は、判定結果を判定結果リストにリストアップする。判定結果リスト格納部122は、判定結果リストを格納する。
【0043】
次に、非同期リスト格納部113に格納される非同期リストのデータ構造について説明する。
図4は、第2の実施の形態に係る非同期リストの一例を示す図である。
【0044】
非同期リスト130には、非同期パス毎に、送信側フリップフロップ(FF:Flip Flop)回路の出力信号131と、送信側フリップフロップ回路のクロック132と、受信側フリップフロップ回路の出力信号133と、受信側フリップフロップ回路のクロック134と、リコンバージェンス(Reconvergence)信号135と、非同期パスの構造タイプ136とが格納されている。
【0045】
非同期パスの構造タイプとしては、2DFF,1DFF、コンビネーション、リコンバージェンス、DMUXがある。ここで、コンビネーションとは、非同期パスの送信側フリップフロップ回路と受信側フリップフロップ回路との間に、組合せ論理回路が接続されている構造である。
【0046】
リコンバージェンスとは、複数の非同期パスの出力先が、1つのフリップフロップ回路に収斂している構造である。DMUXは、多ビット信号の非同期パス(データパスとも称す)と、シングルビット信号の非同期パス(制御パスとも称す)の組合せであり、制御パスの受信側フリップフロップ回路が、データパスの受信側フリップフロップ回路の入力の制御に用いられている構造である。
【0047】
次に、アサーション生成用リスト格納部114aに格納されるアサーション生成用リストのデータ構造について説明する。
図5は、第2の実施の形態に係るアサーション生成用リストの一例を示す図である。
【0048】
アサーション生成用リスト140には、非同期パス毎に、測定箇所「A」、「B」、「D」、「E」、「H」を示す信号141〜145と、測定箇所「A」、「B」のクロック146,147と、測定箇所「B−D」間(「D−E」間)の信号伝播所要サイクル数148と、非同期パスの後段がFSMまたはカウンタであることを示すフラグ149とが格納されている。
【0049】
次に、テンプレート格納部114bに格納されるアサーション生成用のテンプレートについて説明する。
図6は、第2の実施の形態に係るアサーション生成用のテンプレートの一例を示す図である。
【0050】
テンプレート150は、測定箇所「A」および「D」に対応したものである。テンプレート150中の下線部分は、情報の埋め込み欄である。例えば、テンプレート150には、測定箇所が埋め込まれる埋め込み欄151〜153と、信号伝播所要サイクル数が埋め込まれる埋め込み欄154とが含まれている。
【0051】
次に、アサーション格納部115に格納されるアサーションについて説明する。
図7は、第2の実施の形態に係るアサーションの一例を示す図である。
アサーション160は、
図6に示したテンプレート150に対応したものである。
【0052】
次に、判定結果リスト格納部122に格納される判定結果リストについて説明する。
図8は、第2の実施の形態に係る判定結果リストの一例を示す図である。
判定結果リスト170には、実施されたシミュレーション毎に、「OK」または「ERROR」の判定結果171が格納されている。
【0053】
次に、検証装置100による検証手順について説明する。
図9は、第2の実施の形態に係る検証手順の一例を示すフローチャートである。
[ステップS11]非同期パス抽出部112が、検証対象格納部111に格納された検証対象から、非同期パスの信号および非同期パスの構造タイプを抽出して、非同期リストに格納する。
【0054】
[ステップS12]アサーション抽出生成部114が、検証対象に対する測定箇所を特定し、特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成し、生成したアサーションをアサーション格納部115に格納する。
【0055】
[ステップS13]シナリオ調整用シミュレーション実行部116が、非同期リスト、および、調整用シナリオを用いて、非同期パス遅延およびクロックジッターを付与しない条件下で、検証対象のシミュレーションを実行する。
【0056】
そして、シナリオ調整用シミュレーション実行部116は、シミュレーション結果に基づいて、固定シナリオを生成し、生成した固定シナリオを固定シナリオ格納部117に格納する。
【0057】
また、シナリオ調整用シミュレーション実行部116は、シミュレーション実行中、アサーション格納部115に格納されたアサーションを用いて、アサーション抽出生成部114が特定した測定箇所の活性化回数を測定する。そして、シナリオ調整用シミュレーション実行部116は、測定結果を回数基準値として回数基準値格納部118に格納する。
【0058】
[ステップS14]非同期シミュレーション実行部119が、非同期リスト、および、固定シナリオ格納部117に格納された固定シナリオを用いて、非同期シミュレーションを所定回数実行する。
【0059】
また、非同期シミュレーション実行部119は、非同期シミュレーション実行中、アサーション格納部115に格納されたアサーションを用いて、アサーション抽出生成部114が特定した測定箇所の活性化回数を測定する。そして、非同期シミュレーション実行部119は、測定結果を回数測定結果として回数測定結果格納部120に格納する。
【0060】
[ステップS15]判定部121が、回数測定結果格納部120に格納された回数測定結果と、回数基準値格納部118に格納された回数基準値とを比較する。そして、判定部121は、判定結果を判定結果リストに格納して処理を終了する。
【0061】
次に、
図9のステップS12のアサーション生成手順について詳細に説明する。
図10、
図11は、第2の実施の形態に係るアサーション生成手順の一例を示すフローチャートである。まず、
図10を用いて説明する。
【0062】
[ステップS21]アサーション抽出生成部114が、非同期リスト格納部113の非同期リストから非同期パスを1つ選択する。
[ステップS22]アサーション抽出生成部114が、選択した非同期パスに対応する送信側フリップフロップ回路の出力信号を非同期リストから抽出し、測定箇所「A」としてアサーション生成用リストに格納する。
【0063】
[ステップS23]アサーション抽出生成部114が、選択した非同期パスに対応する受信側フリップフロップ回路の出力信号を非同期リストから抽出し、測定箇所「B」としてアサーション生成用リストに格納する。
【0064】
[ステップS24]アサーション抽出生成部114が、測定箇所「B」を起点として、出力先信号抽出処理を実行し、終点および起点−終点信号伝播所要サイクル数を検出する。
【0065】
[ステップS25]アサーション抽出生成部114が、出力先信号抽出処理により検出した終点を、測定箇所「D」としてアサーション生成用リストに格納する。
[ステップS26]アサーション抽出生成部114が、出力先信号抽出処理により検出した起点−終点信号伝播所要サイクル数を、測定箇所「B−D」間の信号伝播所要サイクル数としてアサーション生成用リストに格納する。
【0066】
[ステップS27]アサーション抽出生成部114が、測定箇所「D」に対して、FSM有無の判定処理を実行する。
[ステップS28]アサーション抽出生成部114が、選択した非同期パスの構造タイプを非同期リストから抽出し、抽出した構造タイプがコンビネーションであるかどうかを判定する。コンビネーションである場合、アサーション抽出生成部114は、処理をステップS29に進める。コンビネーションではない場合、アサーション抽出生成部114は、処理をステップS30に進める。
【0067】
[ステップS29]アサーション抽出生成部114が、測定箇所「H」の抽出処理を実行する。
[ステップS30]アサーション抽出生成部114が、測定箇所「D」に対して、リコンバージェンスレジスタ判定処理を実行する。
【0068】
ここからは、
図11を用いて説明を行う。
[ステップS41]アサーション抽出生成部114が、リコンバージェンスレジスタ判定処理の結果、リコンバージェンスレジスタと判定されたかどうかを判定する。リコンバージェンスレジスタと判定された場合、アサーション抽出生成部114は、処理をステップS42に進める。リコンバージェンスレジスタと判定されなかった場合、アサーション抽出生成部114は、処理をステップS46に進める。
【0069】
[ステップS42]アサーション抽出生成部114が、測定箇所「D」を起点として、出力先信号抽出処理を実行し、終点および起点−終点信号伝播所要サイクル数を検出する。
【0070】
[ステップS43]アサーション抽出生成部114が、出力先信号抽出処理により検出した終点を、測定箇所「E」としてアサーション生成用リストに格納する。
[ステップS44]アサーション抽出生成部114が、出力先信号抽出処理により検出した起点−終点信号伝播所要サイクル数を、測定箇所「D−E」間の信号伝播所要サイクル数としてアサーション生成用リストに格納する。
【0071】
[ステップS45]アサーション抽出生成部114が、測定箇所「E」に対して、FSM有無の判定処理を実行する。
[ステップS46]アサーション抽出生成部114が、非同期リストから非同期パスを全て選択したかどうかを判定する。全て選択した場合、アサーション抽出生成部114は、処理をステップS47に進める。全て選択していない場合、アサーション抽出生成部114は、処理をステップS21に戻す。
【0072】
[ステップS47]アサーション抽出生成部114が、アサーション生成用リストに格納された測定箇所および信号伝播所要サイクル数を、テンプレート格納部114bに格納されたアサーション生成用のテンプレートに埋め込むことで、アサーションを生成し、生成したアサーションをアサーション格納部115に格納する。
【0073】
[ステップS48]アサーション抽出生成部114が、アサーション生成用リストに情報が格納された非同期パスの全てについて、アサーションを生成したかどうかを判定する。非同期パスの全てについてアサーションを生成した場合、アサーション抽出生成部114は、処理を終了する。アサーションを生成していない非同期パスがある場合、アサーション抽出生成部114は、処理をステップS47に戻す。
【0074】
次に、
図10のステップS24および
図11のステップS42の出力先信号抽出処理について詳細に説明する。
図12は、第2の実施の形態に係る出力信号抽出処理の一例を示すフローチャートである。
【0075】
[ステップS51]アサーション抽出生成部114が、検証対象を解析し、起点の次段に接続されているフリップフロップ回路および出力端子の出力信号を、終点として検出する。
【0076】
[ステップS52]アサーション抽出生成部114が、検出した終点の1つを選択する。
[ステップS53]アサーション抽出生成部114が、選択した終点が出力端子の出力信号かどうかを判定する。出力端子の出力信号である場合、アサーション抽出生成部114は、処理をステップS57に進める。出力端子の出力信号ではない場合、アサーション抽出生成部114は、処理をステップS54に進める。
【0077】
[ステップS54]アサーション抽出生成部114が、検証対象を解析し、起点から選択した終点に至る信号経路に接続されている組合せ論理回路を抽出する。
[ステップS55]アサーション抽出生成部114が、起点から選択した終点に至る信号経路に組合せ論理回路が抽出されたかどうかを判定する。組合せ論理回路が抽出された場合、アサーション抽出生成部114は、処理をステップS57に進める。組合せ論理回路が抽出されなかった場合、アサーション抽出生成部114は、処理をステップS56に進める。
【0078】
[ステップS56]アサーション抽出生成部114が、選択した終点を起点にして、検証対象を解析し、起点の次段に接続されているフリップフロップ回路および出力端子の出力信号を、終点として検出し、処理をステップS52に戻す。
【0079】
[ステップS57]アサーション抽出生成部114が、検証対象を解析し、起点から選択した終点に至る信号経路に接続されているフリップフロップ回路の数をカウントし、カウント結果を、起点−終点信号伝播所要サイクル数として検出する。
【0080】
[ステップS58]アサーション抽出生成部114が、検出した全ての終点を選択したかどうかを判定する。全ての終点を選択した場合、アサーション抽出生成部114は、処理を終了する。選択していない終点がある場合、アサーション抽出生成部114は、処理をステップS52に戻す。
【0081】
次に、
図10のステップS27および
図11のステップS45のFSM有無の判定処理について詳細に説明する。
測定箇所D,Eについては、対応するフリップフロップ回路が、FSMまたはカウンタであるかどうかを判定する必要がある。測定箇所D,Eに対応するフリップフロップ回路がFSMまたはカウンタの場合、非同期パスから出力された信号に起因して、どのステートからどのステートに変化したかが重要である。
【0082】
それは、どのステートをとるかによって、後段の動作する回路が異なってくるため、ただ「何らかの変化をした」という見方ではなく、「○○ステートから△△ステートへ変化した」という見方をしないと、意図した動作が発生したのか把握できないためである。なお、カウンタはFSMの一種として扱うことができる。
【0083】
図13は、第2の実施の形態に係るFSM有無の判定処理の一例を示すフローチャートである。
[ステップS61]アサーション抽出生成部114が、測定箇所の1つを選択する。
【0084】
[ステップS62]アサーション抽出生成部114が、選択した測定箇所の信号ビット幅を、検証対象から抽出する。
[ステップS63]アサーション抽出生成部114が、抽出した信号ビット幅が2以上であるかどうかを判定する。信号ビット幅が2以上である場合、アサーション抽出生成部114は、処理をステップS64に進める。信号ビット幅が2以上ではない場合、アサーション抽出生成部114は、処理をステップS68に進める。
【0085】
[ステップS64]アサーション抽出生成部114が、検証対象を解析し、選択した測定箇所の次段に接続されているフリップフロップ回路の出力信号を抽出する。
[ステップS65]アサーション抽出生成部114が、抽出した出力信号に、選択した測定箇所が含まれているかどうかを判定する。選択した測定箇所が含まれている場合、アサーション抽出生成部114は、処理をステップS66に進める。選択した測定箇所が含まれていない場合、アサーション抽出生成部114は、処理をステップS68に進める。
【0086】
[ステップS66]アサーション抽出生成部114が、選択した測定箇所に対応するフリップフロップ回路は、FSMであると判定する。
[ステップS67]アサーション抽出生成部114が、アサーション生成用リストに、非同期パスの後段がFSMまたはカウンタであることを示すフラグとして「True」を格納する。
【0087】
[ステップS68]アサーション抽出生成部114が、選択した測定箇所に対応するフリップフロップ回路は、FSMではないと判定する。
[ステップS69]アサーション抽出生成部114が、アサーション生成用リストに、非同期パスの後段がFSMまたはカウンタではないことを示すフラグとして「False」を格納する。
【0088】
[ステップS70]アサーション抽出生成部114が、全ての測定箇所を選択したかどうかを判定する。全ての測定箇所を選択した場合、アサーション抽出生成部114は、処理を終了する。選択していない測定箇所がある場合、アサーション抽出生成部114は、処理をステップS61に戻す。
【0089】
次に、
図10のステップS29の測定箇所「H」の抽出処理について詳細に説明する。
図14は、第2の実施の形態に係る測定箇所の抽出処理の一例を示すフローチャートである。
【0090】
[ステップS81]アサーション抽出生成部114が、検証対象を解析し、測定箇所「A」と測定箇所「B」との間に接続されている組合せ論理回路の入力信号を抽出する。
[ステップS82]アサーション抽出生成部114が、抽出した入力信号の1つを選択する。
【0091】
[ステップS83]アサーション抽出生成部114が、選択した入力信号が測定箇所「A」であるかどうかを判定する。測定箇所「A」である場合、アサーション抽出生成部114は、処理をステップS88に進める。測定箇所「A」ではない場合、アサーション抽出生成部114は、処理をステップS84に進める。
【0092】
[ステップS84]アサーション抽出生成部114が、選択した入力信号が、フリップフロップ回路または入力端子の出力信号であるかどうかを判定する。フリップフロップ回路または入力端子の出力信号である場合、アサーション抽出生成部114は、処理をステップS85に進める。フリップフロップ回路または入力端子の出力信号ではない場合、アサーション抽出生成部114は、処理をステップS86に進める。
【0093】
[ステップS85]アサーション抽出生成部114が、選択した入力信号を、測定箇所「H」として、アサーション生成用リストに格納する。
[ステップS86]アサーション抽出生成部114が、検証対象を解析し、選択した入力信号の前段に接続されているフリップフロップ回路および入力端子の出力信号を抽出する。
【0094】
[ステップS87]アサーション抽出生成部114が、抽出したフリップフロップ回路および入力端子の出力信号を測定箇所「H」として、アサーション生成用リストに格納する。
【0095】
[ステップS88]アサーション抽出生成部114が、全ての入力信号を選択したかどうかを判定する。全ての入力信号を選択した場合、アサーション抽出生成部114は、処理を終了する。選択していない入力信号がある場合、アサーション抽出生成部114は、処理をステップS82に戻す。
【0096】
次に、
図10のステップS30のリコンバージェンスレジスタ判定処理について詳細に説明する。
図15は、第2の実施の形態に係るリコンバージェンスレジスタ判定処理の一例を示すフローチャートである。
【0097】
[ステップS91]アサーション抽出生成部114が、測定箇所「D」の1つを選択する。
[ステップS92]アサーション抽出生成部114が、検証対象を解析し、測定箇所「D」に対応するフリップフロップ回路の前段に接続されているフリップフロップ回路および入力端子の出力信号を抽出する。
【0098】
[ステップS93]アサーション抽出生成部114が、抽出した出力信号と一致する受信側フリップフロップ回路の出力信号があるかどうか、非同期リストを検索する。
[ステップS94]非同期リストを検索した結果、一致する受信側フリップフロップ回路の出力信号が存在した場合、アサーション抽出生成部114は、処理をステップS95に進める。一致するリコンバージェンス信号が存在しなかった場合、アサーション抽出生成部114は、処理をステップS96に進める。
【0099】
[ステップS95]アサーション抽出生成部114が、選択した測定箇所「D」に対応するフリップフロップ回路を、リコンバージェンスレジスタと判定する。
[ステップS96]アサーション抽出生成部114が、全ての測定箇所「D」を選択したかどうかを判定する。全ての測定箇所「D」を選択した場合、アサーション抽出生成部114は、処理を終了する。選択していない測定箇所「D」がある場合、アサーション抽出生成部114は、処理をステップS91に戻す。
【0100】
次に、
図9のステップS15の判定の手順について詳細に説明する。
図16は、第2の実施の形態に係る判定の手順の一例を示すフローチャートである。
[ステップS101]判定部121が、回数測定結果格納部120に格納された回数測定結果の1つを選択する。
【0101】
[ステップS102]判定部121が、選択した回数測定結果を、回数基準値格納部118に格納された回数基準値と、「t」検定などの統計処理を用いて比較する。
[ステップS103]判定部121が、回数測定結果を回数基準値と比較した結果、有意な差を含む測定箇所があるかどうかを判定する。有意な差を含む測定箇所がある場合、判定部121は、処理をステップS105に進める。有意な差を含む測定箇所が全くない場合、判定部121は、処理をステップS104に進める。
【0102】
[ステップS104]判定部121が、判定結果リストに、判定結果として「OK」を格納する。
[ステップS105]判定部121が、判定結果リストに、判定結果として「ERROR」を格納する。
【0103】
[ステップS106]判定部121が、回数測定結果格納部120に格納された全ての回数測定結果を選択したかどうかを判定する。全ての回数測定結果を選択した場合、判定部121は、処理を終了する。選択していない回数測定結果がある場合、判定部121は、処理をステップS101に戻す。
【0104】
次に、アサーション抽出生成部114が特定する検証対象に対する測定箇所について、具体例1〜5を用いて説明する。
図17は、第2の実施の形態に係る具体例1の回路ブロックを示す図である。
【0105】
回路ブロック210は、2DFFまたは1DFFの構造タイプを備える非同期パスを含む回路ブロックである。回路ブロック210は、異なるクロックドメインに属する、送信側フリップフロップ回路(sig0_s)と、受信側フリップフロップ回路(sig0_d)とを有している。
【0106】
受信側フリップフロップ回路(sig0_d)の後段には、組合せ論理回路211を介してフリップフロップ回路(sig0_d_1)が接続されている。さらに、受信側フリップフロップ回路(sig0_d)の後段には、組合せ論理回路212を介してフリップフロップ回路(sig0_d_2)が接続されている。
【0107】
さらに、受信側フリップフロップ回路(sig0_d)の後段には、組合せ論理回路を介さずにフリップフロップ回路(sig0_d_3)が接続されている。フリップフロップ回路(sig0_d_3)の後段には、組合せ論理回路213を介してフリップフロップ回路(sig0_d_4)が接続されている。
【0108】
回路ブロック210では、送信側フリップフロップ回路(sig0_s)の出力信号214が測定箇所「A」とされ、受信側フリップフロップ回路(sig0_d)の出力信号215が測定箇所「B」とされる。さらに、回路ブロック210では、フリップフロップ回路(sig0_d_1)、(sig0_d_2)、(sig0_d_4)の出力信号216〜218が測定箇所「D」とされる。
【0109】
また、出力信号216における測定箇所「B−D」間の信号伝播所要サイクル数は、「1」であり、出力信号217における測定箇所「B−D」間の信号伝播所要サイクル数は、「1」であり、出力信号218における測定箇所「B−D」間の信号伝播所要サイクル数は、「2」である。
【0110】
なお、回路ブロック210は、DMUXを構成しないマルチビット信号も含む。この場合、測定箇所「A」は、ビット毎に分割して定義される。
図18は、第2の実施の形態に係る具体例2の回路ブロックを示す図である。
【0111】
回路ブロック220は、コンビネーションの構造タイプを備える非同期パスを含む回路ブロックである。回路ブロック220は、異なるクロックドメインに属する、送信側フリップフロップ回路(sig1_s)と、受信側フリップフロップ回路(sig1_d)とを有している。
【0112】
送信側フリップフロップ回路(sig1_s)と受信側フリップフロップ回路(sig1_d)との間には、組合せ論理回路221が接続されている。組合せ論理回路221の前段には、送信側フリップフロップ回路(sig1_s)とは異なるクロックドメインに属するフリップフロップ回路(comb1)、(comb2)が接続されている。
【0113】
受信側フリップフロップ回路(sig1_d)の後段には、組合せ論理回路222を介してフリップフロップ回路(sig1_d_1)が接続されている。さらに、受信側フリップフロップ回路(sig1_d)の後段には、組合せ論理回路223を介してフリップフロップ回路(sig1_d_2)が接続されている。
【0114】
さらに、受信側フリップフロップ回路(sig1_d)の後段には、組合せ論理回路を介さずにフリップフロップ回路(sig1_d_3)が接続されている。フリップフロップ回路(sig1_d_3)の後段には、組合せ論理回路224を介してフリップフロップ回路(sig1_d_4)が接続されている。
【0115】
回路ブロック220では、送信側フリップフロップ回路(sig1_s)の出力信号225が測定箇所「A」とされ、受信側フリップフロップ回路(sig1_d)の出力信号226が測定箇所「B」とされる。さらに、フリップフロップ回路(sig1_d_1)、(sig1_d_2)、(sig1_d_4)の出力信号227〜229が測定箇所「D」とされる。さらに、フリップフロップ回路(comb1)、(comb2)の出力信号230,231が測定箇所「H」とされる。
【0116】
また、出力信号227における測定箇所「B−D」間の信号伝播所要サイクル数は、「1」であり、出力信号228における測定箇所「B−D」間の信号伝播所要サイクル数は、「1」であり、出力信号229における測定箇所「B−D」間の信号伝播所要サイクル数は、「2」である。
【0117】
なお、回路ブロック220では、アサーションの生成において、測定箇所「H」の変化も含めてカバーアサーションを生成する。
図19は、第2の実施の形態に係る具体例3の回路ブロックを示す図である。
【0118】
回路ブロック240は、リコンバージェンスの構造タイプを備える非同期パスを含む回路ブロックである。回路ブロック240は、異なるクロックドメインに属する、送信側フリップフロップ回路(sig2_s)と、受信側フリップフロップ回路(sig2_d)とを有している。
【0119】
さらに、受信側フリップフロップ回路(sig2_d)の後段には、組合せ論理回路241を介してフリップフロップ回路(sig4)が接続されている。組合せ論理回路241の前段には、他の非同期パスの受信側フリップフロップ回路(sig3_d)および送信側フリップフロップ回路(sig3_s)が接続されている。
【0120】
さらに、フリップフロップ回路(sig4)の後段には、組合せ論理回路242を介してフリップフロップ回路(sig4_d_1)が接続されている。さらに、フリップフロップ回路(sig4)の後段には、組合せ論理回路243を介してフリップフロップ回路(sig4_d_2)が接続されている。
【0121】
さらに、フリップフロップ回路(sig4)の後段には、組合せ論理回路を介さずにフリップフロップ回路(sig4_d_3)が接続されている。フリップフロップ回路(sig4_d_3)の後段には、組合せ論理回路244を介してフリップフロップ回路(sig4_d_4)が接続されている。
【0122】
回路ブロック240では、フリップフロップ回路(sig4)が、リコンバージェンスレジスタとされる。さらに、回路ブロック240では、送信側フリップフロップ回路(sig2_s)、(sig3_s)の出力信号245,246が測定箇所「A」とされ、受信側フリップフロップ回路(sig2_d),(sig3_d)の出力信号247,248が測定箇所「B」とされる。
【0123】
さらに、フリップフロップ回路(sig4)の出力信号249が測定箇所「D」とされる。さらに、フリップフロップ回路(sig4_d_1)、(sig4_d_2)、(sig4_d_4)の出力信号250〜252が測定箇所「E」とされる。
【0124】
また、出力信号250における測定箇所「D−E」間の信号伝播所要サイクル数は、「1」であり、出力信号251における測定箇所「D−E」間の信号伝播所要サイクル数は、「1」であり、出力信号252における測定箇所「D−E」間の信号伝播所要サイクル数は、「2」である。
【0125】
図20は、第2の実施の形態に係る具体例4の回路ブロックを示す図である。
回路ブロック260は、DMUXの構造タイプを備える非同期パスを含む回路ブロックである。回路ブロック260は、多ビット信号の非同期パスに含まれる、異なるクロックドメインに属する、送信側フリップフロップ回路(data_s)と、受信側フリップフロップ回路(data_d)とを有している。
【0126】
さらに、回路ブロック260は、シングルビット信号の非同期パスに含まれる、異なるクロックドメインに属する、送信側フリップフロップ回路(ctrl_s)と、受信側フリップフロップ回路(ctrl_d)とを有している。受信側フリップフロップ回路(ctrl_d)は、受信側フリップフロップ回路(data_d)の入力の制御に用いられている。
【0127】
受信側フリップフロップ回路(data_d)の後段には、組合せ論理回路261を介してフリップフロップ回路(data_d_1)が接続されている。受信側フリップフロップ回路(ctrl_d)の後段には、フリップフロップ回路(ctrl_d_1)が接続されている。さらに、フリップフロップ回路(ctrl_d_1)の後段には、組合せ論理回路262を介してフリップフロップ回路(ctrl_d_2)が接続されている。
【0128】
回路ブロック260では、送信側フリップフロップ回路(data_s)、(ctrl_s)の出力信号263,264が測定箇所「A」とされる。さらに、受信側フリップフロップ回路(data_d)、(ctrl_d)の出力信号265,266が測定箇所「B」とされる。また、出力信号265は、測定箇所「D」ともされる。さらに、フリップフロップ回路(data_d_1)、(ctrl_d_2)の出力信号267,268が測定箇所「D」とされる。
【0129】
また、出力信号265における測定箇所「B−D」間の信号伝播所要サイクル数は、「1」であり、出力信号267における測定箇所「B−D」間の信号伝播所要サイクル数は、「1」であり、出力信号268における測定箇所「B−D」間の信号伝播所要サイクル数は、「2」である。
【0130】
図21は、第2の実施の形態に係る具体例5の回路ブロックを示す図である。
回路ブロック270は、異なるクロックドメインに属する、送信側フリップフロップ回路(sig5_s)と、受信側フリップフロップ回路(sig5_d)とを有している。さらに、受信側フリップフロップ回路(sig5_d)の後段には、組合せ論理回路271を介してフリップフロップ回路(sig5_d_1)が接続されている。フリップフロップ回路(sig5_d_1)の出力信号274は多ビット信号であり、組合せ論理回路271を経由して、フリップフロップ回路(sig5_d_1)に再び入力されている。
【0131】
回路ブロック270では、送信側フリップフロップ回路(sig5_s)の出力信号272が測定箇所「A」とされ、受信側フリップフロップ回路(sig5_d)の出力信号273が測定箇所「B」とされる。さらに、回路ブロック270では、フリップフロップ回路(sig5_d_1)の出力信号274が測定箇所「D」とされる。また、測定箇所「D」は、FSMであるとされる。
【0132】
以上説明してきたように、検証装置100は、非同期パスの構造タイプに基づいて検証対象に対する測定箇所を特定し、特定した測定箇所間の信号伝播所要サイクル数を検出する。さらに、検出した信号伝播所要サイクル数を用いて、特定した測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。検証装置100は、非同期シミュレーションの実行中、生成したアサーションを用いて、特定した測定箇所の活性化回数を測定する。
【0133】
これによれば、非同期回路の活性化回数を選択的に測定することができ、検証時間を短縮することが可能となる。
さらに、検証装置100は、測定箇所別に用意されたアサーション生成用のテンプレートに、特定した測定箇所および検出した信号伝播所要サイクル数を埋め込むことで、測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する。
【0134】
これによれば、測定箇所に応じたテンプレートを選択することでアサーションを生成することができるため、複雑な処理を施すことなくアサーションを生成することが可能となる。
【0135】
さらに、検証装置100は、回数測定結果を、統計処理を用いて回数基準値と比較する。これによれば、判定の精度を向上させることが可能となる。
すなわち、非同期シミュレーション中、非同期パス遅延およびクロックジッターの影響で、パスの変化回数が多少変化する(ゆらぐ)ことがあるが、シナリオの意図から外れた動作になっていない場合もある。ここで、シナリオの意図から外れるとは、シミュレーションで動かすつもりであった機能が、動かなかったことを指す。
【0136】
回数測定結果を回数基準値と単純に一致比較する方法では、このようなシナリオの意図から外れた動作になっていない場合であっても、パスの変化回数が多少変化していれば、「ERROR」と判定されてしまう。しかしながら、検証装置100では、回数測定結果を統計処理を用いて回数基準値と比較するので、パスの変化回数が多少変化していても、シナリオの意図から外れた動作になっていない場合には、「OK」と判定することが可能となる。
【0137】
[第3の実施の形態]
次に、第1の実施の形態の検証装置1をより具体的にした他の実施の形態を、第3の実施の形態として説明する。
【0138】
図22は、第3の実施の形態に係る検証装置の機能の一例を示す図である。
検証装置100aは、第1の実施の形態の検証装置100に対して、シナリオ調整用シミュレーション実行部116、固定シナリオ格納部117、回数基準値格納部118、判定部121、判定結果リスト格納部122を削除し、回数目標値設定部180、ランダムシナリオ格納部181、回数目標値格納部182、シナリオ網羅性チェック部183、グループ平均値格納部184、網羅性判定結果リスト格納部185を追加したものに相当する。
【0139】
回数目標値設定部180は、アサーション抽出生成部114が特定した測定箇所に対して、回数目標値を設定し、回数目標値格納部182に格納する。回数目標値は、非同期シミュレーションにおいて期待する最低限の変化回数である。回数目標値は、例えば、「1回」と設定される。また、回数目標値は、外部から設定することもできる。
【0140】
ランダムシナリオ181には、ランダムシナリオが格納されている。非同期シミュレーション実行部119は、このランダムシナリオを用いて、検証対象の非同期シミュレーションを実行する。
【0141】
シナリオ網羅性チェック部183は、回数測定結果格納部120に格納された回数測定結果を、活性化回数に基づいて複数のグループに分類し、各グループの回数測定結果の平均値を、回数目標値182に格納された回数目標値と比較する。各グループの回数測定結果の平均値は、グループ平均値格納部184に格納される。
【0142】
そして、シナリオ網羅性チェック部183は、測定箇所のそれぞれについて、複数のグループのうち少なくとも1つのグループの回数測定結果の平均値が、回数目標値を満たしているかどうかを判定する。さらに、シナリオ網羅性チェック部183は、判定結果を網羅性判定結果リストに格納する。網羅性判定結果リストは、網羅性判定結果リスト格納部185に格納される。
【0143】
なお、検証装置100aの処理機能は、
図2に示したハードウェアにより実現することができる。
次に、網羅性判定結果リストのデータ構造について説明する。
【0144】
図23は、第3の実施の形態に係る網羅性判定結果リストの一例を示す図である。
網羅性判定結果リスト280には、非同期パス毎に、測定箇所「B」、「D」、「E」を示す信号281〜283と、測定箇所「B」のクロック284と、非同期パスの後段がFSMまたはカウンタであることを示すフラグ285と、FSMまたはカウンタの遷移状態286とが格納されている。
【0145】
さらに、網羅性判定結果リスト280には、各測定箇所に対して、回数目標値287と、各グループの回数測定結果の平均値288,289と、各グループの判定結果290,291と、全グループの判定結果をマージした判定結果292とが格納されている。なお、図中の「ERR」は、「ERROR」を意図する。
【0146】
次に、シナリオ網羅性チェック部183による判定手順について説明する。
図24、
図25は、第3の実施の形態に係る判定手順の一例を示すフローチャートである。まず、
図24を用いて説明を行う。
【0147】
[ステップS111]シナリオ網羅性チェック部183が、回数測定結果格納部120から、回数測定結果の1つを選択する。
[ステップS112]シナリオ網羅性チェック部183が、N(作成済みグループ数)が、「0」であるかどうかを判定する。「0」である場合、シナリオ網羅性チェック部183は、処理をステップS113に進める。「0」ではない場合、シナリオ網羅性チェック部183は、処理をステップS114に進める。
【0148】
[ステップS113]シナリオ網羅性チェック部183が、選択した回数測定結果を、グループ「1」の平均値とする。
[ステップS114]シナリオ網羅性チェック部183が、n(グループ番号)を「1」とする。
【0149】
[ステップS115]シナリオ網羅性チェック部183が、選択した回数測定結果を、測定箇所毎に、グループnの平均値と比較する。比較には、例えば、t検討などの統計処理が用いられる。
【0150】
[ステップS116]選択した回数測定結果をグループnの平均値と比較した結果、有意な差がある測定箇所がある場合、シナリオ網羅性チェック部183は、処理をステップS118に進める。有意な差がある測定箇所が全くない場合、シナリオ網羅性チェック部183は、処理をステップS117に進める。
【0151】
[ステップS117]シナリオ網羅性チェック部183が、選択した回数測定結果をグループnの回数測定結果に加えた上で、グループnの回数測定結果の平均値を算出し、算出した平均値を、グループnの平均値とする。
【0152】
[ステップS118]シナリオ網羅性チェック部183が、nがNであるかどうかを判定する。Nである場合、シナリオ網羅性チェック部183は、処理をステップS120に進める。Nではない場合、シナリオ網羅性チェック部183は、処理をステップS119に進める。
【0153】
[ステップS119]シナリオ網羅性チェック部183が、nを「n+1」として、処理をステップS115に戻す。
[ステップS120]シナリオ網羅性チェック部183が、選択した回数測定結果を、グループ「N+1」の平均値とする。
【0154】
[ステップS121]シナリオ網羅性チェック部183が、回数測定結果を全て選択したかどうかを判定する。全て選択した場合、シナリオ網羅性チェック部183は、処理をステップS131に進める。選択していない回数測定結果がある場合、シナリオ網羅性チェック部183は、処理をステップS111に戻す。
【0155】
ここからは、
図25を用いて説明を進める。
[ステップS131]シナリオ網羅性チェック部183が、nを「1」とする。
[ステップS132]シナリオ網羅性チェック部183が、グループnの回数測定結果の平均値を、測定箇所毎に、回数目標値以上であるかを比較する。
【0156】
[ステップS133]シナリオ網羅性チェック部183が、nがNであるかどうかを判定する。Nである場合、シナリオ網羅性チェック部183は、処理をステップS135に進める。Nではない場合、シナリオ網羅性チェック部183は、処理をステップS134に進める。
【0157】
[ステップS134]シナリオ網羅性チェック部183が、nを「n+1」として、処理をステップS132に戻す。
[ステップS135]シナリオ網羅性チェック部183が、測定箇所のそれぞれについて、複数のグループのうち少なくとも1つのグループの回数測定結果の平均値が、回数目標値以上であるかどうかを判定して処理を終了する。
【0158】
以上説明してきたように、検証装置100aでは、回数測定結果を複数のグループに分類し、測定箇所のそれぞれに対して、複数のグループのうち少なくとも1つのグループの回数測定結果の平均値が、回数目標値以上であるかどうかを判定する。これによれば、測定箇所が活性されたかどうかを網羅的にチェックすることが可能となる。
【0159】
また、検証装置100aは、第2の実施の形態の検証装置100と同様に、非同期回路の活性化回数を選択的に測定することができ、検証時間を短縮することが可能となる。また、検証装置100aは、測定箇所に応じたテンプレートを選択することでアサーションを生成することができるため、複雑な処理を施すことなくアサーションを生成することが可能となる。
【0160】
なお、第1〜第3の実施の形態の上記の処理機能は、コンピュータによって実現することができる。その場合、検証装置1,100,100aが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0161】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0162】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0163】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
【0164】
以上説明した第1〜第3の実施の形態を含む実施の形態に関し、さらに以下の付記を開示する。
(付記1) 検証対象から非同期パスの構造タイプを抽出する抽出部と、
前記抽出部が抽出した非同期パスの構造タイプに基づいて、前記検証対象に対する第1および第2の測定箇所を含む複数の測定箇所を特定する特定部と、
前記特定部が特定した前記第1および第2の測定箇所間の信号伝播所要サイクル数を前記検証対象から検出する検出部と、
前記検出部が検出した信号伝播所要サイクル数を用いて、前記特定部が特定した前記複数の測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成するアサーション生成部と、
非同期パス遅延およびクロックジッターを付与した条件下で実行される前記検証対象のシミュレーションの実行中、前記アサーション生成部が生成したアサーションを用いて、前記特定部が特定した前記複数の測定箇所の活性化回数を測定する測定部と、
前記測定部による測定結果を期待値と比較する比較部と、
を有することを特徴とする検証装置。
【0165】
(付記2) 前記アサーション生成部は、測定箇所別に用意されたアサーション生成用のテンプレートに、前記特定部が特定した前記複数の測定箇所および前記検出部が検出した信号伝播所要サイクル数を埋め込むことで、前記特定部が特定した前記複数の測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成する、
ことを特徴とする付記1記載の検証装置。
【0166】
(付記3) 前記比較部は、前記測定部による測定結果を、統計処理を用いて期待値と比較する、
ことを特徴とする付記1または2記載の検証装置。
【0167】
(付記4) 前記比較部は、前記測定部による測定結果を複数のグループに分類し、各グループの測定結果の平均値を、期待値と比較する、
ことを特徴とする付記1〜3のいずれか1つに記載の検証装置。
【0168】
(付記5) 前記比較部は、前記特定部が特定した前記複数の測定箇所のそれぞれに対して、前記複数のグループのうち少なくとも1つのグループの測定結果の平均値が、期待値以上であるかどうかを判定する、
ことを特徴とする付記4記載の検証装置。
【0169】
(付記6) 前記特定部が特定した前記第1の測定箇所は、前記抽出部が構造タイプを抽出した非同期パスの受信側フリップフロップ回路の出力信号であり、
前記特定部が特定した前記第2の測定箇所は、前記抽出部が構造タイプを抽出した非同期パスの送信側フリップフロップ回路の次段に組合せ論理回路を介して接続されたフリップフロップ回路の出力信号であり、
さらに、前記特定部は、前記抽出部が構造タイプを抽出した非同期パスの送信側フリップフロップ回路の出力信号を、第3の測定箇所に特定する、
ことを特徴とする付記1〜5のいずれか1つに記載の検証装置。
【0170】
(付記7) 前記特定部は、
前記抽出部が抽出した非同期パスの構造タイプがコンビネーションの場合、
前記抽出部が構造タイプを抽出した非同期パスの送信側フリップフロップ回路と受信側フリップフロップ回路との間に接続されている組合せ論理回路の入力信号のうち、前記第1の測定箇所に特定している信号を除いた信号を、第4の測定箇所に特定する、
ことを特徴とする付記6記載の検証装置。
【0171】
(付記8) 前記特定部は、
前記抽出部が抽出した非同期パスの構造タイプがリコンバージェンスの場合、
特定した前記第2の測定箇所の次段に組合せ論理回路を介して接続されたフリップフロップ回路の出力信号を、第5の測定箇所に特定する、
ことを特徴とする付記6または7記載の検証装置。
【0172】
(付記9) コンピュータに、
検証対象から非同期パスの構造タイプを抽出し、
抽出した非同期パスの構造タイプに基づいて、前記検証対象に対する第1および第2の測定箇所を含む複数の測定箇所を特定し、
特定した前記第1および第2の測定箇所間の信号伝播所要サイクル数を前記検証対象から検出し、
検出した信号伝播所要サイクル数を用いて、特定した前記複数の測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成し、
非同期パス遅延およびクロックジッターを付与した条件下で実行される前記検証対象のシミュレーションの実行中、生成したアサーションを用いて、特定した前記複数の測定箇所の活性化回数を測定し、
測定結果を期待値と比較する、
処理を実行させることを特徴とする検証プログラム。
【0173】
(付記10) コンピュータが、
検証対象から非同期パスの構造タイプを抽出し、
抽出した非同期パスの構造タイプに基づいて、前記検証対象に対する第1および第2の測定箇所を含む複数の測定箇所を特定し、
特定した前記第1および第2の測定箇所間の信号伝播所要サイクル数を前記検証対象から検出し、
検出した信号伝播所要サイクル数を用いて、特定した前記複数の測定箇所の活性化回数を所定のタイミングで測定するアサーションを生成し、
非同期パス遅延およびクロックジッターを付与した条件下で実行される前記検証対象のシミュレーションの実行中、生成したアサーションを用いて、特定した前記複数の測定箇所の活性化回数を測定し、
測定結果を期待値と比較する、
ことを特徴とする検証方法。