(57)【特許請求の範囲】
【請求項１】
ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと適合するかコンピュータに検証させる設計検証プログラムにおいて，
前記コンピュータを，
少なくとも一つの要求を含む試験パターンを生成する試験パターン生成手段，
生成された要求毎に，各要求と各要求に対して実行が期待されるアサーションとを関連付けた期待値情報を生成する期待値情報生成手段，
生成された要求毎に，各要求に対して実行されたアサーションと，各要求に対して設定された前記期待値情報におけるアサーションとの整合性を判定する整合性判定手段，
前記整合性の判定結果を出力する出力手段，
として機能させることを特徴とする設計検証プログラム。
【請求項２】
請求項１において，
前記試験パターンは，順序付けされた複数の要求を含む試験パターンを生成し，
前記整合性判定手段は，前記試験パターンにおける前記複数の要求の実行順序と，論理シミュレーションにおいて実行された要求の実行順序とが異なる場合，エラー判定することを特徴とする設計検証プログラム。
【請求項３】
ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと一致するか検証する設計検証装置において，
少なくとも一つの要求を含む試験パターンを生成する試験パターン生成手段と，
生成された要求毎に，各要求に対して実行が期待されるアサーションとを関連付けた期待値情報を生成する期待値情報生成手段と，
生成された要求毎に，各要求に対して実行されたアサーションと，前記期待値情報における各要求に対して実行が期待されるアサーションとの整合性を判定する整合性判定手段と，
前記整合性の判定結果を出力する出力手段とを備えることを特徴とする設計検証装置。
【請求項４】
ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと一致するかコンピュータに検証させる設計検証方法において，
前記コンピュータが，
少なくとも一つの要求を含む試験パターンを生成する試験パターン生成工程と，
生成された要求毎に，各要求に対して実行が期待されるアサーションとを関連付けた期待値情報を生成する期待値情報生成工程と，
生成された要求毎に，各要求に対して実行されたアサーションと，前記期待値情報における各要求に対して実行が期待されるアサーションとの整合性を判定する整合性判定工程と，
前記整合性の判定結果を出力する出力工程とを実行することを特徴とする設計検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ハードウェア記述言語で記述された論理回路の設計仕様の検証技術に関し，特に，アサーションベース検証により論理回路の設計仕様を検証するための設計検証プログラム，設計検証装置，設計検証方法に関する。
【背景技術】
【０００２】
ハードウェア記述言語(HDL: Hardware Description Language)を用いた論理回路の設計では，作成したRTL(Resister Transfer Level)記述の論理シミュレーションによる設計仕様の検証が行われる。仕様検証は，検証回路の設計仕様を期待動作として，違反動作を監視するアサーションベース検証が広く利用されている。
【０００３】
アサーションベース検証は，設計仕様に基づく回路動作をアサーション言語を用いて定義し，これに違反する動作が検出された場合にエラーを出力する機能（アサーション）による検証方式であり，試験パターンで設定された入力動作（要求）に対して，期待動作に対応する信号が出力されているかどうか判定し，アサーションの実行結果が期待動作に違反している場合は，エラーが出力される(例えば，特許文献１，２及び３)。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−４１９２２号公報
【特許文献２】特開２００８−１５８６９６号公報
【特許文献３】特開２００５−１０８００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アサーションのための試験パターンは，検証回路の規模や機能の増加に比例して膨大となるため，現状，ツールによる任意なパラメータ設定により，自動的に大量に生成され，この自動生成された膨大な試験パターンに対するアサーションが実行される。
【０００６】
しかしながら，従来，試験パターンの動作とアサーションの動作は，互いに関連づけが行われておらず，それぞれ独立に動作していた。このため，例えば，試験パターンによる検証回路の入出力動作でアサーションの判定が行われるため，試験パターンが期待する動作と，検証回路の入出力動作が一致しているか，などの整合性に関しての検証が十分に行うことができず，十分な検証精度が確保されていない。具体的には，試験パターンが期待する動作が，検証回路の入出力動作で欠落しても，アサーションの判定結果によりエラーを検出することができない。例えば，10回の試験パターンに対して，何らかのエラー原因により，1回の検証回路の出力動作が欠落し，アサーション判定結果により9回の正常判定が行われた場合，正常のみのアサーション判定結果からは，欠落に対するエラーを検出できない。また，何らかのエラー原因により，10回の試験パターンに対して，余分な検証回路の出力動作を含む11回のアサーション判定が行われ，全て正常判定が行われた場合も，正常のみのアサーション判定結果からは，余分は検証回路の出力に対するエラーを検出できない。
【０００７】
また，自動生成された膨大な試験パターンのうち，エラーの発生箇所である一部の動作結果のみでエラーの解析が行われている。このため，エラー発生時の検証回路の状態を適切に把握することができず，エラー原因の特定に多くの解析工数を要し，作業効率の低下を招いている。特に，エラー原因とその影響によるエラー発生までに時間のずれが生じる場合では，解析工数がさらに増大する。
【０００８】
そこで，本発明の目的は，アサーションベース検証において，検証精度を向上させ，さらに，解析作業工数を削減することができる設計検証プログラム，設計検証装置，設計検証方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するための設計検証プログラム，設計検証装置，設計検証方法は，ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと一致するかコンピュータに検証させる設計検証処理において，コンピュータが，少なくとも一つの要求を含む試験パターンを生成する試験パターン生成工程と，生成された要求毎に，各要求に対して実行が期待されるアサーションとを関連付けた期待値情報を生成する期待値情報生成工程と，生成された要求毎に，各要求に対して実行されたアサーションと，期待値情報における各要求に対して実行が期待されるアサーションとの整合性を判定する整合性判定工程と，整合性の判定結果を出力する出力工程とを実行することを要件とする。
【発明の効果】
【００１１】
開示の設計検証プログラム，設計検証装置，設計検証方法によれば，試験パターンの要求単位で，要求と関連付けてアサーションの実行を検証することができるため，アサーションベース検証において，検証精度を向上させ，さらに，解析作業工数を削減することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態における設計検証装置の機能構成を示す図である。
【図２】実施の形態における設計検証処理のフロー図である。
【図３】実施の形態における設計検証装置のハードウェア構成例を示す図である。
【図４】試験パターン／アサーション連携部２０２によるアサーション期待値テーブルの生成を説明する図である。
【図５】シーケンス制御部２０３によるシーケンス動作テーブルの生成を説明する図である。
【図６】整合性判定部２０７による整合性判定処理を説明する図である。
【図７】整合性判定部２０７による整合性判定処理を説明する図である。
【図８】整合性判定部２０７による整合性判定処理を説明する図である。
【図９】整合性判定処理のシーケンス例を示す図である。
【図１０】整合性判定処理のシーケンス例を示す図である。
【発明を実施するための形態】
【００１３】
図１は，本実施の形態における設計検証装置の機能構成を示す図であり，図２は，本実施の形態における設計検証処理のフロー図である。図１及び図２を参照して，本実施の形態の設計検証装置１００における設計検証処理の概要について説明する。
【００１４】
まず，オペレータにより，試験項目に応じた試験パターンの試験制約情報５００（例えば，禁止動作であって，リード，ライトの発生順序，アドレス，データなどで定義する）が試験パターン生成部２０１に入力される（図２のＳ１０１）。試験パターン生成部２０１は，試験制約情報５００の条件を満たす試験パターンを自動生成する（図２のＳ１０２）。生成された試験パターンは，試験パターン記憶部５０２に記憶され，さらに，試験パターン／アサーション連携部２０２及びシーケンス制御部２０３に通知される。
【００１５】
また，オペレータ操作により，アサーションの制約情報５０１をあらかじめ生成し，試験パターン／アサーション連携部２０２に入力する。アサーションの制約情報５０１は，あらかじめ登録されている複数のアサーションそれぞれを識別するために付されたアサーションＩＤについて，そのアサーションを試験パターンの各要求に対して実行するかどうかの適用の有無（有効／無効）を有する情報である。アサーション制約情報５０１は，図４にて例示する。
【００１６】
試験パターン／アサーション連携部２０２は，アサーション制約情報を用いて，生成された試験パターンと，アサーションとの関連付けを行い，生成された試験パターンの各要求に対して有効となるアサーションの定義（種類）と，試験パターンとアサーションの整合性を判定するための条件（要求単位の実行回数など）を含むアサーション期待値テーブルを生成する（図２のＳ１０３）。アサーション期待値テーブルは，図４にて例示する。
【００１７】
試験パターン／アサーション連携部２０２は，アサーション期待値テーブルを整合性判定部２０７に通知する。アサーション期待値テーブルについては後述する。試験パターンを構成する要求は，リード又はライトなどの単アクセス，又は特定の回路機能を実現するための複数の単アクセスのシーケンス（複アクセス）などを単位とする。
【００１８】
さらに，シーケンス制御部２０４は，生成された試験パターンの要求発行順序を含むシーケンス動作テーブルを生成し（図２のＳ１０４），要求の発行順序を監視する。シーケンス制御部２０４は，シーケンス動作テーブルを整合性判定部２０７に通知する。シーケンス動作テーブルは，図５にて例示する。
【００１９】
論理シミュレータ２０４は，試験パターン記憶部５０２に格納される試験パターン及びアサーション記憶部５０３に格納されるアサーションを用いて，検証回路５０４に対してアサーションを実行する（図２のＳ１０５）。
【００２０】
状態監視部２０５は，検証回路５０４の状態を監視する（図２のＳ１０６）。具体的には，状態監視部２０５は，試験パターンの要求が発生しているかどうか監視し，要求が発生すると，その発生した要求を整合性判定部２０７に通知する。さらには，状態監視部２０５は，実行されるアサーション及びその成立条件を監視し，実行されたアサーション及びその実行結果をアサーション判定部２０６及び整合性判定部２０７に通知する。
【００２１】
アサーション判定部２０６は，実行されたアサーション毎にその実行結果を判定し（図２のＳ１０７），アサーションの実行結果に対する判定（ＯＫ又はＮＧ）をアサーション判定記憶部５０５に格納する。アサーション判定部２０６は，アサーションの実行結果に対する判定及びアサーションの実行回数を整合性判定部２０７に通知する。
【００２２】
整合性判定部２０７は，アサーション期待値テーブルから得られる試験パターンに対して期待されるアサーション動作，及びシーケンス動作テーブルから得られる期待される試験パターン動作と，状態監視部２０５から通知される情報（発生した要求，実行されたアサーション及びその実行結果）と，アサーション判定部２０６から通知される判定情報，アサーションの実行回数情報とから得られる実際のアサーション動作及び試験パターン動作との比較に基づいて，アサーション動作の整合性判定，試験パターン動作の整合性判定を行う（図２のＳ１０８），さらに，整合性判定部２０７は，アサーション判定におけるＮＧ判定（アサーションエラー）が発生した場合の該アサーションエラーに対応する試験パターンの要求の検出を行う。整合性判定部２０７は，整合性判定の結果及び検出結果を整合性判定記憶部５０６に格納する。
【００２３】
すべての試験パターンに対する上記設計検証処理が終了するまで，上記設計検証処理を繰り返す（図２のＳ１０９）。
【００２４】
図３は，本実施の形態における設計検証装置のハードウェア構成例を示す図である。図３において，設計検証装置１００は，ＣＰＵ１０２，ＲＯＭ１０４，ＲＡＭ１０６，記憶媒体アクセス装置１０８，入力装置１１０及び出力装置１１２を備える。ＣＰＵ１０２は，設計検証装置１００の全体的な制御を行い，設計検証プログラムを実行する。ＲＯＭ１０４は，設計検証プログラムなどの各種コンピュータプログラムを記憶している。ＲＡＭ１０６は，ＣＰＵ１０２のワークエリアとして使用されるメモリである。
【００２５】
記憶媒体アクセス装置１０８は，磁気ディスクドライブや光ディスクドライブなどであり，ＣＰＵ１０２の制御に従って，磁気ディスクや光ディスクなどの記憶媒体１０９にアクセスして，データの読み出し及び書き込みを行う。入力装置１１０は，例えばキーボードやマウスなどであり，検証支援プログラムの実行に対する外部からの操作を可能とする。出力装置１１２は，例えばディスプレイやプリンタ装置であり，ディスプレイは設計検証プログラムの実行結果を表示し，プリンタ装置は，設計検証プログラムの実行結果を印刷出力する。各構成要素は，バス１２０を介して接続されている。また，ネットワークに接続して通信するための通信インターフェースなど他の機能要素を備えていてもよい。
【００２６】
図１に示された設計検証装置１００の各機能部（試験パターン生成部２０１，試験パターン／アサーション連携部２０２，シーケンス制御部２０３，論理シミュレータ２０４，状態監視部２０５，アサーション判定部２０６，整合性判定部２０７）は，図３に示したＲＯＭ１０４，ＲＡＭ１０６，記憶媒体１０９などの記憶領域に記憶された設計検証プログラムとして提供され，ＣＰＵ１０２が該設計検証プログラムを実行することにより，各機能部の機能が実現される。
【００２７】
また，図１に示された設計検証装置１００のデータ類記憶部（試験パターン記憶部５０２，アサーション記憶部５０３，検証回路記憶部５０４，アサーション判定記憶部５０５，整合性判定記憶部５０６）は，図３に示したＲＯＭ１０４，ＲＡＭ１０６，記憶媒体１０９などの記憶領域として提供され，ＣＰＵ１０２による設計検証プログラムの実行に伴う該記憶領域へのアクセスにより，該記憶領域に対するデータ類の読み出し及び書き込みが行われる。
【００２８】
以下に，アサーション期待値テーブルの生成処理（Ｓ１０３），シーケンス動作テーブルの生成処理（Ｓ１０４），及び整合性判定処理（Ｓ１０８）について，さらに詳細に説明する。
【００２９】
図４は，試験パターン／アサーション連携部２０２によるアサーション期待値テーブルの生成を説明する図である。オペレータ操作により，アサーションの制約情報５０１があらかじめ生成し，試験パターン／アサーション連携部２０２に入力される。アサーションの制約情報は，あらかじめ登録されている複数のアサーションそれぞれを識別するために付されたアサーションＩＤについて，そのアサーションを試験パターンの各要求に対して実行するかどうかの適用の有無（有効／無効），及び，実行する場合（有効の場合）の実行回数を期待値として有する。例えば，図４のアサーション制約情報５０１において，アサーションＩＤ（Ａ）〜（Ｄ）を有効とし，アサーションＩＤ（Ｅ）以降を無効と設定することで，複数のアサーションから，アサーションＩＤ（Ａ）〜（Ｄ）のアサーションのみが実行される。登録されている複数のアサーションから，今回の検証に必要なアサーションのみを選択することができる。
【００３０】
また，図４のアサーション制約情報６００において，アサーションＩＤと要求との対応関係として設定される数値は，各要求の試験パターン動作を行う場合の，各アサーションが実行される回数である。例えば，アサーションＩＤ（Ａ）と要求（１）との対応関係として期待値「１」が設定されているので，要求（１）の試験パターン動作を行う場合に，アサーションＩＤ（Ａ）が実行される回数は１回である。同様に，アサーションＩＤ（Ｂ）と要求（３）との対応関係として期待値「２」が設定されているので，要求（３）の試験パターン動作を行う場合に，アサーションＩＤ（Ｂ）が実行される回数は２回である。期待値「０」が設定される場合は，対応する要求の試験パターン動作を行う場合に，対応するアサーションＩＤのアサーションは実行されない。例えば，アサーションＩＤ（Ｂ）と要求（１）との対応関係として期待値「０」が設定されているので，アサーションＩＤ（Ｂ）は有効設定されていても，要求（１）の試験パターン動作に対しては，アサーションＩＤ（Ｂ）は実行されない。
【００３１】
試験パターン／アサーション連携部２０２は，試験パターン生成部２０１により生成された試験パターンを受け付け，アサーション制約情報５０１から，有効設定されているアサーションＩＤについて，試験パターン生成部２０１により生成された試験パターンの要求に対応する各アサーションＩＤの設定値を抽出し，これを，アサーション期待値テーブル６０２とする。アサーション期待値テーブル６０２は，生成された試験パターンに対して，要求単位で，期待されるアサーションの実行回数が関連付けられたテーブルである。
【００３２】
図５は，シーケンス制御部２０３によるシーケンス動作テーブルの生成を説明する図である。シーケンス制御部２０３は，試験パターン生成部２０１により生成された試験パターンを受け付ける。試験パターンの要求は，実行される順に順序づけられ，シーケンス制御部２０３は，実行順に要求を記録したシーケンス動作テーブル６０４を生成する。例えば，図５において，生成された試験パターンの要求の実行順序が，要求（１），要求（２），要求（１），要求（１）の順である場合は，シーケンス制御部２０３は，その実行順序に従って要求が並べられたシーケンス動作テーブル６０４を生成する。
【００３３】
なお，回路によっては，要求の実行順序の入れ替わりが許可されている場合がある。この場合は，試験パターンで設定された順序通りに要求が実行されないときにエラーとしないため，要求の実行順序に代わって，シーケンス制御部２０３は，試験パターンに含まれる各要求毎に実行回数を期待値として記録したシーケンス動作テーブル６０４を生成する。例えば，図５において，生成された試験パターンで実行される要求が，実行順に要求（１），要求（２），要求（１），要求（１）である場合，シーケンス制御部２０３は，要求（１）の実行回数３回，要求（２）の実行回数１回をシーケンス動作テーブルとして記録する。要求の実行順序の入れ替わりが許可されている場合は，シーケンス制御部２０３に対して，要求の実行回数を期待値とするための切替制約情報をあらかじめ定義する。
【００３４】
図６乃至図８は，整合性判定部２０７による整合性判定処理を説明する図である。図６において，整合性判定部２０７は，試験パターン／アサーション連携部２０２よりアサーション期待値テーブル６０２を受領し，アサーション期待値テーブル６０２で期待されるアサーションと，実際に実行されるアサーションとの整合性（一致／不一致）を判定する。例えば，整合性判定部２０７は，状態監視部２０５から通知される情報（発生した要求，実行されたアサーション及びその実行結果）と，アサーション判定部２０６から通知される判定情報とから得られる実際のアサーション動作及び試験パターンの情報を取得する。そして，整合性判定部２０７は，実際に実行された要求に対して実際に実行されたアサーションと，アサーション期待値テーブル６０２で設定されている要求に対するアサーションＩＤの実行回数（設定値）とを比較し，一致しているかどうか判定する。例えば，図６に例示されるように，要求（１）の実行において，アサーションＩＤ（Ａ）が２回実行された場合，又は，要求（２）の実行において，アサーションＩＤ（Ｄ）が実行されなかった場合に，整合性判定部２０７は，アサーション期待値テーブル６０２の設定値との不一致を検出する。整合性判定部２０７は，不一致を検出すると，エラー（ＮＧ）出力する。
【００３５】
図７において，整合性判定部２０７は，シーケンス制御部２０３よりシーケンス動作テーブル６０４を受領し，シーケンス動作テーブル６０４で期待される要求の実行順序と，実際に実行される要求の実行順序との整合性を判定する。例えば，整合性判定部２０７は，要求が発生する毎に，状態監視部２０５から，実際に発生した要求の情報を取得し，その実際に発生した要求と，シーケンス動作テーブル６０４に記録されている要求の実行順序とを比較し，整合性を判定する。例えば，図７において，シーケンス動作テーブル６０４において，要求の実行順序が，最初に要求（１）が実行され，その次に要求（２）が実行されるものと期待される場合において，実際に実行された要求は，最初に要求（１）が実行され，その次に再度要求（１）が実行されたような場合，整合性判定部２０７は，シーケンス動作テーブル６０４に記録された実行順序との不一致を検出する。整合性判定部２０７は，不一致を検出すると，エラー（ＮＧ）出力する。
【００３６】
また，シーケンス動作テーブル６０４が，実行順序に代わって，要求毎の実行回数を記録している場合，整合性判定部２０７は，要求毎に，期待される実行回数と，実際の実行回数とを比較し，整合性（一致／不一致）を判定する。図７に示される例では，要求（１）について，期待される実行回数が３回であるのに対して，実際の実行回数が２回であったため，整合性判定部２０７は不一致を検出する。
【００３７】
図８において，整合性判定部２０７は，アサーション判定部２０６からの判定情報として，アサーションエラー（ＮＧ）の発生通知を受けると，そのアサーションエラーに対応するアサーションが実行時の要求を検出する。具体的には，整合性判定部２０７は，アサーションエラーが試験パターンのどの要求実行時に発生したかを判定する。整合性判定部２０７は，アサーション判定部２０６からアサーションの実行回数情報を取得し，状態監視部２０５から実行される要求の情報を順次取得し，それらの情報からアサーションエラー発生時に実行されている要求を特定する。図８の例では，整合性判定部２０７は，アサーションＩＤ（Ａ）の実行に対するアサーションエラー発生時に実行されていた要求は，最初の要求（１）の次に実行された２回目の要求（１）であることを特定する。これにより，アサーションエラー発生時の検証回路の状態を，要求単位で特定することができる。
【００３８】
図９及び図１０は，整合性判定処理のシーケンス例を示す図である。図９では，試験パターンとして，最初に要求（１）が実行され，その次に要求（２）が実行される。また，アサーション期待値テーブル６００に設定された期待動作として，１回のアサーションＩＤ（Ａ）のアサーションが要求（１）で実行され，それぞれ１回ずつのアサーションＩＤ（Ｂ），（Ｃ），（Ｄ）のアサーションが要求（２）で実行されることが期待されるものとする。論理シミュレータ２０４は，要求（１）により検証回路５０４に対してアサーションを実行する。状態監視部２０５は，要求（１）の実行を整合性判定部２０７に通知する。アサーション判定部２０６は，アサーションの実行結果を整合性判定部２０７に通知するが，このとき，アサーション判定部２０６は，要求（１）の有効範囲（有効期間）中に，２回のアサーションＩＤ（Ａ）の実行結果を通知する。整合性判定部２０７は，要求（１）の有効期間中に実行された２回目のアサーションＩＤ（Ａ）のアサーションの実行が，期待動作と不一致である旨判定し，エラー（ＮＧ）出力する。さらに，アサーション判定部２０６は，要求（２）の有効範囲（有効期間）中に，それぞれ１回ずつのアサーションＩＤ（Ｂ），（Ｃ）の実行結果を通知するが，アサーションＩＤ（Ｄ）の実行結果を通知しなかった場合，整合性判定部２０７は，要求（２）の有効期間中にアサーションＩＤ（Ｄ）が実行されなかったと判断し，期待動作と不一致である旨判定し，エラー出力する。
【００３９】
図１０では，図９と同様に，試験パターンとして，最初に要求（１）が実行され，その次に要求（２）が実行される。また，アサーション期待値テーブル６００に設定された期待動作として，１回のアサーションＩＤ（Ａ）のアサーションが要求（１）で実行され，それぞれ１回ずつのアサーションＩＤ（Ｂ），（Ｃ），（Ｄ）のアサーションが要求（２）で実行されることが期待されるものとする。論理シミュレータ２０４は，要求（１）により検証回路５０４に対してアサーションを実行する。状態監視部２０５は，要求（１）の実行を整合性判定部２０７に通知する。アサーション判定部２０６は，アサーションの実行結果を整合性判定部２０７に通知するが，このとき，アサーション判定部２０６は，要求（１）の有効期間中に，１回のアサーションＩＤ（Ａ）の実行結果に加えて，１回のアサーションＩＤ（Ｅ）の実行結果を通知する。整合性判定部２０７は，要求（１）の有効期間中に実行されたアサーションＩＤ（Ｅ）のアサーションの実行が，期待動作と不一致である旨判定し，エラー出力する。さらに，アサーション判定部２０６は，要求（２）の有効期間中に，それぞれ１回ずつのアサーションＩＤ（Ｂ），（Ｃ）の実行結果を通知し，さらに次の要求の有効期間中に，アサーションＩＤ（Ｄ）の実行結果を通知する。整合性判定部２０７は，アサーションＩＤ（Ｄ）の実行結果を受領するものの，要求（２）の有効期間中に受領しないため，要求（２）の有効期間中にアサーションＩＤ（Ｄ）が実行されなかったと判断し，期待動作と不一致である旨判定し，エラー出力する。
【００４０】
以上説明したように，本実施の形態例では，自動生成される試験パターンと，アサーションとの関連付けを行い，生成された試験パターンの各要求について，期待されるアサーション動作を含む期待値テーブルを生成する。そして，要求単位毎に，実際に実行されるアサーションの種類，実行回数及び実行タイミングを判定し，要求単位毎に，期待されるアサーション動作と実際に実行されるアサーション動作との一致／不一致を判定し，不一致の場合に，エラー出力する。さらに，生成された試験パターンの要求発行順序を期待値として，実際の要求発行順序との一致／不一致を判定し，不一致の場合にエラー出力する。これにより，試験パターンの要求単位で，要求と関連付けてアサーションの実行を検証することができるため，検証精度が向上し，アサーションエラーがどの要求に対応するものであるか容易に解析することができるようになる。
【００４１】
本実施の形態における設計検証プログラムは，上述した設計検証処理をコンピュータ装置（パーソナルコンピュータやワークステーションを含む）に実行させるためのプログラムであり，本実施の形態における設計検証方法は，該プログラムをコンピュータ装置（設計検証装置）で実行させることで実現される。
【００４２】
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【００４３】
（付記１）
ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと適合するかコンピュータに検証させる設計検証プログラムにおいて，
前記コンピュータを，
少なくとも一つの要求を含む試験パターンを生成する試験パターン生成手段，
生成された要求毎に，各要求と各要求に対して実行が期待されるアサーションとを関連付けた期待値情報を生成する期待値情報生成手段，
生成された要求毎に，各要求に対して実行されたアサーションと，各要求に対して設定された前記期待値情報におけるアサーションとの整合性を判定する整合性判定手段，
前記整合性の判定結果を出力する出力手段，
として機能させることを特徴とする設計検証プログラム。
【００４４】
（付記２）
付記１において，
前記整合性判定手段は，各要求に対して，前記期待値情報におけるアサーションと異なるアサーションが実行された場合に，エラー判定することを特徴とする設計検証プログラム。
【００４５】
（付記３）
付記１において，
前記整合性判定手段は，各要求に対して，一定期間内に，前記期待値情報におけるアサーションが実行されない場合に，エラー判定することを特徴とする設計検証プログラム。
【００４６】
（付記４）
付記１において，
前記期待値情報は，各要求に対して実行が期待されるアサーションの実行回数を含み，
前記整合性判定手段は，各要求に対して実行されたアサーションの実行回数と，前記期待値情報におけるアサーションの実行回数とが異なる場合に，エラー判定することを特徴とする設計検証プログラム。
【００４７】
（付記５）
付記１において，
前記試験パターンは，順序付けされた複数の要求を含む試験パターンを生成し，
前記整合性判定手段は，前記試験パターンにおける前記複数の要求の実行順序と，実際に実行された要求の実行順序とが異なる場合，エラー判定することを特徴とする設計検証プログラム。
【００４８】
（付記６）
ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと適合するかコンピュータに検証させる設計検証プログラムにおいて，
前記コンピュータを，
順序付けされた複数の要求を含む試験パターンを生成する試験パターン生成手段，
前記試験パターンにおける前記複数の要求の実行順序と，実際に実行された要求の実行順序との整合性を判定する整合性判定手段，
前記整合性の判定結果を出力する出力手段，
として機能させることを特徴とする設計検証プログラム。
【００４９】
（付記７）
ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと一致するか検証する設計検証装置において，
少なくとも一つの要求を含む試験パターンを生成する試験パターン生成手段と，
生成された要求毎に，各要求に対して実行が期待されるアサーションとを関連付けた期待値情報を生成する期待値情報生成手段と，
生成された要求毎に，各要求に対して実行されたアサーションと，前記期待値情報における各要求に対して実行が期待されるアサーションとの整合性を判定する整合性判定手段と，
前記整合性の判定結果を出力する出力手段とを備えることを特徴とする設計検証装置。
【００５０】
（付記８）
ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと一致するかコンピュータに検証させる設計検証方法において，
前記コンピュータが，
少なくとも一つの要求を含む試験パターンを生成する試験パターン生成工程と，
生成された要求毎に，各要求に対して実行が期待されるアサーションとを関連付けた期待値情報を生成する期待値情報生成工程と，
生成された要求毎に，各要求に対して実行されたアサーションと，前記期待値情報における各要求に対して実行が期待されるアサーションとの整合性を判定する整合性判定工程と，
前記整合性の判定結果を出力する出力工程とを実行することを特徴とする設計検証方法。
【００５１】
（付記９）
ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと適合するかコンピュータに検証させる設計検証装置において，
順序づけされた複数の要求を含む試験パターンを生成する試験パターン生成手段と，
前記試験パターンにおける前記複数の要求の実行順序と，実際に実行された要求の実行順序との整合性を判定する整合性判定手段と，
前記整合性の判定結果を出力する出力手段とを備えることを特徴とする設計検証プログラム。
【００５２】
（付記１０）
ハードウェア記述言語で記述された論理回路の論理シミュレーション実行結果が，前記論理回路の設計仕様として記述されたアサーションと適合するかコンピュータに検証させる設計検証方法において，
前記コンピュータが，
順序づけされた複数の要求を含む試験パターンを生成する試験パターン生成工程と，
前記試験パターンにおける前記複数の要求の実行順序と，実際に実行された要求の実行順序との整合性を判定する整合性判定工程と，
前記整合性の判定結果を出力する出力工程とを実行することを特徴とする設計検証方法。
【符号の説明】
【００５３】
２０１：試験パターン生成部，２０２：試験パターン／アサーション連携部，２０３：シーケンス制御部，２０４：論理シミュレータ，２０５：状態監視部，２０６：アサーション判定部，２０７：整合性判定部，５００：試験制約情報，５０１：アサーション制約情報，５０２：試験パターン記憶部，５０３：アサーション記憶部，５０４：検証回路，５０５，アサーション判定記憶部，５０６：整合性判定記憶部，６０２：アサーション期待値テーブル，６０４：シーケンス動作テーブル
【図１】
0005625942.tif 000002
【図２】
0005625942.tif 000003
【図３】
0005625942.tif 000004
【図４】
0005625942.tif 000005
【図５】
0005625942.tif 000006
【図６】
0005625942.tif 000007
【図７】
0005625942.tif 000008
【図８】
0005625942.tif 000009
【図９】
0005625942.tif 000010
【図１０】
0005625942.tif 000011