JP2010537156A - 外部インタフェースの機能性を検証するためのセルフテスト機構を備えた集積回路 - Google Patents

外部インタフェースの機能性を検証するためのセルフテスト機構を備えた集積回路 Download PDF

Info

Publication number
JP2010537156A
JP2010537156A JP2010512354A JP2010512354A JP2010537156A JP 2010537156 A JP2010537156 A JP 2010537156A JP 2010512354 A JP2010512354 A JP 2010512354A JP 2010512354 A JP2010512354 A JP 2010512354A JP 2010537156 A JP2010537156 A JP 2010537156A
Authority
JP
Japan
Prior art keywords
transaction
processor
test
generating
logic
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.)
Pending
Application number
JP2010512354A
Other languages
English (en)
Inventor
マッダリ、スリニバス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010537156A publication Critical patent/JP2010537156A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3187Built-in tests
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/302Contactless testing
    • G01R31/305Contactless testing using electron beams
    • G01R31/307Contactless testing using electron beams of integrated circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本開示では、高周波外部インタフェースの機能性の検証のためのセルフテスト機構を備えた集積回路について説明する。外部インタフェースの実施例は、ペリフェラルコンポーネントインターコネクト(PCI)バス、アドバンスト高性能バス(AHB)、アドバンスト拡張インタフェース(AXI)バス、および高周波(例えば200MHz以上)で動作する他の外部インタフェースのような、メモリインターフェースおよびバスインタフェースを含んでいる。テストロジックは、集積回路上に組み込まれ、外部テスト機器から非テスト信号を受け取りながら外部インタフェースの機能性を検証するように構成されてもよい。故に、外部テスト機器が集積回路に高周波テスト信号を供給しない可能性がある。しかしながら、外部テスト機器は、集積回路のピンインタフェースの機能性を独自に検証することができる。その結果、集積回路は、外部インタフェースの機能性およびタイミングをベリファイするのに必要なコストと時間を削減することができる。

Description

