(57)【要約】【解決手段】複数のリングオシレータのテストを行うための方法及び装置を開示する。一実施形態において、装置は、少なくとも１つのリングオシレータ構造を備え、リングオシレータ構造は、直列に接続された奇数個のインバータのインバータチェーンを有し、発振出力を生成するよう動作するリングオシレータと、リングオシレータに対して、観測可能なチェーン入力又はテスト入力のいずれかを与え、リングオシレータからのフィードバックとして発振出力を受信するように連結されたテスト構造と、を有する。【選択図】図４
2015534673.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのリングオシレータ構造を備え、
前記リングオシレータ構造は、
直列に接続された奇数個のインバータのインバータチェーンを有し、発振出力を生成するよう動作するリングオシレータと、
前記リングオシレータに対して観測可能なチェーン入力又はテスト入力のいずれかを与え、前記リングオシレータからのフィードバックとして前記発振出力を受信するように連結されたテスト構造と、
を有する装置。
【請求項２】
前記テスト構造は、前記リングオシレータの構造的縮退テスト及び機能テストのうちの１つ以上を可能にするため、前記リングオシレータをテスト可能な構造に再構成するように動作する、請求項１に記載の装置。
【請求項３】
前記テスト構造は、前記リングオシレータが特定されたジッター制限内で目的の発振周波数を生成できるか否かを確認するように動作する、請求項１に記載の装置。
【請求項４】
前記少なくとも１つのリングオシレータ構造は、直列チェーンに接続されたリングオシレータ構造グループを備え、
前記直列チェーンに接続された前記リングオシレータのテスト構造のうちの最後のテスト構造のテスト出力は、前記テスト入力と共に使用するために、前記チェーンの最初のリングオシレータ構造へフィードバックされる、請求項１に記載の装置。
【請求項５】
フィードバック有効化信号に基づいて前記テスト出力をフィードバックするために、フィードバック経路を条件付きでアクティベートするゲートをさらに備える、請求項４に記載の装置。
【請求項６】
前記テスト入力と、前記最後のテスト構造からフィードバックされた前記テスト出力との XOR をとる XOR ゲートをさらに備える、請求項４に記載の装置。
【請求項７】
テストのため、１つ又は複数のリングオシレータの各々の有効化信号をアサートすることによって前記１つ又は複数のリングオシレータを選択し、その１つ又は複数のリングオシレータは、当該装置内のすべてのリングオシレータよりも少ない、請求項４に記載の装置。
【請求項８】
前記直列チェーンは奇数個のインバータを含む、請求項４に記載の装置。
【請求項９】
一対の入力及び出力を有する AND ゲートをさらに備え、その出力は前記リングオシレータの入力に結合される、請求項１に記載の装置。
【請求項１０】
前記テスト構造は、複数の制御信号に応答可能である、請求項１に記載の装置。
【請求項１１】
前記制御信号のうちの少なくとも１つは、当該装置内部のレジスタからのテスト制御信号である、請求項１に記載の装置。
【請求項１２】
前記制御信号のうちの少なくとも１つは、テスト中の前記リングオシレータが機能モードであるか又はテストモードであるかを示すリングオシレータのテストモード信号である、請求項１に記載の装置。
【請求項１３】
請求項１に記載の装置を備える、HDCP における秘密鍵の生成に用いられる乱数発生器。
【請求項１４】
複数のリングオシレータ構造を備え、各リングオシレータ構造は、
直列に接続されたインバータのインバータチェーンを有し、第１発振出力を生成するよう動作するリングオシレータと、
前記リングオシレータに対して観測可能なチェーン入力又はテスト入力のいずれかを与え、フィードバックとして第２発振出力を受信するように連結された、リングオシレータのテスト構造とを有し、
前記リングオシレータのテスト構造は、前記リングオシレータの構造縮退テスト及び機能テストのうちの１つ以上によって、前記リングオシレータが目的の発振周波数を生成することができるか否かを確認するため、前記リングオシレータをテスト可能な構造に再構成するように動作し、
前記複数のリングオシレータ構造は、直列チェーンにおいて、その直列チェーン内の前記リングオシレータのテスト構造のうちの最後のテスト構造のテスト出力に接続され、
そのテスト出力は、テスト入力と共に使用するため、その直列チェーンの最初のリングオシレータ構造へフィードバックされる、装置。
【請求項１５】
フィードバック有効化信号に基づいて前記テスト出力をフィードバックするために、フィードバック経路を条件付きでアクティベートするゲートをさらに備える、請求項１４に記載の装置。
【請求項１６】
前記テスト入力と、前記リングオシレータテスト構造のうちの前記最後のテスト構造からフィードバックされた前記テスト出力との XOR をとる XOR ゲートをさらに備える、請求項１４に記載の装置。
【請求項１７】
テストのため、１つ又は複数のリングオシレータの各々の有効化信号をアサートすることによって前記１つ又は複数のリングオシレータを選択し、その１つ又は複数のリングオシレータは、当該装置内のすべてのリングオシレータより少ない、請求項１４に記載の装置。
【請求項１８】
前記直列チェーンは奇数個のインバータを含む、請求項１４に記載の装置。
【請求項１９】
構造縮退テストのため、定常状態における前記複数のリングオシレータのうちの少なくとも１つのフィードバックを無効化するように結合されたゲート論理をさらに備える請求項１４に記載の装置。
【請求項２０】
請求項１４に記載の装置を備える、暗号生成において秘密鍵の生成に用いられる乱数発生器。
【請求項２１】
直列チェーン内に連結された、テスト可能な複数のリングオシレータを備え、
前記テスト可能な複数のリングオシレータは各々、テストモードである間、隣接するテスト可能なリングオシレータのインバータチェーンに直列に連結されるインバータチェーンを有し、
前記直列チェーン内の最初のテスト可能なリングオシレータは、前記テスト可能な複数のリングオシレータのうちの２つ以上において障害を発生させうるテストパターンを受信する、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、リングオシレータ分野に関する。特に、例えば High-Definition Content Protection（HDCP）における秘密鍵の生成のための乱数発生器において採用することができる複数リングを備えたオシレータのテストに関する。
【背景技術】
【０００２】
データ送信のセキュリティを確保するため、暗号生成においてはランダム性が重要な役割を担っている。ハードウエアでランダム性を実現するために、フリップフロップのメタスタビリティ又はクロックジッターがランダム性のソースとして使用される。多くの実装には、リングオシレータがクロックとして使用されている。要求されるレベルのランダム性を維持するために、多数のリングオシレータが採用されることも多い。安全にデータ送信を行うため、秘密鍵の生成を行う HDCP2.0 では 256 個のリングオシレータが使用される。
【０００３】
図１は、HDCP におけるデータ暗号化を簡略化した図である。図１を参照すると、秘密鍵１０１は、真性乱数発生器（True Random Generator: TRNG）１０２から生成された乱数からなる。この乱数は、ソース及びシンクの双方にて秘密鍵を計算するのに使用される。まず、ソースから乱数を生成し、秘密鍵が計算される。同時に、シンクが自身の秘密鍵を計算できるように、その乱数をシンクへ送信してもよい。ソースは、XOR オペレーション１２０を通じて秘密鍵を使用することにより、ビデオストリーム、ビデオデータ１１０を暗号化し、暗号化ビデオストリーム１１１をシンクへと送信する。シンクは、受信した暗号化ビデオストリーム１１１を復号するため、シンク自身の秘密鍵を使用する。
【０００４】
TRNG １０２は、乱数を生成するために多数のリングオシレータを用いる。図２は、TRNG の一例を示している。図２を参照すると、リングオシレータ（RO）２０１1-N は、図示の通り、組み合わせフィードバックを通じて直列に接続される奇数個のインバータ２１０である。リングオシレータ２０１1-N の出力は、XOR ロジック２０２を使用して組み合わせられ、XOR の出力は、フリップフロップ２０３へと接続される。乱数を得るため、XOR ロジック２０２の出力ストリームを得るように、サンプリングクロック FS が提供される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リングオシレータ２０１1-N における固有の組み合わせフィードバックのため、経済的な構造テスト(縮退テストなど）を用いた各リングオシレータ２０１1-N のテストは困難となり得る。リングオシレータ２０１1-N は、同時に、且つ、分離して機能的にテストされることが多い。このような従来のリングオシレータのテストは、テスタで直接リングオシレータの出力を観測したり、オンチップカウンタを利用したりすることで、テスト対象のリングオシレータによる発振を検出することを含み得る。テスタでリングオシレータの出力をテストすることは、リングオシレータが非同期的であること及びテストアクセスが非効率的であるために、コストがかかってしまうこともある。オンチップカウンタを利用する方法は、個々のリングオシレータのテストのセットアップのため、ハードウエア及びテスト時間のオーバーヘッドの影響を受けることもある。
【０００６】
したがって、リングオシレータの数が多く、さらに増加していく場合、機能テストのコストは相当なものになり得る。特に、市販の IC の価格が継続して圧力下にあるが、そのテストコストは増えないにしても変わらないという場合に、問題のサイズ（すなわち採用されるリングオシレータの数）が増加してもコスト増を招くことのない低コストのテストソリューションを提供することが重要である。
【課題を解決するための手段】
【０００７】
複数のリングオシレータのテストを行うための方法及び装置を開示する。一実施形態に係る装置は、少なくとも１つのリングオシレータ構造を備える。そのリングオシレータ構造は、直列に接続された奇数個のインバータのインバータチェーンを有し、発振出力を生成するように動作するリングオシレータと、リングオシレータに対して観測可能なチェーン入力又はテスト入力のいずれかを与え、リングオシレータによる発振出力をフィードバックとして受信するように連結されたテスト構造と、を有する。
【図面の簡単な説明】
【０００８】
本発明は、その種々の実施形態についての以下の詳細な説明及び添付の図面からより深く理解されるであろうが、本発明を特定の実施形態に限定して理解してはならず、以下の詳細な説明及び添付の図面は、本発明の例示及びその理解のみを目的としている。
【０００９】
【図１】HDCP におけるデータ暗号化を示す。
【図２】真性乱数発生器（TRNG）の一例を示す。
【図３】従来のリングオシレータの機能図である。
【図４】リングオシレータのテスト構造（TS）を備えた、一実施形態に係るリングオシレータ装置を示す。
【図５】一実施形態に係るリングオシレータテスト構造の挙動を示す。
【図６Ａ】リングオシレータ装置の一部として用いられる、一実施形態に係るテスト構造を示す。
【図６Ｂ】他の実施形態に係るテスト構造を示す。
【図７】一実施形態に係るテスト構造のセットアップ時間及び待機時間を示す。
【図８】一実施形態に係るテスト構造の非同期 FSM 記述テストシーケンスを示す。
【図９】一実施形態に係るリングオシレータテストのテストアクセスを示す。
【図１０】一実施形態に係るリングオシレータの階層的テスト構造を示す。
【図１１】テスト可能なリングオシレータ（TRO）の定常状態挙動モデルを示す。
【発明を実施するための形態】
【００１０】
ビデオの暗号化及び復号のために HDCP（High-Definition Content Protection）にて秘密鍵生成を行う真性乱数発生器において採用される、多数のリングオシレータのテスト方式を開示する。一実施形態では、本開示のオンチップリングオシレータのテストソリューションを使用することにより、縮退構造テスト又は提示の擬似機能テストで、すべてのリングオシレータの発振を即座にテストすることができる。一実施形態では、テスト構造はモジュラーであり、テスト構造の集合が接続されると、リングオシレータの並行テスト、特性評価、及びシリコンデバッグのためのテストアクセスを構築する。本明細書に記載のテストソリューションの利点は、詳細な性能仕様テストに先立って欠陥のある部分を迅速に判定することにより、全体的な製造テスト時間を短縮できることにある。
【００１１】
一実施形態では、前述のリングオシレータのテスト方式により、構造テスト中に他のシステムロジックで多数のリングオシレータのテストを行うことで、そのテストコストをなくすことができるか、又は、多数のリングオシレータを分離してテストを行う場合には、そのテストコストをわずかなレベル（すなわち、リングオシレータ内のインバータチェーンの遅延）まで減らすことができる。一実施形態において、リングオシレータのテスト方式は、既存のリングオシレータを、本明細書中で「リングオシレータのテスト構造」と称される、よりテストに適した形態へと変形することで目的を達成する。リングオシレータのテスト構造により、リングオシレータを、リングオシレータの構造縮退テスト及び並行機能テストを可能にする、テスト可能な構造へと再構成することができる。本開示の方式により、リングオシレータの数の増加に対して、テスト時間の増加を僅かなレベルに低減することができる。
【００１２】
以下の説明において、本発明をより詳細に説明するため、数多くの詳細を述べる。しかしながら当業者にとって、これらの特定の詳細を伴うことなく、本発明を実践してもよいことは明らかであろう。他の例においては、本発明をわかりにくくすることを避けるため、既知の構造及び装置を、詳細に示す代わりにブロック図の形態で示す。
【００１３】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットにより、動作アルゴリズム及びシンボル表現として表される。これらのアルゴリズムの記述及び表現は、データ処理分野の当業者が、自らの仕事の内容を他の当業者に効果的に伝達する手段である。アルゴリズムはここでも、且つ、通常の場合でも、所望の結果を導く、自己矛盾のないステップのシーケンスと考えられる。これらのステップは、物理量の物理的操作を要求するものである。通常、必須ではないが、これらの物理量は、記憶、転送、結合、比較、又は操作の可能な電気信号又は磁気信号の形態を採る。主に一般的利用を行うという理由で、これらの信号をビット、値、要素、符号、文字、用語、数等として言及することが簡便であるということが分かっている。
【００１４】
しかしながら、これらすべての用語及び類似の用語は、適切な物理量と関連付けられなければならず、単にこれらの量に適用するのに簡便なラベルであるということに思い至るはずである。以下の議論から明らかであるように、別段の指摘のない限り、説明全体に亘って、「処理する」「演算する」「計算する」「判定する」「表示する」等の用語を用いた議論は、コンピュータシステムのレジスタ及びメモリ内の物理（電子）量として表現されたデータを、コンピュータシステムのメモリ、レジスタ、又はその他の情報記憶装置、情報送信装置、又は情報表示装置内の物理量として同様に表現される他のデータへと操作及び変形するコンピュータシステム又は類似の電子演算装置のアクション及びプロセスを言及していると理解される。
【００１５】
本発明はまた、本明細書に記載の動作を実施する装置にも係る。この装置は、要求される目的に合わせて特別に構築されてもよいし、コンピュータに記憶されたコンピュータプログラムによって選択的にアクティベート又は再構築される汎用コンピュータからなってもよい。このようなコンピュータプログラムは、フロッピー（登録商標）ディスク、光ディスク、CD-ROM、及び光磁気ディスクを含むあらゆるタイプのディスクや、リードオンリーメモリ（ROM）、ランダムアクセスメモリ（RAM）、EPROM、EEPROM、磁気カード、光カード、又は電子的指示を記憶するのに好適なあらゆるタイプの媒体等のコンピュータ読取可能な記憶媒体に記憶されてもよいが、これに限定されるものでなく、これらは各々、コンピュータシステムバスに連結される。
【００１６】
本明細書に記載のアルゴリズム及び表示は、本質的に、いかなる特定のコンピュータ又はその他の装置に関するものでない。本明細書の教示に応じて、種々の汎用システムが使用されてもよく、要求される方法ステップの実施に特化された装置を構築することが簡便であることもある。これら種々のシステムに要求される構造を、以下の説明によって明らかにするものとする。また本発明は、特定のプログラム言語を参照して説明するものでない。本明細書に記載の本発明の教示を実施するために、種々のプログラム言語が使用されてもよいことが理解されるであろう。
【００１７】
機械読取可能な媒体には、機械（例えば、コンピュータ）によって読み取り可能な形態の情報を記憶又は送信するあらゆる機構が含まれてもよい。例えば、機械読取可能な媒体には、リードオンリーメモリ（「ROM」）、ランダムアクセスメモリ（「RAM」）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置等が含まれる。
【００１８】
一実施形態において、リングオシレータのアーキテクチャは少なくとも１つのリングオシレータ構造を有し、各リングオシレータ構造はリングオシレータとテスト構造とを有する。リングオシレータは、直列に接続された奇数個のインバータのインバータチェーンを有し、発振出力を生成するよう動作可能である。テスト構造は、リングオシレータと連結され、リングオシレータに観測可能な入力又はテスト入力のいずれかを提供し、リングオシレータからのフィードバックとして発振出力を受信する。一実施形態において、テスト構造は、リングオシレータの構造縮退テスト及び機能テストのうちの１つ以上によってリングオシレータが特定のジッター制限内で目的の発振周波数を生成することができるか否かを確認できるように、リングオシレータをテスト可能な構造に再構成するよう動作可能である。一実施形態において、リングオシレータのアーキテクチャはさらに、一対の入力及び出力を有する AND ゲートを備え、この出力はリングオシレータの入力に結合される。
【００１９】
一実施形態において、テスト構造は、複数の制御信号に応答することができる。一実施形態において、制御信号のうちの１つには、リングオシレータのアーキテクチャ内のレジスタから送られるテスト制御信号が含まれる。一実施形態において、制御信号のうちの１つには、テスト対象のリングオシレータが機能モードであるか、又は、テストモードであるかを示すリングオシレータテストモード信号が含まれる。
【００２０】
一実施形態において、各リングオシレータ構造は、直列チェーンに接続されたリングオシレータ構造のグループを有する。直列チェーン内のリングオシレータのテスト構造のうちの最後のテスト構造のテスト出力は、テスト入力とともに使用されるべく、そのチェーン内の最初のリングオシレータ構造へフィードバックされる。一実施形態において、直列チェーンは、奇数個のインバータを含む。一実施形態において、各リングオシレータ構造はさらにゲートを備える。そのゲートは、テスト出力をフィードバックするためのフィードバック経路を、フィードバック有効化信号に基づき条件付きでアクティベートする。一実施形態において、各リングオシレータ構造はさらに、テスト入力により、テスト構造のうちの最後のテスト構造からフィードバックされたテスト出力の XOR をとるための XOR ゲートを備える。一実施形態において、テスト対象の各リングオシレータの有効化信号をアサートすることにより、テストのために１つ又は複数のリングオシレータ（リングオシレータの全数よりは少ない数のオシレータ）を選択する。
【００２１】
図３は、一実施形態に係るリングオシレータを示す。図３を参照すると、リングオシレータの機能は、osc_out ３１１にて振動出力を生成することである。振動出力（osc_out ３１１）は、オンチップ回路にクロックを提供するのに使用され、暗号化及び復号のための乱数生成において利用することができる。図３のリングオシレータについては、リングオシレータの機能図を示している。一実施形態において、リングオシレータは、アナログ回路において実装される。他の実施形態において、リングオシレータは、デジタル回路を用いて実装される。リングオシレータは、機能的には、組み合わせループバックが AND ゲート３００を介して有効化信号３１０によって有効化される、奇数個（2N+1）のインバータとして見ることができる。有効化信号３１０が１である場合、リングオシレータは、osc_out ３１１にて振動出力を生成することができる。そうでなければ、その出力は、例えばosc_out ３１１が ~Enable である論理状態に固定されうる（~の符号は論理否定を表す）。図３に示すリングオシレータの挙動は、「持続的に osc_out = Enable が成り立つか？（~osc_out: 1）」とまとめることができる。有効化信号３１０が０である場合、反転の数が奇数であるため、osc_out ３１１は１となる。そうでなければ、osc_out ３１１にて振動出力を生成するため、osc_out ３１１を継続的に補完することができる。
【００２２】
テストの制約及び要求は、適用ごとに異なり得るため、各適用毎にテストでの関心の対象は異なり得る。例えば、暗号生成において利用される多数のリングオシレータをテストするために、経済的な観点からは、振動出力を生成する能力を確認することが、詳細な性能解析を行うことよりも重要となりうる。リングオシレータが発振を行うことができる限り、乱数を生成するためのランダム性のソースとして動作できる。したがって、例えば、乱数生成において使用されるリングオシレータをテストする際、詳細な性能仕様のテストよりも、発振機能が優先してターゲットになりうる。しかしながら、必要に応じて、基本的機能をテストした後に、詳細な性能仕様テストを行うこともできる。
【００２３】
本開示のリングオシレータ方式により、性能テストを行うためのテストアクセスを提供することができる。性能仕様テストは、特定のジッター制限内に振動出力の目標周波数を生成することができるか否かを確認するものである。リングオシレータの基本機能テストは、テストのクオリティ及びコストの面で有利であることが分かれば、実用上の速度で実施される必要はなく、それよりも低速で実施されてもよい。性能仕様とは異なるレートで機能テストが実施される場合、このテストは擬似機能テストと称される。種々の周波数で擬似機能テストを達成するため、テスト技術者によってリングオシレータの期間を制御できなければならないこともある。
【００２４】
一実施形態において、擬似機能テストは、リングオシレータに組み込まれたテスト制御機構によって実現される。テストが行われる間、テスト制御機構は、リングオシレータの周波数がメインの入力によって制御させるようにする。提供されるテスト制御を使用して、リングオシレータは、場合によってはその仕様周波数を下回る又は上回る任意の許容可能な周波数で動作させられる。この特徴は、リングオシレータの基本機能をテストする際に有用であり、かつリングオシレータの構造テストを実施する際にも有用でありうる。
【００２５】
通常、機能テストには故障モデルが含まれない。故障モデルは、物理的欠陥の論理的表現と見ることができる。物理的欠陥の挙動をモデル化するために利用することができる、異なる複数の故障モデルがある。故障モデルは、基礎とするその故障モデルによって与えられるレベルの抽象度で欠陥挙動の理由を決定するために利用できる。想定される故障モデルの１つに縮退故障モデルがある。縮退故障モデルは、電力 VDD（縮退論理値１（SA-１）としてモデル化される）及び接地 GND（SA-0 としてモデル化される）に短絡した結果による物理的欠陥を表すことができる。この故障モデルにおいて、SA-0 故障及びSA-1 故障はゲートの各ポートで想定される。
【００２６】
以下、一実施形態に係るリングオシレータ（RO）のテスト構造を説明する。階層的リングオシレータのテスト構造の構築に加え、RO テスト構造からの構築テストアクセスも検討する。一実施形態において、RO テスト構造を直列に接続することにより、テストアクセスを形成する。一実施形態において、RO チェーンの入力からより大きな RO を形成する出力へと直列に接続を行うことによって、テストアクセスから階層的 RO を構築する。一実施形態において、階層的 RO には、RO チェーンに含まれるすべてのリングオシレータが含まれる。階層的 RO は、個々の RO をテストするのと同一の方法でテストすることができ、全遅延欠陥を検出するのに使用することができる。その後、以下の説明において、擬似機能テストを検討し、構造テストを説明する。双方のテストは、本開示のテストアクセスを通じて実施される。
一実施形態に係る提案するリングオシレータのテスト構造
【００２７】
テスト中、リングオシレータの非同期な挙動を制御するため、リングオシレータの出力をテスト入力の制御下で変更できるよう、テスト点をリングオシレータ内に組み込むことができる。これにより、リングオシレータの周波数をテスト入力によって制御できる。
【００２８】
図４は、一実施形態に係る RO テスト構造である。RO テスト構造は、リングオシレータの任意の場所に配置することができる。図４を参照すると、RO テスト構造は、AND ゲート４０１と、インバータチェーン４０２と、RO テスト構造４０３とを備える。有効化信号４１０は、AND ゲート４０１の一方の入力と、RO テスト構造４０３の入力とに結合される。AND ゲート４０１の他方の入力は、RO テスト構造４０３から出力された osc_in ４１１と結合される。AND ゲート４０１の出力は、インバータチェーン４０２の入力に結合される。一実施形態において、インバータチェーン４０２は、奇数個のインバータ（例えば、2N+1 個のインバータ）を含む。インバータチェーン４０２の出力（すなわち RO の出力）は osc_out ４１２であり、これも RO テスト構造４０３の osc_out 入力４２７に結合される。
【００２９】
osc_out ４１２は、RO テスト構造４０３を介して、AND ゲート４０１の入力を通じて osc_in ４１１に結合することができる。一実施形態において、初期化時に、osc_in ４１１を論理値１に再設定し、さらに非制御論理値を AND ゲート４０１に提供することで、有効化信号４１０を osc_out ４１２で観測することができる。
【００３０】
本開示のテスト可能なオシレータは、リングオシレータテストを構成するため、グローバルなテスト制御信号を組み込むことができる。一実施形態において、テスト制御信号は、広く知られている IO インタフェース（例えば、I2C や IEEE STD 1149.1 Boundary Scan など）を介してアクセス可能な内部レジスタから提供される。一実施形態において、構造縮退テストの場合、テスト入力信号が内部レジスタから提供され、テスト出力も同様に内部レジスタで得られる。
【００３１】
リングオシレータのテストモード（OTM）信号４２１により、テスト中のリングオシレータが機能モードであるか、又は、テストモードであるかを判定する。機能モードでは、OTM ４２１が０となり、テスト構造は休止し、リングオシレータの機能には何らの影響も及ばない。テストモードでは、制御点有効化（CPE）４２４により、リングオシレータがフリーランニング又はテスト入力制御周波数で動作することができるか否かを判定する。例えば、制御点が有効化されると（すなわち CPE ４２４が１であると）、リングオシレータの周波数は、テスト入力（test_in ４２２）の周波数に依存する。さもなければ、RO が有効化された場合、リングオシレータはフリーランニング又は実用時の速度で動作することができる。一実施形態において、CPE ４２４は、OTM ４２１が０であるときに無効化（すなわち、CPE ４２４が０である）されるよう、OTM ４２１により最高レベルでゲート制御されるものと想定する。
【００３２】
一実施形態において、有効化信号４１０及び osc_out ４１２において故障を観測する際、観測可能なチェーン入力（osc_in）４２３及び出力（obc_out）４２６が使用される。osc_in 信号４１１及び osc_out 信号４１２は、各々、インバータチェーンの入力及び出力である。有効化信号４１０が１である場合、osc_out ４１２は ~osc_in となる。その他の場合、osc_out４１２は ~Enable 又は論理値１となる。テスト出力（test_out ４２５）は、osc_in ４１１の複製である。osc_out ４１２は、test_in ４２２の制御の下、osc_in ４１１へと渡されうる。
【００３３】
一実施形態において、OTM ４２１が１であり、CPE ４２４が０であり、有効化信号４１０が０である場合、テスト構造は初期化される。初期化時において、テスト入力（test_in ４２２）は osc_in ４１１と同一の信号状態に設定され（すなわち、test_in ４２２が１となる）、osc_out ４１２が ~Enable であると想定される。CPE ４２４が１であり、有効化信号４１０が１である場合、osc_in ４１１は test_in ４２２の変化に追従することができる。オシレータ出力（osc_out ４１２）がosc_in ４１１の反転出力であるため、osc_out ４１２の変化は test_in ４２２によって直接制御される。
【００３４】
テスト中におけるリングオシレータのテスト構造の挙動を図５に示す。OTM ４２１が１であり、CPE ４２４が１である場合、リングオシレータの周波数は、挿入されたテスト点から制御することができる。有効化信号４１０が１である場合、リングオシレータは有効化され、その信号状態が変わるまで test_in ４２２を待つ。リングオシレータの出力は、test_in ４２２が変化するまで変化せずに維持される。一実施形態において、test_in ４２２の各信号遷移（low から high 又は high から low）に起因して、オシレータは osc_out ４１２及び test_out ４２５の双方にて同一の信号遷移を発生させる。よって、リングオシレータの出力は、test_in ４２２の制御の下、確実に測定又は観測することができる。なおテスト中、リングオシレータは test_in ４２２の周波数で作動される。
【００３５】
図６は、一実施形態に係るリングオシレータのテスト構造である。本明細書において、テスト構造を備えたリングオシレータは、テスト可能なリングオシレータ（TRO）と称する。OTM ４２１は、テストを行う際にテスト構造を起動し、通常機能モードの際にテスト構造を停止する。OTM ４２１が１であり、CPE ４２４が１である場合、リングオシレータはテスト構造の制御下にある。さもなければ、リングオシレータはフリーランニングを行う。
【００３６】
制御点を実現するため、osc_out ４２７と osc_in ４１１との間にマルチプレクサ６０６が挿入される。マルチプレクサ６０６は、トラック６１０の信号状態に応じて、osc_out ４２７又はラッチ出力を osc_in ４１１に出力し、これがその選択入力に結合される。トラック６１０は、入力 NAND ゲート６０５（ここで、排他的 XOR ゲート６０４が NAND ６０５の他方の入力に結合される）に結合される CPE ４２４によって有効化される。CPE ４２４が１である場合、トラック６１０は、test_in ４２２及び osc_in ４１１の信号状態によって決まる。これらの信号状態が同一である場合、トラック６１０は０となり、それ以外の場合はトラック６１０は１となる。トラック６１０が１である場合、機能経路は、osc_out ４２７を osc_in ４１１に接続することにより確立される。トラック６１０が０である場合、マルチプレクサ６０６を通じた組み合わせフィードバックにより、ラッチを形成することができる。３つの論理ゲートの遅延（ゲート１から３）の後、このラッチは、test_in ４２２と同一の論理状態に非同期的に初期化することができる。OTM ４２１が０であるか又は CPE ４２４が０である場合、このラッチはトランスペアレントであり得る。
【００３７】
バイパスマルチプレクサ（MUX）６０３は、提案するテストアクセスを実現することができる。バイパスマルチプレクサは、非有効化された（disabled）リングオシレータをテストから除外することができる。バイパス MUX ６０３は有効化信号４１０によって制御される。この有効化信号４１０は、MUX ６０３の選択入力に結合された出力を有する AND ゲート６０２の一方の入力に結合されている。AND ゲート６０２の入力は OTM ４２１に結合される。バイパス MUX ６０３は、テスト中、テスト経路を構成する。Enable = 1 の場合、リングオシレータの出力は test_out ４２５に結合されうる。それ以外の場合、test_in ４２２は、test_out ４２５に直接バイパスすることができる。なお、テスト可能性を増すため、バイパスマルチプレクサ６０３において、補完入力が用いられる。つまり、osc_in ４１１は、定常状態において test_in ４２２となる。定常状態は、「出力が有効な論理状態であり、入力が変わるまで変化しないで維持される信号状態」と定義されうる。
【００３８】
バイパス特徴はまた、特性評価及びシリコンデバッグの双方において有用でありうる。特性評価において、いかなるリングオシレータも、他のすべてのリングオシレータをバイパスすることにより、分離して特性評価することができる。同様に、疑わしいリングオシレータを分離してテストすることができるか、又はさらなる診断を行うため、故障している TRO をバイパスすることができる。
【００３９】
観測可能なチェーンの XOR ゲート６０１は、obc_in ４２３及び osc_out ４２７に結合される入力を有し、obc_out ４２６を出力する。一実施形態において、XOR ゲート６０１は、有効化信号４１０及び osc_out ４２７において、SA 故障を検出するために使用される。有効化信号４１０は、CPE ４２４が１である場合、定常状態でテストすることができる。有効化信号４１０は、SA-1 テストの際に無効化され、SA-0 テストの際に有効化されうる。有効化信号４１０が０である場合、osc_out ４２７は１となり、obc_out ４２６は ~obc_in となる。それ以外の場合、obc_out ４２６は obc_in ４２３と等しくなる。したがって、obc チェーンの挙動を妨げる有効化信号４１０の SA 故障は、obc_out ４２６にて検出することができる。一実施形態において、XOR ゲートを使用することは、ゲートの出力にて観測される、検出可能な SA 故障の数が奇数個でなければならないことを意味している。例えば、obc_in ４２３及び有効化経路の双方が故障している場合、これらの奇数の故障は、XOR ゲート６０１の出力にてマスクされる。任意の数の SA 故障の検出が要求される場合、テスト範囲を広げるため、１ビットに AND ロジックを採用し、もう１ビットに OR ロジックを採用した２ビットで、１ビットの obc 構造を置き換えることができる。結果として、１ビットの obc_in 及び obc_out は、２ビットの obc_in[1:0] 及び obc_out[1:0] に拡張される。test_in = 1 である場合、すべてのリングオシレータが各々有効化されていれば、有効化信号のすべての縮退０は osc_out における縮退１の故障を通じて検出することができ、すべてのリングオシレータが各々無効化されていれば、有効化信号のすべての縮退１は osc_out における縮退１の故障を通じて検出することができる。これを図６Ｂに示す。
【００４０】
ラッチは、有効化テストに先立って、論理値１を保持するために初期化されうる。これによって確実に osc_in ４１１を１とすることができ、AND ゲート６０２の出力が有効化信号４１０単独で決定されるように、非制御値を AND ゲート６０２の入力に与える。例えば、すべてのオシレータについて、OTM ４２１が１であり、CPE ４２４が１であり、test_in ４２２が１である場合、有効化信号経路（４１０）上の SA 故障は、obc_out ４２６を補完することができ、そのため検出されうる。
【００４１】
トラック６１０が０である場合、テスト構造がラッチを形成することができるため、このラッチは、図７に示す通り、セットアップ時間及び保持時間の制約を受ける。セットアップ時間及び保持時間は、osc_out ４２７（４１２）が安定していなければならない時間を表すものである。test_in ４２２の遷移が osc_out ４２７の遷移を起こしうるため、オシレータのインバータチェーンの遅延が保持時間を上回る場合、時間制約を簡単に満たすことができる。
【００４２】
図８は、テスト中の TRO の挙動が、非同期有限状態機械（Asynchronous Finite State Machine: AFSM）によって記述できることを示している。図８を参照すると、上向き矢印及び下向き矢印は、各々、論理値０から論理値１への信号遷移及び論理値１から論理値０への信号遷移を示している。論理値０から論理値１への信号遷移及び論理値１から論理値０への信号遷移を、各々、高遷移及び低遷移と称する。状態は、test_in ４２２、osc_in ４１１、及び test_out ４２５という順で、入力信号及び出力信号の信号状態を用いて符号付けできる。テスト構造の入力と出力を区別するため、バックスラッシュ記号を使用する。例えば、初期化（すなわち、OTM ４２１が１となり、CPE ４１４が０となり、有効化信号４１０が０となる）の後、test_in = 1、osc_in = 1、及び test_out = 1（すなわち、1/11）となる。
【００４３】
最初に、Enable ４１０が無効化される（すなわち、Enable ４１０が０となる）と想定する。CPE ４２４が１となり、text_in ４２２が１となる 1/11 状態において、テストは、Enable ４１０が１となることによって初期化できる。有効化信号４１０が１である場合、テスト構造は 1/11 状態となり、test_in ４２２の低遷移を待つ。1/11 状態において、トラック６１０が０となって osc_out ４２７から osc_in ４１１までの機能経路を遮断するように、osc_in ４１１及び test_in ４２２は双方ともに同一の論理状態となる。osc_out ４２７（及び test_out ４２５）は、インバータチェーンを介して、osc_in ４２１の補完信号状態によって更新される。
【００４４】
test_in ４２２が０である場合、状態は 0/11 状態へと変化する。入力の信号状態により、トラック６１０の高遷移を引き起こす。トラック６１０が１である場合、osc_out ４２７は、osc_in ４１１を補完できるよう、osc_in ４１１に結合される。テスト構造の状態は、0/01 状態へと進む。トラック６１０の状態が０となり、osc_in ４１１の更新された信号状態をラッチすることができる。同時に、test_out ４２５が osc_in ４１１の後に続くことができ、状態は 0/00 状態へと変化する。トラック６１０が０である場合、osc_out ４２７は、インバータチェーンの遅延後、１へと変化する。osc_out ４２７の変化は、マルチプレクサ６０６によって遮断され、osc_in ４１１へと伝播されない。テスト構造は、test_in ４２２が変化するまでそのままにしておくことができる。このプロセスは、入力信号及び出力信号の逆遷移を行うために繰り返すことができる。同様に、OTM ４２１が１であり、CPE ４２４が１であり、有効化信号４１０が１である場合、このテストプロセス全体を継続することができる。
【００４５】
一実施形態によると、テスト構造は、階層的テスト構造を形成するため、test_in ４２２及び test_out ４２５を介して直列に接続される。階層的テスト構造は、特性評価及びシリコンデバッグのためのテストアクセスとして機能する。図９は、一例として構築されたテストアクセスを示す。test_in 及び test_out は、テストアクセスポートとして機能することができる。本明細書において、TRO の各チェーンを、テスト可能なオシレータチェーン（TOC）と称する。図９を参照すると、各 TRO チェーンは２つの入力、つまり obc_in 入力及び test_in 入力を有する。TOC に関して、obc_in 入力及び test_in 入力は、チェーン内の最初の TRO を除外した、チェーン内の先行の TRO に由来する。TRO［1, N1-1］など、チェーン内の最初の TRO に対する入力は、インバータ９０１の出力と、OR ゲート９０２１等の OR ゲートの出力に結合される。インバータ９０１の入力は、OTM 信号に連結され、これがさらに OR ゲート９０１１−Kの一方の否定入力に結合される。OR ゲート９０２１−Kの他方の入力は、test_in 信号に結合される。
【００４６】
一実施形態において、各リングオシレータに専用の有効化信号を提供することができる場合、階層的テスト構造内の任意の数のリングオシレータを分離してテスト及び特性評価することができる。各リングオシレータの有効化信号は、テスト用の TRO の関与及び非関与を決定又はプログラムするために使用することができる。図６に示すテスト構造のマルチプレクサ６０３は、テストから指定のリングオシレータを除外又はバイパスするよう設定することができる。例えば、各リングオシレータの機能的挙動を電子スコープ及び ATE 等の機器を介して test_out で観測することができるように有効化信号をプログラムすることにより、CPE ４２４が特性評価に際して０となり、各リングオシレータを同時に有効化することができる。
【００４７】
図１０に示すとおり、XOR ゲート（１００１、１００２）を介して test_out[k] から test_in[k] へとフィードバック接続を確立させることにより、階層的 RO テスト構造（すなわち、短絡用の階層的テスト構造）を、提案するテストアクセスによって構築することができる。フィードバック制御信号 fb_en[k] は、条件付きでフィードバックループを起動するため、AND ゲート（１００３、１００４）を使用することによって組み込むことができる。フィードバックは、fb_en[k] １０１０が１である場合に有効化することができ、そうでない場合に無効化することができる。フィードバックが有効化されると、階層的リングオシレータは、test_in[k, Nk-1] が test_in[k] XOR fb[k] となることで確立されるフィードバックループで構成することができる。test_in[k] は、fb[k] を補完するため、制御入力として機能することができる。
【００４８】
一実施形態において、階層的リングオシレータは、有効化されたリングオシレータのすべてのインバータチェーンからなる。リングオシレータとして機能するためには、階層的リングオシレータ内の反転の数は奇数個でなければならない。リングオシレータに求められる奇数個の反転は、図１０に示すtest_in[k] の信号状態によって提供することができる。テストの間、与えられた階層的テスト構造のうちの有効化 TRO の数が奇数個であれば、さらなる反転は必要ない。しかしながら、この数が偶数個であれば、要求される反転を提供するために、test_in = 1 となる。fb_en[k] = 0 である場合、階層的テスト構造は、期待通り、テストアクセス構造へと縮小することができる。
【００４９】
階層的テストは、テスト入力（test_in[k]）の相互作用を伴うことなく、自立的に動作させられることができる。このテストでは、テスト決定のため、出力 test_out[k] のみの測定を必要としてもよい。階層的テスト構造は任意のセットの有効化リングオシレータを含むことができるため、このテストでは、リングオシレータの機能を確認するだけでなく、それらの全体的遅延欠陥を検出してもよい。例えば、階層的リングオシレータの周波数がテスト限界値を下回る場合、遅延欠陥であると結論付けることができる。提案の階層的 RO はさらに、シリコンウエハプロセスの特性評価にも採用することができる。任意の数の TRO を有効化することにより、遅延及びジッター特性から、動作するウエハと仕様を満たさないウエハを相互に関連付けるために、階層的 RO を使用することができる。
【００５０】
本開示のリングオシレータのテスト構造は、チップに搭載された著しい数のリングオシレータのテスト可能性を向上するため、構造テスト及び擬似機能テスト等の種々のテスト方法で採用することができる。構造テストはテスト手順又はステップの点で擬似機能テストと類似しているため、まず擬似機能テストについて検討し、構造テストについては擬似機能テストを参照して検討する。
【００５１】
擬似機能テストは、リングオシレータのテスト構造を使用して実施することができ、これについて以下に検討する。
リングオシレータの擬似機能テスト
【００５２】
開示のテスト構造及びテストアクセスの補助により、セットアップ時間及び保持時間の双方が満たされる場合、擬似機能テストを任意の速度で動作させることができる。一実施形態において、開示の方式は、任意のテストのために奇数個のリングオシレータを有効化することを想定している。奇数個のリングオシレータは、本開示のテストアクセスに内蔵された故障検出特徴を反映することができる。一実施形態において、本開示の方式では、２つのグローバルな有効化信号を使用し、各有効化信号（例えば、有効化信号４１０）は奇数個のリングオシレータによって共有することができる。しかしながら、任意の数の有効化信号を採用することもでき、各有効化信号は任意の数のリングオシレータによって共有することもできる。一実施形態において、別個の有効化信号が各リングオシレータに対して利用可能である。あるいは、リングオシレータのすべてに対して単一の有効化信号を採用することができる。一実施形態に係る、テストアクセス構造を使用した擬似機能テストは、以下のようにまとめることができる。
擬似機能テスト手順
1. OTM = 1; CPE = 0; Enable[1:0] = 00;
2. for all k, test_in[k] = 1; CPE = 1;
3. for all k, fList[k] = Φ;
4. for all k, polarity[k] = total_No_RO(TOC[k]) mod2;
5. for(i = 0; i < 2; i++){
1. for all k, test_in[k] = 1; Enable[i] = 1;
2. for all k, fault-detect(TOC[k], polarity[k], N, fList1[k] = Φ);
3. if(fList1[k]≠Φ){fList[k] = fList[k]^fList1[k];}}
4. Enable[i] = 0;
6. for all k, report fList[k];
7. end
【００５３】
擬似機能テストは、ステップ１から２において初期化されることができる。TOC[k] の故障リストは、fList[k] と表され、各テストにおいて検出された故障リングオシレータのリストを保持することができる。fList[k] は、ステップ３においてΦで示される空集合で再設定されるか、又は初期化することができる。polarity[k] は、TOC[k] に含まれる TRO の数が奇数個であるか、又は偶数個であるかを示している。奇数個である場合、polarity[k] = 1 となる。そうでない場合、polarity[k] 0 となる。mod2 は、modulo-2 演算を表している。N が奇数である場合の N mod2 は１を返すことができ、N が偶数である場合の N mod2 は 0 を返すことができる。以下に検討を行うため、自明な場合は整数型からバイナリ型への型変換を明示しない。例えば、mod2 の演算の結果は整数型であるが、バイナリ型の polarity[k] への代入に先立ってバイナリ型に変換されてもよい。
【００５４】
ステップ５において、擬似機能テストが実施される。一実施形態において、機能経路及びバイパス経路の双方をテストするため、ステップ５．１から５．３までを２度繰り返す。TRO は、Enable[i] によって、ステップ５．１で有効化又は無効化され、ステップ５．２でテストが実施される。例えば、１度目のテストを実行する際、Enable[0] によって有効化された TRO は、TOC[k] においてテストされる。したがって、テスト経路には、有効化された TRO の機能経路と、無効化された TRO のバイパスとが含まれる。同様に、２度目のテストを実行する際、有効化信号は、有効化された TRO が無効化され、またその逆も同様となるように補完されうる。ステップ５．２における故障検出テストの手順では、与えられた TOC[k] に対して検出された故障リスト、テストで実施されるオシレータ（N）の極性及び数を判定する。一実施形態において、fList1[k] には、各テストの TOC[k] のテスト結果が含まれている。一実施形態において、fList[k] に含まれる故障リストは、テストの終わりに、fList[k] に結合される。検出された故障がステップ５．３において蓄積され、Enable[i] がステップ５．４において再設定される。
【００５５】
全ての TRO が有効化された機能経路及びバイパス並びに全ての TRO が無効化された機能経路及びバイパスの双方をテストすることは、誤ってバイパス又は有効化された奇数個のリングオシレータの検出を行う際の一助となる。これは、これらの故障が、テストアクセスによって形成された階層的リングオシレータの期間又は遅延を変更しうるためである。例えば、誤って有効化された TRO が奇数個存在する場合、test_in[k] から test_out[k] までの遅延は長くなる。階層的リングオシレータの期間は、同じ遅延量だけ長くなりうる。同様に、誤って無効化された TRO は、遅延及び期間を短縮しうる。
【００５６】
一実施形態に係る故障検出テストの手順は以下のとおりである。
fault-detect(TOC[k], polarity[k], N, fList);
1. inversion[k] = #disabled(TOC[k]) mod2;
2. acc_status[1:0] = 00;
3. for(n = 0; n < 2N; n++){ //擬似機能テスト
//機能経路を介した故障検出について
1. exp_test_out[k] = test_in[k] XOR inversion[k];
2. 定常状態で test_out[k] を測定;
3. if(test_out[k] XOR exp_test_out[k]){status[1:0] = 01;}
4. else{status[1:0] = 00}; //obc 経路を介した故障検出
5. if(test_in[k]){exp_obc_out[k] = inversion[k];}
6. else{exp_obc_out[k] = polarity[k];}
7. 定常状態で obc_out[k] を測定;
8. if(exp_obc_out[k] XOR obc_out[k]){status[1:0] = 10};
9. else{status[1:0] = 00;}
10. acc_status = acc_status | status[1:0];
11. test_in[k] = test_in[k] XOR 1;｝// end for
4. if(acc_status≠00){fList = fList^(k, acc_status);}
5. return fList;
【００５７】
故障検出テスト手順で、検出された故障をテストし、かつ記憶する。test_out[k] が test_in[k] の反転であるか否かをステップ１で判定する。TOC[k] 内の無効化された TRO の数により、反転を判定することができる。TOC[k] 内の無効化された TRO の数が奇数個の場合は反転を１とし、偶数の場合は反転を０とすることができる。acc_status は、ステップ２においてテスト結果を記憶し、再設定される。
【００５８】
ステップ３において、test_out[k] 及び obc_out[k] にて、遷移毎にオシレータの数 N を測定することができる。ステップ３．２において、test_in[k] の遷移毎に定常状態で test_out[k] を測定し、ステップ３．１にて期待される test_out[k] と比較する。期待される test_out[k] は、exp_test_out[k] と表され、exp_test_out[k] = test_in[k] XOR inversion[k] によって決定することができる。ここで記号 XOR は排他的論理和の関数を示す。測定された test_out[k] が期待されたものと同一でない場合、故障であると結論づけることができる。一実施形態において、故障が検出されると、ステータスがstatus = 01 に設定される。
【００５９】
同様に、インバータチェーンを含む有効化経路に関連する故障は、obc_out[k] にて検出することができる。一実施形態において、定常状態での各遷移後、有効化経路が継続的に観測される。期待される obc_out[k] はexp_obc_out[k] と表され、obc チェーン内に発生する反転の数によって判定される。一実施形態において、各 TRO における obc_out の反転は、osc_out = 1 によって引き起こされる。osc_out は、Enable、test_in、及び polarity[k] に依存している。Enable = 0 である場合、test_in に関わらずosc_out = 1 となる。それ以外の場合、定常状態で osc_out = ~test_in となる。したがって、test_in[k] = 1 である場合、有効化された全ての TRO の osc_out は論理値０とすることができ、よって exp_obc_out[k] = inversion[k] となる。それ以外の場合、全ての TRO osc_out は論理値１となり、exp_obc_out[k] = polarity[k] となる。obc_out[k] をステップ３．７で測定することができ、テスト決定のため、ステップ３．５及び３．６にて期待される obc_out[y] と比較する。
【００６０】
一実施形態において、ビット単位の OR 関数を使用して状態を結合することにより、状態を蓄積することができる。なお、ステップ３．３及びステップ３．８の双方で故障が検出された場合、acc_status = 11 である。故障が一旦検出されると、故障検出テスト手順が終了するまで、この故障は検出され続ける。ステップ３．１１において、test_in[k] が補完され、N 個のオシレータについてテストを継続することができる。
【００６１】
テストが終了した後、故障が発見されないか又は status = 00 である場合、fList が未変更状態に戻る。それ以外の場合、故障 TOC[k] のインデックス及び蓄積された最終の状態 fList にアペンドされる。
【００６２】
構造テストによって、同一のテストを達成することができるが、それは以下に述べる通りである。
構造テストによるリングオシレータのテスト
【００６３】
構造テストは、主にデジタルランダムロジックに適用される、低コストのテストである。構造テストにおいて、内部レジスタ（又はフリップフロップ）は、スキャンチェーンと称されるテストアクセスを形成するために直列に接続される。スキャンチェーンは、テストのために内部レジスタを初期化し、テスト結果を取得した後に観測するために使用される。内部レジスタはスキャンチェーンをロードすることによっていかなる状態にも初期化することができるため、構造テストにより、シーケンス回路のテストに係る問題を組み合わせに係る問題に置き換える。構造テストは通常、非同期フィードバックのため、リングオシレータのテストには直接適用することができない。
【００６４】
構造テストにおける本開示の TRO の利点には、非同期フィードバックの制御がある。定常状態の信号状態に関する限り、フィードバックは、壊れたものとして現れるか、又は存在しないものとして現れる。したがって TRO は、非同期フィードバックを伴わないランダムロジックとして扱うことができ、同一の構造テストを使用して他のランダムロジックとともにテストすることができる。他の利点として、TOC 内の TRO 数が増加しても、パターン数がほとんど増加しないことが挙げられる。提案するテストアクセスにより、TOC に含まれるインバータチェーンが直列に接続されるため、１つの TRO における故障を検出するテストパターンにより、同一の TOC に含まれる多数の TRO の故障を検出することができる。つまり、追加の労力を要することなく１つの故障の検出によって潜在する多くの同等の故障の検出まで行うことができるように、直列に接続された TRO は検出される同等の故障の数を増やすことができる。
【００６５】
図１１は、一実施形態に係る、定常状態におけるリングオシレータのテスト構造を示す。なお、CPE = 1 である場合、非同期フィードバックが壊れる。一実施形態において、図１１に示す定常状態挙動モデルが自動テストパターン生成（Automatic Test Pattern Generation: ATPG）において採用されるが、この自動テストパターン生成は、市販の ATPG ツールによって実施することができる。構造テストのパターンは、以下に示す構造テスト手順に従う場合が多い。検討のため、構造テスト手順には、リングオシレータのテストがいかに組み込まれるべきかについての注釈を加える。
構造テスト手順
1. STM = 1;
2. SE = 1; //CPE = 0;
3. load/unload のスキャン; //テストの初期化及びテスト結果確認
4. SE = 0; //CPE = 1;
5. PI の強制;
6. PO の測定; // プライマリ出力があれば {test_out, obc_out} の確認
7. 収集; //{test_out, obc_out} からテスト結果の収集
8. 完了するまでステップ２に遷移;
9. end
【００６６】
ステップ１において構造テストモード STM = 1 である場合、構造テストは有効化される。ステップ２においてスキャンチェーンが有効化され、SE = 1 である場合、TRO を含む組み合わせシステムロジックが無効化される。OTM は、テストを行うために内部レジスタから提供されるものとし、CPE は、構造テスト中、スキャン有効化（SE）によって制御されるものとする。ステップ３において、test_in 及び obc_in がテストのためにロードされる。テスト入力のロード後、SE は、リングオシレータロジックが有効化されるように停止される（SE = 0）。必要なプライマリ入力（PI）が強制され、プライマリ出力（PO）がステップ５及びステップ６において各々測定される。テスト入力（test_in 及び obc_in）とテスト出力（test_out 及び obc_out）は、構造テストの間に PI 及び PO と各々結合される場合、強制され、かつ測定される。それ以外の場合、これらはステップ７において内部レジスタ内に収集され、ステップ２のテスト結果をアンロードするために SE をアクティベートする（SE = 1）。収集されたテスト結果は、ステップ３におけるテスト決定のため、ATE にて確認される。テスト入力のロードは、テスト結果のアンロードと並行して行うことができるため、これらはステップ３において併合される。
【００６７】
擬似機能テストにおいて検討したテスト設定は、ステップ４及びステップ５において達成される。定常状態で Enable = 0 及び osc_in = ~test_in の場合、非同期フィードバックの制御により、osc_in が定常状態の test_in、又は osc_in = ~Enable と同一の論理状態となるように強制する。あるいは、追加で論理ゲートを設けることにより、同一のテスト設定がステップ２のスキャン有効化信号によっても達成される。例えば SE = 1 である場合、これを用いて CPE = 0、Enable[1:0] = 00、及び test_in = 1 となるよう強制する。それ以外の場合、システムロジックによってテスト制御信号が決定される。
【００６８】
構造テストは強制的テストであることが多く、提案するリングオシレータテストに比してテスト時間が長くなり得る。リングオシレータテストは、その他のランダムロジックテストと並行して行われるため、リングオシレータのテストコストをなくすことができるか、又は僅かなものとすることができる。さらに、あるテストアプリケーションにおいて、特に専用の有効化が利用可能である場合には、利用可能なテスト時間をリングオシレータの診断分解能を向上する目的で利用できる。
【００６９】
したがって、HDCP 及びその他の暗号生成チップにおけるセキュリティ鍵の生成のための真性乱数発生器において採用される多数のリングオシレータのテストの問題について、コスト効率のよいテストソリューションを説明してきた。開示の方式により、構造テストをリングオシレータのテストに組み込むことができる。開示の方式はまた、リングオシレータの数が増加してもテストコストを僅かなものに抑えることができ、問題サイズの拡大にもうまく対応することができる。本開示の方法論を IP 及びエンドプロダクトに適用したとしても、テストコストを削減し、テストクオリティを向上し、テスト開発における技術的努力を最適化することができる。
【００７０】
当業者は、以上の説明を読むことで本発明の変更及び修正を多く想到しうるであろうが、説明及び図示した特定の実施形態はいかなる場合も限定を意図するものでないことが理解できる。したがって、種々の実施形態の詳細を参照したが、これは請求項の範囲を限定することを意図するものでなく、請求項自体には本発明に必須であると考えられる特徴のみを列挙している。
【図１】
2015534673.tif 000003
【図２】
2015534673.tif 000004
【図３】
2015534673.tif 000005
【図４】
2015534673.tif 000006
【図５】
2015534673.tif 000007
【図６Ａ】
2015534673.tif 000008
【図６Ｂ】
2015534673.tif 000009
【図７】
2015534673.tif 000010
【図８】
2015534673.tif 000011
【図９】
2015534673.tif 000012
【図１０】
2015534673.tif 000013
【図１１】
2015534673.tif 000014
【国際調査報告】
2015534673.tif 000015
2015534673.tif 000016