(57)【要約】【課題】複数トランザクションを並列に実行するハードウェア仕様記述の論理検証のための検査装置を人手に頼らず自動的に生成する。【解決手段】複数のトランザクションを並列に実行するハードウェア設計記述１０２の検査装置の自動生成装置及び自動生成プログラムであって、トランザクション識別子の集合１４、各パケットを構成する観測値系列と該観測値系列に含まれた識別子情報を取り出す規則１５、及びそれぞれのトランザクションを構成するパケット系列１６を規定したものを仕様記述１２として予め定義しておき、その仕様記述に基づいて検査装置１３を自動生成する。【選択図】　　　図２
2004021730.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア設計記述の正しさを監視する検査装置の自動生成装置であって、前記ハードウェア設計記述は一つの識別子を持ったパケットの系列からなる一つのトランザクションの実行の途中に他の識別子を持ったパケット系列からなる他のトランザクションを実行するようにして、複数のトランザクションを並列に実行するようにした記述であり、前記トランザクション識別子の集合、各パケットを構成する観測値系列と該観測値系列に含まれた識別子情報を取り出す規則、及びそれぞれのトランザクションを構成するパケット系列を規定したものを仕様記述として予め定義しておき、前記仕様記述に基づいて前記検査装置を自動生成することを特徴とする、前記検査装置の自動生成装置。
【請求項２】
前記仕様記述を読み込む仕様記述読み込み部と、読み込まれた仕様記述中の前記識別子情報を取り出す規則を用いて識別子抽出機構を自動生成する識別子抽出機構生成部と、前記識別子情報を所定の配列インデックスに変換するインデックス変換機構を前記読み込まれた仕様記述から得られる前記識別子情報に基づいて自動生成するインデックス変換機構生成部と、前記読み込まれた仕様記述中の前記トランザクションを構成するパケット系列から単一識別子に関するパケット単位の第１の順序機械を自動生成する第１順序機械生成部と、前記読み込まれた仕様記述中の前記パケットを構成する観測値系列に基づいて前記読み込まれた仕様記述からサイクル単位の第２の順序機械を自動生成する第２の順序機械生成部とを備えていることを特徴とする、請求項１記載の自動生成装置。
【請求項３】
前記インデックス変換機構は、ハードウェアの検証中に該ハードウェアに入力されるｎ通りのトランザクションのｎ通りのトランザクション識別子をｎ通りの配列インデックスに１対１変換をし、前記ｎ通りのトランザクションに関する情報を前記ｎ通りの配列インデックスに対応した前記ｎ通りのトランザクション別状態記録領域に記録するようにしたものであることを特徴とする、請求項２記載の自動生成装置。
【請求項４】
前記インデックス変換機構は、ハードウェアの検証中に該ハードウェアに入力されるｎ通りのトランザクションのｎ通りのトランザクション識別子を前記ｎ通りより少ないｍ通りの配列インデックスに多対１変換をし、前記ｍ通りのトランザクションに関する情報を前記ｍ通りの配列インデックスに対応した前記ｍ通りのトランザクション別状態記録領域に記録するようにしたものであることを特徴とする、請求項２記載の自動生成装置。
【請求項５】
コンピュータにハードウェア設計記述の正しさを監視する検査装置の自動生成を実行させるプログラムであって、前記ハードウェア設計記述は一つの識別子を持ったパケットの系列からなる一つのトランザクションの実行の途中に他の識別子を持ったパケット系列からなる他のトランザクションを実行するようにして、複数のトランザクションを並列に実行するものであり、前記トランザクション識別子の集合、各パケットを構成する観測値系列と該観測値系列に含まれた識別子情報を取り出す規則、及びそれぞれのトランザクションを構成するパケット系列を規定したものを仕様記述として予め定義しておき、前記仕様記述に基づいてコンピュータに前記検証装置を自動生成させることを特徴とする、前記検証装置の自動生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のトランザクションの並列動作をトランザクション識別子で管理するハードウェア設計記述の正しさを監視する検査装置の自動生成装置及び自動生成プログラムに関する。
【０００２】
【従来の技術】
ハードウェア設計記述の論理を検証する場合、検証の対象となるハードウェア設計記述は、論理シミュレータ等の検証環境の上で模擬的に実行される。その際には、検証対象であるハードウェア設計記述に加えて、以下の機構が必要である。
【０００３】
（１）ハードウェア設計記述への試験入力パターンを発生する入力パターン発生機構
（２）ハードウェア設計記述の動作の正しさを監視する検査装置
図９は従来のハードウェア設計記述の論理検証装置の一例を示すブロック図である。この例においては、検証環境であるシミュレータ９１は検証対象であるハードウェア設計記述９２のみを備えており、シミュレータ９１の外部には入力パターン発生機構９３と検査装置９４が接続されている。
【０００４】
図９に示したように、シミュレータ９１の外部に入力パターン発生機構や検査装置を置く場合、ハードウェア設計記述９２の入力端子への入力値や検証対象９２の観測点（入力端子、出力端子や内部信号線）の値はハードウェア設計記述９２の外部インタフェースを介して制御あるいは観測される。
【０００５】
図１０は従来のハードウェア設計記述の論理検証装置の他の一例を示すブロック図である。この例においては、検証環境であるシミュレータ１０１は検証対象であるハードウェア設計記述１０２と、入力パターン発生機構１０３と検査装置１０４とを内蔵している。
【０００６】
図１０に示したように、検証環境１０１の内部に入力パターン発生機構や検査装置を置く場合、入力パターン発生機構や検査装置は検証対象と同様に検証環境内で模擬実行される。
【０００７】
上記図９及び図１０の構成の組み合わせの場合もある。
【０００８】
図９及び図１０のいずれの場合も、ハードウェア設計記述の論理の検証は、検証対象の設計仕様に基づいて形成された入力パターン発生機構から出力される信号を、検証対象であるハードウェア設計記述を通さずに検査装置に入力するとともに、ハードウェア設計記述を通して検査装置に入力することによって行われる。すなわち、検査装置ではハードウェア設計記述から出力される観測値と入力パターン発生機構から出力される観測値とを比較することにより検証対象となるハードウェア設計記述の論理を検証する。
【０００９】
入力パターン発生機構や検査装置をシミュレータの外部に置く図９の場合、入力パターン発生機構及び検査装置とシミュレータ９１の外部インタフェースの間でデータの受け渡しが必要になる。その方法はシミュレータ９１の構成に依存するため、同じ入力パターン発生機構９３や検査装置９４を異なるシミュレータの間で流用することが難しい。
【００１０】
また、特に専用ハードウェアを用いた高速なエミュレーション環境においては、シミュレータ９１の外部とのデータの受け渡し処理が実行時間のボトルネックとなるという問題が発生するため、図９の形態は実用性が低い。
【００１１】
したがって、汎用性の観点からは、図１０に示したように入力パターン発生機構及び検査装置をシミュレータの内部に含む形態が望まれている。
【００１２】
しかし、図９に示した形態では入力パターン発生機構や検査装置は市販のパソコンで実現できるが、図１０に示した形態では、シミュレータ１０１の内部に置く入力パターン発生機構１０３や検査装置１０４をシミュレータ内で実行可能な小規模な形式、すなわちＨＤＬ（Ｈｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）などによる順序機械モデルで実現しなければならない。
【００１３】
ハードウェア設計記述の正しい動作はハードウェアの仕様記述によって定義される。ハードウェア設計記述の入出力手順に関する仕様記述は、トランザクションの単位で表現されることが多い。トランザクションとは、意味的にまとまった何らかの通信単位を構成する入出力信号値の時系列のことである。一つの識別子を持ったパケットの系列からなる一つのトランザクションの実行の途中に他の識別子を持ったパケット系列からなる他のトランザクションを実行するようにして、複数のトランザクションを並列に実行するようにしたハードウェアでは、トランザクションはさらにパケットと呼ばれる時間的に連続した要素に分割されることもある。
【００１４】
図１１は図１０に示したハードウェア設計記述１０２の論理検証動作を説明する図である。同図において、入力パターン発生機構１０３からは仕様記述に従った読み出し信号ｒｅａｄ又は書き込み信号ｗｒｉｔｅが出力され、それらの出力は検証対象であるハードウェア設計記述１０２に入力されるとともに、検査装置１０４にも入力される。検証対象であるハードウェア設計記述１０２からは仕様記述にしたがって確認信号ａｃｋが出力されて、検査装置１０４に入力される。入力パターン発生機構１０３及び検査装置１０４と検証対象であるハードウェア設計記述１０２との間は第０ビット〜第３１ビットの３２ビットのバスｂｕｓで接続されている。このバスを介して識別子、ハードウェア設計記述からの読み出し元アドレス、ハードウェア設計記述からの読み出し値、ハードウェア設計記述への書き込み先アドレス、ハードウェア設計記述への書き込み値等の観測値がハードウェア設計記述１０２と入力パターン発生機構１０３及び検査装置１０４の間で伝達される。
【００１５】
従来はこの検査装置１０４が仕様記述を満足するように手作業で作成していた。
【００１６】
図１２及び図１３はそれぞれ、検証対象であるハードウェア設計記述１０２の入出力を示す仕様記述の一例としてのトランザクションＲ及びＷの例を示す図である。この仕様記述の意味は以下の通りである。図で「サイクル」はトランザクション開始時を１としたサイクル時刻を示している。図１２に示すトランザクションＲは、２サイクルのパケットｒと２サイクルのパケットｓから構成されている。図１３に示すトランザクションＷは、３サイクルのパケットｗと１サイクルのパケットｘから構成されている。
【００１７】
図１２の例において、サイクル１及び２では検証対象であるハードウェア設計記述１０２からの読み出しパターンのパケットｒのトランザクションが記述されている。サイクル１ではｒｅａｄ＝１，　ｗｒｉｔｅ＝０，　ａｃｋ＝０が入力パターン発生機構１０２からハードウェア設計記述１０２に入力されるとともに、検査装置１０４にも入力される。また、このパケットｒはどのトランザクションに属するかを示すトランザクスション識別子がバスを介してハードウェア設計記述１０２及び検査装置１０４に入力される。サイクル２ではｒｅａｄ＝０，　ｗｒｉｔｅ＝０，　ａｃｋ＝０が入力パターン発生機構１０２からハードウェア設計記述１０２に入力されるとともに、検査装置１０４にも入力される。また、ハードウェア設計記述からのデータの読み出し元アドレスがバスを介してハードウェア設計記述１０２及び検査装置１０４に入力される。
【００１８】
サイクルｋ及びｋ＋１では確認パターンのパケットｓのトランザクションが記述されている。サイクルｋではｒｅａｄ＝０，　ｗｒｉｔｅ＝０，　ａｃｋ＝１がハードウェア設計記述１０２から検査装置１０４に出力されるとともに、このパケットｓはどのトランザクションに属するかを示すトランザクスション識別子がハードウェア設計記述１０２からバスを介して検査装置１０４に出力される。サイクルｋ＋１ではｒｅａｄ＝０，　ｗｒｉｔｅ＝０，　ａｃｋ＝０がハードウェア設計記述１０２から検査装置１０４に入力されるとともに、ハードウェア設計記述１０２から読み出された値がバスから検査装置１０４に出力される。
【００１９】
図１３の例において、サイクル１、２及び３ではハードウェア設計記述１０２への書き込みパターンのパケットｗのトランザクションが記述されている。このパケットｗのサイクル１ではｒｅａｄ＝０，　ｗｒｉｔｅ＝１，　ａｃｋ＝０が入力パターン発生機構１０３からハードウェアＡ１０２及び検査装置１０４に入力され、且つ、このパケットｗはどのトランザクションに属するかを示すトランザクスション識別子が入力パターン発生機構１０３からバスを介してハードウェア設計記述１０２及び検査装置１０４に入力される。サイクル２ではｒｅａｄ＝０，　ｗｒｉｔｅ＝０，　ａｃｋ＝０で書き込み先のアドレスが入力パターン発生機構１０３からハードウェア設計記述１０２及び検査装置１０４に入力され、且つ、ハードウェア設計記述への書き込み先のアドレスが入力パターン発生機構１０３からバスを介してハードウェア設計記述１０２及び検査装置１０４に入力される。サイクル３ではｒｅａｄ＝０，　ｗｒｉｔｅ＝０，　ａｃｋ＝０が入力パターン発生機構１０３からハードウェア設計記述１０２及び検査装置１０４に入力されるとともに、ハードウェア設計記述１０２に書き込む値が入力パターン発生機構１０３からバスを介してハードウェア設計記述１０２及び検査装置１０４に入力される。
【００２０】
サイクルｋでは確認パターンのパケットｘのトランザクションが記述されており、ｒｅａｄ＝０，　ｗｒｉｔｅ＝０，　ａｃｋ＝１がハードウェア設計記述１０２から入力パターン発生機構１０３に出力され、且つ、トランザクスション識別子がハードウェア設計記述１０２からバスを介して検査装置１０４に出力される。
【００２１】
あるトランザクションを構成するパケットとパケットの間には別のトランザクションのパケットが割り込んで並列的に実行しても良い。
【００２２】
図１４はトランザクションを並列に実行する一例の説明図である。図示例では、トランザクションＲ１の実行中に別のトランザクションＲ２及びＷ３を実行する例が示されている。すなわち、サイクル１及び２ではトランザクションＲ１のパケットｒ１を実行し、サイクル３及び４ではトランザクションＲ２のパケットｒ２を実行し、サイクル５では何も行わず、サイクル６及び７ではトランザクションＲ２の確認パケットｓ２を実行し、サイクル８，９及び１０ではトランザクションＷ３のパケットｗ３を実行し、サイクル１１ではトランザクションＷ３のパケットｘ３を実行し、サイクル１２では何も行わず、サイクル１３及び１４ではトランザクションＲ１のパケットｓ１を実行している。
【００２３】
パケットｒ１のサイクル１ではｒｅａｄ＝１，　ｗｒｉｔｅ＝０，　ａｃｋ＝０が入力パターン発生機構１０２からハードウェア設計仕様１０２に入力されるとともに、検査装置１０４にも入力されており、且つ、トランザクション識別子“１”がバスを介してハードウェア設計仕様１０２に入力されている。サイクル２ではｒｅａｄ＝０，　ｗｒｉｔｅ＝０，ａｃｋ＝０が入力パターン発生機構１０２からハードウェア設計仕様１０２に入力されるとともに、検査装置１０４にも入力されており、且つ、ハードウェア設計仕様１０２からの読み出し元のアドレス１００がバスを介してハードウェア設計仕様１０２に入力されている。
【００２４】
パケットｒ２のサイクル３ではｒｅａｄ＝１，　ｗｒｉｔｅ＝０，　ａｃｋ＝０が入力パターン発生機構１０２からハードウェア設計仕様１０２に入力されるとともに、検査装置１０４にも入力されており、且つ、トランザクション識別子“２”がバスを介してハードウェア設計仕様１０２に入力されている。サイクル４ではｒｅａｄ＝０，　ｗｒｉｔｅ＝０，ａｃｋ＝０が入力パターン発生機構１０２からハードウェア設計仕様１０２に入力されるとともに、検査装置１０４にも入力されており、且つ、ハードウェア設計仕様１０２からの読み出し元のアドレス２００がバスを介してハードウェア設計仕様１０２に入力されている。
【００２５】
以下、サイクル６以降も同様に、ｒｅａｄ，ｗｒｉｔｅ，ａｃｋの値及びトランザクション識別子、書き込み先アドレス、書き込み値、等がバスに対して入出力される。
【００２６】
【発明が解決しようとする課題】
従来は、人間の創造性に頼って人手で検査装置１０４を実装していた。しかし、図１４に示した例のように一つの識別子を持ったパケットの系列からなる一つのトランザクションの実行の途中に他の識別子を持ったパケット系列からなる他のトランザクションを実行するようにして、複数のトランザクションを並列に実行するようにしたハードウェア設計記述の論理の検証のために、図１０に示した動作監視機構を手作業で構成することは容易ではない。なぜなら、動作監視機構に入力される観測値がどのトランザクションに属するものかを判定することが困難だからである。
【００２７】
本発明の目的は、複数のトランザクションを並列に実行し、その並列動作がトランザクション毎の識別子によって管理されているハードウェア設計記述の論理検証のための検査装置を人手に頼らず自動的に生成することである。
【００２８】
【課題を解決するための手段】
上記目的達成のために本発明により提供されるものは、仕様記述に基づいて検査装置を自動生成する自動生成装置である。
【００２９】
その自動生成装置は、仕様記述を読み込む仕様記述読み込み部と、読み込まれた仕様記述中の識別子情報を取り出す規則を用いて識別子抽出機構を自動生成する識別子抽出機構生成部と、識別子情報を所定の配列インデックスに変換するインデックス変換機構を読み込まれた仕様記述から得られる識別子情報に基づいて自動生成するインデックス変換機構生成部と、読み込まれた仕様記述中のトランザクションを構成するパケット系列から単一識別子に関するパケット単位の第１の順序機械を自動生成する第１順序機械生成部と、読み込まれた仕様記述中のパケットを構成する観測値系列に基づいて読み込まれた仕様記述からサイクル単位の第２の順序機械を自動生成する第２の順序機械生成部とを備えている。
【００３０】
本発明の一態様によれば、インデックス変換機構生成部は、ハードウェアの検証中に該ハードウェアに入力されるｎ通りのトランザクションのｎ通りのトランザクション識別子をｎ通りの配列インデックスに１対１変換をし、ｎ通りのトランザクションに関する情報をｎ通りの配列インデックスに対応したｎ通りのトランザクション別状態記録領域に記録するようにしたものである。
【００３１】
本発明の他の態様によれば、インデックス変換機構生成部は、ハードウェアの検証中に該ハードウェアに入力されるｎ通りのトランザクションのｎ通りのトランザクション識別子をｎ通りより少ないｍ通りの配列インデックスに多対１変換をし、ｍ通りのトランザクションに関する情報をｍ通りの配列インデックスに対応したｍ通りのトランザクション別状態記録領域に記録するようにしたものである。
【００３２】
本発明により、上記検査装置の自動生成プログラムも提供される。
【００３３】
本発明によれば、検査装置の自動生成のためのデータの入力にはトランザクション単位の仕様記述を用いる。また、専用ハードウェアを用いた高速なエミュレーション環境などでも利用可能にするために、本発明では検査装置を汎用的な順序機械モデルとして生成する。
【００３４】
【発明の実施の形態】
図　１　は本発明の第１の実施の形態による並列動作をトランザクション識別子で管理するハードウェア設計記述の正しさを監視する順序機械としての検査装置の自動生成装置の生成手順の概略を示すブロック図である。
【００３５】
図示のように、この自動生成装置１１は、仕様記述１２に基づいて検査装置１３を自動生成する。仕様記述１２は、並列トランザクションを管理するためのトランザクション識別子の集合１４、各パケットに関し、パケットを構成する観測値系列とそれに含まれた識別子情報を取り出す規則１５、および、各トランザクションに関し、それぞれのトランザクションを構成するパケット系列１６からなっている。
【００３６】
検査装置１３は例えばＨＤＬで記載された順序機械であって、図１０及び１１に示した従来の検査装置１０４に替わるものであり、自動生成装置１１により自動生成される。
【００３７】
次に動作を説明する。
【００３８】
仕様記述１２中のトランザクション識別子を自動生成装置１１により所望の配列インデックスに写像して順序機械としての検査装置１３を自動生成する。
【００３９】
仕様記述１２の例を以下の表１に示す。
【００４０】
【表１】
2004021730.tif 000003
【００４１】
表１において、ＩＤ＝｛１，．．．，１００｝がトランザクション識別子の集合であり、ｒｅａｄ＝１，　ｗｒｉｔｅ＝０，　ａｃｋ＝０，　ｂｕｓ＝ＩＤ　等がパケットを構成する観測値系列であり、ｂｕｓ＝ＩＤはバスの中に識別子が存在することを示すので、識別子情報を取り出す規則の例であり、トランザクションＲ，Ｗとパケットｒ、ｓ、ｗ、ｘがトランザクションを構成するパケット系列の例である。
【００４２】
図２は図１に示した自動生成装置１１の構成を示すブロック図である。図示のように、自動生成装置１１は、仕様記述１２を読み込む仕様記述読み込み部２１と、読み込まれた仕様記述中の識別子情報を取り出す規則を用いて識別子抽出機構を自動生成する識別子抽出機構生成部２２と、識別子情報を所定の配列インデックスに変換するインデックス変換機構を読み込まれた仕様記述から得られる識別子の集合に基づいて自動生成するインデックス変換機構生成部２３と、読み込まれた仕様記述中のトランザクションを構成するパケット系列から単一識別子に関するパケット単位の第１の順序機械を自動生成する第１順序機械生成部２４と、読み込まれた仕様記述中のパケットを構成する観測値系列に基づいて読み込まれた仕様記述からサイクル単位の第２の順序機械を自動生成する第２の順序機械生成部２５とを備えている。
【００４３】
検査装置１３は、自動生成装置１１の識別子抽出機構生成部２２と、インデックス変換機構生成部２３と、第１順序機械生成部２４と、第２の順序機械生成部２５とによって自動生成される。
【００４４】
図３は図２に示した自動生成装置１１の動作を説明するフローチャートである。図において、ステップ３１で仕様記述１２を読み込み、読み込んだ仕様記述から、ステップ３２にて識別子情報抽出機構を生成し、ステップ３３にてインデックス変換機構を生成し、ステップ３４にて単一識別子に関するパケット単位の順序機械Ｍ１を生成し、ステップ３５にてその順序機械Ｍ１をパケット単位の状態遷移制御機構Ｔ１とトランザクション別のパケット単位の状態変数に分解し、ステップ３６にて識別化情報を無視してパケット単位で抽象化した順序機械Ｍ２を生成する。
【００４５】
図４は図２に示した自動生成装置１１によって自動生成された検査装置の第１の実施の形態による概略構成を示すブロック図である。本実施の形態においては、検査装置はインデックス変換機構４２と、識別子抽出機構４３と、状態遷移制御機構４４と、トランザクション別状態記録領域４５とを備えている。
【００４６】
次に図４の検査装置の自動生成動作を説明する。
【００４７】
この検証装置を自動生成するための仕様記述１２は図１に示した通り、
（１）トランザクション識別子の集合１４、
（２）パケット　ｒ，ｓ，ｗ，ｘのそれぞれの観測値系列及びパケットｒ，ｓ，ｗ，ｘのそれぞれについて、識別子情報を取り出す規則１１５（どのタイミングでどの観測点に識別子が現れるかの情報）、及び
（３）トランザクションＲ，Ｗの　それぞれを構成するパケット系列１６を含んでいる。
【００４８】
トランザクション識別子の集合１４は　｛　１，　２，　…　，　ｎ　｝　とする。その他の仕様は図１２および図１３に示した内容と同じであるとする。なお、トランザクション１２が入力されるタイミング以外では　ｒｅａｄ＝０、ｗｒｉｔｅ＝０、ａｃｋ＝０　であり、バスに入出力される値は定められていないとする。
【００４９】
状態遷移制御機構４２は、以下の値を観測値から選択することで識別子を抽出する。
【００５０】
ｒｅａｄ＝１　のときのバスの値（パケットｒ）
ｗｒｉｔｅ＝１　のときのバスの値（パケットｗ）
ａｃｋ＝１　のときのバスの値（パケットｓ，ｘ）
インデックス変換機構４３は、識別子　１，　２，　…　，　ｎの状態をそれぞれトランザクション別状態記録領域４４のインデックス値　０，　１，　…　，　ｎ−１　にマッピングする。（識別子　ｉ　からインデックス値　ｉ−１への変換）である。すなわち、一般に識別子は０から始まる数字とは限らないので、インデックス変換機構４３は仕様記述１２における識別子を０から始まるインデックス値に変換するものである。
【００５１】
トランザクション別状態記録領域４４内の各領域にトランザクション識別子と１対１に対応する配列要素を確保することにより、その中にトランザクション固有の情報を記録することができ、正確な順序機械モデルを構成することができる。
【００５２】
状態遷移制御機構４５は、仕様記述１２に記載された通りの状態遷移を制御する機構である。
【００５３】
こうして自動生成された検査装置１３に検証対象であるハードウェア設計記述から出力される観測値を入力し、状態遷移制御機構４５から出力される値が仕様記述で定義された値と異なる場合に、状態遷移制御機構４５からエラー検出信号が出力され、検証対象であるハードウェア設計記述に誤りがあることがわかる。
【００５４】
図５は図４に示した検査装置における状態遷移制御機構４５をさらに詳細に示した検査装置の構成を示すブロック図である。図５に示すように、図４に示した状態遷移制御機構４５はパケット単位状態遷移制御機構（Ｔ１）４５−１と、サイクル単位状態遷移機械（Ｍ２）４５−２からなっている。
【００５５】
パケット単位状態遷移制御機構（Ｔ１）４５−１とトランザクション別パケット単位状態記録領域（Ｓ１）４４とで、単一の識別子に関してパケット単位で状態遷移する順序機械Ｍ１を形成している。パケット単位状態遷移制御機構（Ｔ１）４５−１は順序機械Ｍ１の状態遷移関数を表現する。トランザクション別パケット単位状態記録領域（Ｓ１）４４は状態機械Ｍ１の状態変数を複数セット並べた配列である。すなわち、パケット単位状態遷移制御機構（Ｔ１）４５−１に記載されている各状態を例えば２ビットで表してＪ１（００）、Ｊ２（００），Ｊ３（０１）等をトランザクション別パケット単位状態記録領域（Ｓ１）４４の各領域に記録する。
【００５６】
サイクル単位状態遷移機械（Ｍ２）４５−２はサイクル毎の動作を識別子を無視して表した順序機械である。
【００５７】
図５に示す構成によれば、トランザクション毎の情報記憶はサイクル単位の詳細な情報である必要はなく、パケットを入力記号とした状態遷移で十分である。これとは別にトランザクション共通のサイクル単位の動作を監視する機構を設け、それらを組み合わせればよい。
【００５８】
図６は順序機械Ｍ１における一つの識別子についての状態遷移の順序の例を説明する状態遷移図である。図において、初期状態Ｊ０の時にトランザクションＲのパケットｒが観測値として得られると状態Ｊ１に遷移することを示しており、状態Ｊ１の時にパケットｓが観測値として得られると状態Ｊ０に戻ることを示している。同様に、初期状態Ｊ０の時にトランザクションＷのパケットｗが観測値として得られると状態Ｊ２に遷移することを示しており、状態Ｊ２の時にパケットｘが観測値として得られると状態Ｊ０に戻ることを示している。
【００５９】
下記の表２に上記状態遷移の様子が示されている。
【００６０】
【表２】
2004021730.tif 000004
【００６１】
ハードウェア設計記述の検証においてこの規定状態遷移と異なる状態に遷移した場合は、パケット単位状態遷移制御機構（Ｔ１）４５−１からエラー検出信号が出力される。
【００６２】
図７は順序機械Ｍ２における状態遷移の順序の例を説明する状態遷移図である。上記のように、サイクル単位状態遷移機械（Ｍ２）４５−２はサイクル毎の動作を識別子を無視して表した順序機械なので、識別子に関係なく、ｒｅａｄ，　ｗｒｉｔｅ，ａｃｋの値によって状態がどのように遷移するかが決まる。
【００６３】
サイクル単位の順序機械Ｍ２は、識別子情報を無視することにより、パケットｒ，　ｓ，　ｗ，　ｘ　をランダムに実行する順序機械に簡略化できる。
【００６４】
図示例では、初期状態Ｋ０の時に０００が継続するとこれは何も変化しないアイドル状態であり、状態は初期状態Ｋ０のままである。
【００６５】
初期状態Ｋ０の時に１００が観測されると、状態Ｋ１に遷移し、状態Ｋ１において０００が観測値として得られると、初期状態Ｋ０に戻る。
【００６６】
初期状態Ｋ０の時に００１が観測されると、状態Ｋ２に遷移し、状態Ｋ２において０００が観測値として得られると、初期状態Ｋ０に戻る。
【００６７】
初期状態Ｋ０の時に０１０が観測されると、状態Ｋ３に遷移し、状態Ｋ３において０００が観測値として得られると、状態Ｋ４に遷移し、状態Ｋ４の時に０００が観測されると初期状態Ｋ０に戻る。
【００６８】
下記の表３に上記状態遷移の様子が示されている。
【００６９】
【表３】
2004021730.tif 000005
【００７０】
ハードウェア設計記述の検証においてこの規定状態遷移と異なる状態に遷移した場合は、パケット単位状態遷移制御機構（Ｔ１）４５−１からエラー検出信号が出力される。
【００７１】
パケット長が大きい場合、サイクル単位で信号系列を追跡するための機構が大きくなる。図１２および図１３の仕様におけるパケット長は１から３サイクルであるが、例えば１つのパケットが１０００サイクルの信号系列で構成されているとすれば、その状態遷移をサイクル単位で監視する順序機械には１０００の状態が必要になる。この情報はトランザクション別（識別子別）の記憶領域Ｓ１にそれぞれ保存するのではなく、トランザクション共通の順序機械Ｍ２で実現するとよい。一方、サイクル数が少ないトランザクションの場合は、トランザクション別の記憶領域Ｓ１には、パケット単位で状態を記録すればよい。これにより、検証装置の構造の簡単化および記憶領域の削減に役立つ。
【００７２】
図８は図２に示した自動生成装置１１によって自動生成された検査装置の第２の実施の形態による概略構成を示すブロック図である。図８において、図４との相違点は、インデックス変換機構８３は、ｎ通りのトランザクションのｎ通りのトランザクション識別子をそのｎ通りより少ないｍ通りの配列インデックスに多対１変換をし、そのｍ通りのトランザクションに関する情報をｍ通りの配列インデックスに対応したｍ通りのトランザクション別状態記録領域６４に記録するようにした点である。したがって、図８においては、トランザクション別状態記録領域５４のアドレスは０からｍ−１までである。
【００７３】
トランザクション識別子の数より少ない配列要素を使用することで、確率的にインデックス値の重複が発生して検証の正確さが失われるが、検証装置に必要な記憶領域を削減することができる。したがって検証の正確さと記憶領域の大きさのトレードオフを調整することができるようになる。
（付記１）　ハードウェア設計記述の正しさを監視する検査装置の自動生成装置であって、前記ハードウェア設計記述は一つの識別子を持ったパケットの系列からなる一つのトランザクションの実行の途中に他の識別子を持ったパケット系列からなる他のトランザクションを実行するようにして、複数のトランザクションを並列に実行するようにした記述であり、前記トランザクション識別子の集合、各パケットを構成する観測値系列と該観測値系列に含まれた識別子情報を取り出す規則、及びそれぞれのトランザクションを構成するパケット系列を規定したものを仕様記述として予め定義しておき、前記仕様記述に基づいて前記検査装置を自動生成することを特徴とする、前記検査装置の自動生成装置。（１）
（付記２）　前記仕様記述を読み込む仕様記述読み込み部と、読み込まれた仕様記述中の前記識別子情報を取り出す規則を用いて識別子抽出機構を自動生成する識別子抽出機構生成部と、前記識別子情報を所定の配列インデックスに変換するインデックス変換機構を前記読み込まれた仕様記述から得られる前記識別子情報に基づいて自動生成するインデックス変換機構生成部と、前記読み込まれた仕様記述中の前記トランザクションを構成するパケット系列から単一識別子に関するパケット単位の第１の順序機械を自動生成する第１順序機械生成部と、前記読み込まれた仕様記述中の前記パケットを構成する観測値系列に基づいて前記読み込まれた仕様記述からサイクル単位の第２の順序機械を自動生成する第２の順序機械生成部とを備えていることを特徴とする、付記１記載の自動生成装置。（２）
（付記３）　前記インデックス変換機構生成部は、ハードウェアの検証中に該ハードウェアに入力されるｎ通りのトランザクションのｎ通りのトランザクション識別子をｎ通りの配列インデックスに１対１変換をし、前記ｎ通りのトランザクションに関する情報を前記ｎ通りの配列インデックスに対応した前記ｎ通りのトランザクション別状態記録領域に記録するようにしたインデックス変換機構を生成することを特徴とする、付記２記載の自動生成装置。（３）
（付記４）　前記インデックス変換機構生成部は、ハードウェアの検証中に該ハードウェアに入力されるｎ通りのトランザクションのｎ通りのトランザクション識別子を前記ｎ通りより小さいｍ通りの配列インデックスに多対１変換をし、前記ｍ通りのトランザクションに関する情報を前記ｍ通りの配列インデックスに対応した前記ｍ通りのトランザクション別状態記録領域に記録するようにしたインデックス変換機構を生成することを特徴とする、付記２記載の自動生成装置。（４）
（付記５）　コンピュータにハードウェア設計記述の正しさを監視する検査装置の自動生成を実行させるプログラムであって、前記ハードウェア設計記述は一つの識別子を持ったパケットの系列からなる一つのトランザクションの実行の途中に他の識別子を持ったパケット系列からなる他のトランザクションを実行するようにして、複数のトランザクションを並列に実行するものであり、前記トランザクション識別子の集合、各パケットを構成する観測値系列と該観測値系列に含まれた識別子情報を取り出す規則、及びそれぞれのトランザクションを構成するパケット系列を規定したものを仕様記述として予め定義しておき、前記仕様記述に基づいてコンピュータに前記検証装置を自動生成させることを特徴とする、前記検証装置の自動生成プログラム。（５）
（付記６）　コンピュータに、前記仕様記述を読み込ませる手順と、読み込まれた仕様記述中の前記識別子情報を取り出す規則を用いて識別子抽出機構を自動生成する手順と、前記識別子情報を所定の配列インデックスに変換するインデックス変換機構を前記読み込まれた仕様記述から得られる前記識別子情報に基づいて自動生成する手順と、前記読み込まれた仕様記述中の前記トランザクションを構成するパケット系列から単一識別子に関するパケット単位の第１の順序機械を自動生成する手順と、前記読み込まれた仕様記述中の前記パケットを構成する観測値系列に基づいて前記読み込まれた仕様記述からサイクル単位の第２の順序機械を自動生成する手順とを実行させることを特徴とする、請求項５記載の自動生成プログラム。
【００７４】
【発明の効果】
以上説明したように、本発明によれば、一つの識別子を持ったパケットの系列からなる一つのトランザクションの実行の途中に他の識別子を持ったパケット系列からなる他のトランザクションを実行するようにして、複数のトランザクションを並列に実行するようにしたハードウェア設計記述の論理検証を行う検査装置を、トランザクション識別子の集合、各パケットを構成する観測値系列とそれに含まれた識別子情報を取り出す規則、および、それぞれのトランザクションを構成するパケット系列を規定した仕様記述から人手に頼らず自動的に生成することができる。また、本発明では汎用的な順序機械モデルを生成するため、専用ハードウェアを用いた高速なエミュレーション環境などでも利用可能である。このため、従来の同等なものを手作業で実装する方法に比べ、作業工数、実装誤りの可能性、再利用性などの面において、実用的には極めて有用である。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態による検査装置の自動生成装置の生成手順の概略を示すブロック図である。
【図２】図１に示した自動生成装置１１の構成を示すブロック図である。
【図３】図２に示した自動生成装置１１の動作を説明するフローチャートである。
【図４】図２に示した自動生成装置１１によって自動生成された検査装置の第１の実施の形態による概略構成を示すブロック図である。
【図５】図４に示した検査装置における状態遷移制御機構４５をさらに詳細に示した検査装置の構成を示すブロック図である。
【図６】順序機械Ｍ１における一つの識別子についての状態遷移の順序の例を説明する状態遷移図である。
【図７】順序機械Ｍ２における状態遷移の順序の例を説明する状態遷移図である。
【図８】図２に示した自動生成装置１１によって自動生成された検査装置の第２の実施の形態による概略構成を示すブロック図である。
【図９】従来のハードウェア設計記述の論理検証装置の一例を示すブロック図である。
【図１０】従来のハードウェア設計記述の論理検証装置の他の一例を示すブロック図である。
【図１１】図１０に示したハードウェア設計記述１０２の論理検証動作を説明する図である。
【図１２】検証対象であるハードウェア設計記述１０２の入出力を示す仕様記述の一例としてのトランザクションＲの例を示す図である。
【図１３】検証対象であるハードウェア設計記述１０２の入出力を示す仕様記述の一例としてのトランザクションＷの例を示す図である。
【図１４】トランザクションを並列に実行する一例の説明図である。
【符号の説明】
１１…自動生成装置
１２…仕様記述
１３…検査装置
１４…トランザクション識別子の集合
１５…各パケットを構成する観測値系列と該観測値系列に含まれた識別子情報を取り出す規則
１６…トランザクションを構成するパケット系列
２１…仕様記述読み込み部
２２…識別子抽出機構生成部
２３…インデックス変換機構生成部
２４…パケット単位の純情機械生成部
２５…サイクル単位の順序機械生成部
４２…識別子抽出機構
４３…インデックス変換機構
４４…トランザクション別状態記録領域
４５…状態遷移制御機構
【図１】
2004021730.tif 000006
【図２】
2004021730.tif 000007
【図３】
2004021730.tif 000008
【図４】
2004021730.tif 000009
【図５】
2004021730.tif 000010
【図６】
2004021730.tif 000011
【図７】
2004021730.tif 000012
【図８】
2004021730.tif 000013
【図９】
2004021730.tif 000014
【図１０】
2004021730.tif 000015
【図１１】
2004021730.tif 000016
【図１２】
2004021730.tif 000017
【図１３】
2004021730.tif 000018
【図１４】
2004021730.tif 000019