JP4112886B2 - デバイスのバス・プロトコル準拠試験方法およびシステム - Google Patents

デバイスのバス・プロトコル準拠試験方法およびシステム Download PDF

Info

Publication number
JP4112886B2
JP4112886B2 JP2002098913A JP2002098913A JP4112886B2 JP 4112886 B2 JP4112886 B2 JP 4112886B2 JP 2002098913 A JP2002098913 A JP 2002098913A JP 2002098913 A JP2002098913 A JP 2002098913A JP 4112886 B2 JP4112886 B2 JP 4112886B2
Authority
JP
Japan
Prior art keywords
test
bus
compliance
configuration file
protocol
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
Application number
JP2002098913A
Other languages
English (en)
Other versions
JP2002358249A (ja
Inventor
マーク ナイティンゲイル アンドリュー
Original Assignee
エイアールエム リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from GBGB0109283.2A external-priority patent/GB0109283D0/en
Application filed by エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2002358249A publication Critical patent/JP2002358249A/ja
Application granted granted Critical
Publication of JP4112886B2 publication Critical patent/JP4112886B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はデバイスのバス・プロトコル準拠を試験するための方法およびシステムに関する。
【0002】
【従来の技術】
システムに統合するための部品を開発する場合、その部品がシステムに統合されたときに所定の動作をするかどうかを確認するために複数の試験手順が実行されるのが普通である。しばしばシステムは1以上のバスを介して互いに接続された複数個の個別部品で構成される。バス仕様が各部品に標準インタフェースを提供することによって、部品供給業者はその部品を最終的に統合するシステムに関する知識なしでもその部品を設計および試験できる場合が多い。
【0003】
しかし、システム内で特別なバス仕様に従うバスへ接続する部品を開発する場合には、その部品が、その定義されたバス仕様に従うそのバスとインタフェースすることをチェックする必要があるのは明らかである。
【0004】
ハード的な部品開発は複数の段階を経て行なわれるのが一般的である。まず最初に、その部品の機能的な動作/ビヘイビアが、例えばレジスタ・トランスファ・ランゲージ(RTL)を使用して定義される。広く用いられる2つのRTLはVHDLおよびVerilogである。更に、そのようなRTLコーディングの前に、設計意図が正しいことをトランザクション・レベルで検証するために、UML(ユニバーサル・モデリング・ランゲージ)を用いてビヘイビア・モデルを構築しても良い。
【0005】
一旦ハードウエア部品のRTL表現が開発されれば、次にこれを複数個の既知の合成ツールの任意のものを用いて一連のハードウエア要素の形に合成する。次に、この合成で得られるハードウエア設計を用いて、例えばシリコン上へ部品を適切に作製することによって実際のハードウエア部品が作製される。部品が実際にハードウエアの形に実現された後でその部品に対して試験手順を施すのは明らかにコストを要するので、その代わりに、RTL表現から生成される実際のハードウエアが正しく動作することを確認するために、部品のRTL表現に対して厳格な試験を行なうのが一般的である。
【0006】
従って、1つの部品が既知のバス仕様と正しくインタフェースすることをチェックするプロセスが部品のRTL表現に対して適用され、それがバス仕様に定義されたバス・プロトコルに従っていることをチェックするようになっている。そのようなプロトコル・チェックを実行する複数の方法が知られている。
【0007】
まず、その中に被験デバイス(DUT)と呼ぶ試験すべき部品のRTL表現を含むRTLテストベンチを生成することができる。次に、その他のデバイスのRTL表現も準備され、バスを介してDUTのRTL表現と互いにつながれてRTLテストベンチ内にシステム・シミュレーションが生成される。次に、1つのデバイスから別のデバイスへスティミュラスが与えられて、その結果の波形が目で見える形で観測されるか、あるいはシステム・シミュレーションに統合される自己点検機構またはモジュールによって観測される。このプロセスはバス・プロトコルで定義されたトランザクションをチェックできるし、また一般的にすべてのバス・プロトコル・トランザクションが正しく記録されるまでそのチェックを徹底的に繰り返すことができる。
【0008】
上で述べたRTLテストベンチでバス・プロトコル準拠をチェックするために利用できる別の方法は、RTLで精巧なバス・フォロワを構築し、次にバス・トラフィックをモニタすることによってバス・フォロワ内部のステート・マシンが任意の有効なポイントにおいて実際のシステム・シミュレーションで観測されるものと合致することを確認するものである。
【0009】
準拠性をチェックする別の代替法はインテグレーション試験コードを使用するもので、マスタ・デバイスに対してスレーブ・デバイスへのバス上で読出しおよび書込みトランザクションを実行させ、次に目標データが正しく読出しおよび/または書込みされたことをチェックするものである。マスタ・デバイスはバスを介してトランスファ要求を発行するように設計されたデバイスであると考えることができ、またスレーブ・デバイスはそのようなトランスファ要求の受け手のデバイスであると考えることができる。一例として、プロセッサ・コアはマスタ・デバイスとして使用され、メモリからインテグレーション試験コードを読み出すように、またその後でバス・プロトコル準拠性をチェックするために予め定められた一連の読出しおよび書込みトランザクションを実行する試験コードを実行するように構成することができる。そのようなコード・シーケンスはデバイス間の調停を引き起こし、またバス・プロトコルのその他の仕様をチェックするためにデバイスからの特定の応答を誘発するためにも実行することができる。このやり方は、一般に比較的低速であること、またバス・プロトコルを直接的にモニタせずに、バスを介して誘発されたアクションの結果をモニタすることでバス・プロトコル準拠性について仮定する点で既に述べた2つの方法に比べて満足度は劣る。それにも拘らず、このやり方はバス上でのデバイス相互接続を試験する形式として現在でも使用されている。
【0010】
先に述べたRTLテストベンチ方式の代わりに使用できるプロトコル・チェックを実行する別の既知の方法は、例えばVeraまたはSpecmanのようなHVL(ハイレベル・ベリフィケーション・ランゲージ)開発ツールを使用してアブストラクト・レベルでバス・トランザクションをモニタするものである。システム・シミュレーション中の各デバイスのRTL表現を生成する代わりに、それをRTLで書き下ろすことなしに、HVL開発ツールを用いてデバイスをモデル化できる。次にそれは例えば開始されたトランスファや進行中のトランスファ等のアブストラクト情報を記録することによってバス・トランザクションをモニタすることができる。
【0011】
【発明の解決しようとする課題】
当業者には理解されるように、上述の方法の任意のものを用いる場合でも、特に例えば、各デバイスの多数のコンフィグレーションおよび機能を考慮すると、インクリメント・バーストのみをサポートするマスタ・デバイスや書込みトランザクションを受け付けないスレーブ・デバイスのように、特別なマスタ・デバイスやスレーブ・デバイス、あるいはマスタ・デバイスとスレーブ・デバイスとの組合せを試験するプロセスは時間の掛かるプロセスである。最初の2つの方法について考えると、これらのパラメータを提供するためにスティミュラス発生またはRTLバス・フォロワに対して一定のコンフィギュレーションを追加することはできるが、それでもRTLテストベンチは例えばVHDLやVerilogのような特別なRTLで表現したDUTのみを試験できるのが普通である。従って、一例として、VerilogDUT用にVerilogテストベンチを構築すれば、そのDUTのVHDLバージョンを検証するためにVHDLテストベンチも必要になるのが普通である。更に、バス・ハンドオーバやアーリー・バースト・ターミネーションのような特定のバス活動が必要となれば、専用のRTLなしにそのタスクの実行を励起することは極めて困難で、デバイスを設計および検証するために要する時間が更に追加されることになる。
【0012】
HVL開発ツール方式はRTL言語依存性の問題を軽減するが、要求されるチェック・ルーチンを実現するためには高度な技能が必要である。更に、そのようなチェック・ルーチンが再利用できるようにライブラリ・モジュールとして実現できたとしても、各々のチェック環境のコンフィギュレーションおよびデバッグは必要である。
【0013】
従って、デバイスのバス・プロトコル準拠を試験するための進歩した方法を提供することが望ましい。
【0014】
【課題を解決するための手段】
第1の態様から眺めると、本発明はデバイスのバス・プロトコル準拠を試験する方法を提供し、その方法は:(a)そのデバイスのタイプおよびそのデバイスの機能を規定する予め定められたパラメータを含むコンフィギュレーション・ファイルを読み出す工程;(b)コンフィギュレーション・エンジンを採用して、前記コンフィギュレーション・ファイルに従って選ばれ、バスを介してデバイス表現と接続される試験部品を生成することによってデバイス用の試験環境を動的に生成する工程;(c)テスト・シーケンスを実行させる工程;および(d)テスト・シーケンスの実行中に前記デバイス表現と1個以上の前記試験部品との間で受け渡される信号をモニタすることによってバス・プロトコル準拠性を表示する結果のデータを生成する工程;を含む。
【0015】
本発明に従えば、デバイスのタイプおよびそのデバイスの機能を規定する予め定められたパラメータを含むコンフィギュレーション・ファイルが用意され、次に、バスを介してデバイス表現とつながれて試験環境を生成するための選ばれた試験部品を生成することによって、試験すべきデバイス用の試験環境が動的に生成される。試験部品はコンフィギュレーション・ファイルに従って選ばれる。次に、テスト・シーケンスを実行でき、テスト・シーケンスの実行中に、デバイス表現と1個以上の試験部品との間で受け渡される信号をモニタしてバス・プロトコル準拠性を表示する結果のデータを生成することができる。
【0016】
従って、本発明に従えば、コンフィギュレーション・ファイルに定義された被験デバイス(DUT)に関連する試験環境が自動的に生成される。コンフィギュレーション・エンジンは多様な異なる試験部品にアクセスし、コンフィギュレーション・ファイルに含まれる情報に基づいて、試験環境へ取り込むために選択できることが好ましい。例えば、コンフィギュレーション・ファイルが試験すべきデバイスをマスタ・デバイスと指定してあれば、コンフィギュレーション・エンジンは試験環境中にデコーダ、アービタ、複数のスレーブ・デバイス、およびダミー・マスタ・デバイスを生成およびコンフィギュアするように構成されよう。アービタは複数のマスタ・デバイス間で行なわれるバス・アクセス要求を調停するために使用され、デコーダはバス上へ発行された任意の特定のトランスファ要求が指しているスレーブ・デバイスを同定するために使用される。
【0017】
1つの実施の形態では、試験部品はオブジェクト指向型プログラミング(OOP)のオブジェクトとして書かれ、試験環境に含めるための試験部品を生成する工程には、試験部品のインスタンス化(すなわち、オブジェクトのインスタンス生成)が含まれ、このオブジェクトのメソッドがインスタンス化された試験部品の試験環境内でのビヘイビアを定義する。しかし明らかなように、OOP技術を使用する必要は必ずしもなく、試験部品は任意のその他の適当なやり方で表現することができる。
【0018】
本発明の方法に従ってデバイスの試験準備を行なう場合、ユーザはコンフィギュレーション・エンジンがそのデバイスに適した試験環境を動的に生成するために知っておく必要があるパラメータを含むコンフィギュレーション・ファイルを用意する必要がある。好適な実施の形態では、コンフィギュレーション・ファイルは1組のコンフィギュレーション・ファイル・テンプレートから選ばれる。その組には各デバイス・タイプについてのコンフィギュレーション・ファイル・テンプレートが含まれ、各コンフィギュレーション・ファイルにはそのデバイスに特有なコンフィギュレーション情報を提供するための複数のエントリが含まれる。コンフィギュレーション情報は多様な形態を取るが、典型的にはそのデバイスのタイプの同定、およびそのデバイスの機能を含む。すなわち一例として、デバイスのタイプはマスタ、スレーブ、アービタ、デコーダ等と指定される。デバイスの機能は、例えば、そのデバイスがサポートする必要のあるバス・プロトコルのサブセットを指定する。すなわち、DUTは必ずしもそのバスの性能のすべてを利用する必要はなく、デバイスによって利用されないバス・プロトコル部分に関する準拠性を試験する必要はない。
【0019】
デバイスのタイプおよびデバイスの機能に加えて、コンフィギュレーション・ファイル中のその他のコンフィギュレーション情報には、DUT内で使用される信号名がバス仕様の信号名とどのように対応するかを示す信号マップのほかに、例えば、デバッグやシステム環境設定に関連する一般的なテストベンチ・パラメータが含まれる。
【0020】
明らかなように、テスト・シーケンス実行中にデバイス表現と1個以上の試験部品との間で受け渡される信号をモニタするために使用できる複数のプロセスが存在する。好適な実施の形態では、このモニタ工程には、プロトコル・チェック・コンポネントを採用して、テスト・シーケンス実行中にデバイス表現と1個以上の試験部品との間で受け渡される信号が、バス・プロトコルの予め定められた1組の規則に違反しないことをチェックする工程が含まれる。そのようなプロトコル・チェックには、被験デバイスが予め定められた1組の規則に従うことを確認するためのサイクル毎のチェックが含まれる。試験されるデバイスはそれがバス・プロトコルに準拠すると判断されるためには、それらの規則のいずれにも違反してはならない。典型的は、予め定められた規則の組は試験されるデバイスに拘わらず同一であり、従って予め定められた規則の組は好適な実施の形態のコンフィギュレーション・ファイルの内容によって影響されない。
【0021】
好適な実施の形態で採用できる別のモニタ・プロセスは、カバレッジ・モニタ・コンポネントを採用して、テスト・シーケンスの実行中にデバイス表現と1個以上の試験部品との間で受け渡される信号をモニタして、1組のカバレッジ・ポイントが観測されるかどうかを判定する工程を含む。カバレッジ・ポイントは典型的には、バス・プロトコル準拠を表明する前に試験環境内で確認すべき各種バス・トランザクションのリストである。カバレッジ・ポイントの目的は、実行されるテスト・シーケンス(単数または複数)が試験されるデバイスを十分活用して準拠性が表明できることを保証することである。
【0022】
好適な実施の形態では、カバレッジ・ポイントの組は試験方法の工程(a)で読み出されるコンフィギュレーション・ファイルに依存してコンフィギュアされる。従って、試験される任意の特定デバイスはバス・プロトコルのすべての機能を使用しなくてもよく、カバレッジ・ポイントはコンフィギュレーション・ファイルに基づいて、試験されるデバイスに関連するカバレッジ・ポイントの組を指定するように調整することができる。標準的な予め定義されたバス・トランザクションのシーケンスの代わりにカバレッジ・ポイントを使用することの利点は、そうすることによって、特別なトランザクション・シーケンスを必要とするだけで特定デバイスがバス・インタフェースを完全に活用することができるということである。
【0023】
好適な実施の形態では、試験方法の工程(d)でプロトコル・チェック・コンポネントおよびカバレッジ・モニタ・コンポネントの両方が使用され、それによって、前記組中のすべてのカバレッジ・ポイントがバス・プロトコルの予め定められた規則に違反せずに観測されれば、この方法は更にバス・プロトコル準拠を確認する出力を発生する工程を含む。この出力は、例えばコンフィギュレーション・ファイルに規定された元のデバイス性能を与えた場合にバス・プロトコル準拠を保証するチェック・サム証明のような準拠性証明の形を取る。
【0024】
先に述べたように、コンフィギュレーション・エンジンは、コンフィギュレーション・ファイルに従って選ばれた試験部品を生成するように構成される。好適な実施の形態では、生成すべき試験部品は試験すべきデバイスのタイプに従って選ばれる。このデバイス・タイプはコンフィギュレーション・ファイルに規定される。
【0025】
更に好適な実施の形態では、少なくとも1つの試験部品はそれに付随してそれが示すであろう複数のビヘイビアを有しており、ビヘイビアの選択は試験すべきデバイスのタイプに依存してその試験部品が生成されるときに決まる。例えば、試験すべきそのデバイスがスレーブ・デバイスで、試験部品の1つとしてデコーダが生成される場合、好適な実施の形態では、試験すべきデバイスの選択を解除して、別のスレーブを選択させるようなビヘイビアを採用する。これは明らかに、スレーブ・デバイスを試験するときに、デコーダに含めるべき有用なビヘイビアである。しかし、試験すべきデバイスがマスタ・デバイスである場合には、デコーダのこのビヘイビアは関連性がなく、デコーダ試験部品のビヘイビア全体から省くことができる。先に述べたように、好適な実施の形態では、各試験部品はOOPオブジェクトとして書かれ、それらのオブジェクトのインスタンス化は、次に、試験環境を生成するときにコンフィギュレーション・エンジンによって生成される。そのような実施の形態では、複数のビヘイビアがOOPオブジェクトの個別メソッドとして実現され、そのメソッド(単数または複数)はインスタンスを作成する場合に選ばれる任意のインスタンスに適用可能である。これをOOP用語では“継承”と呼ぶ。
【0026】
明らかなように、工程(c)で試験方法が実行するテスト・シーケンスは多様な形態を取ることができる。例えば、テスト・シーケンスは予め決められたテスト・シーケンスの組から選ぶことができる。しかし、好適な実施の形態では、テスト・シーケンスは試験すべきデバイス用に特別に開発されたユーザ定義のテスト・シーケンスであり、試験すべきその特別なデバイスに関連するバス・プロトコル部分への準拠性を試験する目的を持つ。試験方法の工程(c)および(d)は、バス・プロトコルとの準拠性を確定するため十分なトランザクションが観測されるまで、工程(c)において毎回テスト・シーケンスを変更または修正しながら繰り返してよい。
【0027】
明らかなように、デバイス表現は複数のやり方で試験環境に取り込むことができる。しかし、好適な実施の形態では、デバイス表現はインタフェース・モジュール中に生成され、試験環境を生成する前記工程(b)にはインタフェース・モジュール中の信号を試験環境中の信号へマッピングする工程が含まれる。このマッピングはコンフィギュレーション・ファイルに定義されている。インタフェース・モジュールはデバイス表現を取り巻く“ラッパ”として機能し、試験環境の残りの部分に対してインタフェースを提供する。
【0028】
典型的には、デバイス表現はインタフェース・モジュールの唯一の要素ではない。例えば、インタフェース・モジュールの一部として何らかのクロックおよび多重化機能を提供することも可能であり、実際に或る実施の形態ではその他のデバイス表現がインタフェース・モジュールに含まれている。従って、本発明の好適な実施の形態では、信号のマッピングを容易にするために、インタフェース・モジュール内のデバイス表現の階層レベルをコンフィギュレーション・ファイルが指定する。
【0029】
好ましくは、本方法は更に、バス・プロトコルと互換性を持ち、汎用の入力/出力インタフェースを備えるトリックボックス・コンポネントを提供する工程を含む。トリックボックスは、バス・プロトコルには関連しないが被験デバイスに関連する信号の制御および観測を許容する。トリックボックスは一般に、そのような信号を入力および出力するための入力および出力ポートを持ち、そのほかにトリックボックスを制御するための、バスへのスレーブ・インタフェースを備える。スレーブ・インタフェースは、トリックボックスが試験環境内でインスタンス化できて、被験デバイスよりもトリックボックスにアクセスするテスト・シーケンスを用いて制御できることを意味する。好適な実施の形態では、トリックボックスは試験すべきデバイス表現を含むインタフェース・モジュールに含まれている。明らかなように、或る実施例では、異なる試験手順を容易にするために複数のトリックボックス・コンポネントが採用されよう。
【0030】
先に述べたように、試験すべきデバイスのタイプは好ましくはマスタ、スレーブ、アービタ、あるいはデコーダのいずれかである。好適な実施の形態では、バス・プロトコルはARM AMBAバス・プロトコルであり、バスはシステム・バスおよびペリフェラル・バスを含み、試験されるデバイスのタイプにはシステム・バス・マスタ、システム・バス・スレーブ、ペリフェラル・バス・マスタ、ペリフェラル・バス・スレーブ、アービタ、あるいはデコーダが含まれる。当業者には明らかなように、ペリフェラル・バス・マスタはペリフェラル・バスとシステム・バスとを接続するブリッジである。
【0031】
試験環境に取り込まれるデバイス表現は多様な形態を取る。しかし、好適な実施の形態では、デバイス表現はレジスタ・トランスファ・ランゲージ(RTL)表現である。
【0032】
第2の態様から眺めると、本発明は、本発明の第1の態様に従う、デバイス準拠性を試験する方法を実行するように処理ユニットをコンフィギュアするように働くコンピュータ・プログラムを提供する。本発明はまた、本発明の第2の態様に従うコンピュータ・プログラムを含む運搬媒体を提供する。
【0033】
第3の態様から眺めた場合、本発明はデバイスのバス・プロトコル準拠を試験するためのデータ処理システムを提供する。本システムは:デバイスのタイプおよびデバイスの機能を規定する予め定められたパラメータを含むコンフィギュレーション・ファイルを記憶するためのメモリ;および次の:(i)コンフィギュレーション・ファイルに従って選ばれ、バスを介してデバイス表現と接続されて試験環境を形成する試験部品を生成することによって、デバイスのための試験環境を動的に生成する工程;(ii)テスト・シーケンスを実行する工程;および(iii)前記テスト・シーケンスの実行中にデバイス表現と1個以上の試験部品との間で受け渡される信号をモニタして、バス・プロトコル準拠性を表示する結果のデータ生成する工程;を実行するように構成された処理ユニット;を含む。
【0034】
本発明は試験すべきデバイスが1個の場合について説明してきたが、明らかなように、本方法を複数デバイスの同時試験に適用することを妨げるものは原理的に何もない。
【0035】
本発明は試験すべきデバイスのための試験環境を動的に生成する。試験環境は試験すべきデバイスに関連するコンフィギュレーション・ファイルに含まれる情報に従って生成される。この試験法を今後は“能動”モードと呼ぶことにする。しかし、好適な実施の形態では、既述の試験法を提供するために用いるソフトウエア・ツールを、システム・シミュレーション環境が既に存在し、従って試験環境を動的に生成する必要がない過去のシミュレーション環境に対しても互換的に使用することができる。このモードを今後“受動”動作モードと呼ぶ。このような動作モードでもコンフィギュレーション・ファイルが定義され、それを用いて、試験中にシステム・シミュレーション環境内の各種デバイス間で受け渡される信号をモニタするために使用されるプロセスをコンフィギュアする。
【0036】
本発明は更に、一例として添付図面に示す本発明の好適な実施の形態を参照しながら説明する。
【0037】
【発明の実施の形態】
本発明の好適な実施の形態を説明するために、ARM社によって開発された“アドバンスト・マイクロコントローラ・バス・アーキテクチャ”(AMBA)仕様に従って動作するバスへつながるデバイスの試験について説明する。試験手順を詳しく説明する前に、AMBA仕様に従って動作するバスを採用するデバイスの実現について図1を参照しながら簡単に説明する。
【0038】
図1はマイクロコントローラ・チップあるいはシステム・オン・チップ(SoC)10の形の集積回路を示しており、それはパーソナル・オーガナイザ、移動電話、テレビ用トップボックス等の装置に使用されよう。チップ10は、ブリッジ回路170を介してつながれたシステム・バス110(今後はAHBとも呼ぶ)およびペリフェラル・バス195(今後はAPBとも呼ぶ)を含む。これらのバスはAMBA仕様に従って動作する。AMBA仕様は高性能の32ビットおよび16ビット埋め込みマイクロコントローラを設計するためのオンチップ通信標準を定義しており、システム・バス110は高性能なシステム・モジュール用に、またペリフェラル・バスは低電力周辺デバイス用に用いられる。高性能システム・バス110は、CPUおよびその他のダイレクト・メモリ・アクセス・デバイスをシステム・バス上においたままで外部メモリ帯域幅を維持することができ、他方ブリッジ回路170はシステム・バスをより狭いペリフェラル・バス195へ接続し、ペリフェラル・バス上には狭帯域幅の周辺デバイスが配置される。ブリッジ回路170はシステム・バス110とペリフェラル・バス195との間で必要なプロトコル変換を実行する。
【0039】
チップ10は例えばCPU140やDMAコントローラ145のような、システム・バス110へつながれる複数のマスタ論理ユニットを含むことができる。ここでは説明の便宜上、“マスタ”論理ユニットという用語は処理要求を発行するように設計された論理ユニットを意味し、他方そのような処理要求の受け手として設計された論理ユニットを“スレーブ”論理ユニットと呼ぶことにする。時間的に任意の瞬間にシステム・バスへアクセスするのはマスタ論理ユニットのうちの1つだけであり、このためシステム・バス110への各種マスタ論理ユニットによるアクセスを制御するためにアービタ120が提供される。1つのマスタ論理ユニットがシステム・バス110へアクセスしようとするときは、それはアービタ120に対してバス要求信号を発行する。時間的に任意の瞬間にアービタ120によって受信されるバス要求信号が1つのみであれば、それはそのバス要求信号を発行したマスタ論理ユニットに対してアクセスを許可する。しかし、時間的に任意の瞬間にアービタ120によって2つ以上のバス要求信号が受信されれば、アービタはどのマスタ論理ユニットにシステム・バス110へのアクセスを与えるかを決めるために、予め定められた優先基準を適用するようになっている。バスへのアクセスを要求するすべてのマスタ論理ユニットのうちで、アービタ120は最も高い優先度を有するマスタ論理ユニットにアクセスを許可する。
【0040】
マスタ論理ユニットに加えて、1以上のスレーブ論理ユニットをシステム・バス110へつなぐこともある。分かり易いように、1つのスレーブ論理ユニット、例えばランダム・アクセス・メモリ(RAM)160だけが図1には示されている。トランスファ要求がスレーブ論理ユニットに対して発行された場合、アドレスがシステム・バス110上へ出力され、それがデコーダ論理165で復号されてどのスレーブ論理ユニットがそのトランスファ要求を処理することになっているかが決められる。デコーダは次にそれに従って適当なスレーブ論理ユニットを指定する。
【0041】
システム・バス110はまた外部バス・インタフェース130を介して外部バス115へつなぐことができる。好適な実施の形態では、外部バス115は32ビットのベクトル・バスである。
【0042】
また、システム・バス110へつながれる各種の論理ユニットの動作周波数を制御するためにクロック発生器175が設けられる。これによって、マスタ論理ユニットによって出力されるトランスファ要求信号のタイミングはクロック発生器175のクロック周波数で決まることになる。
【0043】
ペリフェラル・バス195には複数の周辺デバイスが接続されよう。そのような周辺デバイスの例は、シリアル・データを受信および送信するための“ユニバーサル非同期受信および送信”(UART)論理ユニット150、例えば割り込みを発生するために用いられるタイマ155、短距離の高速赤外通信のために用いられる赤外線通信(IrDA)インタフェース180、ユニバーサル・シリアル・バス(USB)185、同期データ・リンク制御(SDLC)インタフェース200、およびアナログ・ディジタル(A/D)およびディジタル・アナログ(D/A)変換器205および210である。
【0044】
図1に示すマイクロコントローラ・チップ10では、ペリフェラル・バス195はシステム・バス110と同じクロック速度で動作するように構成されている。従って、システム・バス110用としてクロック発生器175で生成されるクロック信号はブリッジ170にも送られ、ブリッジ170は周辺ユニット150、155、180、185、200、205、および210の動作を制御するために必要なクロック信号を発生させるように構成されている。
【0045】
マスタ論理ユニット140、145が、ペリフェラル・バス195へつながれた周辺ユニットによるハンドリングを要求する処理要求をシステム・バス110上へ発行するときは、ブリッジ170がその処理要求信号を受信し、周辺ユニット150、155、180、185、200、205、210のどれに対してその処理要求が向けられているかを判断し、正しい周辺ユニットに対して、その周辺ユニットの動作を制御するために必要なクロック信号と一緒にその処理要求を出力する。更に、その処理要求をペリフェラル・バス上へ出力する前に、システム・バス110で使用されるプロトコルと、ペリフェラル・バス195で使用されるプロトコルとの間で必要なプロトコル変換工程がブリッジ170によって実行される。
【0046】
図1に示す構造では、メイン・システム・バス110に負荷を掛けずに複数の周辺ユニットをペリフェラル・バス195へつなぐことができ、ペリフェラル・バス195は1つの周辺ユニットへアクセスする必要が生じたときだけ使用されるので、全体として電力消費が削減される。
【0047】
AMBA仕様は、複数の異なる部品を集積化することによって迅速にSoCデバイスを構築することを目的にしている。AMBA仕様は、標準インタフェースを提供することでこのプロセスを可能にする。これにより、個々の個別部品の開発業者は標準インタフェースを利用することで、その部品が最終的に統合されるシステムに関して知識を何ら持たなくても、その部品(ここでは被験デバイス(DUT)とも呼ぶ)を設計および試験することができるようになる。従って、一例として、図1のCPU140をSoC10へ統合するように設計する場合、設計者はSoC10にはそのほかにどのようなデバイスが組み込まれるかを知る必要がない。
【0048】
しかし、AMBA仕様に従うバスを利用して後にSoCへ組み込まれる個別デバイスを設計する場合には、設計者がそのデバイスがAMBA仕様によって規定されるバス・プロトコルに従っていることを確認するための試験を実行することは明らかに重要なことである。実際に、SoC設計者は、集積業者に対してその部品がSoC設計の残りの部分と統合されたときに正しく機能することを確信させるために、個別部品がAMBAバス・プロトコルに準拠するという何らかの確証を得たいと思うのが普通である。
【0049】
【実施例】
図2は、DUTがAMBAバス・プロトコルに準拠することを本発明の好適な実施の形態の能動モードにおいて試験するために提供される論理要素を模式的に示すブロック図である。図2に示すように、DUT330は、DUT330用の試験環境を生成するために使用されるAMBA部品テストベンチ300へバス340を介してつながれる。好適な実施の形態では、AMBA部品テストベンチはソフトウエア的に実現され、ユーザが定義するテスト・シーケンス・ファイル305からスティミュラス発生および応答チェック情報を読み出すように構成されている。このファイルはそのDUTが利用するAMBAバス・プロトコル部分に対するDUTの準拠性を試験する目的を持ってそのDUT330に関心を持つユーザによって提供される。
【0050】
図2に示すシミュレーション環境はまた、プロトコル・チェック・コンポネント320およびカバレッジ・モニタ・コンポネント310を含む。プロトコル・チェック・コンポネント320は好適な実施の形態では、DUT330がAMBA仕様の規則に従うことを確認するためのチェックをサイクル毎の実行するように構成されている。プロトコル・チェックはAMBA仕様から取り出された一定の規則群であり、DUTはAMBA仕様に準拠することを主張するためにはそれらの規則のどれにも違反してならない。それらの規則はDUT330がどのようなタイプのものであろうとも従わなければならないし、従ってDUT330に依存してプロトコル規則をコンフィギュアするようなことはない。
【0051】
当業者には明らかなように、どんな特殊なバス・プロトコルに対しても、チェックする必要のあるそのような規則はかなり多いのが普通である。AMBA AHBマスタ・プロトコル規則の一例は、“SplitあるいはRetry応答の第2サイクルで、マスタはHTRANSをIDLEにドライブしなければならない”である。SplitまたはRetry応答はスレーブ・デバイスからマスタ・デバイスへの応答であって、スレーブ・デバイスがその時点に行なわれたマスタからのトランスファ要求を処理できないことを示す。HTRANS信号はマスタによって発行される制御信号であって、マスタが実行しているバス・トランスファのタイプ、例えばノンシーケンシャル、シーケンシャル、アイドル、あるいはビジーを示す。トランスファ要求のretryを試みる前に、スレーブ・デバイスが別のトランスファ要求を受信する準備ができている状態に戻る機会を与えるためには、SplitまたはRetry応答に続くサイクルでアイドル・トランスファをアサートする必要がある。
【0052】
カバレッジ・モニタ・コンポネント310は、テスト・シーケンス305実行中に、AMBA部品テストベンチ300によって生成される試験環境内でDUT330とその他の任意の試験部品との間で受け渡される信号をモニタすることによって1組のカバレッジ・ポイントが観測されるかどうか決定するために使用される。カバレッジ・ポイントは、準拠性を主張できる前に、試験環境内で観測すべき各種バス・トランザクションのリストである。従って、カバレッジ・ポイントの目的は、準拠性を主張できる前に、試験によってDUTが十分に調べられたことを保証することである。カバレッジ・ポイントの一例は、“バス・スレーブは同じアドレスへの書込みトランスファが直後に続く読出しトランスファによってアクセスされなければならない”である。
【0053】
明らかなように、確認する必要のあるカバレッジ・ポイントはDUT330に依存する。例えば、マスタDUTは異なるやり方でスレーブDUTとインタフェースするであろうから、準拠性を保証するために確認すべき各種バス・トランザクションはDUTのタイプ毎に異なるであろう。従って、カバレッジ・モニタ・コンポネント310は試験される特定のDUT330に関連して得られるコンフィギュレーション情報315に従ってコンフィギュアされる。
【0054】
従って、理解されるように、標準的な予め定義されたバス・トランザクションのシーケンスの代わりにカバレッジ・ポイントを使用する利点は、カバレッジ・ポイントを利用することによって、バス・インタフェースを完全に活用するためには特定のDUTが1つの特別なトランザクション・シーケンスを必要とするだけでよいということである。
【0055】
注意すべきことは、プロトコル・チェック・コンポネント320およびカバレッジ・モニタ・コンポネント310は準拠性試験中にトランスファされる実際のデータの完全性を自動的にはチェックしないということである。ユーザは準拠性実行中にDUTが正しく動作することを確認しなければならない。しかし、図2のようにコンフィギュアされたときは、シミュレーション環境は、ユーザが定義するテスト・シーケンス入力ファイルの“データ・チェック・コマンド”をサポートすることによってDUTの動作試験を支援する。例えば、データがスレーブDUTに記憶され、そしてその後でスレーブDUTから読み戻される場合、ユーザが定義するテスト・シーケンスはスレーブDUTから返されると期待されるデータの値を指定することができ、それをチェックして正しい動作を確認することができる。
【0056】
後でもっと詳細に説明することになるが、図2に模式的に示す能動モードのシミュレーション環境を利用する場合、ユーザはユーザが定義するテスト・シーケンス305、DUT330のRTL実現、およびDUTに特有なコンフィギュレーション情報を提供するユーザ・コンフィギュレーション・ファイルを提供することが好ましい。これら3つのアイテムは好適な実施の形態ではテストベンチのアプリケーション・プログラミング・インタフェース(API)を通して供給され、それらがその後に試験環境を生成する。このプロセスは後でもっと詳しく説明する。
【0057】
上で述べた能動動作モードでは、DUT330のバス・プロトコル準拠を試験するためにDUT330と相互作用するために必要な各種のその他部品に対してユーザがRTLモデルを生成する必要はない。好適な実施の形態では、好適な実施の形態のテストベンチAPIが準拠性ツールの中に組み込まれ、このツールが次に既知のハイレベル・ベリフィケーション・ランゲージ(HVL)シミュレーション・ツール、例えばVeraやSpecmanとインタフェースする。準拠性ツール、およびこのツールの一部を構成するコンフィギュレーションAPIの存在は、ユーザによって与えられる入力、すなわちユーザ・コンフィギュレーション・ファイル、ユーザが定義するテスト・シーケンス、およびDUTのRTL表現に基づく試験環境の動的生成を可能にする。従って、準拠性ツールは、さもなければHVLシミュレーション・ツールを使用して必要とされるチェック・ルーチンを実現するために要したであろう高度な技能を不要とし、また各チェック環境のコンフィギュレーションおよびデバッグを不要とする。
【0058】
上で図2を参照しながら説明した準拠性ツールの能動モードは最初からDUT330を生成する場合には明らかに有利であるが、例えばバスを介してインタリンクされた部品の複数のRTL実現を含めて、ユーザがかなりうまくシステム・シミュレーション環境を既に開発している状況も多いと思われる。好適な実施の形態では、そのようなシステム・シミュレーション環境を利用できるようにするために、準拠性ツールは図5に示す受動的な動作モードもサポートする。図5に示すように、既存のシステム・シミュレーション環境500を準拠性ツールにロードし、バス340を介してDUT510へ接続することができる。それでもなお、カバレッジ・モニタ310およびプロトコル・チェッカ320は維持され、試験中に各種デバイス間で受け渡される信号に対して必要なチェックを実行できるし、またカバレッジ・モニタ310もDUT510に関連するコンフィギュレーション情報315に基づいてコンフィギュアできる。従って、図5の受動モード実施例では、ユーザがコンフィギュレーションAPIを介して、ユーザ・コンフィギュレーション・ファイル、既存のシステム・シミュレーション環境500、およびDUT510のRTL実現を提供する。
【0059】
従って、要約すれば、好適な実施の形態の準拠性ツールは、図2に示すような能動モードか、あるいは図5に示すような受動モードのいずれかで動作するようにコンフィギュアできる。ここでコンフィギュレーションAPIが提供されるため、ユーザはそれら2つの異なるコンフィギュレーションを指定するために必要な情報を入力できる。
【0060】
能動モードのコンフィギュレーションを実現する2つの例が図3および図4に示されている。これらの好適な実施の形態では、能動モードのコンフィギュレーションは次のようなデバイスをサポートする:AHBマスタ、AHBスレーブ、APBマスタ(すなわち、ブリッジ)、APBスレーブ、アービタ、およびデコーダ。図3はDUT330がスレーブDUTである能動モードのコンフィギュレーションを示している。このコンフィギュレーションでは、準拠性ツールのAMBA部品テストベンチ・コア350内のコンフィギュレーション・エンジンは、例えばデコーダのような必要とされる任意のその他の試験部品とともに、適当なAHB/APBマスタ部品355を動的に生成しよう。スレーブDUT330はそれがマスタ・デバイスに応答するかのようにバスにアクセスする。しかし、その回りに生成される試験環境はユーザが定義するテスト・シーケンス305によって指図されるような命令された応答をドライブする。プロトコル・チェック・コンポネント320およびカバレッジ・モニタ・コンポネント310は、それに従ってテスト・シーケンスの実行中にバス上で受け渡される信号をモニタすることによって、スレーブDUTがバス・プロトコルに準拠するかどうかを示すデータを生成する。
【0061】
好適な実施の形態では、ユーザ・トリックボックス・コンポネント360も提供されて、ビヘイビアを追加できるようにスレーブ応答信号との多重化が行なわれる。ユーザ・トリックボックス360は好適な実施の形態ではRTLで書かれ、ユーザ・トリックボックス360とスレーブDUT330の両方を含むインタフェース・モジュール内でインスタンス化される。後で詳しく説明するように、このインタフェース・モジュールは次に、適当な信号のマッピングを介して準拠性ツールによって生成される試験環境の残りの部分とインタフェースする。従って、RTLトリックボックス360はDUT330とインタフェースすることができ、DUTの非AMBA信号を制御および観測することを可能にする。
【0062】
好適な実施の形態のトリックボックスは、トリックボックスを制御するための標準的なAHB/APBスレーブ・インタフェースのほかに、32ビット出力ポートおよび32ビット入力ポートを有する。AHB/APBインタフェースはトリックボックスがテストベンチでインスタンス化され、DUTではなくトリックボックスにアクセスするテストベクトルを用いて制御されることを可能にする。この文脈で用いられるように、“ベクトル”という用語はユーザが定義するテスト・シーケンス305の1要素を意味し、それはバス上で実行されるアクションおよび/または特別な時間におけるバス・ステータスを定義する。トリックボックス360を用いて導入される付加的なビヘイビアの一例として、もしも図3の能動モードがAHB能動モードであると仮定すれば、トリックボックス360を用いて別のスレーブ・デバイスのような期待される応答を提供することができ、デコーダ試験部品を用いてスレーブDUT330の選択を解除し、トリックボックス・スレーブ・デバイスを選択することができる。
【0063】
図4はマスタDUT400を試験するために実現される別の能動モードを示す。この構成では、準拠性ツールのAMBA部品テストベンチ・コア350内のコンフィギュレーション・エンジンを使用して、例えばアービタ、デコーダ、およびダミー・マスタのような必要とされるその他任意の試験部品と一緒にAHB/APBスレーブ部品410が生成されよう。コンフィギュレーションおよび/またはDUTのタイプに依存して準拠性ツールの中からある種のファシリティを追加することもできる。例えば、AHBマスタ・コンフィギュレーションの場合は、メモリ初期化ファイル420を有するビヘイビア・メモリ・スレーブ・デバイスを生成することが好ましく、それはそれ自身が同じフォーマットのメモリ・ダンプを生成する。メモリ・ダンプ・ファイルはテストベンチ・コア350内に実現されたメモリ・モデルの内容のファイル表現であり、試験が完了した後で生成される。試験中にメモリ・モデルに対して修正がなければ、結果のメモリ・ダンプ・ファイルはメモリ初期化ファイルと同じ内容を有することになる。
【0064】
図4のマスタDUT400はあたかもスレーブ・デバイスを通信しているようにバスにアクセスする。しかし、その回りに生成される試験環境はユーザが定義するテスト・シーケンス305によって定義されるような命令された応答をドライブ・バックする。図3の例と同じように、ユーザ・トリックボックス・コンポネント360を提供して、それをスレーブ応答信号と多重化することによってビヘイビアを追加することができる。
【0065】
上の能動モードの説明から明らかなように、準拠性ツールの能動モードコンフィギュレーションは各DUTに対してポイント・ソリューションとなるテストベンチを生成しなければならないという負担を大幅に軽減する。準拠性ツールそれ自身は、ユーザが供給するスティミュラスを準拠性試験の過程で提供するように、DUTを取り巻く、必要なすべてのAMBA“ファブリック”を生成する。
【0066】
これとは対照的に、先に述べた受動モードは、主としてシステム中の試験環境を目的としている。受動モードは準拠性ツールによるAMBAファブリックの動的生成という概念を等価的に禁止し、そうでなければ能動モードで利用できたスティミュラス・ドライブ機能を禁止する。既に述べたように、同じユーザ・コンフィギュレーション・ファイルをDUTそれ自身に関する詳細を指定するためにも使用することが好ましい。しかし受動モードでは、能動モード特有のコンフィギュレーション・オプションはすべて無視される。
【0067】
受動モードはまた過去の設計を検証するためにも理想的であり、ユーザは準拠性試験のためにDUTを能動モードのテストベンチへ分離する必要がない。しかし注意すべきことは、DUTへのスティミュラスの発生源が限られたトランザクションまたはシナリオ生成能力しか持たない場合は(すなわち、能動モードにおいて使用される、ユーザが定義するテスト・シーケンスの場合ほどにはDUTに対して適するように調整されていないのが普通である)、全カバレッジを達成することは受動モードのほうがより困難であろうということである。もっと可能性の高いシナリオは、受動モードを使用して、試験実行シーケンスの過程でDUTがAMBAプロトコル違反を何ら行なわなかったことを保証することであろう。
【0068】
いずれの動作モードでも、準拠性ツールは試験実行の終わりにオプションで目に見える形でカバレッジ・レポートを生成することが好ましい。これはそのDUTに付随する、完了し傑出した準拠性カバレッジ目標とその特別な機能に関するコンフィギュレーションの両方を表示するグラフィカル・ユーザ・インタフェース(GUI)の形であることが好ましい。このデータからAMBA準拠性の証明を発行できる。好適な実施の形態では、AMBA準拠性証明は、AMBA仕様改訂版番号、準拠性コンフィギュレーション、および試験しなかったすべての準拠性カバレッジ・ポイントの説明を指定するであろう。好適な実施の形態では、準拠性ツールはまた、DUT用の試験環境を許可し、それとともにユーザが準拠性試験を繰り返すことができるように必要な任意のテストベクトルを出力することを許可する。
【0069】
既に述べたように、好適な実施の形態では、準拠性ツールは標準的なHVLシミュレーション・ツールと組み合わせて実行するのが好ましい。ここで、シミュレーション・ツールと準拠性ツールとが一緒になって準拠性チェックを実行するプロセスについて、図6および図7のフロー図を参照しながら詳細に説明する。
【0070】
図6に示すように、準拠性チェックは工程600から始まり、工程605へ進んでそこからシミュレーション・ツールが始動する。シミュレーション・ツールが始動すると、それは準拠性ツールを使用すべきことを指示する。プロセスは次に工程610へ進み、DUTインタフェース・モジュールがロードされる。既に述べたように、このインタフェース・モジュールはその中へDUTのRTL表現をインスタンス化するモジュールである。好適な実施の形態では、インタフェース・モジュールはまたユーザ・トリックボックスのRTL表現も含む。更に、インタフェース・モジュールはオプションのクロックおよびリセット信号を提供し、それと一緒に、RTLと準拠性ツールの試験環境それ自身との間の付随する信号多重化も提供する。このことから、インタフェース・モジュールは、与えられたユーザ・コンフィギュレーション・ファイルに基づいてシミュレーション時点で能動モードにおいて動的に生成される準拠性ツール試験環境とのインタフェースを構成する簡単なRTLの最上位モジュールとみなすことができる。
【0071】
工程615では準拠性ツールがロードされるが、これは能動あるいは受動のいずれかのモードにツールをコンフィギュアするために使用されるコンフィギュレーションAPIを、カバレッジ・モニタおよびプロトコル・チェック機能と一緒に導入する。工程620では、シミュレーション・ツールが準拠性ツールに処理を渡し、その後プロセスは工程625へ進む。
【0072】
工程625では、準拠性ツールが、ユーザによってコンフィギュレーションAPIを介して与えられるユーザ・コンフィギュレーション・ファイルを読み込んでチェックする。好適な実施の形態では、各々の準拠性ツールの動作モード、例えばAHB_マスタ、AHB_スレーブ、APB_マスタ、APB_スレーブ、アービタ、あるいはデコーダに対してテンプレートのユーザ・コンフィギュレーション・ファイルが提供される。従って、ユーザがAHBマスタ・デバイスを試験しようとする場合には、ユーザはAHB_マスタのテンプレート・ユーザ・コンフィギュレーション・ファイルを選ぶ。コンフィギュレーション・ファイルにはそのデバイスに特有なコンフィギュレーション情報を規定する予め定められたパラメータが含まれる。それらのエントリの少なくともいくつかは、試験される特定デバイスに関心を持つユーザによって入力される必要がある。好適な実施の形態では、コンフィギュレーション・ファイルに含まれるエントリは次のものを規定する:
【0073】
1.DUT名およびオプションID;
2.DUT設計の階層構造のHDLパス/レベル
3.DUT信号マップ、例えばHCLK=HCLKsys、あるいは上記2をオーバーライドするためのHCLK=〜/top/HCLK
4.一般的なテストベンチ・パラメータ、例えばENDIANESS=LITTLE、ERRORSTOP=YES、VERBOSITY=ERRORS_ONLY;および
5.カバレッジ・コンフィギュレーション、例えば読出し専用デバイスに対してDIRECTION=NO_WRITE
【0074】
AHBマスタDUT用のユーザ・コンフィギュレーション・ファイルの一例を次に示す。
【0075】
【表1】
Figure 0004112886
【0076】
上のことから明らかなように、このファイルの第1エントリは試験されるデバイス名を示しており、ここではARMプロセッサ・コアとなっている。第2エントリの“HDLPATH”はDUTの階層構造のレベルを示す。次には、マスタDUTによって使用され、DUT内部で使用される名前をAMBA信号名に対してどのようにマッピングするかを示すすべての信号を示す複数のエントリが続く。例えば、DUTによって使用される信号HWRITEoutはAMBAバス信号HWRITEにマッピングされる。
【0077】
コンフィギュレーション・ファイル中の次のエントリはデバイスを能動モードと受動モードのどちらで試験すべきかを指定する。ここでは受動モードを使用することが確認されている。次のエントリはスティミュラスとして使用すべきユーザが定義するテスト・シーケンスを指定する。この例では、2つのテストベクトル・ファイル、すなわちmemory.vecおよびperipheral.vecが指定されている。図4を参照すると、ベクトル・ファイルperipheral.vecはユーザが定義するテスト・シーケンス305であり、ベクトル・ファイルmemory.vecはメモリ420に置くべきデータを含んでいる。試験が始まると、プロセッサ・コアのDUTはメモリ420からデータを読み込む。このデータはコアによって実行すべき一連の命令を規定する。これはバス340上でバス・トランスファを引き起こし、ユーザが定義するテスト・シーケンス305、すなわちこの例ではperipheral.vecがスレーブ試験部品によって提供される応答を命令する。このエントリはまた試験ランを開始する前に入力ファイルの文法チェックをすべきかどうかを指定する。
【0078】
好適な実施の形態では、スティミュラス・ベクトル・ファイルのフォーマットは、それをPerlやCのような言語を使用して手書き、あるいはもっと便利な自動生成できるように特別に設計されている。
【0079】
ユーザ・コンフィギュレーション・ファイルの次のエントリは、受動モードにおいて特別に使用されるいくつかの追加信号を指定する。その次には、試験に関連するデバッグおよびシステム環境設定を提供するいくつかの一般的なパラメータが続く。例えば、特定例では、バス幅が32ビットであると指定される。
【0080】
その後には能動モードに特有なコンフィギュレーション情報を提供するエントリが続く。最後に、ファイル中の最後に3つのエントリは、例えばカバレッジ・モニタによってチェックすべきカバレッジ・ポイントを決めるときに使用されるデバイス機能を規定する。
【0081】
図6に戻って、ユーザ・コンフィギュレーション・ファイルが一旦読み込まれチェックされると、次に準拠性ツールはプロトコル・チェック・コンポネントを生成し、またカバレッジ・モニタ・コンポネントを生成およびコンフィギュアする。上で述べたように、カバレッジ・モニタのコンフィギュレーションはユーザ・コンフィギュレーション・ファイルに規定されたデバイス機能を考慮して行われる。
【0082】
準拠性ツールは次に工程630においてDUTを能動モードで実行させるべきかどうかを決定する。先に述べたように、この情報はユーザ・コンフィギュレーション・ファイルに与えられている。もしDUTを受動モードで実行させるべきであれば、プロセスは工程635へ分岐して、カバレッジおよびプロトコル・チェックに関する信号マッピングが実行される。これはユーザ・コンフィギュレーション・ファイルに与えられる信号マッピング情報を用いて行なわれる。次にプロセスは分岐して工程650のシミュレータ・ツールへ戻り、その後で工程660で試験が実行される。受動モードでは、この試験は既存のシステム・シミュレーション環境内に定義されよう。
【0083】
しかし工程630でDUTが能動モードで実行すべきことが決まった場合には、プロセスは工程640へ進み、準拠性ツールによってDUT用の試験環境が動的に生成される。このプロセスは図7に関してもっと詳細に説明する。
【0084】
図7に示すように、第1工程(工程700)は生成する必要のある環境のタイプを規定する。この情報は被験デバイスのタイプから決まる。例えば、試験すべきデバイスがAHBマスタ・デバイスであれば、好適な実施の形態では試験環境はアービタ、デコーダ、デフォルト・マスタ、および1以上のスレーブ・モデルを含む必要がある。あるいは、DUTがAHBスレーブであれば、試験環境は少なくともデコーダおよびマスタ・モデルを含む必要がある。
【0085】
一旦環境のタイプが指定されれば、次には必要なオブジェクトのインスタンスが工程710で生成される。従って、この時点で試験環境に必要な試験部品が生成され、好適な実施の形態では各試験部品がOOPオブジェクトとしてインスタンス化される。次に、すぐ上で述べたAHBマスタDUTの例に戻って、工程710でDUTと組み合わせることによって試験環境を形成するためにアービタ、デフォルト・マスタ、およびスレーブ・オブジェクトが生成される。
【0086】
当業者には明らかなように、OOPプログラミングでは、各オブジェクトにはそれの関数を定義する複数のメソッドが付随する。本発明の好適な実施の形態に従えば、オブジェクトの各インスタンスに付随させるべき実際のメソッドは工程700で検出される環境のタイプに依存する。例えば、DUTがマスタ・デバイスであれば、生成されるデコーダ・オブジェクトは単にマスタからの要求に応答するスレーブを選ぶことができればよい。しかし、DUTがスレーブ・デバイスであれば、デコーダもDUTの選択を解除して、別のスレーブを選択することができ、それによってスレーブDUTがビヘイビアをデコーダによる選択解除時に決定できるようにする機能も含むことが好ましい。
【0087】
プロセスは次に工程720へ進み、そこでデバイス間の信号マッピングが更新される。既に説明したように、これにはユーザ・コンフィギュレーション・ファイルに与えられる信号マッピング情報への参照が含まれ、またDUTによって使用される信号名を試験環境の残りの部分で使用されるAMBA信号名へマッピングすることが含まれる。
【0088】
プロセスは次に工程730へ進んで、各信号の初期値が設定される。例えば、DUTがスレーブ・デバイスの場合、それがマスタ・デバイスからトランスファ要求を受信する準備ができていることを確認する論理1のHREADY信号をアサートする必要がある。
【0089】
工程730の完了に続いて、プロセスは図6の工程650へ戻って、処理がシミュレータ・ツールへ戻される。工程660では、シミュレータは能動モードで試験を実行する。これはユーザが定義するテスト・シーケンスであるか、あるいはユーザ・コンフィギュレーション・ファイルに定義されたテスト・シーケンスである。オプションとして、準拠性ツールはユーザ・コンフィギュレーション・ファイルをチェックするときに、ユーザが定義するテスト・シーケンスが有効であることをチェックするためにユーザ・コンフィギュレーション・ファイルに定義されたユーザが定義するテスト・シーケンスのチェックを実際に実行するように構成できる。そのような工程は工程625において行われることが多い。この時点でこのチェックを実行することは有益である。それは、後の都合のよい時点、例えば夜通しで実際の試験を実行するように考えているし、また工程660において試験を開始する前にテスト・シーケンスには何も悪いところは基本的にないことを知るのが好ましいのは明らかだからである。
【0090】
能動または受動モードのいずれかで準拠性試験を実行させるために好適な実施の形態で実行されるプロセスについて説明してきたが、好適な実施の形態で実行されるプロトコル・チェックおよびカバレッジ・モニタのより詳しいことについて次に説明する。
【0091】
既に述べたように、プロトコル規則のコンフィギュレーションは行なわれない。またAMBAバス準拠性を主張するためにはDUTはAMBAプロトコル規則のどれにも違反してはならない。
【0092】
しかし、これとは対照的に、好適な実施の形態ではカバレッジ・ポイントは、いくつかのDUTはAMBAバスの機能のすべてを利用しなくてもよいことを想定してコンフィギュアされる。DUTに対して許容できるコンフィギュレーションは、SoCに組み込まれるすべての部品が常に一緒に正しく動作するように定義されることが重要である。
【0093】
基本的な規則として、AMBA部品は考えうるすべての入力組合せを受け入れる必要があるが、考えうるすべての出力の組合せを生成する必要はない。
【0094】
一例として、Transfer Ready、Transfer Response、およびBus Grantに関する入力信号を有するバス・マスタはそれら入力の考えうるすべての組合せを処理できなければならない。しかし、考えうるすべての出力組合せを生成する必要はなく、それの動作にとって適切なタイプのバーストおよびトランスファ・サイズを生成するだけでよい。
【0095】
注意すべき点は、或るカバレッジ・ポイントをターン・オフさせればプロトコル・チェックを付加できるということである。例えば、もしもバス・マスタ準拠性チェックが4ビート・ラッピング・バーストをサポートしないバス・マスタとしてコンフィギュアされれば、このコンフィギュレーション・オプションは各種タイプの4ビート・ラッピング・バーストを観測するカバレッジ・ポイントを除去する効果を持つ。しかし、これはマスタがこの種のトランスファを決して実行しないことを保証する付加的なチェックを許容する。
【0096】
スレーブ・デバイスもまた、考えうるすべての入力を受け入れることができ、トランスファのすべての異なる組合せを正しく処理できなければならない。しかし、バス上で利用可能なトランスファ情報のすべてを利用するわけではないスレーブ・デバイスを構築することは認められる。この典型的な例はバースト情報を利用しないスレーブ・デバイスであろう。そのようなスレーブ・デバイスの準拠性試験を簡略化するために、スレーブ・デバイスの入力に特定の信号が含まれない場合には、それらの入力の異なる組合せに関連するカバレッジ・ポイントを省略することができる。
【0097】
ここでプロトコル・チェック関数の詳細について詳しく見てみると、AMBAバスのプロトコルをチェックする基本原理は、AMBAバス・プロトコルがトランザクション中に観測されることを確認するチェック・シーケンスを採用することであり、それには個別トランスファのバーストが複数個含まれる。好適な実施の形態では、準拠性ツールは、シミュレーション・イベントがそれらのプロトコル・チェックを記述する発見的方法をトリガすることを許容する時間表現を利用する。
【0098】
時間表現はビヘイビアを記述するイベントおよび時間的オペレータの組合せである。時間表現は試験中にイベント、フィールドの値、変数、あるいはその他のアイテム間の時間的関係を取り込む。
【0099】
明らかなように、好適な実施の形態の準拠性ツールには非常に多い可変数個の時間表現が用いられる。説明のために、そのような構成をどのように使用するかについて以下に簡単に見てみよう。
【0100】
好適な実施の形態では、Verisity Specman“e”言語を使用して時間表現が定義される。図8の一番上には時間経過のグラフィカルな表現として使用できる4つの凡例が示されている。図8の残りの部分は、一例としてAMBA AHBシーケンス評価を提供しており、HTRANS信号がIDLEにセットされた場合(htrans.idleイベント)のhgrantイベントのモニタリングの様子を示している。
【0101】
図8を参照すると、HCLKイベントはhgrantおよびhtrans.idleイベントを含む2つのシーケンスについてのサンプリング・イベントである。hclkイベントそれ自身はHCLK信号の立ち上がりで発生される。
【0102】
図8から分かるように、示されたいくつかのイベントは信号値に直接関連しており、他方、その他のイベントは基準イベントでサンプリングされた信号状態の組合せで定義される。この例では、基準イベントはHCLKの立ち上がり端である。
【0103】
{@hgrant;@htrans.idle}シーケンスはhclkにおいてhgrantが発生する度に評価をスタートさせる。hgrantのhclk1個分後でhtrans.idleがサンプリングされるとき、このシーケンスは成功である。
【0104】
{@hgrant;[1];@htrans.idle}シーケンスもまたhclkでの最初のhgrantの発生によって評価を開始するが、“1サイクル続く”文節([1])のために次のhclkが発生するとシフトする。第3のhclkが発生すると、シーケンスはhtrans.idleイベントが存在すれば成功する。しかし図8から分かるように、この時間表現は第5サイクルの後は評価しない。それはhtrans.idleイベントが存在しないためである。
【0105】
このように、図8に関連して上述したイベントを用いて特定の規則が観測されない条件を捉えることによってプロトコル・エラーを定義できるのが普通である。そのようなイベントは更に別のイベント・シーケンスを構築するために用いられたり、あるいは論理的に組み合わせてアサート・ステートメントを生成するために用いられたりする。準拠性ツールのプロトコル規則の典型的な形式は次のようになっている:
【0106】
【数1】
expect<規則>is{<時間表現>}@hclk;
【0107】
時間表現を使用する代わりに採用できる別の方式は形式論的な数学技法に基づいて利用できるプロパティ・チェッカ・ツールを使用するものである。フォーマル・プロパティ・チェックにはシステム要求に密接に合致するプロパティを書くこと、そして次にそのプロパティがその設計で確保されていることを完全に証明することが含まれる。この方法が完全であるということは機能シミュレーションによってカバーできないバグを見出すことができるということを意味する。
【0108】
プロパティ・チェッカ・ツールはブロック・レベルで最も良く働く。100Kゲートより小さいブロックが理想的である。
【0109】
プロパティ・チェック・ツールによってチェックされるプロパティの例は、AHBマスタが認められない場合にHTRANS信号出力がIDLEまたはNON−SEQUENTIALになるという要求である。このプロパティは図9Aに示すタイミング図と合致するように書くことができる。図9Aのタイミング図で、時間tおよびt+1はクロック・サイクルを表す。ドット領域の値が仮定であり、続くIDLE/NSEQ部が証明しなければならない部分である。タイミング図が意味することは、もしもHGRANT信号が1つのクロック・サイクル(時間t)で低レベルであれば、次のクロック・サイクルではHTRANS信号はIDLEまたはNSEQでなければならないということである。この証明は時間tが任意のクロック・サイクルで成り立つように徹底的に行われなければならない。すなわち、プロパティ・チェックはシミュレーション全体でタイミング図をスライドさせるようにみなすことができる。仮定が成り立つ場合はいつでもオブリゲーション部も成り立たなければならない。
【0110】
もしプロパティが保持されることが分かれば、DUTのRTL表現はそのプロパティによって指定される要求を常に満たさなければならない。どこかの瞬間にプロパティが保持されなければ、プロパティ・チェッカはエラーを指摘する短い波形ファイルを出力するのが好ましく、それを用いてデバッグが可能となる。
【0111】
そのようなデバッグの一例として、図9Aのプロパティを試験環境にあるDUTに適用した場合のデバッグ波形を観測したら、それは時間tにおいてHGRANT信号が低レベルで、t+1ではHTRANS信号がSEQであるというプロパティの誤りをハイライト表示した。実際にはDUTのRTL表現にはバグがないが、その代わりにプロパティそれ自身が不完全であった。事実、もしAHBマスタが待機していれば(HREADY信号入力が低レベル)、HTRANSは保持されるべきであるという状況が存在する。すなわち、図9Bのタイミング図改訂版によって、正しいプロパティを示すことができる。
【0112】
図9Bのタイミング図によって示されるプロパティは、もしマスタが認められずまた待機状態でなければ、HTRANS信号は続くクロック・サイクルでIDLEまたはNSEQでなければならないことを言っている。
【0113】
プロパティ・チェックについて議論してきたが、ここでカバレッジ・モニタについて簡単に説明しよう。既に述べたように、カバレッジはバス活動の特定のシーケンスを観測するプロセスである。好適な実施の形態では、VerisitySpecmanツールが用いられる。これはカバレッジ・グループの定義を通してカバレッジ・モニタを可能とする。1つのカバレッジ・グループは、時間的にデータを収集したデータ・アイテムのリストを含むプログラム構造/オブジェクト・メンバである。
【0114】
Specmanツールはまた、カバレッジ・データ・アイテム間相互作用の観測を可能とするクロス・カバレッジを実行できる。クロス・カバレッジを利用するAMBA AHBマスタの例は、バーストの各タイプ(SINGLE、INCR、WRAP4、INCR4、WRAP8、INCR8、WRAP16、INCR16)について、読出しおよび書込みの両バーストに対して異なるタイプのスレーブ応答が観測されることを確認することであろう。先に述べたように、試験実行のランの終わりに、すべてのカバレッジ情報は1つのGUIに順序正しくまとめられる。このGUIはそのDUTについて要求されるカバレッジ・ポイントのうちどのくらいがモニタされたかをユーザに対して表示することができるようになっている。
【0115】
好適な実施の形態の試験準拠性ツールについて詳細に説明してきたが、準拠性ツールをその中で使用できるデータ処理システムについても図10を参照しながら簡単に説明しよう。
【0116】
図10はデータ処理装置を示しており、それはプロセッサ・コア800、読出し専用メモリ(ROM)810、ランダム・アクセス・メモリ(RAM)830、入力/出力(I/O)デバイス840、およびディスプレイ850を含んでおり、それらは適当なバス・ネットワーク820を介して相互に接続されている。明らかなように、バス820は単一バスでもよいが、部品を互いに接続するために必要なバスの任意の組合せで構わない。
【0117】
好適な実施の形態では、好適な実施の形態のシミュレータ・ツールおよび準拠性ツールはRAM830へロードされ、次にプロセッサ・コア800上で実行される。オペレーティング・システム、例えばBIOSはROM810に記憶されるのが普通である。
【0118】
任意の特定の試験を実行するために必要な入力は一般的にはユーザによってI/Oデバイス840を介して入力され、RAM830に記憶される。従って、能動モードでは、ユーザはI/Oデバイス840を介して、DUTを含むインタフェース・モジュール、ユーザ・コンフィギュレーション・ファイル、およびユーザが定義するテスト・シーケンスを入力する。これらは例えばディスクからI/Oデバイス840によって読み出される。この情報は次に、シミュレータ・ツールおよび準拠性ツールの実行中に必要に応じてプロセッサ・コア800によってRAM830から取り出される。試験実行中あるいは実行後に、試験結果は例えばVDUのようなディスプレイ・デバイス850上へ表示されよう。プロトコル規則のどれも違反されずにカバレッジ・ポイントすべてがモニタされれば、任意の適当な出力デバイスへI/Oデバイス840を介して出力するための準拠性証明を作製できる。
【0119】
要約すれば、理解されるように、好適な実施の形態の準拠性ツールはデバイスのバス・プロトコル準拠性を試験するための特に使いやすく効率的な方法を提供する。能動モードでは、DUTは非AMBAのI/O信号とインタフェースするために試験者が利用できるトリックボックス・デバイスをオプションとした、単独ユニットとして試験される。このオプションのトリックボックスは試験者の制御下でデバイスの或る要求されるビヘイビアを誘発するために使用できる。能動モードでは、ユーザが生成するスティミュラス・ファイルを準拠性ツールによって読み出して、ユーザ・コンフィギュレーション・ファイルに指定されたバス・インタフェース信号上の所望のスティミュラスをドライブする。マスタDUTの場合には、ベクトル・スティミュラス・ファイルが供給され、それによって、データ・チェックのためのデバイスへの予期されるアクセスとともに、待機ステータス、応答タイプ、グラント・ステータスを含むスレーブ応答ビヘイビアを決定する。スレーブDUTの場合は、ユーザによって与えられるベクトル・スティミュラス・ファイルが有効なマスタ・バス・トランザクションを指定する。両方のタイプの入力スティミュラス・ファイルで、ユーザは試験環境がランダムに生成されるビヘイビアで以ってユーザが定義するスティミュラスをオーバライドするかどうかを制御できる。スレーブ・テストベンチの場合は、ランダム生成は待機ステータス、応答、およびグラント・ステータス等をカバーできる。
【0120】
受動モードでは、デバイスはシステムの一部として試験される。すなわち、準拠性ツールはドライブ機能を何も提供しないし、またデコーダ、アービタ、マスタ、およびスレーブのような試験部品の動的生成をサポートしない。ドライブすべきDUTのためのサポート用インフラストラクチャ全体を提供するのは試験者のテストベンチである。このことは過去のSoC設計の準拠性試験において、また初めて周辺機器を一緒に統合する場合に特に有用である。準拠性ツールのドライブ機能が停止している状態では、プロトコル・チェックおよびカバレッジ・ポイント収集機構は能動モードで使用されたものと同じように働く。
【0121】
好適な実施の形態では、バス・プロトコル・エラーが発生せずに試験ランが完了したときは、DUTに関するカバレッジの詳細を表示するGUIがロードされる。ここでカバレッジ・ホールを同定することができるため、後続の試験ランで前に見逃したカバレッジ・ポイントを満たすように、DUTをより明確な方向にドライブすることができる。このように準拠性を実現することに成功した後で、元の指定されたデバイス機能が与えられれば、バス・プロトコルに準拠することを認めるチェック・サムの準拠性証明が発行されよう。例えば、もしマスタDUTがインクリメント・バーストのみをサポートすると指定されれば、それの準拠性証明はその事実を明確に述べる。
【0122】
本発明の特別な実施の形態についてここに述べてきたが、本発明がそれらに限定されず、本発明の範囲内で多くの修正および追加が可能であることは明らかであろう。例えば、本発明の範囲から外れることなしに、クレームの従属項の特徴を独立項の特徴と組み合わせることができる。
【図面の簡単な説明】
【図1】ARM社によって開発されたアドバンスト・マイクロコントローラ・バス・アーキテクチャ仕様に従って動作するバスを介して相互接続されたデバイスを含むシステム・オン・チップを示すブロック図。
【図2】本発明の好適な実施の形態の能動モードに従う試験手順を実行するときに用いられる論理要素を模式的に示すブロック図。
【図3】スレーブ・デバイスを試験するときに、好適な実施の形態の能動モードで用いられる論理要素の更に詳細を示すブロック図。
【図4】マスタ・デバイスを試験するときに、好適な実施の形態の能動モードで用いられる論理要素の更に詳細を示すブロック図。
【図5】本発明の好適な実施の形態の受動モードに従って試験を実行するときに用いられる論理要素を模式的に示すブロック図。
【図6】本発明の好適な実施の形態に従って準拠性チェックを実行するために実行される工程を示すフロー図。
【図7】被験デバイス用の準拠性試験環境を生成するプロセスの詳細を示すブロック図。
【図8】本発明の好適な実施の形態に従ってプロトコル・チェックを実行するときの時間シーケンスの評価を表すために用いられるグラフ表記の例。
【図9】プロトコル・チェックを実行するときに、チェックされるプロパティを表すタイミング図。
【図10】好適な実施の形態の試験手順が実行されるデータ処理システムを模式的に示すブロック図。
【符号の説明】
10 SoC
110 システム・バス
115 外部バス
120 アービタ
130 外部バス・インタフェース
140 CPU
145 DMAコントローラ
150 UART論理ユニット
155 タイマ
160 RAM
165 デコーダ論理
170 ブリッジ回路
175 クロック発生器
180 赤外通信インタフェース
185 USB
195 ペリフェラル・バス
200 SDLCインタフェース
205 A/Dコンバータ
210 D/Aコンバータ
300 テストベンチ
305 テスト・シーケンス・ファイル
310 カバレッジ・モニタ・コンポネント
315 コンフィギュレーション情報
320 プロトコル・チェック・コンポネント
330 DUT
340 バス
350 AMBA部品テストベンチ・コア
355 AHB/APBマスタ部品
360 ユーザ・トリックボックス部品
400 マスタDUT
410 AHB/APBスレーブ部品
420 メモリ初期化ファイル
500 システム・シミュレーション環境
510 DUT
800 プロセッサ・コア
810 ROM
820 バス
830 RAM
840 入力/出力デバイス
850 ディスプレイ

Claims (18)

  1. デバイスのバス・プロトコル準拠性を試験する方法であって:
    (a)前記デバイスのタイプおよび前記デバイスの機能を規定する予め定められたパラメータを含むコンフィギュレーション・ファイルを読み込む工程;
    (b)コンフィギュレーション・エンジンを採用して、前記コンフィギュレーション・ファイルに従って選ばれ、デバイス表現とバスを介して接続されて試験環境を形成するための試験部品を生成することによって前記デバイスのための試験環境を動的に生成する工程;
    (c)テスト・シーケンスを実行させる工程;および
    (d)前記テスト・シーケンスの実行中に前記デバイス表現と1個以上の前記試験部品との間で受け渡される信号をモニタして、前記バス・プロトコルへの準拠性を示す結果のデータを作成する工程;
    を含む方法。
  2. 請求項1に記載の方法であって、前記コンフィギュレーション・ファイルがコンフィギュレーション・ファイルの1組のテンプレートから選ばれたものであり、また前記組が各デバイス・タイプ毎に1つのコンフィギュレーション・ファイル・テンプレートを含んでおり、また各コンフィギュレーション・ファイルにはそのデバイスに特有のコンフィギュレーション情報を提供するための複数のエントリが含まれている方法。
  3. 請求項1に記載の方法であって、前記工程(d)が、プロトコル・チェック・コンポネントを採用して、前記テスト・シーケンス実行中に前記デバイス表現と1個以上の前記試験部品との間で受け渡される信号が、前記バス・プロトコルの予め定められた規則の組のどれにも違反しないことをチェックする工程を含んでいる方法。
  4. 請求項1に記載の方法であって、前記工程(d)が、カバレッジ・モニタ・コンポネントを採用して、前記テスト・シーケンス実行中に前記デバイス表現と1個以上の前記試験部品との間で受け渡される信号をモニタして、1組のカバレッジ・ポイントが観測されるかどうかを決定する工程を含んでいる方法。
  5. 請求項4に記載の方法であって、前記カバレッジ・ポイントの組が前記工程(a)において読み込まれる前記コンフィギュレーション・ファイルに従ってコンフィギュアされる方法。
  6. 請求項5に記載の方法であって、前記工程(d)が、プロトコル・チェック・コンポネントを採用して、前記テスト・シーケンス実行中に前記デバイス表現と1個以上の前記試験部品との間で受け渡される信号が前記バス・プロトコルの予め定められた規則の組のどれにも違反しないことをチェックする工程を含んでおり、また前記バス・プロトコルの予め定められた規則の組に違反しないで前記組中のすべてのカバレッジ・ポイントが観測された場合には、前記方法が更に前記バス・プロトコル準拠性を確認する出力を生成する工程を含んでいる方法。
  7. 請求項1に記載の方法であって、前記工程(b)において、選ばれた試験部品を生成する前記工程が、試験すべきデバイスのタイプに依存して生成すべき前記試験部品を選択する工程を含んでいる方法。
  8. 請求項7に記載の方法であって、少なくとも1個の試験部品が、それに付随してそれが呈する複数のビヘイビアを有しており、試験すべきデバイスのタイプに依存して前記試験部品が生成されるときにビヘイビアの選択が決まるようになった方法。
  9. 請求項1に記載の方法であって、前記テスト・シーケンスが、試験すべきデバイス用に開発されたユーザが定義可能なテスト・シーケンスである方法。
  10. 請求項1に記載の方法であって、前記デバイス表現がインタフェース・モジュール内に生成され、試験環境を生成する前記工程(b)が、前記インタフェース・モジュール内の信号を前記試験環境内の信号へ、前記コンフィギュレーション・ファイルに定義されたやり方に従ってマッピングする工程を含んでいる方法。
  11. 請求項10に記載の方法であって、前記コンフィギュレーション・ファイルが、前記信号のマッピングを容易にするために、前記インタフェース・モジュール内の前記デバイス表現の階層構造レベルを規定している方法。
  12. 請求項1に記載の方法であって、更に:
    前記バス・プロトコルと互換性を有し、汎用の入力/出力インタフェースを備えたトリックボックス・コンポネントを提供する工程;
    を含む方法。
  13. 請求項1に記載の方法であって、試験されるデバイスのタイプがマスタ、スレーブ、アービタ、またはデコーダを含んでいる方法。
  14. 請求項1に記載の方法であって、前記バス・プロトコルがARM AMBAバス・プロトコルであり、前記バスがシステム・バスとペリフェラル・バスとを含んでおり、試験されるデバイスのタイプがシステム・バス・マスタ、システム・バス・スレーブ、ペリフェラル・バス・マスタ、ペリフェラル・バス・スレーブ、アービタ、またはデコーダを含んでいる方法。
  15. 請求項1に記載の方法であって、前記デバイス表現がレジスタ・トランスファ・ランゲージ(RTL)表現である方法。
  16. 請求項1に記載されたデバイスの準拠性を試験する方法を実行するように処理ユニットをコンフィギュアするように動作するコンピュータ・プログラム。
  17. 請求項16に記載のコンピュータ・プログラムを含む運搬媒体。
  18. デバイスのバス・プロトコル準拠性を試験するためのデータ処理システムであって:
    前記デバイスのタイプおよび前記デバイスの機能を規定する予め定められたパラメータを含むコンフィギュレーション・ファイルを記憶するためのメモリ;
    および
    処理ユニットであって:
    (i)バスを介してデバイス表現と接続されて試験環境を形成する、前記コンフィギュレーション・ファイルに従って選ばれた試験部品を生成することによって前記デバイスのための試験環境を動的に生成する工程;
    (ii)テスト・シーケンスを実行する工程;および
    (iii)前記テスト・シーケンス実行中に前記デバイス表現と1個以上の試験部品との間で受け渡される信号をモニタして、前記バス・プロトコルとの準拠性を示す結果のデータを作成する工程;
    を実行するように構成された処理ユニット;
    を含むデータ処理システム。
JP2002098913A 2001-04-12 2002-04-01 デバイスのバス・プロトコル準拠試験方法およびシステム Expired - Fee Related JP4112886B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GBGB0109283.2A GB0109283D0 (en) 2001-04-12 2001-04-12 Testing for compliance
GB0111195.4 2001-05-08
GB0109283.2 2001-05-08
GB0111195A GB2374434B (en) 2001-04-12 2001-05-08 Testing compliance of a device with a bus protocol

Publications (2)

Publication Number Publication Date
JP2002358249A JP2002358249A (ja) 2002-12-13
JP4112886B2 true JP4112886B2 (ja) 2008-07-02

Family

ID=26245977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002098913A Expired - Fee Related JP4112886B2 (ja) 2001-04-12 2002-04-01 デバイスのバス・プロトコル準拠試験方法およびシステム

Country Status (2)

Country Link
US (1) US6876941B2 (ja)
JP (1) JP4112886B2 (ja)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7542867B2 (en) * 2001-08-14 2009-06-02 National Instruments Corporation Measurement system with modular measurement modules that convey interface information
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7010773B1 (en) 2001-11-19 2006-03-07 Cypress Semiconductor Corp. Method for designing a circuit for programmable microcontrollers
US6966039B1 (en) * 2001-11-19 2005-11-15 Cypress Semiconductor Corp. Method for facilitating microcontroller programming
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US20030145290A1 (en) * 2002-01-30 2003-07-31 International Business Machines Corporation System for controlling external models used for verification of system on a chip (SOC) interfaces
JP3510618B2 (ja) * 2002-02-05 2004-03-29 沖電気工業株式会社 バスブリッジ回路及びそのアクセス制御方法
US7577540B2 (en) * 2002-03-01 2009-08-18 Nec Corporation Re-configurable embedded core test protocol for system-on-chips (SOC) and circuit boards
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US6661724B1 (en) 2002-06-13 2003-12-09 Cypress Semiconductor Corporation Method and system for programming a memory device
US6698004B2 (en) * 2002-06-20 2004-02-24 Sun Microsystems, Inc. Pin toggling using an object oriented programming language
EP1447759A1 (en) * 2003-02-07 2004-08-18 ARM Limited Generation of a testbench for a representation of a device
US7137078B2 (en) * 2003-03-27 2006-11-14 Jasper Design Automation, Inc. Trace based method for design navigation
US7206387B2 (en) * 2003-08-21 2007-04-17 International Business Machines Corporation Resource allocation for voice processing applications
CN100512274C (zh) * 2004-03-04 2009-07-08 安立股份有限公司 能够容易控制协议消息的通信***的模拟装置与模拟方法
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
JP2005346513A (ja) * 2004-06-04 2005-12-15 Renesas Technology Corp 半導体装置
GB2415270A (en) * 2004-06-16 2005-12-21 Argo Interactive Ltd A method of generating a test routine
US20060025984A1 (en) * 2004-08-02 2006-02-02 Microsoft Corporation Automatic validation and calibration of transaction-based performance models
US7743151B2 (en) * 2004-08-05 2010-06-22 Cardiac Pacemakers, Inc. System and method for providing digital data communications over a wireless intra-body network
US7332976B1 (en) * 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7440863B2 (en) * 2005-04-29 2008-10-21 Agilent Technologies, Inc. Integrated tool for compliance testing within an enterprise content management system
US7890285B2 (en) * 2005-04-29 2011-02-15 Agilent Technologies, Inc. Scalable integrated tool for compliance testing
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US7506281B1 (en) * 2005-05-18 2009-03-17 Xilinx, Inc. Two-pass method for implementing a flexible testbench
US20070027669A1 (en) * 2005-07-13 2007-02-01 International Business Machines Corporation System and method for the offline development of passive simulation clients
US7610444B2 (en) * 2005-09-13 2009-10-27 Agere Systems Inc. Method and apparatus for disk address and transfer size management
US20070204076A1 (en) * 2006-02-28 2007-08-30 Agere Systems Inc. Method and apparatus for burst transfer
US7599364B2 (en) * 2005-09-13 2009-10-06 Agere Systems Inc. Configurable network connection address forming hardware
US8218770B2 (en) * 2005-09-13 2012-07-10 Agere Systems Inc. Method and apparatus for secure key management and protection
US8521955B2 (en) 2005-09-13 2013-08-27 Lsi Corporation Aligned data storage for network attached media streaming systems
US7461214B2 (en) * 2005-11-15 2008-12-02 Agere Systems Inc. Method and system for accessing a single port memory
US7912060B1 (en) 2006-03-20 2011-03-22 Agere Systems Inc. Protocol accelerator and method of using same
US7797467B2 (en) * 2005-11-01 2010-09-14 Lsi Corporation Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US7526742B1 (en) 2006-01-31 2009-04-28 Xilinx, Inc. One-pass method for implementing a flexible testbench
CN100448239C (zh) * 2006-02-28 2008-12-31 西安西电捷通无线网络通信有限公司 鉴别服务实体的安全接入协议符合性测试的方法及其***
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US20080133165A1 (en) * 2006-12-04 2008-06-05 Advantest Corporation Test apparatus and device interface
US8092083B2 (en) * 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8040266B2 (en) * 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US20090113245A1 (en) * 2007-10-30 2009-04-30 Teradyne, Inc. Protocol aware digital channel apparatus
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8423314B2 (en) * 2009-11-18 2013-04-16 National Instruments Corporation Deterministic reconfiguration of measurement modules using double buffered DMA
US20130024178A1 (en) * 2011-07-20 2013-01-24 Narendran Kumaragurunathan Playback methodology for verification components
US8639981B2 (en) 2011-08-29 2014-01-28 Apple Inc. Flexible SoC design verification environment
US8788886B2 (en) 2011-08-31 2014-07-22 Apple Inc. Verification of SoC scan dump and memory dump operations
US9218271B2 (en) * 2011-10-04 2015-12-22 International Business Machines Corporation Test planning based on dynamic coverage analysis
US9329967B2 (en) * 2012-11-13 2016-05-03 Tektronix, Inc. Methods and systems for aiding the analysis of a signal
US9495281B2 (en) * 2012-11-21 2016-11-15 Hewlett Packard Enterprise Development Lp User interface coverage
KR20140113175A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법
CN105447212A (zh) * 2014-08-25 2016-03-30 联发科技(新加坡)私人有限公司 产生集成电路的验证平台文件的方法与编译***
US10082538B2 (en) 2014-11-14 2018-09-25 Cavium, Inc. Testbench builder, system, device and method
US10126362B2 (en) * 2014-12-15 2018-11-13 International Business Machines Corporation Controlling a test run on a device under test without controlling the test equipment testing the device under test
US10282315B2 (en) 2015-03-27 2019-05-07 Cavium, Llc Software assisted hardware configuration for software defined network system-on-chip
US9672127B2 (en) * 2015-04-16 2017-06-06 Teradyne, Inc. Bus interface system for interfacing to different buses
US10031991B1 (en) * 2016-07-28 2018-07-24 Cadence Design Systems, Inc. System, method, and computer program product for testbench coverage
US11394633B2 (en) * 2018-12-13 2022-07-19 Microsoft Technology Licensing, Llc Internet of things (IOT) device and solution certification as a service
US11144693B1 (en) * 2019-11-27 2021-10-12 Cadence Design Systems, Inc. Method and system for generating verification tests at runtime
CN115470752B (zh) * 2022-09-22 2023-07-14 沐曦科技(北京)有限公司 基于追踪文件的芯片功能验证***

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457152B1 (en) 1998-10-16 2002-09-24 Insilicon Corporation Device and method for testing a device through resolution of data into atomic operations
US6366973B1 (en) * 1999-05-03 2002-04-02 3Com Corporation Slave interface circuit for providing communication between a peripheral component interconnect (PCI) domain and an advanced system bus (ASB)
US6425071B1 (en) * 1999-05-03 2002-07-23 3Com Corporation Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
US6574691B1 (en) * 1999-07-28 2003-06-03 Koninklijke Philips Electronics N.V. Apparatus and method for interfacing a non-sequential 486 interface burst interface to a sequential ASB interface
US6678645B1 (en) * 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
US6581019B1 (en) * 2000-03-20 2003-06-17 Koninklijke Philips Electronics N.V. Computer-system-on-a-chip with test-mode addressing of normally off-bus input/output ports

Also Published As

Publication number Publication date
US20020183956A1 (en) 2002-12-05
US6876941B2 (en) 2005-04-05
JP2002358249A (ja) 2002-12-13

Similar Documents

Publication Publication Date Title
JP4112886B2 (ja) デバイスのバス・プロトコル準拠試験方法およびシステム
Mehta ASIC/SoC functional design verification
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
US8607174B2 (en) Verification module apparatus to serve as a prototype for functionally debugging an electronic design that exceeds the capacity of a single FPGA
US20220292248A1 (en) Method, system and verifying platform for system on chip verification
CN115841089A (zh) 一种基于uvm的***级芯片验证平台及验证方法
TW594513B (en) Apparatus and method for in-circuit emulation using high-level programming language
WO2018018978A1 (zh) 一种通用串行总线控制器验证方法、***及设备
CN115146568A (zh) 一种基于uvm的芯片验证***及验证方法
US20050144436A1 (en) Multitasking system level platform for HW/SW co-verification
CN106844118B (zh) 一种基于Tbus总线标准的片内总线测试***
Chang et al. A unified GDB-based source-transaction level SW/HW co-debugging
Ke et al. Verification of AMBA bus model using SystemVerilog
CN115618800A (zh) 基于dpi的gpu联合仿真***
Crouch et al. Generalizing access to instrumentation embedded in a semiconductor device
US7017097B1 (en) Simultaneously driving a hardware device and a software model during a test
US9581643B1 (en) Methods and circuits for testing partial circuit designs
GB2374434A (en) Testing compliance of device with bus protocol
Lissel et al. Introducing new verification methods into a company's design flow: an industrial user's point of view
Deng et al. A Standalone FPGA-test Platform with Bi-directional Ports Supported
Ramakrishna et al. Verification of advanced high speed bus in UVM methodology
Tan Design of a direct memory access module for 32-BIT RISC32 processor
Gianarro An innovative amba compliant crossbar scheme and its fault tolerance analysis
Allara et al. Bringing constrained random into SoC SW-driven verification
de Kock et al. A configurable test infrastructure using a mixed-language and mixed-level IP integration IP-XACT flow

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070330

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: 20080401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080410

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: 20110418

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120418

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130418

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130418

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140418

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees