(57)【要約】  装置（２１０）は、動作パラメータを受け取るように構成されたインターフェース回路（３０５）と、インターフェース回路（３０５）に結合され動作パラメータを記憶するように構成された制御回路（３１０）とを含むことができる。本装置（２１０）は、制御回路（３１０）に結合されたクロックエラー検出回路（３２０）も含むことができる。クロックエラー検出回路（３２０）は、動作パラメータに基づいてクロック信号のクロックエラー状態を検出し、クロックエラー状態を検出したことに応答して、クロックエラー状態の発生を示す信号を生成するように構成することができる。【選択図】図３
2019536146.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号を監視するための装置であって、
動作パラメータを受け取るように構成されたインターフェース回路と、
前記インターフェース回路に結合され前記動作パラメータを記憶するように構成された制御回路と、
前記制御回路に結合されたクロックエラー検出回路であって、前記動作パラメータに基づいてクロック信号のクロックエラー状態を検出し、前記クロックエラー状態を検出したことに応答して、前記クロックエラー状態の発生を示す信号を生成するように構成される、クロックエラー検出回路と
を備える、装置。
【請求項２】
前記クロックエラー検出回路が、前記クロック信号の複数の異なるタイプのクロックエラー状態を同時に検出し、前記複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すように構成される、請求項１に記載の装置。
【請求項３】
前記クロックエラー検出回路が、複数の異なるクロック信号の各々における前記クロックエラー状態を同時に検出し、前記エラー状態とともに前記複数のクロック信号のうちの前記クロック信号を示すように構成される、請求項１に記載の装置。
【請求項４】
前記クロックエラー検出回路が、前記複数の異なるクロック信号の各々における複数の異なるタイプのクロックエラー状態を検出し、前記複数のクロック信号の各それぞれのクロック信号に関して、前記複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すように構成される、請求項３に記載の装置。
【請求項５】
前記信号が、プロセッサに提供され、割込みを含む、請求項１に記載の装置。
【請求項６】
前記インターフェースが、前記動作パラメータを送るように構成されたプロセッサに結合される、請求項１に記載の装置。
【請求項７】
前記動作パラメータが、クロック停止エラー状態を検出するために使用される、請求項１に記載の装置。
【請求項８】
前記動作パラメータが、クロックグリッチエラー状態を検出するために使用される、請求項１に記載の装置。
【請求項９】
前記動作パラメータが、範囲外クロックエラー状態を検出するために使用される、請求項１に記載の装置。
【請求項１０】
前記インターフェース回路、前記制御回路、および前記クロックエラー検出回路が、集積回路のプログラム可能回路構成内に実装される、請求項１に記載の装置。
【請求項１１】
クロック信号を監視する方法であって、
クロックモニタ回路において、プロセッサから動作パラメータを受け取ることと、
前記動作パラメータに基づいて前記クロックモニタ回路のクロックエラー検出回路を更新することと、
前記動作パラメータに基づいて前記クロックエラー検出回路を使用してクロック信号のクロックエラー状態を検出することと、
前記クロックエラー状態を検出したことに応答して、前記クロックエラー状態の発生を示す信号を生成することと
を備える、方法。
【請求項１２】
クロックエラー状態を検出することが、前記クロック信号の複数の異なるタイプのクロックエラー状態を同時に監視することと、前記複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すこととを備える、請求項１１に記載の方法。
【請求項１３】
クロックエラー状態を検出することが、複数の異なるクロック信号の各々における前記クロックエラー状態を同時に監視することと、前記エラー状態とともに前記複数のクロック信号のうちの前記クロック信号を示すこととを備える、請求項１１に記載の方法。
【請求項１４】
クロックエラー状態を検出することが、前記複数の異なるクロック信号の各々における複数の異なるタイプのクロックエラー状態を同時に監視することと、前記複数のクロック信号の各それぞれのクロック信号に関して、前記複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すこととを備える、請求項１３に記載の方法。
【請求項１５】
前記信号が、プロセッサに提供され、割込みを含む、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、集積回路（ＩＣ）に関し、より詳細には、ＩＣ内に実装するためのクロックモニタ回路に関する。
【背景技術】
【０００２】
クロック監視は、現代の電子システム設計の重要な要素である。機能安全市場内では、たとえば、システムのフォールトトレランスは必要条件と見なされる。フォールトトレランスは、一般に、システムの１つまたは複数の構成要素の故障（たとえば障害）の場合に、適切に、または少なくとも定義されかつ期待された方法で動作し続けるシステムの能力を示す。「フォールトトレラント」と見なされるシステムでは、数ある要素のうちでも特に、クロック監視がしばしば必要とされる。
【０００３】
セキュリティについて言えば、クロック監視は、しばしば、攻撃を回避する際にシステムを助ける必要条件と見なされる。攻撃の１つのタイプは、たとえば、システムのクロック信号のグリッチの誘発である。クロックグリッチは、プロセッサに命令の実行をスキップさせることなどの多くの問題を誘発する場合がある。命令の実行をスキップすることは、プログラムコードのすべての部分が実行するのを妨げる場合がある。プログラムコードのこれらの部分は、ログイン、暗号化、復号化などの重要なセキュリティ機能をシステムに提供する場合がある。ハッカーがそのような命令の実行をスキップさせることができる場合、システムは、攻撃に対して脆弱であることがある。
【発明の概要】
【０００４】
一実施形態は、クロック信号を監視するための装置を含む。本装置は、動作パラメータを受け取るように構成されたインターフェース回路と、インターフェース回路に結合され動作パラメータを記憶するように構成された制御回路とを含むことができる。本装置は、制御回路に結合されたクロックエラー検出回路も含むことができる。クロックエラー検出回路は、動作パラメータに基づいてクロック信号のクロックエラー状態を検出し、クロックエラー状態を検出したことに応答して、クロックエラー状態の発生を示す信号を生成するように構成することができる。
【０００５】
別の実施形態は、クロック信号を監視する方法を含む。本方法は、クロックモニタ回路においてプロセッサから動作パラメータを受け取ることと、動作パラメータに基づいてクロックモニタ回路のクロックエラー検出回路を更新することと、動作パラメータに基づいてクロックエラー検出回路を使用してクロック信号のクロックエラー状態を検出することとを含むことができる。本方法は、クロックエラー状態を検出したことに応答して、クロックエラー状態の発生を示す信号を生成することを含むことができる。
【０００６】
この発明の概要のセクションは、単にいくつかの概念を紹介するために提供され、請求する主題のいかなる主要な特徴または本質的な特徴も特定するものではない。本発明の構成の他の特徴は、添付の図面および次の発明を実施するための形態から明らかになろう。
【０００７】
本発明の構成は、添付の図面における例を通して示される。しかし、図面は、示された特定の実装形態のみに本発明の構成を限定するように解釈すべきでない。様々な態様および利点は、次の発明を実施するための形態を検討し、図面を参照すれば明らかになろう。
【図面の簡単な説明】
【０００８】
【図１】集積回路の例示的なアーキテクチャを示す図である。
【図２】クロックモニタ回路を含む集積回路の一例を示す図である。
【図３】クロックモニタ回路の一例を示す図である。
【図４】クロックエラー検出回路の一例を示す図である。
【図５】クロックモニタ回路用のエッジ検出器の動作を示す例示的な波形を示す図である。
【図６】クロックモニタ回路を実装する例示的な方法を示す図である。
【図７】クロックモニタ回路の動作の例示的な方法を示す図である。
【発明を実施するための形態】
【０００９】
本開示は新規の特徴を定義する特許請求の範囲で締めくくるが、本開示内に記載する様々な特徴は、図面と併せて記載を検討することにより、より十分に理解されると考えられる。本明細書に記述されるプロセス、機械、製造、およびそれらの任意の変形形態は、例示のために提供される。本開示内に記載される特定の構造および機能の詳細は、限定と解釈すべきでなく、単に特許請求の範囲の根拠、および仮想的かつ適切に詳しい構造に記載された特徴を当業者が様々に使用するように教示するための代表的な根拠と解釈すべきである。さらに、本開示内に使用される用語および句は、限定を目的とするものでなく、むしろ記載された特徴の理解可能な記述を提供することを目的とする。
【００１０】
本開示は、集積回路（ＩＣ）に関し、より詳細には、ＩＣ内に実装するためのクロックモニタ回路に関する。本明細書に記載される１つまたは複数の例示的な実施形態は、ＩＣ内でフォールトトレラントシステムの実装を容易にするクロックモニタ回路を提供する。一態様では、クロックモニタ回路はプログラム可能である。
【００１１】
１つまたは複数の実施形態では、クロックモニタ回路を実装するコアが提供される。回路設計者、たとえばユーザは、コアをプログラミングおよび／またはパラメータ化するために電子設計自動化（ＥＤＡ）ツールに１つまたは複数の動作パラメータを提供する場合がある。さらに、コアが機能回路構成としてＩＣ内に物理的に実装されると、クロックモニタ回路は、実時間でプログラミングまたは制御される場合がある。一実施形態では、クロックモニタ回路は、プロセッサを使用して制御される場合がある。プロセッサは、たとえば、クロックモニタ回路との通信を容易にするドライバプログラムコードを実行する場合がある。したがって、動作中、たとえば実時間で、プロセッサは、クロックモニタ回路の動作パラメータの１つまたは複数を変更する場合がある。
【００１２】
１つまたは複数の実施形態では、クロックモニタ回路は、１つまたは複数の異なるクロック信号を同時に監視することができる。さらに、クロックモニタ回路は、監視されている異なるクロック信号の各々における１つまたは複数の異なるタイプのクロックエラー状態を検出するようにプログラミングすることができる。プロセッサは、検出されたクロックエラー状態を処理するためにクロックモニタ回路と情報交換することができる。プロセッサは、クロックエラー状態が検出される特定のクロック信号、および／または監視されたクロック信号において検出されたクロックエラー状態のタイプに少なくとも部分的に基づいて、クロックモニタ回路によって検出されたクロックエラー状態に応答して対処することができる。
【００１３】
クロックモニタ回路、クロックモニタ回路の動作、およびクロックモニタ回路のプログラム可能性のさらなる態様が、図面を参照してより詳細に本明細書に記載される。説明を簡潔かつ明確にするために、図に示された要素は、必ずしも正確な比率に描かれていない。たとえば、要素のいくつかの寸法は、明確にするために他の要素に対して誇張されている場合がある。さらに、適切であると考えられる場合、対応する特徴部、類似した特徴部、または同様の特徴部を示すために、図の間で参照番号が反復される。
【００１４】
図１は、ＩＣの例示的なアーキテクチャ１００を示す。一態様では、アーキテクチャ１００は、プログラム可能ＩＣ内に実装される。たとえば、アーキテクチャ１００は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を実装するために使用される場合がある。アーキテクチャ１００は、システムオンチップ（ＳＯＣ）タイプのＩＣも代表する。ＳＯＣは、プログラムコードを実行するプロセッサと、１つまたは複数の他の回路とを含むＩＣである。他の回路は、ハードワイヤード回路構成、プログラム可能回路構成、および／またはそれらの組合せとして実装される場合がある。回路は、互いに協調して、および／またはプロセッサと協調して動作する場合がある。他の回路構成は、通常、プロセッサと同じダイ上にある。
【００１５】
図示のように、アーキテクチャ１００は、いくつかの異なるタイプのプログラム可能回路、たとえば、ロジックブロックを含む。たとえば、アーキテクチャ１００は、マルチギガビットトランシーバ（ＭＧＴ）１０１、設定可能ロジックブロック（ＣＬＢ）１０２、ランダムアクセスメモリブロック（ＢＲＡＭ）１０３、入力／出力ブロック（ＩＯＢ）１０４、設定／クロッキングロジック（ＣＯＮＦＩＧ／ＣＬＯＣＫＳ）１０５、デジタル信号処理ブロック（ＤＳＰ）１０６、専用Ｉ／Ｏブロック１０７（たとえば設定ポートおよびクロックポート）、およびデジタルクロックマネージャ、アナログデジタル変換器、システム監視ロジックなどの他のプログラム可能ロジック１０８を含む多数の異なるプログラム可能タイルを含む場合がある。
【００１６】
いくつかのＩＣでは、各プログラム可能タイルは、各隣接タイル内の対応するプログラム可能相互接続要素（ＩＮＴ）１１１との間の標準接続部を有するＩＮＴ１１１を含む。したがって、ＩＮＴ１１１は、統合すると、図示されたＩＣのプログラム可能相互接続構造部を実装する。各ＩＮＴ１１１は、図１の上部に含まれる例によって示されるように、同じタイル内のプログラム可能ロジック要素との間の接続部も含む。
【００１７】
たとえば、ＣＬＢ１０２は、単一のＩＮＴ１１１に加えたユーザロジックを実装するようにプログラミングされる場合がある設定可能ロジック要素（ＣＬＥ）１１２を含む場合がある。ＢＲＡＭ１０３は、１つまたは複数のＩＮＴ１１１に加えてＢＲＡＭロジック要素（ＢＲＬ）１１３を含む場合がある。通常、１つのタイルに含まれるＩＮＴ１１１の数は、そのタイルの高さによって決まる。図示のように、ＢＲＡＭタイルは、５つのＣＬＢと同じ高さを有するが、他の数（たとえば４つ）も使用される場合がある。ＤＳＰタイル１０６は、適切な数のＩＮＴ１１１に加えてＤＳＰロジック要素（ＤＳＰＬ）１１４を含む場合がある。ＩＯＢ１０４は、たとえば、ＩＮＴ１１１の１つのインスタンスに加えてＩ／Ｏロジック要素（ＩＯＬ）１１５の２つのインスタンスを含む場合がある。当業者には明らかなように、たとえば、ＩＯＬ１１５に接続された実際のＩ／Ｏパッドは、通常、ＩＯＬ１１５の領域に制限されない。
【００１８】
図１に示された例では、たとえば、領域１０５、１０７、および１０８から形成されたダイの中心近傍の柱状の領域は、設定、クロック、および他の制御ロジック用に使用される場合がある。この柱状部から延びる水平領域１０９は、プログラム可能ＩＣの幅にわたってクロックおよび設定信号を分配するために使用される。
【００１９】
図１に示されたアーキテクチャを利用するいくつかのＩＣは、ＩＣの大部分を構成する通常の柱状構造を分断する追加のロジックブロックを含む。追加のロジックブロックは、プログラム可能ブロックおよび／または専用回路構成である場合がある。たとえば、ＰＲＯＣ１１０として示されたプロセッサブロックは、ＣＬＢおよびＢＲＡＭのいくつかの柱状部にわたる。
【００２０】
一態様では、ＰＲＯＣ１１０は、専用回路構成として、たとえば、ＩＣのプログラム可能回路構成を実装するダイの一部分として作製されるハードワイヤードプロセッサとして実装される。ＰＲＯＣ１１０は、複雑性において、プログラムコードを実行することが可能なシングルコアなどの個別のプロセッサから、１つまたは複数のコア、モジュール、コプロセッサ、インターフェースなどを有する完全なプロセッサシステムに及ぶ様々な異なるプロセッサタイプおよび／またはシステムのいずれかを示す場合がある。
【００２１】
別の態様では、ＰＲＯＣ１１０は、アーキテクチャ１００から省略され、記載された他の様々な種類のプログラム可能ブロックの１つまたは複数に置き換えられる。さらに、そのようなブロックは、プログラム可能回路構成の様々なブロックが、ＰＲＯＣ１１０の場合と同様にプログラムコードを実行することができるプロセッサを形成するために使用される場合があるという点で、「ソフトプロセッサ」を形成するために利用される場合がある。
【００２２】
「プログラム可能回路構成」という句は、ＩＣ内のプログラム可能回路要素、たとえば、本明細書に記載された様々なプログラム可能なまたは設定可能な回路ブロックまたはタイル、ならびにＩＣにロードされる設定データに従って様々な回路ブロック、タイル、および／または要素を選択的に結合する相互接続回路構成を示す。たとえば、ＣＬＢ１０２およびＢＲＡＭ１０３などのＰＲＯＣ１１０の外部にある図１に示された回路ブロックは、ＩＣのプログラム可能回路構成と見なされる。
【００２３】
一般に、プログラム可能回路構成の機能は、設定データがＩＣにロードされるまで確立されない。１組の設定ビットは、ＦＰＧＡなどのＩＣのプログラム可能回路構成をプログラミングするために使用される場合がある。この設定ビットは、通常、「設定ビットストリーム」と呼ばれる。一般に、プログラム可能回路構成は、ＩＣに設定ビットストリームを最初にロードすることがなければ動作可能でも機能もしない。設定ビットストリームは、プログラム可能回路構成内で特定の回路設計部を効果的に実装する。回路設計部は、たとえば、プログラム可能回路ブロックの機能的態様と、様々なプログラム可能回路ブロック間の物理的な接続性とを指定する。
【００２４】
「ハードワイヤード」または「固定」である回路構成、すなわちプログラム可能でない回路構成は、ＩＣの一部分として製造される。プログラム可能回路構成とは異なり、ハードワイヤード回路構成または回路ブロックは、設定ビットストリームのロードによるＩＣの製造後には実装されない。ハードワイヤード回路構成は、一般に、たとえば、ＰＲＯＣ１１０などのＩＣに設定ビットストリームを最初にロードすることなく機能する専用の回路ブロックおよび相互接続部を有すると見なされる。
【００２５】
いくつかの例では、ハードワイヤード回路構成は、ＩＣ内の１つまたは複数のメモリ要素に記憶されたレジスタ設定または値に従って設定または選択することができる１つまたは複数の動作モードを有する場合がある。動作モードは、たとえば、ＩＣに設定ビットストリームをロードすることによって設定される場合がある。この能力にかかわらず、ハードワイヤード回路構成は、ＩＣの一部分として製造されるとき、ハードワイヤード回路構成が動作可能で特定の機能を有するので、プログラム可能回路構成とは見なされない。
【００２６】
ＳＯＣの場合には、設定ビットストリームは、プログラム可能回路構成内に実装されることになる回路構成と、ＰＲＯＣ１１０またはソフトプロセッサによって実行されることになるプログラムコードとを指定する場合がある。いくつかの場合には、アーキテクチャ１００は、適切な設定メモリおよび／またはプロセッサメモリに設定ビットストリームをロードする専用設定プロセッサを含む。専用設定プロセッサは、ユーザ指定のプログラムコードを実行しない。他の場合には、アーキテクチャ１００は、設定ビットストリームを受け取り、設定ビットストリームを適切な設定メモリにロードし、かつ／または実行用のプログラムコードを抽出するためにＰＲＯＣ１１０を利用する場合がある。
【００２７】
図１は、プログラム可能回路構成、たとえばプログラマブルファブリックを含むＩＣを実装するために使用される場合がある例示的なアーキテクチャを示すことを目的とする。たとえば、柱状部内のロジックブロックの数、柱状部の相対幅、柱状部の数および順序、柱状部に含まれるロジックブロックのタイプ、ロジックブロックの相対サイズ、ならびに図１の上部に含まれる相互接続部／ロジックの実装形態は、例示にすぎない。実際のＩＣでは、たとえば、ＣＬＢの２つ以上の隣接する柱状部は、通常、ユーザ回路設計部の効率的な実装を容易にするために、ＣＬＢがどこに現れても含まれる。しかし、隣接するＣＬＢ柱状部の数は、ＩＣの全体サイズによって変わる場合がある。さらに、ＩＣ内のＰＲＯＣ１１０などのブロックのサイズおよび／または配置は、説明のためだけであって、限定を目的とするものでない。
【００２８】
多くのプログラム可能ＩＣでは、クロックエラー状態が起こる場合がある多くのクロックが存在する。このことは、特に、ＳＯＣの場合に成り立つ。ＳＯＣの場合には、プロセッサおよび／またはプロセッサシステムによる使用専用の１つまたは複数のクロック、ならびにＳＯＣのプログラム可能回路構成内に実装された回路による使用専用の１つまたは複数の他のクロックが存在する場合がある。さらに、プロセッサシステムとプログラム可能回路構成の両方によって利用されるクロックが存在する場合がある。
【００２９】
１つまたは複数の実施形態では、クロックモニタ回路は、アーキテクチャ１００のプログラム可能回路構成を使用して実装され、クロック信号がプロセッサシステムによる使用のためおよび／またはプログラム可能回路構成による使用のためであっても、クロック信号の１つまたは複数におけるクロックエラー状態の発生を同時に監視するために使用される場合がある。さらに、クロックモニタ回路は、複数のクロック信号における異なるタイプのクロックエラー状態を同時に監視することができる。
【００３０】
図２は、クロックモニタ回路を含むＩＣ２００の例である。一態様では、ＩＣ２００は、プログラム可能回路構成を含むプログラム可能ＩＣである。たとえば、ＩＣ２００は、ＦＰＧＡまたは他の様々な種類のプログラム可能ＩＣとして実装される場合がある。別の例では、ＩＣ２００は、ＳＯＣとして実装される場合がある。ＩＣ２００は、図１に示されたアーキテクチャと同じかまたは同様のアーキテクチャを有する場合がある。図示のように、ＩＣ２００は、プロセッサ２０５およびクロックモニタ回路２１０を含む。ＩＣ２００は、オプションの割込みコントローラ２１５を含む場合がある。
【００３１】
プロセッサ２０５は、命令などのプログラムコードを実行することが可能な回路構成である。一実施形態では、プロセッサ２０５は、固定回路構成である。別の実施形態では、プロセッサ２０５は、ＩＣ２００の設定メモリセルに設定データをロードしたことに応答してＩＣ２００のプログラム可能回路構成を使用して実装されたソフトプロセッサである。プロセッサ２０５は、プログラムコードを実行することが可能な様々な異なるアーキテクチャのいずれかを有する場合がある。プロセッサ２０５は、クロックモニタ回路２１０と同じダイ上に実装される場合がある。
【００３２】
プロセッサ２０５は、オペレーティングシステム、ユーザアプリケーションなどのプログラムコードを実行する場合がある。プロセッサ２０５は、さらに、接続部２２０を介してプロセッサ２０５がクロックモニタ回路２１０と通信することを可能にするドライバなどのドライバプログラムコードを実行する場合がある。接続部２２０は、様々なオンチップ相互接続部のいずれかを実装する１つまたは複数のワイヤとして実装される場合がある。
【００３３】
一実施形態では、接続部２２０は、バスとして実装される。一例では、このバスは、ＡＭＢＡ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ（ＡＸＩ）バスである場合がある。ＡＸＩバスは、回路ブロックおよび／またはシステムの間のオンチップ接続部を確立する際に使用するための組込式マイクロコントローラバスインターフェースである。本明細書に提供された例示的なバスタイプは、例示のためにあり、限定のためではないことが理解されよう。本発明の構成は、他のバスおよび／または接続部のタイプが使用される場合があるので、提供された例に限定されない。
【００３４】
クロックモニタ回路２１０は、１つまたは複数の異なるクロック信号を監視するように構成される。たとえば、設計者は、ＥＤＡツールを通して作業している間、回路設計部内にクロックモニタコアを含む場合がある。設計者は、ＩＣ２００内に実装される回路設計部の複数のクロック信号のどれがクロックモニタコアによって監視されるべきかを示す場合がある。設計者は、「Ｎ」個の異なるクロック信号までの１つまたは複数のクロック信号を指定する場合がある（ここで、Ｎは整数値である）。説明を目的としてかつ説明を容易にするために、Ｎの最大値は４である場合がある。例示的な値の４が限定を目的とするものでないことが理解されよう。Ｎの値は、クロックモニタ回路の特定の実装形態に応じて、１、２、３、または５以上に設定される場合がある。
【００３５】
図２の例では、クロックモニタ回路２１０は、「ｃｌｋ＿ｉｎ＿１」から「ｃｌｋ＿ｉｎ＿Ｎ」と示されたクロック信号を受け取る。ＦＰＧＡ回路構成を含むＳＯＣの場合には、監視される場合があるクロック信号は、プロセッサシステム（たとえば、プロセッサ、インターフェース、および／またはＩＣ２００のプログラム可能回路構成と通信する周辺装置を実装するＩＣ２００のハードワイヤード部分）内に生成されるクロック信号、またはプログラム可能回路構成内のいずれかの任意のクロック信号を含む。クロックモニタ回路２１０は、１つまたは複数の（たとえば１〜Ｎの）異なるクロック信号において複数の異なるクロックエラー状態の１つもしくは複数または各々を同時に監視するように構成可能である。クロックモニタ回路２１０が検出することが可能であるクロックエラー状態の例は、限定はしないが、クロック信号１〜Ｎの各々における、範囲外のクロック（たとえば、クロックオーバーランおよび／またはクロックアンダーラン）、クロックグリッチ、および／またはクロック信号の喪失を含む。
【００３６】
監視される各クロック信号において、クロックモニタ回路２１０は、「ｒｅｆ＿ｃｌｋ＿１」から「ｒｅｆ＿ｃｌｋ＿Ｎ」と示された参照クロック信号に結合され、たとえば、その参照クロック信号を受け取る。クロックモニタ回路２１０は、１つまたは複数の異なるタイプのクロックエラー状態に関してクロック信号の各々を監視することができる。参照クロック信号の各々は、デバイスピンまたは別の内部クロックから取得される場合がある。
【００３７】
クロックモニタ回路２１０は、図示のように、クロックエラー状態を検出したことに応答して、割込み信号を生成することができる。さらに、クロックモニタ回路２１０は、検出されたクロックエラー状態のタイプを示す信号を出力することができる。たとえば、クロックモニタ回路２１０は、クロック停止エラー状態の検出を示すｃｌｋ＿ｓｔｏｐ信号の値、クロックグリッチエラー状態の検出を示すｃｌｋ＿ｇｌｉｔｃｈ信号の値、および範囲外クロックエラー状態の検出を示すｃｌｋ＿ｏｏｒ信号の値を生成することができる。ｃｌｋ＿ｓｔｏｐ信号、ｃｌｋ＿ｇｌｉｔｃｈ信号、ｃｌｋ＿ｏｏｒ信号、ｌｏｃｋｅｄ信号、およびｉｎｔｅｒｒｕｐｔ信号は、まとめて信号２３０と呼ばれる場合がある。
【００３８】
一実施形態では、ｃｌｋ＿ｓｔｏｐ信号、ｃｌｋ＿ｇｌｉｔｃｈ信号、ｌｏｃｋｅｄ信号、およびｃｌｋ＿ｏｏｒ信号の各々は、クロックモニタ回路２１０が１〜Ｎの監視されたクロック信号のどれでエラー状態が検出されるかを示すことができるように、マルチビット信号である場合がある。「ｌｏｃｋｅｄ」信号は、監視されたクロック信号が期待どおりに開始または再開したかを示す。クロックモニタ回路２１０は、ＩＣ２００内で監視されたクロック信号１〜Ｎを他の回路および／またはシステムに提供するために、そのような信号の各々を出力することもできる。
【００３９】
記載のように、ＩＣ２００は、オプションの割込みコントローラ２１５を含む場合がある。割込みコントローラ２１５は、ｃｌｋ＿ｓｔｏｐ信号、ｃｌｋ＿ｇｌｉｔｃｈ信号、ｃｌｋ＿ｏｏｒ信号、ｌｏｃｋｅｄ信号、およびｉｎｔｅｒｒｕｐｔ信号を受け取り、これらの信号を復号化し、割込み信号２２５をプロセッサ２０５に提供することができる。割込みコントローラ２１５は、１つまたは複数の異なる回路がプロセッサ２０５への割込みを生成するように構成される場合に使用される場合がある。たとえば、ＩＣ２００は、２つ以上のクロックモニタ回路２１０、１つまたは複数のクロックモニタ回路２１０、および割込みを生成するように構成された１つまたは複数の他の回路などを含む場合がある。割込みコントローラ２１５は、２つ以上の割込みソース（たとえば回路）から信号を受け取り、これらの信号に優先順位を付け、これらの信号を組み合わせ、割込みコントローラ２１５に実装された任意の優先順位付けスキームを適用した割込み信号２２５を介してプロセッサ２０５に得られた値を提供することができる。割込み信号２２５は、ｃｌｋ＿ｓｔｏｐ信号、ｃｌｋ＿ｇｌｉｔｃｈ信号、ｃｌｋ＿ｏｏｒ信号、ｌｏｃｋｅｄ信号、および／またはｉｎｔｅｒｒｕｐｔ信号を通してクロックモニタ回路２１０から受け取った同じデータまたは同様のデータを含むか、または伝達する場合がある。たとえば、信号２２５は、マルチビット信号である場合がある。
【００４０】
別の実施形態では、割込みコントローラ２１５は省略される。その場合に、クロックモニタ回路２１０から割込みコントローラ２１５に提供された信号２３０は、プロセッサ２０５に直接提供される場合がある。別の実施形態では、クロックモニタ回路２１０からの割込みは、直接クロックモニタ回路２１０からプロセッサ２０５に、たとえば割込み入力ポートに提供されるが、ｃｌｋ＿ｓｔｏｐ信号、ｃｌｋ＿ｇｌｉｔｃｈ信号、ｃｌｋ＿ｏｏｒ信号、およびｌｏｃｋｅｄ信号などの他の信号は、接続部２２０を介してプロセッサ２０５に提供される。
【００４１】
１つまたは複数の実施形態では、プロセッサ２０５は、クロックモニタ回路２１０の動作を制御することができる。プロセッサ２０５は、たとえば、クロックモニタ回路２１０用のドライバを実行する際に、クロックモニタ回路２１０に命令を送る場合がある。命令は、１つまたは複数の動作パラメータを含む場合がある。命令および／または動作パラメータは、クロックモニタ回路２１０がクロック信号１〜Ｎのクロックエラー状態を検出する方法の様々な態様を制御する。接続部２２０を使用すれば、プロセッサ２０５は、ＩＣ２００の動作中に、たとえば実時間で、クロックモニタ回路２１０の動作を動的に制御し、たとえば、これらの動作を動的に変更することができる。
【００４２】
図３は、クロックモニタ回路２１０の例示的な実装形態である。クロックモニタ回路２１０は、インターフェース３０５、制御回路構成３１０、およびクロックエラー検出回路３２０を含む。図３の例では、制御回路構成３１０は、動作パラメータおよび／またはクロックエラー検出データを記憶するためのメモリなどの制御レジスタ３１５を含む。クロックエラー検出回路３２０は、１つまたは複数の（たとえば、１〜Ｎの）エラー検出器３２５を含む。例示のために、Ｎの値は、４であると仮定される。したがって、クロックモニタ回路２１０は、３２５−１、３２５−２、３２５−３、および３２５−４として示された４つのエラー検出器３２５（たとえば、監視されている各クロック信号に１つのエラー検出器）を含む。
【００４３】
インターフェース３０５は、ＩＣ２００の動作中にプロセッサ２０５からの動作パラメータを指定するか、または含む命令を受け取ることができる。インターフェース３０５は、さらに、プロセッサ２０５にデータを送ることができる。一実施形態では、インターフェース３０５は、バスインターフェースである。たとえば、インターフェース３０５は、ＡＸＩバスインターフェースとして実装される場合がある。図示のように、インターフェース３０５は、接続部２２０を介してプロセッサ２０５に結合される。
【００４４】
制御回路構成３１０は、インターフェース３０５およびクロックエラー検出回路３２０に結合される。一実施形態では、プロセッサ２０５から受け取った命令、たとえば動作パラメータは、制御レジスタ３１５に記憶される。制御レジスタ３１５は、エラー検出器３２５の各々における１つまたは複数の動作パラメータを記憶するのに十分なストレージを含む場合がある。別の実施形態では、制御レジスタ３１５は、エラー検出器３２５によって生成されたクロックエラー検出データを記憶するために十分なストレージを含む。一実施形態では、プロセッサ２０５は、インターフェース３０５および接続部２２０を介して制御レジスタ３１５からのクロックエラー検出データを読み込むことができる。別の実施形態では、プロセッサ２０５は、エラー検出器３２５によって生成され信号２３０を介して制御レジスタ３１５に記憶される出力データを受け取ることができる。
【００４５】
さらなる実施形態では、制御回路構成３１０は、図１に示された割込み信号を生成することができる。たとえば、制御回路構成３１０は、図４を参照して本明細書により詳細に記載されるエラー検出器３２５の各々からの個々のクロックエラー検出信号を監視することができる。監視されているクロック信号の１つまたは複数におけるクロックエラー状態を検出したことに応答して、制御回路構成３１０は、割込み信号の適切な値を生成し、たとえば、クロックモニタ回路２１０の特定の実装形態に応じて、割込み信号をハイまたはローのいずれかに持ってくることができる。
【００４６】
図４は、エラー検出器３２５の例である。一実施形態では、クロックモニタ回路２１０は、監視される各クロック信号に対して１つのエラー検出器３２５を含む。エラー検出器３２５は、クロックデバイダ４０５、シンクロナイザ４１０、カウンタ４１５、４２０、および４２５、エッジ検出器４３０、ならびに比較器４３５、４４０、および４４５を含む。
【００４７】
論じたように、図４に示された様々な回路ブロックに関する動作パラメータは、クロックモニタコアのために最初に指定される場合がある。動作パラメータは、一度実装されたクロックモニタ回路に命令を送るプロセッサによって動作中に更新される場合がある。一実施形態では、プロセッサは、１つまたは複数の動作パラメータを取得し、これらの動作パラメータをクロックモニタ回路に送る場合がある。制御回路構成３１０は、プロセッサから受け取った動作パラメータから１つまたは複数の他の動作パラメータを計算し、次いで、必要に応じて、計算された動作パラメータを様々な回路ブロックに提供する場合がある。
【００４８】
別の実施形態では、プロセッサは、たとえば、ドライバプログラムコードを実行する際に、１つまたは複数の動作パラメータを受け取るか、または取得することができる。プロセッサは、受け取ったか、または取得した動作パラメータから１つまたは複数の他の動作パラメータを計算することができる。プロセッサは、計算された動作パラメータをクロックモニタ回路に送ることができる。その場合には、制御回路構成３１０は、必要に応じて、プロセッサから受け取った動作パラメータをエラー検出器３２５の様々な回路ブロックに提供することができ、どんな計算も行う必要がない。
【００４９】
図示のように、クロックデバイダ４０５は、監視されるクロック信号４５２（たとえば、ｃｌｋ＿ｉｎ＿Ｎ）を受け取る。クロックデバイダ４０５は、クロック信号４５２を有限値（たとえば除数）によって分割することができる。クロックデバイダ４０５は、さらなる計算を容易にするために除数に基づいてクロック信号４５２の周波数を効果的に低減する。クロックデバイダ４０５は、さらに、信号４５６として示されたクロック信号４５２の分割バージョンをシンクロナイザ４１０に送ることができる。
【００５０】
一例では、クロック信号４５２を分割するのに使用される除数は３２である。クロック信号４５２を分割するのに使用される除数の特定の値は、クロックモニタコアのために最初に指定された動作パラメータに基づいて設定または決定される場合があることを理解されたい。さらに、クロック信号４５２を分割するのに使用される除数の特定の値は、プログラム可能であり、クロックモニタ回路の動作中に変更される場合がある。
【００５１】
図示のように、制御回路構成３１０は、クロックモニタ回路の動作パラメータである除数の値を、信号４５４を介してクロックデバイダ４０５に提供することができる。一実施形態では、除数は、参照信号の周波数およびユーザ指定のトレランスなどの動作パラメータに基づいて計算される場合がある。一実施形態では、プロセッサは、参照信号の更新周波数および／または更新トレランスを受け取るか、または取得し、クロックデバイダ４０５のための除数の更新値を計算することができる。プロセッサは、除数の更新値をクロックモニタ回路に提供することができる。制御回路構成３１０は、信号４５４を介して除数の更新値をクロックデバイダ４０５に提供することができる。
【００５２】
代替として、プロセッサは、参照クロックの更新周波数および／または更新トレランスなどの１つまたは複数の動作パラメータをクロックモニタ回路に提供する。その場合には、制御回路構成３１０は、クロックデバイダ４０５に提供された除数の値を計算することができる。制御回路構成３１０は、除数の値を計算し、この除数を、信号４５４を介してクロックデバイダ４０５に提供する。
【００５３】
さらに別の実施形態では、プロセッサは、入力またはメモリからの除数を取得し、たとえば、この除数を読み込むことができる。プロセッサは、制御回路構成３１０に除数を提供することができる。制御回路構成３１０は、信号４５４を介してクロックデバイダ４０５に除数を提供することができる。
【００５４】
シンクロナイザ４１０は、周波数分割信号４５６および参照信号４５８（たとえば、ｒｅｆ＿ｃｌｋ＿Ｎ）を受け取る。シンクロナイザ４１０は、信号４５６を信号４５８に同期させ、信号４５８の同期バージョンを信号４６０として出力することができる。エラー検出器３２５の残りは、信号４６０を使用して動作する。
【００５５】
エッジ検出器４３０は、信号４６０を受け取る。エッジ検出器４３０は、信号４６０の１つまたは複数の立上りエッジを検出することができる。エッジ検出器４３０は、検出されたエッジを示す出力信号４６２を生成し、信号４６２をカウンタ４１５に提供することができる。図５は、エッジ検出器４３０の動作を示す信号４５２、４５６、および４６２の例示的な波形を示す。
【００５６】
一実施形態では、カウンタ４１５は、アップ／ダウンカウンタとして実装される。カウンタ４１５は、信号４６０において動作する自走カウンタとして動作することができる。一実施形態では、カウンタ４１５は、エッジ検出信号である信号４６０においてハイを検出したことに応答して、カウンタ４１５内に記憶されたカウンタ値を０にリセットすることができる。したがって、カウンタ４１５は、確立された制限内で信号４６０におけるサイクリックエッジ検出を利用する。カウンタ４１５によって計算された値は、信号４６４として比較器４３５に出力される。
【００５７】
一実施形態では、カウンタ４２０は、クロックハイカウンタとして実装される。クロック４２０は、信号４５６（たとえば、クロック信号４５２の分割バージョン）のハイ時間にフィットする（信号４６０の）参照クロックサイクルの数をカウントすることができる。カウンタ４２０によって決定された値は、信号４６６として比較器４４０および比較器４４５に出力される。
【００５８】
一実施形態では、カウンタ４２５は、クロックローカウンタとして実装される。カウンタ４２５は、信号４５６のロー時間にフィットする（信号４６０の）参照クロックサイクルの数をカウントすることができる。カウンタ４２５によって決定された値は、信号４６８として比較器４４５に出力される。
【００５９】
論じたように、監視される各クロック信号に関して、設計者は、クロック信号の周波数（Ｆｕｓｅｒ）の値、クロック信号を監視するのに使用される参照信号の周波数（Ｆｒｅｆｅｒｅｎｃｅ）の値、およびトレランス（Ｆｔｏｌｅｒａｎｃｅ）の値を指定する場合がある。さらに、プロセッサは、クロックモニタ回路の動作中に実時間でこれらの値に基づいてクロックモニタ回路の動作パラメータを更新する場合がある。論じたように、プロセッサおよび／または制御回路構成３１０は、さらなる動作パラメータを計算するために、これらの動作パラメータを使用することができる。
【００６０】
比較器４３５は、カウンタ４１５からの信号４６４を制御回路構成３１０からの信号４７０と比較することができる。一態様では、信号４７０は、信号４６４が比較される上限および／または下限を指定する。比較器４３５は、クロック信号４５２が自走するか、ある部分時間の間、「０」または「１」にスタックするかを決定するために、比較を行うことができる。カウンタ４１５の値が、信号４６４の出力として、上限を上回るか、下限を下回る場合、比較器４３５は、クロック信号４５２が停止される（たとえば、「１」または「０」にスタックされる）ことを示す少なくとも最小量の時間の間、信号４６２（たとえば、エッジ検出信号）がハイに達しなかったと決定する。比較器４３５は、信号４７２（たとえば、ｃｌｋ＿ｓｔｏｐ）を生成し、クロック信号４５２におけるクロック停止エラー状態の検出を示すためにクロックモニタ回路の実装形態に応じて信号をハイまたはローにプルする。
【００６１】
信号４７０によって指定された値は、コアをパラメータ化し、かつ／または動作中に実時間で動的にプログラミングされるとき、ユーザ指定される場合があるクロックモニタ回路の動作パラメータの例である。一実施形態では、上限および下限は、プロセッサによって取得され、制御回路構成３１０に提供される場合がある。別の実施形態では、プロセッサは、クロック周波数、参照周波数、および／またはトレランスなどの他のユーザ提供の動作パラメータに基づいて上限および／または下限を計算する場合がある。さらに別の実施形態では、プロセッサは、クロック周波数、参照周波数、および／またはトレランスを制御回路構成３１０に提供する場合があり、制御回路構成３１０は、上限および／または下限を計算する場合がある。どんな場合でも、上限および／または下限は、信号４７０を介して比較器４３５に提供される場合がある。
【００６２】
比較器４４０は、カウンタ４２０からの信号４６６および制御回路構成３１０からの信号４７４を受け取る。論じたように、信号４６６は、信号４６０がハイである時間量を示す。信号４７４は、Ｃｏｕｎｔ＿２の値を指定する。比較器４４０は、信号４６６をＣｏｕｎｔ＿２（信号４７４）と比較することができる。信号４６６の値がＣｏｕｎｔ＿２を上回る場合、許容されるよりも多い参照クロックサイクルがクロック信号４５２のサイクル内にフィットし、クロック信号４５２の周波数が許容されるよりも低いこと（たとえば、クロックアンダーラン）を示す。信号４６６の値がＣｏｕｎｔ＿２よりも小さい場合、許容されるよりも少ない参照クロックサイクルがクロック信号４５２のサイクル内にフィットし、クロック信号４５２の周波数が許容されるよりも高いこと（たとえば、クロックオーバーラン）を示す。いずれの場合でも、比較器４４０は、信号４５２の周波数が範囲外であることを示す信号４７６（たとえば、ｃｌｋ＿ｏｏｒ）を生成する。たとえば、比較器４４０は、クロック信号４５２に関する範囲外クロックエラー状態を示すためにクロックモニタ回路の実装形態に応じて信号４７６をハイまたはローにプルする場合がある。
【００６３】
Ｃｏｕｎｔ＿２の値は、信号４７４によって指定されるが、コアをパラメータ化し、かつ／または動作中に実時間で動的にプログラミングされるとき、ユーザ指定される場合があるクロックモニタ回路の動作パラメータの別の例である。一実施形態では、Ｃｏｕｎｔ＿２は、プロセッサによって取得され、制御回路構成３１０に提供される場合がある。別の実施形態では、プロセッサは、クロック周波数、参照周波数、および／またはトレランスなどの他のユーザ提供の動作パラメータに基づいてＣｏｕｎｔ＿２を計算する場合がある。さらに別の実施形態では、プロセッサは、クロック周波数、参照周波数、および／またはトレランスを制御回路構成３１０に提供する場合があり、制御回路構成３１０は、Ｃｏｕｎｔ＿２を計算する場合がある。どんな場合でも、Ｃｏｕｎｔ＿２は、信号４７４を介して比較器４４０に提供される場合がある。
【００６４】
比較器４４５は、信号４６６およびカウンタ４２５からの信号４６８を受け取る。論じたように、信号４６６は、信号４６０がハイである時間量を示す。信号４６８は、信号４６０がローである時間量を示す。比較器４４５は、信号４６６を信号４６８と比較することができる。比較器４４５は、信号４６６の値が信号４６８の値とマッチングするかどうかを決定することができる。信号４６６と４６８の値が、マッチングしない場合、たとえば互いに所定の範囲またはトレランス内にない場合、比較器４４５は、グリッチエラー状態がクロック信号４５２において起こったと決定し、信号４７８（たとえば、ｃｌｋ＿ｇｌｉｔｃｈ）を生成する。たとえば、比較器４４５は、クロック信号４５２に関するグリッチの発生を示すためにクロックモニタ回路の実装形態に応じて信号４７８をハイまたはローにプルする場合がある。
【００６５】
１つの例示的な実施形態では、信号４７２、４７６、および４７８が、１つまたは複数の他の回路に提供される。別の例示的な実施形態では、信号４７２、４７６、および４７８が、制御回路構成３１０に提供される。制御回路構成３１０は、たとえば、（複数のエラー検出器３２５のいずれかからの）任意の監視されたクロック信号における１つまたは複数のエラー状態の検出に応答して割込み信号を生成する回路構成を含むことができる。たとえば、クロックモニタ回路がＮ個の異なるエラー検出器３２５を含む場合、制御回路構成３１０は、エラー検出器３２５の各々からの信号４７２、４７６、および４７８の均等物を受け取り、監視されたクロック信号のいずれかにおけるクロックエラー状態の検出に応答して、割込みコントローラおよび／またはプロセッサに提供される割込み信号を生成することができる。エラー検出器３２５の各々からの信号４７２、４７６、および４７８は、１つまたは複数の他の回路に、かつ制御回路構成３１０にも提供される場合があることを理解されたい。
【００６６】
限定ではなく例示のために、さらに、上述した動作パラメータの１つまたは複数を計算することの例が以下に示される。動作パラメータは、示された特定の式を使用してプロセッサまたは制御回路構成３１０によって計算される場合がある。値の各々は、クロックモニタ回路の動作を変更するためにクロックモニタ回路の動作中に動的に更新される場合がある。一実施形態では、Ｃｏｕｎｔ＿ｓｔｏｐパラメータは、信号４７０によって指定された上限として使用される場合がある。
2019536146.tif 000003
【００６７】
図６は、回路設計部内にクロックモニタ回路を実装する例示的な方法６００である。方法６００は、ＥＤＡツール（以下、「システム」）によって実行される場合がある。ＥＤＡツールの例は、オペレーティングシステムおよびＥＤＡアプリケーションなどの適切な運用ソフトウェアを実行するコンピュータなどのデータ処理システムである。方法６００は、設計者がシステムを使用中で回路設計部をシステム内に作成またはロードした状態で開始する場合がある。
【００６８】
ブロック６０５では、システムは、回路設計部内にクロックモニタ回路を含むことを求める要求または命令を受け取る。ブロック６１０では、システムは、クロックモニタ回路のための１つまたは複数の動作パラメータを受け取る。たとえば、回路設計部内にクロックモニタ回路を含むことを求める要求に応答して、システムは、設計者がクロックモニタ回路のための最初の動作パラメータとして値を提供する場合があるユーザインターフェースを提示する場合がある。これらの動作パラメータは、監視されるクロック信号の数、監視される特定のクロック信号などの情報を指定する場合がある。さらに、システムによって受け取られ記憶される場合がある動作パラメータは、限定はしないが、監視されるクロック信号ごとのベースで、監視されるクロック信号の周波数、使用される参照クロック、参照クロックの周波数、およびトレランスを含む。
【００６９】
一態様では、ブロック６１０に記載された動作パラメータは、システムが、設計フローを通して、値を維持し、クロックモニタコアを含む回路設計部を処理するための値を使用するので、最初の動作パラメータと呼ばれる場合がある。２つ以上のクロックモニタ回路は、監視されるクロック信号の数に応じて回路設計部内に含まれる場合があることを理解されたい。たとえば、監視される回路設計部のクロック信号の数がＮ個のクロック信号を上回る場合、シングルクロックモニタコアが監視する場合があるクロック信号の最大数を参照して、追加のクロックモニタ回路が含まれる場合がある。
【００７０】
ブロック６１５では、システムは、回路設計部における設計フローを実行する。設計フローの一部として、システムは、合成、配置、ルーティング、およびビットストリーム生成を実行することができる。ブロック６２０では、システムは、ターゲットＩＣ内に得られた回路設計部をクロックモニタ回路とともに実装する。回路設計部は、本システムによってターゲットＩＣにロードされるか、または別のシステム（たとえば、ボリュームにおいて回路設計部をターゲットＩＣにロードすることが可能なシステム）によって複数のＩＣにロードされる場合があることを理解されたい。
【００７１】
図７は、ＩＣ内のクロックモニタ回路の動作の例示的な方法７００である。方法７００は、クロックモニタ回路を含む回路設計部がターゲットＩＣ内に実装される状態で開始する場合がある。例示のためにかつ説明を容易にするために、１つのクロックモニタ回路が仮定されるが、２つ以上のクロックモニタ回路がターゲットＩＣに含まれる場合がある。
【００７２】
ブロック７０５では、クロックモニタ回路は、回路設計部の監視されたクロック信号の各々におけるクロックエラー状態の発生を監視することを開始する。ブロック７１０では、クロックモニタ回路は、クロックエラー状態が、監視されたクロック信号の１つまたは複数において検出されるかどうかを決定する。そうであれば、方法７００は、ブロック７１５に続く。そうでないなら、方法７００は、ブロック７０５にループバックする。
【００７３】
ブロック７１５では、クロックエラー状態を検出したことに応答して、クロックモニタ回路は、プロセッサへの割込みを生成する。この割込みは、プロセッサに直接提供される場合があるか、またはプロセッサに結合された割込みコントローラに提供される場合がある。
【００７４】
ブロック７２０では、クロックモニタ回路は、プロセッサにクロックエラー状態データを提供するか、またはそうでなく、そのようなデータをプロセッサが利用できるようにする。たとえば、クロックエラー状態を検出したクロックモニタ回路は、クロックエラー状態が検出される特定のクロック信号、および検出されたクロックエラー状態のタイプを認識する。一実施形態では、クロックモニタ回路は、プロセッサに結合された１つまたは複数の信号を介してプロセッサにデータを提供する。別の実施形態では、割込みを受け取ったことに応答して、プロセッサは、クロックモニタ回路からのデータを読み込む場合がある。
【００７５】
クロックエラー状態データを取得したプロセッサは、複数の異なる割込み処理ルーチンの１つまたは複数を実装する場合があることを理解されたい。プロセッサは、たとえば、複数の異なる割込み処理ルーチンにアクセスし、クロックエラー状態が検出されるクロック信号、および／または検出されたクロックエラー状態のタイプに基づいて実行のための特定の割込み処理ルーチンを選択する場合がある。たとえば、プロセッサは、クロック信号をリセットし、ターゲットＩＣのすべてもしくは一部分をシャットダウンし、または別のアクションを実行する場合がある。１つまたは複数の異なるクロックにおける異なるクロックエラー状態を検出する能力によって、プロセッサは、すべてのクロック信号および／またはクロックエラー状態に共通の１つの例外処理アプローチを使用するよりもカスタムメードのまたは調整された応答で各クロックエラー状態またはクロックエラー状態の組合せに応答することが可能になる。
【００７６】
ブロック７２５では、クロックモニタ回路は、プロセッサが新しい動作パラメータおよび／または更新された動作パラメータを提供したかどうかを決定する。論じたように、プロセッサは、プロセッサが新しい動作パラメータおよび／または更新された動作パラメータをクロックモニタ回路に送ることを可能にするドライバを実行する場合がある。クロックモニタ回路がプロセッサからの動作パラメータを受け取る場合、方法７００は、ブロック７３０に続く。そうでない場合、クロックモニタ回路は、監視されたクロック信号に関するさらなるクロックエラー状態を監視し続けるためにブロック７０５にループバックする。
【００７７】
ブロック７３０では、クロックモニタ回路は、ブロック７２５においてプロセッサから受け取った動作パラメータによってクロックモニタ回路に記憶された動作パラメータを更新する。一実施形態では、プロセッサは、ドライバプログラムコードを実行する際に、本明細書に記載されるように、限定はしないが、Ｃｏｕｎｔｅｒ１＿ｗｉｄｔｈ、Ｃｏｕｎｔｅｒ１＿ｖａｌｕｅ、Ｕｓｅｒ＿ｃｌｏｃｋ＿ｃｏｕｎｔｓ、Ｃｏｕｎｔ＿ｓｔｏｐ、およびＣｏｕｎｔ＿２を含む例示的な動作パラメータの更新値を計算することができる。たとえば、プロセッサは、監視されたクロック信号の更新周波数、参照クロックの更新周波数、および／または更新トレランスなどの１つまたは複数のクロック信号に関して動作中に入力を受け取る場合がある。プロセッサは、新しい入力および／または更新された入力を受け取ったことに応答して、関連のクロック信号におけるＣｏｕｎｔｅｒ１＿ｗｉｄｔｈ、Ｃｏｕｎｔｅｒ１＿ｖａｌｕｅ、Ｕｓｅｒ＿ｃｌｏｃｋ＿ｃｏｕｎｔｓ、Ｃｏｕｎｔ＿ｓｔｏｐ、およびＣｏｕｎｔ＿２の更新値を計算する場合がある。プロセッサは、さらに、計算された動作パラメータをクロックモニタ回路に送ることができる。これらの値は、本明細書に先に記載したように、制御レジスタに記憶され、クロックモニタ回路の関連の回路ブロックに提供される場合がある。
【００７８】
別の実施形態では、プロセッサは、監視されたクロック信号の更新周波数、参照クロック信号の更新周波数、および／または更新トレランスなどの１つまたは複数のクロック信号に関して動作中に入力を受け取る場合がある。プロセッサは、新しい入力および／または更新された入力を受け取ったことに応答して、これらの更新値をクロックモニタ回路に提供する場合がある。その場合に、コントローラ回路構成は、これらの値を受け取る場合がある。コントローラ回路構成は、本明細書に記載されるように、限定はしないが、受け取った値からの関連のクロック信号に関する、Ｃｏｕｎｔｅｒ１＿ｗｉｄｔｈ、Ｃｏｕｎｔｅｒ１＿ｖａｌｕｅ、Ｕｓｅｒ＿ｃｌｏｃｋ＿ｃｏｕｎｔｓ、Ｃｏｕｎｔ＿ｓｔｏｐ、およびＣｏｕｎｔ＿２の値を含む例示的な動作パラメータを計算することができる。これらの更新値は、先に記載したように、制御レジスタに記憶され、クロックモニタ回路の関連の回路ブロックに提供される場合がある。
【００７９】
さらに別の実施形態では、プロセッサは、プロセッサもコントローラ回路構成も更新値を計算する必要がないようにクロックモニタ回路内で更新される動作パラメータを取得し、または読み込む場合がある。説明では、プロセッサは、本明細書に記載されるように、限定はしないが、Ｃｏｕｎｔｅｒ１＿ｗｉｄｔｈ、Ｃｏｕｎｔｅｒ１＿ｖａｌｕｅ、Ｕｓｅｒ＿ｃｌｏｃｋ＿ｃｏｕｎｔｓ、Ｃｏｕｎｔ＿ｓｔｏｐ、およびＣｏｕｎｔ＿２を含む例示的な動作パラメータの値を取得し、または読み込む場合がある。プロセッサは、さらに、クロックモニタ回路に動作パラメータを送ることができる。これらの値は、本明細書に先に記載したように、制御レジスタに記憶され、クロックモニタ回路の関連の回路ブロックに提供される場合がある。ブロック７３０の後、方法７００は、動作し続けるためにブロック７０５にループバックする場合がある。
【００８０】
説明を目的として、特定の用語は、本明細書に開示された様々な発明概念の完全な理解を与えるために記載される。しかし、本明細書に使用された専門用語は、本発明の構成の特定の態様を説明するためだけにあり、限定を目的としない。
【００８１】
本明細書に定義されるように、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、コンテキストが別段に明確に示していなければ、複数形も含むことが意図される。本明細書に定義されるように、「ａｎｏｔｈｅｒ」という用語は、少なくとも第２番目以上を意味する。本明細書に定義されるように、「少なくとも１つ」、「１つまたは複数」、および「および／または」という用語は、別段にはっきりと記載されなければ、機能時に連言的と選言的の両方であるオープンエンドの表現である。たとえば、「Ａ、ＢおよびＣの少なくとも１つ」、「Ａ、Ｂ、またはＣの少なくとも１つ」、「Ａ、Ｂ、およびＣの１つまたは複数」、「Ａ、Ｂ、またはＣの１つまたは複数」および「Ａ、Ｂ、および／またはＣ」という表現の各々は、Ａ単独、Ｂ単独、Ｃ単独、ＡとＢの組合せ、ＡとＣの組合せ、ＢとＣの組合せ、またはＡとＢとＣの組合せを意味する。本明細書に定義されるように、「自動的に」という用語は、ユーザの介在がないことを意味する。
【００８２】
本明細書に定義されるように、「コンピュータ読取可能記憶媒体」という用語は、命令実行システム、装置、もしくはデバイスによって、またはそれらと接続して使用するためのプログラムコードを含むか、または記憶する記憶媒体を意味する。本明細書に定義されるように、「コンピュータ読取可能記憶媒体」は、それ自体、一時的な伝搬信号ではない。コンピュータ読取可能記憶媒体は、限定はしないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上述のものの任意の適切な組合せであってもよい。メモリ要素は、本明細書に記載されるように、コンピュータ読取可能記憶媒体の例である。コンピュータ読取可能記憶媒体のより具体的な例の網羅的でないリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリーメモリ（ＥＰＲＯＭまたはフラッシュメモリ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ポータブルコンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリスティック、フロッピーディスク、パンチカードまたは命令が上に記録された溝内の突起構造物などの機械的符号化デバイス、および上述のものの任意の適切な組合せを含んでもよい。
【００８３】
本明細書に定義されるように、「結合された」という用語は、別段に示されなければ、任意の介在要素なしに直接的にせよ、または１つもしくは複数の介在要素によって間接的にせよ、接続されることを意味する。２つの要素は、機械的に、電気的に結合されるか、または通信チャネル、経路、ネットワーク、またはシステムを通して通信可能にリンクされてもよい。本明細書に定義されるように、「含む」、「含んでいる」、「備える」、および／または「備えている」という用語は、記載された特徴、整数、ステップ、動作、要素、および／または構成要素の存在を明記するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および／またはそれらのグループの存在または追加を除外しない。本明細書に定義されるように、「出力する」という用語は、デバイスなどの物理的メモリ要素に記憶すること、ディスプレイまたは他の周辺出力デバイスに書き込むこと、別のシステムに送出または伝送すること、エクスポートすることなどを意味する。本明細書に定義されるように、「複数」という用語は、２つまたは３つ以上を意味する。
【００８４】
本明細書に定義されるように、「ｉｆ」という用語は、コンテキストに応じて「ｗｈｅｎ（とき）」または「ｕｐｏｎ（同時に）」または「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ（〜に応答して）」または「ｒｅｓｐｏｎｓｉｖｅ  ｔｏ（〜に応答して）」を意味する。したがって、「ｉｆ  ｉｔ  ｉｓ  ｄｅｔｅｒｍｉｎｅｄ（それが決定される場合）」または「ｉｆ［記載された条件または事象］  ｉｓ  ｄｅｔｅｃｔｅｄ（〜が検出される場合）」という句は、コンテキストに応じて、「ｕｐｏｎ  ｄｅｔｅｒｍｉｎｇ（決定すると同時に）」または「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｇ（決定したことに応答して）」または「ｕｐｏｎ  ｄｅｔｅｃｔｉｎｇ［記載された条件または事象］（〜を検出すると同時に）」または「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ［記載された条件または事象］（〜を検出したことに応答して）」または「ｒｅｓｐｏｎｓｉｖｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ［記載された条件または事象］（〜を検出したことに応答して）」を意味するものと解釈されてもよい。本明細書に定義されるように、「ｒｅｓｐｏｎｓｉｖｅ  ｔｏ（〜に応答して）」という用語は、アクションまたは事象にすぐに応答または反応することを意味する。したがって、第１のアクション「に応答して」第２のアクションが実行される場合、第１のアクションの発生と第２のアクションの発生との間の因果関係が存在する。「ｒｅｓｐｏｎｓｉｖｅ  ｔｏ（〜に応答して）」という用語は、因果関係を示す。
【００８５】
本明細書に定義されるように、「ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ（一実施形態）」、「ａｎ  ｅｍｂｏｄｉｍｅｎｔ（実施形態）」という用語、または同様の言葉は、この実施形態に関連して記載された特定の特徴、構造、または特性が、本開示内に記載された少なくとも１つの実施形態に含まれることを意味する。したがって、「ｉｎ  ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ（一実施形態では）」、「ｉｎ  ａｎ  ｅｍｂｏｄｉｍｅｎｔ（実施形態では）」という句、および同様の言葉の出現は、本開示を通して、必要なわけではないが、すべて同じ実施形態を意味してもよい。
【００８６】
本明細書に定義されるように、「プロセッサ」という用語は、プログラムコードに含まれる命令を実行するように構成された少なくとも１つのハードウェア回路を意味する。ハードウェア回路は、集積回路であってもよい。プロセッサの例は、限定はしないが、中央処理ユニット（ＣＰＵ）、アレイプロセッサ、ベクトルプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジック回路構成、グラフィックスプロセッシングユニット（ＧＰＵ）、コントローラなどを含む。
【００８７】
本明細書に定義されるように、「実時間」という用語は、特定のプロセスもしく決定が十分にすばやくなされることをユーザもしくはシステムが感知するか、またはプロセッサが何らかの外部のプロセスについていくことを可能にする処理応答性のレベルを意味する。本明細書に定義されるように、「ユーザ」という用語は、人間を意味する。第１、第２などの用語は、様々な要素を説明するために本明細書に使用される場合がある。これらの要素は、別段に記載されるか、またはコンテキストが別段にはっきりと示すものでなければ、これらの用語が１つの要素と別の要素とを区別するために使用されるにすぎないので、これらの用語によって限定されるべきでない。
【００８８】
いくつかの例では、「信号」という用語は、端子、ピン、信号ライン、ワイヤなどの物理的構造を説明するために本開示内で使用される場合がある。他の例では、「信号」という用語は、ワイヤによって指定された特定の値を指すために使用される場合がある。「信号」という用語は、シングルワイヤなどのシングルビットの伝達、または多重並列ワイヤによる多重並列ビットの伝達を意味する場合がある。さらに、各信号は、信号によって接続された２つ以上の構成要素の間の双方向通信を表す場合がある。
【００８９】
コンピュータプログラム製品は、本明細書に記載された本発明の構成の態様をプロセッサに実行させるために上にコンピュータ読取可能プログラム命令を有するコンピュータ読取可能記憶媒体を含む場合がある。本開示内で、「プログラムコード」という用語は、「コンピュータ読取可能プログラム命令」という用語と同義で使用される。本明細書に記載されたコンピュータ読取可能プログラム命令は、コンピュータ読取可能記憶媒体からそれぞれの計算／処理デバイスに、またはインターネット、ＬＡＮ、ＷＡＮ、および／もしくはワイヤレスネットワークなどのネットワークを介して外部のコンピュータもしくは外部の記憶デバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイヤーウォール、スイッチ、ゲートウェイコンピュータ、および／またはエッジサーバを含むエッジデバイスを含んでもよい。各計算／処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ読取可能プログラム命令を受け取り、それぞれの計算／処理デバイス内のコンピュータ読取可能記憶媒体に記憶するためにコンピュータ読取可能プログラム命令を転送する。
【００９０】
本明細書に記載された本発明の構成の動作を実行するためのコンピュータ読取可能プログラム命令は、アセンブラ命令、インストラクションセットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、または、オブジェクト指向プログラミング言語および／もしくは手続き型プログラミング言語を含む、１つもしくは複数のプログラミング言語の任意の組合せで書かれたソースコードもしくはオブジェクトコードのいずれかであってもよい。コンピュータ読取可能プログラム命令は、状態設定データを含む場合がある。コンピュータ読取可能プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、独立型ソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、リモートコンピュータ上で部分的に、またはリモートコンピュータもしくはサーバ上で完全に実行する場合がある。後者のシナリオでは、リモートコンピュータが、ＬＡＮまたはＷＡＮを含む任意のタイプのネットワークを通してユーザのコンピュータに接続される場合があるか、または、（たとえば、インターネットサービスプロバイダを使用してインターネットを通して）外部のコンピュータに接続がなされる場合がある。いくつかの場合には、たとえば、プログラム可能ロジック回路構成、ＦＰＧＡ、またはＰＬＡを含む電子回路構成は、本明細書に記載された本発明の構成の態様を実行するために、電子回路構成を個人向けにするようにコンピュータ読取可能プログラム命令の状態情報を利用することによってコンピュータ読取可能プログラム命令を実行する場合がある。
【００９１】
本発明の構成のいくつかの態様は、方法、装置（システム）、およびコンピュータプログラム製品のフローチャート命令および／またはブロックダイヤグラムに関して本明細書に記載される。フローチャートの少なくともいくつかに関して、フローチャート図および／またはブロックダイヤグラムの１つもしくは複数のブロックまたは各ブロック、ならびにフローチャート図および／またはブロックダイヤグラムのブロックの組合せが、プログラムコードなどのコンピュータ読取可能プログラム命令によって実装される場合があることが理解されよう。
【００９２】
これらのコンピュータ読取可能プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能データ処理装置を介して実行する命令が、フローチャート内に指定された機能／動作および／または１つもしくは複数のブロックダイヤグラムブロックを実装するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または機械を製作するための他のプログラム可能データ処理装置のプロセッサに提供される場合がある。これらのコンピュータ読取可能プログラム命令は、内部に記憶された命令を有するコンピュータ読取可能記憶媒体が、フローチャートおよび／または１つもしくは複数のブロックダイヤグラムブロック内に指定された動作の態様を実装する命令を含む製造品を備えるように、コンピュータ、プログラム可能データ処理装置、および／または機能するための他のデバイスを特定の方法で指示することができるコンピュータ読取可能記憶媒体に記憶される場合もある。
【００９３】
コンピュータ読取可能プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートおよび／または１つもしくは複数のブロックダイヤグラムブロック内に指定された機能／動作を実装するように、コンピュータ、他のプログラム可能データ処理装置、またはコンピュータ上で一連の動作を実行させるための他のデバイス、他のプログラム可能装置、またはコンピュータ実装プロセスを作成するための他のデバイス上にロードされる場合もある。
【００９４】
図内のフローチャートおよびブロックダイヤグラムは、本発明の構成の様々な態様に従って、システム、方法、およびコンピュータプログラム製品の考えられる実装形態のアーキテクチャ、機能、および動作を示す。この点で、フローチャートの少なくともいくつかに関しては、フローチャートまたはブロックダイヤグラム内の１つもしくは複数のブロックまたは各ブロックは、指定された動作を実装するための１つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部分を表す場合がある。
【００９５】
いくつかの代わりの実装形態では、ブロックに記載された動作は、図に記載された順序がばらばらで起こる場合がある。たとえば、連続的に示された２つのブロックは、ほぼ同時に実行される場合があるか、または、ブロックは、含まれた機能に応じて、逆順に実行される場合もある。他の例では、ブロックは、一般に増加する番号順に実行される場合があるが、さらに他の例では、１つまたは複数のブロックは、後続のブロック、またはすぐには続かない他のブロックに記憶され利用される結果によって順序を変更しながら実行される場合がある。ブロックダイヤグラムおよび／またはフローチャート図の各ブロック、ならびにブロックダイヤグラムおよび／またはフローチャート図内のブロックの組合せは、指定された機能もしくは動作を実行するか、または専用ハードウェア／コンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装される場合があることにも留意されよう。
【００９６】
以下の特許請求の範囲に見いだされる場合がある、すべての手段またはステップおよび機能要素の対応する構造、材料、動作、および均等物は、具体的に請求されるように、他の請求要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図される。
【００９７】
クロック信号を監視するための装置は、動作パラメータを受け取るように構成されたインターフェース回路と、インターフェース回路に結合され動作パラメータを記憶するように構成された制御回路と、制御回路に結合されたクロックエラー検出回路とを含むことができる。クロックエラー検出回路は、動作パラメータに基づいてクロック信号のクロックエラー状態を検出し、クロックエラー状態を検出したことに応答して、クロックエラー状態の発生を示す信号を生成するように構成される。
【００９８】
一態様では、クロックエラー検出回路は、クロック信号の複数の異なるタイプのクロックエラー状態を同時に検出し、複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すように構成される。
【００９９】
他の態様では、クロックエラー検出回路は、複数の異なるクロック信号の各々におけるクロックエラー状態を同時に検出し、エラー状態とともに複数のクロック信号のうちのクロック信号を示すように構成される。たとえば、クロックエラー検出回路は、複数の異なるクロック信号の各々における複数の異なるタイプのクロックエラー状態を検出し、複数のクロック信号の各それぞれのクロック信号に関して、複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すように構成される。
【０１００】
信号は、プロセッサに提供される場合があり、割込みを含むことができる。
【０１０１】
インターフェースは、動作パラメータを送るように構成されたプロセッサに結合することができる。
【０１０２】
動作パラメータは、クロック停止エラー状態を検出し、クロックグリッチエラー状態を検出し、かつ／または範囲外クロックエラー状態を検出するために使用される場合がある。
【０１０３】
さらなる態様では、インターフェース回路、制御回路、およびクロックエラー検出回路は、集積回路のプログラム可能回路構成内に実装される。
【０１０４】
クロック信号を監視する方法は、クロックモニタ回路において、プロセッサから動作パラメータを受け取ることと、動作パラメータに基づいてクロックモニタ回路のクロックエラー検出回路を更新することと、動作パラメータに基づいてクロックエラー検出回路を使用してクロック信号のクロックエラー状態を検出することとを含むことができる。本方法は、クロックエラー状態を検出したことに応答して、クロックエラー状態の発生を示す信号を生成することも含むことができる。
【０１０５】
一態様では、クロックエラー状態を検出することは、クロック信号の複数の異なるタイプのクロックエラー状態を同時に監視することと、複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すこととを含む。
【０１０６】
別の態様では、クロックエラー状態を検出することは、複数の異なるクロック信号の各々におけるクロックエラー状態を同時に監視することと、エラー状態とともに複数のクロック信号のうちのクロック信号を示すこととを含む。
【０１０７】
別の態様では、クロックエラー状態を検出することは、複数の異なるクロック信号の各々における複数の異なるタイプのクロックエラー状態を同時に監視することと、複数のクロック信号の各それぞれのクロック信号に関して、複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すこととを含む。
【０１０８】
信号は、プロセッサに提供することができ、割込みを含むことができる。
【０１０９】
動作パラメータは、プロセッサから受け取ることができる。
【０１１０】
動作パラメータは、クロック停止エラー状態を検出し、クロックグリッチエラー状態を検出し、かつ／または範囲外クロックエラー状態を検出するために使用することができる。
【０１１１】
さらなる態様では、本方法は、集積回路のプログラム可能回路構成内にクロックモニタ回路を実装することを含むことができる。
【０１１２】
本明細書に提供された本発明の構成の説明は、例示を目的とし、網羅的であるかまたは開示された形式および例に限定されることを目的とするものではない。本明細書に使用された専門用語は、本発明の構成の原理、実際の適用例、または市場に見いだされる技術に関する技術的改善を説明し、かつ／または当業者が本明細書に開示された本発明の構成を理解することを可能にするために選択される。修正および変更は、記載された本発明の構成の範囲および思想から逸脱することなく当業者には明らかであろう。したがって、そのような特徴および実装形態の範囲を示すように、先の開示ではなく、次の特許請求の範囲に参照がなされるべきである。
【図１】
2019536146.tif 000004
【図２】
2019536146.tif 000005
【図３】
2019536146.tif 000006
【図４】
2019536146.tif 000007
【図５】
2019536146.tif 000008
【図６】
2019536146.tif 000009
【図７】
2019536146.tif 000010
【手続補正書】
【提出日】平成30年4月20日(2018.4.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クロック信号を監視するための装置であって、
動作パラメータを受け取るように構成されたインターフェース回路と、
前記インターフェース回路に結合され前記動作パラメータを記憶するように構成された制御回路と、
前記制御回路に結合されたクロックエラー検出回路であって、前記動作パラメータに基づいてクロック信号のクロックエラー状態を検出し、前記クロックエラー状態を検出したことに応答して、前記クロックエラー状態の発生を示す信号を生成するように構成される、クロックエラー検出回路と
を備え、
前記クロックエラー検出回路が、前記クロック信号がハイである時間量と、前記クロック信号がローである時間量との比較に少なくとも部分的に基づいて前記クロックエラー状態の前記発生を検出するように構成される、
装置。
【請求項２】
前記クロックエラー検出回路が、前記クロック信号の複数の異なるタイプのクロックエラー状態を同時に検出し、前記複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すように構成される、請求項１に記載の装置。
【請求項３】
前記クロックエラー検出回路が、複数の異なるクロック信号の各々における前記クロックエラー状態を同時に検出し、前記エラー状態とともに前記複数のクロック信号のうちの前記クロック信号を示すように構成される、請求項１に記載の装置。
【請求項４】
前記クロックエラー検出回路が、前記複数の異なるクロック信号の各々における複数の異なるタイプのクロックエラー状態を検出し、前記複数のクロック信号の各それぞれのクロック信号に関して、前記複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すように構成される、請求項３に記載の装置。
【請求項５】
前記信号が、プロセッサに提供され、割込みを含む、請求項１に記載の装置。
【請求項６】
前記インターフェースが、前記動作パラメータを送るように構成されたプロセッサに結合される、請求項１に記載の装置。
【請求項７】
前記動作パラメータが、クロック停止エラー状態を検出するために使用される、請求項１に記載の装置。
【請求項８】
前記動作パラメータが、クロックグリッチエラー状態を検出するために使用される、請求項１に記載の装置。
【請求項９】
前記動作パラメータが、範囲外クロックエラー状態を検出するために使用される、請求項１に記載の装置。
【請求項１０】
前記インターフェース回路、前記制御回路、および前記クロックエラー検出回路が、集積回路のプログラム可能回路構成内に実装される、請求項１に記載の装置。
【請求項１１】
クロック信号を監視する方法であって、
クロックモニタ回路において、プロセッサから動作パラメータを受け取ることと、
前記動作パラメータに基づいて前記クロックモニタ回路のクロックエラー検出回路を更新することと、
前記クロック信号がハイである時間量と、前記クロック信号がローである時間量とを少なくとも部分的に比較することによって、前記動作パラメータに基づいて前記クロックエラー検出回路を使用してクロック信号のクロックエラー状態を検出することと、
前記クロックエラー状態を検出したことに応答して、前記クロックエラー状態の発生を示す信号を生成することと
を備える、方法。
【請求項１２】
クロックエラー状態を検出することが、前記クロック信号の複数の異なるタイプのクロックエラー状態を同時に監視することと、前記複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すこととを備える、請求項１１に記載の方法。
【請求項１３】
クロックエラー状態を検出することが、複数の異なるクロック信号の各々における前記クロックエラー状態を同時に監視することと、前記エラー状態とともに前記複数のクロック信号のうちの前記クロック信号を示すこととを備える、請求項１１に記載の方法。
【請求項１４】
クロックエラー状態を検出することが、前記複数の異なるクロック信号の各々における複数の異なるタイプのクロックエラー状態を同時に監視することと、前記複数のクロック信号の各それぞれのクロック信号に関して、前記複数の異なるタイプのクロックエラー状態のどれが検出されるかを示すこととを備える、請求項１３に記載の方法。
【請求項１５】
前記信号が、プロセッサに提供され、割込みを含む、請求項１１に記載の方法。
【国際調査報告】
2019536146.tif 000011
2019536146.tif 000012
2019536146.tif 000013