関連出願
本出願は、2007年6月14日に提出された米国仮出願第60/943,935号の優先権を主張する。その全内容が、参照することによりここに組み込まれる。
本開示は集積回路に関し、特に、集積回路のための外部インタフェースの機能性およびタイミングをベリファイするための技術に関する。
集積回路(IC)デバイスは、半導体基板に実装された様々な小型回路を含み得る。ICデバイスは、商用で販売され使用される前に適切な動作を確認するために、製造後にテストされる。典型的に、ICデバイスの完全なテストは、複雑で高価な外部テスト機器を用いて遂行される。ICデバイスをテストするために、ICデバイスはテスト機器にマウントされる。特に、ICデバイスは、入出力(I/O)ピンとコアロジックを相互に接続するパッドリングを通じて、テスト機器に接続される。ICデバイスをテストするために、テスト機器は、テストを定義するテストデータをI/Oピンを通じてICデバイスに供給し、テストプログラムによって定義されたテストに従ってICデバイスからの応答信号を取得する。
ICデバイスのテストには、ICデバイスの外部インタフェースおよび内部インタフェースの機能性およびタイミングをベリファイすることを要する。外部インタフェースの例は、ペリフェラルコンポーネントインターコネクト(PCI)バス、アドバンスト高性能バス(AHB)、アドバンスト拡張インタフェース(AXI)インターフェースバス、スモールコンピュータシステムインターフェース(SCSI)バス、イーサネット(登録商標)バス、ユニバーサルシリアルバス(USB)、アドバンストグラフィックスプロセッサ(AGP)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、および高周波で動作する他の外部インタフェースのようなバスインタフェースおよびメモリインターフェースを含んでいる。外部インタフェースの機能性およびタイミングのベリファイは、テストプログラムを開発し、シミュレーションの実行によりテスト中の外部インタフェースについてトレースファイルを生成するために、ホストコンピュータを用いることを含む。テストベクトル、ベクトルまたはテストデータとも呼ばれるトレースファイルの準備が整った時点で、テストデータがテスト機器上にロードされる。テスト機器は、テストデータに従ってICデバイスにテスト信号を供給し、I/Oピンを通じてICデバイスからの応答信号を取得する。
テスト中に、ICデバイスの動作が送信および受信の両モードでテストされる。送信モードまたは受信モードでは、テスト機器はテストデータにより信号遷移を提供し、ICデバイスは、対応する応答信号を生成する。その後、テスト機器は、テストデータにより応答を検証する。テストが完了すると、テスト機器、より具体的にはホストコンピュータが、応答信号を解釈する。ホストコンピュータは、送信および受信モードにおいてICデバイスによって生成された応答信号と、シミュレーション結果とを比較することにより、結果を解釈することができる。当該比較に基づいて、ホストコンピュータは、ICデバイスがテストに合格したかどうかを示すレポートを生成する。
更に、各テストベクトルについては、ICデバイスが様々な動作条件(例えば温度、電圧変動、プロセスコーナー)に関してテストされ得る。またテスト機器は、外部インタフェースの最大動作周波数またはそれを上回る動作周波数での信号遷移を生成することが要求される場合がある。ICデバイスの複雑性およびクロック周波数が増えるにつれて、テスト機器チャネルが動作する周波数もまた確実にICデバイスをテストするために増える必要がある。例えば、高速メモリデバイスのクロック周波数は、ほぼ年単位で増加することから、高い動作周波数でこれらのデバイスをテストするために、テスト機器には改良、改善が必要とされ、リプレースが必要となる場合すらある。言いかえれば、ICデバイスは、低い周波数で動作する被テスト機器用に設計された古いテスト機器を用いては、最大クロック周波数でテストすることができない。従ってクロック周波数が進歩するたびに、テスト機器は改良されるか購入されなければならず、また、新規のテストプログラムが開発されなければならず、これにより新規のICデバイスのコストが増大する。
本開示では、高周波外部インタフェースの機能性の検証のためのセルフテスト機構を備えた集積回路について説明する。外部インタフェースの実施例は、ペリフェラルコンポーネントインターコネクト(PCI)バス、アドバンスト高性能バス(AHB)、アドバンスト拡張インタフェース(AXI)バス、および高周波(例えば200MHz以上)で動作する他の外部インタフェースのような、メモリインターフェースおよびバスインタフェースを含んでいる。テストロジックは、集積回路上に組み込まれ、外部インタフェースの機能性を検証するように構成されてもよい。例えば、テストロジックは、外部テスト機器から電力および非テスト信号を受け取りながら外部インタフェース機能性を検証するように構成されてもよい。故に、外部テスト機器が集積回路に高周波テスト信号を供給しない可能性がある。
一般に、外部インタフェースの機能性の検証とは、トランザクションに関連するデータに基づいて、またはトランザクションが、対応するプロトコルと合致しているかどうかに基づいて、外部インタフェース上に送信された該トランザクションを検証することを指す。外部テスト機器は、電力および必須信号を集積回路に供給し、ならびに、集積回路のピンインタフェースの機能性を独自に検証するために用いられる。このように、集積回路のオンチップのセルフテスト機構は、テスト機器が高周波テスト信号を供給する必要性を実質的になくすことができ、その結果、外部インタフェースの機能性およびタイミングをベリファイするのに必要なコストと時間を削減することができる。
一の態様では、集積回路は、テストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始するプロセッサと、前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するためのトランザクションを生成するコアロジックと、を具備し、前記プロセッサは、前記テストプログラムに従って前記コアロジックと通信するためのトランザクションを生成し、1つまたは複数の前記トランザクションを検証し、該1つまたは複数のトランザクションがバリッドであるかどうか示すステータス信号を出力するテストロジックを具備する。
別の態様において、方法は、集積回路上のプロセッサにおいてテストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始すること、前記テストプログラムに従って、前記集積回路上のコアロジックと通信するためのトランザクションを前記プロセッサにおいて生成すること、前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するために前記コアロジックにおいてトランザクションを生成すること、前記集積回路上のテストロジックにより、1つまたは複数の前記トランザクションを検証すること、前記1つまたは複数のトランザクションがバリッドであるかどうか示すステータス信号を前記テストロジックにおいて生成することを含む。
別の態様において、集積回路は、集積回路上のプロセッサにおいてテストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始するための手段と、前記テストプログラムに従って、前記集積回路上のコアロジックと通信するためのトランザクションを前記プロセッサにおいて生成するための手段と、前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するために前記コアロジックにおいてトランザクションを生成するための手段と、前記集積回路上のテストロジックにより、1つまたは複数の前記トランザクションを検証するための手段と、前記1つまたは複数のトランザクションがバリッドであるかどうか示すステータス信号を前記テストロジックにおいて生成するための手段とを含む。
別の態様において、コンピュータプログラム製品、命令を有するコンピュータ可読媒体を具備する。該命令は、集積回路上のプロセッサにおいてテストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始するためのコードと、前記テストプログラムに従って、前記集積回路上のコアロジックと通信するためのトランザクションを前記プロセッサにおいて生成するためのコードと、前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するために前記コアロジックにおいてトランザクションを生成するためのコードと、前記集積回路上のテストロジックにより、1つまたは複数の前記トランザクションを検証するためのコードと、前記1つまたは複数のトランザクションがバリッドかどうか示すステータス信号を生成するためのコードと、を具備する。
別の態様において、システムは、集積回路と、前記集積回路に電力とクロック信号を供給するテスト機器を具備する。前記集積回路は、テストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始するプロセッサと、前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するためのトランザクションを生成するコアロジックと、を具備し、前記プロセッサは、前記テストプログラムに従って前記コアロジックと通信するためのトランザクションを生成し、1つまたは複数の前記トランザクションを検証し、該1つまたは複数のトランザクションがバリッドであるかどうか示すステータス信号を出力するテストロジックを具備する。
この開示に記述された技術は、ハードウェア、ソフトウェア、ファームウェアあるいはそれらの任意の組み合わせで実装してもよい。ソフトウェアで実装する場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)またはデジタル信号プロセッサ(DSP)のような1または複数のプロセッサで実行されてもよい。該技術を遂行するソフトウェアは、コンピュータ可読媒体に最初に記憶され、プロセッサにロードされ、実行されてもよい。したがって、この開示は、実行時に本開示で説明されているような技術をデバイスに行なわせる。命令を包含するコンピュータ可読媒体をも意図する。場合によっては、コンピュータ可読媒体は、コンピュータ可読媒体を包含するコンピュータ・プログラムプロダクトの一部を形成してもよい。
この開示の1つまたは複数の態様の詳細は、添付図面と以下の説明で述べられる。本開示の他の特徴、目的および利点は、詳細な説明、図面、およびクレームから明らかになる。
図1は、セルフテスト機構を備えた集積回路および集積回路をテストするための外部テスト機器を示すブロック図である。 図2は、図1の集積回路をより詳細に示すブロック図である。 図3は、図2における集積回路の例示のコンポーネントをより詳細に示すブロック図である。 図4は、図2の集積回路によって行なわれ得るセルフテスト技術の実施例を示すフローチャートである。 図5は、図2の集積回路によって行なわれ得るセルフテスト技術の実施例を示すフローチャートである。
集積回路は、商用で販売され使用される前に適切な動作を確認するために、製造後にテストされる。集積回路のテストは、外部デバイスと通信するために用いられる外部インタフェースの機能性を検証することを含んでいてもよい。一般に、ホストコンピュータは、テストプログラムを開発し、シミュレーションを実行して外部インタフェース用のトレースファイルを生成するために使用される。本開示においてテストベクトル、ベクトルまたはテストデータとも呼ばれるトレースファイルが生成された時点で、それらは、該テストデータに従って集積回路にテスト信号を供給するテスト機器にロードされる。
このような集積回路のテストには、集積回路の外部インタフェースの複雑な機能性をカバーするために多数のテストベクトルを要することから、多大な時間がかかり得る。また、外部インタフェースのタイミングをベリファイするために、テスト機器は、集積回路の最も高い動作周波数をサポートしなければならないので、テストは高価なものとなり得る。集積回路の複雑性およびクロック周波数はたびたび増すことから、外部テスト機器の性能が、新規の集積回路をテストする際の制限要因になることがある。すなわち、低い周波数で動作する集積回路のテストのために設計された古いテスト機器は、より高い動作周波数で新規の集積回路をテストするのに用いることはできない。ますます高い周波数で集積回路をテストすることができる新規の外部テスト機器を入手するのはコスト高であって、追加の時間を要するかも知れない。
本開示では、高周波外部インタフェースの機能性の検証のためのセルフテスト機構を備えた集積回路について説明する。外部インタフェースの例は、ペリフェラルコンポーネントインターコネクト(PCI)バス、アドバンスト高性能バス(AHB)、アドバンスト拡張インタフェース(AXI)インターフェースバス、スモールコンピュータシステムインターフェース(SCSI)バス、イーサネットバス、ユニバーサルシリアルバス(USB)、アドバンストグラフィックスプロセッサ(AGP)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、および高周波(例えば200MHz以上)で動作する他の外部インタフェースのようなバスインタフェースおよびメモリインターフェースを含んでいる。本開示の種々の態様に従い、テストロジックは、集積回路上に組み込まれ、外部インタフェースの機能性を検証するように構成されてもよい。ある態様では、テストロジックは、外部テスト機器から電力および非テスト信号を受け取りながら外部インタフェース機能性を検証するように構成されてもよい。故に、外部テスト機器が集積回路に高周波テスト信号を供給しない可能性がある。
外部インタフェースの機能性の検証とは、トランザクションに関連するデータに基づいて、またはトランザクションが、対応するプロトコルと合致しているかどうかに基づいて、外部インタフェース上に送信された該トランザクションを検証することを指す。外部テスト機器は、電力および非テスト信号、すなわち集積回路の動作にとって必須な信号、を集積回路に供給し、ならびに、集積回路のピンインタフェースの機能性を独自に検証するために用いられる。このように、集積回路のオンチップのセルフテスト機構は、テスト機器が高周波テスト信号を供給する必要性を実質的になくすことができ、その結果、外部インタフェースの機能性およびタイミングをベリファイするのに必要なコストと時間を削減することができる。
図1は、集積回路12の高周波外部インタフェースの機能性を検証するためのシステム10を示すブロック図である。図1に示すように、システム10は、集積回路12とテスト機器22を含んでいる。一般に、集積回路12は、テスト機器22が高周波外部インタフェースの機能性を検証するための高周波テスト信号を供給する必要性を実質的になくすセルフテスト機構を含んでいる。従って、テスト機器22は、テストプロセス中に、集積回路12に電力、および非テスト信号(すなわち動作に必須の信号)を供給する比較的低コストのテスト機器とすることができる。
集積回路12は、シリコンチップのような半導体基板に実装された1つまたは複数の小型回路を包含してもよい。一般に、集積回路12は、1つまたは複数の外部インタフェースを通じて外部デバイス(不図示)と通信する特定用途向け集積回路(ASIC)または汎用集積回路であってもよい。例えば、集積回路12は、パーソナルコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、ウルトラモバイルパーソナルコンピュータ(UMPC)、移動電話ハンドセット、ネットワークデバイスまたは他の電子機器で用いるように構成されてもよい。集積回路12は、1つまたは複数の外部インタフェースを通じて、システムメモリ、ディスクドライブ、キーボード、モニタまたはディスプレイ、マウス、プリンタ、スキャナー、外部記憶装置および他の外部入力/出力(I/O)デバイスのような外部デバイスと通信するように構成されてもよい。したがって、集積回路12は、少なくとも1つの外部デバイス、すなわち、半導体基板から離れた電子的コンポーネントと通信するように構成された任意の集積回路であってもよいことが理解されるべきである。
図1において、集積回路12は、プロセッサ14、コアロジック16、テストロジック18およびピンインタフェース20を含んでおり、テスト機器22にマウントされる。プロセッサ14は、ローカルメモリに記憶されたコンピュータプログラム命令を実行し、該記憶された命令によって指示されるとおりにデータを処理するプログラマブルなプロセッサである。例えば、プロセッサ14は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、または上記コンポーネントの組合せとすることができる。
一般に、プロセッサ14は、送信モードまたは受信モードで動作する。一実施例において、プロセッサ14は、送信モードでは外部デバイス(不図示)にデータをライトするように動作し、受信モードでは外部デバイス(不図示)からデータを受け取るように動作する。他の実施例において、プロセッサ14が、外部デバイスにデータをライトすることなく送信モードで動作し、外部デバイスからデータをリードすることなく送信モードで動作してもよい。送信モードおよび受信モードで生成されるトランザクションのことを、本開示では、それぞれ、ライトトランザクションおよびリードトランザクションと呼ぶことにする。送信モードで動作する場合、プロセッサ14は、要求トランザクションとも呼ばれるライトトランザクションを生成し、コアロジック16に該要求トランザクションを送る。一実施例として、要求トランザクションは、外部デバイスを識別することができ、該外部デバイスにライトされるべきデータを含んでいてもよい。
受信モードで動作する場合、プロセッサ14は同じように動作する。すなわち、プロセッサ14は、リードトランザクションを生成し、コアロジック16に該リードトランザクションを送る。いずれの場合、すなわち、送信モードまたは受信モードで動作する場合でも、プロセッサ14は、コアロジック16に与えられたプロトコルに従って要求トランザクションを生成する。より詳細に説明するように、コアロジック16は、異なるプロトコルに従って通信する異なるブロックを包含してもよい。従って、プロセッサ14は、コアロジック16の対応するブロックのプロトコルに従ってトランザクションを生成する。
コアロジック16は、プロセッサ14と1つまたは複数の外部デバイス(不図示)との間でデータを送信するための外部インタフェースを提供する。特に、コアロジック16は、対応する外部インタフェースに関連するプロトコルに従ってトランザクションを生成し、プロセッサ14と外部デバイスとの間のトランザクションをルーティングすることにより、プロセッサ14と外部デバイスの間の通信を管理する。例えば、送信モードで動作する場合、コアロジック16は、プロセッサ14から受け取ったライト(要求)トランザクションごとに、ライトトランザクションを生成し、適切な外部デバイスへの該ライトトランザクションの経路を選択する。コアロジック16は、場合によっては、ライトトランザクションを確認するために、プロセッサ14に応答メッセージを送ってもよい。またコアロジック16は、外部デバイスに送られた、対応するライトトランザクションに応じて、外部デバイスからメッセージを受け取ってもよい。コアロジックは外部デバイスからのメッセージを受け取るのであって、コアロジック16は該メッセージを処理し、プロセッサ14に適切な応答を送ってもよい。
同様に、受信モードで動作する場合、コアロジック16は、プロセッサ14から受け取ったリード(要求)トランザクションを処理し、対応するリードトランザクションを生成し、適切な外部インタフェースデバイスに送る。コアロジック16は、外部デバイスに関連するプロトコルに従ってリードトランザクションを生成する。リードトランザクションに応じて、コアロジック16は、外部デバイスからメッセージを受け取る。コアロジック16は、該メッセージを処理し、対応するメッセージをプロセッサ14に送る。場合によっては、コアロジック16は、プロセッサ14から受け取ったリードトランザクションに応じて、プロセッサ14にメッセージを送ってもよい。
コアロジック16および1つまたは複数の外部デバイスは、シングルスバスまたは集合バス上で通信してもよい。各バスは、1つまたは複数の外部デバイスにコアロジック16をつなぎ、特定のプロトコル、タイミングおよび帯域幅性能に従って動作する、異なるアーキテクチャを有してもよい。外部デバイスに集積回路12を相互接続するために用いることのできるバスアーキテクチャの実施例は、メモリーバス、産業標準アーキテクチャ(ISA)バス、エンハンストISA(EISA)バス、ペリフェラルコンポーネントインターコネクト(PCI)バス、アドバンストグラフィックスプロセッサ(AGP)バス、ユニバーサルシリアルバス(USB)、アドバンスト高性能バス(AHB)、アドバンスト拡張インタフェース(AXI)バス、アドバンストテクノロジーアタッチメント(ATA)バス、スモールコンピュータシステムインターフェース(SCSI)バス、イーサネットバス、ユニバーサルシリアルバス(USB)、およびシリアルアドバンストテクノロジーアタッチメント(SATA)バスを含む。外部デバイスに集積回路12をつなぐために他のバスアーキテクチャが用いられてもよい。コアロジック16とプロセッサ14は、1つまたは複数の分離したバス上で通信してもよい。一実施例において、フロントサイドバスと呼ばれる分離した専用バスは、プロセッサ14とコアロジック16の間のトランザクションを運ぶ。
一実施例として、集積回路12がパーソナルコンピュータ内で用いられてもよい。この実施例において、コアロジック16は、中央処理装置(CPU)として動作するプロセッサ14と、システムメモリとの間の高周波メモリーバス上の通信を管理することができる。コアロジック16は、プロセッサ14と、キーボード、モニター、およびマウスのうちの1以上との間のISAバス上の通信を管理することもできる。さらに、コアロジック16は、プロセッサ14と、イーサネット拡張カード、スモールコンピュータシステムインターフェース(SCSI)カード、または他のPCIカードの1以上との間のPCIバス上の通信を管理することができる。さらに、コアロジック16は、プロセッサ14と専用のビデオプロセッサとの間のAGPバスによる通信、プロセッサ14とCD−ROMまたは他のハードディスクとの間のATAバスによる通信、プロセッサ14と、プリンタ、スキャナー、外部大容量記憶装置または他のUSB互換周辺機器の1以上との間のUSBによる通信を管理することができる。
パーソナルコンピュータ内での動作において、集積回路12が、例えばハードディスクドライブ、フラッシュディスクドライブまたはリムーバブルメモリカードといった記憶モジュールに記憶されたファイルを取得し、該ファイルをモニターに表示してもよい。この場合、集積回路12は、ディスクモジュールと通信するための第1の外部インタフェース、システムメモリと通信するための第2の外部インタフェース、およびディスプレイモニターと通信するための第3の外部インタフェースを利用してもよい。外部インタフェースの各々は、異なるプロトコルに従って通信してもよい。例えば、集積回路12は、先ず、ディスクモジュールに関連するプロトコルに従ってファイルを要求する。ディスクモジュールが要求を受け取ると、集積回路12にファイルを提供する。その後、集積回路12は、データを記憶するためのシステムメモリプロトコルに従って、システムメモリにファイルをライトする。集積回路12は、モニターにファイルを表示する準備が整うと、システムメモリからデータをリードし、ディスプレイモニタのための適切なプロトコルに従ってディスプレイモニタにライトする。集積回路12は、これらの異なるモジュールからデータをリードし、データをライトするために、プロトコルに従わなければならない。プロトコルに従わなければ、モジュールは、正しいデータを記憶しないし、提供もしない。
別の実施例として、集積回路12は、移動体電話ハンドセットのような無線通信装置で用いるように構成されてもよい。この実施例において、集積回路12は、プロセッサ14と、メモリーバス経由のシステムメモリ、ISAバス経由のキーパッド、USBバス経由のリムーバブルメモリカードのようなリムーバブル記憶装置、PCIバス経由のディスプレイ画面、異なるPCIバス経由のカメラモジュール等との間の通信をコアロジック16が管理する、モバイルステーションモデム(MSM)チップであってもよい。この実施例において、プロセッサ14は、ユニバーサル移動体通信システム(UMTS)、グローバル移動体通信システム(GSM)、符号分割多元接続(CDMA)プロトコルおよび/または汎用パケット無線サービス(GPRS)プロセッサ、として動作してもよい。
集積回路12がMSMチップとして動作するように構成される場合、集積回路12が、写真撮影のためにカメラモジュール、記憶モジュール、システムメモリ、およびディスプレイ画面とのインタフェースをとってもよい。集積回路12は、異なるプロトコルに従って、これらの外部デバイスの各々とのインタフェースをとってもよい。例えば、集積回路12は、写真をキャプチャーするためのカメラモジュールとの通信を開始するために、カメラモジュールに関連するプロトコルに従う。カメラモジュールが写真をキャプチャーすると、集積回路12は、キャプチャーされたイメージデータをリードし、システムメモリにイメージデータをライトするための要求を該システムメモリに送る。それがシステムメモリにある間、プロセッサ14はイメージデータを処理してもよい。処理が完了すると、集積回路12は、システムメモリプロトコルに従うシステムメモリからデータをリードし、ディスプレイ画面に画像を転送する。画像の記憶をユーザーが要求する場合、集積回路12は、ディスクドライブに画像を転送する。また、集積回路12は、カメラインタフェース、システムメモリインタフェース、ディスプレイインターフェース、フラッシュカード/ディスクドライブインタフェースのようなMSMチップの外部インタフェースの各々と、異なるプロトコルに従って通信する。この理由で、集積回路12は、各外部インタフェース上の通信をテストすることにより製造後機能性を検証する。
コアロジック16は、1つまたは複数の外部インタフェースを提供する、つまり、プロセッサ14と少なくとも1つの外部デバイスの間の通信を管理する。特に、コアロジック16とプロセッサ14は、単一のプロトコルに従って互いに通信してもよい。しかしながら、コアロジック16は、プロセッサ14と通信するために用いられるプロトコルとは異なる各プロトコルに従って、外部インタフェースの各々と通信してもよい。言いかえれば、コアロジック16は、例えばシステムメモリにデータをライトするトランザクション要求を受け取るための第1のプロトコルに従ってプロセッサ14と通信してもよく、システムメモリにデータをライトするためにシステムメモリにトランザクションを送る第2のプロトコルに従ってプロセッサ14と通信してもよい。したがって、コアロジック16は、しかるべきプロトコルに従ってトランザクションを生成することに関与する。
本開示のいくつかの実施例において、外部インタフェースの少なくとも1つは、高周波外部インタフェースである。高周波外部インタフェースは、およそ200MHzからおよそ400MHzの範囲で、およそ200MHz以上の周波数で動作してもよく、または、およそ400MHz以上の周波数で動作してもよい。PCI、AHBおよびAXIバスは、例示の高周波外部インタフェースである。以上説明されたパーソナルコンピュータおよび無線通信装置の実施例に関して、メモリーバス、PCIバス、AGPバス、ATAバスおよびUSBバスは、高周波インタフェースであってもよい。他の高周波外部インタフェースは、EISAバス、AHBバス、AXIバス、ATAバス、イーサネットバス、SCSIバスおよびSATAバスを含んでいる。
テストロジック18は、集積回路12の半導体基板上に組み込まれ、集積回路12の高周波外部インタフェースの機能性を検証するように構成される。高周波外部インタフェースの機能性の検証とは、該高周波インタフェース上に送信されたトランザクションを検証することを指す。一実施例態様において、テストロジック18は、トランザクションに関連するデータに基づいて、該トランザクションを検証してもよい。別の態様において、テストロジック18は、トランザクションが該トランザクションに関連するプロトコルと合致しているかどうかに基づいて、該トランザクションを検証してもよい。トランザクションがプロトコルと合致しているかどうかに基づいた該トランザクションを検証する場合、テストロジック18は、該トランザクションに関連するデータに基づいて、トランザクションを検証してもよい。
トランザクションを検証するために、テストロジック18は、最初に、トランザクションが送られる通信チャネルまたはバスをスヌープする。以下でより詳細に説明するように、テストロジック18は、プロセッサ14とコアロジック16の間の通信チャネルまたはバス、もしくは、コアロジック16とピンインタフェース20の間の通信チャネルまたはバスをスヌープしてもよい。いずれにせよテストロジック18がトランザクションを得た場合、テストロジック18は、トランザクションを検査し、該トランザクションがバリッドであるかどうか判定する。トランザクションは、例えば、トランザクションに関連するデータを参照データと比較すること、または、トランザクションが関連プロトコルと合致しているかどうか判定することによって調査してもよい。一実施例において、トランザクションが関連プロトコルと合致しているかどうか判定することは、プロトコルによって定義された制御信号をチェックすることを含んでもよい。他の実施例では、トランザクションが関連プロトコルと合致しているかどうか判定することは、制御信号をチェックすることを要しない。いずれにせよ、テストロジック18は、トランザクションがバリッドであるかどうか、すなわち、正当性テストに合格したか落第したかを示すステータス信号を出力する。この信号は、例えば、ピンインタフェース20の指定のピンを通じて出力される。その後、ユーザーは、テスト機器22と連動するホストコンピュータのディスプレイモニタのステータス信号を見ることができ、集積回路12が機能しているかどうかを判定する。
本開示で説明されるような、集積回路12の高周波外部インタフェースの機能性の検証は、テスト機器22が集積回路12に高周波信号を供給することを要しない。もっと正確に言えば、テスト機器22は、プロセッサ14のローカルメモリにテストプログラムをロードするために用いられる。プロセッサ14は、送信および受信モードでの動作を集積回路12にシミュレートさせるテストプログラムを実行する。言いかえれば、テストプログラムは、プロセッサ14によって実行されたとき、プロセッサ14とコアロジック16に1つまたは複数の外部インタフェースによって送られるライトおよびリードトランザクションを生成させる命令を含んでいる。テストロジック18は、集積回路12の通信チャネルをスヌープしてトランザクションを得、該トランザクションを検査してそれらの正当性を判定する。このように、テストロジック18は、外部インタフェースの各々によって通信する場合にプロセッサ14とコアロジック16が、対応するプロトコルに従っていることを検証する。その結果、テストは、種々の動作条件についてオンチップで完了するのであって、そうでなければ必要となる、各動作条件セットについてテストをセットアップし、かつ/または開始するという手仕事を要しない。これは、外部インタフェースの機能性およびタイミングをベリファイするのに必要な時間とコストを削減する。またテスト機器22を、電力、接地、クロック信号、例えばシステムクロック、システムリセットなどのような非テスト信号を集積回路12に供給し、集積回路12にテストプログラムをロードするために用いられる低価格機器とすることができる。このように、テスト機器22を高周波テスト信号を提供するために変更し、アップデートする必要はない。
本開示では、集積回路12が高周波インタフェースの機能性を検証するものとして説明されるが、任意の周波数で動作する外部インタフェースの機能性を検証するためにテストロジック18が用いられてもよい。これは、高周波外部インタフェースの機能性を検証するには既存のテスト機器をアップデートしたり新規のテスト機器を購入するのに高いコストがかかることに加え、各外部インタフェースは、あらゆる動作条件(例えば供給電圧範囲、温度範囲、プロセスコーナー)にでしばしばテストされることから任意の周波数で動作する外部インタフェースの機能性の検証は複雑で時間のかかるタスクとなる可能性があるためである。さらに、集積回路間に構成変化があると、テストプログラムに手動で訂正を加えることを要する。
しかしながら、テストロジック18が半導体基板上で追加のリアルエステートを占めるので、テスト機器を通じてテスト信号を供給することによって、より低い周波数(例えば200MHz未満)で動作する外部インタフェースを検証するのが望ましいかもしれないことが認識される。これは、テストロジックに割り当てられる基板スペースのコストと、本開示において説明される、セルフテスト機構を用いることなしにテストを行うコストとの間のトレードオフに依存する。言いかえれば、テストロジック18が占有する半導体基板上のリアルエステートのコストと、本開示の時点で良く知られた技術に従い外部インタフェースの機能性の検証のための信号を供給するためにテスト機器を用いることに関連するコストとの間にトレードオフが存在する。したがって、本開示において説明された外部インタフェースの機能性を検証するためのセルフテスト機構は、任意の周波数で動作する外部インタフェースの機能性の検証のために用いられてもよいが、特に高周波(例えば200MHz以上)で動作する外部インタフェースに有用であるかもしれないことが理解されるべきである。
図2は、集積回路12をより詳細に示すブロック図である。特に、集積回路12は、図2において、外部インタフェースコントローラ30Aおよび30Bと、テストロジックモジュール32Aおよび32Bを含むものとして示される。外部インタフェースコントローラ30Aおよび30Bは、図1におけるコアロジック16に対応する。すなわち、外部インタフェースコントローラ30Aおよび30Bは、異なる外部インタフェースに関連する、コアロジック16の個別のブロックまたはモジュールを表わす。例えば、外部インタフェースコントローラ30Aが、PCIバスのようなある種類の高周波外部インタフェース上の通信を管理し、外部インタフェースコントローラ30Bが、AGPバスのような異なる種類の高周波外部インタフェース上の通信を管理してもよい。外部インタフェースコントローラ30Aおよび30Bは、異なるプロトコルに従って、それぞれの外部デバイスとの通信を管理してもよい。図2において、外部インタフェースコントローラ30Aは、バス31によりプロセッサ14と通信し、対応する外部デバイス(不図示)とバス33により通信する。外部インタフェースコントローラ30Bは、バス35によりプロセッサ14と通信し、対応する外部デバイス(不図示)とバス37により通信する。しかしながら、プロセッサ14と外部インタフェースコントローラ30Aおよび30Bは、1つまたは複数のバスの一部を共有してもよいことが理解されるべきである。すなわち、図2は、バス31、33、35および37として参照される通信チャネルを表しているが、これらの通信チャネルは単一または複数のバスを表わしてもよい。一実施例として、バス31および35は、複数の外部インタフェースコントローラを含みうるコアロジックとプロセッサ14の間のチャネルを提供する、フロントサイドバスと呼ばれるシングルバスとすることができる。
同様に、テストロジックモジュール32Aおよび32Bは、異なる外部インタフェースに関連するテストロジック18の個別のブロックまたはモジュールを表わす。テストロジックモジュール32Aおよび32Bの各々は、対応する高周波外部インタフェースの機能性を検証する。図2において、テストロジックモジュール32Aは外部インタフェースコントローラ30Aに関連付けられ、テストロジックモジュール32Bは外部インタフェースコントローラ30Bに関連付けられている。
テストロジックモジュール32Aは、バス31、バス35、またはその両方をスヌープしてもよい。例えば、テストロジックモジュール32Aがバス31をスヌープし、送信モードまたは受信モードで動作する際にプロセッサ14によって生成されたトランザクションを検証してもよい。別の例では、テストロジックモジュール32Aがバス31をスヌープし、外部インタフェースコントローラ30Aによって生成され、送信モードまたは受信モードでプロセッサ14に送られたトランザクションを検証してもよい。受信モードでプロセッサ14に送られるトランザクションを外部インタフェースコントローラ30Aが生成する場合には、テスト機器22(図2では不図示)は、高周波信号を提供しないしチェックもしない。正確に言えば、テストロジックモジュール32Aは、プロセッサ14によって提供されるシード値に基づいて、プロトコルによって要求されるとおりの他の信号およびデータを外部インタフェースコントローラ30Aに送る。
外部インタフェースコントローラ30Aは、テストロジックモジュール32Aから受け取ったデータおよび他の信号に基づいて、対応するリードトランザクションを生成し、該リードトランザクションをプロセッサ14に送る。このように、テストロジックモジュール32Aは、該テストロジックモジュール32Aが外部デバイスの動作をエミュレートし、すなわち外部インタフェースコントローラ30Aに適切なデータおよび信号を提供する、典型的なテスト機器として同様に動作する。これについては、図3を参照してより詳細に説明される。付加的な実施例において、テストロジックモジュール32Aがバス33をスヌープし、外部インタフェースコントローラ30Aによって生成され、送信モードまたは受信モードでピンインタフェース20に送られたトランザクションを検証してもよい。
テストロジックモジュール32Bは、同じように動作し、外部インタフェースコントローラ30Bに関連する外部インタフェース上に送信されたトランザクションを検証してもよい。すなわち、テストロジックモジュール32Bは、バス35、バス37、またはその両方をスヌープし、送信または受信モードで対応する外部インタフェース上に送信されたトランザクションを検証してもよい。
これらの実施例の各々において、テストロジックモジュール32Aおよび32Bは、トランザクションに関連するデータに基づいて、またはトランザクションが、関連するプロトコルと合致しているかどうかに基づいて、トランザクションを検証することができる。関連するプロトコルと合致しているかどうかに基づいてトランザクションを検証することは、当該プロトコルによって定義された規則に従って生成されるトランザクションを検証することを含んでもよい。プロトコルによって定義された規則は、データ表現、シグナリング、認証、エラー検出およびエラー処理を定義する規則を含んでもよい。テストロジックモジュール32Aおよび32Bは、トランザクションが、関連するプロトコルと合致しているかどうかに基づいてトランザクションを検証する場合に関連するデータに基づいて、トランザクションを検証してもよい。集積回路12によって用いられる検証プロセスは、図3に示されたブロック図、ならびに図4および図5に示されたフローチャートを参照して詳細に説明される。
図2は、テストモジュール32Aおよび32Bならびに外部インタフェースコントローラ30Aおよび30Bを含む2つの高周波外部インタフェースを含むものとして集積回路12を示しているが、集積回路12は、1つまたは複数の外部インタフェースを含んでも良い。したがって、図2は単に例示であり、決して、開示を限定するものとみなされるべきではないことが理解されるべきである。むしろ図2の目的は、集積回路の外部インタフェースと、該外部インタフェースの機能性を検証するために該集積回路上に組み込まれるテストロジックとの間の関係を示すことにある。
図3は、集積回路12のコンポーネントをより詳細に示すブロック図である。特に、図3はプロセッサ14、外部インタフェースコントローラ30Aおよびテストロジックモジュール32Aをより詳細に示している。プロセッサ14および外部インタフェースコントローラ30Aは協力して動作し、例えば、外部デバイス(不図示)からデータをリードし、外部デバイス(不図示)にデータをライトするリードおよびライト動作を行なうための外部インタフェースを提供する。特に、プロセッサ14、外部インタフェースコントローラ30Aおよび対応する外部デバイスは、各プロトコルに従って互いと通信する。すなわち、プロセッサ14および外部インタフェースコントローラ30Aは特定のプロトコルに従って互いと通信し、外部インタフェースコントローラ30Aおよび外部デバイスは異なるプロトコルに従って互いと通信する。テストロジックモジュール32Aは、テスト機器22のような外部テスト機器が高周波信号を供給しチェックすることを要さずに、外部インタフェースの機能性を検証するための機構を提供する。例えば一の態様では、テストロジックモジュール32Aは、プロセッサ14および外部インタフェースコントローラ30Aのいずれかまたは両方で生成されたトランザクションを、該トランザクションに関連するデータに基づいて検証する。別の態様では、テストロジックモジュール32Aは、プロセッサ14および外部インタフェースコントローラ30Aのいずれかまたは両方で生成されたトランザクションを、該トランザクションが、関連プロトコルと合致しているかどうかに基づいて検証する。
プロセッサ14は、メモリ40、プロセッサ46、入出力(I/O)モジュール48およびトランザクションモジュール49を含んでいる。メモリ40は、テストプログラム42およびステータス44を記憶する。テストプログラム42は、テスト機器22(不図示)を通じてホストコンピュータによってメモリ40にロードされ、プロセッサ46によって実行されたときに、送信モードまたは受信モードの動作を開始する命令を含んでいる。送信モードまたは受信モードで動作する場合、いくつかの実施例において、プロセッサ14は、外部デバイスにデータをライトするための、または対応する外部デバイスからデータをリードするための動作を行うことができる。他の実施例において、プロセッサ14が、外部デバイスにデータをライトすることを要さず、また外部デバイスからデータをリードすることを要さずに送信モードまたは受信モードで動作してもよい。一般に、プロセッサ46は、テストプログラム42の命令ごとにトランザクションモジュール49とI/Oモジュールの48の動作を制御し、データを処理する。
例えば、送信モードで動作する場合、トランザクションモジュール49はプロセッサ46の管理の下でライトトランザクションを生成する。ライトトランザクションの例は、システムメモリにデータをライトする要求、画像をキャプチャーするためのカメラモジュールへの要求、およびデータを表示するためのモニターへの要求を含んでいる。外部デバイスにデータをライトするためのライトトランザクションは、該外部デバイスを識別する情報および該外部デバイスにライトされるべきデータを識別する情報を含んでもよい。
プロセッサ46は、受信モードで動作する場合に、リードトランザクションを生成するようトランザクションモジュール49を制御する。リードトランザクションは、ハードディスクまたはリムーバブルメモリカードのようなメモリからデータを取り出す要求、携帯型のデバイスのカメラモジュールによってキャプチャーされた画像データを取り出す要求、周辺機器からデータを取り出す要求を含んでも良い。
I/Oモジュール48は、バス31を通じて外部インタフェースコントローラ30Aにライトおよびリードトランザクションを送る。バス31は、プロセッサ14が外部インタフェースコントローラ30Aおよび追加の外部インタフェースコントローラと通信するフロントサイドバスであってもよい。あるいは、バス31は、プロセッサ14と外部インタフェースコントローラ30Aの間の通信の専用バスであってもよい。
外部インタフェースコントローラ30Aは、プロセッサ14から受け取ったライトおよびリードトランザクションを処理し、現実世界環境において対応する外部デバイスに、対応するライトおよびリードトランザクションを送る。テスト環境では、外部インタフェースコントローラ30Aはインタフェース20の指定のピンに、対応するトランザクションを送る。以下では、送信モードでの動作について、外部インタフェースコントローラ30Aの動作を説明している。受信モードでの外部インタフェースコントローラ30Aの動作については、混乱を避けるために別途説明する。
図3において、外部インタフェースコントローラ30Aは、トランザクションモジュール50とI/Oモジュール52を含んでいる。I/Oモジュール52は、外部インタフェースコントローラ30AのI/Oを管理する。I/Oモジュールは、バス31によって受け取ったライトトランザクションをトランザクションモジュール52に導き、トランザクションモジュール50によって生成された、対応するライトトランザクションをバス33についてする。テスト中に、バス33は、ピンインタフェース20(不図示)の指定のピンにつながれる。
トランザクションモジュール50は、受信ライトトランザクションに含まれていたデータを処理し、I/Oモジュール52がバス33についてする、対応するライトトランザクションを生成する。外部インタフェースコントローラ30Aは、プロセッサ14と通信し、異なるプロトコルに従って対応する外部のデバイスと通信することから、トランザクションモジュール50は、適切なプロトコルに従ってトランザクションを生成する。このように、トランザクションモジュール50は、あるプロトコルから別のプロトコルにトランザクションを変換するものと見なすことができる。したがって、各外部インタフェースコントローラのトランザクションモジュールは、対応する外部インタフェースに関連するプロトコルに従ってトランザクションを生成しうる。これは、(図1に示される)コアロジック16が図2におけるコントローラ30Aおよび30Bのような複数の外部インタフェースコントローラを含むものとみなすことのできる理由である。したがって、トランザクションモジュール50は、プロセッサ14から受け取ったライトトランザクションを、対応する外部デバイスに関連するプロトコルに変換することができる。
上述したように、第1の実施例において、外部インタフェースコントローラ30Aは、プロセッサ14に応答メッセージを送ってもよい。かかる実施例において、トランザクションモジュール50は応答メッセージを生成し、I/Oモジュール52はバス31を通じてプロセッサ14に該応答メッセージを送る。
第2の実施例において、外部インタフェースコントローラ30Aは、通常動作において、すなわち現実世界環境で動作する場合に、対応する外部デバイスから応答メッセージを受け取ってもよい。しかしながら、テスト中に、外部インタフェースコントローラ30Aは、テストロジックモジュール32Aから応答メッセージを受け取る。すなわち、テストロジックモジュール32Aは、例えば、当該プロトコルで必要とされるとおりのデータおよび他の信号を外部インタフェースコントローラ30Aに供給することによって、外部インタフェースコントローラ30Aに、対応する応答メッセージを生成してプロセッサ14に送らせる。図3に関して、I/Oモジュール52は、バス33を通じてテストロジックモジュール32Aからデータおよび他の信号を受け取り、これを、対応する応答メッセージを生成するトランザクションモジュール50に導く。I/Oモジュール52は、バス31を通じて、該対応する応答メッセージをプロセッサ14に送る。
第3の実施例において、外部インタフェースコントローラ30Aは、該第1および第2の実施例に従って応答メッセージを送ってもよい。すなわち、外部インタフェースコントローラ30Aは、プロセッサ14から受け取るライトトランザクションの受信に応じて、該プロセッサ14に第1の応答メッセージを送ってもよく、外部インタフェースコントローラ30Aによって外部デバイスに送られたライトトランザクションに対応する、第3の応答メッセージの受信に応じて、プロセッサ14に第2の応答メッセージを送ってもよい。
第4の実施例において、外部インタフェースコントローラ30Aは、応答信号を何ら生成しない。外部インタフェースコントローラ30Aは、上記実施例のうちのいずれに従って動作してもよい。外部インタフェースコントローラ30Aのテストは、実施例の各々に従って外部インタフェースコントローラ30Aの動作を検証することを含んでもよい。
テストロジックモジュール32Aは、送信モードと受信モードにおいてプロセッサ14および外部インタフェースコントローラ30Aによって提供される外部インタフェースの機能性を検証する。またテストロジックモジュール32Aは、外部デバイスの動作をエミュレートするために関連プロトコルによって必要とされる他の信号およびデータを、外部インタフェースコントローラ30Aに提供する。集積回路素子は、徐々に高まっている動作周波数でテストされる必要があるが、外部テスト機器の代わりに該データおよび信号を供給するテストロジックモジュール32Aを用いることによって、外部テスト機器が高周波で動作することは必要なく、これにより変更、アップデート、リプレースの必要がない。
動作中に、プロセッサ14は、テストロジックモジュール32Aを起動し、または利用可能にする。すなわち、プロセッサ46は、テストプログラム42に従って制御信号を生成し、これをI/Oモジュール48が専用有線接続61を通じてテストロジックモジュール32Aに送る。制御信号を受け取る前の段階では、テストロジックモジュール32Aは無効(非アクティブ)であってもよい。従って、プロセッサ14は、外部インタフェースコントローラ30Aにライトトランザクションを送る前に、テストロジックモジュール32Aに上記制御信号を送ってもよい。また一方、制御信号の受信に応じて、テストロジックモジュール32Aは、バス31および33をアクティブにスヌープしてもよい。このようにして、テストロジックモジュール32Aは、バスを通じて送られたトランザクションをすべて取得することができ、したがって、適切な時に送信されるトランザクションの検証できることに加え、送信されるトランザクションがあまりにも多数であるかあまりにも少数であるかを判定することもできる。
図3において、テストロジックモジュール32Aは検証モジュール60、擬似ランダムデータ生成器62およびI/Oモジュール64を含んでおり、専用有線接続61を通じてプロセッサ14から制御信号を受け取る。I/Oモジュール64は、送信モードにおいて、バス31および33をスヌープし、プロセッサ14および外部インタフェースコントローラ30Aによって生成されたライトトランザクションをそれぞれインターセプトする。またI/Oモジュール64はバス31をスヌープし、外部インタフェースコントローラ30Aによってプロセッサ14に送られる応答メッセージまたはトランザクションを取り出す。
制御信号は、テストロジックモジュール32Aが参照データを生成するのに用いられるシード値を含んでいる。特に、擬似ランダムデータ生成器62は、I/Oモジュール64からシード値を受け取り、該シード値を用いて、テストプログラム42によって指定された参照データにマッチするデータすなわち、プロセッサ14によって生成されたライトトランザクションに関連するデータを生成する。擬似ランダムデータ生成器62は参照データを検証モジュール60に出力する。検証モジュール60は、該参照データを、インターセプトされたトランザクションに関連するデータすなわちバス31上でインターセプトされたライトトランザクションと比較する。トランザクションがプロトコルと合致しているかどうかに基づいてテストロジックモジュール32Aがトランザクションを検証する実施例において、検証モジュール60は、プロトコルをチェックした後にデータをチェックしてもよい。
プロトコルの例は、データがいつ転送されるか示すのに用いられる信号を定義してもよい。該信号には、データ転送が進行中であることを示す、第1の状態、およびデータ転送が進行中ではないことを示す、第2の状態があってもよい。したがって、検証モジュール60は、制御信号が第1の状態にあるときにのみ、I/Oモジュール64によって提供されるトランザクションのデータをチェックしてもよい。制御信号が第1の状態にある場合に、データを検証することによって、検証モジュール60は、該トランザクションは、プロトコルおよびトランザクションに関連するデータと合致していることを検証する。このようにして、検証モジュール60は、トランザクションがプロトコルと合致していて、データがバリッドである場合、トランザクションがプロトコルと合致していて、データが非バリッドの場合、およびトランザクションがプロトコルと合致していない場合を判定することができる。しかし、検証モジュール60が、トランザクションに関連するデータのみをチェックする場合、データはバリッドであるがトランザクションはプロトコルと合致していないかもしれない。この理由で、トランザクションがプロトコルと合致しているかどうかに基づいたトランザクションの検証は、外部インタフェースの機能性を決定するためにより正確なテストを提供することができる。上述の説明は、トランザクション検証の単純で説明的な例を提供するために用いられる実施例であって、決して本開示の内容を限定するものとみなされるべきではない。正確に言えば、プロトコルが複数の信号を定義してもよく、そのような場合に、トランザクションを検証するためにチェックされる複数の状態を定義してもよいことが理解されるべきである。複数の状態が定義される場合、トランザクションの検証は、1つまたは複数の状態のチェックまたは1つまたは複数の状態のシーケンスのチェックを含んでいてもよい。
検証モジュール60は、トランザクションのステータスを指示するステータス信号を生成する。検証モジュール60が、関連データに基づいてトランザクションを検証する場合、ステータス信号はトランザクションが合格であるか失敗であるか示すことができる。また一方、トランザクションがプロトコルと合致しているかどうかに基づいて、検証モジュール60がトランザクションを検証するときには、ステータス信号は、トランザクションがプロトコルと合致していて、データがバリッドである場合、トランザクションがプロトコルと合致していて、データが非バリッドの場合、およびトランザクションがプロトコルと合致していない場合を示すことができる。
図3において、検証モジュール60は、専用有線接続61によりステータス信号を出力する。プロセッサ14は、その受信信号に基づいてステータス44を更新する。特に、I/Oモジュール48はプロセッサ46にステータス信号を導き、プロセッサ46は、メモリ40におけるステータス44を更新する。ステータス44は、外部インタフェースのステータスを示すパラメータである。例えば、ステータス44は、トランザクションがプロトコルと合致していて、データがバリッドである場合に「PASS」値を記憶し、トランザクションがプロトコルと合致しているが、データが非バリッドである場合に「DATA ERROR」値を記憶し、トランザクションがプロトコルと合致していない場合に「PROTOCOL ERROR」値を記憶してもよい。この場合、プロセッサ14は、テスト機器22(図3では不図示)によって読み出され、テスト機器22につながれたホストコンピュータを通じてユーザーに表示される、ステータス44に記憶された値に基づく信号を生成してもよい。別の態様では、検証モジュール60がI/Oモジュール64にステータス信号を送ってもよく、I/Oモジュール64がピンインタフェース20の指定のピンに該ステータス信号を直接出力してもよい。
テストロジックモジュール32Aは、同じようなプロセスを用いて、外部インタフェースコントローラ30Aによって生成されたライトトランザクションを検証する。すなわち、I/Oモジュール64は、バス33をスヌープしてライトトランザクションをインターセプトし、検証モジュール60は、このインターセプトされたトランザクションに関連するデータを、擬似ランダムデータ生成器62によって生成された参照データと比較する。その後、検証モジュール60は、該比較に基づいたステータス信号を出力する。
上述したように、いくつかの実施例態様では、外部インタフェースコントローラ30Aは、外部デバイスからの応答メッセージの受信に応じて、プロセッサ14に応答メッセージを送る。かかる実施例態様において、テストロジックモジュール32Aは、また、いくつかの実施例態様で、外部インタフェースコントローラ30Aは、外部インタフェースコントローラ30Aによって生成されたライトトランザクションを受け取ることまたは検証することに応じて、関連プロトコルによって必要なデータおよび他の信号を外部インタフェースコントローラ30Aに提供する。外部インタフェースコントローラ30Aは、通常動作では外部デバイスにより生成されるはずの応答メッセージをエミュレートする。このように、テストロジックモジュール32Aは、典型的には外部テスト機器によって提供される機能性を提供し、テスト機器22(図3では不図示)は、低価格のテスト機器として実装することができる。図3に関して、検証モジュール60は、応答メッセージ、すなわちプロトコルが必要とするデータおよび他の信号を生成してもよい。また、I/Oモジュール64はバス33上の外部インタフェースコントローラ30Aに該応答メッセージを送る。
外部インタフェースコントローラ30Aは、バス31上のプロセッサ14に、対応する応答メッセージを送る。先の詳細な説明で提供された技術を用いて、テストロジックモジュール32Aは、バス31をスヌープし、プロセッサ14に送られた応答メッセージをインターセプトして検証する。
先の詳細な説明は、送信モードでの集積回路12の動作に関する。以下の説明は、受信モードにおける集積回路12の動作に関する。外部インタフェースの機能性を受信モードで動作する場合に検証するために、集積回路12は、受信モードにおいてプロセッサ14および外部インタフェースコントローラ30Aによって生成されたトランザクションを、トランザクションに関連するデータに基づいて、またはトランザクションが、対応するプロトコルと合致しているかどうかに基づいて、検証する。これには、プロセッサ14によって生成され外部インタフェースコントローラ30Aに送られるリードトランザクション、外部インタフェースコントローラ30Aによって生成されピンインタフェース20に送られるリードトランザクションおよび外部インタフェースコントローラ30Aによって生成されプロセッサ14に送られる応答メッセージを検証することを要する。上述したように、いくつかの実施例態様において、外部インタフェースコントローラ30Aは、プロセッサ14から受け取ったリードトランザクションに対応する応答メッセージを生成してプロセッサ14に送ってもよい。かかる実施例態様において、この応答メッセージもまた検証される。
受信モードで動作する場合、プロセッサ14はテストプログラム42に従ってリードトランザクションを生成し、該リードトランザクションを外部インタフェースコントローラ30Aに送る。外部インタフェースコントローラ30Aは、対応するリードトランザクションを外部デバイスに送る。テストロジックモジュール32Aは、送信モードで生成されたライトトランザクションを検証するために用いられたものと同様の技術を用いてリードトランザクションを検証する。外部インタフェースコントローラ30Aがプロセッサ14からリードトランザクションを受け取った後にプロセッサ14に応答メッセージを送ると、テストロジックモジュール32Aもまた、応答メッセージを検証するために同じ検証技術を用いる。
また一方、受信モードで動作する場合、外部インタフェースコントローラ30Aは外部デバイスから応答メッセージを受け取る。該応答メッセージは、同外部デバイスに送られたリードトランザクションに対応する。外部テスト機器22は高周波信号を提供しないので、テスト中に、テストロジックモジュール32Aは、プロトコルが必要とする他の信号およびデータを外部インタフェースコントローラ30Aに供給する。したがって、テストロジックモジュール32Aは、外部インタフェースコントローラ30Aにプロトコルが必要とする他の信号およびデータを供給し、対応する応答メッセージまたはトランザクションを外部インタフェースコントローラ30Aに生成させ、それをプロセッサ14に送らせるという点において、典型的なテスト機器として同じように動作する。
図3に関して、検証モジュール60は、プロトコルが必要とする他の信号およびデータを含みうる応答メッセージを生成し、I/Oモジュール64は、バス33上の外部インタフェースコントローラ30Aに該応答メッセージを送る。I/Oモジュール64は、応答メッセージを送る前に、バス33に関する適切なプロトコルを適切なプロトコルを待機してもよい。検証モジュール60は、外部インタフェースコントローラ30Aから受け取った、対応するリードトランザクションに関連するステータス信号を生成した後に、応答メッセージを生成してもよい。
I/Oモジュール52は、応答メッセージを受け取り、トランザクションモジュール50に送る。トランザクションモジュール50は、応答メッセージを処理し、I/Oモジュール52がバス31上のプロセッサ14に送る、対応する応答メッセージを生成する。
テストモジュール32Aは、外部インタフェースコントローラ30Aによって生成された応答メッセージを検証する。特に、I/Oモジュール64はバス31をスヌープして応答メッセージを取り出し、検証モジュール60は、関連データまたは該応答メッセージが関連プロトコルと合致しているかどうかに基づいて、該取り出された応答メッセージを検証する。検証モジュール60が、応答メッセージがバリッドであるかどうか示すステータス信号を出力し、検証プロセスを完了する。
図4は、トランザクションに関連するデータに基づいて高周波外部インタフェース上に送信されたトランザクションを検証する集積回路12によって遂行されうる技術の実施例を示すフローチャートである。一般に、図4に示されたステップは、送信モードまたは受信モードで生成されたトランザクションを検証するために用いられてもよく、図3に示された集積回路12のコンポーネントに関して説明する。フローチャートは、製造後テスト時に集積回路12がピンインタフェース20を通じてテスト機器22にマウントされると、開始する。最初に、ホストコンピュータは、集積回路12にテストプログラムをロードする(70)。テストプログラムは、ホストコンピュータ上で開発されてもよく、テスト機器22を通じてプロセッサ14のプログラムメモリ42にロードされてもよい。
プロセッサ14および外部インタフェースコントローラ30Aは、テストプログラム命令についてトランザクションを生成し(72)、バス上に該トランザクションを送る(74)。例えばステップ72および74は、プロセッサ14が、外部インタフェースコントローラ30Aへのライトトランザクションをバス31上に送ることまたは外部インタフェースコントローラが、送信モードで動作する場合に、外部デバイスへの、対応するライトトランザクションをバス33上に送ることであってもよい。集積回路12が受信モードで動作する一実施例において、動作72および74は、プロセッサ14が外部インタフェースコントローラ30Aへのリードトランザクションをバス31上に送ること、外部インタフェースコントローラ30Aが、対応するリードトランザクションを外部デバイスに送ること、または外部インタフェースコントローラ30Aがプロセッサ14に応答メッセージを送ることであってもよい。すなわち、動作72および74は、一般に、リードまたはライト動作を行なうプロセスの間に生成されるシングルトランザクションのことを指す。したがって、図4に示されたフローチャートの動作は、完全なライトまたはリード動作を検証するために繰り返されてもよいことは明らかである。
テストロジックモジュール32Aは適切なバス(すなわちトランザクションが動作74で送られるバス)をスヌープし、トランザクションを取り出し、またはインターセプトする(76)。したがって、テストロジックモジュール32Aは、送信モードまたは受信モードでプロセッサ14によって生成されたトランザクションの検証、受信モードで外部インタフェースコントローラ30Aによって生成されたトランザクションの検証、および上記トランザクションの応答の検証のためにバス31をスヌープしてもよく、送信モードと受信モードで外部インタフェースコントローラ30Aによって生成されたトランザクションの検証のためにバス33をスヌープしてもよい。ライトおよびリード動作には、バス31および33上にライトおよびリードトランザクションを送ることを要するので、テストロジックモジュール32Aは、一般に、外部インタフェースの完全な信号パスを検証するためにバス31および33をスヌープする。
トランザクションを取り出す際、テストロジックモジュール32Aは、参照データを生成(78)し、トランザクションに関連するデータを該参照データと比較することにより、該トランザクションを検証する(80)。テストロジックモジュール32Aは、プロセッサ14によって提供されるシード値、より具体的にはプロセッサ14から受け取った制御信号に基づいて、参照データを生成してもよい。制御信号ひいてはシード値は、専用有線接続または対応するバス上に送信されてもよい。
上記比較に基づいて、テストロジックモジュール32Aは、トランザクションがバリッドであるかどうか示すステータス信号を生成する(82)。テストロジックモジュール32Aは、ピンインタフェース20の出力にステータス信号を直接適用してもよい。この出力は、該ステータス信号を表示するためのディスプレイおよびホストコンピュータにつながれてもよい。従って、ユーザーは該ステータスを調べ、ステップ72で生成されたトランザクションがバリッドかどうかを判定することができる(84)。あるいは、該ステータス信号をプロセッサ14が受け取り、読み出しおよびモニター表示が可能なメモリパラメータの値を設定するのに用いてもよい。
図5は、トランザクションが関連プロトコルと合致しているかどうかに基づいて高周波外部インタフェース上に送信されたトランザクションを検証する集積回路12によって遂行されうる技術の実施例を示すフローチャートである。図5に示されたステップは、送信モードまたは受信モードで生成されたトランザクションを検証するために用いられてもよい。図4に示したフローチャートに同様に、図5に示されたフローチャートのステップは、製造後テスト時に集積回路12がピンインタフェース20を通じてテスト機器22にマウントされると実行される。
最初に、ホストコンピュータは、テスト機器22を通じて集積回路12にテストプログラム42をロードする(100)。テストプログラム42は、送信モードと受信モードで動作する場合の外部インタフェースの機能性をテストするために開発されている。したがって、集積回路12は、テストプログラム命令についてトランザクションを生成し(102)し、バス(104)上に該トランザクションを送る(104)。図4と同様に、動作102および104は、リードまたはライト動作の時にプロセッサ14または外部インタフェースコントローラ30Aによって生成された単一の、リードまたはライトトランザクションのことを指す。しかし、図5におけるフローチャートの動作は、リードおよびライト動作の際に生成される複数のリードおよびライトトランザクションを検証するために繰り返してもよいことが理解されるべきである。
バスをスヌープすることでトランザクションを取り出し、またはインターセプトすること(106)は、テストロジックモジュール32Aが、動作102においてトランザクションが送信されたバスをスヌープすることであってもよい。テストロジックモジュール32Aは、プロセッサ14から制御信号を受け取ると、適切なバスを能動的にスヌープしてもよい。プロセッサ14は、テストプログラム42がメモリにロードされると、テストロジックモジュール32Aをイネーブルにする制御信号を送ってもよい。
トランザクションを取り出したら、テストロジックモジュール32Aは該取り出したトランザクションが、関連プロトコルと合致しているかどうかに基づいて、該トランザクションを検証する(108)。例えば、テストロジックモジュール32Aは、プロトコルによって定義された1つまたは複数の信号のチェックにより、トランザクションを検証してもよい。このことは、信号によって定義された1つまたは複数の状態をチェックすること、1つまたは複数の信号によって定義された状態のシーケンスをチェックすることを含んでも良い。例えば、データがいつ転送されるか示す信号をプロトコルが定義する場合、テストロジックモジュール32Aは、この信号をチェックし、プロトコルによって指定された時間にデータが転送されているかどうか判定してもよい。だが、より一般的には、テストロジックモジュール32Aは、プロトコルによって示される規則を満たすか、つまり、プロトコルと合致しているかどうか判定するようにトランザクションを検査する。
そして、テストロジックモジュール32Aは、例えばプロセッサ14から受け取った制御信号により与えられるシード値に基づいて、参照データを生成してもよい(110)。テストロジックモジュール32Aは、該トランザクションに関連するデータを参照データと比較することによって検証する(112)。こうして、テストロジックモジュール32Aは、トランザクションのステータスを示すステータス信号を生成することができる(114)。例えば、テストロジックモジュール32Aは、トランザクションは関連プロトコルと合致しており、データはバリッドであることを示すステータス信号、トランザクションは関連プロトコルと合致しているがデータはバリッドではないことを示すステータス信号、または、トランザクションがプロトコルと合致していないことを示すステータス信号を生成してもよい。
その結果ユーザーは、該ステータス信号を調べ、トランザクションがバリッドかどうかを判定することができる(116)。一実施例として、ステータス信号は、ピンインタフェース20の指定のピンに出力されてもよいし、プロセッサ14のメモリに記憶されるパラメータの値を設定するのに用いられてもよい。いずれの場合も、ステータス信号は、ホストコンピュータのモニター上に表示するためにテスト機器22によって読出されてもよい。
種々の態様および実施例を説明した。しかし、以下のクレームの範囲から外れることなく、本開示の構造または技術に対して変更をなしてもよい。例えば、ここで説明した集積回路は、相補型金属酸化膜半導体(CMOS)、バイポーラ接合トランジスタ(BJT)、バイポーラCMOS(BiCMOS)、シリコンゲルマニウム(SiGe)、ガリウム砒素(GaAs)等のような種々のICプロセス技術で製造してもよい。これら、および開示の他の態様は、以下のクレームの範囲内である。

