(57)【要約】【課題】  ＡＳＩＣテストの改善を可能にするシステムおよび方法を提供する。【解決手段】  特定用途向け集積回路（ＡＳＩＣ）が、コア論理と独立したシリアライザ／デシリアライザ・バス（ＳＢｕｓ）の間の専用インターフェースを使って、コア論理にＳＢｕｓ機能を提供する。専用インターフェースに加えて、ＡＳＩＣは、信号セットに応答するコントローラと、ＳＢｕｓの周りに分散された複数の受信器も含む。各受信器は、ＡＳＩＣをテストする別個のスキャンベクトルの生成を必要とせずに、再利用され得るコマンドセットに応答して、ＡＳＩＣの各改訂されたバージョンにまたがって論理およびサポート機能をテストすると共に、類似のサポート機能の構成を有する別個のＡＳＩＣもテストする。ＩＥＥＥ１１４９．１インターフェースなどの追加インターフェースが、ＳＢｕｓ機能をさらに外部テスト装置まで拡張する。【選択図】  図１
2008122374.tif 000002
【特許請求の範囲】
【請求項１】
特定用途向け集積回路（ＡＳＩＣ）上のコア論理とサポートブロックから独立したシリアライザ／デシリアライザ・バス（ＳＢｕｓ）を備える特定用途向け集積回路（ＡＳＩＣ）であって、該シリアライザ／デシリアライザ・バス（ＳＢｕｓ）は、信号セットに応答するコア論理インターフェースを用いて構成され前記コア論理インターフェースとは相互に非同期であるコントローラと、該シリアライザ／デシリアライザ・バス（ＳＢｕｓ）の周りに分散された複数の受信器とを備えるものである、特定用途向け集積回路（ＡＳＩＣ）。
【請求項２】
前記コントローラは、前記コア論理インターフェースと前記コントローラとは非同期であるテストインターフェースをさらに備える請求項１に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項３】
前記信号セットは、受信器アドレス、データアドレス、コマンド、データ、および実行要求を送るものである請求項１に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項４】
前記コマンドは、受信器とコントローラインターフェースの１つに宛てて送られるものである請求項３に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項５】
前記信号セットは、ハンドシェーク、結果コード、および結果データをさらに送るものである請求項１に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項６】
前記信号セットは、前記結果コードと結果データとが有効であるという指標をさらに送るものである請求項５に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項７】
前記コントローラは、シリアライザ／デシリアライザ・バス（ＳＢｕｓ）クロックを構成するプログラム可能な分周器を備えるものである請求項１に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項８】
前記コントローラは、シリアライザ／デシリアライザ・バス（ＳＢｕｓ）モード信号に応答して複数バイトパケットを送るものである請求項１に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項９】
前記コントローラは、連続した前記シリアライザ／デシリアライザ・バス（ＳＢｕｓ）コマンドの間に予測可能な間隔をおいて、連続ＳＢｕｓコマンドを発行するように構成されたコマンド発行状態機械を備えるものである請求項１に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項１０】
エンドユーザアクセスが、再利用に適したコマンドセットを備える請求項９に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項１１】
前記複数の受信器のそれぞれは、残りのクロックとは異なる周期を有する複数のクロックに応答する論理を用いて構成されている請求項１に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項１２】
前記複数の受信器のそれぞれは、テスト論理を用いて構成されている請求項１に記載の特定用途向け集積回路（ＡＳＩＣ）。
【請求項１３】
特定用途向け集積回路（ＡＳＩＣ）内のコア論理に、シリアライザ／デシリアライザ・バス（ＳＢｕｓ）機能を提供する方法であって、
シリアライザ／デシリアライザ・バス（ＳＢｕｓ）コントローラに専用多導体インターフェースを介してコア論理を結合するステップと、
前記多導体インターフェースを介して印加されると所定のやり方で応答するよう前記ＳＢｕｓコントローラに指図する信号セットを規定するステップと、
前記コア論理のユーザに前記信号セットを送るステップと
を含む方法。
【請求項１４】
前記コア論理の外部の前記ＡＳＩＣ上に実装された機能を実行するように構成されたコマンドセットを送るステップをさらに含む請求項１３に記載の方法。
【請求項１５】
前記ＡＳＩＣにとって外部の装置からの前記コマンドセットの転送を可能にするために、ＩＥＥＥ１１４９．１準拠のインターフェースを介して前記ＳＢｕｓコントローラを結合するステップをさらに含む請求項１４に記載の方法。
【請求項１６】
特定用途向け集積回路（ＡＳＩＣ）をテストする方法であって、
前記ＡＳＩＣ上に実装された機能を実行するように構成されたコマンドセットを受け取るステップと、
多導体インターフェースを介して印加されると所定のやり方で応答するようＳＢｕｓコントローラに指図する信号セットを使って、前記コマンドセットからの選択コマンドの転送を指図するステップと
を含む方法。
【請求項１７】
ＩＥＥＥ１１４９．１準拠のＡＳＩＣインターフェースを介した前記選択コマンドの実行の結果の転送を指図するステップをさらに含む請求項１６に記載の方法。
【請求項１８】
選択コマンドの転送を指図する前記ステップは、コア論理専用の前記ＡＳＩＣの領域内に位置するランダムアクセスメモリを読み取ることを含む請求項１６に記載の方法。
【請求項１９】
選択コマンドの転送を指図する前記ステップは、前記ＡＳＩＣにとって外部のコンピュータ可読メモリを読み取ることを含む請求項１６に記載の方法。
【請求項２０】
前記ＳＢｕｓコントローラと前記多導体インターフェースとを介したＡＳＩＣコア論理への前記選択コマンドの実行の結果の転送を指図するステップをさらに含む請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
デジタル論理ベースの装置内の製造欠陥によって生じる挙動などの回路挙動をテストするためにスキャンテストが実施される。例えば、最新のマイクロプロセッサは、何千万個もの論理ゲートを使って実装される。スキャンテストは、論理ゲートの欠陥の有無をテストするために使用される。
【背景技術】
【０００２】
従来のスキャンテストでは、製品となるべき装置をテストするためにテストパターンが生成される。このテストパターンは、様々な論理ゲートをテストするために規定された０と１のシーケンスを含み得る。テストパターンを生成するためには、通常、自動テストパターン生成ツール（ＡＴＰＧ）が使用される。ＡＴＰＧは、マイクロプロセッサ（すなわちチップ）などのデジタル論理ベースの装置の回路モデル（すなわちネットリストと呼ばれるもの）を解析し、チップ上の１組の潜在的な欠陥位置または部位を特定する。そして、ＡＴＰＧは、装置をテストするために必要なテストパターンを生成する。
【０００３】
装置上の記憶素子（すなわちフリップフロップ）は、スキャンテスト動作時には、スキャンチェーンまたはチェーンセグメントとなるように直列に接続される。テストパターンは、しばしば、スキャンチェーンセグメントと１対１の関係として生成される。例えば、スキャンチェーンが１０個のフリップフロップの長さである場合、テストパターンは、１ビットが各フリップフロップと関連付けられた１０ビットを用いて生成され得る。
【０００４】
テストパターンは、入力データピンを介して導入される。テストパターンは、１クロックサイクル当たり１ビットであり、直列にスキャンチェーンセグメントへとシフトインされる。選択された数のクロックサイクル捕捉後、テストの結果として生じる状態が、出力ピンを介してシフトアウトされる。テストパターンがスキャンチェーンセグメントからシフトアウトされる際、別のテストパターンがスキャンチェーンセグメントへとシフトインされる。各テストパターンは、スキャンチェーンセグメント内のフリップフロップを取り囲む論理の欠陥を発見する目的で生成される。したがって、ＡＴＰＧは、それらを取り囲む論理内の対象となる欠陥が特定されるように、スキャンチェーン内のフリップフロップを特定の状態に置くパターンを生成する。
【０００５】
最新の集積回路アーキテクチャは、テストする必要のある途方もない量の論理とゲートを含む。よって、各テストに途方もない量のデータが生成され、１つの装置をテストするために相当数のテストパターンが生成される必要がある。例えば、ＡＴＰＧプログラムが、大規模であり、複雑な回路のテストパターンを作成するために何週間もかかることもある。
【０００６】
フリップフロップは直列チェーンとして接続され、テストパターンまたはベクトル内の各ビットは、１クロックサイクル当たり１ビットの速度でスキャンチェーンにシフトインされるため、何千万ものビットがあるときには、テストパターンをスキャンチェーンにシフトインするために相当量の時間を要する。スキャンチェーンテストを実行するコストは、テストを実行するために必要とされる時間量に正比例する。その結果、この時間を最適化し、スキャンチェーンテストに伴うコストを低減するいくつかの技法が開発されている。
【０００７】
特定用途向け集積回路（以下、「ＡＳＩＣ」とよぶ）の複雑度が増大するにつれて、フリップフロップの数、よって、これに伴うスキャンテストの長さも増大する。さらに、ＡＳＩＣアーキテクチャは、特に、シリアライザ／デシリアライザ（以下、「ＳｅｒＤｅｓ」とよぶ）、バッファ付きメモリ素子、位相ロックループベースのタイミング回路などの追加技術を含み得る。ＳｅｒＤｅｓなどの追加技術は、テストパターンの入力と出力に利用可能な入力／出力（入出力）ピンの数を低減する傾向がある。これら２つの要因が組み合わさって、スキャンテストを実行するために必要とされるクロックサイクル数が増大する。スキャンチェーンがより少なく、より長くなると、結果として、スキャンテストのコストが増大する。
【０００８】
テストの時間とコストを低減するために、様々な従来のスキャン圧縮技法が開発されている。これらのスキャン圧縮技法では、テストパターンが入力された後、チップ上で圧縮解除され、スキャンテストの実行に使用され、そして、その応答が、出力される前にチップ上で圧縮される。その結果、限られた数の入出力ピンだけしか利用できなくても、限られた時間で対象とする欠陥をテストするための多種多様なテストパターンが生成され得る。残念ながら、圧縮スキャンテストパターンの生成でさえも、高くつき、時間がかかる。例えば、ＡＳＩＣ設計が変化する（例えば、論理回路が統合され、または以前のバージョンとは別様に実装されるなどの）たびに、スキャンテストパターンまたはテストベクトルは、ＡＳＩＣの所望の動作を実行し、確認するように再生成されなければならない。これは、別々のＡＳＩＣが同一のサポート機能を含むときでさえも該当する。サポート機能と特定用途向け論理とが個別にテストされるべきであるときには、問題はさらに複雑になる。例えば、追加技術またはサポート機能が、ＡＳＩＣのコア論理とは独立にテストされなければならないことがこれに該当する。よって、スキャンチェーンまたはテストベクトルは、個別のテストごとに生成されなければならない。
【０００９】
よって、ＡＳＩＣテストの改善、特に、ＡＳＩＣの異種の統合バージョンにまたがり、１つ以上のサポート機能またはブロックを共用する異種のＡＳＩＣにまたがるテストの生成と再利用における効率の改善を可能にするシステムおよび方法の開発における改善が求められている。
【発明の開示】
【００１０】
ＡＳＩＣおよびＡＳＩＣコア論理にシリアライザ／デシリアライザ・バス（以下、「ＳＢｕｓ」とよぶ）機能を提供する方法を図示して説明する。ＳＢｕｓと、ＳＢｕｓに沿って戦略的に位置決めされた受信器が、ＳＢｕｓに沿った受信器に結合されたサポート機能への標準化インターフェースを提供する。ＳＢｕｓは、スキャンチェーンまたはテストベクトルを介してＡＳＩＣ上のレジスタにアクセスするのではなく、アドレスによるアクセスを可能にする。ＡＳＩＣスキャンチェーン内の各ビットが、一意のアドレスと関連付けられることができる。その結果、同様に構成されたサポートブロックが、同じコマンドセットを再利用して、名目的にブロック機能を検証することができる。
【００１１】
ＡＳＩＣの一実施形態は、コントローラと、ＳＢｕｓの周りに分散された複数の受信器を有するＳＢｕｓを含む。ＳＢｕｓは、ＡＳＩＣコア論理およびＡＳＩＣ上の他のサポートブロックから独立している。コントローラは、信号セットに応答するコア論理インターフェースを含む。コア論理インターフェースは、ＳＢｕｓ機能をＡＳＩＣコア論理に公開する。ＳＢｕｓに結合された各受信器は、ＡＳＩＣ上の論理およびサポート機能をテストするために再利用され得るコマンドセットに応答する。テストを構成する選択コマンドセットは、コントローラ内のランダムアクセスメモリに、またはＡＳＩＣコア論理に記録されることができる。テストアクセスポートを使って、リモート装置上に記録された選択コマンドセットがコントローラに転送されることができる。
【００１２】
別の実施形態は、ＡＳＩＣコア論理にＳＢｕｓ機能を提供する方法を説明する。この方法は、専用の多導体インターフェースを介してＳＢｕｓコントローラにＡＳＩＣコア論理を結合するステップと、多導体インターフェースを介して印加されると、ＳＢｕｓコントローラに、所定のやり方で応答するよう指図する信号セットを規定するステップと、信号セットをコア論理のユーザに送るステップとを含む。
【００１３】
第３の実施形態は、ＡＳＩＣをテストする方法を説明する。この方法は、ＡＳＩＣ上に実装された機能を実行するように構成されたコマンドセットを受け取るステップと、多導体インターフェースを介して印加されると、ＳＢｕｓコントローラに、所定のやり方で応答するよう指図する信号セットを使って、コマンドセットからの選択コマンドの転送を指図するステップとを含む。
【００１４】
他の装置、方法、機能および利点は、以下の図と詳細な説明を検討すれば、当業者には明らかである。このようなすべての追加の装置、方法、特徴および利点は、添付の特許請求の範囲によって規定されて保護されるものである。
【００１５】
特許請求の範囲により規定される本発明のＡＳＩＣ、ＳＢｕｓコントローラインターフェース、ＡＳＩＣコア論理にＳＢｕｓ機能を提供する方法、およびＡＳＩＣをテストする方法は、以下の図面を参照すればより良く理解することができる。図面内の構成要素は、必ずしも相互に対して一定の縮尺で示されているとは限らず、代わりに、ＡＳＩＣの異種バージョンまたは類似のサポート機能を用いて構成された別個のＡＳＩＣに再利用されることができる標準コマンドセットを使ってＡＳＩＣコアとやりとりするための原理を明確に示すことに重点が置かれている。
【発明を実施するための最良の形態】
【００１６】
ＳＢｕｓは、集積回路上の様々な機能にアクセスするための構造と機構を提供する。例えば、適切に分散された受信器を有するＳＢｕｓは、集積回路上に設けられたＳｅｒＤｅｓ、位相ロックループおよびその他のサポート機能にアクセスすることができる。
【００１７】
図１は、ＳＢｕｓを用いて構成されたＡＳＩＣ１００の一実施形態を示す機能ブロック図である。ＳＢｕｓは、コントローラ１１０と、バス部分１１７を介してリング状に受信器同士およびコントローラ１１０に結合された、受信器１３５、受信器１４５、受信器１５５、受信器１６５、・・・および受信器１９５などの複数の受信器からなる。各バス部分１１７は、ＡＳＩＣ１００上の様々な要素とコントローラ１１０の間で情報をやりとりする多導体からなる。コントローラ１１０は、リングの始めと終わりとして機能する。コントローラ１１０は、信号ベースのプロトコルを使って、受信器１３５、受信器１４５、受信器１５５、受信器１６５、・・・および受信器１９５のそれぞれとやりとりする。受信器１３５は、接続１３２を介して位相ロックループ（以下、「ＰＬＬ」とよぶ）１３０に結合されている。受信器１４５は、接続１４２を介してＳｅｒＤｅｓ  Ａ１４０に結合されている。受信器１５５は、接続１５２を介してＳｅｒＤｅｓ  Ｂ１５０に結合されている。受信器１６５は、接続１６２を介してＳｅｒＤｅｓ  Ｃ１６０に結合されている。受信器１９５は、１つ以上のＡＳＩＣ１００の追加サポート機能とインターフェースするために利用可能である。受信器１３５、受信器１４５、受信器１５５、受信器１６５および受信器１９５は、それぞれ、メモリを用いて構成されている。
【００１８】
メモリ１１４に記録されたコントローラ１１０からの情報は、関連する受信器内の指定アドレスに書き込み、そのデータを選択時刻に関連するサポートブロックに転送することによって、特にＰＬＬ１３０やＳｅｒＤｅｓ  Ａ１４０などの関連するサポートブロック内の適切な位置に挿入され得る。同様に、情報は、コントローラ１１０により、データを選択時刻に指定サポートブロックから、関連する受信器内の指定アドレスに転送し、その指定アドレス内のデータを、ＳＢｕｓに沿ってコントローラ１１０に送ることによって取り出すこともできる。
【００１９】
受信器１３５、受信器１４５、受信器１５５および受信器１６５は、それぞれ、別々のエンティティとして示されているが、これらの受信器は、ＡＳＩＣ１００上の１つ以上のサポート機能またはブロックと統合され得ることを理解すべきである。
【００２０】
図示の実施形態では、コントローラ１１０は、ＳＢｕｓへの２つの外部インターフェースを提供する。第１のインターフェースは、コア論理インターフェース１１３と表され、もっぱら、ＡＳＩＣ１００のコア論理１２０に実装された論理機能にＳＢｕｓ機能を提供する。第２のインターフェースは、テストアクセスポート（ＴＡＰ）インターフェース１１５と表され、もっぱら、入力／出力ピン（図示せず）を介して外部テスト装置にＳＢｕｓ機能を提供する。ＴＡＰインターフェース１１５は、電気電子学会標準１１４９．１テストアクセスポートおよびバウンダリスキャンアーキテクチャ（ＩＥＥＥ１１４９．１）に準拠している。追加のコントローラインターフェースも可能である。
【００２１】
図示の実施形態では、ＡＳＩＣ１００は、接続１０２に沿って基準クロック（ＲＥＦ＿ＣＬＫ）信号を受け取り、接続１０４に沿ってコア論理インターフェースクロック（ＣＯＲＥ＿ＣＬＫ）信号を受け取り、接続１０６に沿ってテストインターフェースクロック信号（ＴＥＳＴ＿ＣＬＫ）を受け取る。代替の実施形態では、基準クロック、コア論理インターフェースクロックおよびテストインターフェースクロックの１つ以上が、ＡＳＩＣ１００上で生成され得る。それぞれの生成の場所を問わず、コア論理インターフェースクロック１０４とテストインターフェースクロック１０６は、受信器のそれぞれに提供される。
【００２２】
コア論理インターフェース１１３は、コア論理インターフェースクロック信号に従って動作する。ＴＡＰインターフェース１１５は、テストインターフェースクロック信号に従って動作する。コントローラ１１０、バス部分１１７および各受信器は、前述の各クロックと、指定時刻に接続１１９を介して提供されるＳＢｕｓクロック信号に従って動作する。
【００２３】
コントローラ１１０とバス部分１１７は、コア論理１２０と、ＰＬＬ１３０、ＳｅｒＤｅｓ  Ａ１４０、ＳｅｒＤｅｓ  Ｂ１５０などのサポート機能から独立している。ＳＢｕｓ要求は、ＳＢｕｓインターフェースの１つによって開始される。ＳＢｕｓ要求は、コントローラ１１０によって受け取られ、ＳＢｕｓパケットに変換される。要求の変換後、コントローラ１１０は、パケットをリングに沿って送り、要求結果を要求側インターフェースに戻す。各ＳＢｕｓ受信器は、パケットを監視し、ＳＢｕｓに沿ってコマンドを送り、コマンドがその特定の受信器に宛てて送られた場合にはそのコマンドを実行し、場合により、結果をコントローラ１１０に送り返す。
【００２４】
以下の表１に、共にＳＢｕｓインターフェースを形成する様々な信号を列挙する。表内の＊は、コア、テスト、スペアまたはその他と関連付けられた標識その他のシンボルのプレースホルダであることに留意されたい。
【００２５】
【表１】
2008122374.tif 000003
【００２６】
図２は、図１のＳＢｕｓに適用され得るＳＢｕｓ要求のやりとりを示すタイミング図２００である。ＳＢｕｓインターフェースポート要求が、ＳＢｕｓ受信器アドレス２１０、ＳＢｕｓデータアドレス２２０、ＳＢｕｓコマンド２３０およびＳＢｕｓデータ２４０の各信号を設定することによって開始される。ＳＢｕｓ実行信号２５０は、ＳＢｕｓ完了信号２６０がローである場合に限って、論理ローから論理ハイに遷移する。ＳＢｕｓ完了信号２６０は、要求が受け取られており、コントローラ１１０によって処理されていることを示すために、論理ローから論理ハイに遷移する。ＳＢｕｓ実行信号２５０が論理ローに戻った後、ＳＢｕｓ受信器アドレス２１０、ＳＢｕｓデータアドレス２２０、ＳＢｕｓコマンド２３０およびＳＢｕｓデータ２４０の各信号は値を変更し得る。
【００２７】
例えば、図２に示すように、ＳＢｕｓ実行信号２５０がローのとき、ＳＢｕｓ受信器アドレス２１０、ＳＢｕｓデータアドレス２２０、ＳＢｕｓコマンド２３０およびＳＢｕｓデータ２４０の各信号は、それぞれ、ドントケア（ｄｏ−ｎｏｔ−ｃａｒｅ）部分２１１、ドントケア部分２２１、ドントケア部分２３１およびドントケア部分２４１によって表される。ＳＢｕｓ受信器アドレス値２１３、ＳＢｕｓデータ値２２３、ＳＢｕｓコマンド２３３およびＳＢｕｓデータ値２４３は、ＳＢｕｓ実行が遷移する前に適用される。これらの値は、それぞれ、ＳＢｕｓ実行２５０がハイに留まる間、一定に保持される。ＳＢｕｓ実行２５０がハイからローに遷移した後、ＳＢｕｓ完了がハイである間、ＳＢｕｓ受信器アドレス２１０、ＳＢｕｓデータアドレス２２０、ＳＢｕｓコマンド２３０およびＳＢｕｓデータ２４０の各信号は、それぞれ、ドントケア部分２１５、ドントケア部分２２５、ドントケア部分２３５およびドントケア部分２４５によって表される。後続のＳＢｕｓインターフェースポート要求が、次にＳＢｕｓ実行２５０がローからハイに遷移するときに送られる。第１のインターフェースポート要求の場合と同様に、ＳＢｕｓ受信器アドレス値２１７、ＳＢｕｓデータ値２２７、ＳＢｕｓコマンド２３７およびＳＢｕｓデータ値２４７が、ＳＢｕｓ実行が遷移する前に適用される。これらの値は、それぞれ、ＳＢｕｓ実行２５０がハイに留まる間、一定に保持される。ＳＢｕｓ実行２５０がハイからローに遷移した後、ＳＢｕｓ完了がハイである間、ＳＢｕｓ受信器アドレス２１０、ＳＢｕｓデータアドレス２２０、ＳＢｕｓコマンド２３０およびＳＢｕｓデータ２４０の各信号は、それぞれ、ドントケア部分２１９、ドントケア部分２２９、ドントケア部分２３９およびドントケア部分２４９によって表される。
【００２８】
図３は、図１のＳＢｕｓ上で観測され得るＳＢｕｓ結果のやりとりを示すタイミング図３００である。コントローラ１１０が、インターフェースポート要求を処理し始めていることを（ＳＢｕｓ完了信号２６０を論理ローから論理ハイに遷移することによって）示すと、そのインターフェースは、結果を待ち、かつ／または要求を出し続ける。コントローラ１１０は、要求の結果を、受け取った順に返す。ＳＢｕｓ受信データ有効信号３１０の立ち上がりエッジは、要求が完了し、結果コードとデータが有効であることを示す。要求状況は、ＳＢｕｓ結果コード信号３２０によって提供される。ＳＢｕｓ結果コード信号３２０は、要求が正常に完了したか、それとも失敗したか示すことができる。図３に示すように、ＳＢｕｓ結果コード信号３２０は、ＳＢｕｓ実行がハイからローに遷移する前に、ドントケア部分３２１によって表される。コントローラ１１０は、ローからハイへのＳＢｕｓ実行信号２５０遷移を感知した後で、ＳＢｕｓ結果コードをリセットし、ＳＢｕｓ完了信号２６０をローからハイに遷移する。第１のＳＢｕｓ結果コード３２５は、ＳＢｕｓ受信データ有効信号３１０の立ち上がりエッジに対応する。第２のリセット３２７は、ＳＢｕｓ受信データ有効信号３１０の立ち下がりエッジに対応する。その後、第２のＳＢｕｓ結果コード３２９が、ＳＢｕｓ受信データ有効信号３１０の立ち上がりエッジと連携して提示される。要求がデータ読み取りを伴うとき、そのデータは、ＳＢｕｓ受信データ有効信号３１０の立ち上がりエッジのＳＢｕｓデータ出力信号３３０で利用可能になる。第１のドントケア部分３３２は、ＳＢｕｓ完了２６０がローに戻り、ＳＢｕｓ受信データ有効がローからハイに遷移するまでデータが無効であることを示す。その後、第１のデータ値３３４が、ＳＢｕｓ受信データ有効信号３１０の第１と第２の立ち上がりエッジ遷移の間の期間に提示される。第２のデータ値３３６は、ＳＢｕｓ受信データ有効信号３１０の第２と第３の立ち上がりエッジ遷移の間の期間に提示される。
【００２９】
【表２】
2008122374.tif 000004
【００３０】
コントローラ１１０は、２種類のコマンド、すなわち、ＳＢｕｓコントローラコマンドとＳＢｕｓ受信器コマンドを認識し、処理する。ＳＢｕｓコントローラコマンドは、ＳＢｕｓインターフェース（コア論理インターフェース１１３やＴＡＰインターフェース１１５など）の挙動を変更する。ＳＢｕｓ受信器コマンドは、ＳＢｕｓ受信器（受信器１３５、受信器１４５、受信器１５５など）内のデータにアクセスするために使用される。表３に、コマンド信号の各フィールドを規定する。
【００３１】
【表３】
2008122374.tif 000005
【００３２】
ＳＢｕｓコントローラコマンドは、読み取りデータの基本データ処理を提供する。通常モードコマンドに応答して、コントローラ１１０は、受信データをデータ出力ポートに配置する。全読み取りコマンドに応答して、コントローラ１１０は、指定ＳＢｕｓ受信器アドレスから開始し、そのアドレスから第２のアドレスへのバックツーバック（連続）要求を発行する。データ、コマンドおよびデータアドレスは、全読み取り完了結果コードが受け取られるまで一定のままである。ＯＲモードコマンドに応答して、コントローラ１１０は、受信データと、出力ポートの現在の状態を入力として使って、ＯＲ論理関数を実行する。ＡＮＤモードコマンドに応答して、コントローラ１１０は、受信データと、出力ポートの現在の状態を入力として使って、ＡＮＤ論理関数を実行する。ＡＮＤモードに変更しても、データ出力ポートはリセットされない。このためユーザは、ＡＮＤモードを開始する前に、データ出力ポート上にシード値またはマスク値を設定することができる。これは、アドレス０に読み取り結果コマンドを発行することによって達成され得る。
【００３３】
ＳＢｕｓ受信器コマンドは、ＳＢｕｓ受信器内のデータにアクセスするために使用される。リセットコマンドに応答して、アドレス指定されたＳＢｕｓ受信器は、そのメモリをデフォルト値にリセットする。読み取りコマンドに応答して、アドレス指定されたＳＢｕｓ受信器は、指定されたデータアドレスからデータを非同期的に読み取る。書き込みコマンドに応答して、アドレス指定されたＳＢｕｓ受信器は、そのデータアドレスにデータを書き込む。読み取り結果コマンドに応答して、アドレス指定されたＳＢｕｓ受信器は、読み取り結果パケットをコントローラ１１０に送る。このパケットは、読み取りの結果を含む。
【００３４】
図４は、図１のコントローラ１１０の一実施形態を示す機能ブロック図である。コントローラ１１０は、クロック分周器４２０、マルチプレクサ（ＭＵＸ）４３０、実行状態機械４４０、競合状態機械４５０、コマンド発行状態機械４６０および読み取り状態機械４７０を含む。クロック分周器４２０は、接続１０２に沿って基準クロック信号を受け取り、接続４０２に沿ってコアリセット信号を受け取り、接続４０３に沿ってテストリセット信号を受け取る。入力（図示せず）に従って、クロック分周器４２０は、ＳＢｕｓクロック信号を生成し、接続１１９上で提供する。ＳＢｕｓクロック周波数は、入力と基準クロックの周波数の関数である。クロック分周器４２０は、さらに、クロックテスト信号とリセット入力信号とを生成し、これらが、接続４２６と接続４２４とに沿って、競合状態機械４５０にそれぞれ提供される。
【００３５】
マルチプレクサ４３０は、接続４０４に沿ってＴＡＰコマンドデータ信号を受け取り、接続４０５に沿ってコアコマンドデータ信号を受け取る。これらの入力に加えて、マルチプレクサ４３０は、接続４６２に沿ってコマンド発行状態機械４６０から、電源投入セルフテストコマンドデータも受け取る。マルチプレクサ４３０は、接続４５１に沿って競合状態機械４５０から受け取られるマルチプレクサ制御信号に従って、上記入力の１つからコマンドデータを選択する。マルチプレクサ４３０は、選択した項目を実行状態機械４４０に送る。具体的には、実行アドレス信号が、接続４３２に沿って提供される。実行内部アドレス信号が接続４３４に沿って提供される。実行コマンド信号が接続４３６に沿って送られる。実行データコマンドが接続４３８に沿って送られる。
【００３６】
クロックテスト信号とリセット入力信号とをクロック分周器４２０から受け取ることに加えて、競合状態機械４５０は、接続４０６に沿ってＴＡＰ実行信号を受け取り、接続４０７に沿ってコア実行信号を受け取り、接続４０８に沿ってＴＡＰ指定変更信号を受け取る。また、競合状態機械４５０は、接続４６３に沿ってコマンド発行状態機械４６０によって送られる電源投入セルフテスト実行コマンド信号を受け取り、接続４４３に沿って実行状態機械４４０からの実行アイドル信号も受け取る。これらの受信信号に応答して、競合状態機械４５０は、接続４５２に沿ってクロックテスト信号を送り、接続４５３に沿ってリセット入力信号を送り、接続４５４に沿ってＳＢｕｓ実行信号を送り、接続４５５に沿ってコア完了信号を送り、接続４５６に沿ってＴＡＰ完了信号を送り、接続４５７を介して電源投入セルフテスト完了信号を送る。
【００３７】
コマンド発行状態機械４６０は、接続４０９に沿ってクロック入力信号を受け取り、接続４１０に沿ってモード入力信号を受け取り、接続４１１に沿ってデータ入力信号を受け取る。これらの信号に応答して、コマンド発行状態機械４６０は、接続４６４に沿ったクロック入力信号を生成して送り、接続４６６に沿ったモード入力信号を生成して送り、接続４６８に沿ったデータ入力信号を生成して送る。
【００３８】
読み取り状態機械４７０は、コマンド発行状態機械４６０から、接続４６４、接続４６６、接続４６８を介して、クロック入力信号と、モード入力信号と、データ入力信号とをそれぞれ受け取る。接続４４１に沿って提供される状態機械リセット信号に従って、読み取り状態機械４７０は、接続４７２に沿って送られるＴＡＰ結果コード信号と、接続４７４に沿って送られるコア結果コード信号と、接続４７６に沿って送られるＴＡＰデータ出力信号と、接続４７８に沿って送られるコアデータ出力信号とを生成する。
【００３９】
実行状態機械４４０は、競合状態機械４５０から、クロックテスト信号とリセット入力信号とＳＢｕｓ実行信号を受け取る。また、実行状態機械４４０は、マルチプレクサ４３０から実行アドレス信号、実行内部アドレス信号、実行コマンドおよび実行データ信号も受け取る。これらの信号に応答して、実行状態機械４４０は、接続４４２に沿って送られるアドレス出力信号と、接続４４４に沿って送られるモード出力信号と、接続４４６に沿って送られるデータ出力信号と、接続４４８に沿って送られるリセット出力信号とを生成する。
【００４０】
コントローラ１１０は、クロック分周器４２０を使って、基準クロック信号からＳＢｕｓクロックを作成する。表４に可能な分周比を列挙する。分周比は、分周比値を受け取るように構成された指定ＳＢｕｓ受信器の指定アドレスに所望の値を書き込むことによって設定されることができる。
【００４１】
【表４】
2008122374.tif 000006
【００４２】
各ＳＢｕｓ部分１１７は、リングに沿ってパケットを送信するための、１本のクロック線と、８本のデータ線と、１本のモード指示線からなる。また、各ＳＢｕｓ部分１１７は、８本のアドレス線と、１本のリセット線と、何本かの追加のテスト信号も含む。この信号セットは、ＡＳＩＣ１００全体にわたってある機能ブロックから次の機能ブロックまでされ、コントローラ１１０の出力ポートから始まってコントローラ１１０の入力ポートで終わるデイジーチェーンとして接続される。この信号セットを表５に列挙する。
【００４３】
【表５】
2008122374.tif 000007
【００４４】
ＳＢｕｓ上の第１の受信器（受信器１３５など）は、アドレス１（０００１）にあり、後続の各ＳＢｕｓ受信器のアドレスは１ずつ増分される。アドレス０ｘＦＦ〜０ｘＦ６と、００００は、コマンドのブロードキャストと、特殊目的の受信器のために予約されている。ブロードキャストアドレスは、複数のＳＢｕｓ受信器が単一のパケットに応答できるようにする。表６に、ブロードキャストアドレスとＡＳＩＣ１００上の選択機能ブロックとのマッピングの一例を列挙する。
【００４５】
【表６】
2008122374.tif 000008
【００４６】
ＳＢｕｓを介したやりとりは、表７に示すパケット構造を使用する。モード線は、１クロックサイクルにわたってハイに保持され、データ線がパケットの第１バイトを含むことを示す。各パケットは７バイトのデータからなる。複数バージョンの受信器が可能である。例えば、８ビットバージョンでは１バイトのデータを送受信する。３２ビットバージョンでは４バイトのデータを送受信する。
【００４７】
【表７】
2008122374.tif 000009
【００４８】
コントローラ１１０入力／出力（入出力）信号を表８に列挙する。＊は、コントローラインターフェース（ＴＡＰ、コア、スペア、その他など）を表す。
【００４９】
【表８】
2008122374.tif 000010
【００５０】
図５は、図４の実行状態機械４４０の動作を示す流れ図である。図５の流れ図５００には、実行状態機械４４０の可能な実現形態のアーキテクチャ、機能および動作が示されている。この図に関して、各ブロックは状態を表し、状態は、コントローラ１１０内の信号状態とデータ値の組み合わせを備える。実行状態機械４４０は、コントローラ１１０内のハードウェア装置である。様々な状態を実施するために必要とされる機能は、指定された論理関数を実施するように構成された回路または多数の相互接続された回路を表すことを理解すべきである。
【００５１】
実行状態機械４４０は、アイドル状態５０２から開始する。全読み取りコマンドが検出されると、実行状態機械４４０は、状態５０４に遷移し、カウンタが受信器アドレスに設定され、内部フラグが設定される。そうではなく、全読み取りコマンドが検出されず、または状態５０４が完了しないときには、実行状態機械４４０は、状態５０６に遷移し、モード出力信号と実行アドレスが構成される。次に、実行状態機械は、状態５０８に遷移し、データ出力信号が構成される。状態５１０で、コマンドが修飾子を含むかどうかが判定される。その後、実行状態機械は、データ出力信号を、状態５１２でデータバイト１を用いて更新し、状態５１４でデータバイト２を用いて更新し、状態５１６でデータバイト３を用いて更新し、状態５１８でデータバイト４を用いて更新する。実行状態機械４４０がデータを処理した後、または全読み取りコマンドが検出されないとき、実行状態機械４４０は状態５２０に遷移し、カウンタが減分される。その後、実行状態機械４４０は、次の実行データが期待されるときは、状態５２２と状態５２４を経由してから、状態５０６に戻る。そうでない場合、実行状態機械４４０は、アイドル状態５０２に遷移する。
【００５２】
図６は、図４の競合状態機械４５０の動作を示す流れ図である。図６の流れ図６００には、競合状態機械４５０の可能な実現形態のアーキテクチャ、機能および動作が示されている。この図に関して、各ブロックは状態を表し、状態は、コントローラ１１０内の信号状態とデータ値の組み合わせを備える。競合状態機械４５０は、コントローラ１１０内のハードウェア装置である。様々な状態を実施するために必要とされる機能は、指定された論理関数を実施するように構成された回路または多数の相互接続された回路を表すことを理解すべきである。
【００５３】
競合状態機械４５０は、アイドル状態６０２から開始し、リセット信号に応答する。競合状態機械４５０は、利用可能なインターフェースのラウンドロビンチェックを行って、どのインターフェースにコントローラリソースが与えられるか判定する。状態６０４で、競合状態機械４５０は、ＴＡＰインターフェース１１５の現在の状態を監視する。ブロック６０６で、競合状態機械４５０は所定時間待機し、その後判断ブロック６０８で、ＴＡＰインターフェース１１５が活動状態であるかどうかチェックする。ＴＡＰインターフェース１１５が活動状態であるとき、競合状態機械４５０はブロック６０６に遷移し、ＴＡＰインターフェース１１５が活動状態でないとき、競合状態機械４５０は判断ブロック６１０に遷移し、テスト指定変更信号の状態に関する判定が行われる。テスト指定変更信号が設定されているとき、競合状態機械４５０は状態６０４に戻る。そうでなく、テスト指定変更信号が設定されていないとき、競合状態機械４５０は状態６１２に遷移する。状態６１２で、競合状態機械は、コア論理インターフェース１１３の現在の状況を監視する。ブロック６１４で、競合状態機械４５０は所定時間待機し、その後判断ブロック６１６で、コア論理インターフェース１１３が活動状態であるかどうかチェックする。コア論理インターフェース１１３が活動状態であるとき、競合状態機械４５０はブロック６１４に遷移し、そうでなく、コア論理インターフェース１１３が非活動状態であるとき、競合状態機械は状態６１８に遷移し、競合状態機械４５０は、（コントローラ１１０にとって内部の）電源投入セルフテストインターフェースの状況を監視する。ブロック６２０で、競合状態機械４５０は所定時間待機し、その後、判断ブロック６２２で、電源投入セルフテストインターフェースが活動状態であるかどうかチェックする。電源投入セルフテストインターフェースが活動状態であるとき、競合状態機械４５０はブロック６２０に遷移し、そうでなく、電源投入セルフテストが非活動状態であるとき、競合状態機械は、アイドル状態６０２に戻る。
【００５４】
図７は、図４の読み取り状態機械４７０の動作を示す流れ図である。図７の流れ図には、読み取り状態機械４７０の可能な実現形態のアーキテクチャ、機能および動作が示されている。この図に関して、各ブロックは状態を表し、状態は、コントローラ１１０内の信号状態とデータ値の組み合わせを備える。読み取り状態機械４７０はコントローラ１１０内のハードウェア装置である。様々な状態を実施するために必要とされる機能は、指定された論理関数を実施するように構成された回路または多数の相互接続された回路を表すことを理解すべきである。
【００５５】
読み取り状態機械４７０は、リセット信号に応答して、読み取り状態機械４７０をパラメータセットが初期設定される状態７０２に誘導する。その後、読み取り状態機械４７０は、ブロック７０４で表されるアイドルモード、判断ブロック７０６および関連付けられた流れ図制御矢印に遷移する。モード入力信号が遷移すると、読み取り状態機械４７０は状態７０８に遷移し、状態標識が構成される。その後、読み取り状態機械４７０は状態７１０に遷移し、宛先、確認、コマンドおよびモードの各パラメータが構成され、読み取り結果コマンドが発行される。その後、読み取り状態機械４７０は状態７１２に遷移し、受信データが宛先レジスタの第１バイトに適用され、モード入力およびデータ受信状況信号が構成される。そして、読み取り状態機械４７０は状態７１４に遷移し、受信データが宛先レジスタの第２バイトに適用される。その後、読み取り状態機械４７０は状態７１６に遷移し、受信データが、宛先レジスタの第３バイトに適用される。そして、読み取り状態機械４７０は状態７１８に遷移し、受信データが宛先レジスタの第４バイトに適用される。そして、読み取り状態機械４７０は、ブロック７０４に戻ってアイドル状態に戻る。状態７１０から７１８は、それぞれ、読み取り状態機械４７０に受信データを段階的に処理させるのに使用される受信データ有効状況信号とモード入力信号を生成する。
【００５６】
図８は、図１のＳＢｕｓ受信器（受信器１３５、受信器１４５、受信器１５５、受信器１６５、・・・受信器１９５など）の一実施形態を示す機能ブロック図である。ＳＢｕｓ受信器は、入力または受信インターフェースと、出力または送信インターフェースからなる。これらのインターフェースは、それぞれのＳＢｕｓ部分１１７に結合されている。ＳＢｕｓ受信器は、さらに、データ制御入力とデータ監視入力からなる。ＳＢｕｓ受信器は、ＳＢｕｓ上にあるデータを絶えず監視する。アイドル状態にあり、そのＳＢｕｓ受信器に特有の指示が受け取られない間は、ＳＢｕｓ＿ｄａｔａ＿ｉｎ上のすべてのデータが、１ＳＢｕｓクロックサイクル遅延した状態で、ＳＢｕｓ＿ｄａｔａ＿ｏｕｔに渡される。
【００５７】
図８に示すように、ＳＢｕｓ受信器は、複数のＳＢｕｓリング入力を受け取る。アドレス入力信号が接続８０１に沿って受け取られ、遅延／バッファ素子８１０に印加される。クロック入力信号が接続１１９に沿って受け取られ、バッファ８２０とテスト挿入装置８３０に印加される。バッファ８２０は、ｃｌｏｃｋ＿ｏｕｔと呼ばれるクロック入力信号の増幅バージョンを生成し、これが、接続８２２を介してＳＢｕｓに沿って送られる。モード入力信号が接続８０３に沿って受け取られ、受信器状態機械８４０への第１の入力として印加される。リセット入力信号が接続８０４に沿って受け取られ、受信器状態機械８４０への第２の入力として印加される。データ入力信号が接続８０５に沿って受け取られ、受信器状態機械８４０への第３の入力として印加される。監視データ信号が接続８０６に沿って受け取られ、受信器状態機械８４０への第４の入力として印加される。テスト挿入装置８３０の出力は、第５の入力として受信器状態機械８４０に結合されている。第１から第５までの入力信号に従って、受信器状態機械は、複数の出力信号を生成する。モード出力信号が生成され、接続８４３に沿って印加される。リセット出力信号が生成され、接続８４４に沿って印加される。データ出力信号が生成され、接続８４５に沿って印加される。
【００５８】
出力信号を生成した追加の受信器状態機械８４０を使って、メモリアレイ８８０内の選択メモリアドレスにアクセスする。例えば、内部アドレス信号が生成され、接続８４６に沿って復号器８５０に送られる。復号器８５０は、内部アドレス信号を処理して信号上の選択メモリアドレスを特定し、これが接続８５２を介してメモリアレイ８８０に適用される。書き込みデータ信号が生成され、接続８４７に沿って印加される。書き込みイネーブル信号が生成され、接続８４８に沿って印加される。第１の同期回路８６０が書き込みイネーブル信号とクロック１（すなわち、コア論理クロック）を受け取る。第１の同期回路８６０は、第１のクロックストローブ信号を生成し、第１のクロックストローブ信号は、データが、ＳＢｕｓクロック信号とコア論理クロック信号の動作に従って適切な時刻にメモリアレイ８８０に書き込まれるように、接続８６２に沿って印加される。第２の同期回路８７０が、書き込みイネーブル信号とクロック２（すなわち、テストインターフェースクロック）を受け取る。第２の同期回路８７０は第２のクロックストローブ信号を生成し、データがＳＢｕｓクロック信号とテストインターフェースクロック信号とに従って適切な時刻にメモリアレイ８８０に書き込まれるように、第２のクロックストローブ信号が接続８７２に沿って印加される。
【００５９】
メモリアレイ８８０は、内部アドレス信号と、書き込みデータ信号と、第１および第２のクロックストローブ信号と、指定変更入力信号と、指定変更イネーブル信号とに応答して、ＳＢｕｓに沿って接続８８２上で適切なデータを送る。
【００６０】
図９は、図８のメモリ（ラッチ）アレイ８８０の一実施形態を示す回路図である。メモリ８８０は、接続９０２上でアドレスイネーブル信号を受け取り、接続９０４上でクロックストローブ信号を受け取り、接続８０８上で指定変更信号を受け取り、接続８０７上で指定変更イネーブル信号を受け取る。アドレスイネーブル信号とクロックストローブ信号とは、ＡＮＤゲート９１０のそれぞれの入力に印加され、ＡＮＤゲート９１０の出力は、マルチプレクサ９２０の第１の入力に結合されている。指定変更信号は、マルチプレクサ９２０の残りの入力に結合されている。マルチプレクサ９２０は、接続９２２上で、指定変更イネーブル信号に従って、ＡＮＤゲート９２０の出力または指定変更信号の１つからなるラッチイネーブル信号を送る。
【００６１】
ＳＢｕｓ受信器入力／出力（入出力）信号を以下の表９に列挙する。
【００６２】
【表９】
2008122374.tif 000011
【００６３】
図１０は、図１のＳＢｕｓ受信器（受信器１３５、受信器１４５、受信器１５５、受信器１６５、・・・受信器１９５など）の一実施例の動作を示す流れ図である。図１０の流れ図には、ＳＢｕｓ受信器の可能な実現形態のアーキテクチャと機能と動作とが示されている。この図に関して、各ブロックは状態を表し、状態は、ＳＢｕｓ受信器内の信号状態とデータ値の組み合わせを備える。ＳＢｕｓ受信器（受信器１３５、受信器１４５、受信器１５５、受信器１６５、・・・受信器１９５など）は、ＡＳＩＣ１００上のハードウェア装置である。様々な状態を実施するために必要とされる機能は、指定された論理関数を実施するように構成された回路または多数の相互接続された回路を表すことを理解すべきである。
【００６４】
パケット指示の開始が受け取られると（すなわち、ＳＢｕｓモード入力が論理ハイに遷移すると）、ＳＢｕｓ受信器は、図１０の受信器状態図１０００に従ってパケットを処理する。ＳＢｕｓ受信器は、状態１００２ではアイドルである。ＳＢｕｓモード入力信号が遷移し、無視ブロードキャスト状態が確認されると、ＳＢｕｓ受信器は状態１００４に遷移し、ＳＢｕｓデータ入力信号を使って受信器内の内部アドレスを設定する。その後、状態１００６で、宛先とコマンドの種類が決定される。コマンドの種類が読み取りコマンドであるとき、処理は状態１００８に進む。コマンドの種類が書き込みコマンドであるとき、処理は状態１０１６に進む。コマンドの種類がリセットコマンドであるとき、処理は状態１０１８に進む。
【００６５】
状態１００８で、ＳＢｕｓアドレスが決定される。状態１０１０で、受信器メモリ（すなわちｉｎｔ＿ａｄｄｒｅｓｓ）が決定される。状態１０１２で、受信器は、受信器のデータ出力ポートに状態情報を転送する。状態１０１４で、受信器は、選択されたデータを受信器のデータ出力ポートに転送する。その後、受信器は、アイドル状態１００２に戻る。そうでなく、コマンドの種類が書き込みコマンドであるとき、受信器は、書き込みイネーブル信号を設定し、ＳＢｕｓデータを、状態１０１６で指示された受信器内の指定されたメモリ位置に送ってから、アイドル状態１００２に戻る。コマンドの種類がリセットコマンドであるとき、受信器は、状態１０１８で指示された多数のパラメータを設定してから、アイドル状態１００２に戻る。
【００６６】
図１１は、図１のＳＢｕｓ受信器（受信器１３５、受信器１４５、受信器１５５、受信器１６５、・・・受信器１９５など）の一実施例の動作を示すタイミング図である。ＳＢｕｓクロック１１００とＳＢｕｓモード入力１１２０とＳＢｕｓモード出力１１２２との各信号トレースは、これらの信号が、受信器の動作とタイミングを制御することを示す。第１のモードまたは入力動作モードでは、ＳＢｕｓデータ入力信号１１３０を使用し、ＳＢｕｓモード入力１１２０に応答して、受信器アドレス１１３２と、内部メモリアドレス１１３４と、コマンド識別子１１３６と、データ１１３８とが送られる。受信器アドレス１１３２は、ＳＢｕｓモード１１２０が論理ハイに遷移する際に、データ入力ポート上で受け取られる第１のバイトで送られる。その後、内部メモリアドレス１１３４が、データ入力ポート上の第２のバイトで送られ、コマンド識別子１１３６が第３のバイトで送られ、データ１１３８がデータ入力ポート上の第４のバイトで送られる。
【００６７】
アドレス指定書込みと非アドレス指定コマンドを示す第２のモードまたは出力動作モードでは、ＳＢｕｓデータ出力信号１１４０を使って、ドントケア・バイト１１４１、ＳＢｕｓアドレス１１４３、内部（すなわちメモリ）アドレス１１４５、コマンド識別子１１４７およびデータ１１４９が送られる。ＳＢｕｓモード出力信号１１２２が２クロックサイクルにわたって論理ハイに遷移すると、ＳＢｕｓデータ出力ポートは、ドントケア・バイト１１４１によってクリアされ、第２バイトでＳＢｕｓアドレスを送るように構成される。ＳＢｕｓモード出力信号が論理ローに戻った後で、ＳＢｕｓデータ出力ポートは、ＳＢｕｓデータ出力ポート上の、第３バイト、第４バイトおよび第５バイトで、内部アドレス１１４５、コマンド識別子１１４７およびデータ１１４９を転送する。
【００６８】
受信器メモリからの情報のアドレス指定読み取りを示す第３の動作モードでは、ＳＢｕｓデータ出力信号１１５０を使って、ドントケア・バイト１１５１、ＳＢｕｓアドレス１１５２、内部（すなわちメモリ）アドレス１１５３、コマンド識別子１１５４、受信器アドレス１１５５、内部メモリアドレス１１５６、変更コマンド識別子１１５７および受信器データ１１５８が送られる。ＳＢｕｓモード出力信号１１２２’が２クロックサイクルにわたって論理ハイに遷移すると、ＳＢｕｓデータ出力ポートは、ドントケア・バイト１１５１によってクリアされ、第２バイトでＳＢｕｓアドレスを送るように構成される。ＳＢｕｓモード出力信号が論理ローに戻った後で、ＳＢｕｓデータ出力ポートは、ＳＢｕｓデータ出力ポート上の第３バイトと第４バイトとで、内部アドレス１１５３とコマンド識別子１１５４とを転送する。その後、ＳＢｕｓモード出力信号が１クロックサイクルにわたって論理ハイに遷移し、これが、ＳＢｕｓデータ出力ポート上の第５バイトから第８バイトで、受信器アドレス１１５５、内部メモリアドレス１１５６、変更コマンド識別子１１５７および受信器データ１１５８を受信器に送るよう指図する。
【００６９】
コマンド発行状態機械４６０（図４）は、コマンドの間にＮ個のＳＢｕｓクロックサイクルを挟んで２つのコマンドを発行する。これらのコマンドは、コア論理インターフェース１１３とＴＡＰインターフェース１１５からの要求を処理するために使用されるのと同じハンドシェークプロセスに従う。したがって、コマンドが発行される厳密なタイミングには若干の変動が生じる。コマンド発行状態機械４６０は、ビット誤り率テストを行うときに役立つ。ビット誤り率テスト時には、誤り率カウンタが有効化され、所望の期間の後、誤り率カウンタは無効化される。遅延期間は、ＳＢｕｓクロック周波数を調整し、有効化コマンドと無効化コマンドの発行の間待機するための多数のクロックサイクルを送ることによって構成可能である。２つのコマンドが発行されると、構成済みのインターフェース（コア論理インターフェース１１３、ＴＡＰインターフェース１１５など）は、コマンド発行状態機械４６０が完了したことを示す結果コードと共にデータパケットを受け取る。
【００７０】
また、コマンド発行状態機械４６０は、ＡＳＩＣ１００上の機能をテストする一連の事前プログラムコマンドを実行するためにも使用されうる。ＳＢｕｓコントローラメモリアドレスを使って、以下の表１０に列挙するように、コントローラの動作が管理され、指図され得る。
【００７１】
【表１０】
2008122374.tif 000012
【００７２】
図１２は、コア論理にＳＢｕｓ機能を提供する方法１２００の一実施形態を示す流れ図である。方法１２００は、ブロック１２０２から開始し、ここでＡＳＩＣ設計チームが、専用多導体インターフェースを使ってＳＢｕｓコントローラにコア論理を結合する。これとほぼ同時に、ＡＳＩＣテストチームが、多導体インターフェースを介して印加されると所定のやり方で応答するようＳＢｕｓコントローラに指図する信号セットを規定する。その後、ブロック１２０６で示すように、ＡＳＩＣテストチームは、この信号セットを、コア論理のユーザに送る。図１２の流れ図に示す残りの機能は、これらの機能が所望によりさらに実行され得ることを示すために破線のブロックで表されている。例えば、ブロック１２０８では、ＡＳＩＣ上でサポートされる指定の機能をテストしようとする当事者が、コア論理の外部の回路に実装された機能を実行するように構成されたコマンドセットを送る。別の実施例として、ブロック１２１０では、ＡＳＩＣ上でサポートされる指定の機能をテストしようとする当事者が、ＡＳＩＣにとって外部の装置からコマンドセットを転送するために、ＩＥＥＥ１１４９．１準拠のインターフェースを介してＳＢｕｓコントローラを結合する。
【００７３】
図１３は、ＡＳＩＣをテストする方法１３００の一実施形態を示す流れ図である。方法１３００は、ブロック１３０２から開始し、ここで、ＡＳＩＣ上に実装された機能を実行するように構成されたコマンドセットが受け取られる。その後、ブロック１３０４に示すように、ＡＳＩＣ上でサポートされる指定の機能をテストしようとする当事者が、多導体インターフェースを介して印加されると、ＳＢｕｓコントローラに、所定のやり方で応答してＡＳＩＣを初期設定し、ＡＳＩＣから情報を抽出するよう指図する信号セットを使って、選択コマンドの転送を指図する。図１３の流れ図に示す残りの機能は、一方または他方が指図され得ることを示すために破線のブロックで表されている。例えば、ブロック１３０６では、ＡＳＩＣ上でサポートされる指定の機能をテストしようとする当事者が、ＩＥＥＥ１１４９．１準拠のインターフェースを使った選択コマンドの実行に対応する結果の転送を指図する。別の実施例として、ブロック１３０８では、ＡＳＩＣ上でサポートされる指定の機能をテストしようとする当事者が、ＡＳＩＣ上のコア論理とやりとりする、コントローラと多導体インターフェースを介した結果の転送を指図する。
【００７４】
ＳＢｕｓに沿ったコントローラ１１０と受信器によって処理され得る様々なコマンドまたはコマンドセットが、任意のコンピュータ関連のシステムまたは方法によって、またはそれらと接続して使用するための任意のコンピュータに読み取り可能な媒体上に記録され得ることに留意すべきである。本明細書の状況では、「コンピュータに読み取り可能な媒体」とは、テスト命令実行システム、機器、または装置によって、またはこれらと接続して使用するためのプログラムを、記録し、伝達し、伝搬し、または搬送することのできる任意の手段とすることができる。コンピュータに読み取り可能な媒体は、これに限らないが例えば、電子、磁気、光学、電磁、赤外線、または半導体のシステム、機器、装置、または伝搬媒体とすることができる。コンピュータに読み取り可能な媒体のより具体的な例（非網羅的リスト）には、１つ以上の配線を有する電気接続（電子）、携帯用コンピュータディスケット（磁気）、ＲＡＭ（電子）、ＲＯＭ（電子）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）またはフラッシュメモリ（電子）、光ファイバ（光学）、およびＣＤ−ＲＯＭ（光学）が含まれる。コンピュータに読み取り可能な媒体は、その上にプログラムが印刷されている紙またはその他の適切な媒体とすることさえもできることに留意されたい。なぜならば、プログラムは、例えば、紙またはその他の媒体の光学式走査によって電子的に取り込み、そして、必要に応じて、適切なやり方でコンパイルし、解釈し、または別の方法で処理して、コンピュータメモリに記録することができるからである。
【００７５】
以上の記述は、例示と説明のために示したものである。この記述では、網羅的なものとすることも、特許請求の範囲を開示の形態と全く同一のものだけに限定することも意図していない。上記の教示に照らして変形例または変形形態が可能である。しかしながら、前述の実施形態は、当業者が、本発明のＡＳＩＣ、ＳＢｕｓコントローラインターフェース、ＡＳＩＣコア論理にＳＢｕｓ機能を提供する方法、およびＡＳＩＣをテストする方法の様々な実施形態を利用可能にするために選択されて記述されたものである。このようなすべての変形例および変形形態は、公正かつ法的に付与される権利の範囲に従って解釈されるときの添付の特許請求の範囲内のものである。
【図面の簡単な説明】
【００７６】
【図１】特定用途向け集積回路の一実施形態を示す機能ブロック図である。
【図２】図１のＳＢｕｓに適用されることができるＳＢｕｓ要求のやりとりを示すタイミング図である。
【図３】図１のＳＢｕｓ上で観測されることができるＳＢｕｓ結果のやりとりを示すタイミング図である。
【図４】図１のコントローラの一実施形態を示す機能ブロック図である。
【図５】図４の実行状態機械の動作を示す流れ図である。
【図６】図４の競合状態機械の動作を示す流れ図である。
【図７】図４の読み取り状態機械の動作を示す流れ図である。
【図８】図１のＳＢｕｓ受信器の一実施形態を示す機能ブロック図である。
【図９】図８のラッチアレイの一実施形態を示す回路図である。
【図１０】図１のＳＢｕｓ受信器の一実施例の動作を示す流れ図である。
【図１１】図１のＳＢｕｓ受信器の一実施例の動作を示すタイミング図である。
【図１２】コア論理にＳＢｕｓ機能を提供する方法の一実施形態を示す流れ図である。
【図１３】ＡＳＩＣをテストする方法の一実施形態を示す流れ図である。
【図１】
2008122374.tif 000013
【図２】
2008122374.tif 000014
【図３】
2008122374.tif 000015
【図４】
2008122374.tif 000016
【図５】
2008122374.tif 000017
【図６】
2008122374.tif 000018
【図７】
2008122374.tif 000019
【図８】
2008122374.tif 000020
【図９】
2008122374.tif 000021
【図１０】
2008122374.tif 000022
【図１１】
2008122374.tif 000023
【図１２】
2008122374.tif 000024
【図１３】
2008122374.tif 000025
【外国語明細書】
2008122374.tif 000026
2008122374.tif 000027
2008122374.tif 000028
2008122374.tif 000029
2008122374.tif 000030
2008122374.tif 000031
2008122374.tif 000032
2008122374.tif 000033
2008122374.tif 000034
2008122374.tif 000035
2008122374.tif 000036
2008122374.tif 000037
2008122374.tif 000038
2008122374.tif 000039
2008122374.tif 000040
2008122374.tif 000041
2008122374.tif 000042
2008122374.tif 000043
2008122374.tif 000044
2008122374.tif 000045
2008122374.tif 000046
2008122374.tif 000047
2008122374.tif 000048
2008122374.tif 000049
2008122374.tif 000050
2008122374.tif 000051
2008122374.tif 000052
2008122374.tif 000053
2008122374.tif 000054
2008122374.tif 000055
2008122374.tif 000056
2008122374.tif 000057
2008122374.tif 000058
2008122374.tif 000059
2008122374.tif 000060
2008122374.tif 000061
2008122374.tif 000062
2008122374.tif 000063
2008122374.tif 000064
2008122374.tif 000065
2008122374.tif 000066
2008122374.tif 000067
2008122374.tif 000068