(57)【要約】【課題】高速動作可能なバス検査手段を提供すること。【解決手段】バスを検査するためのシステム、方法、媒体、及びその他実施形態について記載する。例示的なシステムの実施形態は、バス(590)に動作可能に接続された集積回路(500)と、１以上の電気信号をバス(590)に送出するように構成された外部装置(580)に接続可能なバス(590)とを含む。集積回路(500)は、電気信号のテストシーケンスをバス(590)から受信するように構成された第１の論理回路(520)と、電気信号のテストシーケンスに関連する電気信号のチェックシーケンスを生成するように構成された第２の論理回路(540)と、第１の論理回路(520)及び第２の論理回路(540)に動作可能に接続された比較論理回路(550)とを含む。比較論理回路(550)は、テストシーケンスとチェックシーケンスの比較に少なくとも一部基いて、バス(590)が正確にデータを伝送しているか否かを判定するように構成される。【選択図】図２
2006208378.tif 000002
【特許請求の範囲】
【請求項１】
電気的に検査されるバス（２０５）に動作可能に接続された第１の回路（２１０）と、前記バス（２０５）に動作可能に接続された第２の回路（２２０）とを含むシステム（２００）であって、
前記第１の回路（２１０）が、
前記バス（２０５）に送出される電気信号のテストシーケンスを選択的に生成するように構成された第１の論理回路（２５０）と、
前記バス（２０５）に送出される１以上のバスプロトコル信号を生成するように構成された第２の論理回路（２６０）と、
前記第１の論理回路（２５０）及び前記第２の論理回路（２６０）に動作可能に接続され、前記テストシーケンス及び前記バスプロトコル信号を前記バスに送出するように構成された、バスインタフェース論理回路（２７０）と、
前記第１の論理回路（２５０）、前記第２の論理回路（２６０）、及び前記バスインタフェース論理回路（２７０）のうちの１以上に動作可能に接続され、前記第１の論理回路（２５０）を制御し、前記バスプロトコル信号と前記テストシーケンスのうちのいずれかを選択させ、前記バス（２０５）に送出させるように構成された、テスト論理回路（２７５）とからなり、
前記第２の回路（２２０）が、
前記テストシーケンスを前記バス（２０５）に送出する前記バスインタフェース論理回路（２７０）によって生成された電気シーケンスの受信シーケンスを前記バス（２０５）から受信するように構成された第３の論理回路（２８０）と、
前記テストシーケンスに関連する電気信号のチェックシーケンスを生成するように構成された第４の論理回路（２９０）と、
前記第３の論理回路（２８０）及び前記第４の論理回路（２９０）に動作可能に接続され、前記受信シーケンスと前記チェックシーケンスの比較に少なくとも基づいて、前記バス（２０５）がデジタルデータを正確に伝送しているか否かを判定するように構成された、バス検査論理回路（２９５）と
からなる、システム。
【請求項２】
前記バス検査論理回路（２９５）は、前記バス（２０５）がデジタルデータを正確に伝送していないという判定に基づいて、外部トリガ（３８０）を選択的に生成するように構成される、請求項１に記載のシステム（２００）。
【請求項３】
前記バス検査論理回路（２９５）は、前記バス（２０５）がデジタルデータを正確に伝送していないという判定に関する１以上のパラメータに関する情報を記録するように構成された不一致データ（３９０）を選択的に生成するように構成される、請求項１に記載のシステム（２００）。
【請求項４】
前記不一致データ（３９０）は、前記第４の論理回路（２９）で使用される基本パターン値、不一致が発生した時点における前記チェックシーケンスの開始点からのオフセット、及び、不一致が発生したバスラインのうちの１以上を含む、請求項３に記載のシステム（２００）。
【請求項５】
前記テスト論理回路（２７５）は、前記バスインタフェース論理回路（２７０）を制御して、前記テストシーケンスを前記バス（２０５）に関連する１以上の選択されたバスラインに選択的に送出させるように構成される、請求項１に記載のシステム（２００）。
【請求項６】
前記第１の論理回路（２５０）は、巡回冗長検査多項式を少なくとも利用して擬似ランダムテストシーケンスを生成するように構成された線形フィードバックレジスタ（ＬＦＳＲ）である、請求項１に記載のシステム（２００）。
【請求項７】
バス検査システムを動作させる方法であって、
バス検査システムによって検査されるバスに動作可能に接続された第１の回路において実施されているドライバを制御し、待機状態に入るステップ（８１０）と、
前記バスに動作可能に接続され、電気信号の第１のシーケンスを生成するように構成された第２の回路において実施されている受信機を制御し、検査状態に入るステップ（８２０）と、
前記ドライバ（８３０）を制御して生成状態に入り、電気信号の第２のシーケンスを前記バスに送出するステップ（８３０）と、
前記受信機において少なくとも、前記第１のシーケンスを、前記バスに送出された前記第２のシーケンスに応答して受信された１以上の電気信号と比較し、前記バスを電気的に検査するステップと
からなる方法。
【請求項８】
前記ドライバを制御して待機状態に入るステップ（８１０）は、前記ドライバを制御して、害のない電気的値の組を前記バスに送出することを含み、前記受信機を制御して検査状態に入るステップ（８２０）は、前記第１のシーケンスの長さ、前記第１のシーケンスのタイプ、前記受信機によって生成される外部トリガのタイプ、前記受信機によって収集される誤りデータのタイプ、前記第１のシーケンスの少なくとも一部を決定する基本パターン値、及び、検査すべきバス動作判定基準のタイプを少なくとも決定するトリガマスクのうちの１以上を与えることを含む、請求項７に記載の方法（８００）。
【請求項９】
前記ドライバを制御して生成状態に入るステップ（８３０）は、前記第２のシーケンスの長さ、前記第２のシーケンスのタイプ、及び、前記電気信号の第２のシーケンスの少なくとも一部を決定する基本パターン値のうちの１以上を与えることを含む、請求項８に記載の方法（８００）。
【請求項１０】
前記バスが１以上のデジタルデータシーケンスを正確に伝送したか否かに少なくとも一部基づいて、バス合格状態及びバス不合格状態のうちの一方を選択的に報告するステップと、生成中のシーケンスに関連する基本パターン、該生成中のシーケンスの開始点からのオフセット、及び、該生成中のシーケンス中の１以上の電気信号に関連するデータのうちの１以上を選択的に記録するステップとを含む、請求項９に記載の方法（８００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバス検査に関し、特に、集積回路間を結ぶバスの電気接続や電気特性を集積回路内に作成したバス検査論理回路により検査するシステム及び方法に関する。
【背景技術】
【０００２】
集積回路間及び／又は集積回路内のバス接続のデバッグ、検査及び／又は動作試験は、これまで困難であった。バス経路に短絡や開放があるか否かを判定する手段は存在するが、それらの手段は通常、静的な手段であり、高速動作でのバス検査には適していなかった。短絡はいかなる速度においても短絡であるが、電気的な不具合によっては高速で動作しているときにしか現れないものがある。
【０００３】
バス検査に関する従来の手段には、ＥＣＣ（誤り検出訂正）やパリティチェックのような従来技術を用いてバスの誤りを検出するものがある。誤りを検出すると、これらの手段はＨＰＭＣ（高優先順位マシンチェック）を開始する。事後分析用クラッシュダンプデータを利用できる場合もあるが、このデータはほとんど役に立たないことがある。例えば、事後分析用クラッシュダンプデータは、そのデータが検出されたサイクルに関連付けられていない場合があり、クラッシュ状態を引き起こしたイベントを特定できない場合があり、時間的に意味のあるテストイベントを始動することができない場合がある。また、これらの手段は、従来から、実行時誤り検出や、コンテインメント等のために設計される。
【０００４】
従来のバス検査手段及び技法は、バスに使用される既存のプロトコルに依存する場合がある。しかしながら、そのようなプロトコルを使用すると、対象となるテストパターンを生成したり、それらのテストパターンを既知の、及び／又は予測可能な時刻に、既知の、及び／又は予測可能なシーケンスで送信し、オシロスコープをモニタしたりする他の動作と適当に組み合わせることは、可能であるにしても、難しくなる。従って、これらの従来の手段は、チップ／バスの組み合わせによって生成可能な標準的なコードに限られる場合がある。また、これらの従来の手段は、電圧、温度及び周波数のようなパラメータを変更すること等の技法だけに頼って、バスを検査する場合がある。この場合も、データを提供することはできても、高速動作時における厳密な電気的な検査は達成されない。
【０００５】
多くの従来のバス検査手段は、バス検査を行う前に、そのバスによって接続すべき集積回路を実質的に完全な状態にしておかなければならない。これは、一連の開発に関して、鶏が先か卵が先かという因果関係の分からない問題を引き起こす。このように、集積回路の開発、ファームウエアの開発、及びバスの検査は密接に関連していて、融通の利かない一連の開発シナリオを生み出すことがある。
【０００６】
また従来の手段では、オシロスコープやプロトコルアナライザに付属するプローブのような電気的なプローブを物理的に取り付けなければならない場合がある。チップ密度や回路密度の向上に伴ない、トレース、経路及びワイヤサイズが細くなっているため、そのように物理的取り付けは、益々難しくなっている。
【０００７】
さらに、従来の手段は、シンボル間干渉（ＩＳＩ）等に関連する問題を評価できるほど十分に厳密な条件を作り出せない場合もある。例えば、バスラインに既に送出されたデータは、そのライン上でこれから送出されるデータシンボルのタイミングに影響を及ぼす可能性がある。しかしながら、そうした影響は、例えばラインの幾何学的配列、ライン長、ライン抵抗、ラインキャパシタンス等によって異なる場合があるので、特定の高い周波数でしか現れないことがある。さらに別の例として、従来の手段は、バストラフィック飽和状態等の条件を作り出すことができない場合もある。さらに、バスプロトコルが複雑であることから、或る条件を一度作り出すことができたとしても、検査や診断を簡単に行いたいという要望に応じてその条件を確実に再現することは困難な場合もある。
【０００８】
また、バス検査手段によっては、小さなパターンを生成し、バウンダリスキャンを可能にするものがある。例えば、ＩＥＥＥ１１４９．１標準規格は、ＪＴＡＧ（Joint Test Action Group）によって提供されたバウンダリスキャンプロトコルについて規定している。しかしながら、この手のバウンダリスキャンは基本的に静的な（ｄｃ）テストである。また、この手のバウンダリスキャンに関連するシリアルアーキテクチャでは、高速動作時の電気的な検査は不可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従って、本発明の目的の１つは、高速動作時におけるバス検査手段を提供することであ
【課題を解決するための手段】
【００１０】
本発明は、一実施形態において下記のようなシステムを提供する。
電気的に検査されるバス（２０５）に動作可能に接続された第１の回路（２１０）と、前記バス（２０５）に動作可能に接続された第２の回路（２２０）とを含むシステム（２００）であって、
前記第１の回路（２１０）が、
前記バス（２０５）に送出される電気信号のテストシーケンスを選択的に生成するように構成された第１の論理回路（２５０）と、
前記バス（２０５）に送出される１以上のバスプロトコル信号を生成するように構成された第２の論理回路（２６０）と、
前記第１の論理回路（２５０）及び前記第２の論理回路（２６０）に動作可能に接続され、前記テストシーケンス及び前記バスプロトコル信号を前記バスに送出するように構成された、バスインタフェース論理回路（２７０）と、
前記第１の論理回路（２５０）、前記第２の論理回路（２６０）、及び前記バスインタフェース論理回路（２７０）のうちの１以上に動作可能に接続され、前記第１の論理回路（２５０）を制御し、前記バスプロトコル信号と前記テストシーケンスのうちのいずれかを選択させ、前記バス（２０５）に送出させるように構成された、テスト論理回路（２７５）とからなり、
前記第２の回路（２２０）が、
前記テストシーケンスを前記バス（２０５）に送出する前記バスインタフェース論理回路（２７０）によって生成された電気シーケンスの受信シーケンスを前記バス（２０５）から受信するように構成された第３の論理回路（２８０）と、
前記テストシーケンスに関連する電気信号のチェックシーケンスを生成するように構成された第４の論理回路（２９０）と、
前記第３の論理回路（２８０）及び前記第４の論理回路（２９０）に動作可能に接続され、前記受信シーケンスと前記チェックシーケンスの比較に少なくとも基づいて、前記バス（２０５）がデジタルデータを正確に伝送しているか否かを判定するように構成された、バス検査論理回路（２９５）と
からなる、システム。
【００１１】
添付の図面は、種々の例示的なシステム及び方法を示すものであり、本発明の種々の例示的実施態様を示している。図面に描かれた構成要素の境界（例えば、枠、枠のグループ、又は他の形状）は、境界の一例を示しているに過ぎない。１つの構成要素を複数の構成要素として設計したり、複数の構成要素を１つの構成要素として設計することも可能であることは、当業者には明らかであろう。また実施形態によっては、他の構成要素の内部構成要素として描かれた構成要素を外部構成要素として実施する場合もあり、またその逆の場合もある。更に、図面の構成要素は縮尺どおりに描かれていない場合がある。
【発明を実施するための最良の形態】
【００１２】
検査のための設計は、時間や資源の制約に度々屈して何度も無視されてきた分野である。しかしながら、バスプロトコルを利用できるか否かに関係なく、バスの電気特性を検査することが可能な自動化されたオンチップ手段を提供できれば、チップ開発とバス開発を切り離すことが可能になる。従って、本明細書に記載される例示的なシステム及び方法は、集積回路(複数の場合もあり）の中に作成され、バスを高速に電気的に検査することが可能な自動化された手段(複数の場合もあり）に関する。例示的なシステム及び方法は、単一の集積回路、及び／又は２以上の集積回路の中に作成されるため、バスを電気的に検査するために、オシロスコープやプロトコルアナライザのような補助的な外部ハードウエアは不要である。外部ハードウエアは必須ではないが、例示的なシステム及び方法は、外部ハードウエアに信号を出力することもでき、様々な検査機能を適当に組み合わせることもできる。同様に、例示的なシステム及び方法は、バス検査に関連するデータを収集することができ、要求に応じて繰り返し動作や、外部分析などを行うことも可能である。本明細書には「バス検査」と記載しているが、例示するシステム及び方法は、場合によっては製造検査のようなの他の分野に応用することも可能である
【００１３】
例示的なシステム及び方法は、バスライン間のクロストーク、バスライン間の干渉、バスに関連する電源の電流過渡現象、バスに関連するチップ内のグランドバウンス、バスラインの共振、バストラフィック飽和状態、減衰、終端不良、ＰＣＢ工程の変動等に影響を与える電気的状態を作り出すことができる。こうした状態を作り出すと、その状態に置かれたバスを流れるデータに、測定可能なデジタルデータ誤りを発生させることができる。これらの電気的特性及び／又はその他の電気的特性を動作試験することにより、バス経路を端点間で動作試験することが可能になる。なお、バス経路は、パッド、トレース、介在するバッファ及びレジスタチップ等の素子を含む場合がある。これらの特性及び経路は、構成要素にとって意味のある速度（例えば、実際のバスクロック速度）で動作試験することができ、テスト対象のバスによって接続された回路及び／又は集積回路を１００％で動作させる必要はない。
【００１４】
例示的なシステム及び方法は、検査対象のバスに接続されたシステムの残りの部分又はそのバスに接続された何らかの単一の集積回路の機能に関係なく、専用回路を利用することができる。専用回路は、バスに送出される対象となる電気的パターンを動的に生成したり、検査したりすることができる。これらのパターンによれば、システムにおける集積回路間の外部接続をテストしたり、それらの外部接続の特性を判定することが可能になる。様々な目的に合わせて、種々のパターン及び／又はシーケンスを使用することができる。例えば、擬似ランダムシーケンスを使用して、シンボル間干渉（ＩＳＩ）条件に重点を置くパターンを生成する場合がある。同様に、ウォーキング１シーケンス及び／又はウォーキング０シーケンスを使用すれば、最速のエッジテストを実施することができる。交互オール１シーケンス及び／又は交互オール０シーケンスを使用すれば、最大電力、雑音、ＲＦＩ（無線周波数干渉）等をテストすることができる。また、ユーザ選択可能出力が常にハイ又はローである交互オール１シーケンス及び／又は交互オール０シーケンスを使用すれば、グランドバウンスやクロストークをテストすることができる。交互ＡＡシーケンス又は交互５５シーケンスを使用すれば、最大電力をテストすることができる。その他に、電源に関する最大電流過渡現象のテストや、高調波及び共振のテスト等が可能な他のシーケンスを使用することもできる。これらのテストパターンを使用して、それらの特性の動作試験を可能にするとともに、例示的なシステム及び方法によれば、動作試験の対象となる特性の不具合に結びつくデジタルデータ誤りを観測することが可能になる。
【００１５】
種々の例では、これらの種々のパターン及び／又はシーケンスが、種々のバスライン、又は種々のバスラインの組などに適用され、種々の電気特性が動作試験される。例えば、バスがＮ本（ただしＮは整数）のラインを有する場合、Ｎ−１本のラインは或る特定のシーケンスを用いて或る特定の方法で駆動し、Ｎ番目のラインは別の方法で駆動する場合がある。これによって、Ｎ−１本のラインがＮ番目のラインにどのような影響を与えるか（及びその逆）を特定することが可能になる。このように、バスプロトコルに依存しない内蔵回路を使用して、原因となるラインや被害を受けるラインを高速に特定し、分離し、その特性を判定することができる。
【００１６】
一実施形態において、パターン及びシーケンスは、線形フィードバックシフトレジスタ（ＬＦＳＲ）のようなパターン発生器を用いて生成される。ＬＦＳＲと記載したが、他のプログラム可能なパターン発生器を使用することも可能である。オンチップパターン発生器はテストパターンをオンザフライで自動的に生成することができ、それによって、従来のシステムにおいて必要とされたコンピュータを利用したパターンの生成（例えばクロック供給）やパターンの記憶が、不要になる。従って、使用するチップ表面積を最小限に抑えつつ（例えばパターン発生器とマルチプレクサを追加するだけでよい）、テストパターン生成時間を短縮することが可能になる。
【００１７】
一実施形態において、パターン発生器(複数の場合もあり）は、チップ上の他のクロックと同期して、パターンをリアルタイムに生成し、比較する。従って、パターン発生器(複数の場合もあり）及び関連検査手段(複数の場合もあり）は、バスに意図された最大速度で動かすことができる。チップ上の既存の構成要素を利用し、また、パターン発生器、マルチプレクサ、コンパレータといった構成要素の追加を最小限に抑えているため、バス送信側及びバス受信側で使用される「通常」経路において遅延は発生しない。
【００１８】
下記の説明は、本明細書において使用される特定の用語に関する定義を含む。それらの定義は、或る用語の範囲に含まれ、実施例で使用される構成要素の様々な例又は形を含む。例は限定を意図したものではない。用語の単数形と複数形は両方とも定義の範囲内である。
【００１９】
「バス」は電気的な観点を中心にして本明細書において用いられる。従って、「バス」とは、１以上のドライバと１以上の受信機との間を接続する電気的に類似の経路の集まりであって、共通のトポロジー、クロック供給方法、シグナリング方法、インピーダンス、方向性、ルーティング制限等の属性を共有しているものを言う。「バス」は、経路上のデジタル値を変更しない能動部品を有する経路を含む。バスは、単一の集積回路内の構成要素を接続することができ、及び／又は２つの異なる集積回路を接続することもできる。バスは１以上のライン、ワイヤ、トレース、経路等を有する場合がある。
【００２０】
「バス動作試験」も電気的な観点を中心にして本明細書において用いられる。「バス動作試験」とは、通常のバス動作に使用されるプロトコル規則には関係なく、電気特性及び／又はタイミング特性を重視するような、バスワイヤ、トレース、ライン、経路等の操作を言う。
【００２１】
本明細書で使用される「データ記憶装置」とは、データを記憶することが可能な物理的及び／又は論理的実体を言う。データ記憶装置には、例えば、メモリ、レジスタ、ラッチ等がある。データ記憶装置は、１つの論理的及び／又は物理的実体に存在する場合も有れば、２以上の論理的及び／又は物理的実体間に分散配置される場合もある。
【００２２】
本明細書で使用される「論理回路」とは、機能(複数の場合もあり）又は動作(複数の場合もあり）を実行し、及び／又は他の論理回路及び／又はシステムから機能又は動作を発生させるための、限定はしないが、ハードウエア及びファームウエア、及び／又はそれらの組み合わせを含む。論理回路は、１以上のゲート、ゲートの組み合わせ、又は他の回路構成要素を含む場合がある。複数の論理的な論理回路が記載されている場合、それらの複数の論理的な論理回路を１つの物理的な論理回路に組み込むことができる場合がある。同様に、単一の論理的な論理回路が記載されている場合、その単一の論理的な論理回路は、複数の物理的な論理回路に分散配置することができる場合がある。
【００２３】
「動作可能な接続」、すなわち実体間を「動作可能に接続する」接続とは、信号、物理的な通信及び／又は論理的な通信を送信及び／又は受信することが可能な接続である。通常、動作可能な接続は、物理的インタフェース、電気的インタフェース及び／又はデータインタフェースを含むが、動作可能な接続は、動作可能な制御が可能になるだけの十分な、それらのタイプ又は他のタイプの接続の種々の組み合わせを含む場合があることに注意してほしい。例えば、２つの実体の動作可能な接続は、例えば互いに信号を直接伝達できるようにすることにより、あるいは、プロセッサ、オペレーティングシステム、論理回路、又はその他の実体のような１以上の中間的な実体を通して信号を伝達できるようにすることで可能となる。論理的及び／又は物理的通信チャネルを使用すれば、動作可能な接続を形成することができる。
【００２４】
本明細書で使用される「信号」とは、限定はしないが、受信、送信及び／又は検出の対象となりうる１以上の電気信号、光学信号、デジタル信号、又はその他の手段を含む。
【００２５】
以下に記載する詳細な説明の一部は、メモリ内のデータビットに関する動作のアルゴリズム及びシンボル表現として記載されている。それらのアルゴリズムによる記載及び表現は、当業者が自らの業務内容を他者に伝えるために使用する手段である。本明細書では、そして一般的にも、アルゴリズムは、或る結果を生成する一連の動作であると考えられる。それらの動作には、物理量の物理的な操作も含まれる。必須ではないが、通常、物理量は、論理回路等において記憶され、転送され、結合され、比較され、及び他の方法で操作されることが可能な電気信号又は磁気信号の形をとる。
【００２６】
主に一般的慣習から、それらの信号は多くの場合、ビット、値、要素、シンボル、文字、語句、数等と呼ぶと、都合が良いことがわかっている。ただし、これらの用語及びそれに類する用語が、適当な物理量に関連付けられ、それらの物理量に付された単なる便宜的な名称であることに注意してほしい。特に断わりがない限り、明細書全体を通じて、処理する、コンピュータ処理する、計算する、判定する等の用語は、当然ながら、物理量（電子的）量として表現されたデータを操作し、変換するコンピュータシステム、論理回路、プロセッサ又はそれに類する電子デバイスの動作及びプロセスを指している。
【００２７】
図１は、例示的なオンチップバス検査システムの１００を示している。システム１００は、バス１１０の電気的検査、及び／又は電気特性の検査を容易に行うことができる。システム１００は、例えば生成回路１２０及び検査回路１３０を含む。上記のように、バス１１０の検査に使用される論理回路や回路等は、オシロスコープ、プロトコルアナライザ等の外部装置として用意されるのではなく、集積回路(複数の場合もあり）の中に作成される。
【００２８】
システム１００は、バス１１０の検査能力を容易に拡張することができる。生成回路１２０は、確定的パターン（例えば擬似ランダムパターン）を生成し、それをバス１１０に送出する。検査回路１３０は、照合用の確定的パターンを生成し、それをバス１１０から受信した信号と比較する。バス１１０から受信される信号は、生成回路１２０によって生成され、バス１１０に送出された確定的パターンである。例えば、バス１１０から受信した信号が、検査回路１３０で生成された確定的パターンに一致しない場合、「不一致」状態が発生する。
【００２９】
特定の故障を厳密に検査するために、生成回路１２０は、例えばシーケンスを所望の位置から生成したり、シーケンスの所望の部分を繰り返し生成したりするように構成される場合がある。例えば、検査回路１３０における不一致状態がシーケンスの特定部分によって発生することが分かっている場合、生成回路１２０は、シーケンスのその部分をバス１１０に繰返し送出するように構成される場合がある。
【００３０】
例えば、生成回路１２０及び検査回路１３０の少なくとも一部は、インタフェース（図示せず）を通して提供される情報によって制御される場合がある。例えば、ベーススキャンシステムを使用すると、プログラミングパターンを簡単に生成することができ、パターン生成の開始、パターン生成の終了、結果の問い合わせなど（例えば、スキャンアクセシブルレジスタの読み出し）を容易に行うことが出来る。
【００３１】
図１には１つのバス１１０と１つの検査回路１３０しか描かれていないが、実施形態によっては、生成回路１２０は、２以上のバス及び／又は２以上の検査回路に接続される場合がある。同様に、図１にはバスに信号を与える生成回路１２０も１つしか描かれていないが、実施形態によっては、バスは１以上の生成回路から信号を受信する場合がある。
【００３２】
図２は、例示的なオンチップバス検査システム２００を示している。システム２００は、電気検査を受けるバス２０５に動作可能に接続された第１の回路２１０を含む。システム２００は、同じくバス２０５に動作可能に接続された第２の回路２２０を更に含む。回路２１０はコア２３０を有し、回路２２０はコア２４０を有する。検査時以外の動作時には、回路２１０と回路２２０の間で伝送される信号が、各回路のコアによって生成され、バス２０５を介してやり取りされる。システム２００が電気的なバス検査を実施しているときは、これらのコアの動作は停止されるか、又はそれらの信号が遮断される。例えば、電気的なバス検査が実施されている間、それらのコアはリセット状態に維持される。電気的な検査が実施されていないとき、コアによって生成された信号は、テストシステム２００の構成要素に起因する遅延を受けることなく伝送される。図面では回路２１０及び回路２２０がバス２０５に接続されているが、実施例によっては、バス２０５に関連する電気経路を端点間で試験する場合もある。端点間テストの例には、ライン、トレース、ピンなどの伝送要素だけでなく、パッド、トレース、バッファ、レジスタのような、デジタル値を変更しない要素も含めた電気経路のテストがある。第１の回路２１０と第２の回路２２０は、１つの集積回路の中に作成される場合もあれば、別々の集積回路に作成される場合もあり、それらは実施形態によって異なる。
【００３３】
第１の回路２１０は、電気信号のテストシーケンスを選択的に生成し、それをバス２０５に送出するように構成された第１の論理回路２５０を含む。例えば、第１の論理回路２５０には、線形フィードバックシフトレジスタ（ＬＦＳＲ）が使用される。ＬＦＳＲは、例えば、巡回冗長検査（ＣＲＣ）多項式を利用して擬似ランダムテストシーケンスを生成するように構成される。ここではＬＦＳＲについて述べたが、他の基本パターン発生器を使用してもよい。例えば、第１の論理回路２５０は、第１の回路２１０においてタイミング信号を生成する１以上のクロック回路と同期してテストシーケンスをリアルタイムに生成するように構成される。
【００３４】
例えば、第１の論理回路２５０は、リロードシードループ機能を有するように構成される場合がある。リロードシードループ機能によれば、第１の論理回路２５０は、所望の基本パターン（シード）を繰返しロードし、その基本パターンに関連するシーケンスを複数回生成することができる。そのため、面倒なシーケンスを繰り返しグループ化することが可能になる。他の例では、第１の論理回路２５０は、まず、元の基本パターンを用いて長いテストを実施するように構成される場合がある。テスト中、システム２００は、シーケンス中の興味のある特定部分（例えば不一致の原因となる部分）に関する情報を集める。第１の論理回路２５０で使用される基本パターンはそれらの興味のある部分について決定され、その後、第１の論理回路２５０は、要求に応じて基本パターンを繰り返し、及び／又は選択的にロードするように制御される。すなわち、第１の論理回路２５０は、要求に応じてシーケンス中の興味のある部分を繰り返し、及び／又は選択的に生成するように制御される。
【００３５】
第１の回路２１０は、バスプロトコル信号を生成し、それをバス２０５に送出するように構成された第２の論理回路２６０を更に含む。これらのバスプロトコル信号は、回路２１０がテストモードで動作していないときに生成され、使用される。
【００３６】
第１の回路２１０は、第１の論理回路２５０及び第２の論理回路２６０に動作可能に接続されたバスインタフェース論理回路２７０を更に含む。ただし、システム２００は、プロトコルに依存しないモードで検査を行うので、テストシーケンスとバスプロトコル信号が同時にバス２０５に送出されることはない。従って、バスインタフェース論理回路２７０を制御し、テストシーケンスとバスプロトコル信号のどちらを選択してバス２０５に送出する。例えば、現実的な条件を作り出すために、バスインタフェース論理回路２７０は、製造時に設計されたバス２０５が動作するクロック速度、又はその付近の速度でテストシーケンスをバス２０５に送出する場合がある。例えば、１ＧＨｚのクロックをバス２０５に供給しようとする場合、バスインタフェース論理回路２７０は、第１の論理回路２５０により生成された信号を１ＧＨｚ又は１ＧＨｚ付近の周波数でバス２０５に送出する場合がある。例えば、バスインタフェース論理回路２７０を制御することで、第１の論理回路２５０によって生成されたテスト信号をバス２０５に送出するクロック速度が設定される。
【００３７】
第１の回路２１０は、第１の論理回路２５０、第２の論理回路２６０及び／又はバスインタフェース論理回路２７０に動作可能に接続されたテスト論理回路２７５を更に含む。テスト論理回路２７５は、回路２１０を制御し、バス２０５にバスプロトコル信号を送出するか、テストシーケンスを送出するかを選択的に制御するように構成される。例えばテスト論理回路２７５は、バスインタフェース論理回路２７０からバス２０５に、第１の論理回路２５０からのテスト信号を送出させるか、第２の論理回路２６０からのバスプロトコル信号を送出させるかを制御するように構成される。例えばテスト論理回路２７５は、バスインタフェース論理回路２７０を制御して、第１の論理回路２５０によって生成されたテストシーケンスをバス２０５中の種々の選択されたバスラインに選択的に送出させるように構成される。例えば、第１の検査時には、バスインタフェース論理回路２７０は、バス２０５中の全てのラインにシーケンスを送出するように制御される。更に他の例として、第２の検査時には、バスインタフェース論理回路２７０は、バス２０５中の１つおきのラインにシーケンスを送出したり、１本を除く全てのラインにシーケンスを送出したりするように制御される場合がある。ここでは実施可能な３つの形態について述べたが、バスインタフェース論理回路２７０は、他の組み合わせのラインにシーケンスを送出するように制御される場合もある。
【００３８】
上記のように、システム２００は、インタフェースを通してユーザと対話することができる。そのため、回路２１０は、例えば制御信号を受信するように構成される場合がある。制御信号は、例えば、第１の論理回路２５０によって生成されるテストシーケンスのタイプ、テストシーケンス長、冒頭テストシーケンス認識シーケンス、シーケンスの生成を開始するタイミング、シーケンスの生成を終了するタイミング、テストシーケンスをバス２０５に送出する速度などを決定する。例えば、インタフェースは、ＪＴＡＧ（Joint Test Action Group）のＴＡＰ（Test Access Port）命令によって制御することができる。
【００３９】
上記のように、システム２００は、バス２０５に動作可能に接続された第２の回路２２０を更に含む。第２の回路２２０は、第３の論理回路２８０を含む。第３の論理回路２８０は、第１の論理回路２５０によって生成されたテストシーケンスがバスインタフェース論理回路２７０によってバス２０５に送出されたときに、生成された電気信号のシーケンスをバス２０５から受信するように構成される。テストモード以外のモードでは、第３の論理回路２８０は、プロトコル信号及び／又は他の信号（例えばデータ）をバス２０５から受信する。
【００４０】
第２の回路２２０は、電気信号のチェックシーケンスを生成するように構成された第４の論理回路２９０を更に含む。電気信号のシーケンスの比較によってバス２０５を検査するために、電気信号のチェックシーケンスは、第１の論理回路２５０によって生成されたテストシーケンスに関連付けられる。例えば、第１の論理回路２５０と第４の論理回路２９０は同じ構成要素である。つまり、例えば第４の論理回路２９０によって生成されるチェックシーケンスは、第１の論理回路２５０によって生成されるテストシーケンスと同じものである。第１の論理回路２５０及び第４の論理回路２９０によって生成されるシーケンスには、例えば、擬似ランダムシーケンス、ウォーキング１シーケンス、ウォーキング０シーケンス、交互オール１シーケンス、交互オール０シーケンス、ユーザ選択可能出力が常にハイである交互オール１シーケンス、ユーザ選択可能出力が常にローである交互オール１シーケンス、ユーザ選択可能出力が常にローである交互オール０シーケンス、ユーザ選択可能出力が常にハイである交互オール０シーケンス、交互ＡＡシーケンス、交互５５シーケンスなどがある。既に説明したように、これらの種々のシーケンスを単独で、及び／又は組み合わせて使用することにより、バス２０５の種々の電気的特性を動作試験することができる。そして、データの不一致により、バスの不具合を検出することができる。
【００４１】
第１の論理回路２５０及び第４の論理回路２９０のいて電気信号のシーケンスを生成しているため、システム２００は２つのシーケンスを同期させ、２つのシーケンスを比較できるように構成される。同期方法には、例えば、バス２０５から受信した信号において特定の第１の遷移を探すように第３の論理回路２８０を構成すること、バス２０５から受信した信号において特定の冒頭シーケンスを探すように第３の論理回路２８０を構成すること、特別なラインをバス２０５に追加して同期信号(複数の場合もあり）を搬送すること、バス２０５中の既存のラインを同期信号(複数の場合もあり）の搬送に割り振ることなどがある。こうした同期により、データの不一致を検出することが可能になる。
【００４２】
第２の回路２２０は、第３の論理回路２８０及び第４の論理回路２９０に動作可能に接続されたバス検査論理回路２９５を更に含む。バス検査論理回路２９５は、バス２０５によりデジタルデータが正確に伝送されているか否かを判定するように構成される。バス２０５が期待通りの動作をしている（例えばデジタルデータを正確に送信している）か否かを判定する場合、バス検査論理回路２９５は、第３の論理回路２８０によって受信されたシーケンスを第４の論理回路２９０によって生成されたチェックシーケンスと比較する。例えば２つの信号が一致しない場合、システム２００は「バステスト不合格」状態を報告し、シーケンス中の信号が全て一致した場合、システム２００は「バステスト合格」状態を報告する。種々の例、種々のテストにおいて、検出されるデジタルデータ誤りは、グランドバウンス、クロストーク、干渉、電流過渡現象、ライン共振、バストラフィック飽和状態、減衰、終端不良、ＰＣＢ工程変動などの特性に関する不具合に起因する場合がある。
【００４３】
第１の回路２１０と同様に、第２の回路２２０も、インタフェースを通してユーザと対話することができる。従って、回路２２０は、制御信号を受信するように構成される。制御信号は、例えば第４の論理回路２９０によって生成すべきチェックシーケンスのタイプ、生成すべきチェックシーケンスの長さ、シーケンス比較を開始すべきことを示すために第３の論理回路２８０が探す冒頭テストシーケンス認識シーケンス、テストを実施する対象となるバスライン(複数の場合もあり）などを決定するものである。更に、制御信号は、バス検査論理回路２９５において誤りマスクを使用すべきか否かを決定することができる。誤りマスクを使用した場合、ユーザが選択可能な或る特定の誤りタイプ（例えばクロストーク）だけがモニタされることになる。また制御信号は、どのタイプの不一致データを収集すべきか（もしあれば）とか、不一致が発生したときに外部装置に信号を送るか否かなどを決定することもできる。不一致データを収集するタイミングは、誤りが検出される前であってもよいし（例えば事前不一致データ）、誤りが検出された後であってもよく（例えば事後不一致データ）、あるいは、別のタイミングであってもよい。例えば、インタフェースは、ＪＴＡＧ（Joint Test Action Group）のＴＡＰ（Test Access Port）命令によって制御することができる。
【００４４】
図３は、オンチップバス検査システムの一部を備えた集積回路３００を示している。第１の回路２１０（図２）や第２の回路２２０（図２）はこれらの構成要素のうちのいくつかを含んでいるが、オンチップ検査システムにおける集積回路、即ち生成回路１２０（図１）や検査回路１３０（図１）はいずれも、図３に示すような１以上の構成要素を用いて構成される。
【００４５】
集積回路３００は、テストを行っていないときにバスに送出する信号を生成したり、バスから信号を受信したりするコア３１０を含む。また、集積回路３００は受信機論理回路３２０を更に含み、受信機論理回路３２０は、集積回路３００の接続先のバスに信号が送出されたときに、生成された電気信号のシーケンスをバスから受信するように構成される。テストモード以外のモードでは、受信機論理回路３２０は、プロトコル信号及び／又は他の信号（例えばデータ）をバスから受信し、テストモードでは、受信機論理回路３２０はテストシーケンス信号を受信する。従って集積回路３００は、集積回路３００をバステストモードで動作させるか、通常モードで動作させるかを制御するためのテスト論理回路３３０を含む。
【００４６】
集積回路３００は、電気信号のチェックシーケンスを生成するように構成されたパターン論理回路３４０を更に含む。この電気信号のチェックシーケンスは、オンチップバステスト／検査システム内の別の集積回路によって生成されたテストシーケンスに関連付けられる。集積回路３００は、受信機論理回路３２０及びパターン論理回路３４０に動作可能に接続されたバス検査論理回路３７０を更に含む。バス検査論理回路３７０は、集積回路３００に取り付けられたバスが所定の電気規格内で動作しているか否かを判定するように構成される。バスが期待通りに（例えば、所定の電気的な標準規格内で）動作しているか否かを判定する場合、バス検査論理回路３７０は、受信機論理回路３２０によって受信されたシーケンスをパターン論理回路３４０によって生成されたチェックシーケンスと比較する。
【００４７】
例えばバス検査論理回路３７０は、デジタルデータ誤り（例えばデータ不一致）を検出したときに外部トリガ３８０を選択的に生成するように構成される。外部トリガ３８０には、例えば電気信号が使用され、例えばオシロスコープ、プロトコルアナライザ等の外部装置に供給される。従って、集積回路３００は、バスの不具合に関する時間的に意味のある表示を生成する機能に関する従来の手段が有する問題を緩和することができる。外部トリガ３８０によれば、例えば、バスの電気特性が所望の範囲から外れ、データ不一致のような目に見える事象を引き起こす原因となるシーケンスの部分を判定することが可能になる。
【００４８】
他の例において、バス検査論理回路３７０は、不一致データ３９０を選択的に生成するように構成される。不一致データ３９０は、例えばバス動作パラメータに関する情報を記録するように構成される。具体的には、不一致データ３９０は、不一致が発生したタイミングに関する情報を記録するように構成される。従って、不一致データには、例えば、パターン論理回路３４０で使用される基本パターン（シード）値、不一致が発生した時点におけるチェックテストシーケンスの開始点からのオフセット、不一致が発生したバスラインなどが含まれる。図面では不一致データ３９０が集積回路３００の外に描かれているが、不一致データ３９０は、集積回路３００内のスキャンアクセシブルレジスタ（図示せず）のようなデータ記憶装置に記憶してもよい。
【００４９】
不一致データ３９０は、事前不一致データや、事後不一致データなどの形をとることができる。事前不一致データは、不一致が発生する前に第３の論理回路３２０によって受信された信号を含む。そして、不一致が発生すると、事前不一致データを利用することで、不一致が発生するまでに何が起ったかを知ることができる。逆に、事後不一致データは、不一致が発生した後に第３の論理回路３２０によって受信される信号を含む。
【００５０】
例えば、バス検査論理回路３７０はマスクレジスタ（図示せず）を有する場合があり、マスクレジスタは、外部トリガ３８０を選択的に生成したり、不一致データ３９０を選択的に収集したりする機能を有する。マスクレジスタは、バス検査論理回路３７０を制御して、バスワイヤの特定の組に関連する特定タイプの不一致だけを報告させるように構成される。例えば、前回のテストにより、バスの第１のワイヤに不具合があることが判明する場合がある。そして、次のテストでは、第２の組のピンに不具合があるか否かを判定する場合がある。従って、マスクレジスタは、次のテストの実行中に、バス検査論理回路３７０において第１のワイヤから受信した信号に基づいて不一致が生成されるのを防止するように構成される。他の例において、バス検査論理回路３７０はチェックサムレジスタ（図示せず）を有する場合がある。チェックサムレジスタは、時間の経過とともに誤り（例えば不一致）に関する情報を蓄積する機能を有する。そのため、より長時間のテストが可能となる。長時間のテストの目的は、任意の時点において何が起こったかではなく、時間にわたって何が起こったかを知ることにある。ここではマスクレジスタ及びチェックサムレジスタについて説明したが、マスク機能やチェックサム機能は、他の回路、論理回路、ゲート等において実施することも可能である。
【００５１】
図４は、外部装置４５０との間で信号を送受信するオンチップバス検査システムとしてえ構成された集積回路４００を示している。図１及び図２では、バスによって接続された２つの回路を有するシステムを示したが、バスは場合によっては開放端にすることもある。すなわち、バスは、プラグインカード、アドインチップ等をコンピュータ構成要素又はシステムに接続できるように設計される場合がある。従って、図４は、電気的検査の対象となるバス４６０に動作可能に接続された集積回路４００を示している。バス４６０は外部装置４５０にも接続することが出来る。外部装置４５０はバス４６０から電気信号を受信するように構成される。
【００５２】
集積回路４００は、バス４６０に送出される電気信号のテストシーケンスを選択的に生成するように構成された第１の論理回路（例えば、パターン生成論理回路４４０）を含む。集積回路４００は、同じくバス４６０に送出されるバスプロトコル信号を生成するように構成された第２の論理回路（例えば、プロトコル論理回路４３０）を更に含む。テストシーケンス又はバスプロトコル信号のいずれかをバス４６０に送出するために、集積回路４００はバスインタフェース論理回路４２０を含む。また集積回路４００は、第１の論理回路４４０、第２の論理回路４３０、及び／又はバスインタフェース論理回路４２０に動作可能に接続されたテスト論理回路４６０を更に含む。テスト論理回路４６０は、第１の集積回路４００を制御して、バスプロトコル信号と電気信号のテストシーケンスのどちらをバス４６０に送出するか、すなわち、どちらが外部テスト装置４５０によって受信されるかを選択する。例えば外部装置４５０は、データキャプチャＤＩＭＭ（デュアルインライン・メモリモジュール）を用いて、バス４６０から信号を受信するように構成される。外部装置４５０としては、例えばオシロスコープ、プロトコルアナライザ、コンピュータ等が使用される。
【００５３】
図４が、バス検査信号を外部装置に出力する集積回路を示すものであるのに対し、図５は、外部装置５８０から信号を受信する集積回路５００を示している。集積回路５００は、図３を参照して説明したような構成要素及び論理回路を備える。集積回路５００は、例えばコア５１０と、信号受信用のバスインタフェース論理回路５２０と、プロトコル信号を生成又は解釈するためのプロトコル論理回路５３０と、チェックシーケンスを生成するためのパターン生成論理回路５４０と、バス検査タスクを実施するための比較論理回路５５０と、集積回路５００をテストモードで動作させるかテストモード以外のモードで動作させるかを制御するためのテスト論理回路５８０とを含む。同様に、集積回路５００は、外部信号５６０、不一致データ５７０等を生成するように構成される。
【００５４】
図示のように集積回路５００はバス５９０に動作可能に接続され、更にバス５９０は外部装置５８０に接続される。外部装置５８０は、電気信号をバス５９０に送出するように構成される。比較論理回路５５０はバスインタフェース論理回路５２０及びパターン生成論理回路５４０に動作可能に接続され、受信信号と、生成されたクロックシーケンスとの両方を得ることができる。更に比較論理回路５５０は、バス５９０がデジタルデータを正確に伝送しているか否かを判定するように構成される。この判定は、例えば、外部装置５８０から受信した信号をパターン生成論理回路５４０で生成されたチェックシーケンスと比較することによって行われる。
【００５５】
図６は、オンチップバス検査システムの一部を示す略回路図である。システムは第１の回路部分６００を含み、第１の回路部分６００はバスによって第２の回路部分６０２に接続される。第１の回路部分６００は、第１の組の電気信号を生成するように構成された第１のサブ回路６２０を含む。第１の組の電気信号は、バスの検査に関する信号である。これらの電気信号は、例えば、バスに送出される電気信号のテストシーケンスである。第１のサブ回路６２０には、例えば、プログラム可能な基本パターンを受信して擬似ランダム番号シーケンスを生成するように構成されたＬＦＳＲパターン発生器が使用される。一実施形態において、第１の回路部分６００は集積回路の中に作成される。
【００５６】
第１の回路部分６００は、同じくバスに送出されるバスプロトコル信号を生成するように構成された第２のサブ回路６１０を更に含む。場合によっては、バスは、プロトコルに依存しない態様で検査することが望ましいことがある。そのため、第１の回路部分６００はマルチプレクサ６３０を有する。マルチプレクサ６３０は制御論理回路６３２によって制御され、バスに送出される第１の組の電気信号（例えばテストシーケンス）又は下流の回路（例えばドライバ６４０）に対送信されるバスプロトコル信号のいずれかを選択的に出力する。
【００５７】
上記のように、第２の回路部分６０２も同様にバスに接続され、従って第１の回路部分６００に接続される。第２の回路部分６０２は、バスから電気信号を受信するように構成された第４のサブ回路（例えば受信機６５０）を含む。これらの信号は、例えば、第１の組の電気信号がバスに送出されるのに応答して生成される信号を含む。受信機６５０は、受信信号をコア６６０に送るとともに、その受信信号をコンパレータ６７０にも送る。コンパレータ６７０は、ＬＦＳＲパターン発生器６８０のような第５のサブ回路からも信号を受信する。ＬＳＦＳＲパターン発生器６８０は、ＬＦＳＲ６２０によって生成される第１の組の電気信号と同じ第２の組の電気信号を生成するように構成される。コンパレータ６７０は、バスから受信した信号と、パターン発生器６８０で生成された信号との両方を利用して、バスがデジタルデータを正確に伝送しているか否かを判定するように構成される。この判定は、例えば、バスから受信した電気信号をパターン発生器６８０で生成された電気信号と比較することによって行われる。
【００５８】
一実施形態において、コンパレータ６７０は、スティッキーフェイル論理回路６７２及び外部トリガ論理回路６７４に接続される。従って、第２の回路部分６０２は、バスがデジタルデータを正確に伝送していないことが判明した場合、外部トリガを選択的に生成し、バスから受信した電気信号や、パターン発生器６８０で生成された電気信号などに関する情報を選択的に記録するように構成される。スティッキーフェイル論理回路６７２は、例えば、不一致に関連するデータを収集するためのスキャンアクセシブルレジスタを有する。このデータは、例えば、シーケンスの開始点から何クロックサイクル目で不一致が発生したか、コンパレータ６７０がどのようなデータを期待していたか、コンパレータ６７０においてどのようなデータが受信されたか、どのバスラインが原因で不一致が発生したか等に関するデータを含む。スティッキーフェイル論理回路６７２は到着したデータの記憶に使用され、不一致が発生すると、データの記憶を停止して、不一致の発生に至るまでのデータを利用できるようにする。
【００５９】
第１の回路部分６００と同様に、第２の回路部分６０２も集積回路の中に作成される。例えば、第１の回路部分６００、第２の回路部分６０２、及びそれらを接続するバスは、１つの集積回路の中に作成することができる。他の例において、第１の回路部分６００及び第２の回路部分６０２は、バスによって接続された２つの異なる集積回路の中に作成される場合がある。図面には第２の回路部分６０２が一個しか描かれていないが、実施形態によっては、第１の回路部分６０２は１以上の第２の部分６０２に接続される場合がある。
【００６０】
図７は、集積回路７００の中に作成されたオンチップバス検査システムの一部を示す略回路図である。集積回路７００はベーススキャン論理回路７１４を更に含む。上記のように、例に挙げたシステムは、例えば、インタフェースからシステムに与えられるデータによって制御される。インタフェースの一例は、ＪＴＡＧアプリケーションに関連するベーススキャンインタフェースである。このインタフェースは、例えば、ＪＴＡＧテストアクセスポート（ＴＡＰ）命令によって制御される。一実施形態において、図７に示すように制御論理回路７１６やパターン発生器７１２のようなバス検査要素を追加しても、それらにより、マルチプレクサ７２０、パッド７３０及びドライバ７４０を経由するテスト時以外の経路に遅延が加わることはない。同様に、コンパレータ７７０、スティッキーフェイル論理回路７９０、及び外部トリガ論理回路７９２のようなバス検査要素を集積回路７０２に追加しても、それらにより、受信機７５０からパッド７６０を通りコア７６２へ至るテスト時以外の経路に遅延が加わることはない。
【００６１】
例に挙げた方法は、図８のフロー図を参照すると更によく理解できるであろう。説明を簡単にするために、図面には例示した方法が一連のブロックとして描かれているが、この方法はブロックの並びによって制限されるものではない。一部のブロックは、図示したものとは異なる順序で実施されてもよいし、他のブロックと同時に実施されてもよい。また、例示した方法を実施する際に、図示したブロックを全て使用する必要は必ずしもない。更に、図示されていないブロックを追加及び／又は代替として使用してもよい。
【００６２】
フロー図において、ブロックは、論理回路を用いて実施される「処理ブロック」を表している。これらの処理ブロックは、方法の各ステップ、及び／又は、方法の各ステップを実施するための装置の構成要素を表している。フロー図は機能情報を表すものであり、当業者はこの機能情報を利用して、例示した処理を実施するための論理回路を開発することができる。ただし、電子工学的な応用形態には動的で柔軟な処理が必要とされるため、実施形態によっては、図示したブロックを図示したものとは違う順序で実施したり、複数のブロックを組み合わせたり、１つのブロックを分割したりする場合もある。
【００６３】
図８は、バス検査システムを動作させる方法の一例８００を示している。方法８００は、ブロック８１０においてドライバを制御し、実行待機状態に入る。一実施形態において、ドライバは、バス検査システムによる検査の対象となるバスに動作可能に接続された回路において実施される。一実施形態において、この実行待機状態に入るためのドライバの制御は、ドライバを制御し、害のない１組の電気的な値（例えば、オール０、オール１）をバスに送出することからなる。
【００６４】
方法８００は、ブロック８２０において受信機を制御し、検査状態に入る。受信機はドライバと同様に、バスに動作可能に接続された回路において実施される。受信機は、バスを介して受信されたテスト信号と比較するための電気信号の第１のシーケンスを生成するように構成される。一実施形態において、検査状態に入るための受信機の制御は、例えば次のようなデータを受信機に与えることからなる：受信機で生成されるシーケンスの長さを制御するデータ、受信機で生成されるシーケンスのタイプ、シーケンス検査を同期させるために受信機で探すべき外部トリガのタイプ、受信機で収集される誤りデータのタイプ、受信機で生成されるシーケンスの少なくとも一部を決定する受信機パターン発生器に使用される基本パターン値、及び例えばどのタイプのバス動作判定基準を検査すべきかを決定するトリガマスク。
【００６５】
方法８００は更に、ブロック８３０においてドライバを制御し、生成状態に入る。生成状態においてドライバは、バスに送出すべき電気信号の第２のシーケンスを生成する。電気信号のこの第２のシーケンスは、バスを電気的に検査したり、バスの電気特性を検査するのに役立つ。一実施形態において、生成状態に入るためのドライバの制御は、例えば次のようなデータをドライバに与えることからなる：ドライバで生成されるシーケンスの長さ、ドライバで生成されるシーケンスのタイプ、信号をバスに送出すべき速度、ドライバで生成される電気信号のシーケンスの少なくとも一部を決定する基本パターン値を制御するデータ。
【００６６】
方法８００は更に、ブロック８４０においてバスを電気的に検査する。このバスの電気的検査は、例えば、受信機で生成された信号のシーケンスを、ドライバで生成されたテスト信号のシーケンスがバスに送出されたときに受信機によって受信された電気信号と比較することにより、バスが正常に動作しているか否かを判定することからなる。
【００６７】
バスが正常に動作しているか否かを判定した後、方法８００は、成功状態（例えばバス合格）又は故障状態（例えばバス不合格）を報告する。不合格状態（故障状態）であった場合、方法８００は、例えば、生成されているシーケンスに関連する基本パターン、生成されたシーケンスの開始点からのオフセット、生成されたシーケンス中の電気信号に関連するデータ等のデータを選択的に記録することにより、その故障に対処する。
【００６８】
図９は、バス９０８によって動作可能に接続されたプロセッサ９０２、メモリ９０４、及び入出力ポート９１０を含むコンピュータ９００を示している。一実施形態において、コンピュータ９００は、電気的なバス検査を実施するように構成されたバス検査論理回路９３０及び９３２を含む。バス検査論理回路９３０及びバス検査論理回路９３２は、それがコンピュータ９００においてハードウエアとして実施されるか、ファームウエアとして実施されるか、あるいはそれらの組み合わせとして実施されるかに関わらず、次のような手段を提供する：プログラムによって定義可能な第１のバステストパターンを生成するための手段、第１のバステストパターンをバスに送出するための手段、バスに送出された第１のバステストパターンに関連する電気信号を受信するための手段、プログラムによって定義可能な第２のバステストパターンを生成するための手段、バスの望ましくない電気特性の原因となるデータ不一致の存在を電気信号が示しているか否かを判定するための手段。これらの手段は全て、バスによって動作可能に接続された集積回路(複数の場合もあり）の中に組み込まれる。
【００６９】
プロセッサ９０２には、例えばデュアルマイクロプロセッサや、他のマルチプロセッサアーキテクチャを有する種々のプロセッサが使用される。メモリ９０４には、例えば揮発性メモリや不揮発性メモリが使用される。不揮発性メモリには、限定はしないが、例えばＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等がある。揮発性メモリには、限定はしないが、例えばＲＡＭ、同期ＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、ダイレクトラムバスＲＡＭ（ＤＲＲＡＭ）等がある。
【００７０】
ディスク９０６は、例えば入出力インタフェース（例えばカード、デバイス）９１８及び入出力ポート９１０を介して、コンピュータ９００に動作可能に接続される。ディスク９０６には、限定はしないが、例えば磁気ディスクドライブ、固体ディスクドライブ、フロッピィディスクドライブ、テープドライブ、Ｚｉｐドライブ、フラッシュメモリカード、及び／又はメモリスティックのような装置が使用される。また、ディスク９０６には、例えばＣＤ−ＲＯＭ、ＣＤレコーダブルドライブ（ＣＤ−Ｒドライブ）、ＣＤリライタブルドライブ（ＣＤ−ＲＷドライブ）及び／又はデジタルビデオＲＯＭドライブ（ＤＶＤ  ＲＯＭ）のような光学ドライブを使用することもできる。メモリ９０４には、例えば、プロセス９１４及び／又はデータ９１６が記憶される。ディスク９０６及び／又はメモリ９０４には、コンピュータ９００の資源の制御と割り当てを行うオペレーティングシステムを記憶することもできる。
【００７１】
バス９０８は単一内部バス相互接続アーキテクチャであっても、他のバス又はメッシュアーキテクチャであってもよく、また、それらの組み合わせであってもよい。図面にはバスが１つしか描かれていないが、コンピュータ９００は、図示されていない他のバス（例えば、ＰＣＩＥ、ＳＡＴＡ、インフィニバンド、１３９４、ＵＳＢ、イーサネット）を使用して、種々のデバイス、論理回路及び周辺装置と通信することもできる。バス９０８のタイプには様々なものがあり、限定はしないが、例えばメモリバス又はメモリコントローラ、周辺バス又は外部バス、クロスバースイッチ、及び／又はローカルバスなどがある。ローカルバスには様々なものがあり、限定はしないが、例えばＩＳＡバス、マイクロチャネルアーキテクチャ（ＭＳＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ＰＣＩバス、ユニバーサルシリアル（ＵＳＢ）バス、及び小型コンピュータシステムインタフェース（ＳＣＳＩ）バスなどがある。
【００７２】
コンピュータ９００は、Ｉ／Ｏインタフェース９１８及び入出力ポート９１０を介して、種々の入出力装置との間で信号を送受信することができる。入出力装置には、限定はしないが、例えばキーボード、マイクロフォン、ポインティング・セレクションデバイス、カメラ、ビデオカード、ディスプレイ、ディスク９０６、ネットワークデバイス９２０等がある。入出力ポート９１０には、限定はしないが、例えばシリアルポート、パラレルポート、ＵＳＢポート等がある。
【００７３】
コンピュータ９００はネットワーク環境において動作し、Ｉ／Ｏインタフェース９１８及び／又はＩ／Ｏポート９１０を介してネットワークデバイス９２０に接続される場合がある。コンピュータ９００は、ネットワークデバイス９２０を通してネットワークとの間で信号を送受信する。コンピュータ９００は、ネットワークを介して遠くのコンピュータに論理接続される場合がある。コンピュータ９００が信号を送受信するネットワークには、限定はしないが、例えばローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、他のネットワーク等がある。ネットワークデバイス９２０はＬＡＮ手段に接続することができる。ＬＡＮ手段には、限定はしないが、例えばＦＤＤＩ（Fiber Distributed Data Interface）、ＣＤＤＩ（Copper distributed Data Interface）、イーサネット(R)（ＩＥＥＥ８０２．３）、トークンリング（ＩＥＥＥ８０２．５）、ワイヤレスコンピュータ通信（ＩＥＥＥ８０２．１１）、ブルートゥース（ＩＥＥＥ８０２．１５．１）、ジグビー（ＩＥＥＥ８０２．１５．４）等がある。また、ネットワークデバイス９２０は、限定はしないが、２点間リンク、統合サービスデジタル網（ＩＳＤＮ）、パケット交換網、及びデジタル加入者線（ＤＳＬ）のような回線交換網のようなＷＡＮ手段に接続することもできる。ここでは個々のネットワークタイプを具体的に記載したが、ネットワークを介した及び／又は通した通信には、複数の通信の組み合わせや混在も含まれる。
【００７４】
図１０は、本明細書に記載したシステムに類似するバス検査論理回路１０１０及びバス検査論理回路１０１２を含む画像形成装置の例１０００を示している。これらのバス検査論理回路は、本明細書に記載した方法を実施するように構成される。図面には２つの論理回路１０１０及び１０１２しか描かれていないが、画像形成装置１０００は、２つ以上のバス検査論理回路を含む場合がある。
【００７５】
画像形成装置１０００は描画（レンダリング）すべきプリントデータを受信する。従って画像形成装置１０００は、プリントデータの記憶や画像処理に汎用に使用されるメモリ１０２０を更に有する。画像形成装置１０００は、プリントデータからプリンタ準備画像を生成するように構成された描画論理回路１０３０を更に含む。描画処理は、使用されるデータの形式や撮像デバイスのタイプによって異なる。一般に描画論理回路１０３０は、高品位データを表示又は印刷のためのグラフィック画像（例えばプリンタ準備画像）に変換する。例えば、描画処理の一形態は、３次元オブジェクトやシーンの数学的モデルを取り込み、それをビットマップ画像に変換するレイトレーシングである。描画処理の他の例は、ＨＴＭＬを表示／印刷用の画像に変換するプロセスである。画像形成装置１０００は、描画する必要のないプリンタ準備データを受信する場合がある。従って、画像形成装置によっては描画論理回路１０３０を持たない場合もある。
【００７６】
画像形成装置１０００は、プリント準備画像から印刷媒体上に画像を生成するように構成された画像形成手段１０４０を更に含む。画像形成手段１０４０は撮像デバイス１０００のタイプによって異なり、例えばレーザ撮像手段、他のトナー式撮像手段、インクジェット手段、デジタル撮像手段、その他の画像再現エンジンなどがある。画像形成装置１０００は、画像形成装置１０００の動作を制御するための論理回路を備えたプロセッサ１０５０を更に有する。一実施形態において、プロセッサ１０５０はＪａｖａ命令を実行する論理回路を有する場合がある。画像形成装置１０００の他の構成要素については本明細書では説明しないが、例えば、媒体搬送手段、媒体保管手段、センサ、コントローラ、画像形成処理に関する他の構成要素などがある。
【００７７】
ここまで、システムや方法の種々の例についてかなり詳細に説明してきたが、出願人は、特許請求の範囲に規定される発明の範囲をそれらの詳細により制限したり、何らかの形で制限を加えたりするつもりはない。本明細書に記載したシステムや方法等を説明するために、構成要素や方法のあらゆる組み合わせを説明することは、当然ながら不可能である。また、その他の利点及び変更は当業者には直ぐに明らかとなろう。従って、本発明が図示説明した特定の詳細、代表的な装置、説明した例などに制限されることはない。従って、本願は、特許請求の範囲に記載した範囲に含まれる改変、変更及び変形を含むことを意図している。また、上記の説明は本発明の範囲を制限することを意図していない。本発明の範囲は、特許請求の範囲及びその均等によって規定される。
【００７８】
明細書又は特許請求の範囲に使用される「有する("include")」又は「有している("including")」という用語は、「含む("comprising")」という用語が伝統的な用語として特許請求の範囲に使用され解釈される場合と同様に、包含の意味で解釈してほしい。また、明細書又は特許請求の範囲に使用される「又は」（例えば、Ａ又はＢ）という用語は、「Ａ又はＢ、あるいはその両方」を意味している。「Ａ又はＢだけであって、その両方ではない」ことを出願人が明示する場合、「Ａ又はＢだけであり、その両方ではない」という表現が使用される。このように、本明細書に使用される「又は」という用語は、包含の意味で使用され、排他の意味では使用されない。Bryan A. Garner, A Dictionary of Modern Legal Usage 624 (2d. Ed. 1995)を参照のこと。
【図面の簡単な説明】
【００７９】
【図１】オンチップバス検査システムの一例を示す図である。
【図２】オンチップバス検査システムの他の例を示す図である。
【図３】オンチップバス検査システムの一部を備えた集積回路を示す図である。
【図４】外部デバイスとの間で信号を送受信する例示的なオンチップバス検査システムを備えた集積回路を示す図である。
【図５】他の外部デバイスとの間で信号を送受信する例示的なオンチップバス検査システムを備えた集積回路を示す図である。
【図６】オンチップバス検査システムの一部を示す略回路図である。
【図７】オンチップバス検査システムの一部を示す略回路図である。
【図８】オンチップ検査システムの関連する例示的な方法を示す図である。
【図９】本明細書に記載したシステム及び方法が動作する例示的なコンピュータ環境を示す図である。
【図１０】本明細書に記載したシステム及び方法が動作する例示的な画像形成装置を示す図である。
【符号の説明】
【００８０】
２０５  バス
２１０、２２０  集積回路
２５０  第１の論理回路
２６０  第２の論理回路
２７０  バスインタフェース論理回路
２７５  テスト論理回路
２８０  第３の論理回路
２９０  第４の論理回路
２９５  バス検査論理回路
３８０  外部トリガ
３９０  不一致データ
【図１】
2006208378.tif 000003
【図２】
2006208378.tif 000004
【図３】
2006208378.tif 000005
【図４】
2006208378.tif 000006
【図５】
2006208378.tif 000007
【図６】
2006208378.tif 000008
【図７】
2006208378.tif 000009
【図８】
2006208378.tif 000010
【図９】
2006208378.tif 000011
【図１０】
2006208378.tif 000012