(57)【特許請求の範囲】
【請求項１】
複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、上記仕様記述から上記検証装置を生成する
ことを特徴とするハードウェア設計の正しさを監視する検証装置。
【請求項２】
それぞれの局所変数に対して過去の一定期間に書き込まれた観測値に関連する変数を記憶する履歴バッファを設け、履歴バッファに書き込まれた変数を局所変数とし、上記仕様記述に基づき検証装置を構成する
ことを特徴とする請求項１のハードウェア設計の正しさを監視する検証装置。
【請求項３】
単一のトランザクションを監視する順序機械をＮ個設け、該順序機械と、それらの動作開始を制御するスケジューラを組み合わせ、上記仕様記述に基づきＮ個の順序機械とスケジューラの動作を定めて検証装置を構成する
ことを特徴とする請求項１のハードウェア設計の正しさを監視する検証装置。
【請求項４】
同時実行する可能性のあるトランザクション数の上界Ｎを仕様記述から求め、単一のトランザクションを監視する順序機械Ｎ個とそれらの動作開始を制御するスケジューラを組み合わせる
ことを特徴とする請求項３のハードウェア設計の正しさを監視する検証装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハードウェア設計の論理を検証する検証装置に関し、特に、複数のトランザクションをパイプライン的に並行して実行するハードウェアにおいて、汎用の論理シミュレータ等で利用可能な論理検証装置に関するものである。
【０００２】
【従来の技術】
ハードウェア設計の論理を検証する場合、検証の対象となるハードウェア設計は、論理シミュレータ等の検証環境の上で模擬的に実行される。その際には、検証対象であるハードウェア設計記述に加えて、以下の機構が必要である。
(i) ハードウェアへの試験入力パターンを発生する機構
(ii)ハードウェアの動作の正しさを監視する機構
これらは、図１１に示すように、検証環境の外部に置かれる場合と、図１２に示すように、検証環境の内部に置かれる場合、および、その組み合わせの場合がある。
検証環境の外部に置く場合、検証対象の入力端子への入力値や検証対象の観測点（出力端子や内部信号線）の値は検証環境の外部インタフェースを介して制御あるいは観測される。検証環境の内部に置く場合、入力パターン発生機構や動作監視機構は検証対象と同様に検証環境内で模擬実行される。
【０００３】
複数のトランザクションをパイプライン的に並行して実行するハードウェアの仕様は、トランザクションを中心として表現されることが多い。
例えば、図１３（ａ）に示すクロック信号ＣＬＫ、入力ＴＩＮ、出力ＴＯＵＴを持つハードウェアＭ１において、図１３（ｂ）に示すように「ＴＩＮに１が入力されると２から４サイクル後にＴＯＵＴから１が出力される」という仕様があったとする。
１回のＴＩＮの入力に対する１回のＴＯＵＴの出力までの一連の流れをトランザクションと見ると、このトランザクションの仕様は図１４のように表現することができる。ここで、ｗａｉｔ（ｍ，ｎ）はｍサイクルからｎサイクルの範囲の時間経過を示している。
正しいトランザクションの集合あるいは不正なトランザクションの集合の指定によっても、仕様を表現することができる。
【０００４】
ハードウェアのトランザクションのような時系列の集合を表す一般的な形式として、正規表現がある。正規表現は入力記号の時系列の集合を表す。例えばＭ１における入力記号は、２つの観測点ＴＩＮ、ＴＯＵＴの値の組から成る(0,0) 、(0,1) 、(1,0) 、(1,1) の４つである。基本となる正規表現は、下の(i) ，(ii ) から出発して(iii) を有限回繰り返すことによって定義される。
(i) 「ε」は長さ０の時系列の集合を示す正規表現
(ii ) 「ａ」（ａは入力記号）は、記号ａだけから成る長さ１の時系列の集合を示す正規表現
(iii) Ｒ，Ｓを正規表現とするとき
「Ｒ｜Ｓ」（ＲとＳの和）はＲとＳの和集合を意味する正規表現
「ＲＳ」（ＲとＳの連結）はＲの任意の要素とＳの任意の要素を連結した時系列の集合を意味する正規表現
「Ｒ＊」は０個以上のＲの連結を意味する正規表現（０個の場合はε）
【０００５】
Ｍ１の仕様に対する不正なトランザクションは、「ＴＩＮに１が入力された後、２から４サイクルの間ＴＯＵＴから１が出力されない（〜ＴＯＵＴ）」という時系列である。これは、正規表現を用いると図１５のように書ける。ここでは、以下の簡略記法を用いている。ここで、「．」は長さ１の任意の時系列の集合を表す正規表現、「〔ｆ〕」は条件式ｆを満たす長さ１の時系列の集合を表す正規表現、「Ｒ｛ｎ｝」はｎ個のＲの連結を意味する正規表現である。
この例では、「. 」は((0,0)｜(0,1) ｜(1,0) ｜(1,1))と等価、〔ＴＩＮ〕は((1,0)｜(1,1))と等価、〔〜ＴＯＵＴ〕は((0,0)｜(1,0))と等価、〔〜ＴＯＵＴ〕｛３｝は（〔〜ＴＯＵＴ〕〔〜ＴＯＵＴ〕〔〜ＴＯＵＴ〕）と等価である。
正規表現は非決定性有限オートマトンに対応している。例えば図１５の正規表現は図１６の非決定性有限オートマトンに対応している。図中でラベルのない枝（Ｓ０→Ｓ０とＳ１→Ｓ２）は任意の条件で遷移できることを示している。開始状態はＳ０から遷移して受理状態Ｓ５に到達すると、そこまでの時系列は不正パターンである。
【０００６】
非決定性有限オートマトンをハードウェア記述言語（ＨＤＬ）で実装する方法の一つは、ｎ個の非決定的状態に対してｎビットのレジスタを用意し、複数の可能性のあるオートマトン状態に対して対応するビット位置のレジスタが同時に１となるような論理を構成することである。
図１６の非決定性有限オートマトンをＨＤＬで実装した例を図１７に示す。このＨＤＬは、論理検証時の動作監視機構として利用することができる。
【０００７】
【発明が解決しようとする課題】
図１１に示したように入力パターン発生機構や動作監視機構を検証環境の外部に置く場合、それらと検証環境の外部インタフェースの間でデータの受け渡しが必要になる。その方法は検証環境に依存するため、同じ入力パターン発生機構や動作監視機構を異なる検証環境の間で流用することが難しい。
また、特に専用ハードウェアを用いた高速なエミュレーション環境においては、検証環境の外部とのデータの受け渡し処理が実行時間のボトルネックとなるという問題が発生している。
また、図１２に示したように入力パターン発生機構や動作監視機構を検証環境の内部に置く場合、それらは一般的な検証環境内で処理可能な形式、すなわちＨＤＬで記述された順序機械モデルなければならない。
しかし、複数のトランザクションをパイプライン的に並行して実行するハードウェアの仕様は直接ＨＤＬを用いて仕様記述することが難しく、トランザクションを中心とした仕様記述が適している。
【０００８】
前記図１３に示したような簡単な例（図１３のＭ１）では、オートマトンの技術を用いることにより、トランザクションを中心とした仕様記述をＨＤＬによる順序機械モデルに変換することができた。
ところが、多ビット幅のデータを含んだような仕様においては、単純に同じ手法を用いることができない。
例として図１８（ａ）に示すハードウェアＭ２について考える。ＤＩＮおよびＤＯＵＴは同じビット幅を持つ入力および出力である。仕様は図１８（ｂ）に示すように「ＴＩＮに１が入力されると２から４サイクル後にＴＯＵＴから１が出力される」ということに加えて、「ＴＩＮと同時にＤＩＮからデータが入力され、それと同じ値が、対応するＴＯＵＴの出力と同時にＤＯＵＴから出力される」というものである。
簡単な例として、ＤＩＮおよびＤＯＵＴのビット幅が２の場合、すなわち０から３までの整数値を取る場合について考える。その場合の仕様は、図１３に示したＭ１の仕様と同様に図１９や図２０のように表現できる。
これは図２１のオートマトンに対応しており、Ｓ０〜Ｓ１７の内、Ｓ５を除いた１７ビットのレジスタを用いれば、ＨＤＬによる順序機械モデルに変換することができる。
この場合の問題点は、変換にかかる計算コストと変換の結果であるＨＤＬが効率的でないことである。データのビット幅をｎとするとき、オートマトンの状態数は、ほぼ２ｎに比例することになる。
したがってＨＤＬの記述量も２ｎに比例することになり、通常、この方法は実用にならない。
以上のように、複数のトランザクションをパイプライン的に並行して実行するハードウェアにおいては、トランザクションを中心とした仕様記述を簡易にＨＤＬによる順序機械モデルに変換することは困難であるといった問題があった。
本発明は上記事情に鑑みなされたものであって、本発明の目的は、複数のトランザクションをパイプライン的に並行して実行するハードウェアにおいて、汎用の論理シミュレータ等で利用可能な順序機械モデルを簡潔な仕様記述から生成できるようにすることである。
【０００９】
【課題を解決するための手段】
上記課題を解決するため、本発明においては、複数のトランザクションを並行して実行するハードウェアの仕様をトランザクションを中心とした表現で仕様記述とし、それを順序機械モデルに自動変換する。
上記仕様記述では、それぞれのトランザクションに関する開始時刻から終了時刻までの各時刻の動作が規定される。その際、各トランザクションに対して局所的な変数へのデータの一時保存と参照が許される。
すなわち、検証対象となるハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数とし、図１（ａ）に示すように、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述１とし、この仕様記述１から変換機構２により、順序機械としての検証装置３を生成する。
また、図１（ｂ）に示すように、上記仕様記述から順序機械のＨＤＬ記述４を生成し、検証対象のハードウェア設計のＨＤＬ記述５と組み合わせて論理検証を行う。
上記において、それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作の表現として、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用いることができる。
【００１０】
また、本発明は以下のように実現される。
（１）それぞれの局所変数に対して過去の一定期間に書き込まれた観測値に関連する変数を記憶する履歴バッファを設け、仕様記述から履歴バッファの大きさを決定し、履歴バッファに書き込まれた変数を局所変数とし、履歴バッファ構造を持つ検証装置を構成する。
（２）単一のトランザクションを監視する順序機械をＮ個設け、該順序機械と、それらの動作開始を制御するスケジューラを組み合わせ、上記仕様記述に基づきＮ個の順序機械とスケジューラの動作を定めて検証装置を構成する。
（３）上記（２）において、同時実行する可能性のあるトランザクション数の上界Ｎを仕様記述から求め、単一のトランザクションを監視する順序機械Ｎ個とそれらの動作開始を制御するスケジューラを組み合わせる。
ここで、トランザクション数とは、ある一連の処理の開始から終了までをトランザクション数とすると、ある一連の処理の開始から終了の間に同時に実行される処理数である。例えば、前記図１８（ｂ）の例では、トランザクション数は２である。
また、追加情報として与えられた同時実行可能なトランザクション数のＮs と、仕様記述から求められた同時実行可能なトランザクション数の上界Ｎc のうち小さい方をＮとし、単一のトランザクションを監視する順序機械Ｎ個とそれらの動作開始を制御するスケジューラを組み合わせるようにしてもよい。
（４）上記仕様記述から、検証装置は以下のように生成することができる。
(i) それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作の表現として、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用い、該正規表現を１単位時間毎の動作に展開し、
(ii)展開した正規表現について、各局所変数の書き込みから参照までの時間を求め、
(iii) 参照を行っている局所変数の参照までの時間に対応した履歴データを作成し、該履歴データを上記１単位時間毎の動作に展開された正規表現の参照に置き換え、
(iv)上記置き換えられた正規表現から、上記ハードウェア設計の正しさを監視する検証装置を生成する。
以上のように、本発明においては、トランザクション中心の仕様記述に局所変数の機能を追加しており、このため、従来より仕様を簡潔に表現することができる。また、そこから生成される順序機械モデルおよびそのＨＤＬ表現も実用的な規模とすることができる。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を前記図１８に示したＭ２について説明する。
図１８に示したＭ２の仕様をトランザクションに関する局所変数Ｘを用いて表現したものを図２（ａ）に示す。この場合、記述量はＤＩＮおよびＤＯＵＴのビット幅に依存しない。
これはまた、不正パターン指定の方法により、図２（ｂ）に示すように正規表現的な記述とすることも可能である。ただし、局所変数の導入により、図２（ｂ）の仕様記述は、Ｘ＝ＤＩＮ（ＸへのＤＩＮの代入）があるため、正規表現の定義から外れている。したがって、このまま従来のオートマトンの技術を用いた変換を適用することはできない。
【００１２】
そこで、本発明の第１の実施例では履歴バッファを導入する。
図２（ｂ）の正規表現において、Ｘへの値の保存からその参照までの時間経過の最大値は４である。したがって、この場合、深さ４の履歴バッファを用いれば良い。
例えば図３に示すように、Ｘ１からＸ４までの、ＤＩＮと同じビット幅を持ったレジスタ群を用意する。これらは、１サイクル毎にデータを次のレジスタに送るパイプライン構造であり、Ｘｔはｔサイクル前のＤＩＮのデータを保持していることになる。
この履歴バッファを前提にすれば、図２（ｂ）の仕様記述を次のように書き換えることができる。
．＊〔ＴＩＮ〕．〔〜（ＴＯＵＴ  ＆  ＤＯＵＴ＝＝Ｘ２）〕
〔〜（ＴＯＵＴ  ＆  ＤＯＵＴ＝＝Ｘ３）〕〔〜（ＴＯＵＴ  ＆  ＤＯＵＴ＝＝Ｘ４）〕
これは正規表現であるので、オートマトンの技術を用いて、図４に示すように順序機械モデルに変換することができる。
【００１３】
図５に、上記履歴バッファを用いて実現した場合の構成例を示す。
同図において、１１は図３に示した履歴バッファ、１２は仕様記述から生成される動作チェッカである。履歴バッファ１１は前記したようにＤＩＮと同じビット幅を持つレジスタ群からなり、１クロック入力される毎に（１単位時間毎に）、履歴バッファ１１に入力されたＤＩＮは次のレジスタに転送される。履歴バッファ１１で保持された各単位時間毎のＤＩＮは、Ｘ２，Ｘ３，Ｘ４として検証装置１２に入力される。
また、動作チェッカ１２には、ＴＩＮ，ＴＯＵＴ，ＤＯＵＴが入力され、動作チェッカ１２は上記入力に基づき、与えられた仕様を満足するかを監視する。
【００１４】
図６は履歴バッファを用いる場合の検証装置生成のための処理フローであり、同図により本実施例の検証装置の生成処理を説明する。
まず、図２（ｂ）に示した拡張正規表現（局所変数使用の機能を拡張した正規表現）を１単位時間毎の動作に展開する。
すなわち、図２（ｂ）に示す拡張正規表現を次のように展開する（変数をＸとする）。
．＊〔ＴＩＮ；Ｘ＝ＤＩＮ〕．〔〜（ＴＯＵＴ  ＆  ＤＯＵＴ＝＝Ｘ）〕
〔〜（ＴＯＵＴ  ＆  ＤＯＵＴ＝＝Ｘ）〕〔〜（ＴＯＵＴ  ＆  ＤＯＵＴ  ＝＝Ｘ）〕
次いで、局所変数を一つ選択し、Ｘの書き込みから参照までの時間の最大値ｍを求める。図５の場合はｍ＝４である。
Ｘへの書き込みデータを入力とする深さｍの履歴バッファを作成し、その出力をＸ〔１〕，Ｘ〔１〕，…，Ｘ〔ｍ〕とする。
【００１５】
次に、上記展開式において、Ｘへの書き込み動作の記述を削除し、Ｘの参照動作の記述をそれぞれについてＸ〔ｔ〕に置換する（ｔは書き込みから参照までの時間）。そして、局所変数が残っているかを調べ、残っていれば、上記処理を繰り返す。
これにより、前記図１８に示したＭ２の例では前記した以下の正規表現が得られる。
．＊〔ＴＩＮ〕．〔〜（ＴＯＵＴ  ＆  ＤＯＵＴ＝＝Ｘ２）〕
〔〜（ＴＯＵＴ  ＆  ＤＯＵＴ＝＝Ｘ３）〕〔〜（ＴＯＵＴ  ＆  ＤＯＵＴ＝＝Ｘ４）〕
上記のような正規表現が得られたら、該正規表現を順序機械に変換し、動作チェッカを構成する。なお、正規表現から順序機械への変換は、従来から知られた種々の手法を用いることができる。
次いで、履歴バッファと、上記のようにして生成した動作チェッカを組み合わせ、検証装置を生成する。
図７に、上記のようにして生成されたＭ２の不正パターンを検出するための順序機械のＨＤＬ記述を示す。
【００１６】
上記実施例は履歴バッファを用いて検証装置を構成する場合であるが、同時に実行されるトランザクション数の最大値Ｎがわかっている場合には、単一のトランザクションを監視する順序機械Ｎ個を使ってモデルを実現することもできる。その際には、スケジューラの機構と組合せて全体を構成する。
図８にＮ個の監視機構とスケジューラを用いて実現した本発明の第２の実施例の検証装置の構成例を示す。
図８において、スケジューラ２１は図２（ａ）の仕様におけるＴＩＮのようなトランザクション開始条件を監視し、Ｎ個の動作チェッカ２２−１〜２２−ｎのうち休止中のものに動作を割り当てる働きをする。また、Ｎ個の各動作チェッカ２２−１〜２２−ｎは、それぞれ単一のトランザクションを監視する。
すなわち、スケジューラ２１はＴＩＮが入力されると、空いている動作チェッカを起動する。起動された動作チェッカ２２−１〜２２−ｎは、上記ＴＩＮに対応したトランザクションについて、与えられた仕様を満足するかを監視する。
【００１７】
ここで、同時に実行されるトランザクション数の上界の一つは、トランザクションの長さの最大値である。Ｎの値にはこれを用いても良いし、さらに仕様を解析してより小さな上界を求めても良い。
仕様によってＮの値が制限されている場合には、追加情報として外部から与えても良い。その際には、実際に仕様上の値Ｎを越えてしまう場合を検出して警告するようなチェック機構を加えておくこともできる。すなわち、図８においてスケジューラ２１によりＮを監視し、動作チェッカ２２−１〜２２−ｎの数を越えたＴＩＮが入力されたとき、警告を出力するようにしてもよい。
また、外部から与えられた値と仕様の解析により求められた値のうち小さい方のＮの値を用いてもよい。すなわち、追加情報として与えられた同時実行可能なトランザクション数のＮs と、仕様記述から求められた同時実行可能なトランザクション数の上界Ｎc のうち小さい方をＮとするようにしてもよい。
【００１８】
図９は、上記スケジューラを用いる場合の検証装置生成の処理フローである。
同図に示すように、まず、トランザクションの仕様を起動条件部と実行部に分解する。そして、起動条件からスケジューラを構成する。
ついで、実行部から動作チェッカをＮ個構成し、スケジューラとＮ個の動作チェッカを組み合わせて、検証装置を生成する。
図１０に上記のようにして生成されたＭ２の不正パターンを検出する順序機械のＨＤＬ記述を示す。
【００１９】
（付記１）  複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、
上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
上記仕様記述から上記検証装置を生成する
ことを特徴とするハードウェア設計の正しさを監視する検証装置。
（付記２）  それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作の表現として、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用いる
ことを特徴とする付記１のハードウェア設計の正しさを監視する検証装置。
（付記３）  それぞれの局所変数に対して過去の一定期間に書き込まれた観測値に関連する変数を記憶する履歴バッファを設け、履歴バッファに書き込まれた変数を局所変数とし、上記仕様記述に基づき検証装置を構成する
ことを特徴とする付記１または付記２のハードウェア設計の正しさを監視する検証装置。
（付記４）  単一のトランザクションを監視する順序機械をＮ個設け、該順序機械と、それらの動作開始を制御するスケジューラを組み合わせ、
上記仕様記述に基づきＮ個の順序機械とスケジューラの動作を定めて検証装置を構成する
ことを特徴とする付記１または付記２のハードウェア設計の正しさを監視する検証装置。
（付記５）  同時実行する可能性のあるトランザクション数の上界Ｎを仕様記述から求め、
単一のトランザクションを監視する順序機械Ｎ個とそれらの動作開始を制御するスケジューラを組み合わせる
ことを特徴とする付記５のハードウェア設計の正しさを監視する検証装置。
（付記６）  追加情報として与えられた同時実行可能なトランザクション数のＮs と、
仕様記述から求められた同時実行可能なトランザクション数の上界Ｎc のうち小さい方をＮとし、
単一のトランザクションを監視する順序機械Ｎ個とそれらの動作開始を制御するスケジューラを組み合わせる
ことを特徴とする付記４のハードウェア設計の正しさを監視する検証装置。
（付記７）  複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証方法であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、
上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
上記仕様記述から上記検証装置を生成し、
当該ハードウェア設計の設計記述と組み合わせて論理検証をする
ことを特徴とするハードウェア設計の正しさを監視する検証方法。
（付記８）  複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムであって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作を、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用いて表現し、
上記プログラムは、上記正規表現を１単位時間毎の動作に展開する処理と、
展開した正規表現について、各局所変数の書き込みから参照までの時間を求める処理と、
参照を行っている局所変数の参照までの時間に対応した履歴データを作成し、
該履歴データを上記１単位時間毎の動作に展開された正規表現の参照に置き換える処理と、
上記置き換えられた正規表現から、上記ハードウェア設計の正しさを監視する検証装置を生成する処理をコンピュータに実行させ検証装置を生成する
ことを特徴とするハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラム。
（付記９）  複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムであって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
上記プログラムは、トランザクションの仕様を起動条件部と実行部に分解する処理と、
上記起動条件からスケジューラを構成する処理と、
実行部から動作チェッカをＮ個構成する処理と、
上記スケジューラとＮ個の動作チェッカを組み合わせて、検証装置を生成する処理をコンピュータに実行させ検証装置を生成する
ことを特徴とするハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラム。
（付記１０）  複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムを記録した記録媒体であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作を、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用いて表現し、
上記プログラムは、上記正規表現を１単位時間毎の動作に展開する処理と、
展開した正規表現について、各局所変数の書き込みから参照までの時間を求める処理と、
参照を行っている局所変数の参照までの時間に対応した履歴データを作成し、
該履歴データを上記１単位時間毎の動作に展開された正規表現の参照に置き換える処理と、
上記置き換えられた正規表現から、上記ハードウェア設計の正しさを監視する検証装置を生成する処理をコンピュータに実行させ検証装置を生成する
ことを特徴とするハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムを記録した記録媒体。
（付記１１）  複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムを記録した記録媒体であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
上記プログラムは、トランザクションの仕様を起動条件部と実行部に分解する処理と、
上記起動条件からスケジューラを構成する処理と、
実行部から動作チェッカをＮ個構成する処理と、
上記スケジューラとＮ個の動作チェッカを組み合わせて、検証装置を生成する処理をコンピュータに実行させ検証装置を生成する
ことを特徴とするハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムを記録した記録媒体。
【００２０】
【発明の効果】
以上説明したように、本発明においては、複数のトランザクションをパイプライン的に並行して実行するハードウェアにおいて、検証対象となるハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数とし、ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、この仕様記述から検証装置を生成するようにしたので、汎用の論理シミュレータ等で利用可能な順序機械モデルを簡潔な仕様記述から生成することができる。
このため、従来の同等なものを手作業で実装する方法に比べ、作業工数、実装誤りの可能性、再利用性などの面において、実用的には極めて有用である。
【図面の簡単な説明】
【図１】本発明の概要を説明する図である。
【図２】局所変数Ｘを用いて表したＭ２の仕様記述と不正パターン指定によるＭ２の仕様記述を示す図である。
【図３】本発明の第１の実施例における履歴バッファの構造を示す図である。
【図４】Ｍ２の不正パターンを検出する非決定性有限オートマトンを示す図である。
【図５】履歴バッファを用いて実現した本発明の第１の実施例の検証装置の構成例を示す図である。
【図６】履歴バッファを用いる場合の検証装置生成のための処理フローである。
【図７】Ｍ２の不正パターンを検出するための順序機械のＨＤＬ記述（履歴バッファを用いる場合）を示す図である。
【図８】Ｎ個の監視機構とスケジューラを用いて実現した本発明の第２の実施例の検証装置の構成例を示す図である。
【図９】スケジューラを用いる場合の検証装置生成の処理フローである。
【図１０】Ｍ２の不正パターンを検出するための順序機械のＨＤＬ記述（スケジューラを用いる場合）を示す図である。
【図１１】論理検証手法の例（１）を示す図である。
【図１２】論理検証手法の例（２）を示す図である。
【図１３】ハードウェアＭ１の仕様の概略を示す図である。
【図１４】図１３に示すＭ１の仕様記述を示す図である。
【図１５】不正パターン指定の正規表現による図１３に示すＭ１の仕様記述を示す図である。
【図１６】Ｍ１の不正パターンを検出する非決定性有限オートマトンを示す図である。
【図１７】Ｍ１の不正パターンを検出する順序機械のＨＤＬ記述を示す図である。
【図１８】ハードウェアＭ２の仕様の概略（多ビット幅のデータを含んだ仕様）を示す図である。
【図１９】図１８に示すＭ２の仕様記述（データ幅２の場合）を示す図である。
【図２０】不正パターン指定の表現による図１８に示すＭ２の仕様記述（データ幅２の場合）を示す図である。
【図２１】Ｍ２の不正パターンを検出する非決定性有限オートマトン（データ幅２の場合）を示す図である。
【符号の説明】
１                  仕様記述
２                  変換機構
３                  検証装置
４                  仕様記述から生成したＨＤＬ記述
５                  検証対象ハードウェア設計のＨＤＬ記述
１１                履歴バッファ
１２                動作チェッカ
２１                スケジューラ
２２−１〜２２−ｎ  動作チェッカ
【図１】
0003945996.tif 000002
【図２】
0003945996.tif 000003
【図３】
0003945996.tif 000004
【図４】
0003945996.tif 000005
【図５】
0003945996.tif 000006
【図６】
0003945996.tif 000007
【図７】
0003945996.tif 000008
【図８】
0003945996.tif 000009
【図９】
0003945996.tif 000010
【図１０】
0003945996.tif 000011
【図１１】
0003945996.tif 000012
【図１２】
0003945996.tif 000013
【図１３】
0003945996.tif 000014
【図１４】
0003945996.tif 000015
【図１５】
0003945996.tif 000016
【図１６】
0003945996.tif 000017
【図１７】
0003945996.tif 000018
【図１８】
0003945996.tif 000019
【図１９】
0003945996.tif 000020
【図２０】
0003945996.tif 000021
【図２１】
0003945996.tif 000022