JP3945996B2 - 並行動作するハードウェア設計の検証装置 - Google Patents
並行動作するハードウェア設計の検証装置 Download PDFInfo
- Publication number
- JP3945996B2 JP3945996B2 JP2001141288A JP2001141288A JP3945996B2 JP 3945996 B2 JP3945996 B2 JP 3945996B2 JP 2001141288 A JP2001141288 A JP 2001141288A JP 2001141288 A JP2001141288 A JP 2001141288A JP 3945996 B2 JP3945996 B2 JP 3945996B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- hardware
- correctness
- verification
- monitoring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
【発明の属する技術分野】
本発明は、ハードウェア設計の論理を検証する検証装置に関し、特に、複数のトランザクションをパイプライン的に並行して実行するハードウェアにおいて、汎用の論理シミュレータ等で利用可能な論理検証装置に関するものである。
【0002】
【従来の技術】
ハードウェア設計の論理を検証する場合、検証の対象となるハードウェア設計は、論理シミュレータ等の検証環境の上で模擬的に実行される。その際には、検証対象であるハードウェア設計記述に加えて、以下の機構が必要である。
(i) ハードウェアへの試験入力パターンを発生する機構
(ii)ハードウェアの動作の正しさを監視する機構
これらは、図11に示すように、検証環境の外部に置かれる場合と、図12に示すように、検証環境の内部に置かれる場合、および、その組み合わせの場合がある。
検証環境の外部に置く場合、検証対象の入力端子への入力値や検証対象の観測点(出力端子や内部信号線)の値は検証環境の外部インタフェースを介して制御あるいは観測される。検証環境の内部に置く場合、入力パターン発生機構や動作監視機構は検証対象と同様に検証環境内で模擬実行される。
【0003】
複数のトランザクションをパイプライン的に並行して実行するハードウェアの仕様は、トランザクションを中心として表現されることが多い。
例えば、図13(a)に示すクロック信号CLK、入力TIN、出力TOUTを持つハードウェアM1において、図13(b)に示すように「TINに1が入力されると2から4サイクル後にTOUTから1が出力される」という仕様があったとする。
1回のTINの入力に対する1回のTOUTの出力までの一連の流れをトランザクションと見ると、このトランザクションの仕様は図14のように表現することができる。ここで、wait(m,n)はmサイクルからnサイクルの範囲の時間経過を示している。
正しいトランザクションの集合あるいは不正なトランザクションの集合の指定によっても、仕様を表現することができる。
【0004】
ハードウェアのトランザクションのような時系列の集合を表す一般的な形式として、正規表現がある。正規表現は入力記号の時系列の集合を表す。例えばM1における入力記号は、2つの観測点TIN、TOUTの値の組から成る(0,0) 、(0,1) 、(1,0) 、(1,1) の4つである。基本となる正規表現は、下の(i) ,(ii ) から出発して(iii) を有限回繰り返すことによって定義される。
(i) 「ε」は長さ0の時系列の集合を示す正規表現
(ii ) 「a」(aは入力記号)は、記号aだけから成る長さ1の時系列の集合を示す正規表現
(iii) R,Sを正規表現とするとき
「R|S」(RとSの和)はRとSの和集合を意味する正規表現
「RS」(RとSの連結)はRの任意の要素とSの任意の要素を連結した時系列の集合を意味する正規表現
「R*」は0個以上のRの連結を意味する正規表現(0個の場合はε)
【0005】
M1の仕様に対する不正なトランザクションは、「TINに1が入力された後、2から4サイクルの間TOUTから1が出力されない(〜TOUT)」という時系列である。これは、正規表現を用いると図15のように書ける。ここでは、以下の簡略記法を用いている。ここで、「.」は長さ1の任意の時系列の集合を表す正規表現、「〔f〕」は条件式fを満たす長さ1の時系列の集合を表す正規表現、「R{n}」はn個のRの連結を意味する正規表現である。
この例では、「. 」は((0,0)|(0,1) |(1,0) |(1,1))と等価、〔TIN〕は((1,0)|(1,1))と等価、〔〜TOUT〕は((0,0)|(1,0))と等価、〔〜TOUT〕{3}は(〔〜TOUT〕〔〜TOUT〕〔〜TOUT〕)と等価である。
正規表現は非決定性有限オートマトンに対応している。例えば図15の正規表現は図16の非決定性有限オートマトンに対応している。図中でラベルのない枝(S0→S0とS1→S2)は任意の条件で遷移できることを示している。開始状態はS0から遷移して受理状態S5に到達すると、そこまでの時系列は不正パターンである。
【0006】
非決定性有限オートマトンをハードウェア記述言語(HDL)で実装する方法の一つは、n個の非決定的状態に対してnビットのレジスタを用意し、複数の可能性のあるオートマトン状態に対して対応するビット位置のレジスタが同時に1となるような論理を構成することである。
図16の非決定性有限オートマトンをHDLで実装した例を図17に示す。このHDLは、論理検証時の動作監視機構として利用することができる。
【0007】
【発明が解決しようとする課題】
図11に示したように入力パターン発生機構や動作監視機構を検証環境の外部に置く場合、それらと検証環境の外部インタフェースの間でデータの受け渡しが必要になる。その方法は検証環境に依存するため、同じ入力パターン発生機構や動作監視機構を異なる検証環境の間で流用することが難しい。
また、特に専用ハードウェアを用いた高速なエミュレーション環境においては、検証環境の外部とのデータの受け渡し処理が実行時間のボトルネックとなるという問題が発生している。
また、図12に示したように入力パターン発生機構や動作監視機構を検証環境の内部に置く場合、それらは一般的な検証環境内で処理可能な形式、すなわちHDLで記述された順序機械モデルなければならない。
しかし、複数のトランザクションをパイプライン的に並行して実行するハードウェアの仕様は直接HDLを用いて仕様記述することが難しく、トランザクションを中心とした仕様記述が適している。
【0008】
前記図13に示したような簡単な例(図13のM1)では、オートマトンの技術を用いることにより、トランザクションを中心とした仕様記述をHDLによる順序機械モデルに変換することができた。
ところが、多ビット幅のデータを含んだような仕様においては、単純に同じ手法を用いることができない。
例として図18(a)に示すハードウェアM2について考える。DINおよびDOUTは同じビット幅を持つ入力および出力である。仕様は図18(b)に示すように「TINに1が入力されると2から4サイクル後にTOUTから1が出力される」ということに加えて、「TINと同時にDINからデータが入力され、それと同じ値が、対応するTOUTの出力と同時にDOUTから出力される」というものである。
簡単な例として、DINおよびDOUTのビット幅が2の場合、すなわち0から3までの整数値を取る場合について考える。その場合の仕様は、図13に示したM1の仕様と同様に図19や図20のように表現できる。
これは図21のオートマトンに対応しており、S0〜S17の内、S5を除いた17ビットのレジスタを用いれば、HDLによる順序機械モデルに変換することができる。
この場合の問題点は、変換にかかる計算コストと変換の結果であるHDLが効率的でないことである。データのビット幅をnとするとき、オートマトンの状態数は、ほぼ2nに比例することになる。
したがってHDLの記述量も2nに比例することになり、通常、この方法は実用にならない。
以上のように、複数のトランザクションをパイプライン的に並行して実行するハードウェアにおいては、トランザクションを中心とした仕様記述を簡易にHDLによる順序機械モデルに変換することは困難であるといった問題があった。
本発明は上記事情に鑑みなされたものであって、本発明の目的は、複数のトランザクションをパイプライン的に並行して実行するハードウェアにおいて、汎用の論理シミュレータ等で利用可能な順序機械モデルを簡潔な仕様記述から生成できるようにすることである。
【0009】
【課題を解決するための手段】
上記課題を解決するため、本発明においては、複数のトランザクションを並行して実行するハードウェアの仕様をトランザクションを中心とした表現で仕様記述とし、それを順序機械モデルに自動変換する。
上記仕様記述では、それぞれのトランザクションに関する開始時刻から終了時刻までの各時刻の動作が規定される。その際、各トランザクションに対して局所的な変数へのデータの一時保存と参照が許される。
すなわち、検証対象となるハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数とし、図1(a)に示すように、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述1とし、この仕様記述1から変換機構2により、順序機械としての検証装置3を生成する。
また、図1(b)に示すように、上記仕様記述から順序機械のHDL記述4を生成し、検証対象のハードウェア設計のHDL記述5と組み合わせて論理検証を行う。
上記において、それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作の表現として、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用いることができる。
【0010】
また、本発明は以下のように実現される。
(1)それぞれの局所変数に対して過去の一定期間に書き込まれた観測値に関連する変数を記憶する履歴バッファを設け、仕様記述から履歴バッファの大きさを決定し、履歴バッファに書き込まれた変数を局所変数とし、履歴バッファ構造を持つ検証装置を構成する。
(2)単一のトランザクションを監視する順序機械をN個設け、該順序機械と、それらの動作開始を制御するスケジューラを組み合わせ、上記仕様記述に基づきN個の順序機械とスケジューラの動作を定めて検証装置を構成する。
(3)上記(2)において、同時実行する可能性のあるトランザクション数の上界Nを仕様記述から求め、単一のトランザクションを監視する順序機械N個とそれらの動作開始を制御するスケジューラを組み合わせる。
ここで、トランザクション数とは、ある一連の処理の開始から終了までをトランザクション数とすると、ある一連の処理の開始から終了の間に同時に実行される処理数である。例えば、前記図18(b)の例では、トランザクション数は2である。
また、追加情報として与えられた同時実行可能なトランザクション数のNs と、仕様記述から求められた同時実行可能なトランザクション数の上界Nc のうち小さい方をNとし、単一のトランザクションを監視する順序機械N個とそれらの動作開始を制御するスケジューラを組み合わせるようにしてもよい。
(4)上記仕様記述から、検証装置は以下のように生成することができる。
(i) それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作の表現として、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用い、該正規表現を1単位時間毎の動作に展開し、
(ii)展開した正規表現について、各局所変数の書き込みから参照までの時間を求め、
(iii) 参照を行っている局所変数の参照までの時間に対応した履歴データを作成し、該履歴データを上記1単位時間毎の動作に展開された正規表現の参照に置き換え、
(iv)上記置き換えられた正規表現から、上記ハードウェア設計の正しさを監視する検証装置を生成する。
以上のように、本発明においては、トランザクション中心の仕様記述に局所変数の機能を追加しており、このため、従来より仕様を簡潔に表現することができる。また、そこから生成される順序機械モデルおよびそのHDL表現も実用的な規模とすることができる。
【0011】
【発明の実施の形態】
以下、本発明の実施の形態を前記図18に示したM2について説明する。
図18に示したM2の仕様をトランザクションに関する局所変数Xを用いて表現したものを図2(a)に示す。この場合、記述量はDINおよびDOUTのビット幅に依存しない。
これはまた、不正パターン指定の方法により、図2(b)に示すように正規表現的な記述とすることも可能である。ただし、局所変数の導入により、図2(b)の仕様記述は、X=DIN(XへのDINの代入)があるため、正規表現の定義から外れている。したがって、このまま従来のオートマトンの技術を用いた変換を適用することはできない。
【0012】
そこで、本発明の第1の実施例では履歴バッファを導入する。
図2(b)の正規表現において、Xへの値の保存からその参照までの時間経過の最大値は4である。したがって、この場合、深さ4の履歴バッファを用いれば良い。
例えば図3に示すように、X1からX4までの、DINと同じビット幅を持ったレジスタ群を用意する。これらは、1サイクル毎にデータを次のレジスタに送るパイプライン構造であり、Xtはtサイクル前のDINのデータを保持していることになる。
この履歴バッファを前提にすれば、図2(b)の仕様記述を次のように書き換えることができる。
.*〔TIN〕.〔〜(TOUT & DOUT==X2)〕
〔〜(TOUT & DOUT==X3)〕〔〜(TOUT & DOUT==X4)〕
これは正規表現であるので、オートマトンの技術を用いて、図4に示すように順序機械モデルに変換することができる。
【0013】
図5に、上記履歴バッファを用いて実現した場合の構成例を示す。
同図において、11は図3に示した履歴バッファ、12は仕様記述から生成される動作チェッカである。履歴バッファ11は前記したようにDINと同じビット幅を持つレジスタ群からなり、1クロック入力される毎に(1単位時間毎に)、履歴バッファ11に入力されたDINは次のレジスタに転送される。履歴バッファ11で保持された各単位時間毎のDINは、X2,X3,X4として検証装置12に入力される。
また、動作チェッカ12には、TIN,TOUT,DOUTが入力され、動作チェッカ12は上記入力に基づき、与えられた仕様を満足するかを監視する。
【0014】
図6は履歴バッファを用いる場合の検証装置生成のための処理フローであり、同図により本実施例の検証装置の生成処理を説明する。
まず、図2(b)に示した拡張正規表現(局所変数使用の機能を拡張した正規表現)を1単位時間毎の動作に展開する。
すなわち、図2(b)に示す拡張正規表現を次のように展開する(変数をXとする)。
.*〔TIN;X=DIN〕.〔〜(TOUT & DOUT==X)〕
〔〜(TOUT & DOUT==X)〕〔〜(TOUT & DOUT ==X)〕
次いで、局所変数を一つ選択し、Xの書き込みから参照までの時間の最大値mを求める。図5の場合はm=4である。
Xへの書き込みデータを入力とする深さmの履歴バッファを作成し、その出力をX〔1〕,X〔1〕,…,X〔m〕とする。
【0015】
次に、上記展開式において、Xへの書き込み動作の記述を削除し、Xの参照動作の記述をそれぞれについてX〔t〕に置換する(tは書き込みから参照までの時間)。そして、局所変数が残っているかを調べ、残っていれば、上記処理を繰り返す。
これにより、前記図18に示したM2の例では前記した以下の正規表現が得られる。
.*〔TIN〕.〔〜(TOUT & DOUT==X2)〕
〔〜(TOUT & DOUT==X3)〕〔〜(TOUT & DOUT==X4)〕
上記のような正規表現が得られたら、該正規表現を順序機械に変換し、動作チェッカを構成する。なお、正規表現から順序機械への変換は、従来から知られた種々の手法を用いることができる。
次いで、履歴バッファと、上記のようにして生成した動作チェッカを組み合わせ、検証装置を生成する。
図7に、上記のようにして生成されたM2の不正パターンを検出するための順序機械のHDL記述を示す。
【0016】
上記実施例は履歴バッファを用いて検証装置を構成する場合であるが、同時に実行されるトランザクション数の最大値Nがわかっている場合には、単一のトランザクションを監視する順序機械N個を使ってモデルを実現することもできる。その際には、スケジューラの機構と組合せて全体を構成する。
図8にN個の監視機構とスケジューラを用いて実現した本発明の第2の実施例の検証装置の構成例を示す。
図8において、スケジューラ21は図2(a)の仕様におけるTINのようなトランザクション開始条件を監視し、N個の動作チェッカ22−1〜22−nのうち休止中のものに動作を割り当てる働きをする。また、N個の各動作チェッカ22−1〜22−nは、それぞれ単一のトランザクションを監視する。
すなわち、スケジューラ21はTINが入力されると、空いている動作チェッカを起動する。起動された動作チェッカ22−1〜22−nは、上記TINに対応したトランザクションについて、与えられた仕様を満足するかを監視する。
【0017】
ここで、同時に実行されるトランザクション数の上界の一つは、トランザクションの長さの最大値である。Nの値にはこれを用いても良いし、さらに仕様を解析してより小さな上界を求めても良い。
仕様によってNの値が制限されている場合には、追加情報として外部から与えても良い。その際には、実際に仕様上の値Nを越えてしまう場合を検出して警告するようなチェック機構を加えておくこともできる。すなわち、図8においてスケジューラ21によりNを監視し、動作チェッカ22−1〜22−nの数を越えたTINが入力されたとき、警告を出力するようにしてもよい。
また、外部から与えられた値と仕様の解析により求められた値のうち小さい方のNの値を用いてもよい。すなわち、追加情報として与えられた同時実行可能なトランザクション数のNs と、仕様記述から求められた同時実行可能なトランザクション数の上界Nc のうち小さい方をNとするようにしてもよい。
【0018】
図9は、上記スケジューラを用いる場合の検証装置生成の処理フローである。
同図に示すように、まず、トランザクションの仕様を起動条件部と実行部に分解する。そして、起動条件からスケジューラを構成する。
ついで、実行部から動作チェッカをN個構成し、スケジューラとN個の動作チェッカを組み合わせて、検証装置を生成する。
図10に上記のようにして生成されたM2の不正パターンを検出する順序機械のHDL記述を示す。
【0019】
(付記1) 複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、
上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
上記仕様記述から上記検証装置を生成する
ことを特徴とするハードウェア設計の正しさを監視する検証装置。
(付記2) それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作の表現として、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用いる
ことを特徴とする付記1のハードウェア設計の正しさを監視する検証装置。
(付記3) それぞれの局所変数に対して過去の一定期間に書き込まれた観測値に関連する変数を記憶する履歴バッファを設け、履歴バッファに書き込まれた変数を局所変数とし、上記仕様記述に基づき検証装置を構成する
ことを特徴とする付記1または付記2のハードウェア設計の正しさを監視する検証装置。
(付記4) 単一のトランザクションを監視する順序機械をN個設け、該順序機械と、それらの動作開始を制御するスケジューラを組み合わせ、
上記仕様記述に基づきN個の順序機械とスケジューラの動作を定めて検証装置を構成する
ことを特徴とする付記1または付記2のハードウェア設計の正しさを監視する検証装置。
(付記5) 同時実行する可能性のあるトランザクション数の上界Nを仕様記述から求め、
単一のトランザクションを監視する順序機械N個とそれらの動作開始を制御するスケジューラを組み合わせる
ことを特徴とする付記5のハードウェア設計の正しさを監視する検証装置。
(付記6) 追加情報として与えられた同時実行可能なトランザクション数のNs と、
仕様記述から求められた同時実行可能なトランザクション数の上界Nc のうち小さい方をNとし、
単一のトランザクションを監視する順序機械N個とそれらの動作開始を制御するスケジューラを組み合わせる
ことを特徴とする付記4のハードウェア設計の正しさを監視する検証装置。
(付記7) 複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証方法であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、
上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
上記仕様記述から上記検証装置を生成し、
当該ハードウェア設計の設計記述と組み合わせて論理検証をする
ことを特徴とするハードウェア設計の正しさを監視する検証方法。
(付記8) 複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムであって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作を、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用いて表現し、
上記プログラムは、上記正規表現を1単位時間毎の動作に展開する処理と、
展開した正規表現について、各局所変数の書き込みから参照までの時間を求める処理と、
参照を行っている局所変数の参照までの時間に対応した履歴データを作成し、
該履歴データを上記1単位時間毎の動作に展開された正規表現の参照に置き換える処理と、
上記置き換えられた正規表現から、上記ハードウェア設計の正しさを監視する検証装置を生成する処理をコンピュータに実行させ検証装置を生成する
ことを特徴とするハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラム。
(付記9) 複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムであって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
上記プログラムは、トランザクションの仕様を起動条件部と実行部に分解する処理と、
上記起動条件からスケジューラを構成する処理と、
実行部から動作チェッカをN個構成する処理と、
上記スケジューラとN個の動作チェッカを組み合わせて、検証装置を生成する処理をコンピュータに実行させ検証装置を生成する
ことを特徴とするハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラム。
(付記10) 複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムを記録した記録媒体であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
それぞれのトランザクションについて開始時刻から終了時刻までに観測点上で期待される動作を、観測値を入力記号とし、局所変数使用の機能を拡張した正規表現を用いて表現し、
上記プログラムは、上記正規表現を1単位時間毎の動作に展開する処理と、
展開した正規表現について、各局所変数の書き込みから参照までの時間を求める処理と、
参照を行っている局所変数の参照までの時間に対応した履歴データを作成し、
該履歴データを上記1単位時間毎の動作に展開された正規表現の参照に置き換える処理と、
上記置き換えられた正規表現から、上記ハードウェア設計の正しさを監視する検証装置を生成する処理をコンピュータに実行させ検証装置を生成する
ことを特徴とするハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムを記録した記録媒体。
(付記11) 複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムを記録した記録媒体であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、
上記プログラムは、トランザクションの仕様を起動条件部と実行部に分解する処理と、
上記起動条件からスケジューラを構成する処理と、
実行部から動作チェッカをN個構成する処理と、
上記スケジューラとN個の動作チェッカを組み合わせて、検証装置を生成する処理をコンピュータに実行させ検証装置を生成する
ことを特徴とするハードウェアの設計の正しさを監視するための検証装置を生成するためのプログラムを記録した記録媒体。
【0020】
【発明の効果】
以上説明したように、本発明においては、複数のトランザクションをパイプライン的に並行して実行するハードウェアにおいて、検証対象となるハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数とし、ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、この仕様記述から検証装置を生成するようにしたので、汎用の論理シミュレータ等で利用可能な順序機械モデルを簡潔な仕様記述から生成することができる。
このため、従来の同等なものを手作業で実装する方法に比べ、作業工数、実装誤りの可能性、再利用性などの面において、実用的には極めて有用である。
【図面の簡単な説明】
【図1】本発明の概要を説明する図である。
【図2】局所変数Xを用いて表したM2の仕様記述と不正パターン指定によるM2の仕様記述を示す図である。
【図3】本発明の第1の実施例における履歴バッファの構造を示す図である。
【図4】M2の不正パターンを検出する非決定性有限オートマトンを示す図である。
【図5】履歴バッファを用いて実現した本発明の第1の実施例の検証装置の構成例を示す図である。
【図6】履歴バッファを用いる場合の検証装置生成のための処理フローである。
【図7】M2の不正パターンを検出するための順序機械のHDL記述(履歴バッファを用いる場合)を示す図である。
【図8】N個の監視機構とスケジューラを用いて実現した本発明の第2の実施例の検証装置の構成例を示す図である。
【図9】スケジューラを用いる場合の検証装置生成の処理フローである。
【図10】M2の不正パターンを検出するための順序機械のHDL記述(スケジューラを用いる場合)を示す図である。
【図11】論理検証手法の例(1)を示す図である。
【図12】論理検証手法の例(2)を示す図である。
【図13】ハードウェアM1の仕様の概略を示す図である。
【図14】図13に示すM1の仕様記述を示す図である。
【図15】不正パターン指定の正規表現による図13に示すM1の仕様記述を示す図である。
【図16】M1の不正パターンを検出する非決定性有限オートマトンを示す図である。
【図17】M1の不正パターンを検出する順序機械のHDL記述を示す図である。
【図18】ハードウェアM2の仕様の概略(多ビット幅のデータを含んだ仕様)を示す図である。
【図19】図18に示すM2の仕様記述(データ幅2の場合)を示す図である。
【図20】不正パターン指定の表現による図18に示すM2の仕様記述(データ幅2の場合)を示す図である。
【図21】M2の不正パターンを検出する非決定性有限オートマトン(データ幅2の場合)を示す図である。
【符号の説明】
1 仕様記述
2 変換機構
3 検証装置
4 仕様記述から生成したHDL記述
5 検証対象ハードウェア設計のHDL記述
11 履歴バッファ
12 動作チェッカ
21 スケジューラ
22−1〜22−n 動作チェッカ
Claims (4)
- 複数のトランザクションを並行して実行するハードウェアの設計の正しさを監視するための検証装置であって、
上記ハードウェアの各トランザクションの開始のときに確保され、終了のときに開放される観測値に関連する変数を局所変数としたとき、上記ハードウェアの動作の正しさを監視するための観測点の集合、および、それぞれのトランザクションについて、開始時刻から終了時刻までに観測点上で期待される動作を、観測値とトランザクション毎の局所変数を用いて規定したものを仕様記述とし、上記仕様記述から上記検証装置を生成する
ことを特徴とするハードウェア設計の正しさを監視する検証装置。 - それぞれの局所変数に対して過去の一定期間に書き込まれた観測値に関連する変数を記憶する履歴バッファを設け、履歴バッファに書き込まれた変数を局所変数とし、上記仕様記述に基づき検証装置を構成する
ことを特徴とする請求項1のハードウェア設計の正しさを監視する検証装置。 - 単一のトランザクションを監視する順序機械をN個設け、該順序機械と、それらの動作開始を制御するスケジューラを組み合わせ、上記仕様記述に基づきN個の順序機械とスケジューラの動作を定めて検証装置を構成する
ことを特徴とする請求項1のハードウェア設計の正しさを監視する検証装置。 - 同時実行する可能性のあるトランザクション数の上界Nを仕様記述から求め、単一のトランザクションを監視する順序機械N個とそれらの動作開始を制御するスケジューラを組み合わせる
ことを特徴とする請求項3のハードウェア設計の正しさを監視する検証装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001141288A JP3945996B2 (ja) | 2001-05-11 | 2001-05-11 | 並行動作するハードウェア設計の検証装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001141288A JP3945996B2 (ja) | 2001-05-11 | 2001-05-11 | 並行動作するハードウェア設計の検証装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002334126A JP2002334126A (ja) | 2002-11-22 |
JP3945996B2 true JP3945996B2 (ja) | 2007-07-18 |
Family
ID=18987770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001141288A Expired - Fee Related JP3945996B2 (ja) | 2001-05-11 | 2001-05-11 | 並行動作するハードウェア設計の検証装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3945996B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457241B2 (en) | 2004-02-05 | 2008-11-25 | International Business Machines Corporation | Structure for scheduler pipeline design for hierarchical link sharing |
-
2001
- 2001-05-11 JP JP2001141288A patent/JP3945996B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002334126A (ja) | 2002-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5758123A (en) | Verification support system | |
JP4528728B2 (ja) | デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム | |
JP4806529B2 (ja) | 複製されたロジックを使用するデバッグの方法とシステム | |
US20020152061A1 (en) | Data processing system and design system | |
JPH07230484A (ja) | 有限状態マシン遷移アナライザ | |
Yin et al. | Verification complexity of a class of observational properties for modular discrete events systems | |
US7266791B2 (en) | High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium | |
JP5034916B2 (ja) | 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 | |
JP2006139729A (ja) | ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体 | |
JPH04233040A (ja) | コンピュータプログラム実行シミュレーションシステム | |
US20040044508A1 (en) | Method for generating commands for testing hardware device models | |
JP3945996B2 (ja) | 並行動作するハードウェア設計の検証装置 | |
Amla et al. | Model checking synchronous timing diagrams | |
JP2005108007A (ja) | Lsi設計検証装置及びlsi設計検証方法 | |
US6853968B2 (en) | Simulation of data processing apparatus | |
Baranowski et al. | Complete formal verification of a family of automotive DSPs | |
JP4152659B2 (ja) | データ処理システムおよび設計システム | |
JP5001126B2 (ja) | ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体 | |
JP5328447B2 (ja) | 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体 | |
JP3171182B2 (ja) | 機能合成方法,機能合成装置およびその記録媒体 | |
US6339751B1 (en) | Circuit design support apparatus and a method | |
US11144687B1 (en) | Method and system providing visualization of sub-circuit iterations based on handshake signals | |
JP2009217720A (ja) | プログラム生成装置およびプログラム生成方法 | |
Neuhold | Development methodologies for event and message based application systems | |
JP2007156728A (ja) | 論理検証方法及び論理検証システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070223 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070410 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070410 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110420 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110420 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120420 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130420 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140420 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |