(57)【要約】  集積回路内の信号を監視することは、集積回路１００内に実装されたロジックアナライザ回路１１０を使用して集積回路１００のプローブ対象信号を監視すること４０５、ロジックアナライザ回路１１０を使用してプローブ対象信号の状態変化を検出すること４１５、およびロジックアナライザ回路１１０内で、プローブ対象信号のタイムスタンプされた状態変化を指定するファイル１２０を生成すること４３０を含むことができる。【選択図】図１
2020529064.tif 000002
【特許請求の範囲】
【請求項１】
集積回路内の信号を監視するための方法であって、
集積回路内に実装されたロジックアナライザ回路を使用して、前記集積回路のプローブ対象信号を監視することと、
前記ロジックアナライザ回路を使用して、前記プローブ対象信号の状態変化を検出することと、
前記ロジックアナライザ回路内で、前記プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、
を含む方法。
【請求項２】
前記ファイルはＡＳＣＩＩフォーマットで指定されるか、または前記ファイルは値変化ダンプファイルである、請求項１に記載の方法。
【請求項３】
生成された前記ファイルを実質的にリアルタイムで外部システムに出力すること
をさらに含む、請求項１に記載の方法。
【請求項４】
前記プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始すること
をさらに含む、請求項１に記載の方法。
【請求項５】
前記集積回路内のプロセッサに前記ファイルを提供することであって、前記プロセッサはプログラムコードを実行するように構成される、前記集積回路内のプロセッサに前記ファイルを提供すること、または、
前記ファイルを外部システムに提供することであって、前記外部システムは前記ファイルの視覚化を生成するように構成される、前記ファイルを外部システムに提供すること
をさらに含む、請求項１に記載の方法。
【請求項６】
前記ファイルを生成することは、
ヘッダーセクションを符号化することと、
変数定義セクションを符号化することと、
初期値セクションを符号化することと、
値変化セクションを符号化することと、
を含む、請求項１に記載の方法。
【請求項７】
前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項１に記載の方法。
【請求項８】
信号を生成するように構成された監視対象回路と、
前記信号を監視して前記信号の状態変化を検出し、前記信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されたロジックアナライザ回路と、
を含む集積回路。
【請求項９】
前記ファイルは、ＡＳＣＩＩ形式のファイルまたは値変化ダンプファイルである、請求項８に記載の集積回路。
【請求項１０】
前記ロジックアナライザ回路は、
前記信号を受信して、前記信号の現在の状態が前記信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路と、
前記トレース回路に結合されたファイル生成回路であって、前記信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されたファイル生成回路と、
を含む、請求項８に記載の集積回路。
【請求項１１】
前記トレース回路は、前記信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始するように構成される、請求項１０に記載の集積回路。
【請求項１２】
前記ロジックアナライザ回路は、
前記ファイル生成回路に結合されたインターフェース
を含む、請求項１０に記載の集積回路。
【請求項１３】
前記インターフェースに結合されたプロセッサであって、プログラムコードを実行し、前記ファイルを受信するように構成され、前記ファイルから前記監視対象信号の波形ビューを生成するように構成されたプロセッサ
をさらに含む、請求項１２に記載の集積回路。
【請求項１４】
前記インターフェースに結合された入力／出力回路をさらに含み、前記入力／出力回路は、前記ファイルを外部システムに出力するように構成され、前記外部システムは、前記ファイルから前記信号の波形ビューを生成する、請求項１２に記載の集積回路。
【請求項１５】
前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項８に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、集積回路（ＩＣ）に関し、より詳細には、ＩＣ内の信号を監視するためのロジックアナライザに関する。
【背景技術】
【０００２】
ロジックアナライザは、別の電子システムの１つまたは複数の信号を監視することができる電子システムである。場合によっては、ロジックアナライザは、集積回路（ＩＣ）内に実装される回路設計に組み込むことができるコアとして利用することができる。そのような場合、ロジックアナライザと、ロジックアナライザによって監視される対象回路および／または信号は、同じＩＣ内に実装されてもよい。
【０００３】
通常、ロジックアナライザは、監視対象信号の値をサンプリングする。通常、サンプリングレートはクロックレートと一致して、時間の経過と共に各クロックサイクルで信号の値を取り込む。ロジックアナライザは、ＩＣ自体のメモリ内に結果のデータ、例えばサンプリングされた値を保存するか、データを別のシステムに出力しようとする。サンプリングレート、監視される信号の数、および信号が監視されている時間枠により、ロジックアナライザは大量のデータを生成する。このデータがＩＣに保存されると、かなりの量のメモリが必要になる。このデータがＩＣから出力される場合、かなりの量の帯域幅が必要である。これらの制約は、信号を監視することができる時間枠を制限したり、監視することができる信号の数を制限したりする。
【発明の概要】
【０００４】
１つまたは複数の実施形態は、集積回路（ＩＣ）内の信号を監視するための方法に関する。一態様では、方法は、ＩＣ内に実装されたロジックアナライザ回路を使用して、ＩＣのプローブ対象信号を監視することと、ロジックアナライザ回路を使用して、プローブ対象信号の状態変化を検出することと、ロジックアナライザ回路内で、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、を含む。
【０００５】
いくつかの実施形態では、ファイルはＡＳＣＩＩフォーマットで指定されてもよい。
【０００６】
いくつかの実施形態では、ファイルは値変化ダンプファイルであってもよい。
【０００７】
いくつかの実施形態では、本方法は、生成されたファイルを実質的にリアルタイムで外部システムに出力することをさらに含んでもよい。
【０００８】
いくつかの実施形態では、本方法は、プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始することをさらに含んでもよい。
【０００９】
いくつかの実施形態では、本方法は、集積回路内のプロセッサにファイルを提供することをさらに含んでもよい。プロセッサは、プログラムコードを実行するように構成されてもよい。
【００１０】
いくつかの実施形態では、本方法は、ファイルを外部システムに提供することをさらに含んでもよい。外部システムは、ファイルの視覚化を生成するように構成されてもよい。
【００１１】
いくつかの実施形態では、ファイルを生成することは、ヘッダーセクションを符号化することと、変数定義セクションを符号化することと、初期値セクションを符号化することと、値変化セクションを符号化することと、を含んでもよい。
【００１２】
いくつかの実施形態では、ロジックアナライザ回路は、集積回路のプログラム可能な回路を使用してハードウェアで実装されてもよい。
【００１３】
１つまたは複数の実施形態は、ＩＣに関する。一態様では、ＩＣは、信号を生成するように構成された監視対象回路と、ロジックアナライザ回路と、を含む。ロジックアナライザ回路は、信号を監視して信号の状態変化を検出し、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
【００１４】
いくつかの実施形態では、ファイルはＡＳＣＩＩフォーマットのファイルであってもよい。
【００１５】
いくつかの実施形態では、ファイルは値変化ダンプファイルであってもよい。
【００１６】
いくつかの実施形態では、ロジックアナライザ回路は、信号を受信し、信号の現在の状態が信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路と、トレース回路に結合されたファイル生成回路と、を含んでもよい。ファイル生成回路は、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されてもよい。
【００１７】
いくつかの実施形態では、トレース回路は、信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始するように構成されてもよい。
【００１８】
いくつかの実施形態では、ロジックアナライザ回路は、ファイル生成回路に結合されたインターフェースを含んでもよい。
【００１９】
いくつかの実施形態では、集積回路は、インターフェースに結合されたプロセッサをさらに含んでもよい。プロセッサは、プログラムコードを実行し、ファイルを受信するように構成されてもよい。
【００２０】
いくつかの実施形態では、プロセッサは、ファイルから監視対象信号の波形ビューを生成するように構成されてもよい。
【００２１】
いくつかの実施形態では、集積回路は、インターフェースに結合された入力／出力回路をさらに含んでもよい。入力／出力回路は、ファイルを外部システムに出力するように構成されてもよい。
【００２２】
いくつかの実施形態では、外部システムは、ファイルから信号の波形ビューを生成してもよい。
【００２３】
いくつかの実施形態では、ロジックアナライザ回路は、集積回路のプログラム可能な回路を使用してハードウェアで実装されてもよい。
【００２４】
この概要セクションは、特定の概念を紹介するためだけに提供されており、請求された主題の重要なまたは本質的な特徴を特定するためではない。本発明の構成の他の特徴は、添付の図面および以下の詳細な説明から明らかになるであろう。
【００２５】
本発明の構成は、例として添付図面に示されている。しかし、図面は、示された特定の実施態様のみに本発明の構成を限定するものと解釈するべきではない。以下の詳細な説明を検討し、図面を参照すると、様々な態様および利点が明らかになるであろう。
【図面の簡単な説明】
【００２６】
【図１】ロジックアナライザ回路を含む例示的な集積回路（ＩＣ）を示す図である。
【図２】ロジックアナライザ回路の例示的な実施態様を示す図である。
【図３】ロジックアナライザ回路を含む別の例示的なＩＣを示す図である。
【図４】トレースデータを生成する例示的な方法を示す図である。
【図５】ＩＣの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００２７】
本開示は、新規の特徴を定義する特許請求の範囲で終了するが、本開示内で説明される様々な特徴は、図面と併せて説明を考慮することでよりよく理解されると考えられる。本明細書に記載のプロセス、機械、製造物、およびそれらの任意の変形例は、例示の目的で提供されている。本開示内で説明される特定の構造および機能の詳細は、限定として解釈されるべきではなく、単に特許請求の範囲の基礎として、および実質的に任意の適切に詳細な構造で説明される特徴を様々に採用するように当業者に教示するための代表的な基礎として解釈されるべきである。さらに、本開示内で使用される用語および語句は、限定することを意図するものではなく、説明された特徴の理解可能な説明を提供することを意図している。
【００２８】
本開示は、集積回路（ＩＣ）に関し、より詳細には、ＩＣ内の信号を監視するためのロジックアナライザに関する。本開示内で説明される本発明の構成は、ＩＣの内部信号の監視および解析を容易にする。１つまたは複数の実施形態では、ロジックアナライザはＩＣ内に実装され、「プローブ対象信号」と呼ばれる１つまたは複数の選択された信号を監視することができる。さらに、ロジックアナライザは、ＩＣ自体のプローブ対象信号を解析することができる。
【００２９】
１つまたは複数の実施形態では、ロジックアナライザは、プローブ対象信号の状態変化を検出することができる。ロジックアナライザは、プローブ対象信号の検出された状態変化ごとにタイムスタンプを決定することができる。ロジックアナライザはさらに、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することができる。このファイルは、ＩＣ内のロジックアナライザハードウェアによって生成される。ロジックアナライザはさらに、ＩＣ内の別の回路および／またはシステム、ならびに／あるいはＩＣ外部の別の回路および／またはシステムにファイルを出力することができる。
【００３０】
従来のロジックアナライザは、プローブ対象信号の値を継続的に取り込もうとする。値は、例えば、監視されているシステムのクロックレートでサンプリングされる。サンプリングされた値は、少なくとも論理解析が実行される時間枠のトレースデータとして保存および保持される。したがって、ロジックアナライザは、大量のトレースデータ、例えば、プローブ対象信号が監視される時間枠にわたる各クロックサイクルでの各プローブ対象信号の値を生成して保存する。この量のデータを取り込むには、データを保存するためにＩＣにかなりのメモリリソースが必要である。これは、ロジックアナライザがより大きく複雑になり、監視される電子システムの実装に使用することができるメモリリソース（およびルーティングリソース）が少なくなることを意味する。
【００３１】
また、大量のトレースデータを取り込むと、ＩＣからタイムリーにトレースデータをオフロードするためにかなりの帯域幅が必要になる。多くの場合、ＩＣ内の従来のロジックアナライザは、ジョイントテストアクショングループ（ＪＴＡＧ）インターフェースを使用して、ＩＣからトレースデータをオフロードする。しかし、ＪＴＡＧインターフェースは低速になる傾向がある。例えば、ＪＴＡＧインターフェースは、トレースデータが生成される速度よりもはるかに遅い速度でＩＣからトレースデータをオフロードする。これは、トレースデータを保存するロジックアナライザを実装するために、ＩＣのメモリリソースが不足している可能性があることを意味する。ロジックアナライザの複雑さの増加により、場合によっては、ＩＣ内での実装のための合成、配置、および／またはルーティング中に、回路設計の達成可能な最大動作周波数を下げることができる。そのような場合、従来のロジックアナライザが含まれる回路設計は、従来のロジックアナライザが含まれていない場合よりも遅い周波数で動作する。
【００３２】
本明細書で説明される例示的な実施形態は、状態変化データとしてトレースデータを表すファイルフォーマットを利用することにより、これらの制約およびその他に対処する。ファイルフォーマットは、ロジックアナライザのハードウェア自体によって、またはその中に生成される。ロジックアナライザハードウェアでファイルを生成することにより、ロジックアナライザハードウェアは、事実上、生成されたトレースデータに圧縮形式を適用する。例えば、プローブ対象信号の各サンプリング値は、前のクロックサイクルに対する状態変化を検出するために、数クロックサイクルを超えて保存する必要はない。さらに、結果のファイルは、その中に含まれるトレースデータにアクセスするための独自の復号化技術を必要としないフォーマットで指定される。
【００３３】
本発明の構成のさらなる態様は、図面を参照して以下により詳細に説明される。説明を簡単かつ明確にするために、図に示す要素は必ずしも縮尺通りに描かれていない。例えば、いくつかの要素の寸法は、明確にするために他の要素に比べて誇張されている場合がある。さらに、適切であると考えられる場合、対応する、類似の、または同様の特徴を示すために符号が図の間で繰り返されている。
【００３４】
図１は、ロジックアナライザ回路を含む例示的なＩＣ１００を示す。図１の例では、ＩＣ１００は、様々な異なるタイプのＩＣのいずれかとして実装されてもよい。例には、デジタルＩＣ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルＩＣ、部分的プログラマブルＩＣ、またはその他の適切なＩＣが含まれるが、これらに限定されない。プログラマブルおよび／または部分的プログラマブルＩＣの例には、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）、複合プログラマブルロジックデバイス（ＣＰＬＤ）、ならびに／あるいは１つまたは複数のプログラマブル回路ブロック、プログラマブル回路タイル、または他のプログラム可能な回路を含む他のＩＣが含まれるが、これらに限定されない。
【００３５】
図示するように、ＩＣ１００は監視対象回路１０５を含む。監視対象回路１０５は、ロジックアナライザ回路１１０に結合されている。より具体的には、１つまたは複数のワイヤ１１５または相互接続が、監視対象回路１０５とロジックアナライザ回路１１０とを結合する。ワイヤ１１５の各々が監視対象信号を運ぶ。説明の目的のために、ワイヤ１１５によって搬送される信号は、本明細書では「プローブ対象信号」と呼ばれる。
【００３６】
監視対象回路１０５は、監視される信号（例えば、プローブ対象信号）を含むかまたは生成する任意の回路として実装されてもよい。１つまたは複数の実施形態では、監視対象回路１０５は、ユーザにより指定される回路である。例えば、監視対象回路１０５は、ユーザ回路設計の一部として実装される回路を含んでもよい。プログラマブルＩＣの場合、監視対象回路１０５は、ＩＣのプログラム可能な回路を使用して全体的または部分的に実装されてもよい。
【００３７】
１つまたは複数の実施形態では、ロジックアナライザ回路１１０は、ＩＣ１００内のハードワイヤード回路として実装される。１つまたは複数の他の実施形態では、ロジックアナライザ回路１１０は、ＩＣのプログラム可能な回路内に実装される。例えば、ロジックアナライザ１１０は、監視対象回路１０５を含むユーザ回路設計に組み込まれ得るコア、回路もしくはコアのパラメータ化可能部分、または回路の所定のユニットとして提供されてもよい。後者の場合、プログラム可能な回路で実装される場合、ロジックアナライザ回路１１０はユーザが選択可能な数のプローブポートを有することができる。各プローブポートは、ユーザが選択可能なプローブ幅を有することができる。
【００３８】
いずれの場合でも、ロジックアナライザ回路１１０は、プログラムコードを実行するプロセッサとして実装されていない。むしろ、ロジックアナライザ回路１１０は、ハードワイヤードまたはハード回路、プログラム可能な回路、またはハード回路とプログラム可能な回路の組み合わせとして実装されるかどうかにかかわらず、本明細書に記載の動作を実行するための専用の回路である。
【００３９】
ロジックアナライザ回路１１０は、ワイヤ１１５によって運ばれるプローブ対象信号を受信することができる。ロジックアナライザ回路１１０はさらに、プローブ対象信号を解析することができる。１つまたは複数の実施形態では、ロジックアナライザ回路１１０は、監視対象回路１０５から受信したプローブ対象信号の各々の状態変化を検出することができる。検出された状態変化ごとに、ロジックアナライザ回路１１０は、検出された状態変化が生じたタイムスタンプを決定することができる。１つまたは複数の実施形態では、ロジックアナライザ回路１１０は、検出された状態変化に関係なくサンプリング信号値を連続的に保存するのではなく、プローブ対象信号のタイムスタンプされた状態変化のみを少なくとも一時的に保存する。
【００４０】
１つまたは複数の実施形態では、ロジックアナライザ回路１１０は、トリガ条件を検出することができる。トリガ条件は、プローブ対象信号のうちの１つまたは複数で特定のまたは所定の状態が発生することである。ロジックアナライザ回路１１０は、プローブ対象信号の状態を監視することができ、プローブ対象信号の所定の状態またはトリガ条件に対応する複数のプローブ対象信号の所定の状態の検出に応答して、トリガ条件に関連するアクションを開始することができる。一例では、ロジックアナライザ回路１１０は、特定のトリガ条件が検出されるまでファイル１２０の生成を控えることができる。トリガ条件の検出に応答して、ロジックアナライザ回路１１０は、トレースデータを出力するためにファイル１２０を生成するか、またはファイル１２０の生成を開始することができる。ロジックアナライザ回路１１０の複数のプローブポートは、例えばその上の信号の監視など、単一のトリガ条件に結合されてもよい。
【００４１】
１つまたは複数の実施形態では、ロジックアナライザ回路１１０は、プローブ対象信号のトレースデータをファイル１２０として出力することができる。ファイル１２０は、プローブ対象信号の状態変化データおよび状態変化データのタイムスタンプを指定してもよい。例えば、ファイル１２０は、プローブ対象信号の各々について各状態変化およびそのような状態変化のタイムスタンプを指定してもよい。
【００４２】
図１の例では、ファイル１２０はハードウェアで生成される。ロジックアナライザ回路１１０がファイル１２０を生成する。１つまたは複数の実施形態では、ファイル１２０は、情報交換のための米国標準コード（ＡＳＣＩＩ）を使用して符号化される。例示的かつ非限定的な例として、ファイル１２０は値変化ダンプ（ＶＣＤ）ファイルとして実装される。１つまたは複数の実施形態では、ファイル１２０はＩＥＥＥ標準１３６４−１９９５に準拠している。１つまたは複数の実施形態では、ファイル１２０はＩＥＥＥ標準１３６４‐２００１に準拠している。
【００４３】
リスト１は、ファイル１２０の一例を示している。リスト１は、ＶＣＤファイルとしてＡＳＣＩＩでフォーマットされている。
【００４４】
リスト１
$date Sept 10 2008 12:00:05 $end
#バージョン  例示的シミュレータV0.1 $end
$timescale 1ns $end
$scope module top $end
$var wire 32 ! data $end
$var wire 1 @ en $end
$var wire 1 # rx $end
$var wire 1 $ tx $end
$var wire 1% err $end
$var wire 1 ^ ready $end
$upscope $end
$enddefinitions $end
#0
b10000001 !
0@
1#
0$
1%
0^
#1
1@
#2
0@
#3
1@
#5
1@
#11
b0
0#
#16
b101010101010110101010101010101 !
1#
#20
0%
#23
...
【００４５】
トレースデータをＡＳＣＩＩフォーマットのファイルとして、またＶＣＤファイルとして生成することにより、様々なシステムでトレースデータをさらに処理することなく簡単に表示およびレンダリングすることができる。例えば、ＶＣＤファイルをＶＣＤ波形ビューアに直接提供することができる。ＶＣＤ波形ビューアは簡単に入手でき、例えば、トレースデータの特別な復号化や独自の復号化を実行する必要なく、標準ブラウザ内に実装することができる。
【００４６】
特定の実施形態では、ロジックアナライザ回路１１０は、ロジックアナライザ回路１１０がプローブ対象信号を監視している期間にわたってデータストリームとしてファイル１２０を出力し続けることができる。ロジックアナライザ回路１１０は、リアルタイムまたは実質的にリアルタイムでファイル１２０を出力することができ、その中で解析が実行される。したがって、１つまたは複数の実施形態では、ロジックアナライザ回路１１０は、ＩＣ１００のオンチップメモリの量によって制限または制約されない。
【００４７】
本明細書で説明する本発明の構成によれば、ロジックアナライザ回路１１０は、各クロックサイクルの各監視対象信号のトレースデータを保存することなく、多数の信号を監視することができる。例示的な例として、ユーザは、ロジックアナライザ１１０がＩＣのプログラム可能な回路に実装され、監視対象回路１０５の１，０００個の信号を監視することを指定してもよい。ロジックアナライザは、クロックサイクルごとに１，０００個のプローブ対象信号の各々の値をトレースデータとして保存するのではなく、各イベントの状態変化をトレースデータとして状態変化のタイムスタンプと共に保存するだけである。プローブ対象信号の既知の初期状態が与えられると、ファイル１２０の結果のトレースデータは、プローブ対象信号が監視される任意の所与の時点での各プローブ対象信号の値を示す。状態変化を記録することにより、ロジックアナライザは、従来のロジックアナライザの場合よりも少ないメモリリソースを使用することができる（例えば、使用するブロックランダムアクセスメモリが少なくなる）。
【００４８】
図２は、図１のロジックアナライザ回路１１０の例示的な実施態様を示している。図２の例では、ロジックアナライザ回路１１０は、トレース回路２０５、ファイル生成回路２２０、およびインターフェース２２５を含む。トレース回路２０５は、トレースキャプチャ回路２１０およびトレース解析回路２１５を含んでもよい。
【００４９】
トレースキャプチャ回路２１０は、ワイヤ１１５（図示せず）に結合されている。トレースキャプチャ回路２１０は、プローブ対象信号の各々を受信することができる。１つまたは複数の実施形態では、トレースキャプチャ回路２１０は、プローブ対象信号の値をバッファリングすることができる。１つまたは複数の実施形態では、トレースキャプチャ回路は、各プローブ対象信号の現在値（例えば、現在のクロックサイクルの）および各プローブ対象信号の以前の値（例えば、直前のクロックサイクルから現在のクロックサイクルの前まで）を取り込むまたは保存することができる。
【００５０】
トレース解析回路２１５は、プローブ対象信号の解析を実行することができる。１つまたは複数の実施形態では、トレース解析回路２１５は、各プローブ対象信号の状態が変化したかどうかを判定することができる。例えば、プローブ対象信号ごとに、トレース解析回路２１５は、プローブ対象信号の値が０から１に、または１から０に遷移したかどうかを判定する。トレース解析回路２１５は、トレースキャプチャ回路２１０から各プローブ対象信号の現在値および以前の値を受信し、各プローブ対象信号の現在値がプローブ対象信号の以前の値と異なるかどうかを判定する比較を実行することができる。
【００５１】
図２の例では、トレース解析回路２１５はトレースデータを出力することができる。トレースデータは、どのプローブ対象信号の状態が変化したか、およびプローブ対象信号の状態のそのような変化ごとのタイムスタンプを指定する。図示するように、ファイル生成回路２２０は、トレース解析回路２１５の出力に結合される。したがって、ファイル生成回路２２０はトレースデータを受信する。
【００５２】
ファイル生成回路２２０は、トレースデータを指定するファイルを生成することができる。１つまたは複数の実施形態では、ファイル生成回路２２０は、ＡＳＣＩＩ符号化されたファイルを生成することができる。ＡＳＣＩＩ符号化されたファイルは、ＶＣＤファイルまたは別の適切なファイルタイプである。したがって、経時的に（例えば、ロジックアナライザ１１０がアクティブでプローブ対象信号を監視している全時間に）各プローブ対象信号の値をトレースデータとして保存するのではなく、ロジックアナライザ１１０は、ファイル１２０の生成の一部として、プローブ対象信号の状態変化を検出し保存することができる。
【００５３】
説明したように、特定の実施形態では、ロジックアナライザ回路１１０は、ＩＣ  １００のプログラム可能な回路に実装される。回路設計の実装の一部として、例えば、ユーザは、回路設計のどの信号を監視するかを指定することができる。電子設計自動化（ＥＤＡ）システムは、ユーザの回路設計内にロジックアナライザ回路１１０のインスタンスを含めて、プローブ対象信号（ユーザが指定）を監視するようにロジックアナライザ回路１１０を構成し、実装フロー（例えば、合成、配置、およびルーティング）の一部として、プローブ対象信号をロジックアナライザ回路１１０にルーティングすることができる。
【００５４】
したがって、ＥＤＡシステムは、ファイル１２０の様々なセクションを作成および／または書き込むために、ロジックアナライザ回路１１０、より具体的にはファイル生成回路２２０を生成することができる。ロジックアナライザ回路１１０は、例えば、監視される信号を認識しているので、ファイル生成回路２２０は、ヘッダーセクションおよび変数定義セクションなどのファイル１２０の特定の部分を生成するように予め構成することができる。ファイル生成回路２２０は、そのような情報が検出されるとき、初期値および値の変化（タイムスタンプ付き）などの他のデータを符号化するために必要な回路を含む。
【００５５】
ファイル生成回路２２０は、ファイル１２０をインターフェース２２５に出力する。１つまたは複数の実施形態では、ファイル生成回路２２０はファイル１２０をメモリに書き込む。特定の実施形態では、メモリは、ファイル生成回路２２０内に実装されるかまたは含まれる。メモリは、先入れ先出し（ＦＩＦＯ）メモリまたは他のタイプのメモリ回路（例えば、バッファメモリまたはＲＡＭ）として実装されてもよい。インターフェース２２５は、メモリからファイル１２０を読み出し、ファイル１２０を別の回路および／またはシステムに提供することができる。１つまたは複数の実施形態では、インターフェース２２５は、ファイル１２０を回路および／またはシステムにストリーミングすることができる。例えば、インターフェース２２５は、ファイル１２０が完全に生成されるのを待つことなく（例えば、監視ウィンドウの終了のために）リアルタイムまたは実質的にリアルタイムでファイル１２０が生成されると、ファイル１２０を出力することができる。
【００５６】
一例では、インターフェース２２５はＡＭＢＡ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ（ＡＸＩ）バスとして実装される。ＡＭＢＡ  ＡＸＩバスは、回路ブロックやシステム間でオンチップ接続を確立する際に使用する組み込みマイクロコントローラ・バス・インターフェースである。例えば、インターフェース２２５は、ＡＸＩストリームインターフェース、ＡＸＩメモリマップインターフェース、またはＩＣの別のネイティブインターフェースとして実装されてもよい。相互接続またはインターフェースの他の実装例には、バス、クロスバー、およびネットワークオンチップ（ＮｏＣ）が含まれてもよいが、これらに限定されない。
【００５７】
１つまたは複数の実施形態では、インターフェース２２５は、入力／出力（Ｉ／Ｏ）回路に結合される。Ｉ／Ｏ回路は、ギガビットトランシーバ、ユニバーサルシリアルバス（ＵＳＢ）ポート、イーサネットポート、または、ＩＣがファイル１２０を外部システムに提供することを可能にするＩＣ内に実装された他の通信ポートなどの様々な周辺回路および／またはポートとして実装されてもよい。Ｉ／Ｏ回路は、高速通信インターフェースであってもよく、それにより、ロジックアナライザ１１０からＪＴＡＧ依存性を除去することができる。１つまたは複数の他の実施形態では、インターフェース２２５は、ＩＣ内に実装されるプロセッサに結合される。プロセッサは、プログラムコードを実行することができるものであってもよい。プロセッサは、ＩＣ内にハードワイヤードされてもよいし、ＩＣに含まれるプログラム可能な回路を使用して実装されてもよい。
【００５８】
図２の例示的な実施態様は、トレースデータの取り込みから外部システムによるトレースデータの表示までの低レイテンシを容易にする。特定の実施形態では、図２に関連して説明される例示的なアーキテクチャは、ＩＣ  １００の位置および近接性にかかわらず、ほぼすべての外部データ処理システムからのＩＣ  １００のライブ、例えばリアルタイムまたは実質的にリアルタイムのデバッグをサポートする。例えば、ファイル１２０は、ファイル１２０が生成され、ＩＣから出力され、外部システムによって受信されると、外部システムによってリアルタイムでレンダリングされて表示されてもよい。
【００５９】
１つまたは複数の実施形態では、ロジックアナライザ回路１１０は、データの損失なしにクロック信号データの取り込みを容易にするためにパイプライン化されてもよい。例示的な実施態様では、ロジックアナライザ回路１１０は、（例えば、リモートシステムによる）ソフトウェアキャプチャが不可能であるか、ソフトウェア障害がある場合に５１２／１０２４サンプル保持を保証するのに十分なメモリリソース（例えば、ブロックＲＡＭ）を含んでもよい。
【００６０】
図３は、ロジックアナライザ回路１１０を含む別の例示的なＩＣ３００を示す。１つまたは複数の実施形態では、ロジックアナライザ回路１１０はプロセッサ３０５に結合される。プロセッサ３０５は、メモリ３１０およびＩ／Ｏ回路３１５に結合されている。図３の例では、Ｉ／Ｏ回路３１５もメモリ３１０に結合されてもよい。メモリ３１０は、様々な異なるタイプのＲＡＭのいずれでもよい。例えば、Ｉ／Ｏ回路３１５は、１つまたは複数のダイレクトメモリアクセス（ＤＭＡ）回路を介してメモリ３１０に結合されてもよい。したがって、プロセッサ３０５は、Ｉ／Ｏ回路３１５を介して外部システム３２０へのトレースデータファイルの出力を開始することができる。
【００６１】
１つまたは複数の実施形態では、プロセッサ３０５は、ＩＣ３００のプログラム可能な回路を使用して実装される。１つまたは複数の実施形態では、プロセッサ３０５は、ＩＣ３００のハードワイヤードプロセッサとして実装される。メモリ３１０は、プログラム可能な回路メモリリソースを使用して、またはハードワイヤードメモリリソースとしてオンチップで実装されてもよい。１つまたは複数の他の実施形態では、メモリ３１０はオフチップで実装される。
【００６２】
外部システム３２０は、コンピュータシステムなどのデータ処理システムであってもよい。例えば、外部システム３２０はサーバーであってもよい。１つまたは複数の実施形態では、ＩＣ３００は、より大きく、より複雑なシステムおよび／またはデータセンターおよび／またはサーバーファーム内のコンピュータシステムなどのリモート環境内に含まれる。
【００６３】
外部システム３２０がデータ処理システムである実施形態では、外部システム３２０はブラウザを実行することができる。その場合、ブラウザは、ロジックアナライザ１１０（例えば、ＩＣ）から受信したファイルをレンダリングすることができる。例えば、外部システム３２０により実行されるブラウザまたは他のアプリケーションは、波形を示すファイルの視覚化を生成することができる。例えば、外部システム３２０は、実質的にリアルタイムでファイルを受信して、実質的にリアルタイムでファイルによって指定された波形を生成し続けることができるので、ユーザは、ファイル生成回路２２０によって生成されたトレースデータの波形を実質的にリアルタイムで閲覧することができる。
【００６４】
例示的な例では、プロセッサ３０５は、外部システム３２０からロジックアナライザ回路１１０を起動する要求を受信することができる。要求に応答して、プロセッサ３０５は、ロジックアナライザ回路１１０を起動し、外部システム３２０などの特定のアドレスまたは宛先にファイルを送信することができる。
【００６５】
１つまたは複数の他の実施形態では、プロセッサ３０５は、ファイル１２０を読み出しおよび／または処理することができるブラウザまたは他のソフトウェアを実行することができる。例えば、プロセッサ３０５は、ファイル１２０の波形ビューを生成（またはレンダリング）することができる。その場合、例えば、Ｉ／Ｏ回路３１５は、ファイル１２０の波形を表示するモニターに提供または結合され得るビデオ出力ポートであってもよい。
【００６６】
特定の実施形態では、ロジックアナライザ回路１１０は、プロセッサ３０５を利用および／または含むことなく、Ｉ／Ｏデバイス３１５に直接結合される。その場合、ロジックアナライザ回路１１０は、その中で生成されたファイルを、プロセッサ３０５および／またはメモリ３１０を使用またはそれらに依存することなく、Ｉ／Ｏ回路３１５を介して外部システム３２０に直接出力することができる。
【００６７】
図４は、トレースデータを生成する例示的な方法４００を示している。方法４００は、本明細書の図１〜図３に関連して説明されたロジックアナライザ回路によって実行されてもよい。方法４００は、ロジックアナライザ回路が集積回路内に実装された状態で開始されてもよい。さらに、ユーザ回路設計などの監視対象回路のプローブ対象信号は、監視のためにロジックアナライザ回路にルーティングおよび／または提供されている。
【００６８】
ブロック４０５で、ロジックアナライザ回路はプローブ対象信号の監視を開始する。ブロック４１０で、ロジックアナライザ回路は、プローブ対象信号のうちの１つまたは複数またはすべてで状態変化が検出されたかどうかを判定する。ロジックアナライザが、プローブ対象信号の１つまたは複数またはすべての状態変化を検出した場合には、方法４００はブロック４１５に続く。ロジックアナライザが状態変化を検出しない場合には、方法４００はブロック４０５に戻って、プローブ対象信号の監視を続ける。
【００６９】
ブロック４１５で、ロジックアナライザは、トリガ条件が検出されたかどうかを判定する。１つまたは複数の実施形態では、トリガ条件は、プローブ対象信号の１つまたは複数における特定の値または状態の存在である。トリガ条件が検出された場合には、方法４００はブロック４２０に進む。トリガ条件が検出されない場合には、方法４００はブロック４３０に続く。
【００７０】
ブロック４２０で、トリガ条件が検出された場合に、ロジックアナライザは、検出された特定のトリガ条件に関連するアクションを選択する。例えば、ロジックアナライザは、複数の異なるアクションを開始することが可能であってもよい。これらの異なるアクションは、異なるトリガ条件に関連付けられてもよい。したがって、ロジックアナライザは、ブロック４１５で検出された特定のトリガ条件に基づいて、複数のアクションからアクションを選択することができる。
【００７１】
ブロック４２０の後に、方法４００はブロック４２５に続く。ブロック４２５で、ロジックアナライザは、ブロック４２０で選択されたアクションを開始または実行する。
【００７２】
引き続きブロック４３０で、ロジックアナライザは、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成する。例えば、ロジックアナライザは、ＡＳＣＩＩ符号化ファイルを生成することができる。上述のように、１つまたは複数の実施形態では、ファイルはＶＣＤファイルであってもよい。
【００７３】
１つまたは複数の実施形態では、ロジックアナライザは、ファイルのヘッダーセクションを生成および／または符号化する。ロジックアナライザはさらに、ファイルの変数定義セクションを生成および／または符号化することができる。ロジックアナライザはさらに、ファイルの初期値セクションを生成および／または符号化することができる。ファイルの初期値セクションは、プローブ対象信号の各々の開始値または状態を指定する。ロジックアナライザは、値変化セクションをさらに生成することができる。ロジックアナライザがプローブ対象信号を監視し、状態変化を検出し続ける限り、ロジックアナライザ回路は値変化セクションを生成し続けることを理解されたい。
【００７４】
例示的な例として、ロジックアナライザ回路はファイルの開始部分を生成してもよい。プローブ対象信号の状態変化がさらに検出されると、ロジックアナライザ回路は値変化セクションを生成し続ける。ファイルはロジックアナライザ回路によって継続的に生成されるため、ロジックアナライザ回路はファイルを出力することができる。したがって、ブロック４３５で、ロジックアナライザ回路はファイルを出力する。前述のように、ファイルを出力することには、ロジックアナライザ回路がファイルの一部を生成し、ファイルのさらなる部分を生成し続ける場合が含まれるので、ファイルは、ロジックアナライザ回路から別の回路および／またはシステムへ、あるいはＩＣから別の回路および／またはＩＣの外部のシステムへストリーム出力されてもよい。
【００７５】
説明したように、１つまたは複数の実施形態では、ファイルは外部システムに出力されてもよい。外部システムは、トレースデータの波形ビューを生成することができる。外部システムは、実質的にリアルタイムで波形ビューを受信し表示してもよい。例えば、外部システムは、プローブ対象信号を取り込んでから約１秒以内に波形ビューを生成することができる。
【００７６】
図５は、ＩＣの例示的なアーキテクチャ５００を示している。一態様では、アーキテクチャ５００は、プログラマブルＩＣ内に実装されてもよい。例えば、アーキテクチャ５００を使用してＦＰＧＡを実装してもよい。アーキテクチャ５００は、システムオンチップ（ＳＯＣ）タイプのＩＣの代表であってもよい。ＳＯＣは、プログラムコードを実行するプロセッサと、１つまたは複数の他の回路と、を含むＩＣである。他の回路は、ハードワイヤード回路、プログラム可能な回路、および／またはそれらの組み合わせとして実装されてもよい。回路は、互いにおよび／またはプロセッサと協調して動作してもよい。１つまたは複数の実施形態では、監視対象回路１０５、ロジックアナライザ回路１１０、プロセッサ３０５、メモリ３１０、および／またはＩ／Ｏ回路３１５は、図５のそれと同一または類似のアーキテクチャを有するＩＣで実装されてもよい。
【００７７】
図示するように、アーキテクチャ５００は、いくつかの異なるタイプのプログラム可能な回路、例えば、ロジック、ブロックを含む。例えば、アーキテクチャ５００は、多数の異なるプログラマブルタイルを含んでもよく、それには、マルチギガビットトランシーバ（ＭＧＴ）５０１、構成可能な論理ブロック（ＣＬＢ）５０２、ランダムアクセスメモリブロック（ＢＲＡＭ）５０３、入力／出力ブロック（ＩＯＢ）５０４、構成およびクロック論理（ＣＯＮＦＩＧ／ＣＬＯＣＫＳ）５０５、デジタル信号処理ブロック（ＤＳＰ）５０６、特殊なＩ／Ｏブロック５０７（例えば、構成ポートおよびクロックポート）、ならびに、デジタルクロックマネージャ、アナログデジタルコンバータ、システム監視論理などの他のプログラム可能な論理５０８が含まれる。
【００７８】
いくつかのＩＣでは、各プログラマブルタイルは、各隣接タイル内の対応する相互接続素子（ＩＮＴ）５１１との間の標準化された接続を有するプログラム可能なＩＮＴ５１１を含む。したがって、ＩＮＴ５１１を合わせて、図示のＩＣのプログラム可能な相互接続構造を実装する。各ＩＮＴ５１１は、図５の上部に含まれる例で示されているように、同じタイル内のプログラム可能な論理素子との接続も含む。
【００７９】
例えば、ＣＬＢ５０２は、ユーザ論理に加えて単一のＩＮＴ５１１を実装するようにプログラムされ得る構成可能な論理素子（ＣＬＥ）５１２を含んでもよい。ＢＲＡＭ５０３は、１つまたは複数のＩＮＴ５１１に加えて、ＢＲＡＭ論理素子（ＢＲＬ）５１３を含んでもよい。通常、タイルに含まれるＩＮＴ５１１の数は、タイルの高さに依存する。図示するように、ＢＲＡＭタイルは５つのＣＬＢと同じ高さであるが、他の数（例えば４）を使用してもよい。ＤＳＰタイル５０６は、適切な数のＩＮＴ５１１に加えて、ＤＳＰ論理素子（ＤＳＰＬ）５１４を含んでもよい。ＩＯＢ５０４は、例えば、ＩＮＴ５１１の１つのインスタンスに加えて、Ｉ／Ｏ論理素子（ＩＯＬ）５１５の２つのインスタンスを含むことができる。ＩＯＬ  ５１５に接続されている実際のＩ／Ｏパッドは、ＩＯＬ  ５１５の領域に限定されなくてもよい。
【００８０】
図５に描かれた例では、例えば領域５０５、５０７、５０８で形成されたダイの中心近くのカラム状領域は、構成、クロック、および他の制御ロジックに使用されてもよい。このカラムから延在する水平領域５０９を使用して、プログラマブルＩＣの幅全体にクロックと構成信号を分配することができる。
【００８１】
図５に示すアーキテクチャを利用するいくつかのＩＣは、ＩＣの大部分を構成する通常のカラム構造を破壊する追加の論理ブロックを含む。追加の論理ブロックは、プログラム可能なブロックおよび／または専用回路であってもよい。例えば、ＰＲＯＣ  ５１０として示されているプロセッサブロックは、ＣＬＢとＢＲＡＭのいくつかのカラムにまたがっている。
【００８２】
一態様では、ＰＲＯＣ５１０は、ＩＣのプログラム可能な回路を実装するダイの一部として製造される専用回路、例えばハードワイヤードプロセッサとして実装されてもよい。ＰＲＯＣ５１０は、個々のプロセッサ、例えば、プログラムコードを実行可能な単一コアから、１つまたは複数のコア、モジュール、コプロセッサ、インターフェースなどを有するプロセッサシステム全体まで、複雑さの範囲にわたる様々な異なるプロセッサタイプおよび／またはシステムのいずれかを表してもよい。
【００８３】
別の態様では、ＰＲＯＣ５１０はアーキテクチャ５００から省略され、記載されたプログラム可能ブロックの他の種類のうちの１つまたは複数と置き換えられてもよい。さらに、そのようなブロックは、ＰＲＯＣ５１０の場合のように、プログラム可能な回路の様々なブロックを使用してプログラムコードを実行することができるプロセッサを形成することができるという点で、「ソフトプロセッサ」を形成するために利用されてもよい。
【００８４】
「プログラム可能な回路」という語句は、ＩＣ内のプログラム可能な回路素子、例えば、本明細書で説明する様々なプログラム可能または構成可能な回路ブロックまたはタイル、ならびに様々な回路ブロック、タイル、および／または素子を、ＩＣにロードされた構成データに従って選択的に結合する相互接続回路を指す。例えば、ＣＬＢ５０２およびＢＲＡＭ５０３などのＰＲＯＣ５１０の外部にある図５に示す回路ブロックは、ＩＣのプログラム可能な回路とみなされる。
【００８５】
一般に、プログラム可能な回路の機能は、構成データがＩＣにロードされるまで確立されない。構成ビットのセットを使用して、ＦＰＧＡなどのＩＣのプログラム可能な回路をプログラムすることができる。通常、構成ビットは「構成ビットストリーム」と呼ばれる。一般に、最初に構成ビットストリームをＩＣにロードしないと、プログラム可能な回路は動作も機能もしない。構成ビットストリームは、プログラム可能な回路内で特定の回路設計を効果的に実装する。回路設計は、例えば、プログラム可能回路ブロックの機能的側面と、様々なプログラム可能回路ブロック間の物理的接続性を指定する。
【００８６】
「ハードワイヤード」または「ハード化」された、すなわちプログラム可能でない回路がＩＣの一部として製造される。プログラム可能な回路とは異なり、ハードワイヤード回路または回路ブロックは、ＩＣの製造後に構成ビットストリームのロードにより実装されない。ハードワイヤード回路は一般に、専用の回路ブロックと相互接続を備えていると一般に考えられており、例えば、最初に構成ビットストリームをＩＣ、例えばＰＲＯＣ５１０にロードすることなく機能する。
【００８７】
場合によっては、ハードワイヤード回路は、ＩＣ内の１つまたは複数のメモリ素子に保存されているレジスタ設定または値に従って設定または選択することができる１つまたは複数の動作モードを有してもよい。動作モードは、例えば、構成ビットストリームをＩＣにロードすることで設定されてもよい。この機能にもかかわらず、ハードワイヤード回路は、ＩＣの一部として製造されたときに動作可能であって、特定の機能を有するので、ハードワイヤード回路はプログラム可能回路とはみなされない。
【００８８】
ＳＯＣの場合、構成ビットストリームは、プログラム可能な回路内に実装される回路と、ＰＲＯＣ  ５１０またはソフトプロセッサによって実行されるプログラムコードを指定してもよい。場合によっては、アーキテクチャ５００は、構成ビットストリームを適切な構成メモリおよび／またはプロセッサメモリにロードする専用の構成プロセッサを含む。専用の構成プロセッサは、ユーザ指定のプログラムコードを実行しない。他の場合では、アーキテクチャ５００は、ＰＲＯＣ  ５１０を使用して、構成ビットストリームを受信し、構成ビットストリームを適切な構成メモリにロードし、および／または実行のためにプログラムコードを抽出してもよい。
【００８９】
図５は、プログラム可能な回路、例えばプログラマブルファブリックを含むＩＣを実装するために使用してもよい例示的なアーキテクチャを示すことを意図している。例えば、カラムの論理ブロックの数、カラムの相対的な幅、カラムの数と順序、カラムに含まれる論理ブロックのタイプ、論理ブロックの相対的なサイズ、および図５の上部に含まれる相互接続／論理の実施態様は、純粋に例示的なものである。例えば、実際のＩＣでは、ユーザ回路設計の効率的な実装を容易にするために、通常、ＣＬＢが現れる場所に複数のＣＬＢの隣接するカラムが含まれる。しかし、隣接するＣＬＢカラムの数は、ＩＣの全体サイズによって異なってもよい。さらに、ＩＣ内のＰＲＯＣ  ５１０などのブロックのサイズおよび／または位置は、例示のみを目的としており、限定として意図されていない。
【００９０】
本明細書で説明する例示的な実施形態により、従来のロジックアナライザ設計の場合よりも少ないＩＣリソースを使用して、ロジックアナライザが多数の信号を監視することが可能になる。１つまたは複数の実施形態では、オンチップメモリの利用可能性に関する制限なしに、ＩＣからＶＣＤファイルフォーマットでデータを連続的に出力することができる。さらに、ブラウザを実行するホストシステムなどの外部システムは、ＩＣの専有データフォーマットをＥＤＡツールで使用されるフォーマットなどの使用可能なフォーマットに最初に変換することなく、ＶＣＤファイルを表示またはレンダリングすることができる。
【００９１】
１つまたは複数の実施形態では、プローブ対象信号の取り込みからＶＣＤファイルの閲覧までのタイムラグはリアルタイムで生じる（例えば、プローブ対象信号取り込みの約１秒以内）。特定の実施形態では、クロック信号が監視されてもよい。したがって、設計者はＩＣの内部信号をリアルタイムで監視することができる。さらに、設計者は、ロジックアナライザがＩＣで使用可能な内部メモリの量に制約されないため、プローブ対象信号がＩＣ内に保存されている場合よりも長い時間プローブ対象信号を監視することができる。
【００９２】
説明の目的で、本明細書に開示した様々な発明概念の完全な理解を提供するために、特定の命名法が示されている。しかし、本明細書で使用される用語は、本発明の構成の特定の態様を説明することのみを目的としており、限定することを意図していない。
【００９３】
本明細書で定義されるように、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈が明確にそうでないことを示さない限り、複数形も含むことを意図している。本明細書で定義されるように、「少なくとも１つ」、「１つまたは複数」、および「および／または」という用語は、特に明記しない限り、動作において連言的および選言的の両方である無制限表現である。例えば、「Ａ、Ｂ、およびＣの少なくとも１つ」、「Ａ、Ｂ、またはＣの少なくとも１つ」、「Ａ、Ｂ、およびＣの１つまたは複数」、「Ａ、Ｂ、またはＣの１つまたは複数」および「Ａ、Ｂ、および／またはＣ」は、Ａのみ、Ｂのみ、Ｃのみ、ＡとＢ共に、ＡとＣ共に、ＢとＣ共に、またはＡとＢとＣ共に、を意味する。
【００９４】
本明細書で定義されるように、「一実施形態」、「実施形態」、「１つまたは複数の実施形態」または類似の文言は、実施形態に関連して説明される特定の特徴、構造、または特性が、この開示内で説明される少なくとも１つの実施形態に含まれることを意味する。したがって、「一実施形態では」、「実施形態では」、「１つまたは複数の実施形態では」、および本開示を通して同様の文言の出現は、必ずしも同じではないが、すべて同じ実施形態を指す。
【００９５】
本明細書で定義される「リアルタイム」という用語は、特定のプロセスまたは決定が行われるのに十分に即時であるとユーザまたはシステムが感じる、またはプロセッサが何らかの外部プロセスに追いつくことができる処理応答性のレベルを意味する。
【００９６】
本明細書で定義されるように、「応答する」という用語は、アクションまたはイベントに容易に応答または反応することを意味する。したがって、第２のアクションが第１のアクションに「応答する」ように実行される場合、第１のアクションの発生と第２のアクションの発生との間には因果関係がある。「応答する」という用語は、因果関係を示す。
【００９７】
「実質的に」という用語は、列挙された特性、パラメータ、または値を正確に達成する必要がないことを意味する。しかし、例えば許容差、測定誤差、測定精度の制限、および当業者に知られている他の要因を含む偏差または変動は、特性が提供することを意図した効果を妨げない量で発生してもよい。
【００９８】
本明細書では、第１、第２などの用語を使用して、様々な要素を説明することがある。これらの要素はこれらの用語によって限定されるべきではなく、これらの用語は、特に明記しない限り、または文脈からそうでないことが明確に示されていない限り、ある要素を別の要素と区別するためにのみ使用されるからである。
【００９９】
図中のフローチャートおよびブロック図は、本発明の構成の様々な態様によるシステムおよび方法の可能な実施のアーキテクチャ、機能、および動作を示している。いくつかの代替的な実施態様では、ブロックに記載されている動作は、図に記載されている順序以外で生じてもよい。例えば、連続して示される２つのブロックは、実質的に同時に実行されてもよく、または時には、関連する機能に応じて、ブロックが逆の順序で実行されてもよい。他の例では、ブロックは一般に数字の昇順で実行されるが、さらに他の例では、１つまたは複数のブロックが様々な順序で実行され、結果が保存されて、後続のブロックまたはすぐに後続しない他のブロックで利用されてもよい。ブロック図および／またはフローチャート図の各ブロック、ならびにブロック図および／またはフローチャート図のブロックの組み合わせは、指定された機能または動作を実行するか、特殊用途のハードウェアとコンピュータ命令の組み合わせを実行する特殊用途のハードウェアベースのシステムによって実装されてもよいことにも留意されたい。
【０１００】
以下の特許請求の範囲に見られるすべての手段またはステッププラス機能要素の対応する構造、材料、動作、および均等物は、具体的に特許請求される他の特許請求された要素と組み合わせて機能を実行するための構造、材料、または動作を含むことを意図している。
【０１０１】
１つまたは複数の実施形態は、ＩＣ内の信号を監視するための方法に関する。一態様では、方法は、ＩＣ内に実装されたロジックアナライザ回路を使用して、ＩＣのプローブ対象信号を監視することと、ロジックアナライザ回路を使用して、プローブ対象信号の状態変化を検出することと、ロジックアナライザ回路内で、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、を含む。
【０１０２】
一態様では、ファイルはＡＳＣＩＩフォーマットで指定される。
【０１０３】
別の態様では、ファイルは値変化ダンプファイルである。
【０１０４】
別の態様では、本方法はまた、生成されたファイルを実質的にリアルタイムで外部システムに出力することを含むことができる。
【０１０５】
別の態様では、本方法はまた、いくつかの実施形態では、プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始することを含むことができる。
【０１０６】
別の態様では、本方法はまた、集積回路内のプロセッサにファイルを提供することを含むことができ、プロセッサはプログラムコードを実行するように構成される。
【０１０７】
別の態様では、本方法はまた、ファイルを外部システムに提供することを含むことができ、外部システムは、ファイルの視覚化を生成するように構成される。
【０１０８】
別の態様では、ファイルを生成することは、ヘッダーセクションを符号化することと、変数定義セクションを符号化することと、初期値セクションを符号化することと、値変化セクションを符号化することと、を含む。
【０１０９】
別の態様では、ロジックアナライザ回路は、集積回路のプログラム可能な回路を使用してハードウェアで実装される。
【０１１０】
１つまたは複数の実施形態は、ＩＣに関する。一態様では、ＩＣは、信号を生成するように構成された監視対象回路と、ロジックアナライザ回路と、を含む。ロジックアナライザ回路は、信号を監視して信号の状態変化を検出し、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
【０１１１】
一態様では、ファイルはＡＳＣＩＩフォーマットのファイルである。
【０１１２】
別の態様では、ファイルは値変化ダンプファイルである。
【０１１３】
別の態様では、ロジックアナライザ回路は、信号を受信して、信号の現在の状態が信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路を含む。ロジックアナライザ回路はまた、トレース回路に結合されたファイル生成回路を含むことができ、ファイル生成回路は、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
【０１１４】
別の態様では、トレース回路は、信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始するように構成される。
【０１１５】
別の態様では、ロジックアナライザ回路は、ファイル生成回路に結合されたインターフェースを含む。
【０１１６】
別の態様では、ＩＣは、インターフェースに結合されたプロセッサを含み、プロセッサは、プログラムコードを実行し、ファイルを受信するように構成される。
【０１１７】
別の態様では、プロセッサは、ファイルから監視対象信号の波形ビューを生成するように構成される。
【０１１８】
別の態様では、ＩＣは、インターフェースに結合されたＩ／Ｏ回路を含み、Ｉ／Ｏ回路は、ファイルを外部システムに出力するように構成される。
【０１１９】
別の態様では、外部システムはファイルから信号の波形ビューを生成する。
【０１２０】
別の態様では、ロジックアナライザ回路は、ＩＣのプログラム可能な回路を使用してハードウェアで実装される。
【０１２１】
１つまたは複数の実施形態は、ロジックアナライザ回路を含むＩＣを実装することに関する。一態様では、方法は、ロジックアナライザ回路を提供することを含むことができる。ロジックアナライザ回路は、信号を監視して信号の状態変化を検出し、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。例えば、ファイルはＡＳＣＩＩフォーマットのファイルにすることができる。特定の例では、ファイルは値変化ダンプファイルにすることができる。
【０１２２】
別の態様では、本方法は、信号を受信し、信号の現在の状態が信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路を含むように、ロジックアナライザ回路を提供することを含む。ロジックアナライザ回路を提供することは、トレース回路に結合されたファイル生成回路を提供することを含むことができ、ファイル生成回路は、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
【０１２３】
別の態様では、トレース回路は、信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始するように構成される。
【０１２４】
別の態様では、ロジックアナライザ回路を提供することは、ファイル生成回路に結合されたインターフェースを提供することを含む。
【０１２５】
本明細書で提供される本発明の構成の説明は、例示の目的のためであり、網羅的であること、または開示された形態および例に限定されることを意図しない。本明細書で使用される用語は、発明の構成の原理、市場で見出される技術に対する実用的な応用または技術的改良を説明するために、ならびに／あるいは当業者が本明細書に開示する発明の構成を理解することができるように選択された。記載した発明の構成の範囲および趣旨から逸脱することなく、変更および変形が当業者には明らかであろう。したがって、そのような特徴および実施態様の範囲を示すものとして、前述の開示ではなく、以下の特許請求の範囲を参照すべきである。
【図１】
2020529064.tif 000003
【図２】
2020529064.tif 000004
【図３】
2020529064.tif 000005
【図４】
2020529064.tif 000006
【図５】
2020529064.tif 000007
【手続補正書】
【提出日】令和1年8月30日(2019.8.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路内の信号を監視するための方法であって、
前記集積回路内にさらに実装されたロジックアナライザ回路を使用して、前記集積回路内に実装された監視対象回路のプローブ対象信号を監視することと、
前記ロジックアナライザ回路を使用して、前記プローブ対象信号の状態変化を検出することと、
前記ロジックアナライザ回路内で、前記プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、
前記集積回路内のプロセッサに前記ファイルを提供することであって、前記プロセッサは前記ファイルを読み出すように構成されたプログラムコードを実行するように構成される、前記集積回路内のプロセッサに前記ファイルを提供することと、
前記プロセッサを使用して、前記ファイルの波形ビューを生成することと、
前記集積回路に実装されたビデオ出力ポートを介して外部システムに前記波形ビューを出力することと、
を含む方法。
【請求項２】
ストリームデータとして生成された前記ファイルを実質的にリアルタイムで前記外部システムに出力すること
をさらに含む、請求項１に記載の方法。
【請求項３】
前記プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始すること
をさらに含む、請求項１に記載の方法。
【請求項４】
前記外部システムはモニターである、請求項１に記載の方法。
【請求項５】
前記ファイルを生成することは、
ヘッダーセクションを符号化することと、
変数定義セクションを符号化することと、
初期値セクションを符号化することと、
値変化セクションを符号化することと、
を含む、請求項１に記載の方法。
【請求項６】
前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項１に記載の方法。
【請求項７】
信号を生成するように構成された監視対象回路と、
前記信号を監視して前記信号の状態変化を検出し、前記信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されたロジックアナライザ回路と、
前記ファイルを受信し、前記ファイルを読み出すためのプログラムコードを実行し、前記ファイルから前記監視対象信号の波形ビューを生成するように構成された前記集積回路内のプロセッサと、
前記波形ビューを外部システムに出力するように構成された前記集積回路内のビデオ出力ポートと、
を含む集積回路。
【請求項８】
前記ロジックアナライザ回路は、
前記信号を受信して、前記信号の現在の状態が前記信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路と、
前記トレース回路に結合されたファイル生成回路であって、前記信号の前記タイムスタンプされた状態変化を指定する前記ファイルを生成するように構成されたファイル生成回路と、
を含む、請求項７に記載の集積回路。
【請求項９】
前記トレース回路は、前記信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始するように構成される、請求項８に記載の集積回路。
【請求項１０】
前記ロジックアナライザ回路は、
前記ファイル生成回路に結合されたインターフェース
を含む、請求項８に記載の集積回路。
【請求項１１】
前記外部システムはモニターである、請求項１０に記載の集積回路。
【請求項１２】
前記ロジックアナライザ回路は、ストリームデータとして生成された前記ファイルを実質的にリアルタイムで前記外部システムに出力するように構成される、請求項７に記載の集積回路。
【請求項１３】
前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項７に記載の集積回路。
【請求項１４】
前記ファイルはＡＳＣＩＩフォーマットで指定されるか、または値変化ダンプファイルである、請求項１に記載の方法。
【請求項１５】
前記ファイルはＡＳＣＩＩフォーマットで指定されるか、または値変化ダンプファイルである、請求項７に記載の集積回路。
【国際調査報告】
2020529064.tif 000008
2020529064.tif 000009