(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023100844
(43)【公開日】2023-07-19
(54)【発明の名称】集積回路のためのロジックアナライザ
(51)【国際特許分類】
G06F 11/30 20060101AFI20230711BHJP
G01R 31/3187 20060101ALI20230711BHJP
G01R 31/28 20060101ALI20230711BHJP
【FI】
G06F11/30 155
G01R31/3187
G01R31/28 V
【審査請求】有
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023076497
(22)【出願日】2023-05-08
(62)【分割の表示】P 2020503043の分割
【原出願日】2018-07-11
(31)【優先権主張番号】15/658,086
(32)【優先日】2017-07-24
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】マハジャン, アキレシュ
(72)【発明者】
【氏名】クリシュナ, ボッカ アブハイラン サイ
(72)【発明者】
【氏名】チェルク, ケーシャヴァ ゴパール ゴード
(57)【要約】 (修正有)
【課題】IC内の信号を監視する方法及びロジックアナライザを提供する。
【解決手段】集積回路内の信号を監視する方法は、集積回路内に実装されたロジックアナライザ回路を使用して集積回路のプローブ対象信号を監視すること405、ロジックアナライザ回路を使用してプローブ対象信号の状態変化を検出すること415およびロジックアナライザ回路内で、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成すること430を含む。
【選択図】
図4
【特許請求の範囲】
【請求項1】
集積回路内の信号を監視するための方法であって、
集積回路内に実装されたロジックアナライザ回路を使用して、前記集積回路のプローブ対象信号を監視することと、
前記ロジックアナライザ回路を使用して、前記プローブ対象信号の状態変化を検出することと、
前記ロジックアナライザ回路内で、前記プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、
を含む方法。
【請求項2】
前記ファイルはASCIIフォーマットで指定されるか、または前記ファイルは値変化ダンプファイルである、請求項1に記載の方法。
【請求項3】
生成された前記ファイルを実質的にリアルタイムで外部システムに出力すること
をさらに含む、請求項1に記載の方法。
【請求項4】
前記プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始すること
をさらに含む、請求項1に記載の方法。
【請求項5】
前記集積回路内のプロセッサに前記ファイルを提供することであって、前記プロセッサはプログラムコードを実行するように構成される、前記集積回路内のプロセッサに前記ファイルを提供すること、または、
前記ファイルを外部システムに提供することであって、前記外部システムは前記ファイルの視覚化を生成するように構成される、前記ファイルを外部システムに提供すること
をさらに含む、請求項1に記載の方法。
【請求項6】
前記ファイルを生成することは、
ヘッダーセクションを符号化することと、
変数定義セクションを符号化することと、
初期値セクションを符号化することと、
値変化セクションを符号化することと、
を含む、請求項1に記載の方法。
【請求項7】
前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項1に記載の方法。
【請求項8】
信号を生成するように構成された監視対象回路と、
前記信号を監視して前記信号の状態変化を検出し、前記信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されたロジックアナライザ回路と、
を含む集積回路。
【請求項9】
前記ファイルは、ASCII形式のファイルまたは値変化ダンプファイルである、請求項8に記載の集積回路。
【請求項10】
前記ロジックアナライザ回路は、
前記信号を受信して、前記信号の現在の状態が前記信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路と、
前記トレース回路に結合されたファイル生成回路であって、前記信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されたファイル生成回路と、
を含む、請求項8に記載の集積回路。
【請求項11】
前記トレース回路は、前記信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始するように構成される、請求項10に記載の集積回路。
【請求項12】
前記ロジックアナライザ回路は、
前記ファイル生成回路に結合されたインターフェース
を含む、請求項10に記載の集積回路。
【請求項13】
前記インターフェースに結合されたプロセッサであって、プログラムコードを実行し、前記ファイルを受信するように構成され、前記ファイルから前記監視対象信号の波形ビューを生成するように構成されたプロセッサ
をさらに含む、請求項12に記載の集積回路。
【請求項14】
前記インターフェースに結合された入力/出力回路をさらに含み、前記入力/出力回路は、前記ファイルを外部システムに出力するように構成され、前記外部システムは、前記ファイルから前記信号の波形ビューを生成する、請求項12に記載の集積回路。
【請求項15】
前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項8に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、集積回路(IC)に関し、より詳細には、IC内の信号を監視するためのロジックアナライザに関する。
【背景技術】
【0002】
ロジックアナライザは、別の電子システムの1つまたは複数の信号を監視することができる電子システムである。場合によっては、ロジックアナライザは、集積回路(IC)内に実装される回路設計に組み込むことができるコアとして利用することができる。そのような場合、ロジックアナライザと、ロジックアナライザによって監視される対象回路および/または信号は、同じIC内に実装されてもよい。
【0003】
通常、ロジックアナライザは、監視対象信号の値をサンプリングする。通常、サンプリングレートはクロックレートと一致して、時間の経過と共に各クロックサイクルで信号の値を取り込む。ロジックアナライザは、IC自体のメモリ内に結果のデータ、例えばサンプリングされた値を保存するか、データを別のシステムに出力しようとする。サンプリングレート、監視される信号の数、および信号が監視されている時間枠により、ロジックアナライザは大量のデータを生成する。このデータがICに保存されると、かなりの量のメモリが必要になる。このデータがICから出力される場合、かなりの量の帯域幅が必要である。これらの制約は、信号を監視することができる時間枠を制限したり、監視することができる信号の数を制限したりする。
【発明の概要】
【0004】
1つまたは複数の実施形態は、集積回路(IC)内の信号を監視するための方法に関する。一態様では、方法は、IC内に実装されたロジックアナライザ回路を使用して、ICのプローブ対象信号を監視することと、ロジックアナライザ回路を使用して、プローブ対象信号の状態変化を検出することと、ロジックアナライザ回路内で、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、を含む。
【0005】
いくつかの実施形態では、ファイルはASCIIフォーマットで指定されてもよい。
【0006】
いくつかの実施形態では、ファイルは値変化ダンプファイルであってもよい。
【0007】
いくつかの実施形態では、本方法は、生成されたファイルを実質的にリアルタイムで外部システムに出力することをさらに含んでもよい。
【0008】
いくつかの実施形態では、本方法は、プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始することをさらに含んでもよい。
【0009】
いくつかの実施形態では、本方法は、集積回路内のプロセッサにファイルを提供することをさらに含んでもよい。プロセッサは、プログラムコードを実行するように構成されてもよい。
【0010】
いくつかの実施形態では、本方法は、ファイルを外部システムに提供することをさらに含んでもよい。外部システムは、ファイルの視覚化を生成するように構成されてもよい。
【0011】
いくつかの実施形態では、ファイルを生成することは、ヘッダーセクションを符号化することと、変数定義セクションを符号化することと、初期値セクションを符号化することと、値変化セクションを符号化することと、を含んでもよい。
【0012】
いくつかの実施形態では、ロジックアナライザ回路は、集積回路のプログラム可能な回路を使用してハードウェアで実装されてもよい。
【0013】
1つまたは複数の実施形態は、ICに関する。一態様では、ICは、信号を生成するように構成された監視対象回路と、ロジックアナライザ回路と、を含む。ロジックアナライザ回路は、信号を監視して信号の状態変化を検出し、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
【0014】
いくつかの実施形態では、ファイルはASCIIフォーマットのファイルであってもよい。
【0015】
いくつかの実施形態では、ファイルは値変化ダンプファイルであってもよい。
【0016】
いくつかの実施形態では、ロジックアナライザ回路は、信号を受信し、信号の現在の状態が信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路と、トレース回路に結合されたファイル生成回路と、を含んでもよい。ファイル生成回路は、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されてもよい。
【0017】
いくつかの実施形態では、トレース回路は、信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始するように構成されてもよい。
【0018】
いくつかの実施形態では、ロジックアナライザ回路は、ファイル生成回路に結合されたインターフェースを含んでもよい。
【0019】
いくつかの実施形態では、集積回路は、インターフェースに結合されたプロセッサをさらに含んでもよい。プロセッサは、プログラムコードを実行し、ファイルを受信するように構成されてもよい。
【0020】
いくつかの実施形態では、プロセッサは、ファイルから監視対象信号の波形ビューを生成するように構成されてもよい。
【0021】
いくつかの実施形態では、集積回路は、インターフェースに結合された入力/出力回路をさらに含んでもよい。入力/出力回路は、ファイルを外部システムに出力するように構成されてもよい。
【0022】
いくつかの実施形態では、外部システムは、ファイルから信号の波形ビューを生成してもよい。
【0023】
いくつかの実施形態では、ロジックアナライザ回路は、集積回路のプログラム可能な回路を使用してハードウェアで実装されてもよい。
【0024】
この概要セクションは、特定の概念を紹介するためだけに提供されており、請求された主題の重要なまたは本質的な特徴を特定するためではない。本発明の構成の他の特徴は、添付の図面および以下の詳細な説明から明らかになるであろう。
【0025】
本発明の構成は、例として添付図面に示されている。しかし、図面は、示された特定の実施態様のみに本発明の構成を限定するものと解釈するべきではない。以下の詳細な説明を検討し、図面を参照すると、様々な態様および利点が明らかになるであろう。
【図面の簡単な説明】
【0026】
【
図1】ロジックアナライザ回路を含む例示的な集積回路(IC)を示す図である。
【
図2】ロジックアナライザ回路の例示的な実施態様を示す図である。
【
図3】ロジックアナライザ回路を含む別の例示的なICを示す図である。
【
図4】トレースデータを生成する例示的な方法を示す図である。
【
図5】ICの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0027】
本開示は、新規の特徴を定義する特許請求の範囲で終了するが、本開示内で説明される様々な特徴は、図面と併せて説明を考慮することでよりよく理解されると考えられる。本明細書に記載のプロセス、機械、製造物、およびそれらの任意の変形例は、例示の目的で提供されている。本開示内で説明される特定の構造および機能の詳細は、限定として解釈されるべきではなく、単に特許請求の範囲の基礎として、および実質的に任意の適切に詳細な構造で説明される特徴を様々に採用するように当業者に教示するための代表的な基礎として解釈されるべきである。さらに、本開示内で使用される用語および語句は、限定することを意図するものではなく、説明された特徴の理解可能な説明を提供することを意図している。
【0028】
本開示は、集積回路(IC)に関し、より詳細には、IC内の信号を監視するためのロジックアナライザに関する。本開示内で説明される本発明の構成は、ICの内部信号の監視および解析を容易にする。1つまたは複数の実施形態では、ロジックアナライザはIC内に実装され、「プローブ対象信号」と呼ばれる1つまたは複数の選択された信号を監視することができる。さらに、ロジックアナライザは、IC自体のプローブ対象信号を解析することができる。
【0029】
1つまたは複数の実施形態では、ロジックアナライザは、プローブ対象信号の状態変化を検出することができる。ロジックアナライザは、プローブ対象信号の検出された状態変化ごとにタイムスタンプを決定することができる。ロジックアナライザはさらに、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することができる。このファイルは、IC内のロジックアナライザハードウェアによって生成される。ロジックアナライザはさらに、IC内の別の回路および/またはシステム、ならびに/あるいはIC外部の別の回路および/またはシステムにファイルを出力することができる。
【0030】
従来のロジックアナライザは、プローブ対象信号の値を継続的に取り込もうとする。値は、例えば、監視されているシステムのクロックレートでサンプリングされる。サンプリングされた値は、少なくとも論理解析が実行される時間枠のトレースデータとして保存および保持される。したがって、ロジックアナライザは、大量のトレースデータ、例えば、プローブ対象信号が監視される時間枠にわたる各クロックサイクルでの各プローブ対象信号の値を生成して保存する。この量のデータを取り込むには、データを保存するためにICにかなりのメモリリソースが必要である。これは、ロジックアナライザがより大きく複雑になり、監視される電子システムの実装に使用することができるメモリリソース(およびルーティングリソース)が少なくなることを意味する。
【0031】
また、大量のトレースデータを取り込むと、ICからタイムリーにトレースデータをオフロードするためにかなりの帯域幅が必要になる。多くの場合、IC内の従来のロジックアナライザは、ジョイントテストアクショングループ(JTAG)インターフェースを使用して、ICからトレースデータをオフロードする。しかし、JTAGインターフェースは低速になる傾向がある。例えば、JTAGインターフェースは、トレースデータが生成される速度よりもはるかに遅い速度でICからトレースデータをオフロードする。これは、トレースデータを保存するロジックアナライザを実装するために、ICのメモリリソースが不足している可能性があることを意味する。ロジックアナライザの複雑さの増加により、場合によっては、IC内での実装のための合成、配置、および/またはルーティング中に、回路設計の達成可能な最大動作周波数を下げることができる。そのような場合、従来のロジックアナライザが含まれる回路設計は、従来のロジックアナライザが含まれていない場合よりも遅い周波数で動作する。
【0032】
本明細書で説明される例示的な実施形態は、状態変化データとしてトレースデータを表すファイルフォーマットを利用することにより、これらの制約およびその他に対処する。ファイルフォーマットは、ロジックアナライザのハードウェア自体によって、またはその中に生成される。ロジックアナライザハードウェアでファイルを生成することにより、ロジックアナライザハードウェアは、事実上、生成されたトレースデータに圧縮形式を適用する。例えば、プローブ対象信号の各サンプリング値は、前のクロックサイクルに対する状態変化を検出するために、数クロックサイクルを超えて保存する必要はない。さらに、結果のファイルは、その中に含まれるトレースデータにアクセスするための独自の復号化技術を必要としないフォーマットで指定される。
【0033】
本発明の構成のさらなる態様は、図面を参照して以下により詳細に説明される。説明を簡単かつ明確にするために、図に示す要素は必ずしも縮尺通りに描かれていない。例えば、いくつかの要素の寸法は、明確にするために他の要素に比べて誇張されている場合がある。さらに、適切であると考えられる場合、対応する、類似の、または同様の特徴を示すために符号が図の間で繰り返されている。
【0034】
図1は、ロジックアナライザ回路を含む例示的なIC100を示す。
図1の例では、IC100は、様々な異なるタイプのICのいずれかとして実装されてもよい。例には、デジタルIC、特定用途向け集積回路(ASIC)、プログラマブルIC、部分的プログラマブルIC、またはその他の適切なICが含まれるが、これらに限定されない。プログラマブルおよび/または部分的プログラマブルICの例には、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)、複合プログラマブルロジックデバイス(CPLD)、ならびに/あるいは1つまたは複数のプログラマブル回路ブロック、プログラマブル回路タイル、または他のプログラム可能な回路を含む他のICが含まれるが、これらに限定されない。
【0035】
図示するように、IC100は監視対象回路105を含む。監視対象回路105は、ロジックアナライザ回路110に結合されている。より具体的には、1つまたは複数のワイヤ115または相互接続が、監視対象回路105とロジックアナライザ回路110とを結合する。ワイヤ115の各々が監視対象信号を運ぶ。説明の目的のために、ワイヤ115によって搬送される信号は、本明細書では「プローブ対象信号」と呼ばれる。
【0036】
監視対象回路105は、監視される信号(例えば、プローブ対象信号)を含むかまたは生成する任意の回路として実装されてもよい。1つまたは複数の実施形態では、監視対象回路105は、ユーザにより指定される回路である。例えば、監視対象回路105は、ユーザ回路設計の一部として実装される回路を含んでもよい。プログラマブルICの場合、監視対象回路105は、ICのプログラム可能な回路を使用して全体的または部分的に実装されてもよい。
【0037】
1つまたは複数の実施形態では、ロジックアナライザ回路110は、IC100内のハードワイヤード回路として実装される。1つまたは複数の他の実施形態では、ロジックアナライザ回路110は、ICのプログラム可能な回路内に実装される。例えば、ロジックアナライザ110は、監視対象回路105を含むユーザ回路設計に組み込まれ得るコア、回路もしくはコアのパラメータ化可能部分、または回路の所定のユニットとして提供されてもよい。後者の場合、プログラム可能な回路で実装される場合、ロジックアナライザ回路110はユーザが選択可能な数のプローブポートを有することができる。各プローブポートは、ユーザが選択可能なプローブ幅を有することができる。
【0038】
いずれの場合でも、ロジックアナライザ回路110は、プログラムコードを実行するプロセッサとして実装されていない。むしろ、ロジックアナライザ回路110は、ハードワイヤードまたはハード回路、プログラム可能な回路、またはハード回路とプログラム可能な回路の組み合わせとして実装されるかどうかにかかわらず、本明細書に記載の動作を実行するための専用の回路である。
【0039】
ロジックアナライザ回路110は、ワイヤ115によって運ばれるプローブ対象信号を受信することができる。ロジックアナライザ回路110はさらに、プローブ対象信号を解析することができる。1つまたは複数の実施形態では、ロジックアナライザ回路110は、監視対象回路105から受信したプローブ対象信号の各々の状態変化を検出することができる。検出された状態変化ごとに、ロジックアナライザ回路110は、検出された状態変化が生じたタイムスタンプを決定することができる。1つまたは複数の実施形態では、ロジックアナライザ回路110は、検出された状態変化に関係なくサンプリング信号値を連続的に保存するのではなく、プローブ対象信号のタイムスタンプされた状態変化のみを少なくとも一時的に保存する。
【0040】
1つまたは複数の実施形態では、ロジックアナライザ回路110は、トリガ条件を検出することができる。トリガ条件は、プローブ対象信号のうちの1つまたは複数で特定のまたは所定の状態が発生することである。ロジックアナライザ回路110は、プローブ対象信号の状態を監視することができ、プローブ対象信号の所定の状態またはトリガ条件に対応する複数のプローブ対象信号の所定の状態の検出に応答して、トリガ条件に関連するアクションを開始することができる。一例では、ロジックアナライザ回路110は、特定のトリガ条件が検出されるまでファイル120の生成を控えることができる。トリガ条件の検出に応答して、ロジックアナライザ回路110は、トレースデータを出力するためにファイル120を生成するか、またはファイル120の生成を開始することができる。ロジックアナライザ回路110の複数のプローブポートは、例えばその上の信号の監視など、単一のトリガ条件に結合されてもよい。
【0041】
1つまたは複数の実施形態では、ロジックアナライザ回路110は、プローブ対象信号のトレースデータをファイル120として出力することができる。ファイル120は、プローブ対象信号の状態変化データおよび状態変化データのタイムスタンプを指定してもよい。例えば、ファイル120は、プローブ対象信号の各々について各状態変化およびそのような状態変化のタイムスタンプを指定してもよい。
【0042】
図1の例では、ファイル120はハードウェアで生成される。ロジックアナライザ回路110がファイル120を生成する。1つまたは複数の実施形態では、ファイル120は、情報交換のための米国標準コード(ASCII)を使用して符号化される。例示的かつ非限定的な例として、ファイル120は値変化ダンプ(VCD)ファイルとして実装される。1つまたは複数の実施形態では、ファイル120はIEEE標準1364-1995に準拠している。1つまたは複数の実施形態では、ファイル120はIEEE標準1364‐2001に準拠している。
【0043】
リスト1は、ファイル120の一例を示している。リスト1は、VCDファイルとしてASCIIでフォーマットされている。
【0044】
リスト1
$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
...
【0045】
トレースデータをASCIIフォーマットのファイルとして、またVCDファイルとして生成することにより、様々なシステムでトレースデータをさらに処理することなく簡単に表示およびレンダリングすることができる。例えば、VCDファイルをVCD波形ビューアに直接提供することができる。VCD波形ビューアは簡単に入手でき、例えば、トレースデータの特別な復号化や独自の復号化を実行する必要なく、標準ブラウザ内に実装することができる。
【0046】
特定の実施形態では、ロジックアナライザ回路110は、ロジックアナライザ回路110がプローブ対象信号を監視している期間にわたってデータストリームとしてファイル120を出力し続けることができる。ロジックアナライザ回路110は、リアルタイムまたは実質的にリアルタイムでファイル120を出力することができ、その中で解析が実行される。したがって、1つまたは複数の実施形態では、ロジックアナライザ回路110は、IC100のオンチップメモリの量によって制限または制約されない。
【0047】
本明細書で説明する本発明の構成によれば、ロジックアナライザ回路110は、各クロックサイクルの各監視対象信号のトレースデータを保存することなく、多数の信号を監視することができる。例示的な例として、ユーザは、ロジックアナライザ110がICのプログラム可能な回路に実装され、監視対象回路105の1,000個の信号を監視することを指定してもよい。ロジックアナライザは、クロックサイクルごとに1,000個のプローブ対象信号の各々の値をトレースデータとして保存するのではなく、各イベントの状態変化をトレースデータとして状態変化のタイムスタンプと共に保存するだけである。プローブ対象信号の既知の初期状態が与えられると、ファイル120の結果のトレースデータは、プローブ対象信号が監視される任意の所与の時点での各プローブ対象信号の値を示す。状態変化を記録することにより、ロジックアナライザは、従来のロジックアナライザの場合よりも少ないメモリリソースを使用することができる(例えば、使用するブロックランダムアクセスメモリが少なくなる)。
【0048】
図2は、
図1のロジックアナライザ回路110の例示的な実施態様を示している。
図2の例では、ロジックアナライザ回路110は、トレース回路205、ファイル生成回路220、およびインターフェース225を含む。トレース回路205は、トレースキャプチャ回路210およびトレース解析回路215を含んでもよい。
【0049】
トレースキャプチャ回路210は、ワイヤ115(図示せず)に結合されている。トレースキャプチャ回路210は、プローブ対象信号の各々を受信することができる。1つまたは複数の実施形態では、トレースキャプチャ回路210は、プローブ対象信号の値をバッファリングすることができる。1つまたは複数の実施形態では、トレースキャプチャ回路は、各プローブ対象信号の現在値(例えば、現在のクロックサイクルの)および各プローブ対象信号の以前の値(例えば、直前のクロックサイクルから現在のクロックサイクルの前まで)を取り込むまたは保存することができる。
【0050】
トレース解析回路215は、プローブ対象信号の解析を実行することができる。1つまたは複数の実施形態では、トレース解析回路215は、各プローブ対象信号の状態が変化したかどうかを判定することができる。例えば、プローブ対象信号ごとに、トレース解析回路215は、プローブ対象信号の値が0から1に、または1から0に遷移したかどうかを判定する。トレース解析回路215は、トレースキャプチャ回路210から各プローブ対象信号の現在値および以前の値を受信し、各プローブ対象信号の現在値がプローブ対象信号の以前の値と異なるかどうかを判定する比較を実行することができる。
【0051】
図2の例では、トレース解析回路215はトレースデータを出力することができる。トレースデータは、どのプローブ対象信号の状態が変化したか、およびプローブ対象信号の状態のそのような変化ごとのタイムスタンプを指定する。図示するように、ファイル生成回路220は、トレース解析回路215の出力に結合される。したがって、ファイル生成回路220はトレースデータを受信する。
【0052】
ファイル生成回路220は、トレースデータを指定するファイルを生成することができる。1つまたは複数の実施形態では、ファイル生成回路220は、ASCII符号化されたファイルを生成することができる。ASCII符号化されたファイルは、VCDファイルまたは別の適切なファイルタイプである。したがって、経時的に(例えば、ロジックアナライザ110がアクティブでプローブ対象信号を監視している全時間に)各プローブ対象信号の値をトレースデータとして保存するのではなく、ロジックアナライザ110は、ファイル120の生成の一部として、プローブ対象信号の状態変化を検出し保存することができる。
【0053】
説明したように、特定の実施形態では、ロジックアナライザ回路110は、IC 100のプログラム可能な回路に実装される。回路設計の実装の一部として、例えば、ユーザは、回路設計のどの信号を監視するかを指定することができる。電子設計自動化(EDA)システムは、ユーザの回路設計内にロジックアナライザ回路110のインスタンスを含めて、プローブ対象信号(ユーザが指定)を監視するようにロジックアナライザ回路110を構成し、実装フロー(例えば、合成、配置、およびルーティング)の一部として、プローブ対象信号をロジックアナライザ回路110にルーティングすることができる。
【0054】
したがって、EDAシステムは、ファイル120の様々なセクションを作成および/または書き込むために、ロジックアナライザ回路110、より具体的にはファイル生成回路220を生成することができる。ロジックアナライザ回路110は、例えば、監視される信号を認識しているので、ファイル生成回路220は、ヘッダーセクションおよび変数定義セクションなどのファイル120の特定の部分を生成するように予め構成することができる。ファイル生成回路220は、そのような情報が検出されるとき、初期値および値の変化(タイムスタンプ付き)などの他のデータを符号化するために必要な回路を含む。
【0055】
ファイル生成回路220は、ファイル120をインターフェース225に出力する。1つまたは複数の実施形態では、ファイル生成回路220はファイル120をメモリに書き込む。特定の実施形態では、メモリは、ファイル生成回路220内に実装されるかまたは含まれる。メモリは、先入れ先出し(FIFO)メモリまたは他のタイプのメモリ回路(例えば、バッファメモリまたはRAM)として実装されてもよい。インターフェース225は、メモリからファイル120を読み出し、ファイル120を別の回路および/またはシステムに提供することができる。1つまたは複数の実施形態では、インターフェース225は、ファイル120を回路および/またはシステムにストリーミングすることができる。例えば、インターフェース225は、ファイル120が完全に生成されるのを待つことなく(例えば、監視ウィンドウの終了のために)リアルタイムまたは実質的にリアルタイムでファイル120が生成されると、ファイル120を出力することができる。
【0056】
一例では、インターフェース225はAMBA eXtensible Interface(AXI)バスとして実装される。AMBA AXIバスは、回路ブロックやシステム間でオンチップ接続を確立する際に使用する組み込みマイクロコントローラ・バス・インターフェースである。例えば、インターフェース225は、AXIストリームインターフェース、AXIメモリマップインターフェース、またはICの別のネイティブインターフェースとして実装されてもよい。相互接続またはインターフェースの他の実装例には、バス、クロスバー、およびネットワークオンチップ(NoC)が含まれてもよいが、これらに限定されない。
【0057】
1つまたは複数の実施形態では、インターフェース225は、入力/出力(I/O)回路に結合される。I/O回路は、ギガビットトランシーバ、ユニバーサルシリアルバス(USB)ポート、イーサネットポート、または、ICがファイル120を外部システムに提供することを可能にするIC内に実装された他の通信ポートなどの様々な周辺回路および/またはポートとして実装されてもよい。I/O回路は、高速通信インターフェースであってもよく、それにより、ロジックアナライザ110からJTAG依存性を除去することができる。1つまたは複数の他の実施形態では、インターフェース225は、IC内に実装されるプロセッサに結合される。プロセッサは、プログラムコードを実行することができるものであってもよい。プロセッサは、IC内にハードワイヤードされてもよいし、ICに含まれるプログラム可能な回路を使用して実装されてもよい。
【0058】
図2の例示的な実施態様は、トレースデータの取り込みから外部システムによるトレースデータの表示までの低レイテンシを容易にする。特定の実施形態では、
図2に関連して説明される例示的なアーキテクチャは、IC 100の位置および近接性にかかわらず、ほぼすべての外部データ処理システムからのIC 100のライブ、例えばリアルタイムまたは実質的にリアルタイムのデバッグをサポートする。例えば、ファイル120は、ファイル120が生成され、ICから出力され、外部システムによって受信されると、外部システムによってリアルタイムでレンダリングされて表示されてもよい。
【0059】
1つまたは複数の実施形態では、ロジックアナライザ回路110は、データの損失なしにクロック信号データの取り込みを容易にするためにパイプライン化されてもよい。例示的な実施態様では、ロジックアナライザ回路110は、(例えば、リモートシステムによる)ソフトウェアキャプチャが不可能であるか、ソフトウェア障害がある場合に512/1024サンプル保持を保証するのに十分なメモリリソース(例えば、ブロックRAM)を含んでもよい。
【0060】
図3は、ロジックアナライザ回路110を含む別の例示的なIC300を示す。1つまたは複数の実施形態では、ロジックアナライザ回路110はプロセッサ305に結合される。プロセッサ305は、メモリ310およびI/O回路315に結合されている。
図3の例では、I/O回路315もメモリ310に結合されてもよい。メモリ310は、様々な異なるタイプのRAMのいずれでもよい。例えば、I/O回路315は、1つまたは複数のダイレクトメモリアクセス(DMA)回路を介してメモリ310に結合されてもよい。したがって、プロセッサ305は、I/O回路315を介して外部システム320へのトレースデータファイルの出力を開始することができる。
【0061】
1つまたは複数の実施形態では、プロセッサ305は、IC300のプログラム可能な回路を使用して実装される。1つまたは複数の実施形態では、プロセッサ305は、IC300のハードワイヤードプロセッサとして実装される。メモリ310は、プログラム可能な回路メモリリソースを使用して、またはハードワイヤードメモリリソースとしてオンチップで実装されてもよい。1つまたは複数の他の実施形態では、メモリ310はオフチップで実装される。
【0062】
外部システム320は、コンピュータシステムなどのデータ処理システムであってもよい。例えば、外部システム320はサーバーであってもよい。1つまたは複数の実施形態では、IC300は、より大きく、より複雑なシステムおよび/またはデータセンターおよび/またはサーバーファーム内のコンピュータシステムなどのリモート環境内に含まれる。
【0063】
外部システム320がデータ処理システムである実施形態では、外部システム320はブラウザを実行することができる。その場合、ブラウザは、ロジックアナライザ110(例えば、IC)から受信したファイルをレンダリングすることができる。例えば、外部システム320により実行されるブラウザまたは他のアプリケーションは、波形を示すファイルの視覚化を生成することができる。例えば、外部システム320は、実質的にリアルタイムでファイルを受信して、実質的にリアルタイムでファイルによって指定された波形を生成し続けることができるので、ユーザは、ファイル生成回路220によって生成されたトレースデータの波形を実質的にリアルタイムで閲覧することができる。
【0064】
例示的な例では、プロセッサ305は、外部システム320からロジックアナライザ回路110を起動する要求を受信することができる。要求に応答して、プロセッサ305は、ロジックアナライザ回路110を起動し、外部システム320などの特定のアドレスまたは宛先にファイルを送信することができる。
【0065】
1つまたは複数の他の実施形態では、プロセッサ305は、ファイル120を読み出しおよび/または処理することができるブラウザまたは他のソフトウェアを実行することができる。例えば、プロセッサ305は、ファイル120の波形ビューを生成(またはレンダリング)することができる。その場合、例えば、I/O回路315は、ファイル120の波形を表示するモニターに提供または結合され得るビデオ出力ポートであってもよい。
【0066】
特定の実施形態では、ロジックアナライザ回路110は、プロセッサ305を利用および/または含むことなく、I/Oデバイス315に直接結合される。その場合、ロジックアナライザ回路110は、その中で生成されたファイルを、プロセッサ305および/またはメモリ310を使用またはそれらに依存することなく、I/O回路315を介して外部システム320に直接出力することができる。
【0067】
図4は、トレースデータを生成する例示的な方法400を示している。方法400は、本明細書の
図1~
図3に関連して説明されたロジックアナライザ回路によって実行されてもよい。方法400は、ロジックアナライザ回路が集積回路内に実装された状態で開始されてもよい。さらに、ユーザ回路設計などの監視対象回路のプローブ対象信号は、監視のためにロジックアナライザ回路にルーティングおよび/または提供されている。
【0068】
ブロック405で、ロジックアナライザ回路はプローブ対象信号の監視を開始する。ブロック410で、ロジックアナライザ回路は、プローブ対象信号のうちの1つまたは複数またはすべてで状態変化が検出されたかどうかを判定する。ロジックアナライザが、プローブ対象信号の1つまたは複数またはすべての状態変化を検出した場合には、方法400はブロック415に続く。ロジックアナライザが状態変化を検出しない場合には、方法400はブロック405に戻って、プローブ対象信号の監視を続ける。
【0069】
ブロック415で、ロジックアナライザは、トリガ条件が検出されたかどうかを判定する。1つまたは複数の実施形態では、トリガ条件は、プローブ対象信号の1つまたは複数における特定の値または状態の存在である。トリガ条件が検出された場合には、方法400はブロック420に進む。トリガ条件が検出されない場合には、方法400はブロック430に続く。
【0070】
ブロック420で、トリガ条件が検出された場合に、ロジックアナライザは、検出された特定のトリガ条件に関連するアクションを選択する。例えば、ロジックアナライザは、複数の異なるアクションを開始することが可能であってもよい。これらの異なるアクションは、異なるトリガ条件に関連付けられてもよい。したがって、ロジックアナライザは、ブロック415で検出された特定のトリガ条件に基づいて、複数のアクションからアクションを選択することができる。
【0071】
ブロック420の後に、方法400はブロック425に続く。ブロック425で、ロジックアナライザは、ブロック420で選択されたアクションを開始または実行する。
【0072】
引き続きブロック430で、ロジックアナライザは、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成する。例えば、ロジックアナライザは、ASCII符号化ファイルを生成することができる。上述のように、1つまたは複数の実施形態では、ファイルはVCDファイルであってもよい。
【0073】
1つまたは複数の実施形態では、ロジックアナライザは、ファイルのヘッダーセクションを生成および/または符号化する。ロジックアナライザはさらに、ファイルの変数定義セクションを生成および/または符号化することができる。ロジックアナライザはさらに、ファイルの初期値セクションを生成および/または符号化することができる。ファイルの初期値セクションは、プローブ対象信号の各々の開始値または状態を指定する。ロジックアナライザは、値変化セクションをさらに生成することができる。ロジックアナライザがプローブ対象信号を監視し、状態変化を検出し続ける限り、ロジックアナライザ回路は値変化セクションを生成し続けることを理解されたい。
【0074】
例示的な例として、ロジックアナライザ回路はファイルの開始部分を生成してもよい。プローブ対象信号の状態変化がさらに検出されると、ロジックアナライザ回路は値変化セクションを生成し続ける。ファイルはロジックアナライザ回路によって継続的に生成されるため、ロジックアナライザ回路はファイルを出力することができる。したがって、ブロック435で、ロジックアナライザ回路はファイルを出力する。前述のように、ファイルを出力することには、ロジックアナライザ回路がファイルの一部を生成し、ファイルのさらなる部分を生成し続ける場合が含まれるので、ファイルは、ロジックアナライザ回路から別の回路および/またはシステムへ、あるいはICから別の回路および/またはICの外部のシステムへストリーム出力されてもよい。
【0075】
説明したように、1つまたは複数の実施形態では、ファイルは外部システムに出力されてもよい。外部システムは、トレースデータの波形ビューを生成することができる。外部システムは、実質的にリアルタイムで波形ビューを受信し表示してもよい。例えば、外部システムは、プローブ対象信号を取り込んでから約1秒以内に波形ビューを生成することができる。
【0076】
図5は、ICの例示的なアーキテクチャ500を示している。一態様では、アーキテクチャ500は、プログラマブルIC内に実装されてもよい。例えば、アーキテクチャ500を使用してFPGAを実装してもよい。アーキテクチャ500は、システムオンチップ(SOC)タイプのICの代表であってもよい。SOCは、プログラムコードを実行するプロセッサと、1つまたは複数の他の回路と、を含むICである。他の回路は、ハードワイヤード回路、プログラム可能な回路、および/またはそれらの組み合わせとして実装されてもよい。回路は、互いにおよび/またはプロセッサと協調して動作してもよい。1つまたは複数の実施形態では、監視対象回路105、ロジックアナライザ回路110、プロセッサ305、メモリ310、および/またはI/O回路315は、
図5のそれと同一または類似のアーキテクチャを有するICで実装されてもよい。
【0077】
図示するように、アーキテクチャ500は、いくつかの異なるタイプのプログラム可能な回路、例えば、ロジック、ブロックを含む。例えば、アーキテクチャ500は、多数の異なるプログラマブルタイルを含んでもよく、それには、マルチギガビットトランシーバ(MGT)501、構成可能な論理ブロック(CLB)502、ランダムアクセスメモリブロック(BRAM)503、入力/出力ブロック(IOB)504、構成およびクロック論理(CONFIG/CLOCKS)505、デジタル信号処理ブロック(DSP)506、特殊なI/Oブロック507(例えば、構成ポートおよびクロックポート)、ならびに、デジタルクロックマネージャ、アナログデジタルコンバータ、システム監視論理などの他のプログラム可能な論理508が含まれる。
【0078】
いくつかのICでは、各プログラマブルタイルは、各隣接タイル内の対応する相互接続素子(INT)511との間の標準化された接続を有するプログラム可能なINT511を含む。したがって、INT511を合わせて、図示のICのプログラム可能な相互接続構造を実装する。各INT511は、
図5の上部に含まれる例で示されているように、同じタイル内のプログラム可能な論理素子との接続も含む。
【0079】
例えば、CLB502は、ユーザ論理に加えて単一のINT511を実装するようにプログラムされ得る構成可能な論理素子(CLE)512を含んでもよい。BRAM503は、1つまたは複数のINT511に加えて、BRAM論理素子(BRL)513を含んでもよい。通常、タイルに含まれるINT511の数は、タイルの高さに依存する。図示するように、BRAMタイルは5つのCLBと同じ高さであるが、他の数(例えば4)を使用してもよい。DSPタイル506は、適切な数のINT511に加えて、DSP論理素子(DSPL)514を含んでもよい。IOB504は、例えば、INT511の1つのインスタンスに加えて、I/O論理素子(IOL)515の2つのインスタンスを含むことができる。IOL 515に接続されている実際のI/Oパッドは、IOL 515の領域に限定されなくてもよい。
【0080】
図5に描かれた例では、例えば領域505、507、508で形成されたダイの中心近くのカラム状領域は、構成、クロック、および他の制御ロジックに使用されてもよい。このカラムから延在する水平領域509を使用して、プログラマブルICの幅全体にクロックと構成信号を分配することができる。
【0081】
図5に示すアーキテクチャを利用するいくつかのICは、ICの大部分を構成する通常のカラム構造を破壊する追加の論理ブロックを含む。追加の論理ブロックは、プログラム可能なブロックおよび/または専用回路であってもよい。例えば、PROC 510として示されているプロセッサブロックは、CLBとBRAMのいくつかのカラムにまたがっている。
【0082】
一態様では、PROC510は、ICのプログラム可能な回路を実装するダイの一部として製造される専用回路、例えばハードワイヤードプロセッサとして実装されてもよい。PROC510は、個々のプロセッサ、例えば、プログラムコードを実行可能な単一コアから、1つまたは複数のコア、モジュール、コプロセッサ、インターフェースなどを有するプロセッサシステム全体まで、複雑さの範囲にわたる様々な異なるプロセッサタイプおよび/またはシステムのいずれかを表してもよい。
【0083】
別の態様では、PROC510はアーキテクチャ500から省略され、記載されたプログラム可能ブロックの他の種類のうちの1つまたは複数と置き換えられてもよい。さらに、そのようなブロックは、PROC510の場合のように、プログラム可能な回路の様々なブロックを使用してプログラムコードを実行することができるプロセッサを形成することができるという点で、「ソフトプロセッサ」を形成するために利用されてもよい。
【0084】
「プログラム可能な回路」という語句は、IC内のプログラム可能な回路素子、例えば、本明細書で説明する様々なプログラム可能または構成可能な回路ブロックまたはタイル、ならびに様々な回路ブロック、タイル、および/または素子を、ICにロードされた構成データに従って選択的に結合する相互接続回路を指す。例えば、CLB502およびBRAM503などのPROC510の外部にある
図5に示す回路ブロックは、ICのプログラム可能な回路とみなされる。
【0085】
一般に、プログラム可能な回路の機能は、構成データがICにロードされるまで確立されない。構成ビットのセットを使用して、FPGAなどのICのプログラム可能な回路をプログラムすることができる。通常、構成ビットは「構成ビットストリーム」と呼ばれる。一般に、最初に構成ビットストリームをICにロードしないと、プログラム可能な回路は動作も機能もしない。構成ビットストリームは、プログラム可能な回路内で特定の回路設計を効果的に実装する。回路設計は、例えば、プログラム可能回路ブロックの機能的側面と、様々なプログラム可能回路ブロック間の物理的接続性を指定する。
【0086】
「ハードワイヤード」または「ハード化」された、すなわちプログラム可能でない回路がICの一部として製造される。プログラム可能な回路とは異なり、ハードワイヤード回路または回路ブロックは、ICの製造後に構成ビットストリームのロードにより実装されない。ハードワイヤード回路は一般に、専用の回路ブロックと相互接続を備えていると一般に考えられており、例えば、最初に構成ビットストリームをIC、例えばPROC510にロードすることなく機能する。
【0087】
場合によっては、ハードワイヤード回路は、IC内の1つまたは複数のメモリ素子に保存されているレジスタ設定または値に従って設定または選択することができる1つまたは複数の動作モードを有してもよい。動作モードは、例えば、構成ビットストリームをICにロードすることで設定されてもよい。この機能にもかかわらず、ハードワイヤード回路は、ICの一部として製造されたときに動作可能であって、特定の機能を有するので、ハードワイヤード回路はプログラム可能回路とはみなされない。
【0088】
SOCの場合、構成ビットストリームは、プログラム可能な回路内に実装される回路と、PROC 510またはソフトプロセッサによって実行されるプログラムコードを指定してもよい。場合によっては、アーキテクチャ500は、構成ビットストリームを適切な構成メモリおよび/またはプロセッサメモリにロードする専用の構成プロセッサを含む。専用の構成プロセッサは、ユーザ指定のプログラムコードを実行しない。他の場合では、アーキテクチャ500は、PROC 510を使用して、構成ビットストリームを受信し、構成ビットストリームを適切な構成メモリにロードし、および/または実行のためにプログラムコードを抽出してもよい。
【0089】
図5は、プログラム可能な回路、例えばプログラマブルファブリックを含むICを実装するために使用してもよい例示的なアーキテクチャを示すことを意図している。例えば、カラムの論理ブロックの数、カラムの相対的な幅、カラムの数と順序、カラムに含まれる論理ブロックのタイプ、論理ブロックの相対的なサイズ、および
図5の上部に含まれる相互接続/論理の実施態様は、純粋に例示的なものである。例えば、実際のICでは、ユーザ回路設計の効率的な実装を容易にするために、通常、CLBが現れる場所に複数のCLBの隣接するカラムが含まれる。しかし、隣接するCLBカラムの数は、ICの全体サイズによって異なってもよい。さらに、IC内のPROC 510などのブロックのサイズおよび/または位置は、例示のみを目的としており、限定として意図されていない。
【0090】
本明細書で説明する例示的な実施形態により、従来のロジックアナライザ設計の場合よりも少ないICリソースを使用して、ロジックアナライザが多数の信号を監視することが可能になる。1つまたは複数の実施形態では、オンチップメモリの利用可能性に関する制限なしに、ICからVCDファイルフォーマットでデータを連続的に出力することができる。さらに、ブラウザを実行するホストシステムなどの外部システムは、ICの専有データフォーマットをEDAツールで使用されるフォーマットなどの使用可能なフォーマットに最初に変換することなく、VCDファイルを表示またはレンダリングすることができる。
【0091】
1つまたは複数の実施形態では、プローブ対象信号の取り込みからVCDファイルの閲覧までのタイムラグはリアルタイムで生じる(例えば、プローブ対象信号取り込みの約1秒以内)。特定の実施形態では、クロック信号が監視されてもよい。したがって、設計者はICの内部信号をリアルタイムで監視することができる。さらに、設計者は、ロジックアナライザがICで使用可能な内部メモリの量に制約されないため、プローブ対象信号がIC内に保存されている場合よりも長い時間プローブ対象信号を監視することができる。
【0092】
説明の目的で、本明細書に開示した様々な発明概念の完全な理解を提供するために、特定の命名法が示されている。しかし、本明細書で使用される用語は、本発明の構成の特定の態様を説明することのみを目的としており、限定することを意図していない。
【0093】
本明細書で定義されるように、単数形「a」、「an」、および「the」は、文脈が明確にそうでないことを示さない限り、複数形も含むことを意図している。本明細書で定義されるように、「少なくとも1つ」、「1つまたは複数」、および「および/または」という用語は、特に明記しない限り、動作において連言的および選言的の両方である無制限表現である。例えば、「A、B、およびCの少なくとも1つ」、「A、B、またはCの少なくとも1つ」、「A、B、およびCの1つまたは複数」、「A、B、またはCの1つまたは複数」および「A、B、および/またはC」は、Aのみ、Bのみ、Cのみ、AとB共に、AとC共に、BとC共に、またはAとBとC共に、を意味する。
【0094】
本明細書で定義されるように、「一実施形態」、「実施形態」、「1つまたは複数の実施形態」または類似の文言は、実施形態に関連して説明される特定の特徴、構造、または特性が、この開示内で説明される少なくとも1つの実施形態に含まれることを意味する。したがって、「一実施形態では」、「実施形態では」、「1つまたは複数の実施形態では」、および本開示を通して同様の文言の出現は、必ずしも同じではないが、すべて同じ実施形態を指す。
【0095】
本明細書で定義される「リアルタイム」という用語は、特定のプロセスまたは決定が行われるのに十分に即時であるとユーザまたはシステムが感じる、またはプロセッサが何らかの外部プロセスに追いつくことができる処理応答性のレベルを意味する。
【0096】
本明細書で定義されるように、「応答する」という用語は、アクションまたはイベントに容易に応答または反応することを意味する。したがって、第2のアクションが第1のアクションに「応答する」ように実行される場合、第1のアクションの発生と第2のアクションの発生との間には因果関係がある。「応答する」という用語は、因果関係を示す。
【0097】
「実質的に」という用語は、列挙された特性、パラメータ、または値を正確に達成する必要がないことを意味する。しかし、例えば許容差、測定誤差、測定精度の制限、および当業者に知られている他の要因を含む偏差または変動は、特性が提供することを意図した効果を妨げない量で発生してもよい。
【0098】
本明細書では、第1、第2などの用語を使用して、様々な要素を説明することがある。これらの要素はこれらの用語によって限定されるべきではなく、これらの用語は、特に明記しない限り、または文脈からそうでないことが明確に示されていない限り、ある要素を別の要素と区別するためにのみ使用されるからである。
【0099】
図中のフローチャートおよびブロック図は、本発明の構成の様々な態様によるシステムおよび方法の可能な実施のアーキテクチャ、機能、および動作を示している。いくつかの代替的な実施態様では、ブロックに記載されている動作は、図に記載されている順序以外で生じてもよい。例えば、連続して示される2つのブロックは、実質的に同時に実行されてもよく、または時には、関連する機能に応じて、ブロックが逆の順序で実行されてもよい。他の例では、ブロックは一般に数字の昇順で実行されるが、さらに他の例では、1つまたは複数のブロックが様々な順序で実行され、結果が保存されて、後続のブロックまたはすぐに後続しない他のブロックで利用されてもよい。ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能または動作を実行するか、特殊用途のハードウェアとコンピュータ命令の組み合わせを実行する特殊用途のハードウェアベースのシステムによって実装されてもよいことにも留意されたい。
【0100】
以下の特許請求の範囲に見られるすべての手段またはステッププラス機能要素の対応する構造、材料、動作、および均等物は、具体的に特許請求される他の特許請求された要素と組み合わせて機能を実行するための構造、材料、または動作を含むことを意図している。
【0101】
1つまたは複数の実施形態は、IC内の信号を監視するための方法に関する。一態様では、方法は、IC内に実装されたロジックアナライザ回路を使用して、ICのプローブ対象信号を監視することと、ロジックアナライザ回路を使用して、プローブ対象信号の状態変化を検出することと、ロジックアナライザ回路内で、プローブ対象信号のタイムスタンプされた状態変化を指定するファイルを生成することと、を含む。
【0102】
一態様では、ファイルはASCIIフォーマットで指定される。
【0103】
別の態様では、ファイルは値変化ダンプファイルである。
【0104】
別の態様では、本方法はまた、生成されたファイルを実質的にリアルタイムで外部システムに出力することを含むことができる。
【0105】
別の態様では、本方法はまた、いくつかの実施形態では、プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始することを含むことができる。
【0106】
別の態様では、本方法はまた、集積回路内のプロセッサにファイルを提供することを含むことができ、プロセッサはプログラムコードを実行するように構成される。
【0107】
別の態様では、本方法はまた、ファイルを外部システムに提供することを含むことができ、外部システムは、ファイルの視覚化を生成するように構成される。
【0108】
別の態様では、ファイルを生成することは、ヘッダーセクションを符号化することと、変数定義セクションを符号化することと、初期値セクションを符号化することと、値変化セクションを符号化することと、を含む。
【0109】
別の態様では、ロジックアナライザ回路は、集積回路のプログラム可能な回路を使用してハードウェアで実装される。
【0110】
1つまたは複数の実施形態は、ICに関する。一態様では、ICは、信号を生成するように構成された監視対象回路と、ロジックアナライザ回路と、を含む。ロジックアナライザ回路は、信号を監視して信号の状態変化を検出し、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
【0111】
一態様では、ファイルはASCIIフォーマットのファイルである。
【0112】
別の態様では、ファイルは値変化ダンプファイルである。
【0113】
別の態様では、ロジックアナライザ回路は、信号を受信して、信号の現在の状態が信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路を含む。ロジックアナライザ回路はまた、トレース回路に結合されたファイル生成回路を含むことができ、ファイル生成回路は、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
【0114】
別の態様では、トレース回路は、信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始するように構成される。
【0115】
別の態様では、ロジックアナライザ回路は、ファイル生成回路に結合されたインターフェースを含む。
【0116】
別の態様では、ICは、インターフェースに結合されたプロセッサを含み、プロセッサは、プログラムコードを実行し、ファイルを受信するように構成される。
【0117】
別の態様では、プロセッサは、ファイルから監視対象信号の波形ビューを生成するように構成される。
【0118】
別の態様では、ICは、インターフェースに結合されたI/O回路を含み、I/O回路は、ファイルを外部システムに出力するように構成される。
【0119】
別の態様では、外部システムはファイルから信号の波形ビューを生成する。
【0120】
別の態様では、ロジックアナライザ回路は、ICのプログラム可能な回路を使用してハードウェアで実装される。
【0121】
1つまたは複数の実施形態は、ロジックアナライザ回路を含むICを実装することに関する。一態様では、方法は、ロジックアナライザ回路を提供することを含むことができる。ロジックアナライザ回路は、信号を監視して信号の状態変化を検出し、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。例えば、ファイルはASCIIフォーマットのファイルにすることができる。特定の例では、ファイルは値変化ダンプファイルにすることができる。
【0122】
別の態様では、本方法は、信号を受信し、信号の現在の状態が信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路を含むように、ロジックアナライザ回路を提供することを含む。ロジックアナライザ回路を提供することは、トレース回路に結合されたファイル生成回路を提供することを含むことができ、ファイル生成回路は、信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成される。
【0123】
別の態様では、トレース回路は、信号の状態変化がトリガ条件に対応すると判定することに応答して、トリガ条件に関連する所定のアクションを開始するように構成される。
【0124】
別の態様では、ロジックアナライザ回路を提供することは、ファイル生成回路に結合されたインターフェースを提供することを含む。
【0125】
本明細書で提供される本発明の構成の説明は、例示の目的のためであり、網羅的であること、または開示された形態および例に限定されることを意図しない。本明細書で使用される用語は、発明の構成の原理、市場で見出される技術に対する実用的な応用または技術的改良を説明するために、ならびに/あるいは当業者が本明細書に開示する発明の構成を理解することができるように選択された。記載した発明の構成の範囲および趣旨から逸脱することなく、変更および変形が当業者には明らかであろう。したがって、そのような特徴および実施態様の範囲を示すものとして、前述の開示ではなく、以下の特許請求の範囲を参照すべきである。
【手続補正書】
【提出日】2023-05-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
集積回路内の信号を監視するための方法であって、
前記集積回路内に実装された監視対象回路のプローブ対象信号を、前記集積回路内にさらに実装されたロジックアナライザ回路を使用して監視することと、
前記ロジックアナライザ回路内のトレース回路を使用して、前記プローブ対象信号の状態変化を検出することであって、前記トレース回路は、前記プローブ対象信号を受信し、前記プローブ対象信号の現在の状態が前記プローブ対象信号の以前の状態と異なるか否かを判定するように構成される、前記プローブ対象信号の状態変化を検出することと、
前記集積回路内の前記トレース回路に結合した前記ロジックアナライザ回路内のファイル生成回路によって、前記プローブ対象信号の値をトレースデータとして保存するのではなく、前記プローブ対象信号の状態変化データおよび前記状態変化データのタイムスタンプのみを保存することと、
前記ファイル生成回路により、前記プローブ対象信号の状態変化データおよび前記状態変化データのタイムスタンプを指定するファイルを、ASCII符号化ファイルまたは値変化ダンプ符号化ファイルとして生成することと、
を含む方法。
【請求項2】
生成された前記ファイルを実質的にリアルタイムで外部システムに出力すること
をさらに含む、請求項1に記載の方法。
【請求項3】
前記プローブ対象信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始すること
をさらに含む、請求項1に記載の方法。
【請求項4】
前記集積回路内のプロセッサに前記ファイルを提供することであって、前記プロセッサはプログラムコードを実行するように構成される、前記集積回路内のプロセッサに前記ファイルを提供すること、または、
外部システムに前記ファイルを提供することであって、前記外部システムは前記ファイルの視覚化を生成するように構成される、外部システムに前記ファイルを提供すること
をさらに含む、請求項1に記載の方法。
【請求項5】
前記ファイルを生成することは、
前記ファイル生成回路が、前記ファイルのヘッダーセクションを符号化することと、
前記ファイル生成回路が、前記ファイルの変数定義セクションを符号化することと、
前記ファイル生成回路が、前記ファイルの初期値セクションを符号化することと、
前記ファイル生成回路が、前記ファイルの値変化セクションを符号化することと、
を含む、請求項1に記載の方法。
【請求項6】
前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項1に記載の方法。
【請求項7】
前記監視対象回路は、前記集積回路のプログラム可能な回路に少なくとも部分的に実装されたユーザにより指定される回路である、請求項1に記載の方法。
【請求項8】
信号を生成するように構成された監視対象回路と、
前記信号を監視して前記信号の状態変化を検出するように構成されたロジックアナライザ回路であって、前記信号のタイムスタンプされた状態変化を指定するファイルを生成するように構成されたロジックアナライザ回路と、を含み、
前記ロジックアナライザ回路は、
監視された前記信号を受信して、前記信号の現在の状態が前記信号の以前の状態と異なるかどうかを判定するように構成されたトレース回路と、
前記トレース回路に結合されたファイル生成回路であって、前記信号の値をトレースデータとして保存するのではなく、前記信号の状態変化データおよび前記状態変化のタイムスタンプのみを保存し、前記信号の状態変化データおよび前記状態変化データのタイムスタンプを指定するファイルを、ASCII符号化ファイルまたは値変化ダンプ符号化ファイルとして生成するように構成されたファイル生成回路と、
を含む、集積回路。
【請求項9】
前記トレース回路は、前記信号の状態変化がトリガ条件に対応すると判定することに応答して、前記トリガ条件に関連する所定のアクションを開始するように構成される、請求項8に記載の集積回路。
【請求項10】
前記ロジックアナライザ回路は、
前記ファイル生成回路に結合されたインターフェース
を含む、請求項8に記載の集積回路。
【請求項11】
前記ロジックアナライザ回路に結合されたプロセッサであって、前記プロセッサは生成された前記ファイルを後処理するように構成された、請求項8に記載の集積回路。
【請求項12】
前記プロセッサは、外部システムから前記ロジックアナライザ回路を起動する要求を受信し、前記要求に応答して前記ロジックアナライザ回路を起動し、前記外部システムに対応する特定のアドレスに前記ファイルを送信することを含む動作を実施するプログラムコードを実行する、請求項11に記載の集積回路。
【請求項13】
前記プロセッサは、前記ファイルの波形ビューをレンダリングし、前記ファイルの波形ビューをビデオ出力ポート上に出力するプログラムコードを実行する、請求項11に記載の集積回路。
【請求項14】
前記ロジックアナライザ回路に結合された入力/出力回路をさらに含み、前記入力/出力回路は、前記ファイルを外部システムに出力するように構成され、前記外部システムは、前記ファイルから前記信号の波形ビューを生成する、請求項8に記載の集積回路。
【請求項15】
前記ロジックアナライザ回路は、前記集積回路のプログラム可能な回路を使用してハードウェアで実装される、請求項8に記載の集積回路。
【外国語明細書】