Claims (62)

  1. テストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始するプロセッサと、
    前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するためのトランザクションを生成するコアロジックと、を具備し、
    前記プロセッサは、前記テストプログラムに従って前記コアロジックと通信するためのトランザクションを生成し、
    1つまたは複数の前記トランザクションを検証し、該1つまたは複数のトランザクションがバリッドであるかどうか示すステータス信号を出力するテストロジックを具備する集積回路。
  2. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースは、およそ200MHzより大きな周波数で動作する請求項1の集積回路。
  3. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースは、およそ400MHzより大きな周波数で動作する請求項1の集積回路。
  4. 前記トランザクションの各々は各プロトコルに関連付けられており、前記テストロジックは、前記1つまたは複数のトランザクションが前記各プロトコルと合致しているかどうかに基づいて1つまたは複数の前記トランザクションを検証する請求項1の集積回路。
  5. 前記テストロジックは、前記1つまたは複数のトランザクションに関連するデータに基づいて前記1つまたは複数のトランザクションを検証する請求項1の集積回路。
  6. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースの各々は、ペリフェラルコンポーネントインターコネクト(PCI)バス、アドバンスト高性能バス(AHB)、アドバンスト拡張インタフェース(AXI)インターフェースバス、スモールコンピュータシステムインターフェース(SCSI)バス、イーサネットバス、ユニバーサルシリアルバス(USB)、アドバンストグラフィックスプロセッサ(AGP)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バスのいずれかを含む請求項1の集積回路。
  7. 前記送信モードで動作する場合、前記プロセッサは第1のトランザクションを生成し、該第1のトランザクションを前記コアロジックに送り、
    前記コアロジックは、前記第1のトランザクションに基づいた第2のトランザクションを生成し、前記外部デバイスのいずれかに前記第2のトランザクションを送り、
    前記テストロジックは、前記第1のトランザクションおよび前記第2のトランザクションを検証し、前記第1のトランザクションおよび前記第2のトランザクションの各々がバリッドであるかどうか示すステータス信号を出力する請求項1の集積回路。
  8. 前記受信モードで動作する場合、前記プロセッサは第1のトランザクションを生成し、該第1のトランザクションを前記コアロジックに送り、
    前記コアロジックは、前記第1のトランザクションに基づいた第2のトランザクションを生成し、前記外部デバイスのいずれかに前記第2のトランザクションを送り、第3のトランザクションを生成し、前記プロセッサに前記第3のトランザクションを送り、
    前記テストロジックは、前記第1のトランザクション、前記第2のトランザクション、および前記第3のトランザクションを検証し、前記第1のトランザクション、前記第2のトランザクション、および前記第3のトランザクションの各々がバリッドであるかどうか示すステータス信号を出力する請求項1の集積回路。
  9. 前記受信モードで動作する場合、前記テストロジックは、データを前記コアロジックに送り、
    前記コアロジックは、前記データに基づいた第1のトランザクションを生成し、前記プロセッサに前記第1のトランザクションを送り、
    前記テストロジックは、前記第1のトランザクションを検証し、前記第1のトランザクションがバリッドであるかどうか示すステータス信号を出力する請求項1の集積回路。
  10. 前記テストロジックは、前記トランザクションをインターセプトし、参照データを生成し、前記参照データを、前記インターセプトしたトランザクションに関連するデータと比較し、前記比較に基づいて、前記インターセプトしたトランザクションを検証する請求項1の集積回路。
  11. 前記プロセッサは、前記テストプログラムに従って、シード値を含む制御信号を生成し、前記制御信号を前記テストロジックに送り、前記テストロジックは、前記シード値に基づいて前記参照データを生成する請求項10の集積回路。
  12. 前記プロセッサは、前記テストプログラムに従って制御信号を生成し、前記テストロジックに前記制御信号を送り、前記テストロジックは前記制御信号を受け取るのに先だって無効化され、前記テストロジックが前記制御信号を受け取った後、前記テストロジックは、前記プロセッサおよびコアロジックが前記トランザクションを送る1つまたは複数の外部インタフェースをアクティブにスヌープすることにより前記トランザクションをインターセプトするようにイネーブルとされる請求項10の集積回路。
  13. 前記コアロジックは、前記トランザクションに関連する応答メッセージを生成し、前記プロセッサに前記応答メッセージを送り、前記テストロジックは、前記応答メッセージを検証し、前記応答メッセージがバリッドであるかどうか示すステータス信号を出力する請求項1の集積回路。
  14. 前記集積回路は、パーソナルコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、ウルトラモバイルパーソナルコンピュータ(UMPC)、無線通信装置、ネットワークデバイス、および電子コンピューティング装置のいずれかにおいて動作するよう構成される請求項1の集積回路。
  15. 前記集積回路は、無線通信装置におけるモバイルステーションモデム(MSM)チップとして動作するように構成される請求項1の集積回路。
  16. 集積回路上のプロセッサにおいてテストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始すること、
    前記テストプログラムに従って、前記集積回路上のコアロジックと通信するためのトランザクションを前記プロセッサにおいて生成すること、
    前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するために前記コアロジックにおいてトランザクションを生成すること、
    前記集積回路上のテストロジックにより、1つまたは複数の前記トランザクションを検証すること、
    前記1つまたは複数のトランザクションがバリッドであるかどうか示すステータス信号を前記テストロジックにおいて生成することを含む方法。
  17. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースは、およそ200MHzより大きな周波数で動作する請求項16の方法。
  18. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースは、およそ400MHzより大きな周波数で動作する請求項16の方法。
  19. 前記トランザクションの各々は各プロトコルに関連付けられており、前記1つまたは複数のトランザクションを検証することは、前記1つまたは複数のトランザクションが前記各プロトコルと合致しているかどうかに基づいて、前記テストロジックにおいて前記1つまたは複数のトランザクションを検証することを含む請求項16の方法。
  20. 前記1つまたは複数のトランザクションを検証することは、前記1つまたは複数のトランザクションに関連するデータ基づいて、前記テストロジックにより前記1つまたは複数のトランザクションを検証することを含む請求項16の方法。
  21. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースの各々は、ペリフェラルコンポーネントインターコネクト(PCI)バス、アドバンスト高性能バス(AHB)、アドバンスト拡張インタフェース(AXI)インターフェースバス、スモールコンピュータシステムインターフェース(SCSI)バス、イーサネットバス、ユニバーサルシリアルバス(USB)、アドバンストグラフィックスプロセッサ(AGP)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バスのいずれかを含む請求項16の方法。
  22. 命令の実行は、前記プロセッサにおいて前記テストプログラムの命令を実行し、前記送信モードの動作を開始することを含み、
    前記プロセッサにおいてトランザクションを生成することは、前記プロセッサにおいて第1のトランザクションを生成し前記コアロジックに前記第1のトランザクションを送ることを含み、
    前記コアロジックにおいてトランザクションを生成することは、前記第1のトランザクションに基づいた第2のトランザクションを前記コアロジックにおいて生成し、前記外部デバイスのいずれかに前記第2のトランザクションを送ることを含み、
    前記1つまたは複数のトランザクションを検証することは、前記第1のトランザクションおよび前記第2のトランザクションを前記テストロジックにおいて検証することを含み、
    前記ステータス信号を生成することは、前記第1のトランザクションおよび前記第2のトランザクションの各々がバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成することを含む請求項16の方法。
  23. 命令の実行は、前記プロセッサにおいて前記テストプログラムの命令を実行し、前記受信モードの動作を開始することを含み、
    前記プロセッサにおいてトランザクションを生成することは、前記プロセッサにおいて第1のトランザクションを生成し前記コアロジックに前記第1のトランザクションを送ることを含み、
    前記コアロジックにおいてトランザクションを生成することは、前記コアロジックにおいて第2のトランザクションを生成し、前記外部デバイスのうちのいずれかに前記第2のトランザクションを送り、前記コアロジックにおいて第3のトランザクションを生成し、前記第3のトランザクションを前記プロセッサに送ることを含み、
    前記1つまたは複数のトランザクションを検証することは、前記第1のトランザクション、前記第2のトランザクション、および前記第3のトランザクションを前記テストロジックにおいて検証することを含み、
    前記ステータス信号を生成することは、前記第1のトランザクション、前記第2のトランザクション、および前記第3のトランザクションの各々がバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成することを含む請求項16の方法。
  24. 命令を実行することは、前記プロセッサにおいて前記テストプログラムの命令を実行し、前記受信モードの動作を開始すること、前記テストロジックにおいてデータを生成し、前記データを前記コアロジックに送ることを含み、前記コアロジックにおいて前記トランザクションを生成することは、前記データに基づいて前記コアロジックにおいて第1のトランザクションを生成し、前記プロセッサに前記第1のトランザクションを送ることを含み、前記1つまたは複数のトランザクションを検証することは、前記第1のトランザクションを前記テストロジックで検証することを含み、前記ステータス信号を生成することは、前記第1のトランザクションがバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成することを含む請求項16の方法。
  25. 前記1つまたは複数のトランザクションを検証することは、前記テストロジックを通じて前記1つまたは複数のトランザクションをインターセプトすること、前記テストロジックにより参照データを生成すること、前記参照データと、前記インターセプトしたトランザクションに関連するデータとを前記テストロジックにより比較すること、前記比較に基づいて、前記テストロジックにより、前記インターセプトしたトランザクションを検証することを含む請求項25の方法。
  26. シード値を含む制御信号を前記プロセッサにおいて生成すること、
    前記テストロジックモジュールに前記制御信号を送ること、をさらに含み、前記参照データを生成することは、前記シード値に基づいて前記テストロジックにより前記参照データを生成することを含む請求項25の方法。
  27. 前記プロセッサにおいて制御信号を生成すること、
    前記テストプログラムに従って前記制御信号を、制御信号を受け取る前は無効である前記テストロジックに送ることをさらに具備し、
    前記1つまたは複数のトランザクションをインターセプトすることは、前記制御信号を受け取った後に、前記1つまたは複数のトランザクションが送られる1つまたは複数の外部インタフェースをアクティブにスヌープすることによって前記トランザクションをインターセプトするために、前記テストロジックをイネーブルにすることを含む請求項25の方法。
  28. 前記トランザクションに関連付けられる応答メッセージを前記コアロジックにおいて生成すること、前記コアロジックを通じて前記プロセッサに前記応答メッセージを送ること、前記応答メッセージを前記テストロジックにおいて検証することをさらに具備し、前記ステータス信号を生成することは、前記応答メッセージがバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成することを含む請求項16の方法。
  29. 前記集積回路は、パーソナルコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、ウルトラモバイルパーソナルコンピュータ(UMPC)、モバイルハンドセット、ネットワークデバイス、および電子コンピューティング装置のいずれかにおいて動作するよう構成される請求項16の方法。
  30. 集積回路上のプロセッサにおいてテストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始するための手段と、
    前記テストプログラムに従って、前記集積回路上のコアロジックと通信するためのトランザクションを前記プロセッサにおいて生成するための手段と、
    前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するために前記コアロジックにおいてトランザクションを生成するための手段と、
    前記集積回路上のテストロジックにより、1つまたは複数の前記トランザクションを検証するための手段と、
    前記1つまたは複数のトランザクションがバリッドであるかどうか示すステータス信号を前記テストロジックにおいて生成するための手段と、を具備する集積回路。
  31. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースは、およそ200MHzより大きな周波数で動作する請求項30の集積回路。
  32. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースは、およそ400MHzより大きな周波数で動作する請求項30の集積回路。
  33. 前記トランザクションの各々は各プロトコルに関連付けられており、前記1つまたは複数のトランザクションを検証するための手段は、前記1つまたは複数のトランザクションが前記各プロトコルと合致しているかどうかに基づいて1つまたは複数の前記トランザクションを検証する手段を具備する請求項30の集積回路。
  34. 前記1つまたは複数のトランザクションを検証するための手段は、前記1つまたは複数のトランザクションに関連するデータに基づいて、前記テストロジックにより前記1つまたは複数のトランザクションを検証するための手段を含む請求項30の集積回路。
  35. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースの各々は、ペリフェラルコンポーネントインターコネクト(PCI)バス、アドバンスト高性能バス(AHB)、アドバンスト拡張インタフェース(AXI)インターフェースバス、スモールコンピュータシステムインターフェース(SCSI)バス、イーサネットバス、ユニバーサルシリアルバス(USB)、アドバンストグラフィックスプロセッサ(AGP)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バスのいずれかを含む請求項30の集積回路。
  36. 命令を実行するための手段は、前記プロセッサにおいて前記テストプログラムの命令を実行し、前記送信モードの動作を開始するための手段を含み、
    前記プロセッサにおいてトランザクションを生成するための手段は、前記プロセッサにおいて第1のトランザクションを生成し前記コアロジックに前記第1のトランザクションを送るための手段を含み、
    前記コアロジックにおいてトランザクションを生成するための手段は、前記第1のトランザクションに基づいた第2のトランザクションを前記コアロジックにおいて生成し、前記外部デバイスのいずれかに前記第2のトランザクションを送るための手段を含み、
    前記1つまたは複数のトランザクションを検証するための手段は、前記第1のトランザクションおよび前記第2のトランザクションを前記テストロジックにおいて検証するための手段を含み、
    前記ステータス信号を生成するための手段は、前記第1のトランザクションおよび前記第2のトランザクションの各々がバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成するための手段を含む請求項30の集積回路。
  37. 前記命令を実行するための手段は、前記プロセッサにおいて前記テストプログラムの命令を実行し、前記受信モードの動作を開始するための手段を含み、
    前記プロセッサにおいてトランザクションを生成するための手段は、前記プロセッサにおいて第1のトランザクションを生成し前記コアロジックに前記第1のトランザクションを送るための手段を含み、
    前記コアロジックにおいてトランザクションを生成するための手段は、前記コアロジックにおいて第2のトランザクションを生成し、前記外部デバイスのうちのいずれかに前記第2のトランザクションを送り、前記コアロジックにおいて第3のトランザクションを生成し、前記第3のトランザクションを前記プロセッサに送るための手段を含み、
    前記1つまたは複数のトランザクションを検証するための手段は、前記第1のトランザクション、前記第2のトランザクション、および前記第3のトランザクションを前記テストロジックにおいて検証するための手段を含み、
    前記ステータス信号を生成するための手段は、前記第1のトランザクション、前記第2のトランザクション、および前記第3のトランザクションの各々がバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成するための手段を含む請求項30の集積回路。
  38. 命令を実行するための手段は、前記プロセッサにおいて前記テストプログラムの命令を実行し、前記受信モードの動作を開始するための手段、前記テストロジックにおいてデータを生成し、前記データを前記コアロジックに送るための手段を含み、前記コアロジックにおいて前記トランザクションを生成するための手段は、前記データに基づいて前記コアロジックにおいて第1のトランザクションを生成し、前記プロセッサに前記第1のトランザクションを送るための手段を含み、前記1つまたは複数のトランザクションを検証するための手段は、前記第1のトランザクションを前記テストロジックで検証するための手段を含み、前記ステータス信号を生成するための手段は、前記第1のトランザクションがバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成するための手段を含む請求項30の集積回路。
  39. 前記1つまたは複数のトランザクションを検証するための手段は、前記テストロジックを通じて前記1つまたは複数のトランザクションをインターセプトするための手段、前記テストロジックにより参照データを生成するための手段、前記参照データと、前記インターセプトしたトランザクションに関連するデータとを前記テストロジックにより比較するための手段、前記比較に基づいて、前記テストロジックにより、前記インターセプトしたトランザクションを検証するための手段を含む請求項30の集積回路。
  40. シード値を含む制御信号を前記プロセッサにおいて生成するための手段と、
    前記テストロジックモジュールに前記制御信号を送るための手段とを具備し、
    前記参照データを生成するための手段は、前記シード値に基づいて前記テストロジックにおいて前記参照データを生成するための手段を含む請求項39の集積回路。
  41. 前記プロセッサにおいて制御信号を生成するための手段と、
    前記テストプログラムに従って前記制御信号を、制御信号を受け取る前は無効である前記テストロジックに送るための手段と、
    前記1つまたは複数のトランザクションをインターセプトするための手段は、前記制御信号を受け取った後に、前記1つまたは複数のトランザクションが送られる1つまたは複数の外部インタフェースをアクティブにスヌープすることによって前記トランザクションをインターセプトするために、前記テストロジックをイネーブルにするための手段を含む請求項39の集積回路。
  42. 前記トランザクションに関連付けられる応答メッセージを前記コアロジックにおいて生成するための手段と、
    前記コアロジックを通じて前記プロセッサに前記応答メッセージを送るための手段と、
    前記応答メッセージを前記テストロジックにおいて検証するための手段とを具備し、
    前記ステータス信号を生成するための手段は、前記応答メッセージがバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成するための手段を含む請求項30の集積回路。
  43. 前記集積回路は、パーソナルコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、ウルトラモバイルパーソナルコンピュータ(UMPC)、モバイルハンドセット、ネットワークデバイス、および電子コンピューティング装置のいずれかにおいて動作するよう構成される請求項30の集積回路。
  44. 命令を有するコンピュータ可読媒体を具備するコンピュータプログラム製品であって、該命令は、
    集積回路上のプロセッサにおいてテストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始するためのコードと、
    前記テストプログラムに従って、前記集積回路上のコアロジックと通信するためのトランザクションを前記プロセッサにおいて生成するためのコードと、
    前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するために前記コアロジックにおいてトランザクションを生成するためのコードと、
    前記集積回路上のテストロジックにより、1つまたは複数の前記トランザクションを検証するためのコードと、
    前記1つまたは複数のトランザクションがバリッドかどうか示すステータス信号を生成するためのコードと、を具備するコンピュータプログラム製品。
  45. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースは、およそ200MHzより大きな周波数で動作する請求項44のコンピュータプログラム製品。
  46. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部デバイスを通じて互いと通信し、前記外部インタフェースは、およそ400MHzより大きな周波数で動作する請求項44のコンピュータプログラム製品。
  47. 前記トランザクションの各々は各プロトコルに関連付けられており、前記1つまたは複数のトランザクションを検証するためのコードは、前記テストロジックにおいて前記1つまたは複数のトランザクションが前記各プロトコルと合致しているかどうかに基づいて前記1つまたは複数のトランザクションを検証するためのコードを含む請求項44のコンピュータプログラム製品。
  48. 前記1つまたは複数のトランザクションの検証ためのコードは、前記1つまたは複数のトランザクションに関連するデータに基づいて前記テストロジックにより前記1つまたは複数のトランザクションを検証するためのコードを含む請求項44のコンピュータプログラム製品。
  49. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースの各々は、ペリフェラルコンポーネントインターコネクト(PCI)バス、アドバンスト高性能バス(AHB)、アドバンスト拡張インタフェース(AXI)インターフェースバス、スモールコンピュータシステムインターフェース(SCSI)バス、イーサネットバス、ユニバーサルシリアルバス(USB)、アドバンストグラフィックスプロセッサ(AGP)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バスのいずれかを含む請求項44のコンピュータプログラム製品。
  50. 前記命令を実行するためのコードは、前記プロセッサにおいて前記テストプログラムの命令を実行し、前記送信モードの動作を開始するためのコードを含み、
    前記プロセッサにおいてトランザクションを生成するためのコードは、前記プロセッサにおいて第1のトランザクションを生成し前記コアロジックに前記第1のトランザクションを送るためのコードを含み、
    前記コアロジックにおいてトランザクションを生成するためのコードは、前記第1のトランザクションに基づいた第2のトランザクションを前記コアロジックにおいて生成し、前記外部デバイスのいずれかに前記第2のトランザクションを送るためのコードを含み、
    前記1つまたは複数のトランザクションを検証するためのコードは、前記第1のトランザクションおよび前記第2のトランザクションを前記テストロジックにおいて検証するためのコードを含み、
    前記ステータス信号を生成するためのコードは、前記第1のトランザクションおよび前記第2のトランザクションの各々がバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成するためのコードを含む請求項44のコンピュータプログラム製品。
  51. 前記命令を実行するためのコードは、前記プロセッサにおいて前記テストプログラムの命令を実行し、前記受信モードの動作を開始するためのコードを含み、
    前記プロセッサにおいてトランザクションを生成するためのコードは、前記プロセッサにおいて第1のトランザクションを生成し前記コアロジックに前記第1のトランザクションを送るためのコードを含み、
    前記コアロジックにおいてトランザクションを生成するためのコードは、前記コアロジックにおいて第2のトランザクションを生成し、前記外部デバイスのうちのいずれかに前記第2のトランザクションを送り、前記コアロジックにおいて第3のトランザクションを生成し、前記第3のトランザクションを前記プロセッサに送るためのコードを含み、
    前記1つまたは複数のトランザクションを検証するためのコードは、前記第1のトランザクション、前記第2のトランザクション、および前記第3のトランザクションを前記テストロジックにおいて検証するためのコードを含み、
    前記ステータス信号を生成するためのコードは、前記第1のトランザクション、前記第2のトランザクション、および前記第3のトランザクションの各々がバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成するためのコードを含む請求項44のコンピュータプログラム製品。
  52. 前記命令を実行するためのコードは、前記プロセッサにおいて前記テストプログラムの命令を実行し、前記受信モードの動作を開始し、前記テストロジックにおいてデータを生成し、前記データを前記コアロジックに送るためのコードを含み、前記コアロジックにおいて前記トランザクションを生成するためのコードは、前記データに基づいて前記コアロジックにおいて第1のトランザクションを生成し、前記プロセッサに前記第1のトランザクションを送るためのコードを含み、前記1つまたは複数のトランザクションを検証するためのコードは、前記第1のトランザクションを前記テストロジックで検証するためのコードを含み、前記ステータス信号を生成するためのコードは、前記第1のトランザクションがバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成するためのコードを含む請求項44のコンピュータプログラム製品。
  53. 前記1つまたは複数のトランザクションを検証するためのコードは、前記テストロジックを通じて前記1つまたは複数のトランザクションをインターセプトするためのコードと、前記テストロジックにより参照データを生成するためのコードと、前記参照データと、前記インターセプトしたトランザクションに関連するデータとを前記テストロジックにより比較するためのコードと、前記比較に基づいて、前記テストロジックにより、前記インターセプトしたトランザクションを検証するためのコードと、を含む請求項44のコンピュータプログラム製品。
  54. シード値を含む制御信号を前記プロセッサにおいて生成するためのコードと、
    前記テストロジックモジュールに前記制御信号を送るためのコードと、をさらに具備し、
    前記参照データを生成するためのコードは、前記シード値に基づいて前記参照データを前記テストロジックにより生成するためのコードを含む請求項53のコンピュータプログラム製品。
  55. 前記プロセッサにおいて制御信号を生成するためのコードと、
    前記テストプログラムに従って前記制御信号を、制御信号を受け取る前は無効である前記テストロジックに送るためのコードとを具備し、
    前記1つまたは複数のトランザクションをインターセプトするためのコードは、前記制御信号を受け取った後に、前記1つまたは複数のトランザクションが送られる1つまたは複数の外部インタフェースをアクティブにスヌープすることによって前記トランザクションをインターセプトするために、前記テストロジックをイネーブルにするためのコードを含む請求項53のコンピュータプログラム製品。
  56. 前記トランザクションに関連付けられる応答メッセージを前記コアロジックにおいて生成するためのコードと、
    前記コアロジックを通じて前記プロセッサに前記応答メッセージを送るためのコードと、
    前記応答メッセージを前記テストロジックにおいて検証するためのコードとをさらに具備し、
    前記ステータス信号を生成するためのコードは、前記応答メッセージがバリッドであるかどうか示すために前記テストロジックにおいて前記ステータス信号を生成するためのコードを含む請求項44のコンピュータプログラム製品。
  57. 前記集積回路は、パーソナルコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、ウルトラモバイルパーソナルコンピュータ(UMPC)、モバイルハンドセット、ネットワークデバイス、および電子コンピューティング装置のいずれかにおいて動作するよう構成される請求項44のコンピュータプログラム製品。
  58. テストプログラムの命令を実行して送信モードおよび受信モードの一方の動作を開始するプロセッサと、
    前記テストプログラムに従って前記プロセッサおよび1つまたは複数の外部デバイスと通信するためのトランザクションを生成するコアロジックと、を具備し、
    前記プロセッサは、前記テストプログラムに従って前記コアロジックと通信するためのトランザクションを生成し、
    1つまたは複数の前記トランザクションを検証し、該1つまたは複数のトランザクションがバリッドであるかどうか示すステータス信号を出力するテストロジックと、を具備する集積回路と、
    前記集積回路に電力およびクロック信号を供給するテスト機器とを具備するシステム。
  59. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースは、およそ200MHzより大きな周波数で動作する請求項58のシステム。
  60. 前記プロセッサ、前記コアロジックおよび前記外部デバイスは、1つまたは複数の外部インタフェースを通じて互いと通信し、前記外部インタフェースは、およそ400MHzより大きな周波数で動作する請求項58のシステム。
  61. 前記トランザクションの各々は各プロトコルに関連付けられており、前記テストロジックは、前記1つまたは複数のトランザクションが前記各プロトコルと合致しているかどうかに基づいて1つまたは複数の前記トランザクションを検証する請求項58のシステム。
  62. 前記テストロジックは、前記1つまたは複数のトランザクションに関連するデータに基づいて前記1つまたは複数のトランザクションを検証する請求項58のシステム。
