(57)【要約】【課題】設計仕様とアサーション記述が一致しているかどうかを容易に確認可能なアサーション記述生成装置を得ること。【解決手段】アサーション記述を生成するアサーション記述生成装置１であって、アサーション対象であってアサーション記述を生成する際に基準となる基準信号の波形、および当該基準信号波形の同期クロックを受け取り、当該基準信号波形をクロック毎の信号値に変換する基準信号波形デコーダ部１１と、前記基準信号を含むアサーション対象の信号のタイミングの関係を示すタイミング情報を受け取り、前記クロック毎の信号値に基づいて、当該タイミング情報を信号値情報に変換するタイミング情報デコーダ部１４と、前記信号値情報に基づいて、前記アサーション対象の信号の波形を生成する波形生成部１７を備える。【選択図】図１
2010205157.tif 000002
【特許請求の範囲】
【請求項１】
アサーション記述を生成するアサーション記述生成装置であって、
アサーション対象であってアサーション記述を生成する際に基準となる基準信号の波形、および当該基準信号波形の同期クロックを受け取り、当該基準信号波形をクロック毎の信号値に変換する基準信号波形デコーダ手段と、
前記基準信号を含むアサーション対象の信号のタイミングの関係を示すタイミング情報を受け取り、前記クロック毎の信号値に基づいて、当該タイミング情報を信号値情報に変換するタイミング情報デコーダ手段と、
前記信号値情報に基づいて、前記アサーション対象の信号の波形を生成する波形生成手段と、
を備えることを特徴とするアサーション記述生成装置。
【請求項２】
前記タイミング情報を、アサーション対象信号が遷移するための基準信号値情報、アサーション対象信号の評価スタート時の信号値、アサーション対象信号の評価スタート時からの遅延情報、アサーション対象信号の遅延後の信号値、およびアサーション対象信号の遅延後の信号値のクロック幅とすることを特徴とする請求項１に記載のアサーション記述生成装置。
【請求項３】
さらに、
前記タイミング情報において基準信号に対して基準信号以外のアサーション対象の信号の評価スタート時の信号値が設定されていない場合に、候補となる信号値を出力し、その応答として入力された信号値を前記評価スタート時の信号値とする信号値決定手段、
を備え、
前記タイミング情報デコーダ手段は、前記信号値決定手段により決定された信号値に基づいて信号値情報を生成することを特徴とする請求項２に記載のアサーション記述生成装置。
【請求項４】
さらに、
タイミング情報として入力されたステートダイアグラムを、パラメータリストに変換するパラメータリスト変換手段、
を備えることを特徴とする請求項１に記載のアサーション記述生成装置。
【請求項５】
前記ステートダイアグラムを、アサーション対象信号が遷移するための基準信号値情報、アサーション対象信号の評価スタート時の信号値、アサーション対象信号の評価スタート時からの遅延情報、アサーション対象信号の遅延後の信号値、およびアサーション対象信号の遅延後の信号値のクロック幅とすることを特徴とする請求項４に記載のアサーション記述生成装置。
【請求項６】
さらに、
前記ステートダイアグラムにおいて基準信号に対して基準信号以外のアサーション対象の信号の評価スタート時の信号値が設定されていない場合に、候補となる信号値を出力し、その応答として入力された信号値を前記評価スタート時の信号値とする信号値決定手段、
を備え、
前記タイミング情報デコーダ手段は、前記信号値決定手段により決定された信号値に基づいて信号値情報を生成することを特徴とする請求項５に記載のアサーション記述生成装置。
【請求項７】
さらに、
タイミング情報として入力されたパラメータファイルを、ステートダイアグラムに変換するステートダイアグラム変換手段と、
前記ステートダイアグラムを、パラメータリストに変換するパラメータリスト変換手段と、
を備えることを特徴とする請求項１に記載のアサーション記述生成装置。
【請求項８】
前記パラメータファイルを、同期クロック、評価スタートタイミング、状態数、状態値、評価スタートタイミング時の状態、波形観測終了状態値、遷移情報、アサーション対象信号の評価スタートタイミングからの遅延、および遅延後の状態を維持するクロック幅とすることを特徴とする請求項７に記載のアサーション記述生成装置。
【請求項９】
さらに、
前記パラメータファイルがパラメータリストに変換され、評価スタートタイミング時の状態の情報が評価スタート時の信号値の情報に変換され、パラメータリストにおいて基準信号に対して基準信号以外のアサーション対象の信号の評価スタート時の信号値が設定されていない場合に、候補となる信号値を出力し、その応答として入力された信号値を前記評価スタート時の信号値とする信号値決定手段、
を備え、
前記タイミング情報デコーダ手段は、前記信号値決定手段により決定された信号値に基づいて信号値情報を生成することを特徴とする請求項８に記載のアサーション記述生成装置。
【請求項１０】
さらに、
複数のアサーション対象の信号についての信号値情報がある場合、前記タイミング情報デコーダ手段によって生成された複数の信号値情報を１つの信号値情報に結合し、当該結合した信号値情報を前記波形生成手段へ出力する信号値情報結合手段、
を備えることを特徴とする請求項１〜９のいずれか１つに記載のアサーション記述生成装置。
【請求項１１】
さらに、
前記基準信号波形、前記同期クロック、および前記タイミング情報に基づいてシミュレーションを実行するシミュレーション実行手段と、
前記シミュレーション実行手段の実行結果と、前記基準信号波形デコーダ手段から得られるクロック毎の信号値および前記タイミング情報デコーダ手段から得られる信号値情報とを比較し、比較結果を出力する比較手段と、
を備えることを特徴とする請求項１〜１０のいずれか１つに記載のアサーション記述生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アサーションベース検証におけるアサーション記述生成装置に関する。
【背景技術】
【０００２】
従来、論理回路の動作を確認する方法として、回路仕様にあっているかどうかをシミュレータによってモニタリングするアサーションベース検証がある。アサーションベース検証は、設計仕様をアサーション言語と呼ばれる言語で記述し、検証対象の仕様が設計仕様と一致しているかを確認するものである。アサーション記述とシミュレーションによる結果を比較し、仕様と異なる動作を行った場合に不具合（バグ）を検出する。アサーションベース検証では、動作を確認する者はアサーション記述の文法を理解し、確認したい検証対象の仕様の数だけアサーション記述を生成する。
【０００３】
アサーション記述の文法を理解していない者でもアサーションベース検証ができるように、下記特許文献１おいて、グラフィカルエディタ上で確認する全ての信号のタイミングチャートを入力し、そこからアサーション記述を自動生成する技術が開示されている。確認する全ての信号のタイミングチャートから検証対象となる回路の設計データを生成し、アサーション記述を生成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−０９９５１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術によれば、グラフィカルエディタ上で確認する信号全ての状態遷移図やタイミングチャート（波形）を入力する。そのため、長いサイクルのタイミングチャートを入力する際、記入ミスが生じる恐れがある、という問題があった。
【０００６】
また、アサーション記述において、記述を満たす仕様の候補が複数存在する場合がある。そのため、記述を追加する必要があり修正に時間を要する、という問題があった。
【０００７】
本発明は、上記に鑑みてなされたものであって、アサーション対象の信号波形を出力することによって設計仕様と一致しているかどうかを容易に確認することが可能なアサーション記述生成装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、アサーション記述を生成するアサーション記述生成装置であって、アサーション対象であってアサーション記述を生成する際に基準となる基準信号の波形、および当該基準信号波形の同期クロックを受け取り、当該基準信号波形をクロック毎の信号値に変換する基準信号波形デコーダ手段と、前記基準信号を含むアサーション対象の信号のタイミングの関係を示すタイミング情報を受け取り、前記クロック毎の信号値に基づいて、当該タイミング情報を信号値情報に変換するタイミング情報デコーダ手段と、前記信号値情報に基づいて、前記アサーション対象の信号の波形を生成する波形生成手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、設計仕様とアサーション記述が一致しているかどうかを容易に確認することができる、という効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、アサーション記述生成装置の構成例を示す図である。
【図２】図２は、基準信号波形と同期クロックを示す図である。
【図３】図３は、クロック毎の基準信号波形の信号値を示す図である。
【図４】図４は、パラメータリストの構成例を示す図である。
【図５】図５は、アサーション対象の信号の波形を示す図である。
【図６】図６は、信号値情報の構成例を示す図である。
【図７】図７は、マージした信号値情報の構成例を示す図である。
【図８】図８は、クロック間を省略した信号値情報の構成例を示す図である。
【図９】図９は、アサーション記述の構成例を示す図である。
【図１０】図１０は、ステートダイアグラムの構成例を示す図である。
【図１１】図１１は、ステートダイアグラムの作成方法を示すフローチャートである。
【図１２】図１２は、ステートダイアグラムを作成するためのパラメータリストの構成例を示す図である。
【図１３】図１３は、ステートダイアグラムから生成したパラメータリストの構成例を示す図である。
【図１４】図１４は、ステートダイアグラムから生成したパラメータリストの構成例を示す図である。
【図１５】図１５は、信号値情報の選択による遷移を示す図である。
【図１６】図１６は、アサーション対象の信号波形の選択による遷移を示す図である。
【図１７】図１７は、信号値情報の構成例を示す図である。
【図１８】図１８は、シミュレーション実施後のクロックと各信号の時系列を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかるアサーション記述生成装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態．
図１は、本実施の形態のアサーション記述生成装置の構成例を示す図である。アサーション記述生成装置１は、アサーション部１０と、シミュレーション部２０と、表示部３０と、を備える。アサーション記述生成装置１は、基準信号波形と同期クロック、および生成信号タイミング情報を入力して、アサーション記述およびアサーション記述の対象となる信号の波形を出力し、また、シミュレーションを行う。アサーション部１０は、入力した信号等に基づいてアサーション記述とアサーション記述の対象となる信号の波形を生成し表示する。シミュレーション部２０は、入力した信号等とアサーション部１０からの信号値を比較してシミュレーションを行う。表示部３０は、生成信号タイミング情報を入力する際の表示や、アサーション記述の対象となる信号の波形、シミュレーションの結果等を表示する。
【００１３】
アサーション部１０は、基準信号波形デコーダ部１１と、基準信号波形データ保存部１２と、パラメータ変換部１３と、タイミング情報デコーダ部１４と、タイミング情報データ保存部１５と、データマージ部１６と、波形生成部１７と、アサーション生成部１８と、を備える。また、アサーション部１０は、各構成で使用可能な波形エディタを図示しないメモリ内に備える。
【００１４】
基準信号波形デコーダ部１１は、入力した基準信号波形と同期クロックをデコードする。基準信号波形データ保存部１２は、基準信号波形デコーダ部１１がデコードしたクロック毎の信号情報を保存する。パラメータ変換部１３は、生成信号タイミング情報がパラメータリスト以外で入力された場合に変換処理を行う。生成信号タイミング情報がステートダイアグラムで設定された場合は、パラメータリストに変換する。生成信号タイミング情報がステートダイアグラムを作成するためのパラメータファイルで設定された場合は、ステートダイアグラムに変換後、さらにパラメータリストに変換する。
【００１５】
タイミング情報デコーダ部１４は、入力した生成信号タイミング情報をデコードする。タイミング情報データ保存部１５は、タイミング情報デコーダ部１４がデコードした生成信号タイミング情報（信号値情報）を保存する。データマージ部１６は、タイミング情報データ保存部１５が保存する信号情報値をマージ（結合）する。波形生成部１７は、データマージ部１６によって結合された信号情報値から波形を生成する。アサーション生成部１８は、アサーション記述の文法を格納し、また、パラメータリストで記載された生成信号タイミング情報に基づいてアサーション記述を生成する。
【００１６】
シミュレーション部２０は、シミュレーション実行部２１と、比較部２２と、を備える。シミュレーション実行部２１は、入力した基準信号波形、同期クロック、およびパラメータリストに変換後の生成信号タイミング情報に基づいて、シミュレーションを実行する。比較部２２は、シミュレーション実行部２１の検証結果と、アサーション部からの信号値との比較を行う。
【００１７】
つづいて、アサーション記述生成装置１のアサーション記述の生成処理について説明する。まず、アサーション記述生成装置１は、アサーション記述の生成において基準となる信号の基準信号波形、および基準信号波形の同期クロックを入力する。図２は、基準信号波形および同期クロックを示す図である。「ｃｌｋ」が同期クロックであり、「ｓｉｇ＿ａ」が基準信号波形である。アサーション記述生成装置１は、基準信号波形デコーダ部１１に２つの信号を入力する。なお、本実施の形態では、基準信号波形および同期クロックを入力する場合、表示部３０に表示された波形エディタの入力画面に従って行う。
【００１８】
つぎに、基準信号波形デコーダ部１１が、入力された基準信号波形をクロック毎に０、１の信号値にデコードする。図３は、クロック毎の基準信号波形の信号値を示す図である。基準信号波形データ保存部１２が、基準信号波形デコーダ部１１がデコードした信号値（クロック毎の基準信号波形の信号値）を保存する。
【００１９】
また、タイミング情報デコーダ部１４が、パラメータ変換部１３を経由して、生成信号タイミング情報を入力する。図４は、生成信号タイミング情報をパラメータによって設定したときのパラメータリストの構成例を示す図である。タイミング情報デコーダ部１４がパラメータを使用する場合、図４（ａ）、（ｂ）で示すパラメータリストを入力する。アサーション部１０は、前記基準信号波形および同期クロックと、生成信号タイミング情報に基づいて、生成したアサーション記述が設計仕様通りかどうかを確認するためのアサーション記述の対象となる信号の波形を生成する。図５は、アサーション記述の対象となる信号の波形を示す図である。具体的に波形を生成する動作として、生成信号タイミング情報が２つのパラメータリストによって設定する場合について説明する。
【００２０】
なお、生成信号タイミング情報がパラメータリストによって入力される場合、パラメータ変換部１３は、生成信号タイミング情報に対して変換処理をせず、そのまま出力する。
【００２１】
アサーション部１０は、図５に示す波形を生成するため、図４のパラメータリストを使用する。図４（ａ）は、信号「ｓｉｇ＿ａ」に対する信号「ｓｉｇ＿ｂ」の生成信号タイミング情報を、図４（ｂ）は、図４（ａ）において生成される「ｓｉｇ＿ｂ」に対する信号「ｓｉｇ＿ｃ」の生成信号タイミング情報をパラメータで表したパラメータリストである。
【００２２】
「Ｃｌｋ」は同期クロックを、「Ｂａｓｅ＿ｓｉｇ＿ｎａｍｅ」はアサーション記述の対象となる信号のうち基準となる信号名を表す。「Ｔｒｉｇｇｅｒ」は評価をスタートするための条件であり、評価スタートの変化点が０から１のときは「ｓｅｔ  １ｂ」、１から０のときは「ｓｅｔ  ０ｂ」とする。
【００２３】
「Ｃｒｅａｔｅ＿ｓｉｇ＿ｎａｍｅ」はアサーション記述の対象となる信号の信号名を、「Ｉｎｉ＿ｖａｌｕｅ」はアサーション記述の対象となる信号の評価スタートタイミングの信号値を、「Ｄｅｌａｙ」はアサーション記述の対象となる信号の評価スタートタイミングからの遅延を、「Ｖａｌｕｅ」はアサーション記述の対象となる信号の遅延後の信号値を、「Ｗｉｄｔｈ」は遅延した後の信号値を維持するクロック幅を表す。「Ｏｍｉｔ」は波形エディタ上の省略クロック幅であり、図４（ａ）では、評価スタート時から「Ｄｅｌａｙ」で設定した「１５ｃｌｋ」までのクロックを省略する。「Ｐｒｏｐ＿ｎａｍｅ」は生成するアサーション記述のプロパティ名を表す。
【００２４】
図４（ｂ）のみに記載の「Ｄｏｎ’ｔ  ｃａｒｅ」はアサーション評価開始時、アサーション記述の対象となる信号が評価対象かどうかを表す。アサーション評価開始時、アサーション記述の対象となる信号の値は評価対象にならない場合がある。例えば、図４（ｂ）では、ｓｉｇ＿ａの評価スタートタイミング時、ｓｉｇ＿ｃの信号値は評価対象になっていない。評価対象になっていない値を見ない場合は、「Ｄｏｎ’ｔ  ｃａｒｅ」に「０」を設定し、値が「０ｂ」もしくは「１ｂ」のどちらかでなければならない場合は「１」を設定する。なお、「Ｄｏｎ’ｔ  ｃａｒｅ」に「１」を設定した場合は、信号値の候補が複数存在する場合であり、このときは複数の信号値を表示し、その中から選択する。詳細については後述する。
【００２５】
図４（ａ）のパラメータリストは、同期クロックはｃｌｋであり、ｓｉｇ＿ａの立ち上がり（図５のＡ点）を評価スタートタイミングＡとして、評価スタートタイミングＡから１５ｃｌｋまでｓｉｇ＿ｂの値は００ｂ、１５ｃｌｋ経過した後に２ｃｌｋ間０１ｂとなり、波形表示時に１から１４ｃｌｋ分の波形を省略し、プロパティ名「ｐｒｏｐ＿Ａ」のアサーション記述を生成することを表す。
【００２６】
図４（ｂ）のパラメータリストは、同期クロックはｃｌｋであり、ｓｉｇ＿ｂの値が０１ｂになるタイミング（図５のＢ点）を評価スタートタイミングＢとして、評価スタートタイミングＢから１ｃｌｋ後まではｓｉｇ＿ｃの値は００ｂ、１ｃｌｋ経過した後に１ｃｌｋ間１０ｂとなり、プロパティ名「ｐｒｏｐ＿Ａ」のアサーション記述を生成することを表す。
【００２７】
ここで、アサーション記述の対象となる信号の波形生成の処理について説明する。アサーション部１０では、パラメータ変換部１３を経由して、タイミング情報デコーダ部１４が、図４（ａ）のパラメータリストを入力し、各情報を読み取る。なお、本実施の形態では、生成信号タイミング情報を入力する場合、表示部３０に表示された波形エディタの入力画面に従って行う。タイミング情報デコーダ部１４は、図４（ａ）に示すパラメータリストが入力されると、「Ｐｒｏｐ＿ｎａｍｅ」をプロパティ名とし、「ｃｌｋ」を同期クロックとし、「Ｂａｓｅ＿ｓｉｇ＿ｎａｍｅ」に設定された基準信号ｓｉｇ＿ａが「Ｔｒｉｇｇｅｒ」に設定された値１ｂに遷移するタイミングを基準信号波形データ保存部１２に保存されているクロック毎の信号値（図３参照）から検出する。
【００２８】
「Ｃｒｅａｔｅ＿ｓｉｇ＿ｎａｍｅ」に設定されたアサーション記述の対象となる信号ｓｉｇ＿ｂの「Ｂａｓｅ＿ｓｉｇ＿ｎａｍｅ」が「Ｔｒｉｇｇｅｒ」に遷移するタイミングでの信号値を「Ｉｎｉ＿ｖａｌｕｅ」に設定された値００ｂに決定し、タイミング情報データ保存部１５に保存する。図６は、タイミング情報データ保存部１５が備える信号値情報の構成例である。図６（ａ）は、図４（ａ）のパラメータリストをデコードした信号値情報である。
【００２９】
ｓｉｇ＿ｂは上記で検出した「Ｂａｓｅ＿ｓｉｇ＿ｎａｍｅ」に設定された信号ｓｉｇ＿ａの「Ｔｒｉｇｇｅｒ」に設定された値１ｂに遷移するタイミングから、「Ｄｅｌａｙ」に設定された値１５ｃｌｋ間「Ｉｎｉ＿ｖａｌｕｅ」の値を維持し、１５ｃｌｋ経過後「ｖａｌｕｅ」に設定された値０１ｂに変化させ、タイミング情報データ保存部１５に保存する。
【００３０】
「ｓｉｇ＿ｂ」の状態を「Ｗｉｄｔｈ」に設定された２ｃｌｋ間値を維持し、タイミング情報データ保存部１５に保存する。その後、「Ｏｍｉｔ」によって設定されたクロック１−１４ｃｌｋを削除し、削除したクロック幅を図６（ａ）のようにｏｍｉｔと表す。削除した１−１４クロック間のデータは、タイミング情報データ保存部１５が保存する。最後に、「Ｄｏｎ’ｔ  ｃａｒｅ」が０に設定された場合、タイミング情報データ保存部１５に０を、１に設定された場合は１を記載する（図６（ａ）参照）。
【００３１】
なお、図４（ｂ）のパラメータリストも上記同様の処理を実行し、図６（ｂ）に示す信号値情報を生成し、タイミング情報データ保存部１５に保存する。
【００３２】
つぎに、データマージ部１６は、複数のパラメータリストから生成した信号値情報をマージ（結合）する。データマージ部１６は、タイミング情報データ保存部１５に保存された信号値情報（図６（ａ）、（ｂ））のクロックを、ｓｉｇ＿ａの評価スタート時からのクロックに合わせてマージし、信号値情報を生成する。図７は、データマージ部１６がマージした信号値情報の構成例である。
【００３３】
波形生成時に使う信号値情報は、パラメータによって設定した省略クロック幅を削除した信号値情報を使用する。図８は、クロック間を省略した信号値情報の構成例である。波形生成部１７が、図８の信号値情報についてクロック毎の変化点で信号の値をプロットし、図５に示す波形を生成して表示部３０に表示する。利用者は、表示された信号波形が設計仕様通りか確認することで、生成されるアサーション記述が設計仕様と一致するかどうかを容易に確認することができる。
【００３４】
つづいて、アサーション記述の生成処理について説明する。アサーション生成部１８が、図４（ａ）のパラメータリストの「Ｐｒｏｐ＿ｎａｍｅ」に設定されたプロパティ名ｐｒｏｐ＿Ａからパラメータを抜き取り、プロパティ開始を示すアサーション記述「ｐｒｏｐｅｒｔｙ  ｐｒｏｐ＿Ａ；」を、「ｃｌｋ」に設定したｃｌｋからパラメータを抜き取り、同期クロックがｃｌｋであり、クロックの立ち上がりを評価することを示すアサーション記述「＠（ｐｏｓｅｄｇｅ  ｃｌｋ）」を生成し、「Ｂａｓｅ＿ｓｉｇ＿ｎａｍｅ」に設定したｓｉｇ＿ａ、「Ｔｒｉｇｇｅｒ」に設定したｓｅｔ  １ｂから、各パラメータを抜き取り、ｓｉｇ＿ａの立ち上がりを評価のスタートタイミングとするアサーション記述「＄ｒｏｓｅ（ｓｉｇ＿ａ）」を生成する。なお、ｓｉｇ＿ａの立ち下がりを評価のスタートと定義した場合のアサーション記述は「＄ｆｅｌｌ（ｓｉｇ＿ａ）」である。
【００３５】
「Ｃｒｅａｔｅ＿ｓｉｇ＿ｎａｍｅ」に設定したｓｉｇ＿ｂ、が評価スタート時のアサーション記述の対象となる信号の値「Ｉｎｉ＿ｖａｌｕｅ」に設定した００ｂから、同時刻のタイミングで評価するアサーション記述「｜−＞」と、「Ｄｅｌａｙ」に設定した１５から、各パラメータを抜き取り、ｓｉｇ＿ｂが評価スタートタイミングから００ｂを１５ｃｌｋ間維持することを示す記述「ｓｉｇ＿ｂ＝＝２’ｂ００［＊１５］」を生成する。
【００３６】
「Ｖａｌｕｅ」に設定した０１ｂ、「Ｄｅｌａｙ」に設定した１５から、１５ｃｌｋ遅延した後の次のクロックを示すアサーション記述「＃＃１」を生成し、つぎのクロックのｓｉｇ＿ｂの値が０１ｂであり、“「Ｂａｓｅ＿ｓｉｇ＿ｎａｍｅ」に設定したｓｉｇ＿ｂ、「Ｔｒｉｇｇｅｒ」に設定したｓｅｔ  ０１ｂ、「Ｃｒｅａｔｅ＿ｓｉｇ＿ｎａｍｅ」に設定したｓｉｇ＿ｃ、「Ｉｎｉ＿ｖａｌｕｅ」に設定した００ｂから各パラメータを抜き取り、１５ｃｌｋ遅延したつぎのクロックのｓｉｇ＿ｂの値が０１ｂ、ｓｉｇ＿ｃの値が００ｂであるアサーション記述「ｓｉｇ＿ｂ＝＝２’ｂ０１  ＆  ｓｉｇ＿ｃ＝＝２’ｂ００」を作成する。
【００３７】
つぎに、次のクロックを示すアサーション記述「＃＃１」を生成し、「Ｖａｌｕｅ」に設定した０１ｂと「Ｗｉｄｔｈ」に設定した２から次のクロックでのｓｉｇ＿ｂは０１ｂであり、「Ｄｅｌａｙ」に設定した１、「Ｖａｌｕｅ」に設定した１０ｂ、から各パラメータを抜き取り、ｓｉｇ＿ｂの値が０１ｂ、ｓｉｇ＿ｃの値が１０ｂであるアサーション記述「ｓｉｇ＿ｂ＝＝２’ｂ０１  ＆  ｓｉｇ＿ｃ＝＝２’ｂ１０；」を生成し、「Ｐｒｏｐ＿ｎａｍｅ」に設定したｐｒｏｐ＿Ａからプロパティ終了を示す記述「ｅｎｄｐｒｏｐｅｒｔｙ：ｐｒｏｐ＿Ａ」を生成し、図９に示すアサーション記述を生成する。図９は、図４（ａ）、（ｂ）のパラメータリストから生成したアサーション記述の構成例である。上記処理により、アサーション生成部１８は、パラメータリストからアサーション記述を生成することができる。
【００３８】
つづいて、生成信号タイミング情報がステートダイアグラムによって設定された場合について説明する。図１０は、ステートダイアグラムの構成例を示す図である。アサーション部１０が、パラメータの代わりにステートダイアグラムを入力する場合、図１０に示すステートダイアグラムを作成して入力する。この場合、パラメータ変換部１３がステートダイアグラムをパラメータリストに変換し、タイミング情報デコーダ部１４へ出力する。図１０（ａ）は、ｓｉｇ＿ｂの遷移を示すステートダイアグラム、図１０（ｂ）は、ｓｉｇ＿ｃの遷移を示すステートダイアグラムである。
【００３９】
ステートダイアグラムは、基準信号に対するアサーション記述の対象となる信号の信号名１０１と、基準信号の同期クロック１０２と、アサーション記述の対象となる信号が遷移するための基準信号の遷移条件１０３と、信号値１０４、１１０、１１３、１１６と、状態維持遷移１０５、１１１、１１４、１１７と、状態遷移１０６、１１２、１１５と、アサーション記述の対象となる信号の、基準信号の遷移タイミングからの遅延１０７と、生成する信号の次の信号値のクロック幅１０８と、波形エディタ上での省略クロック幅１０９と、アサーションで定義する波形観測をストップする遷移１１８と、アサーションで定義する波形観測をストップするｅｎｄ設定の信号値１１９と、生成するアサーションのプロパティ名１２０と、信号値の設定１２１と、から構成される。
【００４０】
信号値１０４、１１０、１１３、１１６は、ｓｉｇ＿ｂの信号値であり、１０４はアサーション記述の対象となる信号の波形の評価スタートタイミングにおける信号値を表し、信号値１１０は、信号値１０４から生成する信号の次の信号値を表す。状態維持遷移１０５、１１１、１１４、１１７は、ｌｏｏｐで設定された数の状態を維持する遷移である。また、状態遷移１０６、１１２、１１５は、生成した次の状態値への遷移を表す。プロパティ名１２０は、図１０（ａ）、（ｂ）は同じプロパティで生成するため、プロパティ名は同じである。信号の設定１２１は、例えば、ｓｉｇ＿ｃは、ｓｉｇ＿ａの立ち上がり時において信号値が設定されておらず、ｓｉｇ＿ａの立ち上がり時、ｓｉｇ＿ｃの値が０ｂでも１ｂでもよく値を見ない場合を表す。値を見ない場合、「Ｄｏｎ’ｔ  ｃａｒｅ」を入力し、値が必要な場合は入力しない。
【００４１】
図１０（ａ）において、状態遷移１０６は、ｓｉｇ＿ａの評価スタートタイミング時（立ち上がり時）、アサーション記述の対象となる信号ｓｉｇ＿ｂにおいて信号値１０４で設定した００ｂから、基準信号の遷移タイミングからの遅延１０７で設定した値１５ｃｌｋだけ遅延し、つぎの信号値１１０の０１ｂに遷移する。その後生成する信号の次の信号値のクロック幅１０８で設定した値２ｃｌｋだけ遷移した信号値を維持する。遷移１１２、１１５、１１８も同様の操作を繰り返し、ｅｎｄ設定されている信号値００ｂに遷移したときアサーションで定義する波形観測をストップする。なお、図１０（ｂ）に示すステートダイアグラムについても同様の内容を示す。
【００４２】
ここで、ステートダイアグラムの作成方法について説明する。図１１は、ステートダイアグラムの作成方法を示すフローチャートである。
【００４３】
まず、図１０（ａ）のステートダイアグラムにおいて、信号の同期クロックはｃｌｋなので「ｃｌｋ」を、ｓｉｇ＿ｂの状態数は４つなので「４」を、表示部３０のステートダイアグラム入力画面に従い、波形エディタを介してパラメータ変換部１３に入力する（ステップＳ１）。以降の処理においても波形エディタを介してパラメータ変換部１３に入力するが、単に「入力する」と記載する。つぎに、図１０（ａ）のステートダイアグラムのｓｉｇ＿ｂの状態値として「００ｂ、０１ｂ、１０ｂ、１１ｂ」を入力する（ステップＳ２）。
【００４４】
つぎに、図１０（ａ）のステートダイアグラムの評価スタートタイミング時（トリガタイミング時）の信号値は００ｂであるので、トリガタイミング時の信号値選択として「００ｂ」を選択する（ステップＳ３）。つぎに、図１０（ａ）の状態遷移１０６についての設定を行う。図１０（ａ）のステートダイアグラムの状態値００ｂの次の信号値は０１ｂであるので、遷移情報として遷移情報「００ｂ−＞０１ｂ」と、評価スタートタイミング条件１０３「ｓｉｇ＿ａ：ｓｅｔ  １ｂ」を入力する（ステップＳ４）。また、ステートダイアグラムのタイミング情報として、遅延情報「ｄｅｌａｙ＝１５」、クロック幅「ｌｏｏｐ＝２」、省略クロック数「ｏｍｉｔ＝１−１４」を入力し、図１０（ａ）のステートダイアグラムの状態遷移１０６を作成する（ステップＳ５）。
【００４５】
全ての状態値について情報入力が終了したかどうかを確認し（ステップＳ６）、終了していない場合（ステップＳ６：Ｎｏ）、他の遷移１１２、１１５についても同様の処理を行い、各状態値の遷移を設定する（ステップＳ３〜Ｓ５）。全ての状態値について情報入力が終了した後（ステップＳ６：Ｙｅｓ）、最後に、ｅｎｄへの状態遷移１１８とプロパティ名「ｐｒｏｐ＿Ｂ」を入力し、必要に応じて、「Ｄｏｎ’ｔ  ｃａｒｅ」を入力する（ステップＳ７）。その後、パラメータ変換部１３が、図１０（ａ）のステートダイアグラムを作成する（ステップＳ８）。パラメータ変換部１３が、作成したステートダイアグラムをパラメータリストに変換する。
【００４６】
なお、ｓｉｇ＿ｃの遷移を表す図１０（ｂ）のステートダイアグラムについても上記同様の処理（ステップＳ１〜Ｓ８）を実行し、ステートダイアグラムを作成できる。
【００４７】
また、アサーション部１０では、生成信号タイミング情報として、ステートダイアグラムの作成に使用するパラメータファイルを作成し、このパラメータファイルを入力した場合でも、ステートダイアグラムを作成することが可能である。この場合、パラメータ変換部１３が、ステートダイアグラムを作成するためのパラメータファイルをステートダイアグラムに変換し、さらに、ステートダイアグラムをパラメータリストに変換してから、タイミング情報デコーダ部１４へ出力する。
【００４８】
図１２は、ステートダイアグラムを作成するためのパラメータファイルを示す図である。パラメータ変換部１３は、図１２において「Ｃｌｋ：ｃｌｋ」が同期クロックを表しているので、図１０（ａ）のステートダイアグラムにおける同期クロック１０２を作成する。以下同様に、「Ｂａｓｅ＿ｓｉｇ＿ｎａｍｅ」はアサーション記述の対象となる信号の基準信号を表し、「Ｔｒｉｇｇｅｒ：ｓｅｔ  １ｂ」は基準信号における評価スタートタイミングであり、基準信号の０から１への変化点を評価スタートタイミングとするときは「ｓｅｔ  １ｂ」、１から０への変化点を評価スタートタイミングとするときは「ｓｅｔ  ０ｂ」とし、遷移条件１０３を作成する。「Ｃｒｅａｔｅ＿ｓｉｇ＿ｎａｍｅ：ｓｉｇ＿ｂ」はアサーション記述の対象となる信号名であり信号名１０１を作成する。
【００４９】
「Ｓｔａｔｅ：４」はアサーション記述の対象となる信号の状態数を表し、「Ｖａｌｕｅ：００ｂ、０１ｂ、１０ｂ、１１ｂ」はアサーション記述の対象となる信号の状態値であり状態値１０４、１１０、１１３、１１６を作成する。「Ｉｎｉ＿ｖａｌｕｅ：００ｂ」はアサーション記述の対象となる信号の評価開始時の状態値であり信号値１０４を設定する。「Ｅｎｄ＿ｖａｌｕｅ：１１ｂ」はアサーションで定義する波形観測をストップする値でありｅｎｄ設定の信号値１１９を作成する。「Ｔｒａｎｓ：００ｂ−＞０１ｂ、０１ｂ−＞１０ｂ、１０ｂ−＞１１ｂ、１１ｂ−＞ｅｎｄ」は信号の遷移であり状態遷移１０６、１１２、１１５、１１８を作成する。
【００５０】
「Ｄｅｌａｙ：１５、０、０、０」は上記Ｔｒａｎｓ（状態遷移）における遅延であり遅延１０７を作成する。「Ｌｏｏｐ：２、１、２、１」は上記Ｔｒａｎｓ（状態遷移）における信号値のクロック幅でありクロック幅１０８を作成する。「Ｏｍｉｔ：１−１４」は波形エディタ上での省略クロック幅であり省略クロック幅１０９を作成する。「Ｐｒｏｐ＿ｎａｍｅ：ｐｒｏｐ＿Ｂ」は生成するアサーション記述のプロパティ名であり、プロパティ名１２０を作成する。
【００５１】
パラメータ変換部１３は、上記処理により、ステートダイアグラムを生成するためのパラメータファイル（図１２参照）が入力された場合でも、当該パラメータファイルをステートダイアグラム（図１０（ａ）参照）に変換できる。
【００５２】
パラメータ変換部１３は、ステートダイアグラム、またはパラメータファイルから変換したステートダイアグラムを読み込み、図１０（ａ）の遷移条件１０３から図４（ａ）のパラメータリストにおける「Ｂａｓｅ＿ｓｉｇ＿ｎａｍｅ」および「Ｔｒｉｇｇｅｒ」を決定する。以下同様に、遷移条件１０３から「Ｃｒｅａｔｅ＿ｓｉｇ＿ｎａｍｅ」を、信号値１０４から「Ｉｎｉ＿ｖａｌｕｅ」を、遅延１０７から「Ｄｅｌａｙ」を、信号値１１０から「Ｖａｌｕｅ」を、クロック幅１０８から「Ｗｉｄｔｈ」を、省略クロック幅１０９から「Ｏｍｉｔ」を、プロパティ名１２０から「Ｐｒｏｐ＿ｎａｍｅ」を、信号値の設定１２１から「Ｄｏｎ’ｔ  ｃａｒｅ」を決定する。
【００５３】
これにより、図１０（ａ）のステートダイアグラムに対するパラメータリストとして、図１３に示すパラメータリストを生成し、図１０（ｂ）のステートダイアグラムに対するパラメータリストとして、図１４に示すパラメータリストを生成する。図１３（ａ）は、図１０（ａ）における１つ目の状態遷移１０６におけるパラメータリストである。以下、図１３（ｂ）は２つ目の状態遷移１１２におけるパラメータリスト、図１３（ｃ）は３つ目の状態遷移１１５におけるパラメータリスト、図１３（ｄ）は４つ目の状態遷移１１８におけるパラメータリストを表す。図１４（ａ）は、図１０（ｂ）における１つ目の状態遷移におけるパラメータリストである。以下、図１４（ｂ）は２つ目の状態遷移におけるパラメータリスト、図１４（ｃ）は３つ目の状態遷移におけるパラメータリスト、図１４（ｄ）は４つ目の状態遷移におけるパラメータリストを表す。
【００５４】
生成したパラメータリストに基づいて、アサーション記述の対象となる信号の波形の生成と表示、およびアサーション記述の生成を行う処理については、前述のパラメータリストを入力した場合と同様である。
【００５５】
なお、アサーション部１０に基準信号波形、同期クロック、および生成信号タイミング情報を入力し、波形およびアサーションを生成する際において、アサーション記述の対象となる信号の遷移の候補が複数存在する場合（パラメータリストの「Ｄｏｎ’ｔ  ｃａｒｅ」が１に設定されている場合）、波形生成部１７が、候補となる複数の遷移を波形エディタの画面に従って表示部３０に表示し、表示した候補となる複数の遷移から目的とする遷移を選択する。
【００５６】
例えば、ｓｉｇ＿ａに対してｓｉｇ＿ｂを生成し、ｓｉｇ＿ｂからｓｉｇ＿ｃ、ｓｉｇ＿ｃからｓｉｇ＿ｄを生成する場合、ｓｉｇ＿ａに対しｓｉｇ＿ｃ、ｓｉｇ＿ｄの遷移が規定されておらず、信号値は図１５（ａ）のようになる。図１５は、信号値情報の選択による遷移を示す図である。図１５（ａ）は、遷移候補表示前の信号値情報を示す図である。図１５（ｂ）は、遷移候補表示中の信号値情報を示す図である。図１５（ｃ）は、遷移候補選択後の信号値情報を示す図である。
【００５７】
ｓｉｇ＿ａに対するｓｉｇ＿ｃ、ｓｉｇ＿ｄの遷移情報が必要な場合、波形生成部１７は、規定されていない箇所を、信号のビット幅等から候補として挙げられる遷移を表示部３０に表示する。このとき、ｓｉｇ＿ｃ、ｓｉｇ＿ｄの２つの信号の候補を表示せず、１つ目の信号ｓｉｇ＿ｃのみの候補を表示、選択した後に、残りの信号であるｓｉｇ＿ｄの候補を表示、選択する。
【００５８】
規定されていない１つ目の信号ｓｉｇ＿ｃはビット幅が２であるため、図１６（ａ）に示すｓｉｇ＿ｃの候補として考えられる４つの波形１６１、１６２、１６３、１６４を波形生成部１７が表示部３０に表示する。図１６は、アサーション記述の対象となる信号の波形の選択による遷移を示す図である。図１６（ａ）は、ｓｉｇ＿ｃの波形について複数の候補を示す図である。図１６（ｂ）は、ｓｉｇ＿ｄの波形について複数の候補を示す図である。図１６（ｃ）は、全ての信号について選択後の波形を示す図である。
【００５９】
波形１６５は次の候補であるｓｉｇ＿ｄであり、ｓｉｇ＿ｃの選択をした後に候補を表示する。波形生成部１７は、４つの候補の中から目的とする遷移を選択する。目的とするｓｉｇ＿ｃの遷移が図１６（ａ）の１６２の遷移だった場合、選択された１６２のｓｉｇ＿ｃの遷移をタイミング情報デコーダ部１４が図１５（ｂ）に示す信号値情報にデコードし、タイミング情報データ保存部１５に保存する。
【００６０】
１つ目の信号ｓｉｇ＿ｃの候補を選択した後で、つぎの候補であるｓｉｇ＿ｄの信号値の遷移を図１６（ｂ）の１６６、１６７のように表示し、選択する。ｓｉｇ＿ｄの目的とする遷移が１６７の遷移だった場合、波形生成部１７は、図１６（ｃ）に示す選択後の波形を表示部３０に表示する。また、タイミング情報デコーダ部１４が、選択された１６７のｓｉｇ＿ｄの遷移を図１５（ｃ）に示す信号値情報にデコードし、タイミング情報データ保存部１５に保存する。
【００６１】
デコードした信号値情報から、規定されていないパラメータ「Ｉｎｉ＿ｖａｌｕｅ」、「Ｄｅｌａｙ」について、評価スタートタイミング時の信号値を、図１５（ｃ）の評価スタートタイミング時のクロックから読み取り、パラメータリストのパラメータ「Ｉｎｉ＿ｖａｌｕｅ」を生成し、ｓｉｇ＿ｃの遅延は、ｓｉｇ＿ｂのｓｉｇ＿ａからの遅延とｓｉｇ＿ｃのｓｉｇ＿ｂからの遅延を加えることでパラメータ「Ｄｅｌａｙ」を作成し、ｓｉｇ＿ｄの遅延はｓｉｇ＿ｃのｓｉｇ＿ａからの遅延とｓｉｇ＿ｄのｓｉｇ＿ｃからの遅延を加えることでパラメータ「Ｄｅｌａｙ」を作成する。このように、アサーション記述の対象となる信号の遷移の候補が複数存在する場合でも、波形生成部１７が表示した候補の中から容易に選択することができる。
【００６２】
以上説明したように、本実施の形態では、アサーション記述生成装置に入力した基準信号波形、同期クロック、および生成信号タイミング情報に基づいて、アサーション記述およびアサーション記述の対象となる信号の波形を生成できることとした。これにより、信号波形に基づいて設計仕様を確認できるため、アサーション記述の文法を理解していない者でも、設計仕様と生成されたアサーション記述が一致しているかどうかを容易に確認することができる。
【００６３】
また、アサーション記述生成装置１はシミュレーションを行うことができる。アサーション記述生成装置１では、シミュレーション部２０のシミュレーション実行部２１が、基準信号波形、同期クロック、および生成信号タイミング情報に基づいてシミュレーションを実行し、シミュレーション結果を０、１の信号値情報にする。つぎに、比較部２２が、シミュレーション実行部２１からの信号値情報と、アサーション部１０のタイミング情報データ保存部１５および基準信号波形データ保存部１２の信号値情報との比較を行い、比較結果（エラー情報等）を出力する。
【００６４】
図１７は、パラメータリストから生成した信号値情報の構成例を示す図である。図１７（ａ）はプロパティ名「Ｐｒｏｐ１」のアサーションが確認する範囲、図１７（ｂ）はプロパティ名「Ｐｒｏｐ２」のアサーションが確認する範囲、図１７（ｃ）はプロパティ名「Ｐｒｏｐ３」のアサーションが確認する範囲である。
【００６５】
図１８は、シミュレーション実施後のクロックと各信号の時系列を表した信号値情報を示す図である。図１７（ａ）と１８１の範囲を、図１７（ｂ）と１８２の範囲を、図１７（ｃ）と１８３の範囲を、それぞれ比較する。例えば、比較した結果、期待値エラーが発生した箇所が１８４で示す箇所である。
【００６６】
アサーション記述生成装置１は、図１８のシミュレーション結果の１８２と図１７（ｂ）で示す信号値が異なっているため、期待値エラーが発生したプロパティ名「Ｐｒｏｐ２」を表示部３０に表示する。
【００６７】
このように、アサーション記述生成装置１は、波形生成に使用する信号値情報を利用してシミュレーション結果と比較することができる。そのため、シミュレーション部がアサーション解読プロセスを省略できるので、高速なシミュレーションが可能となる。
【産業上の利用可能性】
【００６８】
以上のように、本発明にかかるアサーション記述生成装置は、アサーションベース検証に有用であり、特に、アサーション記述を自動生成する装置として適している。
【符号の説明】
【００６９】
１  アサーション記述生成装置
１０  アサーション部
１１  基準信号波形デコーダ部
１２  基準信号波形データ保存部
１３  パラメータ変換部
１４  タイミング情報デコーダ部
１５  タイミング情報データ保存部
１６  データマージ部
１７  波形生成部
１８  アサーション生成部
２０  シミュレーション部
２１  シミュレーション実行部
２２  比較部
３０  表示部
【図１】
2010205157.tif 000003
【図２】
2010205157.tif 000004
【図３】
2010205157.tif 000005
【図４】
2010205157.tif 000006
【図５】
2010205157.tif 000007
【図６】
2010205157.tif 000008
【図７】
2010205157.tif 000009
【図８】
2010205157.tif 000010
【図９】
2010205157.tif 000011
【図１０】
2010205157.tif 000012
【図１１】
2010205157.tif 000013
【図１２】
2010205157.tif 000014
【図１３】
2010205157.tif 000015
【図１４】
2010205157.tif 000016
【図１５】
2010205157.tif 000017
【図１６】
2010205157.tif 000018
【図１７】
2010205157.tif 000019
【図１８】
2010205157.tif 000020