JP2010512354A 2007-08-21 2008-06-12 外部インタフェースの機能性を検証するためのセルフテスト機構を備えた集積回路 Pending JP2010537156A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/842,396 US8484524B2 (en) 2007-08-21 2007-08-21 Integrated circuit with self-test feature for validating functionality of external interfaces
US94393507P 2007-09-10 2007-09-10
PCT/US2008/066744 WO2008157246A1 (en) 2007-06-14 2008-06-12 Integrated circuit with self-test feature for validating functionality of external interfaces

Publications (1)

Publication Number Publication Date
JP2010537156A true JP2010537156A (ja) 2010-12-02

Family

ID=39734919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010512354A Pending JP2010537156A (ja) 2007-08-21 2008-06-12 外部インタフェースの機能性を検証するためのセルフテスト機構を備えた集積回路

Country Status (8)

Country Link
US (1) US8484524B2 (ja)
EP (1) EP2158495B1 (ja)
JP (1) JP2010537156A (ja)
KR (2) KR101265116B1 (ja)
CN (1) CN101680932B (ja)
AT (1) ATE521903T1 (ja)
TW (1) TW200909829A (ja)
WO (1) WO2008157246A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8622292B2 (en) * 2005-09-29 2014-01-07 Jeffrey Bart Katz Reservation-based preauthorization payment system
US9004355B2 (en) * 2005-09-29 2015-04-14 Cardfree Inc Secure system and method to pay for a service provided at a reservation
US20090089003A1 (en) * 2007-09-28 2009-04-02 Inventec Corporation Accessory-testing device and method therefor
US8220718B2 (en) * 2008-09-15 2012-07-17 Vasco Data Security, Inc. Method for post-manufacturing data transfer to and from a sealed device
JP2011075460A (ja) * 2009-09-30 2011-04-14 Toshiba Corp 半導体集積回路
US20120324302A1 (en) * 2011-06-17 2012-12-20 Qualcomm Incorporated Integrated circuit for testing using a high-speed input/output interface
US8933715B2 (en) * 2012-04-08 2015-01-13 Elm Technology Corporation Configurable vertical integration
US9542347B2 (en) 2013-03-16 2017-01-10 Intel Corporation Host interface crossbar for sensor hub
US9430414B2 (en) 2013-03-16 2016-08-30 Intel Corporation Bus independent platform for sensor hub peripherals to provide coalescing of multiple reports
CN104678279A (zh) * 2013-11-29 2015-06-03 英业达科技有限公司 使用测试向量测试连接插槽的系统及其方法
US10379926B2 (en) * 2014-08-05 2019-08-13 Macronix International Co., Ltd. Method and device for monitoring data error status in a memory
US11403170B2 (en) * 2014-08-05 2022-08-02 Macronix International Co., Ltd. Method and device for monitoring data error status in a memory
KR102377362B1 (ko) * 2015-07-08 2022-03-23 삼성전자주식회사 보조 테스트 장치, 그것을 포함하는 테스트 보드 및 그것의 테스트 방법
US10657092B2 (en) * 2016-06-30 2020-05-19 Intel Corporation Innovative high speed serial controller testing
US10521363B2 (en) * 2016-11-23 2019-12-31 Nuvoton Technology Corporation Fully-digital multiple pin value detector apparatus and sampling methods useful in conjunction therewith
WO2019152822A1 (en) * 2018-02-02 2019-08-08 Dover Microsystems, Inc. Systems and methods for post cache interlocking
CN112256512B (zh) * 2020-10-27 2024-05-07 重庆航天工业有限公司 一种基于glink总线的验证及测试通用系统
WO2023078573A1 (en) * 2021-11-08 2023-05-11 Advantest Corporation Automated test equipment, device under test, test setup methods using a measurement request
WO2023078571A1 (en) * 2021-11-08 2023-05-11 Advantest Corporation Automated test equipment, device under test, test setup methods using an acknowledge signaling
KR20230168801A (ko) 2022-06-08 2023-12-15 와이아이케이 주식회사 반도체 테스트 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0425955A (ja) * 1990-05-22 1992-01-29 Nec Corp バスインタフェース診断装置
JPH09223081A (ja) * 1996-02-16 1997-08-26 Fujitsu Ltd 外部装置インタフェース検証システム
JPH10221410A (ja) * 1997-02-07 1998-08-21 Mitsubishi Electric Corp Lsiの自動論理検証方式
JP2007094591A (ja) * 2005-09-27 2007-04-12 Toshiba Corp シミュレーション装置及びシミュレーション方法
JP2007174628A (ja) * 2005-12-20 2007-07-05 Internatl Business Mach Corp <Ibm> I2cバスのトランザクション認証システム、コンピュータ・プログラムおよび方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537536A (en) * 1994-06-21 1996-07-16 Intel Corporation Apparatus and method for debugging electronic components through an in-circuit emulator
US5574733A (en) * 1995-07-25 1996-11-12 Intel Corporation Scan-based built-in self test (BIST) with automatic reseeding of pattern generator
JP3274332B2 (ja) 1995-11-29 2002-04-15 株式会社東芝 コントローラ・大容量メモリ混載型半導体集積回路装置およびそのテスト方法およびその使用方法、並びに半導体集積回路装置およびそのテスト方法
US5909593A (en) * 1996-12-09 1999-06-01 International Business Machines Corporation System for assigning snoop levels to snooper modules and selectively invoking snooper modules having specified relation to a selected snoop level for hardware detection
US5991898A (en) 1997-03-10 1999-11-23 Mentor Graphics Corporation Arithmetic built-in self test of multiple scan-based integrated circuits
DE19917884C1 (de) * 1999-04-20 2000-11-16 Siemens Ag Schaltung mit eingebautem Selbsttest
US7036064B1 (en) 2000-11-13 2006-04-25 Omar Kebichi Synchronization point across different memory BIST controllers
US20020183054A1 (en) * 2001-04-09 2002-12-05 Yoram Rimoni Mobile system testing architecture
US7418642B2 (en) 2001-07-30 2008-08-26 Marvell International Technology Ltd. Built-in-self-test using embedded memory and processor in an application specific integrated circuit
ATE366941T1 (de) * 2003-07-09 2007-08-15 Koninkl Philips Electronics Nv Ic mit eingebauter karakteristikbestimmung
TWI266065B (en) 2005-05-18 2006-11-11 Via Tech Inc Chip capable of testing itself and testing method thereof
US7519886B2 (en) * 2006-01-05 2009-04-14 International Business Machines Corporation Apparatus and method for integrated functional built-in self test for an ASIC

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0425955A (ja) * 1990-05-22 1992-01-29 Nec Corp バスインタフェース診断装置
JPH09223081A (ja) * 1996-02-16 1997-08-26 Fujitsu Ltd 外部装置インタフェース検証システム
JPH10221410A (ja) * 1997-02-07 1998-08-21 Mitsubishi Electric Corp Lsiの自動論理検証方式
JP2007094591A (ja) * 2005-09-27 2007-04-12 Toshiba Corp シミュレーション装置及びシミュレーション方法
JP2007174628A (ja) * 2005-12-20 2007-07-05 Internatl Business Mach Corp <Ibm> I2cバスのトランザクション認証システム、コンピュータ・プログラムおよび方法

Also Published As

Publication number Publication date
TW200909829A (en) 2009-03-01
WO2008157246A1 (en) 2008-12-24
KR101265116B1 (ko) 2013-05-16
KR20130040259A (ko) 2013-04-23
US20090055695A1 (en) 2009-02-26
WO2008157246A8 (en) 2010-04-15
CN101680932B (zh) 2013-11-20
EP2158495A1 (en) 2010-03-03
US8484524B2 (en) 2013-07-09
KR20100027214A (ko) 2010-03-10
EP2158495B1 (en) 2011-08-24
ATE521903T1 (de) 2011-09-15
CN101680932A (zh) 2010-03-24

Similar Documents

Publication Publication Date Title
JP2010537156A (ja) 外部インタフェースの機能性を検証するためのセルフテスト機構を備えた集積回路
US10289779B2 (en) Universal verification methodology (UVM) register abstraction layer (RAL) traffic predictor
CN107077409B (zh) 用于在电子系统中进行多接口调试的方法和装置
EP3274836B1 (en) System and method to enable closed chassis debug control interface using a usb type-c connector
US10209306B2 (en) Methods and systems for generating functional test patterns for manufacture test
US11105850B2 (en) Secure debug system for electronic devices
US7047458B2 (en) Testing methodology and apparatus for interconnects
US20210303691A1 (en) Ip independent secure firmware load
CN115146568A (zh) 一种基于uvm的芯片验证系统及验证方法
CN112269120A (zh) 接口信号回环测试方法、装置、计算机设备和存储介质
CN115496018A (zh) 一种SoC芯片多版本验证方法、装置及设备
US20080319729A1 (en) Device, System and Method of Generating a Hardware-Verification Test Case
US20110225559A1 (en) Logic verifying apparatus, logic verifying method, and medium
CN102053898A (zh) 针对主机pcie插槽上总线接口的测试方法及其读写测试方法
CN113742221A (zh) 生成测试用例的方法、电子设备及存储介质
US10346265B2 (en) Protocol aware testing engine for high speed link integrity testing
US9442788B2 (en) Bus protocol checker, system on chip including the same, bus protocol checking method
US20240111705A1 (en) System and method for supporting communications between management controllers and devices
US20240094287A1 (en) Low power environment for high performance processor without low power mode
US20240118340A1 (en) Processor test pattern generation and application for tester systems
US7206556B1 (en) Wireless transmitter control lockout
US20070168765A1 (en) Method for detecting and transmitting error messages
CN114297982A (zh) 一种基于uvm的spi总线验证方法及系统
TW201541255A (zh) 電子裝置及偵測方法
CN113407408A (zh) 数据传输规则验证方法、装置、设备和存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121004

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121012

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130910

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140225